Сортировка категорий для форума на jQuery, для стилей prosilver и его клонов, с запоминанием в браузере.

Сортировка категорий является встроенной функцией стиля Supernova, но теперь у вас появилась возможность прикрутить эту функцию к своему стилю.

Сначала скачиваем архив, распаковываем и закачиваем файлы к себе на форум:
categories-sorting.rar
76.37 КБ 432 скачивания
Файл заменён - 12.04.2015 // CabinetAdmin
Открываем overall_header.html, перед закрывающим тегом </head> ставим:

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

<script type="text/javascript" src="ваш сайт/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="ваш сайт/ui.js"></script>
<script type="text/javascript" src="ваш сайт/cookie.js"></script>
<script type="text/javascript" src="ваш сайт/cats.js"></script>
Если на вашем форуме уже подключена библиотека jQuery, то:

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

<script type="text/javascript" src="ваш сайт/jquery-1.4.2.min.js"></script>
ставить не нужно.

Если вы использовали модификацию Сворачивание категорий на форуме, то:

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

<script type="text/javascript" src="ваш сайт/cookie.js"></script>
тоже ставить не нужно.


Далее открываем forumlist_body.html, в самое начало шаблона ставим:

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

<div id="forumlist">
В конец шаблона добавляем: Если у вас у же есть в самом начале:

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

<div class="forumlist">
то просто добавьте к нему id="forumlist":

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

<div class="forumlist" id="forumlist">
и не добавляем в конец </div>, поскольку он уже должен быть там.

Далее находим:

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

<div class="forabg">
Меняем на:

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

<div class="forabg" id="category-{forumrow.FORUM_ID}">
Находим:

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

<dd class="lastpost"><span>{L_LAST_POST}</span></dd>
После найденного ставим:

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

<dd class="forumlist-controls">
	<div class="move-icon" <!-- IF SCRIPT_NAME eq 'viewforum' -->style="display: none;"<!-- ENDIF -->></div>
</dd>
Далее находим:

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

<ul class="topiclist forums">
Меняем на:

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

<ul class="topiclist forums" id="row-{forumrow.FORUM_ID}">

Открываем тему вашего стиля, в самый конец добавляем:

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

/* Categories Sorting */
.move-icon {
	width: 11px;
	height: 11px;
	float: right;
	background-image: url("ваш сайт/move-icon.png");
	background-repeat: no-repeat;
	margin-right: 5px;
	cursor: move;
}
.placeholder {
	background-color: #F6F6F6;
	border: 2px dashed #DDDDDD;
	margin-bottom: 4px;
	background-image: url("ваш сайт/drop.png");
	background-position: 50% 20px;
	background-repeat: no-repeat;
}
ul.topiclist dd.forumlist-controls {
	width: 2.7%;
	text-align: right;
	float: right;
}

Не забудьте указать полные пути до скриптов и изображений.



Решение для phpbb 3.1.x здесь - http://cabinetadmina.ru/viewtopic.php?p=68438#p68438
Комментарии: 20

CabinetAdmin 12 янв 2013, 10:43 Сообщение

Давайте попробуем прикрутить эту функцию к более сложно составленному стилю - Artodia: Ultra Blue. Заставить эту функцию работать тем способом который описан чуть выше не получится.

Начнём с того, что в этом стиле в оглавлении каждой категории нет пунктов: Темы, Сообщения, Последнее сообщение. Они скрыты с помощью CSS. Поэтому, это:

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

<dd class="forumlist-controls">
   <div class="move-icon" <!-- IF SCRIPT_NAME eq 'viewforum' -->style="display: none;"<!-- ENDIF -->></div>
</dd>
Нужно устанавливать другим способом. Найти:

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

<dt><!-- IF forumrow.S_IS_CAT --><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a><!-- ELSE -->{L_FORUM}<!-- ENDIF --></dt>
И заменить на:

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

<dt><!-- IF forumrow.S_IS_CAT --><a href="{forumrow.U_VIEWFORUM}">{forumrow.FORUM_NAME}</a><!-- ELSE -->{L_FORUM}<!-- ENDIF --> <div class="move-icon" <!-- IF SCRIPT_NAME eq 'viewforum' -->style="display: none;"<!-- ENDIF -->></div></dt>
После всех этих действий функция всё равно не заработает, потому что скрипты в стиле прописываются не в шаблоне overall_header.html, а в шаблонах: scripts_footer.html и scripts_header.html.

Итак, открываем scripts_footer.html, находим:

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

<script src="{T_TEMPLATE_PATH}/jquery-1.7.1.min.js"></script>
и удаляем.

Открываем scripts_header.html, в самый конец ставим:

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

<script src="{T_TEMPLATE_PATH}/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="ваш сайт/images/ui.js"></script>
<script type="text/javascript" src="ваш сайт/jquery.cookie.js"></script>
<script type="text/javascript" src="ваш сайт/cats.js"></script>

Из нашего примера видно, что к каждому стилю нужно подходить по разному и учитывать его модификации.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

romaamor 13 янв 2013, 03:09 Сообщение

Это конечно классно... А на субсильвер 2?
Хотя я посмотрел....... :)

Даж не знаю про что думал.....
Как бы хочитсяю.
Но незя. :) Или я не прав ? Тут GoDFaTHeR будет рыыычать . :D И Вы CabinetAdm тоже .А мне вот интирестно ...Вы оба с Москвы ? Просто характеры у Вас разные.... :milo:
  • 0

CabinetAdmin 13 янв 2013, 07:39 Сообщение

romaamor писал(а):А на субсильвер 2?
А на subsilver придётся пол стиля перекраивать.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

GoDFaTHeR 13 янв 2013, 22:49 Сообщение

romaamor писал(а):Это конечно классно... А на субсильвер 2?
заменяем forumlist_body.html из просилвера ;)
  • 0
На этом сервисе можно cоздать форум бесплатно
Домены для форума ТУТ

GoDFaTHeR 13 янв 2013, 22:50 Сообщение

romaamor писал(а):Тут GoDFaTHeR будет рыыычать
когда такое было?
  • 0
На этом сервисе можно cоздать форум бесплатно
Домены для форума ТУТ

GoDFaTHeR 13 янв 2013, 22:51 Сообщение

CabinetAdmin писал(а):Итак, открываем scripts_footer.html, находим:

Код: Выделить всё
<script src="{T_TEMPLATE_PATH}/jquery-1.7.1.min.js"></script>



и удаляем.
зачем переносить скрипт из футера в хирер? или не работает по другому?
  • 0
На этом сервисе можно cоздать форум бесплатно
Домены для форума ТУТ

CabinetAdmin 14 янв 2013, 15:18 Сообщение

<script src="{T_TEMPLATE_PATH}/jquery-1.7.1.min.js"></script>
Я если честно вообще не понимаю разработчиков стиля, на кой они библиотеку jquery в футер запихнули. Многие jquery скрипты работают только после <script src=".../jquery-1.7.1.min.js"></script>. Можно сказать так, например, слабый инет или в силу обстоятельств страница открывается долго, и скрипт расположен перед </body>, у тех функции заработают только после загрузки всей страницы, в отличии если перед <head>... Скрипты, которые должны выполняться в первую очередь, обычно помещают в заголовок документа.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

silver073000Василий 11 апр 2015, 03:12 Сообщение

Попробовал прикрутить эту модификацию совместно со сворачиванием категорий. И получилось так, что сворачивание работает, а сортировка не хочет. Скрипты все подключены, вставки в тему есть. Но не сортируются категории. При наведении на иконку перетаскивания курсор меняет вид, но при попытке переместить категорию просто начинается выделение. Было такое у меня и на предыдущей версии phpbb, но там просто изменил порядок подключенных скриптов и всё заработало. Тут же как только не вертел эти скрипты, а результат прежний. Можно ли как-то заставить работать сортировку на новой версии phpbb? :)
  • 0

CabinetAdmin 11 апр 2015, 08:05 Сообщение

Может проблема заключается в месте установки скрипта? В новой версии все скрипты подключаются в футер, если ставить в ручную, то ставить нужно перед:

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

<!-- EVENT overall_footer_after -->
Просто сама библиотека находится в футере и все скрипты основанные на jquery должны располагаться после неё, иначе просто не будут работать.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

silver073000Василий 11 апр 2015, 10:56 Сообщение

Сворачивание же работает :)
Попробовал переместить в футер, но результат тот же. Сворачивание работает, а сортировка не желает.
А от версии библиотеки не может зависеть это? Стандартной хватит или можно заменить её на какую-то другую версию?
  • 0

CabinetAdmin 11 апр 2015, 15:51 Сообщение

От версии может. Можно заменить на время проверки.
Так, а сворачивание это расширение или просто через шаблоны коды добавлены? Если расширением, то можно не перед <!-- EVENT overall_footer_after -->, а перед </body> поставить, грубо говоря поиграть с расположениями скриптов.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

silver073000Василий 11 апр 2015, 16:37 Сообщение

Это правка шаблонов :) Свои расширения загружать нельзя, сервисом ограничено.
  • 0

silver073000Василий 11 апр 2015, 18:40 Сообщение

Перепробовал библиотеки от 1.4.1 и до 1.9.1, но упорно сортировка отказывается работать.
  • 0

CabinetAdmin 11 апр 2015, 19:21 Сообщение

Попробую намедни.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

Похожие темы