Toha123
Захожу иногда

Репутация: +1/-0
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
|
 |
« Ответ #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
Сообщений: 23
|
 |
« Ответ #2 : 15.04.2010, 14:32:42 » |
|
smart! Человечище! Спасибо за быстрый ответ, все пашет пока)). Проблема решена, решение может пригодится кому-то. Спасибо.
|
|
|
|
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #3 : 15.04.2010, 14:33:59 » |
|
Я добавлю этот код в следующую версию плагина JComments Avatar. Спасибо!
|
|
|
|
|
Записан
|
|
|
|
Toha123
Захожу иногда

Репутация: +1/-0
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
|
 |
« Ответ #5 : 15.04.2010, 15:43:22 » |
|
Есть еще проблемка, функция ('live_site') неправильно определяет путь во фрейме или поп-апе, может я что напортачил но все же, нужна замена этой функции. замените $mainframe->getCfg('live_site') на JURI::base(true)
|
|
|
|
|
Записан
|
|
|
|
Toha123
Захожу иногда

Репутация: +1/-0
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')."&Itemid=".$icenv->itemid."&PageNo=$PageNo&hit=1&vwidth=".($layout->_mediaWidth-($layout->_scroller?40:20))."&imgid=".$image->_id."&q=".$icenv->_name; $call = "a rel=\"rokbox[800 650]\" href=\"$lnk\""; return $call; }
может тут суть проблемы
|
|
|
|
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #7 : 15.04.2010, 16:17:32 » |
|
Скажу честно, времени разбираться с Joomunity у меня нет, но функция JURI::base(true) однозначно возвращает адрес сайта, а судя по логике, аватары лежат относительно корня сайта, поэтому я не вижу никаких причин не работать.
|
|
|
|
|
Записан
|
|
|
|
Toha123
Захожу иногда

Репутация: +1/-0
Offline
Сообщений: 23
|
 |
« Ответ #8 : 15.04.2010, 16:23:57 » |
|
Все же спасибо за помощь, попробую сам догнать.
|
|
|
|
|
Записан
|
|
|
|
Toha123
Захожу иногда

Репутация: +1/-0
Offline
Сообщений: 23
|
 |
« Ответ #9 : 15.04.2010, 17:48:02 » |
|
Еще один вопрос. Насколько плохо вывести путь абсолютный, и как поменять направления слэша а то при выводе они смотря в другую сторону?
|
|
|
|
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #10 : 15.04.2010, 17:57:51 » |
|
Еще один вопрос. Насколько плохо вывести путь абсолютный, и как поменять направления слэша а то при выводе они смотря в другую сторону?
зачем плагину аватров абсолютный путь? он с файлами не работает, а только делает ссылки на файлы, а в ссылках правильные слеши...
|
|
|
|
|
Записан
|
|
|
|
Toha123
Захожу иногда

Репутация: +1/-0
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
Сообщений: 23
|
 |
« Ответ #12 : 19.04.2010, 18:09:26 » |
|
Есть еще проблемка, функция ('live_site') неправильно определяет путь во фрейме или поп-апе, может я что напортачил но все же, нужна замена этой функции. Случайно нашел решение своей проблемы. Помог sh404sef)), указав что переменная $live_site в файле configuration.php у меня пуста. Теперь аватарки у меня появляются везде где надо.
|
|
|
|
|
Записан
|
|
|
|
|