Skip to content

Глобальная конструкция на основание кол-ва сообщений

Нужно создать глобальную конструкцию что бы действовала на всём форуме, а именно:

 

<if test="$member['post'] > 9">

Здесь скажем данные {$author['avatar']}, то есть посетители видят аватару пользователя, но пользователя у которого больше 10 сообщений

<else />

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

</if>

 

Как можно такую конструкцию создать?

Edited by Haktar

Featured Replies

Не понятно что значит действовала на всём форуме? Если речь о данных текущего пользователя то они доступны в массиве $this->memberData, если о пользователе какой-то страницы то они доступны только в тех местах, где определены форумом.

  • Author

Не понятно что значит действовала на всём форуме? Если речь о данных текущего пользователя то они доступны в массиве $this->memberData, если о пользователе какой-то страницы то они доступны только в тех местах, где определены форумом.

Попробую в примере.

Например страница с списком пользователей форума. Нужно что бы посетители на этой странице видели аватары пользователей у которых сообщений больше чем 10, тогда как у тех пользователей у которых меньше 10 сообщений - нужно что бы посетители видели у них не аватар а изображение которое я выставлю после <else />

В месте где генерируется аватар составляете нужное условие.

В 3.1 это делается в admin\sources\base\core.php, функция buildAvatar.

  • Author

В месте где генерируется аватар составляете нужное условие.

В 3.1 это делается в admin\sources\base\core.php, функция buildAvatar.

А можно пример составления такого условия?

 

Или вы про это условие?

<php>$memberData = IPSMember::load( $msg['mt_starter_id'], 'core,extendedProfile' );if ( $memberData['avatar_location'] == '' ) {
       $location_pm = '/grafik/noavatar.png';
} else {
       $location_pm = $this->settings['upload_url'] . '/' . $memberData['avatar_location'];
}</php><a href='{parse url="showuser={$msg['_starterMemberData']['member_id']}" base="public" seotitle="{$msg['_starterMemberData']['members_seo_name']}" template="showuser"}'><img src={$location_pm} {parse resize_image="$location_pm" maxheight="24"} class='photo' style='max-height: 24px;max-width: 28px'/></a><else /><img src='/grafik/atar.png' class='photo' style='max-height: 24px;max-width: 28px'/></if>

Это немного не то, так как для многих страниц оно не подходит, так как даёт на некоторых страницах много запросов к базе данных.

Да, логика такая, но править нужно не в шаблоне а в функции, чтобы не создавать лишние запросы.

  • Author

но править нужно не в шаблоне в функции, чтобы не создавать лишние запросы.

А какую правку нужно сделать?

  • Author

А какую правку нужно сделать?

Пробовал кое какую конструкцию сделать в core.php, не прокатывает.

Перед

 

   	//-----------------------------------------
   	// Defaults...
   	//-----------------------------------------

   	$davatar_dims	= explode( "x", strtolower(ipsRegistry::$settings['avatar_dims']) );

Добавить

 

		if( $member['posts'] < 10 )
	{
		return "<img src='" . ipsRegistry::$settings['upload_url'] . "/no-avatar.jpg' alt='' />";
	}

Create an account or sign in to comment

Account

Navigation

Search

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.