Jump to content
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.

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

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

Featured Replies

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

  • Author

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

  • Author

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

и как?

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

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

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

  • Author

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

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

  • Author

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

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

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

  • Author

ну вот 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 вообще нет в этом же файле.

  • Author

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

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

  • Author

Если например в 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 старой версии переопределяются эти две настройки для конкретного пользователя если у него соответствующая часть больше нуля, если нет то оставались дефолтными.

 

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

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

  • Author

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

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

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

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

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

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

 

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

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

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.