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

Узнать группу пользователя

Recommended Posts

Приветствую.

 

Как получить группу методом IPSMember::load?

 

$m = IPSMember::load( IPSCookie::get('member_id') );
$Member['GROUP'] = "Группа:".$m['groups'];

 

Что то не работает... а еще, возможно ли узнать номер группы?

Share this post


Link to post
Share on other sites

О как нужно было:

$Member['GROUP'] = "Группа: ".$m['g_title'];

Share this post


Link to post
Share on other sites

Ээ... а зачем ipsMember::load(), и нафига $Member['GROUP'], - зачем вы создаете второй массив если уже есть первый.

Share this post


Link to post
Share on other sites

Хочу сделать футербар и профиль вне директории форума, переменная для удобства )

Share this post


Link to post
Share on other sites

Вне директории форума нужно использовать api форума, а писать IPSMember::load( IPSCookie::get('member_id') ) категорически не рекомендуется. Нельзя просто так загрузить пользователя по куки member_id, там может быть что угодно, нужно еще валидировать его сессию либо ключ авторизации. Для этого есть метод fetchMemberData() который возвращает данные текущего пользователя http://www.invisionpower.com/support/guides/_/advanced-and-developers/miscellaneous/check-if-a-member-is-logged-in-r91

  • Upvote 1

Share this post


Link to post
Share on other sites

Что то рановато сюда еще, сейчас думаю как работать с шаблонизатором, если запускает другой php скрипт то по идее мы прогружаем в него шаблон и от в нем запускаем шаблонизатор О_о, а как же тогда стандартные теги/функции который запускает index.php. Хм.. наверное нужно подключать в index.php наш новый .php. Ноо.. ведь тогда будут запускаться же части шаблона которые мне не нужны, например в профиле пользователя будет обрабатываться шаблон с комментариями.

 

Хм.. да даже привести пример со страницами.. очень интересно как это работает. Даже и не знаю как конкретно задать запрос в гугле. Но интересно.. пошел дальше думать, к вопрос с куками вернемся позже )) сейчас нужно сделать футер общий, а профиль отдельно ))

 

Пока писал, придумал.. мб там прогружаются в массив $_GET данные? хотя как же он преобразует строчку например /myphp/profile.php?member-100500 в /index.php?member-100500 или же /member-100500.

 

Даже и примеры взять не откуда, нужно придумать какой нить запрос в гугле интересный :rolleyes:

Share this post


Link to post
Share on other sites

Интересно, интересно. Позже опробуем, а сейчас я вообще увлекся что то ) решил уроки прочитать, теперь хоть не много понимаю что выше вопрос который задавал и из массива вносил в массив значения )) нужно что нить по кодить ))) 5+5 например )) а к этому пока еще рано )

Share this post


Link to post
Share on other sites

Как можно вывести результат запроса на экран? Это вроде как ресурс.

 

Например получить чистую ссылку на фото.

$query = mysqli_query($db, "
   SELECT `pp_thumb_photo` FROM `ipb_profile_portal` WHERE `pp_member_id` = 1");

Share this post


Link to post
Share on other sites

В ipsMember::load есть все данные, включая и ссылки на фото.

Вывод на экран осуществляется в зависимости с чем вы работаете - с шаблонизатором форума, или нативным php, что конечно врядли.

Запросы к бд делаются через драйвер бд форума и только через него.

Share this post


Link to post
Share on other sites

Но.. ведь я хотел сделать сам запрос..

 

Может кому пригодится.

 

CENSORED

 

честно, начинаю впервые. Батьки сказали поставить шаблонизатор. Еще конечно не знал для чего он. В общем шаблонизатор какое то говно. Вывожу простым echo, вроде теги не падают...

 

 

Что то ид сессии не меняется, хоть логинился, хоть разлогинился.

Как же тогда сделать хорошую валидацию не по кукам... хм...

 

... в бд вообще нету ключа сессии.

Edited by siv1987

Share this post


Link to post
Share on other sites

Зачем? И нафига здесь запросы? Вы работаете с апи форума? Ядро форума подключили? Там уже все данные загружены для текущего пользователя. Не надо никакой ереси в виде mysql_query и тд, есть спец класс DB для выполнения запросов, почитайте офф документацию.

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

 

В общем шаблонизатор какое то говно.

Был бы шаблонизатор какое то говно, вы бы не редактировали шаблон в админцентре, а искали бы куски html верстки по всем файлам и вперемешку с php кодом.

 

Что то ид сессии не меняется, хоть логинился, хоть разлогинился.

Как же тогда сделать хорошую валидацию не по кукам... хм...

А он и не должен меняться. Вы не в ту сторону капайте. Вам уже в десятый раз говорят - не занимайтесь херней и говнокодерством, все что вам нужно есть по ссылке выше на ИПС.

 

Но.. ведь я хотел сделать сам запрос..

https://www.invisionpower.com/support/guides/_/advanced-and-developers/api-methods/kernel-databases-classdbphp-r166

Share this post


Link to post
Share on other sites

Извиняюсь, писал с мобильника, случайно не ту кнопку нажал и удалил предыдущий пост ТСа :)

 

Отвечая на ваш пост,

Когда я начинал писать свой первый php код, я даже не имел понятия что такое ООП, был как все нормальные люди на уровне echo "Hello world", изучал что такое массивы и как обработать строки. Если вы новичок, прочтите какую нибудь книгу для чайников где изложены основы. Да, можно параллельно тренироваться на практических задачах, но тогда слушайте что вам говорят более опытные люди, и не лезьте с скудными знаниями основ в вещах где по суть вы и не должны этого делать.

 

Зачем я потер код? - Код был уныл, настолько уныл, что вы бы новичков только еще больше запутали. На форуме есть нормальные примеры для работы с апи, а для выдергивания данных из бд есть куча статей в интернете.

 

По поводу сессий.

Не надо там лезть. Для поддержки сессии и идентификации пользователя отведен целый класс, а вы хотите написать это пятью строчками кода. Я вам уже третий раз пишу, в первый ссылке на ИПС есть как раз то, что вам нужно. Подключили ядро форума, и он сам все необходимые данные загрузил. Вам как новичку без апи не обойтись, станете более опытным, тогда сможете написать свой обработчик без поддержке ядра форума.

Share this post


Link to post
Share on other sites
<?php

define( 'IPB_THIS_SCRIPT', 'public' );
define( 'IPS_PUBLIC_SCRIPT', 'index.php' );
define( 'IPS_ENFORCE_ACCESS', true );
require_once( 'initdata.php' );

require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );
$registry = ipsRegistry::instance();
$registry->init();

$settings =& $registry->fetchSettings();
$request  =& $registry->fetchRequest();
$member   =& $registry->member()->fetchMemberData();
$DB       = $registry->DB();

print_r($member);

?>

  • Upvote 1

Share this post


Link to post
Share on other sites

Пару примеров запросов к бд.

build and fetch, где результатом ожидается одна строка

 

$row = $DB->buildAndFetch(array(
'select' => '*',
'from'   => 'members',
'where'  => 'member_id=1'
));

print_r($row);

build, query and fetch, где результатом ожидается несколько строк

 

$DB->build(array(
'select' => '*',
'from'   => 'members',
'where'  => 'member_group_id=4',
));
$DB->execute();

while($row = $DB->fetch()){
print_r($row);
}

И нативные SQL запросы без конструктора

 

$DB->query('SELECT * FROM '.$DB->obj['sql_tbl_prefix'].'members WHERE member_group_id=4');

while($row = $DB->fetch()){
print_r($row);
}

 

Расширенную справку по конструктору запросов $DB->build() можно посмотреть в документации.

Также у объекта $DB есть методы delete, update, insert, replace.

  • Upvote 1

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