Форум поддержки пользователей ZeroParking

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

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


Вы здесь » Форум поддержки пользователей ZeroParking » Заказ скриптов » Расположение сообщений (помогите переделать) <


Расположение сообщений (помогите переделать) <

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

1

Мне очень нужен этот скрипт Взято отсюда, но он не работает (отказался нахал вообще открывать темы)!
Своим блондинистым умом я так и не поняла в чем может быть причина. Помогите переделать, чтобы работал всегда, везде и у всех т.н. кроссброузерное решение.

Код:
<script type="text/javascript">
    var divs=document.getElementById('pun-main')
    var posts=divs.getElementsByTagName("div")
    var qaz=new Array(0)
    var qw=0
    function getPosts()
    {for (qw=0; qw<=(posts.length-1); qw++)
    {if (posts[qw].innerHTML.indexOf("permalink")!=-1)
    {qaz.splice (0, 0, posts[qw].outerHTML)}}
    return qaz
    }

    if (document.URL.indexOf("viewtopic")!=-1)
    {var po=getPosts().slice(0, ((getPosts().length/2)-1))
    document.getElementById('pun-main').innerHTML=document.getElementById('pun-main').innerHTML.substring(0, (document.getElementById('pun-main').innerHTML.indexOf("item1")-17))+po.join(" ")+"</div>"+document.getElementById('pun-main').innerHTML.substr((document.getElementById('pun-main').innerHTML.indexOf("modmenu")-12))}
    </script>

Теги: javascript, сортировка сообщений, расположение сообщений

0

2

Сама я не сидела на месте и искала "альтернативный подход" Например, есть идея с помощью службы RSS импорт: wwwrss-script.ru вместо отображения сообщений в теме выводился текст RSS ленты данной темы, и так абсолютно для всех тем моего форума, без исключений, но с возможностью добавления сообщений. Видела у Deff-а СКРИПТ ОТКРЫТОЙ НА ЗАПИСЬ, НО ЗАКРЫТОЙ ДЛЯ ЧТЕНИЯ ВСЕМИ ТЕМЫ

Код:
    <!--Тема со скрытым от всех контентом, с возможностью написания сообщений--><style id="offtopic2" type="text/css">.post,.pagelink a{display:none}</style>
    <script type="text/javascript">var s=document.URL;if(GroupID==3){UserID= -1};

    var id_topic=433;     // id ТЕМЫ /число после "id=" при клике на Тему  в адресном окне браузера
    if((UserID==2)||(s.indexOf("viewtopic.php?id="+id_topic)==-1)&&(s.indexOf("edit.php?id="+id_topic)==-1)&&(s.indexOf("post.php?tid="+id_topic)==-1)&&(s.indexOf("search.php?search_id")==-1)){$("style.#offtopic2").replaceWith("");}
    </script><!--Конец скрытия Темы-->

Но переделать скрипт, чтобы он автоматически при входе в любую тему выводил в объявлении rss-script и скрывал топики ??? мне одной не под силу

Отредактировано semina (2012-01-07 12:10:02)

0

3

Для начала разобралась с объявлениями, чтобы они показывались ТОЛЬКО в просмотре темы (topic) +(плюс),  как и хотела, подключила просмотр RSS также для каждой темы - свой канал.
Что у меня получилось:
В самом объявлении поставила:

<hr>
<A href="JavaScript:myWin=window.open('','example','menubar=no,scrollbars=yes,resizable=yes,width=1000');
var ss=document.getElementsByTagName('link');
for(l=0;l<ss.length;l++) {
if(ss[l].title.indexOf('RSS')!=-1){
myWin.document.write('<a href='+ss[l].href+'>Посмотреть последние объявления</a><BR>')}
}
myWin.document.close();">
Показать дополнительное меню
</A>
   <div alt="Основной раздел" class="notificat" style="display:none;width:100%;">
<script type="text/javascript">
var charset='UTF-8';
var t=document.getElementsByTagName('meta');
for(var i=0; i<t.length; i++){
var rg=/charset=["']?([^"']*)/g;
if(t[i].content.indexOf('charset')!=-1){
charset=rg.exec(t[i].content)[1];
break;
}
}
mm=s.substring(s.lastIndexOf('/')+1)
if (mm.search('topic') != -1) { indx=s.substring(s.lastIndexOf('=')+1)
alert(indx)
document.write('<script type="text/javascript" src="http://www.rss-script.ru/rss-script.php?charset='+charset+'&rss[]=http%3A%2F%2F100sm.0pk.ru%2Fexport.php%3Ftype%3Drss%26tid%3D'+indx+'&notitle=1&count=10"><\/script>');}</script><noscript>Для просмотра этой RSS ленты требуется поддержка Java Script</noscript>
<!--
    Чтобы скрипт работал, необходимо чтобы на странице, где он установлен, была ссылка на wwwrss-script.ru.
    В случае использования нескольких лент, достаточно одной ссылки в любом месте страницы.
-->
<center><small><a title='RSS новости на вашем сайте' href='http://www.rss-script.ru'>RSS импорт: wwwrss-script.ru</a></small></center></div>

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

Код:
<style>
/*div - контейнер для новости*/
.rss{margin:10px;  padding-bottom: 15px;}

/*div - контейнер для всей ленты*/
.rss_container{padding:10px; background: #fff;}

/*div - контейнер для медиа-файлов*/
.media{background-color:#f0f0f0; background-image:url(http://www.rss-script.ru/img/skrepka.gif); background-repeat:no-repeat; padding-top: 5px;padding-bottom: 5px;padding-left: 13px}

/*div - ссылка на медиа-файл*/
.media a{color:#000000;font-size:0.7em}

/*div - изображение медиа-файл*/
.media a img{height:16px; border:0px; vertical-align: middle; text-decoration: none; margin:3px;}

/*div - контейнер даты новости и заголовка rss-канала*/
.rssdate{font-size:0.7em; color:#c0c0c0; margin:7px; }

/*div - ссылка даты новости и заголовка rss-канала*/
.rssdate a{color:#c0c0c0;}

</style>

Появление в объявлении последнего сообщения происходит, как правила через час, так что не волнуйтесь особенно.

Отредактировано semina (2012-01-08 16:02:24)

0

4

HTML - низ также претерпел несколько изменений

Код:
<!--Своё Объявление для каждой темы или форума-->
<script>
str=document.URL
var st = document.getElementById("pun-crumbs1").innerHTML;
$("#pun-announcement div.notificat[alt]").each(function (i) {
   var Tem_title=$(this).attr("alt");
   if ((st.indexOf(Tem_title)== -1) && str.substring(str.lastIndexOf('/')+1)!="" && st.search('forum')!= -1) {$(this).show();};});
</script>
<!--End/MyAdvertise-->

Ошиблась немного
В самом объявлении
вычеркните строчку
alert(indx) - это для отладки скрипта я использовала.

правильный вариант:

<hr>
<A href="JavaScript:myWin=window.open('','example','menubar=no,scrollbars=yes,resizable=yes,width=1000');
var ss=document.getElementsByTagName('link');
for(l=0;l<ss.length;l++) {
if(ss[l].title.indexOf('RSS')!=-1){
myWin.document.write('<a href='+ss[l].href+'>Посмотреть последние объявления</a><BR>')}
}
myWin.document.close();">
Показать дополнительное меню
</A>

   <div alt="Основной раздел" class="notificat" style="display:none;width:100%;">
<script type="text/javascript">
var charset='UTF-8';
var t=document.getElementsByTagName('meta');
for(var i=0; i<t.length; i++){
var rg=/charset=["']?([^"']*)/g;
if(t[i].content.indexOf('charset')!=-1){
charset=rg.exec(t[i].content)[1];
break;
}
}
mm=s.substring(s.lastIndexOf('/')+1)
if (mm.search('topic') != -1) { indx=s.substring(s.lastIndexOf('=')+1)
document.write('<script type="text/javascript" src="http://www.rss-script.ru/rss-script.php?charset='+charset+'&rss[]=http%3A%2F%2F100sm.0pk.ru%2Fexport.php%3Ftype%3Drss%26tid%3D'+indx+'&notitle=1&count=10"><\/script>');}</script>
<center><small><a title='RSS новости на вашем сайте' href='http://www.rss-script.ru'>RSS импорт: wwwrss-script.ru</a></small></center>
    </div>

Зеленое - можно совсем выкинуть

Отредактировано semina (2012-01-08 16:19:43)

0

5

И вновь дополнение: Сделаем теперь красиво!
Высота блока объявления фиксированная. Система кросброузерная. Назначение: вывод последних сообщений какой-либо темы в блоке объявлений.. Дополнительно: объявление не показывается на главной странице или в списке тем форума

1. Подготовительный этап:
в настройках находим пункты
Показывать объявление? - отмечаем "да"
Объявление только на главной - отмечаем "нет"

2. Ставим в html - низ:

Код:
<!--Своё Объявление для каждой темы или форума-->
<script>
str=document.URL
var st = document.getElementById("pun-crumbs1").innerHTML;
$("#pun-announcement div.notificat[alt]").each(function (i) {
   var Tem_title=$(this).attr("alt");
   if ((st.indexOf(Tem_title)== -1) && str.substring(str.lastIndexOf('/')+1)!="" && st.search('forum')!= -1) {$(this).show();};});
</script>
<!--End/MyAdvertise-->

3. Ставим в текст объявления:

<hr><div style='width:100%;overflow-y: auto;  overflow-x: hidden;
height : expression(parentNode.clientHeight > 380 ? "380px" : "auto");
max-height: 380px; height: auto;'>
   <div alt="Основной раздел" class="notificat" style="display:none;width:100%;">
<script type="text/javascript">
var s=document.URL;
var charset='UTF-8';
var t=document.getElementsByTagName('meta');
for(var i=0; i<t.length; i++){
var rg=/charset=["']?([^"']*)/g;
if(t[i].content.indexOf('charset')!=-1){
charset=rg.exec(t[i].content)[1];
break;
}
}
mm=s.substring(s.lastIndexOf('/')+1);
if (mm.search('topic') != -1) { indx=s.substring(s.lastIndexOf('=')+1);
document.write('<script type="text/javascript" src="http://www.rss-script.ru/rss-script.php?charset='+charset+'&rss[]=http%3A%2F%2F100sm.0pk.ru%2Fexport.php%3Ftype%3Drss%26tid%3D'+indx+'&notitle=1&count=10"><\/script>');}</script><noscript>Для просмотра этой RSS ленты требуется поддержка Java Script</noscript>
<center><small><a title='RSS новости на вашем сайте' href='http://www.rss-script.ru'>RSS импорт: wwwrss-script.ru</a></small></center></div></div>

Вместо красного - адрес вашего форума
Вместо синего - количество последних сообщений

0


Вы здесь » Форум поддержки пользователей ZeroParking » Заказ скриптов » Расположение сообщений (помогите переделать) <


Рейтинг форумов | Создать форум бесплатно