Вывод последних тем ipb на Stress Web 13




Вывод последних тем ipb на Stress Web

- Скачать Fix (Исправленный модуль forum для ipb)



Не выводятся последние темы с форума ipb ?


Очень часто обращаются с одной и тоже проблемой: "Не выводятся последние темы с форума ipb на сайт Stress Web 13".
Чтобы не писать каждому решение, я отвечу в этой теме.
Во-первых, давайте разберемся, почему это просиходит? Ответ прост. В движке SW запросы к базе данных форума ipb соответствуют версиям ipb ниже 3-ей, а в версиях IP.Board 3 и выше, структура некоторых таблиц бызы данных изменена. Именно поэтому темы и не выводятся. Решение очень простое, надо переписать запрос:

1. Открываем файл:
/module/forum.php

2. Ищем строку:
SELECT tid,title,description,last_post,last_poster_id,last_poster_name

3. ЗАМЕНЯЕМ на:
SELECT tid,title,state,last_post,last_poster_id,last_poster_name


Проблема с выводом последних тем в StressWeb решена.






Вывод последних тем ipb не прошедших модерацию


Многие администраторы ставят на своём форуме ипб премодерацию тем, которая снимается например после 3 одобренных тем. Но на главной странице сайта на движке SW13 в блоке ФОРУМ эти темы выводятся хотя их и нельзя прочитать. Этот нюанс легко исправить:

Открываем forum.php в папке module в корне сайта

Находим: SELECT tid,title,state,last_post,last_poster_id,last_poster_name
Добавляем: , approved
Должно получиться вот так:
SELECT tid,title,state,last_post,last_poster_id,last_poster_name, approved



==============================================

Находим WHERE forum_id NOT IN ({$l2cfg["forum"]["deny"]}) в разделе IPB и ниже добавляем:

AND approved = 1

Сохраняем... Проблема решена!

Весь код для ipb должен выглядеть вот так:

/**
* =================
* IPB
* =================
*/
if ( $l2cfg["forum"]["version"] == "ipb" ) {
$fsql = "
SELECT tid,title,state,last_post,last_poster_id,last_poster_name, approved
FROM {$l2cfg["forum"]["prefix"]}topics
WHERE forum_id NOT IN ({$l2cfg["forum"]["deny"]})
AND approved = 1
ORDER BY last_post DESC
LIMIT {$l2cfg["forum"]["count"]}";
$furl_user = "index.php?showuser=";
$furl_link = "index.php?showtopic={topic_id}' title='{desc_id}'";
}





Как узнать префикс ipb и что это такое?


Во время установки форума ipb на этапе заполнения данных от базы данных под форум, вам предлагается ввести "Префикс таблиц SQL" (обычно по учолчанию стоит ibf_). Из названия вам должно стать понятно, что этот префикс будет добавляться к названиям таблиц в базе данных. Например, если у таблицы пользователей название "members", то с префиксом по умолчанию будет "ibf_members", а с вашим префиксом "ВашПрефикс_members". Отсюда делаем вывод, что узнать префикс можно просто заглянув в базу данных ipb, а все что будет написано до названия таблиц и есть prefix.

Префикс в названии таблиц базы данных

Префикс можно так же узнать через админку форума ipb.
Для этого надо зайти:
Поддержка > Управление SQL > Инструменты управления SQL

Префикс в админке ipb


- Скачать Fix (Исправленный модуль forum для ipb)





Вернуться на сайт