mylipetsk 14 07/04/11 05:46 Очень понравилась реализация вывода блока блогов на главной. Хотелось бы себе сделать так же.. Но для меня такая задача не посильна. Может кто-то видел такой хук? Хотелось бы себе так сделать. Версия форума IPB 3.1.4 Поделиться сообщением Ссылка на сообщение
Lesovsky 184 07/04/11 08:22 Это стандартный хук блога, по умолчанию он выключен, его нужно включить. Чтобы получить такой вид, нужно его модифицировать не много.У меня получилось так: Поделиться сообщением Ссылка на сообщение
mylipetsk 14 07/04/11 08:38 Ну стандартный хук включается справа от форума. Другой хук с блогом включает "особые записи" из блогов. А вот что бы вот так, такого хука нет =(Ка он называется? Или надо брать хук которые включатся в справа в колонке, и его модифицировать? Поделиться сообщением Ссылка на сообщение
Lesovsky 184 07/04/11 08:52 Хук называется Recent Blog Entries, он отображается в правом сайдбаре, например как на этом форуме и его нужно модифицировать. Поделиться сообщением Ссылка на сообщение
mylipetsk 14 07/04/11 09:36 а какие изменения делали вы? :rolleyes: Поделиться сообщением Ссылка на сообщение
Lesovsky 184 07/04/11 09:47 Засунул всё это дело в хук:hook.xml Установка:1) Удалить старый Recent Blog Entries2) Импортировать новый3) Сделать изменения в файле admin/applications_addon/ips/blog/sources/classes/hooks/gateway.php Найти: $this->DB->build( array('select' => 'e.entry_id, e.entry_last_update, e.entry_name, e.blog_id, e.entry_name_seo, e.entry_author_id, e.entry_date', 'from' => array('blog_entries' => 'e' ), 'where' => $_where, 'order' => 'e.entry_date DESC', 'limit' => array( 0, 5 ), 'add_join' => array( array( 'select' => 'b.blog_name, b.blog_seo_name', 'from' => array( 'blog_blogs' => 'b' ), 'where' => 'b.blog_id=e.blog_id', 'type' => 'left' ) ) ) ); Заменить на: $this->DB->build( array('select' => 'e.entry_id, e.entry_last_update, e.entry_name, e.blog_id, e.entry_name_seo, e.entry_author_id, e.entry_date', 'from' => array('blog_entries' => 'e' ), 'where' => $_where, 'order' => 'e.entry_date DESC', 'limit' => array( 0, 12 ), 'add_join' => array( array( 'select' => 'b.blog_name, b.blog_seo_name', 'from' => array( 'blog_blogs' => 'b' ), 'where' => 'b.blog_id=e.blog_id', 'type' => 'left' ) ) ) ); По хорошему бы, перенести функцию из gateway.php в файл хука, но опыта пока не достаточно. 1 Поделиться сообщением Ссылка на сообщение
mylipetsk 14 07/04/11 09:54 (изменено) немного путь до файла неверныйвот правильный admin/applications_addon/ips/blog/sources/classes/hooks/gateway.phpда, сделал, получилось, но вот как сделать в три столбца?Получается у меня в один столбец все 12 записей из блогов. Изменено 4 июля 2011 пользователем mylipetsk Поделиться сообщением Ссылка на сообщение
Lesovsky 184 07/04/11 10:13 Пардон, в файле gateway.php указан другой шаблон, не hookRecentBlogEntries, а recentEntries. По этому нужно заменить. Ваш шаблон > Шаблоны > blog_portal ((Блог) Дополнение портала) > recentEntries Весь шаблон: <div class='general_box clearfix'> {parse striping="recententries" classes="row1,row2"} <h3><img src='{$this->settings['img_url']}/comment_new.png' alt='' /> <if test="isset($this->lang->words['recently_added_entries'])">{$this->lang->words['recently_added_entries']}<else />{$this->lang->words['latest_entries_title']}</if></h3> <ul class='hfeed block_list' style='padding:0px'> <if test="is_array( $entries )"> <foreach loop="$entries as $eid => $entry"> <li class='{parse striping="recententries"}' style='clear:both'> <img src='{$entry['pp_mini_photo']}' width='{$entry['pp_mini_width']}' height='{$entry['pp_mini_height']}' alt='' class='photo' style='float:left' /> <div class='nexttophoto' style='padding:2px 6px 2px 6px; margin-left: 40px;'> <if test="newcomment:|:$entry['newpost']"> <a href="{parse url="app=blog&module=display§ion=blog&blogid={$entry['blog_id']}&showentry={$entry['entry_id']}&show=newcomment" template="showentry" seotitle="{$entry['entry_name_seo']}" base="public"}">{parse replacement="f_newpost"}</a> </if> <a href="{parse url="app=blog&module=display§ion=blog&blogid={$entry['blog_id']}&showentry={$entry['entry_id']}" template="showentry" seotitle="{$entry['entry_name_seo']}" base="public"}">{$entry['entry_name']}</a> <p class='desc'><a href='{parse url="app=blog&module=display§ion=blog&blogid={$entry['blog_id']}" template="showblog" seotitle="{$entry['blog_seo_name']}" base="public"}'><strong>{$entry['blog_name']}</strong></a> {parse date="$entry['entry_date']" format="short"}</p> </div> </li> </foreach> </if> </ul> </div> Заменить на: <h3 class='maintitle'><img src='{$this->settings['img_url']}/comment_new.png' alt='' /> <if test="isset($this->lang->words['recently_added_entries'])">{$this->lang->words['recently_added_entries']}<else />{$this->lang->words['latest_entries_title']}</if></h3> <div class='general_box clearfix'> <if test="is_array( $entries )"> <foreach loop="$entries as $eid => $entry"> <div class='' style='display: block; float: left; width: 23%; margin: 5px;'> <img src='{$entry['pp_mini_photo']}' width='{$entry['pp_mini_width']}' height='{$entry['pp_mini_height']}' alt='' class='photo' style='float:left' /> <div class='nexttophoto' style='padding:2px 6px 2px 6px; margin-left: 40px;'> <if test="newcomment:|:$entry['newpost']"> <a href="{parse url="app=blog&module=display§ion=blog&blogid={$entry['blog_id']}&showentry={$entry['entry_id']}&show=newcomment" template="showentry" seotitle="{$entry['entry_name_seo']}" base="public"}">{parse replacement="f_newpost"}</a> </if> <a href="{parse url="app=blog&module=display§ion=blog&blogid={$entry['blog_id']}&showentry={$entry['entry_id']}" template="showentry" seotitle="{$entry['entry_name_seo']}" base="public"}">{$entry['entry_name']}</a> <p class='desc'><a href='{parse url="app=blog&module=display§ion=blog&blogid={$entry['blog_id']}" template="showblog" seotitle="{$entry['blog_seo_name']}" base="public"}'><strong>{$entry['blog_name']}</strong></a> {parse date="$entry['entry_date']" format="short"}</p> </div> </div> </foreach> </if> </div> Пардон, из меня создатель хуков фиговый. 1 Поделиться сообщением Ссылка на сообщение
mylipetsk 14 07/04/11 11:57 Да вроде у вас нормально получается создавать хуки. Спросить еще вопросик, а как бы мне сделать горизонтальные полосочки разделяющие записи из блогов. ну как на картинке. Поделиться сообщением Ссылка на сообщение
Lesovsky 184 07/04/11 17:48 Тут бы по-хорошему с помощью таблицы сделать, но я не знаю как сделать чтобы на одном уровне только 4 ячейки, а 5 переносилась на второй уровень. {parse striping="recententries" classes="row1,row2"} <h3 class='maintitle'><img src='{$this->settings['img_url']}/comment_new.png' alt='' /> <if test="isset($this->lang->words['recently_added_entries'])">{$this->lang->words['recently_added_entries']}<else />{$this->lang->words['latest_entries_title']}</if></h3> <table summary="" class='ipb_table'> <tbody> <tr> <if test="is_array( $entries )"> <foreach loop="$entries as $eid => $entry"> <td class="{parse striping="recententries"}" style="width: 25%;"> <img src='{$entry['pp_mini_photo']}' width='{$entry['pp_mini_width']}' height='{$entry['pp_mini_height']}' alt='' class='photo' style='float:left' /> <div class='nexttophoto' style='padding:2px 6px 2px 6px; margin-left: 40px;'> <if test="newcomment:|:$entry['newpost']"> <a href="{parse url="app=blog&module=display§ion=blog&blogid={$entry['blog_id']}&showentry={$entry['entry_id']}&show=newcomment" template="showentry" seotitle="{$entry['entry_name_seo']}" base="public"}">{parse replacement="f_newpost"}</a> </if> <a href="{parse url="app=blog&module=display§ion=blog&blogid={$entry['blog_id']}&showentry={$entry['entry_id']}" template="showentry" seotitle="{$entry['entry_name_seo']}" base="public"}">{$entry['entry_name']}</a> <p class='desc'><a href='{parse url="app=blog&module=display§ion=blog&blogid={$entry['blog_id']}" template="showblog" seotitle="{$entry['blog_seo_name']}" base="public"}'><strong>{$entry['blog_name']}</strong></a> {parse date="$entry['entry_date']" format="short"}</p> </div> </td> </foreach> </if> </tr> </tbody> </table> 1 Поделиться сообщением Ссылка на сообщение
mylipetsk 14 07/05/11 16:06 ну а может жестко сделать, 4 ячейки ине более и не менее. И тогда можно будет провести горизонтальные полоски, да? Поделиться сообщением Ссылка на сообщение
Lesovsky 184 07/05/11 16:32 Вы хотите чтобы 4 записи только выводились? Ещё раз повторю, я просто не знаю как сверстать в данном случае на таблицах, чтобы выводились 4 ячейки, а 5 шла на другой уровень, я бы оставил вариант на блочной вёрстке, но придётся добавлять оформление (полоску как вы хотите), может другие кто знает, как сверстать на таблицах эту ситуацию, только молчат.) 1 Поделиться сообщением Ссылка на сообщение