Jump to content

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


Trotor
 Share

Recommended Posts

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

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

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

Link to comment
Share on other sites

Обратите внимание

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

Link to comment
Share on other sites

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

  • Upvote 1
Link to comment
Share on other sites

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

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

1381411368:1381447368:10:h
Link to comment
Share on other sites

Ну тогда:

<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"}

  • Upvote 1
Link to comment
Share on other sites

Если юзеру запрещают совсем постить, то значение будет равно 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}";
}

  • Upvote 2
Link to comment
Share on other sites

Ну тогда:

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

 

Добавьте

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

 

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

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

Link to comment
Share on other sites

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

 

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

Далее используйте с учетом того, что написал 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>

  • Upvote 1
Link to comment
Share on other sites

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

 

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

Для этого откроем шаблон 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

  • Upvote 1
Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...