Неофициальная техническая поддержка MyBB

Объявление

Приветствуем ;)

На форуме Неофициальной Технической Поддержки MyBB.

Нам 11 лет 6 месяцев.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Неофициальная техническая поддержка MyBB » Новые возможности форума » Cоздание подфорумов искусственно с помошью скрипта.


Cоздание подфорумов искусственно с помошью скрипта.

Сообщений 1 страница 4 из 4

1

(c) karpoff
1. Первое что мы делаем - это создаём Форум через админ-меню под названием "Картинки". Он и станет скоро подфорумом. Права доступа к нему резонно установить такие же как и у форума "Мультимедиа"

2. Теперь идём на главную страницу и видим перед собой новый форум "Картинки". заходим в него. Смотрим что написано в адресной строке http://имя_форума/viewforum.php?id=11
Выделенное красным у каждого своё. Запоминаем где-нить эту ссылку и этот номер в частности.

3. Идём в форум "Мультимедиа", внутри которого мы хотим сделать раздел. Создаём там тему с тем же названием что и подфорум ("Картинки").

4. Заходим в тему. Запоминаем ссылку на неё. Имеет смысл эту тему закрыть и выделить, чтобы она отображалась в самом верху.

5. Предварительные работы закончились.
Теперь берём скрипт:

Код:
<script type="text/javascript">
var arr = new Array()

arr[0] = new Array("СТАРАЯ_ССЫЛКА1","НОВАЯ_ССЫЛКА1","ОПИСАНИЕ1")

var arr2=document.getElementsByTagName("tr")
for (i=0;arr2[i]; i++) {
var str=arr2[i].innerHTML
for (j=0; arr[j]; j++)
    if(str.indexOf(arr[j][0])!=-1) {
    td=arr2[i].getElementsByTagName("td")
    td[0].innerHTML="<div class=\"tclcon\"><h3><a href="+arr[j][1]+">"+td[0].getElementsByTagName("a")[0].innerHTML+"</a></h3>"+arr[j][2]+"</div>"
    td[1].innerHTML="&nbsp;"
    td[2].innerHTML="&nbsp;"
    td[3].innerHTML="&nbsp;"
    break
    }
}
</script>

и вставляем его в html-низ.

Теперь устанавливаем параметры.
СТАРАЯ_ССЫЛКА1 - ссылка на тему "Картинки" (см пункт 4)
НОВАЯ_ССЫЛКА1 - ссылка на форум "Картинки" (см пункт 2)
ОПИСАНИЕ1 - Описание для подфорума (Если не нужно, просто удалите)

6. Подфорум готов. Осталась только одна проблема - наш подфорум отображается также на главной странице. Надо его спрятать. Для этого в html-верх вставляем такой скрипт:

Код:
<script language="JavaScript">
str=document.URL
if(str.substring(str.lastIndexOf('/')+1)=="" || str.substring(str.lastIndexOf('/')+1)=="index.php")
   document.write("<style>#forum_fxx{display:none}</style>")
</script>

Смотрим выделенное жирным #forum_fxx. Вместо xx ставим число, которое мы запомнили в пункте 2 (в нашем случае 11). Тоесть выделенное жирным для нашего случая будет записано как #forum_f11

Теперь ВСЁ!

Если хотите делать несколько подфорумов:
Пункты 1-4 повторяем для каждого в отдельности
В пункте 5 вставляем только один скрипт для всех. Но в выделенном красном блоке вставляем столько строк, сколько подфорумов. Тоесть это будет выглядеть так:

arr[0] = new Array("СТАРАЯ_ССЫЛКА1","НОВАЯ_ССЫЛКА1","ОПИСАНИЕ1")
arr[1] = new Array("СТАРАЯ_ССЫЛКА2","НОВАЯ_ССЫЛКА2","ОПИСАНИЕ2")
arr[2] = new Array("СТАРАЯ_ССЫЛКА3","НОВАЯ_ССЫЛКА3","ОПИСАНИЕ3")
.....

Скрипт из 6-го пункта вставляем также один на всех. Только в блоке выделенным жирным перечиялем через запятую id, тоесть это будет выглядеть так:

Код:
<script language="JavaScript">
str=document.URL
if(str.substring(str.lastIndexOf('/')+1)=="" || str.substring(str.lastIndexOf('/')+1)=="index.php")
   document.write("<style>#forum_fxx,#forum_fxx2,#forum_fxx3{display:none}</style>")
</script>

0

2

(c) Usher
1) Создаем раздел "Картинки"
2) Запоминаем ссылку на него (Например: http://ваш_форум/viewforum.php?id=1)
3) В разделе в котором мы хотим добавить подфорум, в описании с самом низу добавляем вот это:

Код:
<br><b>Подфорум:</b> <a href="http://ваш_форум/viewforum.php?id=1">Картинки</a>

4) Чтобы скрыть раздел "картинки" в html верх вставляем этот скрипт:

Код:
<script language="JavaScript">
str=document.URL
if(str.substring(str.lastIndexOf('/')+1)=="" || str.substring(str.lastIndexOf('/')+1)=="index.php")
   document.write("<style>#forum_fxx{display:none}</style>")
</script>

где вместо #forum_fxx пишем #forum_f1 т.к. раздел имеент id=1 (http://ваш_форум/viewforum.php?id=1)

0

3

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

<script type="text/javascript">
if (document.title.indexOf(" - Форум")!=-1)
{
makeSubforum('forum_f8', 'forum_f2')
makeSubforum('forum_f7', 'forum_f5')
сюда добавляйте новые строчки
}

function makeSubforum(ff, sf)
{
{document.getElementById(ff).getElementsByTagName("td")[1].innerHTML=(document.getElementById(ff).getElementsByTagName("td")[1].innerHTML*1)+(document.getElementById(sf).getElementsByTagName("td")[1].innerHTML*1)
document.getElementById(ff).getElementsByTagName("td")[2].innerHTML=(document.getElementById(ff).getElementsByTagName("td")[2].innerHTML*1)+(document.getElementById(sf).getElementsByTagName("td")[2].innerHTML*1)
if ((document.getElementById(ff).className.indexOf("inew")==-1)&&(document.getElementById(sf).className.indexOf("inew")!=-1))
{document.getElementById(ff).className=document.getElementById(ff).className+" inew"}
var date1=document.getElementById(ff).innerHTML.substr(document.getElementById(ff).innerHTML.toLowerCase().lastIndexOf("</a>")+8)
var date2=document.getElementById(sf).innerHTML.substr(document.getElementById(sf).innerHTML.toLowerCase().lastIndexOf("</a>")+8)
if (transtoDate(date2)>transtoDate(date1))
{document.getElementById(ff).getElementsByTagName("td")[3].innerHTML=document.getElementById(sf).getElementsByTagName("td")[3].innerHTML}}
}

function transtoDate(oi)
{var d1=new Date()
d1.setHours(oi.substr(oi.indexOf(" ")+1, 2), oi.substr(oi.indexOf(":")+1, 2), oi.substr (oi.lastIndexOf(":")+1, 2))
if (oi.substr(0, 5)=="Сегод")
{var resd=d1.getTime()}
else if (oi.substr(0, 5)=="Вчера")
{var resd=(d1.getTime()-(1000*60*60*24))}
else
{d1.setFullYear(oi.substr(0, 4), (oi.substr(oi.indexOf("-")+1, 2))-1, oi.substr(oi.indexOf("-")+3, 2))
var resd=d1.getTime()}
return resd}

</script>

Вместо жирного добавляйте строчки для каждого имеющегося у вас подфорума. Вставляеете сточку makeSubforum('forum_f8', 'forum_f2'),где вместо forum_f8 вставляете ид форума, к которому приписан подфорум, а вместо forum_f2 - ид форума, который изображает из себя подфорум и скрыт на главной. Иды вы должны знать из основного скрипта искуственых подфорумов, который тут выше.

Добавлено: отображает во второй и третьей колонке сумму тем и сообщений в форуме и подфоруме.

0

4

Создаём подфорумы используя jQuery © Romych

1. создаём новый форум, который у нас в последствии станет подфорумом
допустим адрес у него такой http://адрес вашего форума/viewforum.php?id=5

запоминаем id номер нашего будущего подфорума, в данном примере 5

2. заходим в Администрирование - Форумы - выбираем тот форум к которому мы хотим сделать один или несколько подфорумов
Редактируем его, чтоб в описании его вставить ссылку на будущий подфорум в виде таблицы

пример с двумя подфорумами
это ставится в Описании форума, в котором будут подфорумы (HTML):

<table>
<tr>
<td width="8%" style="padding: 0pt; border-width: 0;"><div class="icon kkk1"></div></td>
<td width="35%" style="padding: 0pt; border-width: 0;"><a class="fig" href="http://адрес форума/viewforum.php?id=5"><font size="-3" color="maroon">подфорум НАЗВАНИЕ</font></a></td>
<td width="70%" style="padding: 0pt; border-width: 0;" class="info1"></td>
</tr>
<tr>
<td width="8%" style="padding: 0pt; border-width: 0;"><div class="icon kkk2"></div></td>
<td width="35%" style="padding: 0pt; border-width: 0;"><a class="fig" href="http://адрес форума/viewforum.php?id=6"><font size="-3" color="maroon">подфорум НАЗВАНИЕ</font></a></td>
<td width="70%" style="padding: 0pt; border-width: 0;"  class="info2"</td>
</tr>
</table>

обратите внимание, что мы создаём дополнительные ячейки, которым присваиваем класс class="info",
у каждого подфорума должна быть своя нумерация class="info1", class="info2", class="info3" и т.д.

3
это ставим в html-низ:
в скрипте присутствует функция скрытия форума, который стал подфорумом, на главной странице и отображения последних сообщений в подфоруме на главной странице вашего форума

<!--Подфорумы-->
<script type="text/javascript">
$(document).ready(function() {
$(".info1").html( $("#forum_f5 .tcr").html() );
$(".info2").html( $("#forum_f6 .tcr").html() );
if ($("#forum_f5 .icon").hasClass('inew'))  {$(".kkk1").addClass('inew')}
if ($("#forum_f6 .icon").hasClass('inew'))  {$(".kkk2").addClass('inew')}
});
str=document.URL
if(str == 'здесь адрес вашего форума')
document.write("<style>#forum_f5,#forum_f6{display:none}</style>")
</script>

вот собственно и ВСЁ
всю эту операцию придётся повторять столько, сколько подфорумов вы задумали создать

;) ПРИМЕР как это всё выглядит

0


Вы здесь » Неофициальная техническая поддержка MyBB » Новые возможности форума » Cоздание подфорумов искусственно с помошью скрипта.