Перейти к публикации
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.

Вывести данные с базы данных

Опубликовано:

Вывел некоторую информацию с базы данных на форум, с таблицы ibf_members, а именно с ячейки restrict_post (информация о том находиться пользователь на премодерации или нет).

Но как сделать что бы эта инфа отображалась нормальной датой?

Поставил так: {$member['restrict_post']}

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

Опубликовано:
Обратите внимание

По указанному вами в профиле "Board url" находится не IP.Board, либо модифицированный пиратский скрипт с удаленными копирайтами. Если вы указали неверный URL, пожауйста, поправьте его, потому что он скорее всего потребуется при диагностике вашей проблемы. Нелицензионные скрипты не приветствуются, т.к. зачастую именно некорректное "нуление" и является причиной проблем в них.

Опубликовано:
  • Автор

@Dmitriy427,

А как вывести двойные значения, то есть время когда пользователя отправили на модерацию и время окончания модерации.

Опубликовано:

Если вам нужно время, а не только дата, то используйте format="long" или format="joined". По дате отправки на модерацию не подскажу, она вроди бы никуда не пишется. Если бы был фиксированный интервал, можно было бы включить математику, а с произвольным можно только добавить поле в таблицу и дописать обработчик modcp.

Опубликовано:
  • Автор

По дате отправки на модерацию не подскажу, она вроди бы никуда не пишется

Есть, вот так в ячейке restrict_post она отображенна:

1381411368:1381447368:10:h
Опубликовано:

Ну тогда:

<php>
$dates = explode( ':', $member['restrict_post'] );
$this->date_start = $dates[0];
$this->date_finish = $dates[1];
</php>

{parse date="$this->date_start" format="joined" relative="true"} - {parse date="$this->date_finish" format="joined" relative="true"}

Опубликовано:

Если юзеру запрещают совсем постить, то значение будет равно 1, если на опред. срок, то запись будет такой

Начало:Окончание:На сколько:Час_или_день

 

Добавьте

$restrict = IPSMember::processBanEntry( $member['restrict_post'] );

Далее используйте с учетом того, что написал Dmitriy427:

$restrict['date_start']

$restrict['date_end']

$restrict['timespan']

$restrict['unit']

 


Пример:

// Получаем данные об юзере, который находится на премодерации. Остальные нам не интересны.
// Это Вы уже сделали
// .......................

// Формируем сообщение в зависимости от типа ограничения
if ( $member['restrict_post'] == 1 )
{
$message = 'Пользователю запретили писать сообщения на форуме навсегда';
}
else
{
$restrict	= IPSMember::processBanEntry( $member['restrict_post'] );
$start		= $this->registry->getClass('class_localization')->getDate( $restrict['date_start'], 'LONG', 1 );
$end		= $this->registry->getClass('class_localization')->getDate( $restrict['date_end'], 'LONG', 1 );
$count		= $restrict['timespan'];
$unit		= ( $restrict['unit'] == 'd' ) ? 'дней': 'часов';

$message	= "Пользователю запретили писать сообщения на форуме на {$count} {$unit} с {$start} по {$end}";
}

Опубликовано:
  • Автор

Ну тогда:

Получилось. Спасибо.

 

Добавьте

Сюда - {parse date="$this->date_start" format="joined" relative="true"} - {parse date="$this->date_finish" format="joined" relative="true"} ?

 

Далее используйте с учетом того, что написал Dmitriy427:

А это куда поместить?

Опубликовано:

Строку добавить в свой код, где Вы получали данные о юзере.

 

А это куда поместить?

Далее используйте с учетом того, что написал Dmitriy427:

$restrict['date_start']

$restrict['date_end']

$restrict['timespan']

$restrict['unit']

Дата начала

{parse date="$restrict['date_start']" format="joined" relative="true"}

Дата окончания

{parse date="$restrict['date_end']" format="joined" relative="true"}

Срок

{$restrict['timespan']}

Часы или дни

<if test="$restrict['unit']"=='d'>дней<else />часов</if>

Опубликовано:
  • Автор

@newbie, Я совсем запутался. :)

Напишите пожалуйста, как это всё должно выглядеть в шаблоне.

Изменено пользователем Haktar

Опубликовано:

Давайте покажу на примере.

 

Добавим информацию в профиль юзера.

Для этого откроем шаблон profileModern (группа Profiles)

 

Данные об ограничении там уже есть - $member['restrict_post']

 

В начало шаблона добавляем

<php>
if ( $member['restrict_post'] )
{
if ( $member['restrict_post'] == 1 )
{
	$message = 'Пользователю запретили писать сообщения на форуме навсегда';
}
else
{
	$restrict   = IPSMember::processBanEntry( $member['restrict_post'] );
	$start      = $this->registry->getClass('class_localization')->getDate( $restrict['date_start'], 'LONG', 1 );
	$end        = $this->registry->getClass('class_localization')->getDate( $restrict['date_end'], 'LONG', 1 );
	$count      = $restrict['timespan'];
	$unit       = ( $restrict['unit'] == 'd' ) ? 'дней': 'часов';

	$message    = "Пользователю запретили писать сообщения на форуме на {$count} {$unit} с {$start} по {$end}";
}
}
</php>

Здесь мы получили данные об ограничениях и сформировали сообщение о сроках.

 

Теперь в любое место можно добавить

{$message}

Чтобы было как на скрине, я сделал так

<if test="$member['restrict_post']"><div class='message error'>{$message}</div><br /></if>

restrict.jpg

Опубликовано:
Теперь в любое место можно добавить

Внутри тегов <php></php>, в начале шаблона, переменные будут изолированы. Т.е. значения присваиваются локально и в любом месте шаблона работать не будут. Ну, у меня не работают, покрайней мере внутри условий и циклов, если не объявлять их как переменные класса.

Опубликовано:

Внутри тегов , в начале шаблона, переменные будут изолированы. Т.е. значения присваиваются локально и в любом месте шаблона работать не будут. Ну, у меня не работают, покрайней мере внутри условий и циклов, если не объявлять их как переменные класса.

В шаблоне из примера из циклов только друзья, последние посетители, кастомные поля. Не думаю, что кто-то туда захочет добавить информацию об ограничениях :)

Опубликовано:
  • Автор

@Dmitriy427 и @newbie

Большое спасибо, помогли даже больше чем мне было нужно. Респект за советы.

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

Сейчас на странице 0

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

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.