Leaderboard


Popular Content

Showing content with the highest reputation on 11/25/14 in Сообщения

  1. 1 point
    Движком всегда запускается функция main() из /template/frontend/ваш_шаблон/main/main.php Также все что лежит внутри шаблона не обновляется из центра обновлений, следовательно мы можем там делать все что нам нужно и это сохраниться при обновлениях. Сейчас мы поместим произвольную переменную из кода PHP в шаблон, для этого в функции main(), можно в самом начале сделаем инициализацию переменной: /** * Main * @param void * @return string */ function main () { $this->template->assign('my_var', 'Моя переменная'); ......... дальше идет системный код, его не трогаем Теперь в шаблоне это нам будет доступно так: {$my_var} На сайте эта переменная преобразуется в ее значение Моя переменная Более сложный пример, сделаем SQL-запрос для выборки данных из таблицы. Также в main() /** * Main * @param void * @return string */ function main () { //Класс для работы с базой данных $DBC=DBC::getInstance(); //Подготовим SQL-запрос (получить строчку с данными пользователя по его логину (вместо ? будет подставляться значение) $query = 'SELECT * FROM '.DB_PREFIX.'_user WHERE login=?'; //будем искать пользователя с логином admin //NB использовать '*' при выборке данных пользователя не стоит, лучше конкретно перечислять нужные поля. Потому что можете забыть убрать отладочный вывод и ВСЕ данные пользователя могут быть перехвачены посторонними. $login = 'admin'; //выполняем запрос, смотрите как передаются аргументы $login $stmt=$DBC->query($query, array($login)); if ( $stmt ) { //выжимаем массив данных $ar = $DBC->fetch($stmt); //присваиваем массив в шаблон $this->template->assign('user_array', $ar); } ......... дальше идет системный код, его не трогаем Теперь в шаблоне мы можем получить доступ к этому массиву, этот код выведет все содержимое массива <pre>{$user_array|@print_r}</pre> NB2. Когда отладочный вывод, как в коде выше, вам перестанет быть нужным - удаляйте его или, если комментируете, то комментируйте как {*$user_array|@print_r*} но ни в коем случае не <!--<pre>{$user_array|@print_r}</pre>--> Увидим на сайте примерно такое Array( [user_id] => 1 [login] => admin [pass] => admin [active] => 1 [reg_date] => 2013-07-30 11:18:10 [password] => 21dsfsdfs57a5a743894a0e4a801fc3 [fio] => Кондин Дмитрий Валерьевич [email] => kondin@etown.ru [account] => 0 [group_id] => 1 [company_id] => 0 [phone] => 234-44-23 [site] => http://www.sitebill.ru [imgfile] => img529befac1ca89_1385951148_941.jpg [mobile] => +79138317494 [icq] => 73072365 [newpass] => [newpass_retype] => [admnf] => [tariff_id] => 1) А чтобы получить доступ к отдельному значению из массива, например, к fio, то делаем так: {$user_array.fio} Будет выведено Кондин Дмитрий Валерьевич
  2. 1 point
    У вас все обновлено в админке? Смотрите слева в меню Обновления.
  3. 1 point
    У меня реализовано примерно так: {if !$data}{$title}{else}{$data.topic_id.value_string} {$data.city_id.value_string} {$data.street_id.value_string}{/if}