Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
r0n

Адаптировать хук Pinposts для IPB 3.3

Рекомендованные сообщения

что за ошибка ?

Поделиться сообщением


Ссылка на сообщение
11/05/12 10:27 (изменено)

Вот например:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Date: Mon, 05 Nov 2012 06:28:33 +0000
Error: 1054 - Unknown column 'p.pinposts_pinned' in 'where clause'
IP Address: *** - /game/topic/2538-%d0%bf%d1%80%d0%b8%d1%91%d0%bc%d0%bd%d0%b0%d1%8f-%d0%b0%d0%b4%d0%bc%d0%b8%d0%bd%d0%b8%d1%81%d1%82%d1%80%d0%b0%d1%86%d0%b8%d0%b8-%d0%bf%d0%be-%d0%be%d0%b1%d1%89%d0%b8%d0%bc-%d0%b2%d0%be%d0%bf%d1%80%d0%be%d1%81%d0%b0%d0%bc/page__st__3360
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mySQL query error: SELECT p.pid FROM ibf_posts p WHERE (p.topic_id = 2538) AND (p.pinposts_pinned > 0)
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| File                                                                       | Function                                                                      | Line No.          |
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
| admin/sources/classes/output/publicOutput.php(3491) : eval()'d code        | [TopicsHelper].getPinnedPids                                                  | 33                |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| admin/sources/classes/output/publicOutput.php(3491) : eval()'d code        | [PinpostsTopicSkin].topicViewTemplate                                         | 24                |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| admin/applications/forums/modules_public/forums/topics.php                 | [tbSiaoSkinTopic].topicViewTemplate                                           | 343               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| admin/sources/base/ipsController.php                                       | [public_forums_forums_topics].doExecute                                       | 306               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

Изменено пользователем Eudgene

Поделиться сообщением


Ссылка на сообщение

Ну что?)

Поделиться сообщением


Ссылка на сообщение

В ошибке написано что не существует колонка pinposts_pinned в таблице ( скорее всего ) posts вашей базы данных.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
11/08/12 06:01 (изменено)

В ошибке написано что не существует колонка pinposts_pinned в таблице ( скорее всего ) posts вашей базы данных.

Спасибо большое! :)

 

А нельзя ли указать вместо конккретных форумов все?

$INFO['pin_topic_forums'] = array(2,3,4);

 

И чтобы при создании они уже были включены в этот параметр.

Изменено пользователем Eudgene

Поделиться сообщением


Ссылка на сообщение
11/08/12 06:24 (изменено)

Так, разобрался.

Кому-то может поможет :)

 

В conf_global.php вносим не

$INFO['pin_topic_forums'] = array(1,2,3);

 

а

$INFO['pin_topic_forums'] = range(0,10000);

где 10000 - заведомо преувеличенное число форумов.

 

Скажем, если у вас на данный момент, например, 1212 форумов, указав значение в 10000 у вас будут закрепляться первые сообщения во всех темах в новых и уже существующих форумах до форума с id=10001.

Изменено пользователем Eudgene

Поделиться сообщением


Ссылка на сообщение

Подскажите, довели данных Хук до логического завершения или нет?

Поделиться сообщением


Ссылка на сообщение

Хук обновлен и доступен здесь: http://community.inv.../5160-pinposts/

Добавлена поддержка IP.Board 3.4.x. Файл на ipbskins.

Поделиться сообщением


Ссылка на сообщение

weiss, спасибо за адаптацию. Поддержал, купил на IPS.

Поделиться сообщением


Ссылка на сообщение

Благодарю, оставил бы бесплатным, но уж больно много времени убилsmile.gif

Поделиться сообщением


Ссылка на сообщение

Верю, я смотрел последнюю версию которая была доступна на гитхабе, она была почти рабочая, потому решил приобрести ваш мод. Думаю, что будет достаточно востребованной данная модификация :)

Поделиться сообщением


Ссылка на сообщение
01/04/13 13:50 (изменено)

большое спасибо за адаптацию хука.

купил его на этом сайте, появился такой вопрос - при установке форум вываливается в 504 а потом вообще в 502 (до перезагрузки сервера). Версия форума 3.4.1. База на форуме занимает около 800 мегабайт.

Насколько я понимаю, сервер задыхается на том, что пытается добавить дополнительные поля в таблицу Posts, которая одна из самых больших в базе.

Пробовал увеличить время для обработки скрипта (все равно установка вываливалась почти сразу), оперативную память и так далее. Все равно хук нормально не ставился и новых строчек в модерской панели не появлялось.

 

Подскажите, можно ли как-то победить эту проблему?

Изменено пользователем rosetau

Поделиться сообщением


Ссылка на сообщение

Странно, операция по добавлению новой колонки в таблицу posts дело простое, сколько бы та не занимала места. Есть какие-нибудь ошибки в Logs -> SQL Error Logs?

Поделиться сообщением


Ссылка на сообщение

Странно, операция по добавлению новой колонки в таблицу posts дело простое

Не такое уж и простое если в таблице 100К+ постов. При изменении структуры идет перестроение таблицы. На гигабайтных таблиц такая операция может занимать до часу.

 

mysql> ALTER TABLE ibf_posts ADD COLUMN temp int(1) NOT NULL DEFAULT '0';
Query OK, 69040 rows affected (2 min 38.41 sec)
Records: 69040  Duplicates: 0  Warnings: 0

В данном конкретном случае можно убрать SQL запрос из инсталлятора и сделать его вручную, желательно через ssh. Или подумать о другой структуре хука - хранения закрепленных постов в отдельной таблице.

 

PS.

С отключением индексов таблицы запрос выполняется быстро, зато включение индексов обратно занимает тоже довольно приличное время.

Поделиться сообщением


Ссылка на сообщение

А, ну ок, запрос выглядит так: ALTER TABLE префикс_posts ADD pinposts_pinned tinyint(1) DEFAULT 0

Из xml-файла хука надо в таком случае удалить текст:

s:8:"database";s:58:"ALTER TABLE posts ADD pinposts_pinned tinyint(1) DEFAULT 0";

Сделать сначала запрос, потом установить хук.

Или подумать о другой структуре хука - хранения закрепленных постов в отдельной таблице.

Идея хорошая, надо будет обдумать.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...