Это мой главный Index.php с помощью Smarty шаблонов. На этой странице я включаю виджет входа в JQuery, когда активирован в панели администратора. $ sel - ваша $ страница.
Он проходит через коммутатор. Я добавляю больше просмотров для индексной страницы, например, в виде рекламы для тех, кто попадает туда, хотя есть реклама Google. Таким образом, реклама может ссылаться на? Sel = googlead1, и я могу отобразить страницу на основе этого.
Я называю свой класс и загрузить подлинности пользователя (метод, называемый обновит его присутствие на сайте, чтобы его не бесполезна)
Затем я загрузить выбранную страницу с помощью вызова функции. После этого я выхожу из выполнения кода.
В этой функции я вызываю общий виджет для нескольких страниц, что позволяет пользователю входить в систему через панель JQuery. Это получает страницу.
include "./include/includes.php";
$sel=null;
if(isset($_POST["sel"]) or isset($_GET["sel"]))
{
$sel =isset($_POST["sel"])?$_POST["sel"]:$_GET["sel"];
}
$auth = new authentification($dbconn, "", "","");
$user = $auth->checkuser();
switch($sel){
default: IndexPage();
}
exit;
function IndexPage(){
global $smarty, $lang, $config;
//load the text for the login
$smarty->assign("text", $lang["basiclogin"]);
if($config["auth_widget"] == "true")
{
$smarty->assign("auth_widget",getAuthWidget());
}
//display the whole index page
$smarty->display($config["index_theme_path"]."/index_page.tpl");
exit;
}
В реальной index_page.tpl я загрузить виджет так:
{if isset($auth_widget)}
<div id="auth_widget" style="float:right;">
{$auth_widget}
</div>
{/if}
Надежда это помогает показать еще один способ организовать свой код с Smarty (который является действительно удивительным, на мой взгляд)
Редактирование: вот общая функция getAuthWidget - обратите внимание, что вместо отображения отображается выборка.
/**
* Allows various pages to get the authentification widget if desired
* @global Object $smarty
* @global Array $lang
* @global Array $config
* @global Array $user
* @return Page returns the fetched template widget
*/
function getAuthWidget($err = ""){
global $smarty, $lang, $config, $user;
$smarty->assign("text", $lang["basiclogin"]);
//check if user is loaded, if not, throw error
if(isset($user) && $user["id"] >= -1)
{
$smarty->assign("user", $user);
}
else
{
echo "user not set";
exit;
}
return $smarty->fetch($config["index_theme_path"]."/auth_widget.tpl");
}
Smarty просто шаблонный движок, он не заботится «как» или «почему» страница загружена. Что вы делаете, это сделать контроллер передней панели. Обычно то, что люди будут делать, - это маршрут запроса (uri) к определенному методу controller->, а не напрямую загружать шаблоны, как вы сейчас делаете. Это, как говорится, нет ничего плохого в том, как вы это делаете. – Supericy
Хорошо, держи это так. – sofl