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

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: В header комментария добавить поле из CB  (Прочитано 1446 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Saber
Осваиваюсь на форуме
***

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

Сообщений: 84


« : 12.04.2010, 11:24:21 »

Доброго времени суток, нужно вывести в тело комментария, поле из профиля Community Builder.

Скачал плагин JComments Avatars 3.1 для Joomla 1.5.x
Включил отображение аватар.
Дальше нужно изменить плагин для себя.

Открываю код плагина, нахожу код, который берёт данные аватара из профиля и добавляет в комментарий.
Код:
case 'cb':
if (count($users)) {
        $db->setQuery('SELECT user_id, avatar FROM #__comprofiler WHERE user_id in (' . implode(',', $users)  . ') AND avatarapproved = 1');
        $avatars = $db->loadObjectList('user_id');
unset($users);
} else {
$avatars = array();
}

if (!isset($GLOBALS['cbprofileitemid'])) {
    $db->setQuery("SELECT id FROM #__menu WHERE link = 'index.php?option=com_comprofiler' AND published=1");
    $_Itemid = $db->loadResult();

    if (!$_Itemid) {
    $db->setQuery("SELECT id FROM #__menu WHERE link = 'index.php?option=com_comprofiler&task=userslist' AND published=1");
    $_Itemid = $db->loadResult();
    }

    $GLOBALS['cbprofileitemid'] = (int) $_Itemid;
}

$_Itemid = $GLOBALS['cbprofileitemid'];

if ($_Itemid != 0) {
$_Itemid = '&Itemid=' . $_Itemid;
} else {
$_Itemid = '';
}

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

// link to profile
$comments[$i]->profileLink = $userid ? JoomlaTuneRoute::_('index.php?option=com_comprofiler&task=userProfile&user=' . $userid . $_Itemid) : '';
       
// avatar
        if (isset($avatars[$userid]) && !empty($avatars[$userid]->avatar)) {
$tn = strpos($avatars[$userid]->avatar, 'gallery') === 0 ? '' : 'tn';
$comments[$i]->avatar = plgJCommentsAvatarImg($mainframe->getCfg('live_site'). '/images/comprofiler/'. $tn . $avatars[$userid]->avatar);
} else {
$comments[$i]->avatar = '';
        }
}
unset($avatars);
break;

Вот собственно вопрос, я не до конца понимаю как происходит вывод в комментарий.

В строке Добавляю нужное мне поле.
Код:
$db->setQuery('SELECT user_id, avatar, [b]cb_bdate[/b] FROM #__comprofiler WHERE user_id in

Дальше, на сколько я понимаю, при обращении
Код:
$avatars[$userid]->cb_bdate
Я должен получить данные этого поля.

Но теперь как мне их вывести в поле комментария?
Записан
smart
Администратор
*******

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

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


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


« Ответ #1 : 12.04.2010, 11:37:49 »

Вот в том коде, что вы привели, после строчки:

Код
				// link to profile
$comments[$i]->profileLink = $userid ? JoomlaTuneRoute::_('index.php?option=com_comprofiler&task=userProfile&user=' . $userid . $_Itemid) : '';

добавьте:

Код
			        if (isset($avatars[$userid])) {
$comments[$i]->cb_bdate = $avatars[$userid]->cb_bdate;
}

После чего, в шаблоне комментариев (/components/com_jcomments/tpl/default/tpl_comment.php), можно выводить это поле, оно будет доступно у объекта $comment.
Записан
Saber
Осваиваюсь на форуме
***

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

Сообщений: 84


« Ответ #2 : 12.04.2010, 16:08:26 »

Спасибо большое, отправил пару копеек вам на кошелёк
Записан
Страниц: [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