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

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

Recommended Posts

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

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

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

Share this post


Link to post
Share on other sites
Обратите внимание

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

Share this post


Link to post
Share on other sites

@Dmitriy427,

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

Share this post


Link to post
Share on other sites

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

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

1381411368:1381447368:10:h

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Ну тогда:

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

 

Добавьте

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

 

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

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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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

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

Edited by Haktar

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
Теперь в любое место можно добавить

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

@Dmitriy427 и @newbie

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

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...