Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

(Pav33) Topic Description

Опубликовано:

Добрый день. Установлен хук, возвращающий описание в тему для ipb 3.4 - (Pav33) Topic Description, https://invisionpower.com/forums/topic/349558-download-pav33-topic-description/

 

Проблема в том, что я не могу настроить его, чтобы описание для тем было больше 250-ти символов - настройка роли почему то не играет. Меня смущает строка в хуке:

 

<fieldtype>varchar(250)</fieldtype>

Может быть, дело в ней? Как исправить этот косяк, подскажите, пожалуйста. Спасибо.

 

Вот сам хук: (Pav33) Topic Description.zip

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

Опубликовано:

Максимальная длина ограничена размером поле description - 250 символов. Если этого мало увеличьте размер этого поле в таблице topics.

 

ALTER TABLE topics CHANGE COLUMN description description varchar(500) DEFAULT NULL

или редактированием поле в phpmyadmin.

Опубликовано:
  • Автор

А ограничение это было в хуке выставлено, да? И после установки хука записалось в таблицу базы данных? А то эту строку - varchar(250) в файлах хука так и не нашел.

Опубликовано:

Выше - sql запрос, его нужно выполнить в phpmyadmin или через админцентр форума.

 

А ограничение это было в хуке выставлено, да?

Это размер поле description которое указано в хуке.

Опубликовано:
  • Автор

Понял. А как дописать префикс в запрос? А то у меня ошибку выбивает:

 

#1146 - Table 'ibf.topics' doesn't exist

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

Опубликовано:
  • Автор

а нельзя вообще удалить это условие - размер поля description? Просто такая настройка в хуке есть отдельная, настраивается через админку.

Опубликовано:

Нельзя. Это не условие а длина поле в бд.

Опубликовано:
  • Автор

Получилось сделать запрос, спасибо! :)

 

Еще один косяк нашел. Если отредактировать описание темы из опций модератора (где такие опции, как перенести тему, закрыть и т.п.), то длинное описание (например, в 200 символов), сокращается автоматически до 70-ти символов... За это какая строка в хуке отвечает, или это баг?

 

Upd. Нашел :) За это отвечает строка:

 

$this->request['TopicDesc'] =  IPSText::mbsubstr( $this->request['TopicDesc'], 0, 70  );

Исправил на 700.

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

  • 1 месяц спустя...
Опубликовано:
  • Автор

Добрый день. Есть вопрос по хуку: можно ли сделать так, чтобы заполнение поля "Описание темы" было обязательным при создании и редактировании темы? И чтобы если поле не было заполнено, выдавало такое же предупреждение, если не заполнено поле названия темы.

Опубликовано:

skin_post -> topicDescForm, добавить к input атрибут required

  • 2 месяца спустя...
Опубликовано:
  • Автор

Подскажите, пожалуйста, если можно, как добавить троеточие, если описание превышает количество символов, разрешенное в поле?

Опубликовано:
$this->request['TopicDesc'] =  ( mb_strlen( $this->request['TopicDesc'] ) > 70 ) ? IPSText::mbsubstr( $this->request['TopicDesc'], 0, 67  ).'...' : $this->request['TopicDesc'];

Опубликовано:
  • Автор

Странно, почему-то не работает... В этом хуке путаница какая-то, длина описания ограничена настройкой (которая тоже не работает), и длиной поля в базе данных. Насколько я понял, настройка должна автоматически обновлять значение в базе данных? Если должна, то не обновляет вроде, а просто устанавливает ограничение количества символов в поле описания. Вот эта строка:

 

$this->DB->update( 'topics', array( 'description' => $desc ), 'tid=' . $data['topic_id'] );

И троеточие не появляется почему-то, видимо из-за бага с настройкой...

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

Опубликовано:

Автоматически ничего не обновляется, старые значения как были записаны в бд так и останутся. Настройка работает при сохранение описания.

Опубликовано:

$this->request['TopicDesc'] - это только при редактирование темы из модераторских опции. Там еще есть другие файлы, которые выполняются при создание или редактирование темы и также необходимо отредактировать.

 

IPSText::mbsubstr( $desc, 0, $this->settings['topic_desc_max_len'] )
заменить на 
( mb_strlen( $desc ) > $this->settings['topic_desc_max_len'] ) ? IPSText::mbsubstr( $desc, 0, $this->settings['topic_desc_max_len'] - 3 ) . '...' : $desc

 

IPSText::mbsubstr( $data['description'], 0, $this->settings['topic_desc_max_len'] )
заменить на
( mb_strlen( $data['description'] ) > $this->settings['topic_desc_max_len'] ) ? IPSText::mbsubstr( $$data['description'], 0, $this->settings['topic_desc_max_len'] - 3 ) . '...' : $data['description']

 

IPSText::mbsubstr( $this->request['TopicDesc'], 0, 70  )
заменить на
( mb_strlen( $this->request['TopicDesc'] ) > $this->settings['topic_desc_max_len'] ) ? IPSText::mbsubstr( $this->request['TopicDesc'], 0, $this->settings['topic_desc_max_len'] - 3 ) . '...' : $this->request['TopicDesc']

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.