Как вывести переменные из запроса в плагине в шаблон?

#1 2 июля 2014 в 09:04
Пересмотрел несколько плагинов, все никак не дошло мне, как же вывести переменные из запроса в плагине.
К примеру, запрос с того же форума:
  1.  
  2. $sql = "SELECT p.pubdate, p.id, p.content_html,
  3. u.nickname as author_nickname,
  4. u.login as author_login,
  5. t.title as thread_title, t.id as thread_id, t.post_count
  6. FROM cms_forum_posts p
  7. INNER JOIN cms_forum_threads t ON t.id = p.thread_id
  8. INNER JOIN cms_forums f ON f.id = t.forum_id AND f.NSLeft >= '{$left_key}' AND f.NSRight <= '{$right_key}'
  9. LEFT JOIN cms_users u ON u.id = p.user_id
  10. ORDER BY p.pubdate DESC
  11. LIMIT 1";
  12.  
  13. $result = $this->inDB->query($sql) ;
  14. if (!$this->inDB->num_rows($result)){ return array(); }
  15.  
и применить эти данные на какой-то другой странице — скажем в блогах. В итоге в блоги вношу переменные — а фигусь, ничего не выводит. С помощью

  1. foreach($items as $i=>$item){
  2. $items[$i]['content'] .= '..............';
  3. print_r($comment);
  4. }
  5. return $items;
(в файле плагина если прописать) выводятся точки в нужном месте, как и должно быть.
С ивентами разобрался, с выводом какой-то инфы в нужном мне месте — так же. Осталось как-то понять, как работать с выбранными данными из БД, т.е., передача в шаблон.

По сути, как я понимаю, надо как-то еще дополнительно обработать переменную $result, дабы в шаблон попала каждая переменная отдельно из запроса. Но как?)

чёт самовар под утро уже не варит laugh
Заранее благодарю за помощь.
#2 2 июля 2014 в 11:21
scanread, а причем тут $result и $items разные переменные.

Начнем с того, куда ты запихал(в какой файл) запрос? и я не вижу чтоб у тебя было присвоение к перменных что используются в темплейтах.
#3 2 июля 2014 в 12:38
scanread, вся проблема в том, что вы не понимаете, как работает плагин. А работает он так:
1. В фронтэнде компонента стоит точка вызова или ловушка (синонимы — хук, эвент, событие) которая через ядро вызывает плагин. Если ловушка стоит, а плагина нет, ничего страшного, плагин просто не вызывается.
2. Плагин получает $item из точки своего вызова, делает с этими данными то, что должен делать и возвращает обратно.
3. Точка вызова прописывает данные, которые вернул плагин вместо той переменной, с которой вызывала плагин:
  1. $item = cmsCore::callEvent('SET_HOOK', $item);
Передача в шаблон. Фронтэнд формирует переменную, например, $a=3.14. Затем в шаблон нужно передать имя и значение переменной:
  1. cmsPage::initTemplate('components', 'com_club_users_config')->
  2. assign('a', $a)->
  3. display('com_club_users_config.tpl');
И в шаблоне пишем {$a}
Выведет 3.14
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.