Перейти к контенту

Как сделать старый вид списка блогов


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

Как сделать вывод списка блогов на старый лад в IP.Blog 1.4.x.

Внимание! Во всех пунктах, где встречается java script, писать его надо слитно!!

 

Результат: http://floomby.ru/content/3d15292d-42e6-4c...c12b4d320b.html

 

skin_blog_list -> bloglist_start_regular:

пробел

 

skin_blog_list -> bloglist_page_end:

<if="$ttl">
</ul>
<div class='clear'></div>
</div>
</if>

заменить на

<if="$ttl">
</table>
<div class="catend"><!-- no content --></div>
</div>
</if>

 

skin_blog_list -> bloglist_end_pinned:

<tr>
<td colspan="9" class="darkrow1">{$this->ipsclass->lang['bloglist_end_pinned']}</td>
</tr>

 

skin_blog_list -> bloglist_start_pinned:

<tr>
<td colspan="9" class="darkrow1">{$this->ipsclass->lang['bloglist_start_pinned']}</td>
</tr>

 

skin_blog_list -> bloglist_start_favourites:

<tr>
<td colspan="9" class="darkrow1">{$this->ipsclass->lang['bloglist_end_favourites']}</td>
</tr>

 

 

skin_blog_list -> bloglist_show_extrow:

<!-- Entry for {$blog['blog_id']} -->
<tr>
	<td width="1%" class="row2">
		<img border="0" src="{$this->ipsclass->vars['img_url']}/be_new.gif"/>
	</td>
	<td class="row2">
		<strong><a href="{$blog['url']}" <if="$this->ipsclass->vars['blog_exturl_newwindow']"> target="_blank"</if>>{$blog['blog_name']}</a></strong>
	</td>
	<td class="row2">
		<strong><a href="{$this->ipsclass->base_url}showuser={$blog['member_id']}" title="{$blog['members_display_name']}">{$blog['members_display_name']}</a></strong>
	</td>
	<td align="center" class="row1">—</td>
	<td align="center" class="row1">
		{$blog['blog_num_exthits']} {$this->ipsclass->lang['visits']}
	</td>
	<td align="center" class="row2">—</td>
	<td align="center" class="row1">—</td>
	<td class="row2">—</td>
	<td align="center" class="row2">
		<if="$this->ipsclass->member['g_blog_ismod'] and $blog['bidon'] == 1">
		<a href="#" title="{$this->ipsclass->lang['click_for_mod']}" onclick="blog_toggle_bid('{$blog['blog_id']}'); return false;"><img name="img{$blog['blog_id']}" src="{$this->ipsclass->vars['img_url']}/topic_selected.gif" /></a>
		</if>
		<if="$this->ipsclass->member['g_blog_ismod'] and $blog['bidon'] == 0">
		<a href="#" title="{$this->ipsclass->lang['click_for_mod']}" onclick="blog_toggle_bid('{$blog['blog_id']}'); return false;"><img name="img{$blog['blog_id']}" src="{$this->ipsclass->vars['img_url']}/topic_unselected.gif" /></a>
		</if>	
	</td>
</tr>
<!-- End of Entry -->

 

skin_blog_list -> bloglist_show_row:

<!-- Entry for {$blog['blog_id']} -->
<tr>
	<td width="1%" class="row2">
		<if="$blog['icon']">
			<a id="b-{$blog['blog_id']}" href="{$this->ipsclass->base_url}autocom=blog&req=markread&blogid={$blog['blog_id']}" title="{$this->ipsclass->lang['blog_markread']}"  onclick='blog_send_marker_update( "{$blog['blog_id']}" );return false;'><img src='{$this->ipsclass->vars['img_url']}/bb_new.gif' /></a>
		<else />
			<img src='{$this->ipsclass->vars['img_url']}/bb_nonew.gif' />
		</if>
	</td>
	<td class="row2">
		<div style="float: right;">{$blog['favicon']}</div>
		<if="$this->ipsclass->vars['blog_enable_rating'] && $blog['blog_rating_count']>$this->ipsclass->vars['blog_rating_treshhold']">
			<span title="{$blog['blog_rating']} {$this->ipsclass->lang['rate_out_of']}; {$this->ipsclass->lang['rate_votes']} {$blog['blog_rating_count']}">{$blog['blog_rate_img']}</span>
		</if>
		<strong><a href="{$blog['url']}">{$blog['blog_name']}</a></strong><br />
		<span class='desc'>{$blog['blog_desc']}</span>
	</td>
	<td class="row2">
		<strong><a href="{$this->ipsclass->base_url}showuser={$blog['member_id']}" title="{$blog['members_display_name']}">{$blog['members_display_name']}</a></strong>
	</td>
	<td align="center" class="row1">{$blog['blog_num_entries']}</td>
	<td align="center" class="row1">{$blog['blog_num_views']}</td>
	<td class="row2">
			<if="$blog['blog_last_entry']">
				<span class='desc'>{$blog['blog_last_date']}</span><br />
				<a href="{$blog['url']}showentry={$blog['blog_last_entry']}" title='{$this->ipsclass->lang['list_goto_entry']} {$blog['blog_last_entrytitle']}'>{$blog['blog_last_entryname']}</a>
			<else />
				<em>{$blog['members_display_name']} {$this->ipsclass->lang['no_entries_to_show']}</em>
			</if>
	</td>
	<td align="center" class="row1">{$blog['blog_num_comments']}</td>
	<td class="row2">
		<if="$blog['blog_last_comment_entry']">
		<span class="desc"><a href="{$blog['url']}showentry={$blog['blog_last_comment_entry']}&show=lastcomment"> <{LAST_POST}></a> {$blog['blog_last_comment_date']}</span><br/>
		<strong>{$this->ipsclass->lang['in']}</strong> <a href="{$blog['url']}showentry={$blog['blog_last_comment_entry']}" title='{$this->ipsclass->lang['list_goto_entry']} {$blog['blog_last_comment_entrytitle']}'>{$blog['blog_last_comment_entryname']}</a><br/>
		<strong>{$this->ipsclass->lang['by']}</strong> <a href="{$this->ipsclass->base_url}showuser={$blog['blog_last_comment_mid']}" title="{$blog['blog_last_comment_name']}">{$blog['blog_last_comment_name']}</a>
		<else />
		—
		</if>
	</td>
	<td align="center" class="row2">
		<if="$this->ipsclass->member['g_blog_ismod'] and $blog['bidon'] == 1 AND $listmod">
		<a href="#" title="{$this->ipsclass->lang['click_for_mod']}" onclick="blog_toggle_bid('{$blog['blog_id']}'); return false;"><img name="img{$blog['blog_id']}" src="{$this->ipsclass->vars['img_url']}/topic_selected.gif" /></a>
		</if>
		<if="$this->ipsclass->member['g_blog_ismod'] and $blog['bidon'] == 0 AND $listmod">
		<a href="#" title="{$this->ipsclass->lang['click_for_mod']}" onclick="blog_toggle_bid('{$blog['blog_id']}'); return false;"><img name="img{$blog['blog_id']}" src="{$this->ipsclass->vars['img_url']}/topic_unselected.gif" /></a>
		</if>			
	</td>
</tr>
<!-- End of Entry -->

 

skin_blog_list -> bloglist_page_header, в конец добавить:

<div class="borderwrap">
<div class="maintitle">
	<p><{CAT_IMG}> {$this->ipsclass->lang['blog_list']}</p>
</div>
<table cellspacing="1" class="ipbtable">
	<tbody><tr>
		<th width="25%" nowrap="nowrap" colspan="2"><a href="java script: do_sort( 'blog_name', '{$sort_orders['blog_name']}');">{$this->ipsclass->lang['bloglist_name']} {$sort_pics['blog_name']}</a></th>
		<th width="12%" nowrap="nowrap"><a href="java script: do_sort( 'members_display_name', '{$sort_orders['members_display_name']}');">{$this->ipsclass->lang['bloglist_member']} {$sort_pics['members_display_name']}</a></th>
		<th width="8%" nowrap="nowrap" align="center"><a href="java script: do_sort( 'blog_num_entries', '{$sort_orders['blog_num_entries']}');">{$this->ipsclass->lang['blog_num_entries']} {$sort_pics['blog_num_entries']}</a></th>
		<th width="8%" nowrap="nowrap" align="center"><a href="java script: do_sort( 'blog_num_views', '{$sort_orders['blog_num_views']}');">{$this->ipsclass->lang['blog_num_views']} {$sort_pics['blog_num_views']}</a></th>
		<th width="20%" nowrap="nowrap" align="center"><a href="java script: do_sort( 'blog_last_date', '{$sort_orders['blog_last_date']}');">{$this->ipsclass->lang['blog_last_entry']} {$sort_pics['blog_last_date']}</a></th>
		<th width="10%" nowrap="nowrap" align="center"><a href="java script: do_sort( 'blog_num_comments', '{$sort_orders['blog_num_comments']}');">{$this->ipsclass->lang['blog_num_comments']} {$sort_pics['blog_num_comments']}</a></th>
		<th width="20%" nowrap="nowrap" align="center"><a href="java script: do_sort( 'blog_last_comment', '{$sort_orders['blog_last_comment']}');">{$this->ipsclass->lang['blog_last_comment']} {$sort_pics['blog_last_comment']}</a></th>
		<th width="1%" align="center"> </th>
	</tr>

 

С шаблоном skin_blog_list -> bloglist_featured можно поступить по своему усмотрению, например убрать из него

	<div style='float: left;' class='profile_photo'>
	<a href="{$this->ipsclass->base_url}showuser={$entry['member_id']}" title="{$entry['members_display_name']}"><img src="{$entry['pp_main_photo']}" width="{$entry['pp_main_width']}" height="{$entry['pp_main_height']}" /></a>
</div>

для лаконичности: http://floomby.ru/content/d4c42d8b-78d6-48...87a8f51cfb.html :D

post-36662-1227035443_thumb.png

Ссылка на комментарий
Поделиться на других сайтах

Что уже есть.

Интересно у них всё сделано, есть проблемы с любимыми и важными блогами...

Ссылка на комментарий
Поделиться на других сайтах

Во! Девченки наши аж поперхнулись от счастья!

 

Как такое сделать, сколько это стоит и пр.пр. Можно в личку.

 

Ну вот. ;)

 

Sannis, опять пропал. :)

Я думаю как последний комментарий вытянуть, в таком же виде :D Могу опубликовать то, что есть на данный момент, оплата по желанию, не настаиваю.

Ссылка на комментарий
Поделиться на других сайтах

а) я не жмот и никогда им не был. Просто напиши сколько это будет весить (можно в личку). если адекватно - то конечно оплачу.

б) думаю многим людям, которые приобрели блоги 1.4.1 будет интересно как это сделать. Опять же я тут не жмот - готов делиться. Потому можно и в открытом доступе сделать. ;)

в) труд людей должен быть оплачен по любому. :D

Ссылка на комментарий
Поделиться на других сайтах

Результат чуть выше. Пока что нет последних комментариев и сортировки столбцов. Для первого придётся переносить немного кода из 1.3, со вторым пока не определился. Будет справедливо, если нуждающиеся перечислят по 100р на любой из кошельков в профиле. По времени это заняло и ещё займёт рублей 200-300.

 

:D

 

Если будут проблемы с шаблонами, могу проверить пункты.

Ссылка на комментарий
Поделиться на других сайтах

чуть монет отправил в качестве стимула в доделке ... :D

 

я тогда в качестве эксперимента ставлю? или ещё имеет смысл подождать? ;)

Ссылка на комментарий
Поделиться на других сайтах

Если не терпится, то можно поставить, но лучше до часов 8ми подождать, думаю ещё кусочек выложу :D
Ссылка на комментарий
Поделиться на других сайтах

Вроде всё, ставьте, посмотрим если что будет не так :D
Ссылка на комментарий
Поделиться на других сайтах

Ща займусь :D

 

пасиб

 

Поставил, есть небольшой косяк.

 

Sannis, глянешь?

 

Я про верхушку блогов.

Изменено пользователем aromashka
Ссылка на комментарий
Поделиться на других сайтах

Ща займусь :D

 

пасиб

 

Поставил, есть небольшой косяк.

 

Sannis, глянешь?

 

Я про верхушку блогов.

Что у вас в шаблоне skin_blog_list -> bloglist_page_end?

Ссылка на комментарий
Поделиться на других сайтах

ага, уже разобрался ... всё по новой пересмотрел. невнимательно файл отредактировал. вернее 2 -а раза один отредактировал. Названия схожи. + усталость. Спасибо за классную доработку. :D
Ссылка на комментарий
Поделиться на других сайтах

Осталось залить картинки в папку скина из дистрибутива блогов и будет как 1.3 :D Спасибо.
Ссылка на комментарий
Поделиться на других сайтах

так роде все залил ... сейчас проверю конечно.

 

И ещё. ну может быть совсем уж круто, но спрошу.

 

Если сделать слева в поле от названия блога маленькую картинку с авика или с фото пользователя? реально?

Ссылка на комментарий
Поделиться на других сайтах

Можно, не обещаю что завтра, но на этой неделе время будет :D
Ссылка на комментарий
Поделиться на других сайтах

И ещё. ну может быть совсем уж круто, но спрошу.

 

Если сделать слева в поле от названия блога маленькую картинку с авика или с фото пользователя? реально?

Если не вдаваться в тонкости вёрстки таблиц, то вывести фото автора блога можно в шаблонах skin_blog_list->bloglist_show_row и skin_blog_list->bloglist_show_extrow конструкцией

<a href="{$this->ipsclass->base_url}showuser={$blog['member_id']}" title="{$blog['members_display_name']}"><img src="{$blog['pp_thumb_photo']}" width="{$blog['pp_thumb_width']}" height="{$blog['pp_thumb_height']}" /></a>

Чтобы вывести аватар, нужно будет в ./sources/components_public/blog/list.php после строки

$blog = $this->ipsclass->member_set_information( $blog );

добавить:

$blog ['avatar'] = $this->ipsclass->get_avatar( $blog['avatar_location'], $this->ipsclass->member['view_avs'], $blog['avatar_size'], $blog['avatar_type'] );

В файле ./sources/sql/mysql_blog_queries.php найти:

	function blog_get_list( $a )
{
	return "SELECT b.blog_id, b.member_id, b.blog_name, b.blog_desc, b.blog_type, b.blog_exturl, b.blog_num_exthits, bl.blog_num_entries, bl.blog_num_drafts,
				   b.blog_num_views, bl.blog_last_entry, bl.blog_last_entryname, bl.blog_last_date, bl.blog_num_comments, bl.blog_last_comment,
				   bl.blog_last_comment_date, bl.blog_last_comment_entry, bl.blog_last_comment_entryname, bl.blog_last_comment_name, bl.blog_last_comment_mid,
				   b.blog_private, b.blog_pinned, b.blog_disabled, b.blog_rating_total, b.blog_rating_count, b.blog_friendly_url, b.blog_allowguests,
				   case when b.blog_rating_count>{$a['treshhold']} then (b.blog_rating_total/b.blog_rating_count) else 0 end as blog_rating,
				   CASE WHEN b.blog_id IN({$a['favourites']}) THEN 2 ELSE b.blog_pinned END as base_ordering,
				   m.members_display_name, br.last_read, bl.blog_last_update, bl.blog_last_entry_excerpt, pp.* 
			FROM ".SQL_PREFIX."blog_blogs b
			INNER JOIN ".SQL_PREFIX."members m ON b.member_id=m.id
			LEFT JOIN ".SQL_PREFIX."profile_portal pp ON b.member_id=pp.pp_member_id 
			LEFT JOIN ".SQL_PREFIX."blog_read br ON b.blog_id=br.blog_id AND br.member_id={$a['member_id']}
			LEFT JOIN ".SQL_PREFIX."blog_lastinfo bl ON b.blog_id=bl.blog_id {$a['leveljoin']}".
			($a['query'] ? " WHERE {$a['query']} " : '').
		   "ORDER BY {$a['sort_by']} {$a['sort_order']}
			LIMIT {$a['limit_a']}, {$a['limit_b']}";
}

После

				INNER JOIN ".SQL_PREFIX."members m ON b.member_id=m.id

добавить:

				LEFT JOIN ".SQL_PREFIX."member_extra me ON b.member_id=me.id

После

pp.*

добавить(внимательней с запятой):

, me.avatar_location, me.avatar_size, me.avatar_type

После этого в шаблоне можно будет использовать так:

<a href="{$this->ipsclass->base_url}showuser={$blog['member_id']}" title="{$blog['members_display_name']}">{$blog ['avatar']}</a>

 

P.S. Полностью вторую часть не тестировал, но работать она от этого хуже не должна. Если будут вопросы, задавайте :D

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
И ещё. ну может быть совсем уж круто, но спрошу.

 

Если сделать слева в поле от названия блога маленькую картинку с авика или с фото пользователя? реально?

Если не вдаваться в тонкости вёрстки таблиц, то вывести фото автора блога можно в шаблонах skin_blog_list->bloglist_show_row и skin_blog_list->bloglist_show_extrow конструкцией

<a href="{$this->ipsclass->base_url}showuser={$blog['member_id']}" title="{$blog['members_display_name']}"><img src="{$blog['pp_thumb_photo']}" width="{$blog['pp_thumb_width']}" height="{$blog['pp_thumb_height']}" /></a>

 

Спасибо за ваши усовершенствования. Вы ими затмеваете програмеров invisionboard :D

 

Но хочу вмешаться немного, и обратится к вашему опыту:

Мне кажется, что фотка будет намного лучше выглядеть не на главной странице с названием блога , а в самом блоге напротив Автора записи.

 

post-74173-1228479195_thumb.jpg

 

Там в комментариях оставляются фотки, а вот у автора записи фотки – нет.

Подскажите, как замутить чтоб фотка была и у Автора поста?

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

У меня вопрос такого плана(применительно к стандартному варианту последней версии)).

Возможно ли на личной странице автора Блога выполнить условие при загрузке страницы =

-появляется только содержание последней записи и все.

А то ждать пока ВСЕ загрузится-это жестоко,особенно когда фоток много.Кому надо посмотреть остальное-воспользуется списком справа.

Ссылка на комментарий
Поделиться на других сайтах

  • 4 месяца спустя...

Sannis!

Олег, немного скинул на Ваш WMR кошелек за эту модификацию. А также написал в ПМ небольшое ТЗ - нужно продолжение данного проекта.

Прошу ответить.

Ссылка на комментарий
Поделиться на других сайтах

Спасибо ;)В ПМ нет письма :D Нашёл где оно :) Прочитаю сегодня, отвечу скорее всего только завтра, много работы.
Ссылка на комментарий
Поделиться на других сайтах

В обще-то не горит, но и откладывать - т.е. совсем забросить :D
Ссылка на комментарий
Поделиться на других сайтах

Пока что курсовая горит более ярким пламенем :/
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.