Вывести данные с базы данных - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

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

#1 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 648
  • Регистрация: 14-Июнь 09
  • Репутация: 16
  • IPB version:3.1.x
 

Отправлено 10 Октябрь 2013 - 13:17

Вывел некоторую информацию с базы данных на форум, с таблицы ibf_members, а именно с ячейки restrict_post (информация о том находиться пользователь на премодерации или нет).
Но как сделать что бы эта инфа отображалась нормальной датой?
Поставил так: {$member['restrict_post']}
0

#2 Пользователь не на сайте   Bot ответил: »

 
 
  • Почетный робот
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
 

Отправлено 10 Октябрь 2013 - 13:17

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

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


0

#3 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 574
  • Регистрация: 15-Октябрь 11
  • Репутация: 152
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 10 Октябрь 2013 - 15:25

Если там unix timestamp, то:
{parse date="$member['restrict_post']" format="short2" relative="true"}

https://www.invision...-templates-r154
0

#4 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 648
  • Регистрация: 14-Июнь 09
  • Репутация: 16
  • IPB version:3.1.x
 

Отправлено 10 Октябрь 2013 - 16:00

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

#5 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 574
  • Регистрация: 15-Октябрь 11
  • Репутация: 152
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 10 Октябрь 2013 - 16:08

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

#6 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 648
  • Регистрация: 14-Июнь 09
  • Репутация: 16
  • IPB version:3.1.x
 

Отправлено 10 Октябрь 2013 - 16:25

Просмотреть сообщениеDmitriy427 сказал(а):

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

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

Цитата

1381411368:1381447368:10:h

0

#7 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 574
  • Регистрация: 15-Октябрь 11
  • Репутация: 152
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 10 Октябрь 2013 - 16:40

Ну тогда:
<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

#8 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 10 Октябрь 2013 - 16:42

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

2

#9 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 648
  • Регистрация: 14-Июнь 09
  • Репутация: 16
  • IPB version:3.1.x
 

Отправлено 10 Октябрь 2013 - 17:38

Просмотреть сообщениеDmitriy427 сказал(а):

Ну тогда:

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

Просмотреть сообщениеnewbie сказал(а):

Добавьте

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

Просмотреть сообщениеnewbie сказал(а):

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

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

#10 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 11 Октябрь 2013 - 07:13

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

Просмотреть сообщениеHaktar сказал(а):

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

Просмотреть сообщениеnewbie сказал(а):

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

1

#11 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 648
  • Регистрация: 14-Июнь 09
  • Репутация: 16
  • IPB version:3.1.x
 

Отправлено 11 Октябрь 2013 - 14:46

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

Сообщение изменено: Haktar (11 Октябрь 2013 - 14:47)

0

#12 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 11 Октябрь 2013 - 15:11

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

Добавим информацию в профиль юзера.
Для этого откроем шаблон 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 (58,57К)
    Количество загрузок: 6

1

#13 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 574
  • Регистрация: 15-Октябрь 11
  • Репутация: 152
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 11 Октябрь 2013 - 15:31

Просмотреть сообщениеnewbie 11 Октябрь 2013 - 15:11 сказал(а):

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

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

#14 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 11 Октябрь 2013 - 16:03

Просмотреть сообщениеDmitriy427 сказал(а):

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

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

#15 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 648
  • Регистрация: 14-Июнь 09
  • Репутация: 16
  • IPB version:3.1.x
 

Отправлено 12 Октябрь 2013 - 05:31

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

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна