Использование PHP переменных внутри этих документов внутри функций внутри класса
Если название еще не отпугнуло вас, читайте дальше. Я работаю на веб-сайте ExpressionEngine и редактирую файл шаблонов членов. Все шаблоны, связанные с взаимодействием членов, хранятся как функции внутри класса в одном файле.
Каждая из этих функций представляет собой простой документ, но многие из них печатают код с путями и терминами, которые я не хочу использовать. Например, этот веб-сайт будет ссылаться на вошедших пользователей как на "клиентов", а не "члены." В любом случае, я ищу способ абстрагировать эти значения, чтобы я мог легко изменить их для этого и будущих проектов. Прямо сейчас я могу печатать переменные внутри этих документов, определяя их Внутри каждой функции. Я бы предпочел определить эти значения в верхней части файла, прежде чем класс будет определен, но я не могу получить здесь документы, чтобы распознать эти значения.Вот сокращенный пример файла:
<?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
?>
2 ответа:
Если у вас есть только один класс на файл, может быть, уже достаточно определить значения на уровне класса? Например,
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;
Я не совсем понимаю, что вы задумали, но я думаю, что вы ищете шаблонный движок, такой как Smarty. (Смотрите этот вопрос для более простых альтернатив.)
В Smarty вы подготовите файл шаблона:
<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); .....