Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Вопрос по обекту !
skoch  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 36
Пользователь №: 31252
На форуме: 5 лет, 2 месяца, 3 дня
Карма:




cms SocialEngine 4.2
Нужно узнать id пользователя у которого мы на странице, долго искал но толку так и небыло. Потом нашел чтото типа этого:

$subject = Engine_Api::_()->core()->getSubject();

Если это вывести:
print_r ($subject = Engine_Api::_()->core()->getSubject());

то увидем кучю всего включая id пользователя у которого мы на странице. Но как вытянуть это оттуда?
Резульататы того что выводит: http://dl.dropbox.com/u/48040369/result.txt

Подскажыте как достать ето значение отуда, или ещё какойто способ узнать эту инфо.

Таким образом
echo $subject = Engine_Api::_()->core()->getSubject('user');
можно вывести имя и фамилию, сразу ссылкой на профиль.




Спустя 2 минуты, 37 секунд (25.01.2012 - 23:50) redreem написал(а):
$subject = Engine_Api::_()->core()->getSubject();
echo $subject['id'];


не?

Спустя 5 секунд (25.01.2012 - 23:50) Winston написал(а):
OMG
Напиши лучше так
echo '<pre>'.print_r ($subject = Engine_Api::_()->core()->getSubject(),1).'</pre>';

Чтобы можно было хоть что-то разобрать

Спустя 1 минута, 37 секунд (25.01.2012 - 23:52) TMake написал(а):
skoch для начала сделай хотя бы так:
<pre>
<?php print_r ($subject = Engine_Api::_()->core()->getSubject()); ?>
</pre>




Спустя 2 минуты, 26 секунд stepan написал(а):
[_stmt:protected] => mysqli_stmt Object ([id] => 41)
redreem
твой вариант не подходит однозначно

Спустя 5 минут, 38 секунд (25.01.2012 - 23:58) skoch написал(а):
Огрмное спасибо, дествительно удобней
http://dl.dropbox.com/u/48040369/result.txt




Спустя 1 минута, 19 секунд skoch написал(а):
Есть id в 11,31,63 строке

Спустя 2 минуты, 12 секунд (26.01.2012 - 00:00) Winston написал(а):
Можно было бы вот так достать
$subject = Engine_Api::_()->core()->getSubject();
$subject->_data['user_id'];

НО, все свойства с ИД пользователя защищены (protected)
Потому просто так их не достать. Хотя можно дописать public метод который будет возвращать ИД пользователя.

Спустя 15 секунд (26.01.2012 - 00:00) redreem написал(а):
посмотрел вывод, попробуй например для имени так:

echo $subject->_searchTriggers[2];

Спустя 1 минута (26.01.2012 - 00:01) Winston написал(а):
Цитата (skoch @ 25.01.2012 - 22:59)
Есть id в 11,31,63 строке

Ты что считал что ли? blink.gif
Нужно вытянуть поля user_id?

Спустя 11 секунд (26.01.2012 - 00:01) redreem написал(а):
да, просматривать свойства класса и пытаться их получить.

явно user_id "присутствует" в:
$subject->_primary[1]

Спустя 26 секунд (26.01.2012 - 00:02) Winston написал(а):
Цитата (redreem @ 25.01.2012 - 23:00)
посмотрел вывод, попробуй например для имени так:

Там все протектед, потому напрямую не получится.

Спустя 3 минуты, 2 секунды (26.01.2012 - 00:05) skoch написал(а):
Цитата (Winston @ 25.01.2012 - 21:00)
Можно было бы вот так достать
$subject = Engine_Api::_()->core()->getSubject();
$subject->_data['user_id'];

НО, все свойства с ИД пользователя защищены (protected)
Потому просто так их не достать. Хотя можно дописать public метод который будет возвращать ИД пользователя.



С самого начала так пытался, но потом подумал раз невыходит неправельно думаю.
Результата нету, как быть с этим protected ?

Спустя 49 секунд (26.01.2012 - 00:06) Winston написал(а):
Цитата (skoch @ 25.01.2012 - 23:05)
как быть с этим protected

Цитата (skoch @ 25.01.2012 - 23:05)
дописать public метод который будет возвращать ИД пользователя





Спустя 4 минуты, 2 секунды Winston написал(а):
skoch
А если написать?
Engine_Api::_()->user()->getViewer()->getIdentity();

Спустя 11 минут, 52 секунды (26.01.2012 - 00:17) skoch написал(а):
Цитата (Winston @ 25.01.2012 - 21:10)
skoch
А если написать?
Engine_Api::_()->user()->getViewer()->getIdentity();

Вывело мой ид, но не пользователя в которого мы находимся

Спустя 34 секунды (26.01.2012 - 00:18) Winston написал(а):
Упс... Да, я тупанул...



Спустя 43 секунды Winston написал(а):
skoch
А как выглядит адресная строка пользователя у которого ты на странице? В адресной строке есть его ИД?

Спустя 1 минута, 44 секунды (26.01.2012 - 00:20) skoch написал(а):
Цитата (Winston @ 25.01.2012 - 21:19)
skoch
А как выглядит адресная строка пользователя у которого ты на странице? В адресной строке есть его ИД?

http://sce42/profile/dddddd

вкоце ник пользователя. Можно по нему с базы узнать, но хочю бес запроса




Спустя 3 минуты, 54 секунды skoch написал(а):
Если выводить черезprint_r Engine_Api::_()->user()->getViewer()
То Identity тоже protected, но выводится.

Спустя 4 минуты, 17 секунд (26.01.2012 - 00:24) Winston написал(а):
А на странице пользователя нигде ИД не выводится?



Спустя 2 минуты, 44 секунды Winston написал(а):
Можно попробовать код написать типа такого
class getId extends User_Model_User
{
public function __construct()
{
return parent::_data['user_id'];
}
}

$obj = new getId;
echo $obj;

Он должен ИД вернуть... Вроде бы...

Спустя 6 минут, 46 секунд (26.01.2012 - 00:31) skoch написал(а):
Ошибка:
return parent::_data['user_id'];
arse error: syntax error, unexpected '[' in D:\home\sce42\www\application\widgets\callendar\callendar\UserCallendar.php on line 29



ид в ссылках:
Edit Member Profile
Добавить в друзья
Заблокировать

Спустя 2 минуты, 13 секунд (26.01.2012 - 00:33) Winston написал(а):
Хорошо, а если строку заменить на эту
return parent::_data;

И вместо echo $obj; написать
print_r($obj);

Будут ли там содержаться нужные данные?

Спустя 19 секунд (26.01.2012 - 00:33) killer8080 написал(а):
а если так
class Api_ex extends Engine_Api{
public static function getUserId(){
return parent::$_data['user_id'];
}
}

$user_id = Api_ex::getUserId();

Спустя 2 минуты, 11 секунд (26.01.2012 - 00:36) skoch написал(а):
Цитата (Winston @ 25.01.2012 - 21:33)
Хорошо, а если строку заменить на эту
return parent::_data;

И вместо echo $obj; написать
print_r($obj);

Будут ли там содержаться нужные данные?

Fatal error: Undefined class constant '_data' in D:\home\sce42\www\application\widgets\callendar\callendar\UserCallendar.php on line 29



Спустя 58 секунд skoch написал(а):
Цитата (killer8080 @ 25.01.2012 - 21:33)
а если так
class Api_ex extends Engine_Api{
public static function getUserId(){
return parent::$_data['user_id'];
}
}

$user_id = Api_ex::getUserId();

Fatal error: Access to undeclared static property: Engine_Api::$_data in D:\home\sce42\www\application\widgets\callendar\callendar\UserCallendar.php on line 27

Спустя 1 минута, 28 секунд (26.01.2012 - 00:37) Winston написал(а):
Цитата (skoch @ 25.01.2012 - 23:36)
Fatal error: Undefined class constant '_data

Блииин, точно провтыкал, $ забыл дописать :D
return parent::$_data;

Спустя 2 минуты, 13 секунд (26.01.2012 - 00:39) skoch написал(а):
Цитата (Winston @ 25.01.2012 - 21:37)
Цитата (skoch @ 25.01.2012 - 23:36)
Fatal error: Undefined class constant '_data

Блииин, точно провтыкал, $ забыл дописать :D
return parent::$_data;

Fatal error: Access to undeclared static property: User_Model_User::$_data in D:\home\sce42\www\application\widgets\callendar\callendar\UserCallendar.php on line 29


Сам код сейчас выглядит так:
class getId extends User_Model_User
{
public function __construct()
{
return parent::$_data;
}
}
$obj = new getId;
print_r($obj);

Спустя 1 минута, 52 секунды (26.01.2012 - 00:41) killer8080 написал(а):
если сделать
echo '<pre>'.print_r(get_class_vars(Engine_Api), 1).'</pre>';

что выводит? Есть ли там user_id?

Спустя 13 секунд (26.01.2012 - 00:41) Winston написал(а):
skoch
А если попробовать наследовать как киллер написал, от Engine_Api?
extends Engine_Api

Спустя 55 секунд (26.01.2012 - 00:42) skoch написал(а):
Цитата (killer8080 @ 25.01.2012 - 21:41)
если сделать
echo '<pre>'.print_r(get_class_vars(Engine_Api), 1).'</pre>';

что выводит? Есть ли там user_id?

Вывело

Array
(
)


Спустя 1 минута, 40 секунд (26.01.2012 - 00:44) killer8080 написал(а):
Цитата (skoch @ 25.01.2012 - 23:42)
Вывело

Array
(
)

ну да, он же протектед не покажет ph34r.gif

Спустя 28 секунд (26.01.2012 - 00:44) Winston написал(а):
Походу так нужно написать :unsure:
echo '<pre>'.print_r(new Engine_Api, 1).'</pre>';

Спустя 23 секунды (26.01.2012 - 00:45) skoch написал(а):
Цитата (Winston @ 25.01.2012 - 21:41)
skoch
А если попробовать наследовать как киллер написал, от Engine_Api?
extends Engine_Api

Fatal error: Access to undeclared static property: Engine_Api::$_data in D:\home\sce42\www\application\widgets\callendar\callendar\UserCallendar.php on line 28



Спустя 1 минута, 3 секунды skoch написал(а):
Цитата (Winston @ 25.01.2012 - 21:44)
Походу так нужно написать :unsure:
echo '<pre>'.print_r(new Engine_Api, 1).'</pre>';

Engine_Api Object
(
[_application:protected] =>
[_modules:protected] => Array
(
)

[_currentModuleName:protected] =>
[_itemTypes:protected] =>
)

Спустя 2 минуты, 27 секунд (26.01.2012 - 00:47) Winston написал(а):
Ну, а так? :D
echo '<pre>'.print_r(new User_Model_User, 1).'</pre>';




Спустя 1 минута, 47 секунд Winston написал(а):
Или так
echo '<pre>'.print_r(Engine_Api::_()->user(), 1).'</pre>';





Спустя 3 минуты, 5 секунд Winston написал(а):
Еще так попробуй :)
echo Engine_Api::_()->core()->getSubject('user')->getIdentity(); 

Спустя 5 минут, 45 секунд (26.01.2012 - 00:53) skoch написал(а):
Цитата (Winston @ 25.01.2012 - 21:50)
Еще так попробуй :)
echo Engine_Api::_()->core()->getSubject('user')->getIdentity(); 

echo Engine_Api::_()->core()->getSubject('user')->getIdentity();

в точку !

Спустя 2 минуты, 6 секунд (26.01.2012 - 00:55) Winston написал(а):
Цитата (skoch @ 25.01.2012 - 23:53)
в точку !

Вот видишь, тычя пальцем в небо, можно и в точку попасть biggrin.gif

Спустя 2 минуты, 33 секунды (26.01.2012 - 00:58) skoch написал(а):
Цитата (Winston @ 25.01.2012 - 21:55)
Цитата (skoch @ 25.01.2012 - 23:53)
в точку !

Вот видишь, тычя пальцем в небо, можно и в точку попасть biggrin.gif

Ушло часов 5 на это попадание smile.gif спасибо огромное



Спустя 1 минута, 41 секунда (26.01.2012 - 00:59) Winston написал(а):
Все таки поиск по официальному форуму - рулит cool.gif
http://www.socialengineforum.com/index.php...d-of-a-profile/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса