2010-06-18 4 views
2

제목이 아직 두려워하지 않았다면 계속 읽으십시오. ExpressionEngine 웹 사이트에서 일하고 있는데 회원 서식 파일을 편집하고 있습니다. 멤버 상호 작용과 관련된 모든 템플릿은 하나의 단일 파일에 클래스 내부의 함수로 저장됩니다.여기에있는 PHP 변수를 클래스 내부의 함수 내부에서 사용하십시오.

이 함수는 각각 단순한 문서이지만 대부분 사용하지 않는 경로와 용어로 코드를 인쇄합니다. 예를 들어이 웹 사이트에서는 로그인 한 사용자를 '회원'대신 '고객'으로 지칭합니다.

어쨌든이 값을 추상화하여이 프로젝트와 향후 프로젝트에서 쉽게 변경할 수있는 방법을 찾고 있습니다. 지금 당장은 을 각 함수 내에서 내에 정의하여 여기에 문서의 변수를 인쇄 할 수 있습니다. 클래스의 정의되기 전에이 값을 파일 상단에 정의하는 것을 선호하지만이 값을 인식 할 수있는 여기의 문서를 가져올 수 없습니다.

<?php 
/* I wish to define variables once in this area */ 
$globaluserterm = "client"; 

class profile_theme { 

//---------------------------------------- 
// Member Page Outer 
//---------------------------------------- 
function member_page() 
{ 
$userterm = "client"; 
return <<<EOF 
<div id="{$userterm}-content"> 
    <h1>{$userterm} Account</h1> (Note: This DOES work) 
    <h1>{$globaluserterm} Account</h1> (Note: This doesn't work) 
    {include:member_manager} 
</div> 
EOF; 
} 
/* END */ 

//------------------------------------- 
// Full Proile with menu 
//------------------------------------- 
function full_profile() 
{ 
$userterm = "client"; 
return <<< EOF 
<div id="{$userterm}-full-profile"> 
    {include:content} 
</div> 
EOF; 
} 
/* END */ 


} 
// END CLASS 
?> 
+0

구문 형광펜 정말이 시간을 혼동 할 수있다) –

+0

@Felix의 넵는 싸게 치장은 히어 닥 문법을 알고하지 않는 것 같습니다. 버그로 제출해야합니다 ... –

답변

3

파일 당 하나의 클래스 만있는 경우 클래스 수준에서 값을 정의하는 것으로 이미 충분할 수 있습니까? 예 :

class profile_theme { 
    private $globaluserterm = "client"; 
    //.... 
} 

과 기능에

:

return <<<EOF 
<div id="{$userterm}-content"> 
    <h1>{$userterm} Account</h1> (Note: This DOES work) 
    <h1>{$this->globaluserterm} Account</h1> (Note: This doesn't work) 
    {include:member_manager} 
</div> 
EOF; 
+0

이렇게했습니다. 나는 클래스가 어떻게 작동하는지 완전히 이해하지 못하고 있으며 여기에 게시하기 전에 private $ globaluserterm 변수를 참조하는 잘못된 방법을 시도했다. 고마워, 펠릭스! – Bitmanic

1

나는 전적으로 당신에게 달려 무엇인지 이해하지 않습니다하지만 난 당신이 찾고있는 것은 Smarty 같은 템플릿 엔진 생각 :

다음은 축소 된 예제 파일입니다. (날씬하고 대안을 this question를 참조하십시오.) 스마티에서

, 템플릿 파일을 준비 할 것 :

<div id="{$userterm}-content"> 
    <h1>{$userterm} Account</h1> (Note: This DOES work) 
    <h1>{$globaluserterm} Account</h1> (Note: This doesn't work) 
    {include:member_manager} /* Don't know how to do this in smarty */ 
</div> 

사전 채우는 변수 값 :

$Smarty = new Smarty(); 
// ... set up caching etc. if needed ... 

$Smarty->assign("userterm", $value1); 
$Smarty->assign("globaluserterm", $value2); 
..... 

을이 당신이 무엇을하지 않은 경우 찾고있는 것, 당신이하고 싶은 것을 더 자세하게 설명 할 수 있습니까?

+1

또는 포함하여 via를 사용하여 PHP를 사용할 수 있습니다 (예 :

Account

' – webbiedave

관련 문제