Как я решил проблему с установкой наград на Kunena.
Joomla 1.5.15, Kunena 1.5.4 RE от Adeptusa, на сайте присутствует Community Builder 1.2.1.
Естественно, все разработки уважаемого galstukа, так что во многих местах цитирую его:
В файле message.php вашего шаблона Kunena (того, который вы используете, у меня default_ex) найти строку:
| Код: |
| if (isset($msg_birthdate)) {
echo $msg_birthdate;
}
}?>
|
и после этого вставляем следующий код:
| Код: |
| <?php
// вставка медалей в профиль пользователей под аватаром в Kunena
$number_medals = 100; // number of medals to show
$query = "SELECT b.image, b.name"
. "\n FROM #__jawards_awards AS a"
. "\n LEFT JOIN #__jawards_medals AS b ON b.id = a.award"
. "\n WHERE a.userid=". $fmessage->userid
. "\n ORDER BY RAND() LIMIT ".$number_medals;
$database->setQuery( $query );
$medals = $database->loadObjectList();
$awards_url=sefRelToAbs('index.php?option=com_comprofiler&task=userProfile&user='.$fmessage->userid."&tab=getawardstab");
$msg_jawards = "<div class=\"ja_medals\"><nobr>";
foreach ($medals as $medal){
$msg_jawards.= "<a href=\"$awards_url\" title=\"$medal->name \">"
. "<img style='border:0px;padding:0px;' src=\"/images/medals/".$medal->image ."\" alt=\"".$medal->name."\" />"
. "</a>";
}
$msg_jawards.="</nobr></div>";
unset($medals);
echo $msg_jawards;
?> |
Не забудьте, о чем предупреждал galstuk:
Во вставленном выше коде найдите строку:
| Код: |
| $awards_url=sefRelToAbs('index.php?option=com_comprofiler&task=userProfile&user='.$fmessage->userid."&tab=getawardstab"); |
ибо она у всех будет разная (в моем случае ссылка ведет на профиль в Community Builder). Часть этого кода необходимо заменить на свой, где прописана ссылка на профиль пользователя.
Для того, чтобы узнать ссылку, ведущую на профили пользователей, нужно:
Кликнуть по любому профилю пользователя при отключенном SEO. Из адресной строки браузера скопировать ссылку.
На моем сайте ссылка имеет следующий вид:
http://huntsfish.ru/index.php?option=com_comprofiler&task=userProfile&user=92
Из этой строки берем только эту часть:
| Код: |
| index.php?option=com_comprofiler&task=userProfile&user= |
И вставляем ее сюда:
| Код: |
| $awards_url=sefRelToAbs('index.php?option=com_comprofiler&task=userProfile&user='.$fmessage->userid."&tab=getawardstab"); |
Сохраняем, перезаписываем файл на сервере.
Открываем default/plugin/fbprofile/userinfos.php. Здесь ищем строки:
| Код: |
| if (isset($msg_karma))
echo $msg_karma . ' ' . $msg_karmaplus . ' ' . $msg_karmaminus;
else
echo ' ';
?></span>
|
После которых вставляем:
| Код: |
| <?php
$number_medals = 100; // number of medals to show
$query = "SELECT b.image, b.name"
. "\n FROM #__jawards_awards AS a"
. "\n LEFT JOIN #__jawards_medals AS b ON b.id = a.award"
. "\n WHERE a.userid=". $userid
. "\n ORDER BY RAND() LIMIT ".$number_medals;
$database->setQuery( $query );
$medals = $database->loadObjectList();
$awards_url=sefRelToAbs('index.php?option=com_comprofiler&task=userProfile&user='.$userid."&tab=getawardstab");
$msg_jawards = "<div class=\"ja_medals\"><nobr>";
foreach ($medals as $medal){
$msg_jawards.= "<a href=\"$awards_url\" title=\"$medal->name \">"
. "<img style='border:0px;padding:0px;' src=\"/images/medals/".$medal->image ."\" alt=\"".$medal->name."\" />"
. "</a>";
}
$msg_jawards.="</nobr></div>";
unset($medals);
echo $msg_jawards;
?>
|
После этого все заработало. Демыча можно посмотреть
http://huntsfish.ru/obshhenie/forumchanin/12-ohota/98-snegohodi
Повторюсь, что код весь написан galstuk, просто были проблемы с путями к изображениям медалек. Плюс убрал альты, уж больно длинные (да и с кодировкой возиться), да и ссылок на профиль пользователя достаточно - и аватарка, и кнопка profile, теперь просто всплывают названия наград..