Код:
<script type="text/javascript">
if($(".punbb").attr("id")=="pun-index"){ //Это Главная ?
var Tem='',soobchenij='',hrefFind;
var numForSpdF=$("div.category.Catlog_pdF").length //Число подфорум-каталогов
// ИЩЕМ И ВСТАВЛЯЕМ ПЕРВЫМ В КАТЕГОРИЮ МАТЕРИНСКИЙ ФОРУМ;
$("div.category.Catlog_pdF").each(function (i){
$(this).attr("reversnum",""+(numForSpdF-i)+"")
var str=$(this).find("h2 span").text();//alert("№"+(i+1)+" Каталог форума "+str);
var ParFor2=$("div.category .tclcon h3").find("a:contains('"+str+"')");
if(ParFor2.html()!=null){var ParFor=ParFor2.parents("tr:first").clone()
//alert(ParFor.html());alert($(this).find(".container:first table .hasicon").html())
ParFor.prependTo($(this).find(".container:first table .hasicon"));}
});
$("div.category.Catlog_pdF").find("tr[id^='forum_']:first .tclcon:first h3 a").html("Parental Forum")
//End;
//======================= ФУНКЦИЯ ЗАМЕНЫ СООБЩЕНИЙ В ТРЕТЬЕЙ КОЛОНКИ ================================//
// Функция замены сообщений в третьей колонки и общей замены значений в Родительском форуме(или его клоне)
// Замещаем в родительском в Родительском форуме(или его клоне) знак # на $ и добавляем класс (или атрибут),
//?? Наверно добавку в колонки таблички лучше тож сделать функцией ??
function ReplaceMessOnTime(NumFor_tr,DatePost){
var gg=" " //Длинный пробел
//1.Cчитываем поле, - Проверяем формат Даты:
//alert('последнее сообщение > "'+NumFor_tr.find("td.tcr").text()+'"')
var str=NumFor_tr.find("td.tcr").text();
var str2=NumFor_tr.find("td.tcr a").text(); //alert("я тут")
if(str.search(str2)== 0){ str=str.replace(str2,"") //Очищаем от контента ссылки в <а
str=str.replace(/(\s\d\d:\d\d)\s-\s.{1,25}$/im,"$1") //Очистили от Ника ...//alert("str >"+str);
if(str.search("Вчера")== 0){/*alert("Вчера")*/;str=str.replace(/^Вчера/im,"01.01.3010");
} else if(str.search("Сегодня")== 0){/*alert("Сегодня")*/;str=str.replace(/^Сегодня/im,"01.01.3011");}
if(str.search(/(?:\d){2}\.(?:\d){2}\.(?:\d){4}\s(?:\d){2}:(?:\d){2}/im)!=0){alert("Выставлен неправильный формат Даты:\nнеобходимый формат: 29.03.2011 01:50");return false}else {
//alert("Цифра >"+str);
var a=str.replace(/((?:\d){2})\.((?:\d){2})\.((?:\d){4})\s((?:\d){2}):((?:\d){2})/img,"(($1+31*$2+372*$3)*60+$4)*60+$5")
// alert(a+"="+eval(a)); // *Перемножаем суммируем минуты,часы,дни,месяцы,годы;
if(DatePost<eval(a)){TekuchPostDate=eval(a);TekuchLastPost=NumFor_tr.find("td.tcr").html(); return true;
}else return false;
} //End /else(т.е.: был Выставлен правильный формат Даты:
} return false; //End/if(str.search(str2)
}
//======// ИЩЕМ И СУММИРУЕМ В КАТЕГОРИЯХ от ПОДФОРУМЫ//==== ДО === 'END - Подфорумы'==============================//
//а) ИКОНКИ /НОВЫЕ/СТАРЫЕ
//б) КОЛ-ВО ТЕМ
//в) КОЛ-ВО СООБЩЕНИЙ
//с) СООБЩЕНИЯ
// ИЩЕМ,ВСТАВЛЯЕМ В РОДИТЕЛЬСКИЙ ФОРУМ
//"reversnum" -атрибут обратной индексации Категорий снизу-вверх/упрощаем суммирование иконок,тем,сообщений;
//numForSpdF //Число подфорум-каталогов)
var PodFrmNam; //имя подфорумы
for (i = 1; i < numForSpdF+1; i++){ //alert(i +" "+numForSpdF)
var ParentForum; //объект родительский форум;
var ParForumName; //имя родительского форума;
var LastPostTcr=""; //контент яч. "последнее сообщение;
var FFF; // Номер внутреннего цикла;
var Icon=""; //Иконка - состояние;
var Tem=0; //Число тем;
var TekuchLastPost="" //html Текщего поста
var TekuchPostDate=0; //Дата Текщего поста в Абсолюте
var coobcheny=0; //Число сообщений;
$("div.category.Catlog_pdF[reversnum='"+i+"'] tr[id^='forum_']").each(function (j){
//alert('.attr("reversnum") >'+$(this).parents(".category.Catlog_pdF").attr("reversnum"))
if(j==0){ParentForum=$(this)}
//alert($(this).parents("div.category.Catlog_pdF").find("h2 span").text()+" >> "+$(this).find(".tclcon h3 a").text())
if($(this).find(".tclcon h3 a").text().search(/^#/igm)!=-1 && $(this).hasClass("post-TemReplace")!=true){
PodFrmNam=$(this).find(".tclcon h3 a").text(); //Нарушен порядок следования каталогов форумов вложенных подфорумов
alert("!!"+" Нарушен порядок следования каталогов вложенных подфорумов,(*каталогов под-под-форумов и т.д.(*вложенность второй, третьей степени и далее.\n\n Данные каталоги должны стоять в категориях ниже исходных \"родительских форумов\" ") };
var PlusTems=parseFloat($(this).find("td.tc2").text());if(PlusTems!=0) //Проверяем/заменяем,- если форум не пуст
{
Tem+=PlusTems;//alert("Tem >"+Tem);//Суммируем Темы;
ReplaceMessOnTime($(this),TekuchPostDate) // Тут Вызов и замены сообщений в третьей колонке
if($(this).hasClass("inew")==true){Icon="inew";}//alert("Icon >"+Icon);//Суммируем иконки /НОВЫЕ/СТАРЫЕ
coobcheny+=parseFloat($(this).find("td.tc3").text());//alert("coobcheny >"+coobcheny);//Суммируем Сообщения;
} FFF=j // Экспорт-Тест номер внутреннего цикла по каталогу форумов
});
//alert("end цикл №"+i +" "+numForSpdF);alert("j >"+FFF);//alert("Tem(2) >"+Tem)
ParentForum.addClass(Icon);ParentForum.find("td.tcl .icon").addClass(Icon)
ParentForum.find("td.tc2").text(Tem)
ParentForum.find("td.tc3").text(coobcheny)
ParentForum.find("td.tcr").html(TekuchLastPost)
ParForumName=$("div.category.Catlog_pdF[reversnum='"+i+"']").find("h2:first span").text()
//================================================================//
//Поля Родителя заполнены проверяем - Это случаем не каталог Под/Подфорума, (*- ищем: нет ли Родительского форума
//во всех каталогах выше
$("div.category.Catlog_pdF tr[id^='forum_']").each(function (c){
if($(this).parent("div.category").attr("reversnum")==i){ return false;} //Если дошли до текущего и не нашли - то возврат;
if($(this).find(".tclcon h3 a").text()==ParForumName) { //alert("НАШЁЛ! РОДИТЕЛЬСКИЙ ПодФорум/\"Под\" может быть N-раз)")
// Замещаем кол-во тем -сообщений и последнее сообщение в родительском в Родительском (под-N)форуме и добавляем класс (или атрибут)
$(this).addClass("post-TemReplace") //Строку комментим для проверки последовательности вложенности каталогов
$(this).find("td.tc2").text(Tem)
$(this).find("td.tc3").text(coobcheny)
$(this).find("td.tcr").html(TekuchLastPost)
} //End//"НАШЁЛ! РОДИТЕЛЬСКИЙ ПодФорум;
});
//================================================================//
ParentForum.find(".tclcon h3 a").text(ParForumName); //alert("i >"+i)
//alert("ParentForum.html(tr) >"+ParentForum.html())
//============= ДОБАВКА СПИСКА ФОРУМОВ К 1-й КОЛОНКЕ РОДИТЕЛЬСКОГО ФОРУМА ===================//
var htt_OldPs='http://savepic.org/1712026.gif'
var htt_NewIco='http://savepic.org/1705881.gif';
var imgSTRst='<img src="'
var imgSTRend='" alt="Перейти к последнему сообщению" title="Перейти к последнему сообщению" style="max-width:12px;cursor:pointer; cursor:hand;"/>';
var OldPs=imgSTRst + htt_OldPs + imgSTRend;
var NewIco=imgSTRst + htt_NewIco + imgSTRend; //
//var OldPs='п.с.';
//var NewIco='new';
var Nadpisj="<span class=\"title\">'Подфорумы:</span>";
var obramlene0='<div class="divParentFor" style="padding:5px 0;margin:0 50px 0 -50px;"><h3><h5>';
var obramlene0End='</h5></h3></div>';
var obramlene1='<div class="tclcon" style="padding:2px">';
var obramlene1End='</div>';
var sttr=""; //Контент вставки
$("div.category.Catlog_pdF[reversnum='"+i+"'] tr[id^='forum_']").each(function (Nn){
var Aps="",ico=OldPs; //ссылка на последний пост + иконка
if(Nn==0){PFor=$(this)}else {Aps=$(this).find("td.tcr a:first").attr("href");//alert("Aps >"+Aps);
if(Aps!=undefined){ //Проверка Иконки;
if($(this).hasClass("inew")==true){ico=NewIco;}
Aps='<a class="Aps" href="'+Aps+'">'+ico+'</a>';
}else Aps="";
//Собираем всё, заключаем в div, всовываем в конец .tclcon
sttr+=obramlene1+$(this).find(".tclcon h3").html()+Aps+obramlene1End;};});
sttr=obramlene0+Nadpisj+sttr+obramlene0End; //alert(sttr); //Строка Подстановки
PFor.addClass("forReplac");PFor.find(".tclcon").append(sttr);
} //Конец Данной Категории подфорумов(* начальная строчка >for (i = 1; i < numForSpdF+1; i++){//alert(i +" "+numForSpdF)
//=====КОНЕЦ СЕКЦИИ://ИЩЕМ И СУММИРУЕМ В КАТЕГОРИЯХ начиная от ПОДФОРУМЫ//====ДО=='END - Подфорумы' =============//
//============// ИЩЕМ "РОДИТЕЛЬСКИЕ" ФОРУМЫ В ПОЛЬЗОВАТЕЛЬСКИХ КАТЕГОРИЯХ ===========//
// Замещаем копией созданной в скрытых каталогах
var ParentfName=""
var Parentfor=""
$("div.category.Catlog_pdF").each(function (i){
ParentfName=$(this).find("h2 span").text();
var Parentfor=$(this).find(" tr[id^='forum_']:first")
$("div.category:not('.Catlog_pdF') tr[id^='forum_']").each(function (){
var PFNe=$(this).find(".tclcon h3:first a:first").text();
//alert("PFNe >" + PFNe+ "\n ParentfName>" + ParentfName)
if(PFNe==ParentfName){Parentfor.clone().replaceAll($(this));return true;}
});
$("div.category.Catlog_pdF tr[id^='forum_']").each(function (){
var PFNe=$(this).find(".tclcon:first h3:first a:first").text();
if($(this).hasClass("forReplac")!=true){ // Это Форум - аналог родителя ? (*если нет, - ищем, меняем..
if(PFNe==ParentfName){Parentfor.clone().replaceAll($(this));return true;};
} //else alert(PFNe + "Форум - аналог родителя");
});
});
//=======Устанавливаем Cookie на cутки на Каталог Подфорумов (*на Главной их автоматическое обновление =========//
var separ="§§";var value="";var s="";
$("div.category.Catlog_pdF").each(function (i){
$(this).find("tr[id^='forum_']").each(function (j){
if(i+j!=0)s=separ
if(j==0){var str=$(this).find(".tclcon:first h3:first").html();
value+=s+str.replace(/^<a href=/im,'<a class="MyPodFRM" href=');} //Добавили class
else{value+=separ+$(this).find(".tclcon:first h3:first a:first").text();};});});
//alert(value)
setCookie2(UserLogin+'Catalog_PDFv.0.1.',value,24*60*60*1000);
//alert("getCookie2 >\n"+getCookie2(UserLogin+'Catalog_PDFv.0.1.'))
//setCookie2(UserLogin+'!show_button',value2,24*24*60*60*1000);
//========CКРЫВАЕМ КЛОНОВ ===========//
$("div.category.Catlog_pdF").each(function (){
$(this).find(" tr[id^='forum_']:first").hide()
});
} //КОНЕЦ - "#pun-index"
</script>
