-LoRD- 0 03/13/2011 04:52 PM Добрый вечер.Задача у меня очень простая:Нужно вывести в boardIndexTemplate содержимое переменной starter_name из таблицы topics. (на главной, под отображением последней темы и последнего ответившего- вывести автора этой последней темы) last_topic_id получить удается и все запросы к таблице forums проходят нормально через переменную $forum_data а вот как обратится к таблице topics? Похоже, что нужно как-то декларировать переменную, содержащую данные из topics но как и где это сделать я не нашел. Добавить дополнительную переменную к шаблону (через кнопку в шапке редактора) не удается, так как при сохранении вылазят ошибки и переменная не добавляется. Буду очень благодарен за любые наводки, так же если есть где-то FAQ по логике шаблонов 3.x.x - буду благодарен. Share this post Link to post
Fisana 700 03/13/2011 05:24 PM Может надо способ вывода в forums (где список тем) смотреть?Как туда данныйе о ТС выводятся? 1 Share this post Link to post
V757 4 03/13/2011 07:07 PM Возможно я не очень правильно понимаю как работает IPB. Но что значит декларировать переменную? Ее нужно не только декларировать ей нужно присвоить соответствующее значение. Сначала в соответсвующем скрипте формируются массив переменных посредством запросов к базе, и потом вызывается шаблон. Share this post Link to post
-LoRD- 0 03/13/2011 07:15 PM (edited) Сначала в соответсвующем скрипте формируются массив переменных посредством запросов к базе, и потом вызывается шаблон.Нельзя просто добавить даже использующуюся в других шаблонах скина переменную, она просто не будет функционировать. Поэтому в этом и весь вопрос. Как сопоставить переменную определенного шаблона и присвоение ей значения из базы? Edited March 13, 2011 by -LoRD- Share this post Link to post
V757 4 03/13/2011 07:28 PM @-LoRD-, Нельзя просто добавить даже использующуюся в других шаблонах скина переменную, она просто не будет функционировать.Так она же существует только в конкретный момент времени работы соответствующего скрипта.Поэтому в этом и весь вопрос. Как сопоставить переменную определенного шаблона и присвоение ей значения из базы? Стандартным образом. Идете в php скрипт, который заполняет BoardIndexTemplate, формируете запрос в базу, получаете значение и вызываете шаблон, в котором предварительно вставляете вашу переменную. А вот куски кода можно взять из скрипта, который заполняет шаблон, там где это переменная есть. 1 Share this post Link to post
-LoRD- 0 03/14/2011 06:20 PM Судя по всему вы отлично разбираетесь в этом. Если вас не затруднит, могли бы вы привести конкретные фаилы для описанного в первом сообщении.Заранее благодарен. Share this post Link to post
siv1987 2,629 03/14/2011 06:42 PM -LoRD-, если это чем-нибудь поможет, то файл admin\applications\forums\modules_public\forums\boards.php :) Вам нужно выбрать данные из таблицы topics, где tid темы (topics) равен last_id из таблицы forums. А лучше бросить эту затею. Share this post Link to post
-LoRD- 0 03/16/2011 07:08 PM Значение присвоено. Как теперь вызвать переменную в конкретном шаблоне? А лучше бросить эту затею.Почему? Думаю не мне одному пригодятся знания по этой теме. Share this post Link to post
V757 4 03/16/2011 07:24 PM @-LoRD-, ну тогда дерзай, сегодня как раз попался кусок этот, если я правильно понял, что речь идет о хуке "Последние сообщения"Это в файле .....\admin\applications\forums\sources\classes\forums\class_forums.php строка 2420, там такой запрос$this->registry->DB()->build( array( 'select' => 't.tid, t.title, t.title_seo, t.start_date, t.starter_id, t.starter_name, t.moved_to, t.views, t.posts', 'from' => array( 'topics' => 't' ), 'where' => 't.tid IN (' . implode( ',', array_values( $_topics ) ) . ')', 'add_join' => array( array( 'select' => 'm.member_id, m.members_display_name, m.members_seo_name', 'from' => array( 'members' => 'm' ), 'where' => 'm.member_id=t.starter_id', 'type' => 'left', ) ) ) );если его немного модифицировать ....t.starter_name, t.last_poster_name, t.moved_to,... , то в шаблоне hookRecentTopics можно будет использовать $r['last_poster_name']. Share this post Link to post