Перейти к содержимому
Русский язык для Invision Community 5

Открыть предпросмотр тем по умолчанию

Как сделать, чтобы предварительный просмотр был всегда открыт?

 

В topic нашел этот код:

<if test="canReadPreview:|:$this->registry->permissions->check( 'read', $forum_data ) && $data['state'] != 'link'">
<td class='col_f_preview __topic_preview'>
	<a href='{$data['_url']}' class='expander closed' title='{$this->lang->words['view_topic_preview']}'> </a>
</td>
<else />
<td></td>
</if>

Как я понимаю, сначала проверяет права - возможен ли просмотр для данной группы, а после сама ссылка, но что здесь менять непонятно, в интернете нашел информацию о IsExpanded, но куда это ставить?

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

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

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

  • Автор

Да, чтобы постоянно был открытый. Группы итак имеют доступ - настраивается в правах, хочется чтобы без нажатия загружался с развернутым описанием. Если загружать вместе со страницей это сильно замедлит работу сайта?

 

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

Тогда придется колхозить чтобы сгенерировать предпросмотр для каждой темы на странице. Если не сильно увлекаться сообщениями из темы и вывести только первое то можно добиться вполне разумных результатов по нагрузке. В любом случае нужно дорабатывать код и смотреть какие там данные уже есть в массиве data возможно удастся что нибудь из них сварганить.

  • Автор

Спасибо за ответ. В таком случае оставлю эту затею до лучших времен. :)

и описание

Этих данных нет в массиве.

 

Группы итак имеют доступ - настраивается в правах,

При запросе еще проверяются права на просмотр скрытых/удаленных постов. Там же показывается еще последнее (которое юзер может видеть) сообщение.


admin/applications/forums/modules_public/forums/forums.php

1. Находим

			if ( $this->settings['tags_enabled'] AND !$this->forum['bw_disable_tagging'] )
		{
			$_joins[]	= $this->registry->tags->getCacheJoin( array( 'meta_id_field' => 't.tid' ) );
		}

Ниже добавляем

			$_joins[] = array( 
			'select'	=> 'fp.post as first_post_content',
			'from'		=> array( 'posts' => 'fp' ),
			'where'		=> 't.topic_firstpost=fp.pid'
		);

2. Находим

$this->DB->build( array( 'select'   => 't.*',

Выше добавляем

			$_joins	= array();

		$_joins[] = array( 
			'select'	=> 'fp.post as first_post_content',
			'from'		=> array( 'posts' => 'fp' ),
			'where'		=> 't.topic_firstpost=fp.pid'
		);

		if ( $this->settings['tags_enabled'] AND !$this->forum['bw_disable_tagging'] )
		{
			$_joins[] = $this->registry->tags->getCacheJoin( array( 'meta_id_field' => 't.tid' ) );
		}

3. Находим

									 'add_join' => ( $this->settings['tags_enabled'] AND !$this->forum['bw_disable_tagging'] ) ? array( $this->registry->tags->getCacheJoin( array( 'meta_id_field' => 't.tid' ) ) ) : array() 

Заменяем на

									 'add_join' => $_joins

4. Находим

			$topic_array[ $t['tid'] ] = $t;

Выше добавляем

			$t['first_post_content'] = IPSText::truncate( IPSText::getTextClass( 'bbcode' )->stripAllTags( strip_tags( $t['first_post_content'], '<br>' ) ), 500 );

 

В шаблоне Forum View - topic используем

<if test="$this->registry->permissions->check( 'read', $forum_data ) && $data['state'] != 'link'">
{$data['first_post_content']}
</if>

  • Автор

Newbie, спасибо за решение, но сейчас его протестировать не могу переосмысливаю структуру сайта и пока хочу остаться при своих :)

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

Аккаунт

Навигация

Поиск

Поиск

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

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