*в состоянии ожидания*
Проблема с подфорумом
Сообщений 21 страница 40 из 113
Поделиться22Пн, 28 Мар 2011 20:59:21
Romych
Если нужно тестировать - стучись в аську.
Поделиться23Чт, 31 Мар 2011 01:11:35
Подфорумы (new)
продолжаю эту вечно актуальную тему,
сделал очередной вариант, в котором попытался учесть ошибки предыдущих вариантов,
поэтому вариант старался сделать с минимальным применением js, чтоб при отключении Javascript в браузере у пользователя, подфорум отображался так как положено
итак с чего начнём?
создадим сначала форумы, которые превратим в подфорумы,
запоминаем, а лучше записываем id этих форумов
в моём примере это три форума:
http://expert.mybb.ru/viewforum.php?id=3
http://expert.mybb.ru/viewforum.php?id=5
http://expert.mybb.ru/viewforum.php?id=6
соответственно id этих форумов 3, 5 и 6
скрываем их на главной странице, но не с помощью js как это делали мои предшественники, а с помощью css
в html-верх:
<style>
tr#forum_f3, tr#forum_f5, tr#forum_f6 {display: none;}
</style>
далее идём в Администрирование - Форумы
открываем для редактирования тот форум, к которому будет привязан подфорум или подфорумы
в описании этого форума размещаем таблицу, которая будет содержать элементы
на примере с одним подфорумом
одна ячейка таблицы нужна под иконку форума, другая под ссылку на подфорум
иконка подфорума | ссылка на подфорум |
естественно, если подфорумов в одном родительском форуме будет 2 или 3, то ячейки в таблице размножаются
привожу конкретные примеры со своими подфорумами
2 подфорума я привязываю к форуму с названием Ещё форум (id=4)
в его описание ставлю вот такую таблицу
<table>
<tr>
<td width="5%" style="border-width:0;padding:0;"><div id="kk5" style="background-size:50%;-moz-background-size:50%;margin-left:1em;" class="icon"></div></td>
<td width="15%" style="border-width:0;padding:0;"><a href="/viewforum.php?id=5">Подфорум 1</a></td><td width="5%" style="border-width:0;padding:0;"><div id="kk6" style="background-size:50%;-moz-background-size:50%;margin-left:1em;" class="icon"></div></td><td style="border-width:0;padding:0;"><a href="/viewforum.php?id=6">Подфорум 2</a></td>
</tr></table>
обратите внимание, что я каждой ячейке прописываю стиль,
объясню почему,
поскольку мы вставляем таблицу в описание форума, то наша таблица с подфорумами автоматически наследует стиль этого форума и никакими манипуляциями стиль таблицы уже не изменить, если только не прописывать его непосредственно в самой таблице
в ячейках под иконки у нас содержится стандартный див -
<div class="icon"></div>
только к каждому такому блоку надо присвоить индивидуальный id, чтоб потом через js позволить там появляться иконке оповещающей, о том что в подфоруме есть новое сообщение,
если не использовать js вообще, то иконки и так появятся у каждого подфорума, поскольку они прописаны в стиле каждого форума для <div class="icon"></div>, НО
иконки подфорумов будут наследовать стиль форума, к которому мы привязали подфорум, и когда в этом форуме появится новое сообщение, то во всех подфорумах привязаных к нему появятся иконки свидетельствующие о якобы новых сообщениях в них,
чтобы этого избежать придётся всё таки прибегнуть к помощи js
итак назначаем индивидуальный id каждой ячейке предназначенной под иконку подфорума
<div id="kk5" style="background-size:50%;-moz-background-size:50%;margin-left:1em;" class="icon"></div>
в моём скрипте я решил использовать сочетание латинских букв kk и цифре соответствующей id, чтоб избежать путаницы
надеюсь с этой частью всё понятно, с html и css мы закончили, теперь переходим к js части
разберу сначала скрипт по строкам, что за что отвечает
первое что мы делаем, это создаём переменную с изображением иконки показывающей, что сообщение в подфоруме новое
var newk = 'адрес изображения иконки нового сообщения';
затем создаём общую для всех подфорумов иконку которая показывает, что новых сообщений нет
$('div[id^="kk"]').css('background-image', 'url(адрес изображения иконки НЕТ новых сообщений)');
это строка работает со всеми ячейками под иконки с id="kk+любая ваша цифра" и не требует изменений
следующие строки скрипта, это условные выражения
в которых выполняется одно условие,
если в подфоруме появилось новое сообщение, то ячейке под иконки этого подфорума присваивается соответствующий бекграунд
if ($('#forum_f5 .icon').hasClass('inew')) {$('#kk5').css('background-image', 'url('+newk+')')};
if ($('#forum_f6 .icon').hasClass('inew')) {$('#kk6').css('background-image', 'url('+newk+')')};
if ($('#forum_f3 .icon').hasClass('inew')) {$('#kk3').css('background-image', 'url('+newk+')')};
в принципе на этом можно было бы и остановиться, но кому-то важно чтоб на главной странице ещё и отображалось количество тем и сообщений в подфорумах
я их приплюсовываю к форуму с подфорумом
это количество тем в подфорумах (в моём примере)
var Trid = [$('#forum_f3 .tc2').text(), $('#forum_f5 .tc2').text(), $('#forum_f6 .tc2').text()];
это количество сообщений в подфорумах (в моём примере)
var Soob = [$('#forum_f3 .tc3').text(), $('#forum_f5 .tc3').text(), $('#forum_f6 .tc3').text()];
далее количество тем в форумах, к которым привязаны подфорумы
var Grid = [$('#forum_f7 .tc2').text(), $('#forum_f4 .tc2').text()];
количество сообщений в форумах, к которым привязаны подфорумы
var Saab = [$('#forum_f7 .tc3').text(), $('#forum_f4 .tc3').text()];
дальше пойдёт сплошная химия
будем суммировать количество тем поформов с количеством тем форума именно того, к которому они привязаны
тут немного поподробнее вот эти количества тем и сообщений, что я привёл выше
выражены в массиве, а доступ к элементам массива читается слева направо, начиная от нуля [0]
поэтому будьте внимательны, что и к чему приплюсовываете
вот например у меня подфорум #forum_f3 привязан к форуму #forum_f7
оба в своих массивах стоят первыми поэтому считаются с [0]
(если подфорумов 2-3 или 4 в одном форуме, то все их данные приплюсовываются к нему), суммирование разделяется запятой
общая сумма тем форумов и подфорумов, каждый приплюсовывается к соответствующему
var totalGrid = [Number(Trid[0]) + Number(Grid[0]), Number(Trid[1]) + Number(Trid[2]) + Number(Grid[1])];
общая сумма сообщений
var totalSaab = [Number(Soob[0]) + Number(Saab[0]), Number(Soob[1]) + Number(Soob[2]) + Number(Saab[1])];
теперь общую сумму надо разместить на главной странице в соответствующих ячейках
$('tr#forum_f7 td.tc2').html(+totalGrid[0]);
$('tr#forum_f7 td.tc3').html(+totalSaab[0]);
$('tr#forum_f4 td.tc2').html(+totalGrid[1]);
$('tr#forum_f4 td.tc3').html(+totalSaab[1]);
теперь приведу общий скрипт
<script type="text/javascript"> var newk = 'http://petushki-city.ru/uploads/0002/10/47/9942-1.gif'; $(function() { $('div[id^="kk"]').css('background-image', 'url(http://www.iconsearch.ru/uploads/icons/blandet/16x16/control_start.png)'); if ($('#forum_f5 .icon').hasClass('inew')) {$('#kk5').css('background-image', 'url('+newk+')')}; if ($('#forum_f6 .icon').hasClass('inew')) {$('#kk6').css('background-image', 'url('+newk+')')}; if ($('#forum_f3 .icon').hasClass('inew')) {$('#kk3').css('background-image', 'url('+newk+')')}; var Trid = [$('#forum_f3 .tc2').text(), $('#forum_f5 .tc2').text(), $('#forum_f6 .tc2').text()]; var Soob = [$('#forum_f3 .tc3').text(), $('#forum_f5 .tc3').text(), $('#forum_f6 .tc3').text()]; var Grid = [$('#forum_f7 .tc2').text(), $('#forum_f4 .tc2').text()]; var Saab = [$('#forum_f7 .tc3').text(), $('#forum_f4 .tc3').text()]; var totalGrid = [Number(Trid[0]) + Number(Grid[0]), Number(Trid[1]) + Number(Trid[2]) + Number(Grid[1])]; var totalSaab = [Number(Soob[0]) + Number(Saab[0]), Number(Soob[1]) + Number(Soob[2]) + Number(Saab[1])]; $('tr#forum_f7 td.tc2').html(+totalGrid[0]); $('tr#forum_f4 td.tc2').html(+totalGrid[1]); $('tr#forum_f7 td.tc3').html(+totalSaab[0]); $('tr#forum_f4 td.tc3').html(+totalSaab[1]); }); </script>
ну в общем-то на этом всё, надеюсь инструкция получилась понятной
можно ещё сделать отображение количества тем в подфоруме прямо на против него
это у меня в примере с подфорумом - Music
можно конечно так же обойтись без массива, но тогда количество переменных разрастётся и уж не знаю где кому легче запутаться в сложении элементов массива или в множестве переменных
есть так же вариант отображения на главной странице в " Последнее сообщение" темы из подфорума в случае появления там нового сообщения,
это я делал за счёт всё того же условного выражения
например так
if ($('#forum_f3 .icon').hasClass('inew')) {$('#kk3').css('background-image', 'url('+newk+')');
$('tr#forum_f7 td.tcr').before($('tr#forum_f3 td.tcr'))};
НО тут привязка идёт к классу inew, поэтому тема из подфорума будет торчать на главной странице до тех пор пока не сменится класс, даже если в самом форуме, к которому привязан подфорум, появится новое сообщение, так что данный метод НЕ РЕКОМЕНДУЮ
ну и напоследок - ПРИМЕР
как это выглядит,
если кто-то запутался и не в состоянии настроить скрипт самостоятельно, то я могу за символическую плату помочь вам
Поделиться24Чт, 31 Мар 2011 21:30:30
Romych, спасибо за работу. Разобрался, все отлично работает, но есть два вопроса:
1. Возможно ли под подфорумами в таблицу так же вывести и описание этих подфорумов-форумов, которое написано в админке?
2. Есть ли возможность, сделать так, чтоб сами подфорумы отображались внутри форума, к которому они привязаны, что-то типа важной темы?
Поделиться25Пт, 1 Апр 2011 13:41:02
есть два вопроса
первый думаю можно сделать,
а вот со вторым посложнее, но подумаю
Поделиться26Пт, 1 Апр 2011 13:50:23
Урааа) Дождались) Вечером приду - побалуюсь)
Поделиться27Пт, 1 Апр 2011 13:59:03
можно ещё сделать отображение количества тем в подфоруме прямо на против него
это у меня в примере с подфорумом - Music
А я как то заходила на тестер, нечаянно, скрипт по примеру смотрела, и там видела вариант с названием темы и датой рядом с подфорумом. Такой вариант реализуем?
Поделиться28Пт, 1 Апр 2011 15:18:43
Romych, раз идёт привязка к стилю, то отображение подфорумов будет привязано к тому стилю, что стоит по умолчанию? и если юзеры у себя в профиле меняли себе стиль, то у них будет отображаться всё равно в том виде, что и для стиля по умолчанию?
Поделиться29Пт, 1 Апр 2011 15:57:20
Такой вариант реализуем?
там рядом с названием подфорума через тире указано количество тем в нём (если вы об этом),это можно сделать для каждого подфорума
Romych, раз идёт привязка к стилю, то отображение подфорумов будет привязано к тому стилю, что стоит по умолчанию? и если юзеры у себя в профиле меняли себе стиль, то у них будет отображаться всё равно в том виде, что и для стиля по умолчанию?
жёсткой привязки к стилю нет, у подфорумов иконки вы назначаете сами,
как уж они будут выглядеть во всех произвольных стилях, не знаю
Поделиться30Пт, 1 Апр 2011 16:20:53
первый думаю можно сделать,а вот со вторым посложнее, но подумаю
Romych, отлично, тогда буду ждать.)
Поделиться31Пт, 1 Апр 2011 17:32:28
Если Общее число форумов (которые с подфорумами) не будет превышать десятка,(* не ограничивая число подфорумов в форуме, то скрипт подфорумов можно организовать очень простыми пользовательскими действиями
Отредактировано Deff (Пт, 1 Апр 2011 17:33:58)
Поделиться32Пт, 1 Апр 2011 20:36:05
там рядом с названием подфорума через тире указано количество тем в нём (если вы об этом),это можно сделать для каждого подфорума
Это я видела, нет, не совсем об этом. Да и никто не поймёт толком, что за цифра торчит. Я имею ввиду так
Проблемы с форумом Нет соединения c форумами mybb
Сегодня 19:33:19 - rps-Даа.. неопытному во веки не разобраться с этим скриптом) Работы парням только прибавится.
Отредактировано Яхико (Пт, 1 Апр 2011 20:44:17)
Поделиться33Пт, 1 Апр 2011 20:46:18
Проблемы с форумом Нет соединения c форумами mybb Сегодня 19:33:19 - rps
Да, вот так было бы логичнее, ибо действительно не совсем понятно, что там такое стоит рядом, что за цифра.
Поделиться34Пт, 1 Апр 2011 20:47:09
Если Общее число форумов (которые с подфорумами) не будет превышать десятка,(* не ограничивая число подфорумов в форуме, то скрипт подфорумов можно организовать очень простыми пользовательскими действиями
Deff, а подробнее, как?
Поделиться35Пт, 1 Апр 2011 20:49:11
Кофеман Вопрос - стоял так - максимум 10- форумов устроит ? ( для подфорумов -нет ограничений
Поделиться36Пт, 1 Апр 2011 20:57:43
Deff, ну лично меня - да. Единственное как-то беспокоит - гибкость настроек с иконками и вывод последних сообщений в подфорумах.
Поделиться37Сб, 2 Апр 2011 11:29:49
Я имею ввиду так
Проблемы с форумом Нет соединения c форумами mybb
Сегодня 19:33:19 - rps
Да, вот так было бы логичнее, ибо действительно не совсем понятно, что там такое стоит рядом, что за цифра.
да я понял вас, это тоже можно сделать, вчера нашёл способ
Поделиться38Сб, 2 Апр 2011 15:09:29
Romych
А в целом - ты просил протестировать, я проверил, у меня работает без заметных глюков.
Поделиться39Сб, 2 Апр 2011 16:10:00
да я понял вас, это тоже можно сделать, вчера нашёл способ
Ура) С нетерпением ждём)
Поделиться40Сб, 9 Апр 2011 22:31:20
Romych
*Незаметно так намечает*