Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 5103 Просмотров
*

balck

  • Осваиваюсь на форуме
  • 43
  • 2 / 0
  • Burn! extrit.by
Вопрос, наверное к гуру, но если у кого есть хоть какие-нибудь соображения - буду благодарен:

Никак не могу понять как мне получить значение полей профиля активного залогиненного пользователя и пользователя чья анкета просматривается или, например, юзера кому я отправляю мессагу с помощью pms...

А ведь моему самописанному модулю эта информация вкорне ну просто необходима...
А инфы на эту тему я в рунете ни на грамм не нашел... Уже прогуглил всё вдоль и поперёк...

Плиз ХЭЛП!

Да!  :Dменя тоже интересует! Мне бы также хотелось менять значение добавленных мною полей, например, по нажатию на какую нибудь кнопку или линк на сайте.Это возможно?
*

mgm

  • Захожу иногда
  • 67
  • 3 / 0
Тоже сильно интересует, как добраться до нестандартных полей в CB
*

m__g

  • Захожу иногда
  • 124
  • 25 / 0
все эти поля хранятся в базе данных, делайте запрос прямой в модуле по айди нужного юзера и всё, делов то:)
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
не надо никаких запросов, вы что
в 1.0 есть объект $my
Код: php
global $my;
print_r($my);

В 1.5 есть $user
Код: php
$user =& JFactory::getUser();
print_r($user );

Подробнее есть в Joomla FAQ
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

m__g

  • Захожу иногда
  • 124
  • 25 / 0
не...не:) я запрос не для этого предложил, юзера получить это полдела, вопрос не в этом, надо получить значение дополнительного поля из профиля cb.
Я сейчас с телефона пишу, поэтому своими словами.
Вот через то что написано в предыдущем посте мы получаем айди юзера, дальше делаем запрос в базу, вытаскиваем значение поля с выборкой по полученному айди. То есть получили то что нужно, вывели значение доп.поля из профиля нужного юзера.
Вечером попробую подробней написать:)

beliyadm
ну конечно если есть какой то способ получить значение не стандартного поля с профиля юзера без запросов в базу, я тоже бы хотел его увидеть:)
« Последнее редактирование: 04.02.2010, 07:32:56 от m__g »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
для СВ скорей всего нет, только запросами. Хотя надо читать документацию, может быть они доросли до уровня нормального ядра и можно вызвать готовый объект
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

mgm

  • Захожу иногда
  • 67
  • 3 / 0
Таки возможно!
На форуме CB нарыл. Вот так:
Код
 $cbUser = & CBuser::getInstance( $userId );
 if( ! $cbUser ) {
  $cbUser =&CBuser::getInstance( null );
 }
 $user=$cbUser->getUserData();
 if ( ! $user ) {return;}
 ЗНАЧЕНИЕ_ПОЛЯ = $user->ИМЯ_ПОЛЯ;
В моих целях это нужно для использования в SOBI2, поэтому ещё пришлось подключать модуль с CBuser.
Покопавшись в коде модулей для CB сделал так:
Код
if ( defined( 'JPATH_ADMINISTRATOR' ) ) {
if ( ! file_exists( JPATH_ADMINISTRATOR . '/components/com_comprofiler/plugin.foundation.php' ) ) {
echo 'CB not installed';
return;
}
include_once( JPATH_ADMINISTRATOR . '/components/com_comprofiler/plugin.foundation.php' );
}
else {
if ( ! file_exists( $mainframe->getCfg( 'absolute_path' ). '/administrator/components/com_comprofiler/plugin.foundation.php' ) ) {
echo 'CB not installed';
return;
}
include_once( $mainframe->getCfg( 'absolute_path' ). '/administrator/components/com_comprofiler/plugin.foundation.php' );
}
cbimport( 'cb.database' );

если можно как-то упростить подключение - было бы очень интересно.
Но в любом случае это работает работает - проверял :)

Видел вариант с запросом к базе, так там код более компактный:
Код
  global $database;
  $sql = "SELECT (ИМЯ_ПОЛЯ) FROM #__comprofiler WHERE id= {$userId}";
  $database->setQuery( $sql );
  ЗНАЧЕНИЕ = $database->loadResult();

Я в этом не сильно понимаю, но мне кажется, что вариант с прямым запросом к базе должен выполняться быстрее и давать меньшую нагрузку на сервер.
Знающие люди, объясните, какой вариант предпочтительнее, с точки зрения производительности?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
думаю что прямое подключение к БД и запрос на SELECT только нужных полей без прочего мусора
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

metlion

  • Осваиваюсь на форуме
  • 36
  • 1 / 0
Как достаточно опытный программист, могу сказать в чём существенный недостаток прямого запроса к ЧУЖОЙ БД.
Если разработчики CB в следующей версии изменят способ хранения полей в своей системе, может таблицу переименуют, может ещё что, то прямой запрос работать перестанет.
Интерфейсные методы при правильном подходе меняются значительно реже. И опять же если продукт нормальный, то разработчики обычно описывают изменения интерфейсных методов, и об этом можно узнать в описании изменений версии.
А вот изменение внутренних структур хранения данных описывается редко и обычно узнать об этом можно только когда что-то где-то перестало работать.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
могу сказать в чём существенный недостаток прямого запроса к ЧУЖОЙ БД.
Это естественно, но как полный чайник с опытом подобных штук скажу (на примере vuirtuemart, SMF как минимум) - подключение файлов ядра этих расширений для получения подобных объектов (как в данном случае параметры пользователя) тянут вместе с собой множество в данный момент не нужных вещей (еще множество includ-ов, дополнительных запросов в БД, зачастую совершенно неоптимизированных)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

metlion

  • Осваиваюсь на форуме
  • 36
  • 1 / 0
Ну это да, сам уже столкнулся с тем, что писатели компонентов имеют в голове своих тараканов, и используя их методы для своих целей иногда долго не можешь въехать, почему оно работает не совсем так, как хотелось бы. А оптимизация - это вообще отдельная тема.
Просто любой вариант имеет право на жизнь, но имеет свои риски, о которых лучше задуматься с самого начала.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Русский язык для Сommunity Builder 2.0.4 (Русификация)

Автор 1day

Ответов: 4
Просмотров: 9318
Последний ответ 04.04.2019, 17:32:27
от hayone
CB. Список пользователей. Вывод полей накладывается друг на друга

Автор Санчо

Ответов: 2
Просмотров: 4522
Последний ответ 06.04.2017, 15:49:07
от robert
Ссылки на профиль пользователя не открываются Community 2.0.5 Joomla! 3.3.6 uddeIM 3.5

Автор Vasilij30

Ответов: 5
Просмотров: 3046
Последний ответ 30.05.2016, 23:04:30
от Ariy84
Community Builder: Как использовать поле "Моя начальная страница"

Автор lemur

Ответов: 3
Просмотров: 1741
Последний ответ 03.06.2015, 21:27:09
от lemur
Вкладки Community 2.0.5 не принимают русский язык

Автор Vasilij30

Ответов: 3
Просмотров: 2081
Последний ответ 03.06.2015, 09:46:16
от IzrA