Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
mylipetsk

Блок блогов на главной

Рекомендованные сообщения

Очень понравилась реализация вывода блока блогов на главной. Хотелось бы себе сделать так же.. Но для меня такая задача не посильна. Может кто-то видел такой хук? Хотелось бы себе так сделать. Версия форума IPB 3.1.4

 

6f51fc37ef5et.jpg

Поделиться сообщением


Ссылка на сообщение

Это стандартный хук блога, по умолчанию он выключен, его нужно включить. Чтобы получить такой вид, нужно его модифицировать не много.

У меня получилось так:

 

04-07-2011 12-09-50.png

Поделиться сообщением


Ссылка на сообщение

Ну стандартный хук включается справа от форума. Другой хук с блогом включает "особые записи" из блогов. А вот что бы вот так, такого хука нет =(

Ка он называется? Или надо брать хук которые включатся в справа в колонке, и его модифицировать?

Поделиться сообщением


Ссылка на сообщение

Хук называется Recent Blog Entries, он отображается в правом сайдбаре, например как на этом форуме и его нужно модифицировать.

Поделиться сообщением


Ссылка на сообщение

а какие изменения делали вы? :rolleyes:

Поделиться сообщением


Ссылка на сообщение

Засунул всё это дело в хук:

hook.xml

 

Установка:

1) Удалить старый Recent Blog Entries

2) Импортировать новый

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 в файл хука, но опыта пока не достаточно.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
07/04/11 09:54 (изменено)

немного путь до файла неверный

вот правильный admin/applications_addon/ips/blog/sources/classes/hooks/gateway.php

да, сделал, получилось, но вот как сделать в три столбца?

Получается у меня в один столбец все 12 записей из блогов.

Изменено пользователем mylipetsk

Поделиться сообщением


Ссылка на сообщение

Пардон, в файле 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&section=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&section=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&section=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&section=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&section=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&section=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>

 

Пардон, из меня создатель хуков фиговый.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Да вроде у вас нормально получается создавать хуки. Спросить еще вопросик, а как бы мне сделать горизонтальные полосочки разделяющие записи из блогов. ну как на картинке.

Поделиться сообщением


Ссылка на сообщение

Тут бы по-хорошему с помощью таблицы сделать, но я не знаю как сделать чтобы на одном уровне только 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&section=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&section=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&section=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>

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

ну а может жестко сделать, 4 ячейки ине более и не менее. И тогда можно будет провести горизонтальные полоски, да?

Поделиться сообщением


Ссылка на сообщение

Вы хотите чтобы 4 записи только выводились? Ещё раз повторю, я просто не знаю как сверстать в данном случае на таблицах, чтобы выводились 4 ячейки, а 5 шла на другой уровень, я бы оставил вариант на блочной вёрстке, но придётся добавлять оформление (полоску как вы хотите), может другие кто знает, как сверстать на таблицах эту ситуацию, только молчат.)

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...