Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

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

 

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

 

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

 

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

Рекомендованные сообщения

Опубликовано:
  • Автор

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

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

Опубликовано:

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

Опубликовано:
  • Автор

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

Опубликовано:

Вне директории форума нужно использовать 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

Опубликовано:
  • Автор

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

 

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

 

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

 

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

Опубликовано:
  • Автор

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

Опубликовано:
  • Автор

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

 

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

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

Опубликовано:

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

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

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

Опубликовано:
  • Автор

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

 

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

 

CENSORED

 

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

 

 

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

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

 

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

Изменено пользователем siv1987

Опубликовано:

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

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

 

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

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

 

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

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

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

 

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

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

Опубликовано:

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

 

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

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

 

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

 

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

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

Опубликовано:
<?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);

?>

Опубликовано:

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

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.

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.