Артём-Астроном
Создаёте отдельную страницу, в неё вставите это:
<style type="text/css">
#pun-main .section, #pun-main .tcr {
display: none;
}
#pun-main table {
margin-bottom: 1em;
}
</style>
<script type="text/javascript">
var frame_class = {
forums: ["1","2","3"],
step: 0,
change_forum: function() {
var fr = document.getElementById("frame");
fr.src = "http://" + location.hostname + "/viewforum.php?id=" + this.forums[this.step];
fr.onload = function() {frame_class.f_load(this)}
},
f_load: function(obj) {
var x = document.getElementById("frame");
var y = x.contentDocument;
if (y.document)
y = y.document;
document.getElementById("pun-main").innerHTML += "<h2>" + y.getElementById("pun-crumbs1").innerHTML.substr(y.getElementById("pun-crumbs1").innerHTML.indexOf("</a> »") + 12 ) + "</h2><table class='container'>" + y.getElementById("pun-main").getElementsByTagName("table")[0].innerHTML + "</table>";
obj.onload = false;
this.step++;
this.change_forum();
}
}
</script>
<iframe id="frame" width="0" height="0" onload="frame_class.change_forum()"></iframe>
Выделенное красным - номера форумов, из которых скрипт будет забирать список тем. Номера впишите свои (узнать номер форума можно из его адреса:
http://forum.mybb.ru/viewforum.php?id=5
Теперь несколько слов об особенностях этого скрипта.
1. Я намеренно не стал реализовывать сбор всех тем с форумов, где существует более одной страницы. Согласно данным, в среднем обработка одного форума занимает 3-4 секунды... Это достаточно долго, если ещё и 3 или 4 страницы - 9 - 12 секунд на один список - это очень много. Моя скорость составляет 6Мб/с, соответственно у тех, кто имеет менее скоростной Интернет загрузка пройдёт дольше. Поэтому мы (те, кто работал над скриптом) решили ограничиться только первыми страницами.
2. Стиль css я сделал максимально простым и в то же время совпадающим с сновным стилем форума. Проще говоря, Вам не придётся отдельно оформлять этот список. Однако, на случай, если Вам понадобится это сделать - в самом начале есть теги style, пишите.
3. Я убрал колонку с автором последнего написавшего в каждой теме. Если в ней есть необходимость - удалите в начале кода это
4. Наконец, если Вам не понравится такая структура списка - Вы всегда сможете изменить её самостоятельно, здесь:
Как правильно вставить этот код на страницу я объяснять не стану, надеюсь, знаете.
Пример работы можно посмотреть здесь: ссылка.
В завершение хотелось бы выразить благодарность mkusher за ценные поправки в алгоритм.
Отредактировано rps (Вс, 26 Июн 2011 04:39:43)