Перейти к публикации
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

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

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

Сделал правки, теперь после сохранения сообщения форум вылетает с ошибкой, что страницу не удалось загрузить...

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

Лог ошибки приведите или правьте файлы внимательнее, где-то видимо допустили синтаксическую ошибку.

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

Да, отредактировал с ошибкой, исправил )

Все внимательно проверил, все точно. Но троеточие не появляется ни в какую... Что же неправильно делаем?...

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

Хочу добавить шаблон описания темы сразу в хук, чтобы вручную не редактировать шаблон скина. Составил файл хука и шаблон. Не подскажете, как правильно класс написать?

 

По инструкции автора хука нужно в шаблон Forum View -> topic после

 

		<span class='desc lighter blend_links'>

Нужно добавить:

 

{parse template="topicDesc" group="forum" params="$data['description']"}

У меня получился такой файл хука, ног вот как составить класс. я не знаю...

 

<file>
     <hook_file_real>p32TopicDescriptionTopicList.php</hook_file_real>
     <hook_type>templateHooks</hook_type>
     <hook_classname>p32TopicDescriptionTopicList</hook_classname>
     <hook_data><![CDATA[a:8:{s:12:"dataLocation";s:0:"";s:14:"libApplication";s:0:"";s:15:"classToOverload";s:0:"";s:9:"skinGroup";s:10:"skin_forum";s:12:"skinFunction";s:5:"topic";s:4:"type";s:2:"if";s:2:"id";s:7:"hasTags";s:8:"position";s:11:"pre.startif";}]]></hook_data>
     <hooks_source>
<![CDATA[
<?php
class p32TopicDescriptionTopicList
{
public $registry;
public $DB;
protected $settings;
protected $request;


public function getOutput()
{
	$data = $this->registry->output->getTemplate('forum')->functionData['TopicDescriptionList'][0]['form'];

public function replaceOutput( $output, $key )
{
	return $output;
}
}

]]></hooks_source>
   </file>

Шаблон:

 

<templates>
     <template_group>skin_forum</template_group>
     <template_content><![CDATA[<br />{parse template="topicDesc" group="forum" params="$data['description']"}</div>]]>
  </template_content>
     <template_name>TopicDescriptionList</template_name>
     <template_data>$description</template_data>
     <template_updated>1315157306</template_updated>
     <template_removable>1</template_removable>
     <template_added_to>1</template_added_to>
     <template_user_added>1</template_user_added>
     <template_user_edited>0</template_user_edited>
     <template_master_key>root</template_master_key>
   </templates>

Не подскажете, пожалуйста, как класс class p32TopicDescriptionTopicList правильно составить?

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

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

По инструкции автора хука нужно в шаблон Forum View -> topic после

Там нет хук поинта, а значит в этом месте код можно вставить только только типом хука "Перезагрузчик стиля"

 

//<?php

class p32TopicDescriptionTopicList extends skin_forum(~id~)
{
public function topic( $data, $forum_data, $other_data, $inforum )
{
	$html = parent::topic( $data, $forum_data, $other_data, $inforum );
	$html = str_replace( "<span class='desc lighter blend_links'>", "<span class='desc lighter blend_links'>" . $this->registry->output->getTemplate('forum')->topicDesc( $data['description'] ), $html );

	return $html;
}
}

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

А условие hasTags не подходит для хукпоинта?

Странно, добавил в хук этот класс, но шаблон все равно не выводится после установки хука... Знать бы еще, как хук отредактировать правильно :(

Опубликовано:
А условие hasTags не подходит для хукпоинта?

В этом месте нет условия.

 

Странно, добавил в хук этот класс

В файле хука добавлять ничего не нужно. Все файлы добавляются редактированием хука в АЦ в режиме разработчика IN_DEV.

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

Попытался отредактировать хук в АЦ, экспортировал его, но все равно какая-то путаница, нарушилась структура.. Ну и ладно, потом вручную попробую сделать.

 

А после внесения правок в хук из поста #16 троеточие должно появляться? Просто у меня как его не было, при изменении названия на длинное, так и нету.

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

Попытался отредактировать хук в АЦ, экспортировал его, но все равно какая-то путаница, нарушилась структура.. Ну и ладно, потом вручную попробую сделать.

Если вы не смогли добавить файл в АЦ, вручную вы тем более не сделаете. У каждого файла хука есть свои настройки hook_data, без них он работать не будет.

 

 

А после внесения правок в хук из поста #16 троеточие должно появляться? Просто у меня как его не было, при изменении названия на длинное, так и нету.

По логике да. Посмотрите какая длина указана в настройки $this->settings['topic_desc_max_len']. Они добавляются только при длине текста больше чем $this->settings['topic_desc_max_len'].

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

Так и не смог заставить троеточие появиться.. Не подскажете, возможно ли сделать, чтобы троеточие появлялось после последнего целого слова, т.е. чтобы не умещающееся слово не отображалось?

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

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

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

Сейчас на странице 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.