SocialEngine Zend получает изображение профиля пользователя - PullRequest
1 голос
/ 23 декабря 2011

Я пытаюсь получить изображение профиля пользователя с помощью

$this->itemPhoto($this->viewer(), 'thumb.icon');

или

$this->htmlLink($this->viewer()->getHref(), $this->itemPhoto($this->viewer(), 'thumb.icon'))

Средство просмотра this-> получает человека, просматривающего страницу, и выводит его user_id и ссылку. Я имитировал вывод этого, но он отказывается принять его. Он выдает ошибку «Элемент должен быть действительным элементом». Я искал код, и когда пользователи загружают изображения, он по какой-то причине хэшируется и помещается в хешированные папки, из которых я не могу просто извлечь. Но использование вышеуказанных функций делает не работает, если я хотел получить изображение профиля кого-то другого, кроме текущего зрителя или pageSubject. Кто-нибудь знает, как заставить эту вещь работать?

Отсутствие социальной помощи и ужасный API делают это трудным.

Ответы [ 3 ]

4 голосов
/ 24 декабря 2011

$this->viewer() фактически является объектом пользователя, вошедшего в систему. Если ваш пользователь не авторизован, этот код ничего не выводит.

Редактировать: Это пользовательский объект. Вы можете использовать Engine_Api::_()->user()->getViewer() или, если вы знаете user_id / email зрителя, Engine_Api::_()->user()->getUser($user_id)

0 голосов
/ 17 апреля 2012

Будет напечатано изображение со ссылкой на профиль.

<?php
$member2 = Engine_Api::_()->user()->getUser($user_id);
echo $this->htmlLink($member2->getHref(), $this->itemPhoto($member2, 'thumb.icon'), array('class' => 'placement_members_icon'))

?>

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

0 голосов
/ 08 января 2012

Вы также можете использовать: $this->viewer()->getIdentity().

...