Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

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

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

(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 месяцев спустя...
  • Автор

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

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

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.