Создадим страницу, которая будет выводить некую информацию из базы данных, например, 5 ссылок на страницы сайта. Процесс будет проходить в несколько шагов:
1-й шаг. Создание представления - шаблона страницы (Layout). Создадим новый шаблон с Кодом (Id) – tpl_data_from_db. В поле Название впишите «Шаблон страниц сайта».
Воспользуемся кодом шаблона, созданным в Создание шаблона. Пример:
{ - header - }
< link rel="stylesheet" href="ext/{ * templatename * }/css/style.css" type="text/css" / >
{ - docstart - }
< div id="cover" >
< div id="box" >
< div id="header" >
< div id="logo" >
< div id="logo-img" >< a href='/homepage' >
< img src="main/styles/{ * templatename * }/logo.png" >
< /div >
< div id="logo-sign" >{ * site_slogan * }< /div >
< div id="site-langs" >
{ { sys_snip_page_lang_flags?addstyle=0 } }
< /div >
< /div >
< /div >
< div id="center" >
< h1 >{ * longtitle * }< /h1 >
{ * content * }
< /div >
< div id="footerbox" >
< div id="block-block-12" class="clblock block" >
< div class="right" >Copyright ©
< a href="http://www.wad-er.com" >Wad-er< /a >,
2010 ({ ^ t ^ })< /div >
< /div >
< /div >
< /div >
< /div >
{ - docend - }
2-й шаг. Создание страницы как объекта в Каталоге объектов. В меню панели управления Элементы сайта - Страницы (меню) в контекстном меню выберите Добавить (подробнее об этом - в п.Создание страницы). Заполните поля следующим образом:
3-й шаг. Создание модели - сниппета data_from_db.
В меню панели управления Элементы сайта-Сниппеты создадим сниппет (Создание сниппета).
В поля:
На вкладке php-скрипт вставьте код:
$tpl = isset($tpl) ? $tpl : 'chunk_data_from_db';
$rows = isset($rows) ? $rows : 5;
include_once(SYS_BASE_PATH.'main/classes/wsql.class.php');
$q = new wSql();
$q->lang_suff = $parser->lang_suff;
$q->select('p.objid');
$q->select('p.name as title', '', array('lang' => true));
$q->select('p.str1 AS longtitle', '', array('lang' => true));
$q->from('sys_objects p');
$q->where("p.objtype='sys_elements_pages'");
$q->where('p.bool3=1');
$q->orderby('p.creaton DESC');
$rs = $parser->conn->SelectLimit($q->getSql(), $rows);
if($rs->NumRows() > 0) {
$chunk = $parser->getChunk($tpl);
$loop = (preg_match('|< loop >(.*)|sei', $chunk, $arr)) ? $arr[1] : '';
$outstr = '';
while($row = $rs->FetchRow())
{
$s = str_replace('{ + data.id + }', $row[0], $loop);
$s = str_replace('{ + data.name + }', $row[1] ? $row[1] : $row[2], $s);
$outstr .= $s;
}
print (preg_replace("!< loop >(.*?)< /loop >!si", $outstr, $chunk));
}
Здесь для выполнения запроса к БД был использован конструктор запросов Wad-er Query Builder (WQB) (Конструктор запросов Wad-er Query Builder (WQB)).
4-й шаг. Создание элемента представления – чанка chunk_data_from_db. В меню панели управления Элементы сайта-Чанки создадим чанк (подробнее об этом - в п.Пример создания чанка).
В поле Код (Id) вставьте chunk_data_from_db.
В поле «Название» впишите «Страницы сайта».
На вкладке Код чанка вставьте следующий код:
< h5 class="widget-title" >Список страниц< /h5 >
< ul id="recentcomments" >
< loop >
< li class="recentcomments">{ + data.name + }< /li >
< /loop >
< /ul >
Вывод страницы происходит по адресу: