Форум русской поддержки Joomla!® CMS
08.12.2016, 20:02:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Вывод полей из Профиль пользователя ?

 (Прочитано 2820 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Magl
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 85



« : 11.01.2013, 13:15:43 »

Доброго времени суток!
Такой вопрос как можно по выводить значение полей пользователя которые были добавлены в "Профиль пользователя" ?
Я понимаю что можно написать запросы к базе, но в этом я не силён и думаю должен быть способ по проще.
Подскажите, поделитесь идеями или решением.
Спасибо !
Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

Пол: Мужской
Сообщений: 3820


Все начинается с Value


« Ответ #1 : 11.01.2013, 13:27:03 »

Код
<?php
$user = JFactory::getUser();
var_dump($user);
//Здесь ваши данные
?>

или могут быть здесь
Код
<?php
jimport( 'joomla.user.helper' );
$userProfile = JUserHelper::getProfile();
print_r($userProfile); //глянь что здесь есть
?>
Записан
Magl
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 85



« Ответ #2 : 11.01.2013, 14:21:39 »

Что то не получилось
У меня задача стоит так, надо вывести данные всех пользователей из определённого региона.
Регионы у пользователей добавляются как дополнительное поле "Профиль пользователя" таблица jos_user_profiles
Такой вопрос как вывести всех пользователей у которых в таблице jos_user_profiles поле profile_value равно id региона например 60

Если короче я в выпадающем списке выбираю регион, а мне выводит из таблицы jos_users почту и из таблицы jos_user_profiles телефон всех пользователь в этом регионе

Дайте хотя бы пример как вывести почту всех пользователь из таблицы  jos_users
И телефон всех пользователей из  jos_user_profiles

Спасибо большое !
Записан
Magl
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 85



« Ответ #3 : 11.01.2013, 15:45:12 »

Код
<?php
$user = JFactory::getUser();
var_dump($user);
//Здесь ваши данные
?>

или могут быть здесь
Код
<?php
jimport( 'joomla.user.helper' );
$userProfile = JUserHelper::getProfile();
print_r($userProfile); //глянь что здесь есть
?>

Дайте пример как вывести почту всех пользователь из таблицы  jos_users
И телефон всех пользователей из  jos_user_profiles
Спасибо
Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

Пол: Мужской
Сообщений: 3820


Все начинается с Value


« Ответ #4 : 11.01.2013, 17:05:46 »

Код
<?php
$region_id=60;
jimport( 'joomla.user.helper' );
$db = JFactory::getDBO();
$sql = "SELECT a.user_id, b.email FROM #__user_profiles as a, #__users as b ";
$sql .= "WHERE a.profile_key='profile.region' and a.profile_value='\"$region_id\"' and b.id=a.user_id";
$db->setQuery($sql);
$list = $db->loadObjectList();
foreach($list as $user)
{
$userProfile = JUserHelper::getProfile($user->user_id);
echo $user->email;
echo $userProfile->profile['phone'];
}
?>
Все e-mail
Код
<?php
$db = JFactory::getDBO();
$sql = "SELECT email FROM #__users";
$db->setQuery($sql);
$list = $db->loadObjectList();
foreach($list as $user)
{
echo $user->email;
}
?>
Все телефоны
Код
<?php
$db = JFactory::getDBO();
$sql = "SELECT profile_value FROM #__user_profiles WHERE profile_key='profile.phone'";
$db->setQuery($sql);
$list = $db->loadObjectList();
foreach($list as $user)
{
echo str_replace('"', '',$user->profile_value);
}
?>
« Последнее редактирование: 11.01.2013, 17:36:36 от Poznakomlus » Записан
Magl
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 85



« Ответ #5 : 11.01.2013, 19:06:16 »

Все телефоны
Код
<?php
$db = JFactory::getDBO();
$sql = "SELECT profile_value FROM #__user_profiles WHERE profile_key='profile.phone'";
$db->setQuery($sql);
$list = $db->loadObjectList();
foreach($list as $user)
{
echo str_replace('"', '',$user->profile_value);
}
?>

Спасибо Огромное Работает
Только вот проблема есть такая
некоторые данные выводит вот так "\u0418\u0432\u0430\u043d\u043e\u0432\u0438\u0447 "
На форуме видел сообщение "http://joomlaforum.ru/index.php?topic=241816.0" но не понял в чём решение кроме того что менять хостера
но данные уже выводятся в таком виде как это можно исправить ?
Записан
Magl
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 85



« Ответ #6 : 14.01.2013, 12:57:51 »

Подскажите как можно выводить данные из "Профиль пользователя" что бы они небыли закодированы в таком виде "\u0418\u0432\u0430\u043d\u043e\u0432\u0438\u0447" ?
Спасибо
Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

Пол: Мужской
Сообщений: 3820


Все начинается с Value


« Ответ #7 : 14.01.2013, 13:30:58 »

Код
echo json_decode('"\u0418\u0432\u0430\u043d\u043e\u0432\u0438\u0447"');
//Иванович
Или так может
Код
<?php
$db = JFactory::getDBO();
$sql = "SELECT profile_value FROM #__user_profiles WHERE profile_key='profile.phone'";
$db->setQuery($sql);
$list = $db->loadObjectList();
foreach($list as $user)
{
echo  json_decode($user->profile_value);
}
?>
Записан
Magl
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 85



« Ответ #8 : 14.01.2013, 15:22:57 »

Показать текстовый блок

Спасибо работает НО есть проблема в базе есть и не закодированы элементы
и получается там что если закодировано оно выводит, а если не закодировано то просто пусто, как от такого избавиться ?
Может как-то сделать проверку на то закодирован элемент или нет ?
Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

Пол: Мужской
Сообщений: 3820


Все начинается с Value


« Ответ #9 : 14.01.2013, 15:41:39 »

самое простое наверно так
Код
$data =  json_decode($user->profile_value);
echo ($data ? $data : str_replace('"', '',$user->profile_value));
Записан
Magl
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 85



« Ответ #10 : 14.01.2013, 15:55:44 »

самое простое наверно так
Код
$data =  json_decode($user->profile_value);
echo ($data ? $data : str_replace('"', '',$user->profile_value));

Огромное СПАСИБО ! Работает !
Вы меня выручили очень сильно !
Записан
benshee
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 10



« Ответ #11 : 11.07.2013, 12:07:38 »

Ребят, а в каком файле то добавлять все это ? )
Записан
MetaSpirit
Живу я здесь
******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 1383


R.A.S.Lab[.org]


« Ответ #12 : 11.07.2013, 12:21:32 »

В плагине профилей или там где нужно, тоже можно вывести.
Записан
oblepiha
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #13 : 17.01.2014, 18:27:28 »

Код
<?php
$user = JFactory::getUser();
var_dump($user);
//Здесь ваши данные
?>

или могут быть здесь
Код
<?php
jimport( 'joomla.user.helper' );
$userProfile = JUserHelper::getProfile();
print_r($userProfile); //глянь что здесь есть
?>
Извиняюсь за свою безграмотность, но все таки вопрос задам.. нужно вывести в поле номер квартиры из поля профиля залогинившегося пользователя.. вывод поля я сделал, но он выводит первую попавшуюся квартиру в таблице, а не данного пользователя. Всю голову уже сломал
Записан
Genrih
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 13


« Ответ #14 : 24.03.2014, 11:28:20 »


или могут быть здесь
Код
<?php
jimport( 'joomla.user.helper' );
$userProfile = JUserHelper::getProfile();
print_r($userProfile); //глянь что здесь есть
?>

Выдало:
JObject Object ( [_errors:protected] => Array ( ) [id] => 566 [profile] => Array ( [address1] => [address2] => [city] => Краснодар [region] => [country] => [postal_code] => [phone] => [website] => [favoritebook] => [aboutme] => [dob] => ) )

как отсюда вывести [city] ?
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #15 : 24.03.2014, 11:53:21 »

Наверное так:
Код
$userProfile[profile][city]
Записан
Genrih
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 13


« Ответ #16 : 24.03.2014, 13:31:21 »

Наверное так:
Код
$userProfile[profile][city]

чет не выходит, выдало следующее:

JObject Object ( [_errors:protected] => Array ( ) [id] => 0 )
Notice: Use of undefined constant profile - assumed 'profile' in .../index.php on line 168

Notice: Use of undefined constant city - assumed 'city' in .../index.php on line 168

Fatal error: Cannot use object of type JObject as array in .../index.php on line 168
Записан
etoOH
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #17 : 10.05.2014, 17:32:51 »

самое простое наверно так
Код
$data =  json_decode($user->profile_value);
echo ($data ? $data : str_replace('"', '',$user->profile_value));

Здравствуйте! Подскажите пожалуйста, как этот код объединить с кодом из другого Вашего поста:
Показать текстовый блок

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


Есть ещё вопрос из этой же ветки.  Я воспользовался Вашим плагином выбора групп при регистрации, дабы упростить процесс, оставив всего два поля, - Имя и почту. Хотелось бы, чтобы перед заполнением формы не приходилось авторизовываться. в Форме есть одно из обязательных полей - е-маил. Уведомление администратору настроено таким образом, что передаёт user_id в скрытом поле, по которому предполагается вести статистику отправленных форм. Собственно есть такое пожелание, чтобы перед записью в базу, поле е-маил сравнивалось с базой пользователей, при наличии такого пользователя вставлялось в скрытое поле user_id  для отправки администратору и дописывалось в базу отправленных форм(идеально - на лету, то есть вписав в начале формы почту, доступные данные вносились бы в поля).  Хотя из соображений безопасности, думаю кроме id ничего не нужно автозаполнять...

Joomla 3.2.3, RSForm 1.4.0 rev.48

Коды в полях RSForm


 
Показать текстовый блок


« Последнее редактирование: 11.05.2014, 14:38:29 от etoOH » Записан
Сергей
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 13


« Ответ #18 : 02.07.2016, 12:59:21 »

Код
echo json_decode('"\u0418\u0432\u0430\u043d\u043e\u0432\u0438\u0447"');
//Иванович
Или так может
Код
<?php
$db = JFactory::getDBO();
$sql = "SELECT profile_value FROM #__user_profiles WHERE profile_key='profile.phone'";
$db->setQuery($sql);
$list = $db->loadObjectList();
foreach($list as $user)
{
echo  json_decode($user->profile_value);
}
?>
Подскажите пожалуйста что нужно подправить в этом коде чтобы выводило информацию только конкретного пользователя по id, запутался совсем. Этот код работает но выводится вся информация полностью.
Записан
Сергей
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 13


« Ответ #19 : 03.07.2016, 10:36:04 »

Уточню вопрос:
Cделал так:
 <?php
$db = JFactory::getDBO();
$sql = "SELECT profile_value FROM #__user_profiles WHERE profile_key='profile.address1'";
$db->setQuery($sql);
$list = $db->loadObjectList();
foreach($list as $user)

{
$data =  json_decode($user->profile_value);   
echo ($data ? $data : str_replace('"', '',$user->profile_value));
}
?>
В админке есть таблица с информацией о пользователе, хочу в нее вывести данные из профиля (дополнительные поля в плагине "профиль пользователя", конкретно интересует поле address1)
вышеуказанный код работает но он напротив каждого пользователя выводит данные всех пользователей.
Как правильно прописать код чтобы каждому пользователю из списка подставлялась соответствующая информация из поля address1.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet