Создадим страницу, которая будет выводить некую информацию из базы данных, например, 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 >
Вывод страницы происходит по адресу: