Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
probel

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

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

  • Upvote 1
  • Downvote 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

и как?

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

Share this post


Link to post
Share on other sites

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

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

  • Downvote 1

Share this post


Link to post
Share on other sites

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

  • Upvote 1
  • Downvote 1

Share this post


Link to post
Share on other sites

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

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

  • Upvote 1
  • Downvote 1

Share this post


Link to post
Share on other sites

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

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

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

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

 

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

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...