Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
probel

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

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

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

Поделиться сообщением


Ссылка на сообщение

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

  • Upvote 1
  • Downvote 1

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

и как?

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

Поделиться сообщением


Ссылка на сообщение

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

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

  • Downvote 1

Поделиться сообщением


Ссылка на сообщение

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

  • Upvote 1
  • Downvote 1

Поделиться сообщением


Ссылка на сообщение

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

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

ну вот 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

Поделиться сообщением


Ссылка на сообщение

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

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

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

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

а в 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

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...