Пропустить

User Blog Mod: доработки

Поддержка старых модов или модов, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с модами для phpBB 3.0.x, кроме относящихся к форуму Для авторов (phpBB 3.0.x).
Свернуть Развернуть Правила форума Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

User Blog Mod: доработки

Сообщение Nekstati » 04.08.2010 21:36

Несколько небольших дополнений и изменений для User Blog Mod. Делала для себя и на свой вкус, но, надеюсь, кому-то ещё пригодится.

  • Добавляем кнопку блога в минипрофиль.
  • Ссылка «Блоги» открывает список блогов.
  • Сортировка списка блогов по дате последней записи.
  • Удаляем из шапки ссылку «Мой блог».
  • Поиск в блогах из стандартной формы поиска в шапке сайта.
  • Быстрая цитата для быстрого ответа (если у вас установлен БО Rayden'а).
  • Кликабельные аватары.
  • Кнопка фотоальбома в минипрофиле блога и кнопка блога в минипрофиле фотогалереи (если у вас установлена phpBB Gallery).

Инструкции даны для стиля Prosilver.
Версия User Blog Mod — 1.0.13.
Версия phpBB — 3.0.7-PL1...3.0.10.


__________________________________________

Добавляем в минипрофиль кнопку блога.

Вместо штатной текстовой ссылки на страницах форума делаем симпатичную кнопку, такую же как кнопки ICQ, ЛС, Jabber и прочие.

blog_button.png

viewtopic.php
//=== найти

	'U_JABBER'		=> $user_cache[$poster_id]['jabber'],

//=== добавить после

	'U_BLOG'		=> ($config['user_blog_enable'] && $config['user_blog_links_output_block'] && $poster_id != ANONYMOUS && ($user_cache[$poster_id]['blog_count'] > 0 || $config['user_blog_always_show_blog_url'])) ? blog_url($poster_id) : '',
		
//=== найти и удалить

	if (isset($config['user_blog_enable']) && $config['user_blog_enable'])
	{
		add_blog_links($poster_id, 'postrow.custom_fields', $user_cache[$poster_id]);
	} 

blog/includes/blog_data.php
//=== найти

	'U_YIM'				=> self::$user[$user_id]['yim_url'],

//=== добавить после

	'U_USER_BLOG_URL'	=> ($config['user_blog_links_output_block'] && (self::$user[$user_id]['blog_count'] > 0 || $config['user_blog_always_show_blog_url'])) ? blog_url($user_id) : '',

//=== найти и удалить

	// add the blog links in the custom fields
	if ($user_id != ANONYMOUS)
	{
		$custom_fields[] = add_blog_links($user_id, '', self::$user[$user_id], false, true, true);
	} 

styles/prosilver/template/viewtopic_body.html
//=== найти

	<!-- IF postrow.U_PM or postrow.U_EMAIL or postrow.U_WWW or postrow.U_MSN or postrow.U_ICQ or postrow.U_YIM or postrow.U_AIM or postrow.U_JABBER -->

//=== заменить на

	<!-- IF postrow.U_PM or postrow.U_EMAIL or postrow.U_WWW or postrow.U_MSN or postrow.U_ICQ or postrow.U_YIM or postrow.U_AIM or postrow.U_JABBER or postrow.U_BLOG -->

//=== найти

	<!-- IF postrow.U_JABBER --><li class="jabber-icon"><a href="{postrow.U_JABBER}" onclick="popup(this.href, 550, 320); return false;" title="{L_JABBER}"><span>{L_JABBER}</span></a></li><!-- ENDIF -->

//=== добавить после

	<!-- IF postrow.U_BLOG --><li class="userblog-icon"><a href="{postrow.U_BLOG}" title="{L_BLOG}"><span>{L_BLOG}</span></a></li><!-- ENDIF --> 

styles/prosilver/template/blog/view_blog.html
//=== найти

	<!-- IF replyrow.U_PM or replyrow.U_EMAIL or replyrow.U_WWW or replyrow.U_MSN or replyrow.U_ICQ or replyrow.U_YIM or replyrow.U_AIM -->

//=== заменить на

	<!-- IF replyrow.U_PM or replyrow.U_EMAIL or replyrow.U_WWW or replyrow.U_MSN or replyrow.U_ICQ or replyrow.U_YIM or replyrow.U_AIM or replyrow.U_USER_BLOG_URL -->

//=== найти

	<!-- IF replyrow.U_JABBER --><li class="jabber-icon"><a href="{replyrow.U_JABBER}" title="{L_JABBER}"><span>{L_JABBER}</span></a></li><!-- ENDIF -->

//=== добавить после

	<!-- IF replyrow.U_USER_BLOG_URL --><li class="userblog-icon"><a href="{replyrow.U_USER_BLOG_URL}" title="{L_BLOG}"><span>{L_BLOG}</span></a></li><!-- ENDIF --> 

styles/prosilver/template/blog/left_menu.html
//=== найти

	<!-- IF U_PM or U_EMAIL or U_WWW or U_MSN or U_ICQ or U_YIM or U_AIM -->

//=== заменить на

	<!-- IF U_PM or U_EMAIL or U_WWW or U_MSN or U_ICQ or U_YIM or U_AIM or U_USER_BLOG_URL -->

//=== найти

	<!-- IF U_JABBER --><li class="jabber-icon"><a href="{U_JABBER}" title="{L_JABBER}"><span>{L_JABBER}</span></a></li><!-- ENDIF -->

//=== добавить после

	<!-- IF U_USER_BLOG_URL --><li class="userblog-icon"><a href="{U_USER_BLOG_URL}" title="{L_BLOG}"><span>{L_BLOG}</span></a></li><!-- ENDIF --> 

styles/prosilver/theme/blog.css
//=== добавить в конце файла

.userblog-icon, .userblog-icon a { background: url("{T_IMAGESET_PATH}/icon_contact_blog.gif") top left no-repeat; }

ul.profile-icons li.userblog-icon { width: 21px; height: 20px; } 


Эту картинку кладём в папку styles/prosilver/imageset/, название её должно быть icon_contact_blog.gif.

icon_contact_blog.gif



__________________________________________

Ссылка «Блоги» открывает список блогов.

По умолчанию ссылка «Блоги» открывает страницу с последними и случайными записями и комментариями. Мне эта страница не нравится. Я хочу, чтобы ссылка «Блоги» открывала список блогов. По-моему, так будет логичнее.

Прежде всего устанавливаем плагин «User List» и подключаем его в админке. После установки в левом меню блогов появляется ссылка «Список блогов». Далее сделаем так, чтобы ссылка «Блоги» в шапке сайта действовала как «Список блогов», причём лишний параметр page=userlist в адресной строке у нас появляться не будет.

blog.php
//=== найти

$cancel = (isset($_POST['cancel'])) ? true : false;

//=== добавить после

if ($page == '' && $mode == '' && $user_id == 0 && $blog_id == 0 && $reply_id == 0 && $category_id == 0)
{
	$page = 'userlist';
} 

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


__________________________________________

Сортировка списка блогов по дате последней записи.

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

blog/view/userlist.php
//=== найти

$sort_key = request_var('sk', 't');

//=== заменить на

$sort_key = request_var('sk', 'pt'); 



__________________________________________

Удаляем из шапки ссылку «Мой блог», оставляем только ссылку «Блоги».

Ссылок на «Мой блог» и так предостаточно: и в левом меню блогов, и в минипрофиле, и в полном профиле, да плюс на любой странице блогов имеется кнопка «Написать». Зачем тогда захламлять шапку лишней ссылкой? Там и без неё тесно. Убираем хлам.

styles/prosilver/template/overall_header.html
//=== найти

	<!-- BEGIN blog_links -->
		<li class="{blog_links.CLASS}"><a href="{blog_links.URL}">{blog_links.TEXT}</a></li>
	<!-- END blog_links -->

//=== заменить на

	<!-- IF U_BLOG --><li class="icon-members"><a href="{U_BLOG}">{L_BLOGS}</a></li><!-- ENDIF --> 



__________________________________________

Поиск в блогах из стандартной формы поиска в шапке сайта.

Если мы открываем страницу блога, а затем пытаемся что-то найти из формы поиска в шапке, то поиск ведётся почему-то не в блогах, а в форумах. Нелогично, да? Здравый смысл говорит нам, что когда мы находимся в блогах, то и поиск должен вестись в блогах. То же самое относится и к фотогалерее, и к базе знаний, и к любому другому моду, представляющему собой раздел сайта. Исправим это.

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

blog_search.png

styles/prosilver/template/overall_header.html
//=== найти

		<!-- IF S_DISPLAY_SEARCH and not S_IN_SEARCH -->

//=== заменить на

		<!-- IF S_DISPLAY_SEARCH and not S_IN_SEARCH and not S_IN_BLOG -->

//=== найти

			<span class="corners-bottom"><span></span></span></div>
		</div>

		<div class="navbar">

//=== добавить перед

		<!-- IF S_DISPLAY_BLOG_SEARCH and not S_IN_SEARCH and S_IN_BLOG -->
			<div id="search-box">
				<form action="{U_BLOG_SEARCH}" method="post" id="search">
				<fieldset>
					<input name="keywords" id="keywords" type="text" maxlength="128" title="{L_SEARCH_KEYWORDS}" class="inputbox search" value="<!-- IF SEARCH_WORDS-->{SEARCH_WORDS}<!-- ELSE -->{L_SEARCH_BLOGS}&hellip;<!-- ENDIF -->" onclick="if(this.value=='{LA_SEARCH_BLOGS}&hellip;')this.value='';" onblur="if(this.value=='')this.value='{LA_SEARCH_BLOGS}&hellip;';" style="width: 130px" /> 
					<input class="button2" value="{L_SEARCH}" type="submit" /><br />
					<a href="{U_BLOG_SEARCH}" title="{L_SEARCH_ADV_EXPLAIN}">{L_SEARCH_ADV}</a> {S_SEARCH_HIDDEN_FIELDS}
				</fieldset>
				</form>
			</div>
		<!-- ENDIF --> 

blog.php
//=== найти

	'S_HIDDEN_FIELDS'		=> $s_hidden_fields,

//=== добавить после

	'S_IN_BLOG'				=> true, 


При желании удаляем штатную форму поиска из левого меню блогов.

styles/prosilver/template/blog/left_menu.html
//=== найти и удалить

<!-- IF S_DISPLAY_BLOG_SEARCH -->
	<div class="post bg1">
		<div class="inner">
			<span class="corners-top"><span></span></span>
			<div class="left_menu_title">{L_SEARCH_BLOGS}</div>
			<form id="blog_searchform" method="post" action="{U_BLOG_SEARCH}">
				<fieldset>
					<input name="keywords" id="blog_keywords" type="text" maxlength="128" title="{L_SEARCH_KEYWORDS}" class="inputbox search" style="width: 140px;" value="<!-- IF SEARCH_WORDS-->{SEARCH_WORDS}<!-- ELSE -->{L_SEARCH_MINI}<!-- ENDIF -->" onclick="if(this.value=='{LA_SEARCH_MINI}')this.value='';" onblur="if(this.value=='')this.value='{LA_SEARCH_MINI}';" />
					<input class="button2" value="{L_SEARCH}" type="submit" /><br />
					{S_HIDDEN_FIELDS}
				</fieldset>
			</form>
			<div style="padding: 2px;"><a href="{U_BLOG_SEARCH}" title="{L_SEARCH_ADV_EXPLAIN}">{L_SEARCH_ADV}</a></div>
			<span class="corners-bottom"><span></span></span>
		</div>
	</div>
<!-- ENDIF --> 



__________________________________________

Быстрая цитата для быстрого ответа.

Если на вашей конференции установлена модификация быстрого ответа авторства Rayden'а, то правильно будет распространить её действие и на блоги. Итак, сделаем кнопку «Быстрая цитата» (цитата выделенного текста) и кликабельные ники (вставка ника в форму быстрого ответа). Смайлики и ББ-коды делать не будем, чтобы не захламлять блоги.

styles/prosilver/template/blog/quick_reply.html
//=== добавить в начале файла

<script type="text/javascript">
// <![CDATA[
	var form_name = 'postform';
	var text_name = 'message';
// ]]>
</script>
<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>


Делаем кликабельные ники.

styles/prosilver/template/blog/view_blog.html
//=== найти (только первое вхождение, строка 137)

	<strong>{blogrow.USER_FULL}</strong>

//=== заменить на

	<!-- IF S_QUICK_REPLY --><a href="#postform" title="{L_QUOTE_USERNAME}" onclick="insert_text('[b]{blogrow.USER_QUOTE}[/b]'); return false;"<!-- IF blogrow.USER_COLOUR --> style="color: {blogrow.USER_COLOUR}"<!-- ENDIF -->><strong>{blogrow.USERNAME}</strong></a><!-- ELSE --><strong>{blogrow.USER_FULL}</strong><!-- ENDIF -->

//=== найти дважды

	<strong>{replyrow.USER_FULL}</strong>

//=== заменить на

	<!-- IF S_QUICK_REPLY --><strong><a href="#postform" title="{L_QUOTE_USERNAME}" onclick="insert_text('[b]{replyrow.USER_QUOTE}[/b]'); return false;"<!-- IF replyrow.USER_COLOUR --> style="color: {replyrow.USER_COLOUR}"<!-- ENDIF -->>{replyrow.USERNAME}</a></strong><!-- ELSE --><strong>{replyrow.USER_FULL}</strong><!-- ENDIF --> 


Вставляем кнопку «Быстрая цитата».

styles/prosilver/template/blog/view_blog.html
//=== найти

	<!-- IF replyrow.U_EDIT --><li class="edit-icon"><a href="{replyrow.U_EDIT}" title="{L_EDIT_POST}"><span>{L_EDIT_POST}</span></a></li><!-- ENDIF -->

//=== добавить перед

	<!-- IF S_QUICK_REPLY --><li class="quickquote-icon"><a href="#postform" onclick="if((window.getSelection && window.getSelection().toString() == '') || (document.getSelection && document.getSelection() == '') || (document.selection && document.selection.createRange().text == '')){ alert('{L_NO_SELECTION}'); return false; }else{addquote({replyrow.ID},'{replyrow.USER_QUOTE}'); insert_text('\r\n'); return false; }" title="{L_QUICKQUOTE_TEXT}"><span>{L_QUICKQUOTE_TEXT}</span></a></li><!-- ENDIF -->

//=== найти

	<!-- IF blogrow.U_EDIT --><li class="edit-icon"><a href="{blogrow.U_EDIT}" title="{L_EDIT_POST}"><span>{L_EDIT_POST}</span></a></li><!-- ENDIF -->

//=== добавить перед

	<!-- IF S_QUICK_REPLY --><li class="quickquote-icon"><a href="#postform" onclick="if((window.getSelection && window.getSelection().toString() == '') || (document.getSelection && document.getSelection() == '') || (document.selection && document.selection.createRange().text == '')){ alert('{L_NO_SELECTION}'); return false; }else{addquote({blogrow.ID},'{blogrow.USER_QUOTE}'); insert_text('\r\n'); return false; }" title="{L_QUICKQUOTE_TEXT}"><span>{L_QUICKQUOTE_TEXT}</span></a></li><!-- ENDIF --> 


blog/includes/blog_data.php
//=== найти (только второе вхождение, строка 1180)

'USER_FULL'			=> self::$user[$user_id]['username_full'],

//=== добавить после

'USER_QUOTE'		=> addslashes(self::$user[$user_id]['username']), 



__________________________________________

Кликабельные аватары.

Если мы сделали вышеописанные изменения для быстрого ответа, то в минипрофилях комментариев у нас теперь нет ссылок на профили пользователей. Исправим это: сделаем аватары ссылками на профили — точно так же, как это сделано в viewtopic.php.

styles/prosilver/template/blog/view_blog.html
//=== найти

							<!-- IF replyrow.AVATAR -->
								{replyrow.AVATAR}<br />
							<!-- ENDIF -->

//=== заменить на

							<!-- IF replyrow.AVATAR -->
								<!-- IF replyrow.U_USERPROFILE and not S_IS_BOT --><a href="{replyrow.U_PROFILE}">{replyrow.AVATAR}</a><!-- ELSE -->{replyrow.AVATAR}<!-- ENDIF --><br />
							<!-- ENDIF --> 

styles/prosilver/template/blog/left_menu.html
//=== найти

					<!-- IF AVATAR -->
						{AVATAR}<br />
					<!-- ENDIF -->

//=== заменить на

					<!-- IF AVATAR -->
						<!-- IF U_USERPROFILE and not S_IS_BOT --><a href="{U_USERPROFILE}">{AVATAR}</a><!-- ELSE -->{AVATAR}<!-- ENDIF --><br />
					<!-- ENDIF --> 

blog/includes/blog_data.php
//=== найти

	'U_PROFILE'			=> append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=viewprofile&amp;u=$user_id"),

//=== добавить после

	'U_USERPROFILE'		=> append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=viewprofile&amp;u=$user_id"), 



Продолжение, касающееся интеграции phpBB Gallery 1.1.5 и User Blog Mod, см. там.

__________________________________________

После внесения любых изменений в файлы не забываем зайти в администраторский раздел на вкладку «Стили» и обновить шаблон и тему Prosilver.
За это сообщение автора Nekstati поблагодарили: 14
alexgearbox (14.11.2010 23:29), amka (05.08.2010 6:13), DennyTX (16.08.2010 18:17), Dss (04.08.2010 22:34), FladeX (05.08.2010 12:04), Gabriil (27.08.2010 20:13), Grewi64 (05.08.2010 7:55), hdv (10.11.2010 10:19), Kostelano (30.09.2010 16:46), newsbee (22.10.2011 19:02) и ещё 4
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: User Blog Mod: доработки

Сообщение amka » 05.08.2010 6:15

Вот если бы еще плагин сделать, чтобы при добавлении новой статьи в блогах, автоматически формировалось информационное сообщение в определенной теме форума.
Аватара пользователя
amka
phpBB 2.0.4
 
Сообщения: 216
Зарегистрирован: 22.05.2007 23:52
Благодарил (а): 15 раз.
Поблагодарили: 5 раз.

Re: User Blog Mod: доработки

Сообщение Nekstati » 05.08.2010 12:31

Такой плагин есть для Knowledge Base. А с назначением User Blog Mod'а эта идея, по-моему, плохо стыкуется, ведь мод подразумевает, что куча пользователей будет писать кучу сообщений в своих дневниках, десятками и сотнями в день.

Можно выводить блок «Последние записи в блогах» на главную страницу конференции или на портал.
http://lithiumstudios.org/forum/viewtop ... =41&t=1045
http://lithiumstudios.org/forum/viewtop ... =42&t=1606
За это сообщение автора Nekstati поблагодарил:
Bert19 (01.02.2011 23:56)
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: User Blog Mod: доработки

Сообщение amka » 05.08.2010 12:48

Nekstati
На портал я вывел такой блок, но мне хотелось бы именно в виде плагина. Многие заходят на портал и нажимают "Непрочитанные сообщения" и все. А так они среди "Непрочитанных сообщений" увидят ссылку, перейдут, почитают, оставят комменты.
Аватара пользователя
amka
phpBB 2.0.4
 
Сообщения: 216
Зарегистрирован: 22.05.2007 23:52
Благодарил (а): 15 раз.
Поблагодарили: 5 раз.

Re: User Blog Mod: доработки

Сообщение Gabriil » 21.08.2010 12:29

Nekstati
сделал все по Вашей инструкции, ники не стали кликабельными и в быструю цитату вставляется только имя автора сообщения, а имя пользователя оставившего комментарий не вставляется

Изображение
Аватара пользователя
Gabriil
phpBB 1.2.1
 
Сообщения: 28
Зарегистрирован: 08.02.2010 15:48
Благодарил (а): 6 раз.
Поблагодарили: 0 раз.

Re: User Blog Mod: доработки

Сообщение Nekstati » 22.08.2010 13:32

Gabriil, в инструкции была ошибка. Исправлено, спасибо. Выполните инструкцию заново. Либо внесите следующие изменения поверх уже сделанных:

blog/includes/blog_data.php
//=== найти (только второе вхождение, строка 1180)

			'USER_FULL'			=> self::$user[$user_id]['username_full'],

//=== добавить после

			'USER_QUOTE'		=> addslashes(self::$user[$user_id]['username']),


И дополнительно, для улучшения вида ников в комментариях:
styles/prosilver/template/blog/view_blog.html
//=== найти дважды

<!-- IF S_QUICK_REPLY --><a href="#postform" title="{L_QUOTE_USERNAME}" onclick="insert_text('[b]{replyrow.USER_QUOTE}[/b]'); return false;"<!-- IF replyrow.USER_COLOUR --> style="color: {replyrow.USER_COLOUR}"<!-- ENDIF -->><strong>{replyrow.USERNAME}</strong></a><!-- ELSE --><strong>{replyrow.USER_FULL}</strong><!-- ENDIF -->

//=== заменить на

<!-- IF S_QUICK_REPLY --><strong><a href="#postform" title="{L_QUOTE_USERNAME}" onclick="insert_text('[b]{replyrow.USER_QUOTE}[/b]'); return false;"<!-- IF replyrow.USER_COLOUR --> style="color: {replyrow.USER_COLOUR}"<!-- ENDIF -->>{replyrow.USERNAME}</a></strong><!-- ELSE --><strong>{replyrow.USER_FULL}</strong><!-- ENDIF -->
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: User Blog Mod: доработки

Сообщение владимир1983 » 22.08.2010 22:38

Nekstati Здрвствуйте!
У меня стиль Milky Way на основе subsilver2, может найдёте как нибудь время и сделаете инструкцию для subsilver2 для вот этих доработок:
  • Быстрая цитата для быстрого ответа
  • Кликабельные аватары.
  • Ссылка «Блоги» открывает список блогов.
?
Nekstati где можно почитать про установку плагинов на блог? Скачал User List, в архиве инструкции нет.
Спасибо за ваши доработки.
Сдаюсь в аренду или временно поживу за счет заказчика
Аватара пользователя
владимир1983
Поддержка
Поддержка
 
Сообщения: 1823
Зарегистрирован: 27.04.2010 2:17
Откуда: Сергиев Посад
Благодарил (а): 70 раз.
Поблагодарили: 205 раз.

Re: User Blog Mod: доработки

Сообщение Nekstati » 22.08.2010 23:33

Для Subsilver2 — постараюсь.

В архиве есть инструкция в виде TXT-файла. Просто скопируйте содержимое папки root/ в корень форума, а затем в админке подключите плагин. Придётся ещё перевести файлик root/language/en/mods/blog/plugins/userlist.php и положить его в /ru/.
За это сообщение автора Nekstati поблагодарил:
владимир1983 (22.08.2010 23:44)
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: User Blog Mod: доработки

Сообщение Kostelano » 07.09.2010 14:54

Т.к. тут завязалась модификация User Blog Mod, задам вопрос здесь.

1. Как можно осуществить транслирование ссылок вида blog/Spitfire/некоторая_запись.html в blog/spitfire/некоторая_запись.html, т.е. вся ссылка в нижнем регистре? То же самое касается и категорий: blog/Категория_1/index_c-1.html...

2. И еще один момент. Хотелось бы чтобы в ссылках на категории и записи блогов (возможно, исключение - имена пользователей) не было русскоязычных слов. Т.е. осуществить замену русских букв на англ.:

Было: blog/категория_1/index_c-1.html

Стало: blog/categoriya_1/index_c-1.html
Аватара пользователя
Kostelano
phpBB 1.4.4
 
Сообщения: 76
Зарегистрирован: 23.02.2010 1:59
Откуда: Днепропетровск
Благодарил (а): 10 раз.
Поблагодарили: 13 раз.

Re: User Blog Mod: доработки

Сообщение Nekstati » 14.09.2010 17:06

1. Транслитерируем ссылки и переводим их в нижний регистр (за исключением имён пользователей)

// Открыть blog/includes/functions.php
// Изменить кодировку файла на UTF-8 без BOM
// Найти

if (!defined('IN_PHPBB'))
{
	exit;
}

// Добавить после

function translit($string) 
{
	$string = utf8_strtolower($string);
	$chars = array(
		'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'e',
		'ж' => 'j', 'з' => 'z', 'и' => 'i', 'й' => 'y', 'к' => 'k', 'л' => 'l', 'м' => 'm',
		'н' => 'n', 'о' => 'o', 'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u',
		'ф' => 'f', 'х' => 'h', 'ц' => 'ts', 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch', 'ъ' => 'y',
		'ы' => 'y', 'ь' => '', 'э' => 'e', 'ю' => 'yu', 'я' => 'ya',
		'ї' => 'i', 'є' => 'ie', 'ў' => 'u', 'ґ' => 'h'
	);
	return strtr($string, $chars);
}

// Найти

		$replace_page = true; // match everything except the page if this is set to false

// Добавить после

		if (isset($url_data['page'])) $url_data['page'] = translit($url_data['page']);

// Найти четырежды (это части строк, названия функций)

utf8_clean_string

// Заменить на

translit


2. Если это зачем-то надо, переводим в нижний регистр имена пользователей (но не транслитерируем).

// blog/includes/functions.php
// Найти три строки в разных местах

				$url_data['page'] = urlencode($user->data['username']);
				$url_data['page'] = urlencode($extra_data['username']);
				$url_data['page'] = urlencode(blog_data::$user[$user_id]['username']);

// Заменить соответственно на

				$url_data['page'] = urlencode(utf8_strtolower($user->data['username']));
				$url_data['page'] = urlencode(utf8_strtolower($extra_data['username']));
				$url_data['page'] = urlencode(utf8_strtolower(blog_data::$user[$user_id]['username']));


Имейте в виду, что в IE кириллические имена будут по-прежнему отображаться в виде hex-кода, хотя заголовки записей и категорий примут нормальный вид. Решить эту проблему можно лишь транслитерированием имён, но сделать это по приведённому простому принципу нельзя: ссылки на блоги пользователей вида site.ru/blog/Иван станут нерабочими. Т. е. надо глубоко копать и долго думать…
За это сообщение автора Nekstati поблагодарил:
Kostelano (14.09.2010 17:32)
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: User Blog Mod: доработки

Сообщение Kostelano » 02.10.2010 2:19

Возник вопрос по плагину "Архив записей".

arhiv.PNG

  • Как заставить архив быть свернутым по-умолчанию?
  • Можно ли реализовать сокращение названия до определенного кол-ва символов, а не выводить название записи полностью?
--------------------------------------------------------------------------------------------------------------

И может кто-нить вкратце описать функции каждого файла из директории prosilver/template/blog? Что-нить наподобии [FAQ] Шаблон форума, CSS и html, где что "ковырять".
Аватара пользователя
Kostelano
phpBB 1.4.4
 
Сообщения: 76
Зарегистрирован: 23.02.2010 1:59
Откуда: Днепропетровск
Благодарил (а): 10 раз.
Поблагодарили: 13 раз.

Re: User Blog Mod: доработки

Сообщение Nekstati » 02.10.2010 12:53

Для сворачивания архива — найти в styles\prosilver\template\blog\plugins\archive\archive_body.html
							<span onclick="toggle_month({archiverow.S_ROW_COUNT});" style="cursor: pointer;"><strong><img id="month_image_{archiverow.S_ROW_COUNT}" src="<!-- IF archiverow.S_ROW_COUNT > 0 -->{IMG_PLUS}"  alt="+"<!-- ELSE -->{IMG_MINUS}"  alt="-"<!-- ENDIF --> /> {archiverow.MONTH} {archiverow.YEAR}</strong></span>
							<div id="month_{archiverow.S_ROW_COUNT}" <!-- IF archiverow.S_ROW_COUNT > 0 -->style="display: none;"<!-- ENDIF -->>

Заменить на
							<span onclick="toggle_month({archiverow.S_ROW_COUNT});" style="cursor: pointer;"><strong><img id="month_image_{archiverow.S_ROW_COUNT}" src="{IMG_PLUS}"  alt="+" /> {archiverow.MONTH} {archiverow.YEAR}</strong></span>
							<div id="month_{archiverow.S_ROW_COUNT}" style="display: none;">

Для укорачивания заголовков (в данном случае до 30 знаков) — найти в blog\plugins\archive\functions.php
			'TITLE'			=> censor_text($row['blog_subject']),
Заменить на
			'TITLE'			=> utf8_strlen($csub = censor_text($row['blog_subject'])) > 30 ? utf8_substr($csub, 0, 30) . '&hellip;' : $csub,

Кстати, для этой цели существует замечательное CSS-свойство text-overflow, но, к сожалению, Firefox его не понимает.

может кто-нить вкратце описать функции каждого файла из директории prosilver/template/blog?

view_blog.html — дневник пользователя и комментарии.
view_blog_main.html — главная страница дневников, случайные/последние/популярные.
Функции остальных ясны из названий.
За это сообщение автора Nekstati поблагодарил:
Kostelano (02.10.2010 18:10)
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: User Blog Mod: доработки

Сообщение mEx » 12.10.2010 17:34

Для сворачивания архива — найти в styles\prosilver\template\blog\plugins\archive\archive_body.html

							<span onclick="toggle_month({archiverow.S_ROW_COUNT});" style="cursor: pointer;"><strong><img id="month_image_{archiverow.S_ROW_COUNT}" src="<!-- IF archiverow.S_ROW_COUNT > 0 -->{IMG_PLUS}"  alt="+"<!-- ELSE -->{IMG_MINUS}"  alt="-"<!-- ENDIF --> /> {archiverow.MONTH} {archiverow.YEAR}</strong></span>
							<div id="month_{archiverow.S_ROW_COUNT}" <!-- IF archiverow.S_ROW_COUNT > 0 -->style="display: none;"<!-- ENDIF -->>


Заменить на
							<span onclick="toggle_month({archiverow.S_ROW_COUNT});" style="cursor: pointer;"><strong><img id="month_image_{archiverow.S_ROW_COUNT}" src="{IMG_PLUS}"  alt="+" /> {archiverow.MONTH} {archiverow.YEAR}</strong></span>



Мне это не дало никакого эффекта...

Было: blog/категория_1/index_c-1.html

Стало: blog/categoriya_1/index_c-1.html


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

mEx
phpBB 2.0.4
 
Сообщения: 200
Зарегистрирован: 01.04.2007 1:39
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Re: User Blog Mod: доработки

Сообщение Nekstati » 12.10.2010 19:33

Старые ссылки останутся рабочими.
mEx писал(а):Мне это не дало никакого эффекта...

Сорри, очищайте кэш.
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: User Blog Mod: доработки

Сообщение mEx » 13.10.2010 23:07

Подскажите пожалуйста, как сделать на главной странице блогов, чтобы столбцы "последние записи", "последние комментарии", шли друг за другом, а не располагались на одном уровне? Чтобы ширина у обоих была 100%.

mEx
phpBB 2.0.4
 
Сообщения: 200
Зарегистрирован: 01.04.2007 1:39
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

След.

Вернуться в Поддержка модов для phpBB 3.0.x

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы