» » Вывод последних сообщений из phpBB3 в DLE 9

Вывод последних сообщений из phpBB3 в DLE 9

26.09
89
114 073
Вывод последних сообщений из phpBB3 в DLE 9


Буквально вчера попался на глаза модуль единой регистрации и автроизации, а проще говоря мост между DLE 9 и phpBB 3.0.7. Очень мне этот мост приглянулся, ведь я давно хотел поставить именно phpBB форум в связке с DLE. И всё вроде бы хорошо, но в модуле не предусмотрен вывод последних сообщений с форума на страницах DLE.
Было решено погуглить, итогом чего стал найденный и немного подогнанный под DLE скрипт. Было удалено примерно половина ненужного, на мой взгляд, кода и немного дополнен вывод содержимого.

Возможности:
- Вывод в любом удобном месте таблицы с последними темами с форума phpBB3.
- Выводятся:
-- Название темы ссылкой.
-- Автор темы.
-- Количество ответов.
-- Дата последнего ответа.
-- Последний ответивший.

- Кеширование блока.
- Настройка количества выводимых тем.
- Настройка обрезания длины темы.
- Задание игнорируемых категорий.
- Возможность вывода тем только из определённых категорий.
- Возможность выводить, либо не выводить количество ответов в теме.

- Настройка оформления блока производится в CSS.

Я специально не стал как бы то ни было оформлять вывод блока, т.к. это сугубо индивидуальная штука, ведь на каждом сайте свой дизайн и т.д. и т.п.

По немногочисленным просьбам сделал визуальное оформление блока с чередующейся подсветкой строк таблицы, всё настраивается в css при наличии желания.

Установка очень простая, но предполагает, что форум установлен на один домен с DLE в папку /forum:

1. Скопировать файлы из папки upload на сервер.
ВНИМАНИЕ: копируйте файты тем и шаблонов в СВОИ папки с темой и шаблоном.

2. В main.tpl :

[add]- Перед
</head>
вставляем:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

эту строку вставлять только если не подключена библиотека jQuery и версия DLE ниже 9.0.

<script type="text/javascript" src="{THEME}/js/tooltip.js" ></script>
<script type="text/javascript">$(document).ready(function(){simple_tooltip(".ttp_lnk a","tooltip"); $(".phpbb-block tr:even").addClass("even"); $(".phpbb-block tr").hover(function() {$(this).addClass("hover");}, function(){$(this).removeClass("hover");});});</script>



- В любом удобном месте прописать:
{include file="phpbb.tpl"}


[add]3. В CSS файле (например style.css) прописать:

.tooltip {
    z-index:999;
    left:-9999px;
    top: -9999px;
    background: #fafafa;
    border: 1px solid #0099cc;
    font-size:11px;
    color: #323232;
    padding:4px 8px;
    position:absolute;
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    max-width: 400px;
    }
    .tooltip p { margin: 0px; padding: 0px;}

table.phpbb-block {
    width: 680px;
    margin-bottom: 20px;
    }
table.phpbb-block a {
    text-decoration: none;
    }
    table.phpbb-block a:hover {
        color: #323232;
        border-bottom: dotted 1px #000;
        }
table.phpbb-block tr.php-hdr {
    font-weight: bold;
    color: #0099cc;
    background: #e5f0f9 url(../images/bg_row_phpbb.png) no-repeat -680px -5px !important;
    }
table.phpbb-block tr {
    background: #fff url(../images/bg_row_phpbb.png) no-repeat left bottom;
    height: 20px;
    line-height: 20px;
    }
    table.phpbb-block tr.even {
            background-position: -680px bottom;
        }
        table.phpbb-block tr.hover {
            background-position: left -5px;
            }
            table.phpbb-block tr.even.hover {
                background-position: -680px -5px;
                }
                table.phpbb-block td {
                    padding: 0 4px;
                    }
                    table.phpbb-block td.first-row {
                        padding-left: 25px;
                        }
                        table.phpbb-block td.first-row a {
                            display: block;
                            }
                            table.phpbb-block td.first-row a:hover {
                                border: none;
                                }
                    table.phpbb-block td.last-row {
                        padding-right: 15px;
                        }
.blueline {
    background: #e5f0f9 url(../images/bg_row_phpbb.png) no-repeat -680px bottom;
    width: 680px;
    height: 1px;
    font-size: 0;
    }



4. Радоваться жизни :) и поставить счетчик посещений для сайта.

Пункты, помеченные знаком [add] добавлены 01.10.2010

Обновление от 02.10.2010: убран вывод содержимого последнего поста из-за сложности отображения. можетбыть позже с этим вопросом разберусь.




P.S.
Если Вы собираетесь править файл recent_body.html не забывайте чистить кеш форума после внесения изменений в файл.

По прежнему жду Ваших предложений и замечаний.

Похожие материалы

Комментарии

poltava
poltava 3 октября 2010 11:47
А если форум установлен на поддомен, модуль работать не будет?
ПафНутиЙ
ПафНутиЙ 4 октября 2010 10:39
Вообще должно работать, ведь он подключается в DLE ссылкой. нужно будет просто переправить ссылку в файле phpbb.tpl
IIIMEJIb
IIIMEJIb 21 октября 2010 15:54
У меня почему то нет таблицы sad
ПафНутиЙ
ПафНутиЙ 21 октября 2010 16:26
Значит чтото не правильно.
Живой пример работы: http://japan-saratov.net/
IIIMEJIb
IIIMEJIb 21 октября 2010 17:28
Вроде все так делал как написано sad
leprekon
leprekon 27 октября 2010 16:32
в IE7 сбивается кодировка, даже в примере http://japan-saratov.net/ сбита,
а в гугле хром дизан криво отображается
ПафНутиЙ
ПафНутиЙ 27 октября 2010 17:50
А что мешает обновиться до 8 версии, или поставить нормальный браузер?
Я не собираюсь плясать неизвестно сколько времени с бубном только ради того, чтобы IE правильно отображал блок.
Проще уж поставить DLE UTF-edition......
leprekon
leprekon 27 октября 2010 18:43
ну это понятно, а что делать я поставил заказчику уже его. куда копать?
ПафНутиЙ
ПафНутиЙ 27 октября 2010 19:27
Погуглите материал по теме перекодировки utf-8 в windows-1251.
_http://www.snippy.ru/snippet/1109-konvertacija-stroki-utf-8-v-windows-1251/
_http://www.snippy.ru/snippet/49/
навскидку нашёл.
По хорошему данные из phpbb нужно передавать в скрипт, который уже будет "менять" кодировку и выводить уже в шаблон.
Либо попробовать использовать RSS поток, что в вашем случаи более привлекательный вариант smile
n1kola
n1kola 28 октября 2010 10:19
У меня при нажатии на ссылку переходит не к последнему сообщению, а к самой теме (ну т.е. к первому сообщению) и ссылка вида: http://site.ru/forum/viewtopic.php?f=10&t=60&view=unread#unread
Подскажи что не так?
ПафНутиЙ
ПафНутиЙ 28 октября 2010 10:48
Скорее всего вы просто не авторизованы на форуме в тот момент когда переходите к сообщению, либо вы сами оставили это сообщение.
n1kola
n1kola 28 октября 2010 15:41
нет. ССылка изначально имеет такой вид, что в конце вместо номера сообщения к которому переходить написано "unread#unread"
ПафНутиЙ
ПафНутиЙ 28 октября 2010 17:08
Это ссылка для перехода к непрочитанному сообщению smile
для указания id сообщения нужно ковырять recent.php.
в строке 96 заменить:
view=unread#unread',

на чтото вроде
view=' . $row['topic_last_post_id'] .',

но точно не скажу что это так.
n1kola
n1kola 1 ноября 2010 16:50
В общем после твоей подсказки немного пошарился и сделал:
в строке 96 заменить:
'&view=unread#unread'

на:
'&p=' . $row['topic_last_post_id'] . '#p' . $row['topic_last_post_id']

По крайней мере у меня все заработало
ПафНутиЙ
ПафНутиЙ 1 ноября 2010 17:50
))) просто прикол в том, что не всегда последнее сообщение и последнее непрочитанное сообщение - это одно и тоже. поэтому и ссылка даётся на последнее непрочитанное (при условии, что юзер авторизован на форуме) сообщение, а оно может быть в середине обсуждения из 20-30 сообщений :)
HAMMER
HAMMER 1 ноября 2010 20:27
Цитата: ПафНутиЙ
По хорошему данные из phpbb нужно передавать в скрипт, который уже будет "менять" кодировку и выводить уже в шаблон.

по-моему такой скрипт есть на офф сайте.

Цитата: n1kola
У меня при нажатии на ссылку переходит не к последнему сообщению, а к самой теме (ну т.е. к первому сообщению) и




вам это не о чем не говорит? учим мат часть, и ничего там в коде править не надо
ПафНутиЙ
ПафНутиЙ 1 ноября 2010 23:35
smile
despjke
despjke 3 ноября 2010 02:55
лучче бы что то похожее зделал бы для vbulletin
ПафНутиЙ
ПафНутиЙ 3 ноября 2010 06:51
булка - платный двиг, он мне не нужен был, когда будет нужно - и под него сделаем smile
n1kola
n1kola 5 ноября 2010 09:34
У меня этого нет: $cfg_show_attachments = false; // show attachments in the first posts of recent topics
n1kola
n1kola 5 ноября 2010 09:38
Ну да... я вывел не последнее прочитанное сообщение а просто последнее :) Но дело в том, что изачальный вариант выдавал всегда первое. Т.е. unread#unread никогда не заменялось!
n1kola
n1kola 5 ноября 2010 09:40
Ну да, я вывел не последнее прочитанное, а просто последнее, но в первоначальном варианте выводилось только первое сообщение, т.е. unread#unread никогда не заменялось!
n1kola
n1kola 5 ноября 2010 09:40
че такое? уже 2 раза добавил ответ к коменту 314, а их нет :(

В общем ответ такой:
Да я поставил переход к поледнему сообщению, а не последнему прочитанному, но в первоначальном виде unread#unread вообще не заменялось никогда (т.е. всегда переходило к первому сообщению в теме)!
papay
papay 9 ноября 2010 21:01
Отличный модуль, тока за что отвечает этот класс tooltip, что с ним, что без него ни каких изменений, все как бы настроил phpbb-block и норм :)
В ослике заметил какой то странный глюк с картинкой, я её мальца переделал, но код не стал трогать просто на синий наложил серый, она как то повторяется _http://www.net-wars.su/ посмотри в ИЕ, может знаешь с чем проблема.
ПафНутиЙ
ПафНутиЙ 9 ноября 2010 22:39
tooltip - это всплывающая подсказка на jquery, класс нужен для работы скрипта tooltip.js
В IE всегда глючит всё что только можно.
papay
papay 9 ноября 2010 22:52
Понял, значит надо его вернуть.
Ну это да, но тут заметил, что точно такой же глюк есть и в хроме и сафари.
ПафНутиЙ
ПафНутиЙ 9 ноября 2010 22:54
да, действительно есть такой глюк(раньше не видел его), я не знаю почему, пытался погуглить, но ответ нулевой, скорее всего как то у них по другому определяются стили строк в таблицах.
papay
papay 9 ноября 2010 23:01
ммм от тебя можно ждать решение проблемы или это возложено на плечи обычных смертных? :)
ПафНутиЙ
ПафНутиЙ 9 ноября 2010 23:40
ждать не стОит, т.к. внешнее оформление - дело индивидуальное, тем более сейчас занят довольно сильно.
despjke
despjke 10 ноября 2010 13:01
зделайте для vBulletin tongue

Добавить комментарий

Комментировать могут только зарегистрированные пользователи

Информация

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