[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: модуль шаблонов для CMS
johniek_comp
Как сделать шаблоны на сайте? напр. tpl/themes/thfirst и т.д., хранить название в базе менять их через админку, и смотреть какой шаблон нужен такой и подключать? такого не хочу допустить ибо глупо наверно, поделитесь пожалуйста мнениями.



Спустя 37 минут, 9 секунд (28.12.2011 - 22:04) inpost написал(а):
johniek_comp
Какой нужен, такой и подключай. Не забудь проверить на существование файла под №1, и правильность запроса, чтобы в адресной строке нельзя было записать другой файл, к которому автоматически будет подключен.

Спустя 9 минут, 43 секунды (28.12.2011 - 22:13) johniek_comp написал(а):
inpost
так как это сделать? как в cms это реализовано не скажешь?

Спустя 38 минут, 40 секунд (28.12.2011 - 22:52) Игорь_Vasinsky написал(а):
ну ты установи к примеру WP и глянь - ни чё сложного, вроде на ирбисе есть инфо wink.gif

Спустя 14 часов, 13 минут, 12 секунд (29.12.2011 - 13:05) johniek_comp написал(а):
Игорь_Vasinsky
не нашел на ирбисе. там вроде такого и не было, ну под мою задачу точно

Спустя 7 часов, 9 минут, 47 секунд (29.12.2011 - 20:15) Shadez написал(а):
Если используется одна точка входа в приложение, грузить шаблон в зависимости от контроллера, если несколько - задавать в файле имя шаблона.
Если нужна возможность смены темы, хранить её в конфиге или в базе (сопоставив с путем папки шаблонов, разумеется).

<?php
define('TEMPLATES_DIR', 'templates');
///
abstract class Controller
{
protected $m_templateName = 'default.tpl';

public function template()
{
// Some actions
ob_start();
include(TEMPLATES_DIR . DIRECTORY_SEPARATOR . $this->m_templateName);
$data = ob_get_contents();
ob_clean();

return $data;
}
}


class Home extends Controller
{
protected $m_templateName = 'home.tpl';
}

class Login extends Controller
{
protected $m_templateName = 'login.tpl';
}

class Error404 extends Controller
{
protected $m_templateName = 'error.tpl';
}
////

if (isset($_GET['page']))
{
switch ($_GET['page'])
{
case 'home':
$controller = new Home();
case 'login':
$controller = new Login();
break;
default:
$controller = new Error404();
break;
}
}

else
$controller = new Home();

echo $controller->template();

unset($controller);

Спустя 2 часа, 27 минут, 28 секунд (29.12.2011 - 22:42) Игорь_Vasinsky написал(а):
:D :D :D :D ну скока раз говорить... без абстракных классов - ему не подойдёт ;)


Цитата
DIRECTORY_SEPARATOR


у меня круче

THIS_IS_MY_DEFINED_CONSTANT_FROM_ANY_DIRECTORY_SEPORATORS

Спустя 11 минут, 18 секунд (29.12.2011 - 22:54) TranceIT написал(а):
У меня сделано так:


define ('TEMPLATE', 'default') // Выбор шаблона


Структура папок
/skins/default
/skins/red
/skins/blue
...

Просто изменяя TEMPLATE у меня изменяется шаблон.


_____________
user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.