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

Как добавить настройку количество постов в теме

Как добавить настройку количество постов в теме ipb 3.2.3, чтоб пользователь мог выбрать удобное для себя значение, если ему не нравиться например поумолчанию 20?

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

в 3.2 такую возможность убрали

  • Автор

знаю, поэтому и спрашиваю, как так можно сделать?

  • Автор

Возможно ли добавить такую возможность и как?

и как?

Например, написать хук.
  • Автор

Например, написать хук.

Так бы сразу и написали, теперь все понятно... как же я сам до этого не додумался... просто написать хук )

  • Автор

где хотябы этот параметр (количество постов на странице) загружается, может шаблон? чтоб его там можно было подправить, поставив условие.

Не в шаблоне это точно, там где идет запрос к бд для получения постов. Но не так-то все просто. Раньше, настройка display_max_topics и display_max_posts переопределялась для конкретного пользователя в ipsRegistry::setUpMember

  • Автор

а не знаешь в каком файле это изначально определяется?

ipsRegistry, /admin/sources/base/ipsRegistry.php метод setUpMember

Можно поднять файл с версии 3.1x и посмотреть как там происходит переопределение настройки display_max_posts

  • Автор

ну вот 3.1.4 в файле ipsRegistry есть такое упоминание

		//-----------------------------------------
	// Fix up some preferences
	//-----------------------------------------

	$ppu = 0;
	$tpu = 0;

	if ( isset( self::$data_store['view_prefs'] ) )
	{
		list($ppu,$tpu) = explode( "&", self::$data_store['view_prefs'] );
	}

	ipsRegistry::$settings[ 'display_max_topics'] =  ($tpu > 0 ? $tpu : ipsRegistry::$settings['display_max_topics'] );
	ipsRegistry::$settings[ 'display_max_posts' ] =  ($ppu > 0 ? $ppu : ipsRegistry::$settings['display_max_posts'] );

	//-----------------------------------------

а в 3.2.3 упоминания о display_max_posts вообще нет в этом же файле.

  • Автор

если мне в профиле создать дополнительное поле, и по нему уже регулировать.... вот что то типа такого... как это правильно записать? и вообще такое может проканать, если я добавлю этот код в файл.

if ( $this->memberData['field_14'] != '') 
{
ipsRegistry::$settings[ 'display_max_posts' ] =  $this->memberData['field_14'];
} else 
{
ipsRegistry::$settings[ 'display_max_posts' ] = 20;
}

  • Автор

Если например в globalTemplate вставить в начало

<php>
ipsRegistry::$settings[ 'display_max_posts' ]  = 10;
</php>

то на главной страницы, где возле темы идет количество страниц, то они увеличились ровно в двое, то есть с учетом того что стало 10 постов в теме, но вот тему открываешь и все равно 20 постов.

а в 3.2.3 упоминания о display_max_posts вообще нет в этом же файле.

Естественно нет, если эта настройка была убрана в 3.2.

Как все это работало - в таблице пользователей ibf_members было поле view_prefs, по умолчанию оно имел значение -1&-1. Первый -1 соответствовало display_max_posts, второй -1 display_max_topics. Пользователь в своем профиле мог изменять желаемое количество постов или тем на странице, так что первая части до амперсанда соответствовало количеству сообщений (display_max_posts), вторая части после амперсанда количеству тем. Как мы видим, в методе setUpMember старой версии переопределяются эти две настройки для конкретного пользователя если у него соответствующая часть больше нуля, если нет то оставались дефолтными.

 

если мне в профиле создать дополнительное поле, и по нему уже регулировать.... вот что то типа такого... как это правильно записать?

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

  • Автор

Если например в globalTemplate вставить в начало

<php>
ipsRegistry::$settings[ 'display_max_posts' ]  = 10;
</php>

то на главной страницы, где возле темы идет количество страниц, то они увеличились ровно в двое, то есть с учетом того что стало 10 постов в теме, но вот тему открываешь и все равно 20 постов.

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

То есть часть идеи работает, но как полностью то это реализовать...

То есть часть идеи работает, но как полностью то это реализовать...

 

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

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

Аккаунт

Навигация

Поиск

Поиск

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

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