Создание новой страницы
Не раз видел, что у новичков (таких же как и я) возникал впорос как созать новую страницу без стандартного плагина «StaticPage», т.е. вручную.
Создаем страницу: site.ru/price/
1) Создаем папку ActionPrice здесь: templates\skin\grey\actions
2) Создаем в папке ActionPrice файл index.tpl. и пишем в нем вот ЭТО:
3) в файле russian.php, который находится templates\language добавляем вот ЭТО:
4) Создаем файл ActionPrice.class.php и пихаем его в classes\actions.
5) Открываем новоиспеченный файл ActionPrice.class.php и копируем в него вот ЭТО:
Не уверен, что в этом коде нет ничего лишнего, но по крайней мере работает))
6)В файле config.php после строки
Пишем вот ЭТО:
Все. У вас теперь новая страничка, делайте с ней что хотите)
__________________________________________________________
1) В ActionPrice.class.php добавляем после ЭТОГО
вот ЭТО
и после ЭТОГО
вот ЭТО
2) Создаем файл kirpich.tpl здесь templates\skin\grey\actions\actionprice и пишем в нем вот ЭТО
Ну и все. Теперь нам неповоротливый плагин StaticPage не нужен точно.
Создаем страницу: site.ru/price/
1) Создаем папку ActionPrice здесь: templates\skin\grey\actions
2) Создаем в папке ActionPrice файл index.tpl. и пишем в нем вот ЭТО:
{include file='header.tpl'}
HI, I'AM PRICE-LIST!!
{include file='footer.tpl'}
3) в файле russian.php, который находится templates\language добавляем вот ЭТО:
'price' => 'Прайс-лист',
4) Создаем файл ActionPrice.class.php и пихаем его в classes\actions.
5) Открываем новоиспеченный файл ActionPrice.class.php и копируем в него вот ЭТО:
<?php
/**
* Обработка страницы Price, т.е. УРЛа вида /price/
*
*/
class ActionPrice extends Action {
protected $sMenuHeadItemSelect='';
protected $sMenuItemSelect='price';
protected $sMenuSubItemSelect='';
/**
* Инициализация
*
*/
public function Init() {
$this->Viewer_AddHtmlTitle($this->Lang_Get('price')); // Имя страницы title, берет из templates\language\russian.php
}
/**
* Регистрация евентов
*
*/
protected function RegisterEvent() {
$this->AddEventPreg('/^(page(\d+))?$/i','EventPrice'); // Регистрируем евент Price
}
/**********************************************************************************
************************ РЕАЛИЗАЦИЯ ЭКШЕНА ***************************************
**********************************************************************************
*/
/**
* Реализация евента
*
*/
protected function EventPrice() { // Регистрируем реализуем евент Price
/**
* Устанавливаем шаблон вывода
*/
$this->SetTemplateAction('index');
}
/**
* При завершении экшена загружаем переменные в шаблон
*
*/
public function EventShutdown() {
$this->Viewer_Assign('sMenuHeadItemSelect',$this->sMenuHeadItemSelect);
$this->Viewer_Assign('sMenuItemSelect',$this->sMenuItemSelect);
$this->Viewer_Assign('sMenuSubItemSelect',$this->sMenuSubItemSelect);
}
}
?>
Не уверен, что в этом коде нет ничего лишнего, но по крайней мере работает))
6)В файле config.php после строки
$config['router']['page']['index'] = 'ActionIndex';
Пишем вот ЭТО:
$config['router']['page']['price'] = 'ActionPrice';
Все. У вас теперь новая страничка, делайте с ней что хотите)
__________________________________________________________
P.S.
Если вы хотите добавить страничку вида типа site.ru/price/kirpich то1) В ActionPrice.class.php добавляем после ЭТОГО
$this->AddEventPreg('/^(page(\d+))?$/i','EventPrice');
вот ЭТО
$this->AddEvent('Kirpich','EventKirpich');
и после ЭТОГО
$this->SetTemplateAction('index');
}
вот ЭТО
protected function EventKirpich() {
/**
* Устанавливаем шаблон вывода
*/
$this->SetTemplateAction('kirpich');
}
2) Создаем файл kirpich.tpl здесь templates\skin\grey\actions\actionprice и пишем в нем вот ЭТО
{include file='header.tpl'}
HI, I'AM PRICE-LIST FOR KIRPICH!!
{include file='footer.tpl'}
Ну и все. Теперь нам неповоротливый плагин StaticPage не нужен точно.
28 комментариев
www.smsrostov.ru/maplist/
В \templates\skin\new\actions\ActionMapList\index.tpl просто добавил вызов своего скрипта:
Для создания навигации пришлось доточить напильником:
header_nav.tpl
в созданном menu.maplist.tpl
то есть, хотелось бы некоторым пользователям дать права на редактирование данных, которые будут выводиться на том же maplist
и этот функционал как-то должен быть доступен из под их «админки»/«модераторской»
создавал все тоже самое, только страницу TopicMap
Для синио 1.0.1 хотелось бы узнать, как сие реализовать