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

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

 

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

api

  • 3 Страниц +
  • 1
  • 2
  • 3

Вывод данных

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

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 164
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 02 Январь 2016 - 23:00

Здравствуйте, подскажите как реализовать вывод к примеру имени пользователя, id, мыла и другой ифны автоматизированного пользователя, на отдельную от форума страницу?
К примеру есть страница start.php нужно что бы при её просмотре пользователю вывелся его логин, id, группа, мыло.
0

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

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 414
  • IPB version:3.1.x
 

Отправлено 02 Январь 2016 - 23:15

<?php

require_once 'init.php';
\IPS\Dispatcher\Front::i();

$member = \IPS\Member::loggedIn();
var_dump( $member );

?>

0

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

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 164
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 04 Январь 2016 - 16:00

Спасибо это то что нужно, но остались ещё вопросы.
Как достать ключ логина, то есть к примеру при ссылке Выход используется ключ например logout/?csrfKey=0f8ce0ac1a3ee2cfd1523c2f68a50307 вот как получить этот ключ то же на отдельной странице?
Где храниятся названия разделов и их описание? в таблице forums_forums их нет, то же самое с группами, нашёл их название в таблице core_sys_lang_words но не могу понять по какому принципу сделать выборку из этой таблицы, то есть к примеру у группы значение id равно 4 как вывести название группы из этой таблицы?
0

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

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 414
  • IPB version:3.1.x
 

Отправлено 04 Январь 2016 - 19:20

csrf ключ:

\IPS\Session::i()->csrfKey

0

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

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

Отправлено 05 Январь 2016 - 10:59

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

Где храниятся названия разделов и их описание? в таблице forums_forums их нет, то же самое с группами, нашёл их название в таблице core_sys_lang_words но не могу понять по какому принципу сделать выборку из этой таблицы, то есть к примеру у группы значение id равно 4 как вывести название группы из этой таблицы?

Зачем вообще туда лезть?

Работа с группами:
\IPS\Member\Group::groups()


Работа с форумами:
\IPS\forums\Forum::roots()

0

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

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 164
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 05 Январь 2016 - 18:36

Это не то, с помощью этого можно вывести все из таблицы групп, но кроме названий групп которых там нет, то же самое и с форумами
0

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

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

Отправлено 06 Январь 2016 - 13:01

	$groupsNames = array();
	
	foreach	(\IPS\Member\Group::groups() as $group)
	{
		$groupsNames[] = $group->name;
	}

	$groupsAsString = implode(', ', $groupsNames);
	\IPS\Member::loggedIn()->language()->parseOutputForDisplay( $groupsAsString );
	
	print $groupsAsString;


Мультиязычно.
1

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

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1
  • Регистрация: 02-Март 16
  • Репутация: 0
  • IPB version:4.1.x
 

Отправлено 02 Март 2016 - 23:23

Добрый день,

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

Использую код:
<?php

require_once 'forum/init.php';
/* Инициализируем систему */
\IPS\Dispatcher\Front::i(); //or \IPS\Dispatcher\Build::i();

/* Получаем объект с данными о текущем пользователе */
$member = \IPS\Member::loggedIn(); 



Проверка, зарегистрирован пользователь или нет:
if ($member->member_id) 
{
  форма с имением и выход.
}


0

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

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 414
  • IPB version:3.1.x
 

Отправлено 04 Март 2016 - 23:34

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

/* Инициализируем систему */
\IPS\Dispatcher\Front::i(); //\IPS\Dispatcher\Build::i();

Кстати да, если нужен фреймворк форума именно как api, то лучше использовать для инициализации класс Build, или даже External. Front предназначен для публичной части форума с загрузкой css и js файлов и всякими проверками и ошибками, что в случае api для отдельного приложения не совсем желательно. Front имеет смысл использовать когда пишете в оболочки форума. И без вызова init(), этот метод вызывается автоматически из i().


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

столкнулся только с одной проблемой, выкидывает из сессии (иногда)

Смотрите кукисы. В частности для повторной аутентификации после истечения сессии - pass_hash и member_id.
2

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

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

Отправлено 05 Март 2016 - 06:20

По части проверок "Front" ограничивает только метод вывода данных, темплейты, скрипты и стили автоматом не подключаются, это уже "Controller". Что до API, он сильно сужает возможности работы с фреймворком.
1

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

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 05-Январь 17
  • Репутация: 0
  • IPB version:4.1.x
 

Отправлено 05 Январь 2017 - 23:11

Добрый вечер, использовал данный код:

<?php require_once './../forum.x.ru/init.php';
\IPS\Dispatcher\Build::i();

$member = \IPS\Member::loggedIn();
echo var_dump( $member ); ?>

И получил это:

object(IPS\Member)#49 (29) { ["_followData"]=> NULL ["_previousPhotoType":protected]=> NULL ["_group"]=> NULL ["restrictions":protected]=> NULL ["modPermissions":protected]=> NULL ["calculatedLanguageId":protected]=> NULL ["markers"]=> array(0) { } ["markersResetTimes":protected]=> array(0) { } ["haveAllMarkers":protected]=> bool(false) ["defaultStreamId":protected]=> bool(false) ["changedCustomFields"]=> array(0) { } ["previousName":protected]=> NULL ["_groups":protected]=> NULL ["_socialGroups":protected]=> NULL ["sessionData":protected]=> NULL ["_lang":protected]=> NULL ["_url":protected]=> NULL ["profileFields"]=> NULL ["_reputationData":protected]=> NULL ["_reputationLastDayWon":protected]=> NULL ["_reputationDaysWonCount":protected]=> NULL ["_following":protected]=> array(0) { } ["reportCount":protected]=> NULL ["ignorePreferences":protected]=> NULL ["_ppdLimit":protected]=> NULL ["_data":protected]=> array(14) { ["member_group_id"]=> int(2) ["mgroup_others"]=> string(0) "" ["joined"]=> int(1483646932) ["ip_address"]=> string(13) "172.68.10.236" ["timezone"]=> string(3) "UTC" ["allow_admin_mails"]=> int(1) ["pp_photo_type"]=> string(0) "" ["member_posts"]=> int(0) ["pp_main_photo"]=> NULL ["pp_thumb_photo"]=> NULL ["failed_logins"]=> NULL ["pp_reputation_points"]=> int(0) ["signature"]=> string(0) "" ["auto_track"]=> string(47) "{"content":0,"comments":0,"method":"immediate"}" } ["_new":protected]=> bool(true) ["changed"]=> array(8) { ["member_group_id"]=> int(2) ["mgroup_others"]=> string(0) "" ["joined"]=> int(1483646932) ["ip_address"]=> string(13) "172.68.10.236" ["timezone"]=> string(3) "UTC" ["allow_admin_mails"]=> int(1) ["pp_photo_type"]=> string(0) "" ["member_posts"]=> int(0) } ["skipCloneDuplication"]=> bool(false) }


Собственно вопрос, а как получить member_id и т.п.?
0

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

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 414
  • IPB version:3.1.x
 

Отправлено 06 Январь 2017 - 00:18

Так вы уже получили данные текущего пользователя в объекте $member. Обращайтесь к данным пользователя как к обычным свойствам объекта - $member->member_id и тп.
1

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

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 05-Январь 17
  • Репутация: 0
  • IPB version:4.1.x
 

Отправлено 07 Январь 2017 - 22:04

Почему-то не срабатывает, он не видит эти данные. Я залил файл test.php на свой сайт по адресу: test.x.ru/test.php, внутри содержится код:

<?php

require_once 'forum.x.ru/init.php';
/* Инициализируем систему */
\IPS\Dispatcher\Build::i(); //or \IPS\Dispatcher\Build::i();

/* Получаем объект с данными о текущем пользователе */
$member = \IPS\Member::loggedIn(); 
var_dump($member);

При вызове скрипта я получаю следующие:

object(IPS\Member)#48 (29) {  }


И ещё залил файл test.php по адресу https://forum.x.ru/test.php, содержимое следующие: (файл лежит в директории с форумом IPB 4.1.17.1 версии)

<?php

require_once 'init.php';
/* Инициализируем систему */
\IPS\Dispatcher\Build::i(); //or \IPS\Dispatcher\Build::i();

/* Получаем объект с данными о текущем пользователе */
$member = \IPS\Member::loggedIn(); 
var_dump($member);

И выводит он уже совсем другое:

object(IPS\Member)#48 (29) { } 1 


Так вот вопрос, как получать эти же самые данные в 1 случае?

Сообщение изменено: siv1987 (07 Январь 2017 - 22:13)
Причина редактирования: Не нужно приводить портянки кода

0

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

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 414
  • IPB version:3.1.x
 

Отправлено 07 Январь 2017 - 22:11

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

Я залил файл test.php на свой сайт по адресу: test.x.ru/

У вас разные домены. Чтобы получить данные авторизованого пользователя с forum.x.ru на домене test.x.ru, куки должны быть глобальными. В противном случае они доступны только на устанавливаемом домене.

В constants.php, в папке форума добавить

define( 'COOKIE_DOMAIN', '.x.ru' );

Где x.ru основной домен второго уровня.
0

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

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 05-Январь 17
  • Репутация: 0
  • IPB version:4.1.x
 

Отправлено 07 Январь 2017 - 22:26

Создал файл constants.php в папке forum.x.ru

Добавил содержимое:

<?php define( 'COOKIE_DOMAIN', '.x.ru' ); ?>


Почему-то ничего не изменилось(

Сообщение изменено: Iluha32 (07 Январь 2017 - 23:01)

0

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


  • 3 Страниц +
  • 1
  • 2
  • 3


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

  

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-2017 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна