Загрузка всех смайлов через ajax в phpBB3

Небольшие моды и хаки для форума phpBB3
Правила форума
При размещении мода/статьи взятой с другого форума/сайта обязательно необходимо указывать первоисточник сообщения.
 • Просмотры: 3084
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Загрузка всех смайлов через ajax в phpBB3

23 фев 2012, 11:53

По умолчанию в форуме phpBB3 смайлы которые не отображаются на странице создания сообщения открываются по ссылке "Ещё смайлики..." в новом окне, если количество смайликов превышает определённое значение, смайлики выводятся постранично, небольшой мод, который позволяет по ссылке "Ещё смайлики..." отображать все смайлы на текущей странице без открытия новых окон.

1. includes/functions_posting.php заменить

Код: Выделить всё

			FROM ' . SMILIES_TABLE . '
			GROUP BY smiley_url, smiley_width, smiley_height
			ORDER BY min_smiley_order';
		$result = $db->sql_query_limit($sql, $config['smilies_per_page'], $start, 3600);
на

Код: Выделить всё

			FROM ' . SMILIES_TABLE . " WHERE display_on_posting='0'
			GROUP BY smiley_url, smiley_width, smiley_height
			ORDER BY min_smiley_order";
		$result = $db->sql_query_limit($sql, 0, $start, 3600);
styles/prosilver/template/posting_editor.html перед

Код: Выделить всё

<fieldset class="fields1">
	<!-- IF ERROR --><p class="error">{ERROR}</p><!-- ENDIF -->
добавить

Код: Выделить всё

<script type="text/javascript">
// <![CDATA[
jQuery(document).ready(
	function($)
	{
		$("#more_smiles").click(function(){
			$("#addit_smiles").slideDown('fast');
			param = $(this).attr('rel');
			$("#addit_smiles").load(param, function(){

			});
		});
	}
);
// ]]>
</script>
заменить

Код: Выделить всё

			<br /><a href="{U_MORE_SMILIES}" onclick="popup(this.href, 300, 350, '_phpbbsmilies'); return false;">{L_MORE_SMILIES}</a>
на

Код: Выделить всё

			<br /><a href="javascript;" id="more_smiles" rel="{U_MORE_SMILIES}">{L_MORE_SMILIES}</a>
			<div style="height:300px;overflow:auto;display:none;" id="addit_smiles"></div>
styles/prosilver/template/posting_smilies.html заменить всё, на

Код: Выделить всё

		<!-- BEGIN smiley -->
			<a href="#" onclick="initInsertions(); insert_text('{smiley.A_SMILEY_CODE}', true); return false;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_CODE}" title="{smiley.SMILEY_DESC}" /></a>
		<!-- END smiley	-->
styles/subsilver2/template/posting_body.html перед

Код: Выделить всё

<table class="tablebg" width="100%" cellspacing="1">
<tr>
	<th colspan="2"><b>{L_POST_A}</b></th>
</tr>
добавить

Код: Выделить всё

<script type="text/javascript">
// <![CDATA[
jQuery(document).ready(
	function($)
	{
		$("#more_smiles").click(function(){
			$("#addit_smiles").slideDown('fast');
			param = $(this).attr('rel');
			$("#addit_smiles").load(param, function(){

			});
		});
	}
);
// ]]>
</script>
заменить

Код: Выделить всё

				<td align="center"><a class="nav" href="{U_MORE_SMILIES}" onclick="popup(this.href, 300, 350, '_phpbbsmilies'); return false;">{L_MORE_SMILIES}</a></td>
на

Код: Выделить всё

				<td align="center"><br /><a href="javascript;" id="more_smiles" rel="{U_MORE_SMILIES}">{L_MORE_SMILIES}</a>
			<div style="height:300px;overflow:auto;display:none;" id="addit_smiles"></div></td>
styles/subsilver2/template/posting_smilies.html заменить всё, на

Код: Выделить всё

<!-- BEGIN smiley --> <a href="#" onclick="initInsertions(); insert_text('{smiley.A_SMILEY_CODE}', true); return false;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_CODE}" title="{smiley.SMILEY_DESC}" hspace="2" vspace="2" /></a> <!-- END smiley -->
2. Очистить кеш шаблонов.
3. Адм. раздел - вкладка Сообщения - Смайлики - Изменить смайлики - в колонке "Показывать на странице ответа" нужно отметить смайлики которые всегда будут показываться на страницах создания сообщения, все остальные смайлики будут загружаться по ссылке "Ещё смайлики..."
--
Скриншоты, страница создания сообщения:

после нажатия ссылки "Ещё смайлики...":

Демо можно увидеть на этом форуме, при создании сообщения.
Если смайлов очень много - они могут сильно "нагружать" браузер.
Для работы мода так же необходимо подключение библиотеки jQuery.
vu
vulkan3
Благодарил (а): 45 раз
Поблагодарили: 36 раз
Сообщения: 1801
Зарегистрирован: 28 сен 2009, 03:36
Сообщение

Загрузка всех смайлов через ajax в phpBB3

23 фев 2012, 14:37

Клево обязательно поставлю :so_happy:
Pritoc.org Свободный торрент трекер
Аватара пользователя
stepan83
Благодарил (а): 81 раз
Поблагодарили: 20 раз
Сообщения: 248
Зарегистрирован: 02 ноя 2011, 21:18
Сообщение

Загрузка всех смайлов через ajax в phpBB3

23 фев 2012, 23:26

PPK "Ещё смайлики..." обратно не закрываються :?:
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Загрузка всех смайлов через ajax в phpBB3

23 фев 2012, 23:37

нет... а нужно?
Аватара пользователя
zip
Благодарил (а): 372 раза
Поблагодарили: 80 раз
Сообщения: 865
Зарегистрирован: 04 янв 2010, 09:11
Сообщение

Загрузка всех смайлов через ajax в phpBB3

24 фев 2012, 01:43

stepan83 писал(а):PPK "Ещё смайлики..." обратно не закрываються :?:
Кстати я тоже заметил ) я в первую очередь начал закрывать.. такая привычка уж нормального человека. если открыл значит надо закрыть)
Национальный Татарский BitТоррент-Трекер
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Загрузка всех смайлов через ajax в phpBB3

24 фев 2012, 09:52

styles/prosilver/template/posting_editor.html
styles/subsilver2/template/posting_body.html
заменить

Код: Выделить всё

			$("#addit_smiles").load(param, function(){

			});
на

Код: Выделить всё

			$('#close_smilies').remove();
			$("#addit_smiles").load(param, function(){
				$(this).before('<a id="close_smilies" href="javascript;" onclick="javascriptdocument.getElementById(\'addit_smiles\').style.display=\'none\';">[x]</a>');
			});
vu
vulkan3
Благодарил (а): 45 раз
Поблагодарили: 36 раз
Сообщения: 1801
Зарегистрирован: 28 сен 2009, 03:36
Сообщение

Загрузка всех смайлов через ajax в phpBB3

25 фев 2012, 21:05

А у меня ничего не появляется кешь чистил стили обновлял
Pritoc.org Свободный торрент трекер
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Загрузка всех смайлов через ajax в phpBB3

26 фев 2012, 09:49

1. Адм. раздел - вкладка Сообщения - Смайлики - Изменить смайлики - в колонке "Показывать на странице ответа" нужно отметить смайлики которые всегда будут показываться на страницах создания сообщения, все остальные смайлики будут загружаться по ссылке "Ещё смайлики..."
2. В трекере для стиля subsilver2, нужно сделать то-же самое что указано для файла posting_body.html в файле posting_tracker_body.html
vu
vulkan3
Благодарил (а): 45 раз
Поблагодарили: 36 раз
Сообщения: 1801
Зарегистрирован: 28 сен 2009, 03:36
Сообщение

Загрузка всех смайлов через ajax в phpBB3

26 фев 2012, 21:29

Во запахало :D
Pritoc.org Свободный торрент трекер
Sh
ShineOfDark
Сообщения: 4
Зарегистрирован: 19 мар 2012, 23:05
Сообщение

Загрузка всех смайлов через ajax в phpBB3

20 мар 2012, 00:00

а не подскажите как подключить jquery?

Вернуться в «Минимоды и хаки для phpBB3»