Нужно узнать 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 для начала сделай хотя бы так:
Спустя 2 минуты, 26 секунд stepan написал(а):
[_stmt:protected] => mysqli_stmt Object ([id] => 41)
redreem
твой вариант не подходит однозначно
<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 строке
http://dl.dropbox.com/u/48040369/result.txt
Спустя 1 минута, 19 секунд skoch написал(а):
Есть id в 11,31,63 строке
Спустя 2 минуты, 12 секунд (26.01.2012 - 00:00) Winston написал(а):
Можно было бы вот так достать
НО, все свойства с ИД пользователя защищены (protected)
Потому просто так их не достать. Хотя можно дописать public метод который будет возвращать ИД пользователя.
$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 строке |
Ты что считал что ли?

Нужно вытянуть поля user_id?
Спустя 11 секунд (26.01.2012 - 00:01) redreem написал(а):
да, просматривать свойства класса и пытаться их получить.
явно user_id "присутствует" в:
явно 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(); НО, все свойства с ИД пользователя защищены (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
А как выглядит адресная строка пользователя у которого ты на странице? В адресной строке есть его ИД?
Спустя 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 написал(а):
Можно попробовать код написать типа такого
Он должен ИД вернуть... Вроде бы...
Спустя 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
Добавить в друзья
Заблокировать
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 написал(а):
Хорошо, а если строку заменить на эту
И вместо echo $obj; написать
Будут ли там содержаться нужные данные?
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{ |
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) | ||
Блииин, точно провтыкал, $ забыл дописать :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 написал(а):
если сделать
что выводит? Есть ли там user_id?
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
А если попробовать наследовать как киллер написал, от 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 ( ) |
ну да, он же протектед не покажет

Спустя 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
Спустя 1 минута, 47 секунд Winston написал(а):
Или так
Спустя 3 минуты, 5 секунд Winston написал(а):
Еще так попробуй :)
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) |
в точку ! |
Вот видишь, тычя пальцем в небо, можно и в точку попасть

Спустя 2 минуты, 33 секунды (26.01.2012 - 00:58) skoch написал(а):
Цитата (Winston @ 25.01.2012 - 21:55) | ||
Вот видишь, тычя пальцем в небо, можно и в точку попасть ![]() |
Ушло часов 5 на это попадание

Спустя 1 минута, 41 секунда (26.01.2012 - 00:59) Winston написал(а):
Все таки поиск по официальному форуму - рулит
http://www.socialengineforum.com/index.php...d-of-a-profile/

http://www.socialengineforum.com/index.php...d-of-a-profile/