LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
25.05.2012, 23:18:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: JComments Avatar plugin и аватары из joomunity [решено]  (Прочитано 1567 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Toha123
Захожу иногда
**

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

Сообщений: 23



« : 15.04.2010, 14:12:52 »

Помогите в реализации сабжа.
Все мелочи добавлены, в настройках выбор работает, также уже работает ссылка на профиль, но вот аватарка никак не выводится, где-то ошибка. Я в PHP не ас поэтому писал на угад. Код взят от изъятия аваторок у IdoBlog.
Подскажите в чем моя ошибка.

Код:
case 'joomunity':
if (count($users)) {
       $db->setQuery('SELECT user_id, user_picture FROM #__joom_users WHERE user_id in (' . implode(',', $users)  . ')');
       $avatars = $db->loadObjectList('user_id');
unset($users);
} else {
$avatars = array();
}

for ($i=0,$n=count($comments); $i < $n; $i++) {
$userid = (int) $comments[$i]->userid;

// profile link
$comments[$i]->profileLink = $userid ? JRoute::_('index.php?option=com_joomunity&cmd=profile.view.' . $userid) : '';

//avatar
       if (isset($avatars[$userid]) && $avatars[$userid]->avatar != '') {
$comments[$i]->avatar = plgJCommentsAvatarImg($mainframe->getCfg('live_site'). '/components/com_joomunity/files/avatars/'. $avatars[$userid]->avatar);
} else {
$comments[$i]->avatar = '';
       }
}
unset($avatars);
break;
« Последнее редактирование: 15.04.2010, 14:33:00 от Toha123 » Записан
smart
Администратор
*******

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

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


тружусь даже во сне...


« Ответ #1 : 15.04.2010, 14:28:08 »

Замените строчку:

Код
$db->setQuery('SELECT user_id, user_picture FROM #__joom_users WHERE user_id in (' . implode(',', $users)  . ')');
на
Код
$db->setQuery('SELECT user_id, user_picture as avatar FROM #__joom_users WHERE user_id in (' . implode(',', $users)  . ')');
Записан
Toha123
Захожу иногда
**

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

Сообщений: 23



« Ответ #2 : 15.04.2010, 14:32:42 »

smart! Человечище! Спасибо за быстрый ответ, все пашет пока)). Проблема решена, решение может пригодится кому-то. Спасибо.
Записан
smart
Администратор
*******

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

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


тружусь даже во сне...


« Ответ #3 : 15.04.2010, 14:33:59 »

Я добавлю этот код в следующую версию плагина JComments Avatar. Спасибо!
Записан
Toha123
Захожу иногда
**

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

Сообщений: 23



« Ответ #4 : 15.04.2010, 15:26:46 »

Есть еще проблемка, функция ('live_site') неправильно определяет путь во фрейме или поп-апе, может я что напортачил но все же, нужна замена этой функции. Чем можно заменить и как будет выглядеть эта строка

Код:
$comments[$i]->avatar = plgJCommentsAvatarImg($mainframe->getCfg('live_site'). '/components/com_joomunity/files/avatars/'. $avatars[$userid]->avatar);
Записан
smart
Администратор
*******

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

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


тружусь даже во сне...


« Ответ #5 : 15.04.2010, 15:43:22 »

Есть еще проблемка, функция ('live_site') неправильно определяет путь во фрейме или поп-апе, может я что напортачил но все же, нужна замена этой функции.
замените $mainframe->getCfg('live_site') на JURI::base(true)
Записан
Toha123
Захожу иногда
**

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

Сообщений: 23



« Ответ #6 : 15.04.2010, 16:04:57 »



В общем тот же результат. Может так лучше будет понятно.  В ice gallery есть функция popup окна, я ее заменил rocbox

код на вызов такой

Код:
function makePopupLink(&$image,$PageNo,&$layout,$gal,$embed) {
global $ice,$icenv;
$size = array(0,0);
if ($ice->isImage($image->_type)) {
if ($image->_xlink=='') {
if (!$gal) $c_dir = $image->getDir(); else $c_dir = $ice->_gallery->_dir;
if ($c_dir) {
$size = @getimagesize($icenv->abs.'/'.$icenv->cfg['imagepath'].$c_dir.'/'.$image->_viewsize);
}
} else $size = @getimagesize($image->_xlink);
if ($size===false) $size = array(0,0);
}
$lnk = $icenv->live."/components/com_ice/view.php?popup=".($embed?'2':'1')."&amp;Itemid=".$icenv->itemid."&amp;PageNo=$PageNo&amp;hit=1&amp;vwidth=".($layout->_mediaWidth-($layout->_scroller?40:20))."&amp;imgid=".$image->_id."&amp;q=".$icenv->_name;
$call = "a rel=\"rokbox[800 650]\" href=\"$lnk\"";
return $call;

}

может тут суть проблемы
Записан
smart
Администратор
*******

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

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


тружусь даже во сне...


« Ответ #7 : 15.04.2010, 16:17:32 »

Скажу честно, времени разбираться с Joomunity у меня нет, но функция JURI::base(true) однозначно возвращает адрес сайта, а судя по логике, аватары лежат относительно корня сайта, поэтому я не вижу никаких причин не работать.
Записан
Toha123
Захожу иногда
**

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

Сообщений: 23



« Ответ #8 : 15.04.2010, 16:23:57 »

Все же спасибо за помощь, попробую сам догнать.
Записан
Toha123
Захожу иногда
**

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

Сообщений: 23



« Ответ #9 : 15.04.2010, 17:48:02 »

Еще один вопрос. Насколько плохо вывести путь абсолютный, и как поменять направления слэша а то при выводе они смотря в другую сторону?
Записан
smart
Администратор
*******

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

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


тружусь даже во сне...


« Ответ #10 : 15.04.2010, 17:57:51 »

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

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

Сообщений: 23



« Ответ #11 : 19.04.2010, 16:21:50 »

Полный код для интеграции который у нас получился:

Код:
case 'joomunity':
if (count($users)) {
        $db->setQuery('SELECT user_id, user_picture as avatar FROM #__joom_users WHERE user_id in (' . implode(',', $users)  . ')');
        $avatars = $db->loadObjectList('user_id');
unset($users);
} else {
$avatars = array();
}

for ($i=0,$n=count($comments); $i < $n; $i++) {
$userid = (int) $comments[$i]->userid;

// profile link
$comments[$i]->profileLink = $userid ? JRoute::_('index.php?option=com_joomunity&cmd=profile.view.' . $userid) : '';

//avatar
        if (isset($avatars[$userid]) && $avatars[$userid]->avatar != '') {
//$comments[$i]->avatar = plgJCommentsAvatarImg($mainframe->getCfg('absolute_path'). DS . 'components' . DS . 'com_joomunity' . DS . 'files' . DS . 'avatars'. DS . $avatars[$userid]->avatar);
$comments[$i]->avatar = plgJCommentsAvatarImg(JURI::base(true). '/components/com_joomunity/files/avatars/' . $avatars[$userid]->avatar);
} else {
$comments[$i]->avatar = '';
        }
}
unset($avatars);
break;

P.S. Решение моей проблемы лежит в недрах ice gallery, поэтому код считаю рабочим. и вопросик. Количество запросов к бд будет примерно равно количеству комментов на странице или нет? Просто в модуле допустим Random user количество равно лимиту вывода аваторок. 
Записан
Toha123
Захожу иногда
**

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

Сообщений: 23



« Ответ #12 : 19.04.2010, 18:09:26 »

Цитировать
Есть еще проблемка, функция ('live_site') неправильно определяет путь во фрейме или поп-апе, может я что напортачил но все же, нужна замена этой функции.

Случайно нашел решение своей проблемы. Помог sh404sef)), указав что переменная $live_site в файле configuration.php у меня пуста. Теперь аватарки у меня появляются везде где надо.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | 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