Итак сделал
полную интеграцию JComments и JoomGallery для J1.5 native(тестировалось на JG 1.5.0.5 Stable/JC 2.2.0.0 [13/05/2010]).
Для текущей версии JComments нужен небольшой хак (
smart'у уже отписал - в следующем апдейте будет включено):
В файле
/components/com_jcomments/jcomments.php заменить(где-то строчка 1201):
$comment->author = JComments::getCommentAuthorName($comment);
if ($config->getInt('enable_mambots') == 1) {
JCommentsPluginHelper::trigger('onAfterPrepareComment', array(&$comment));
}
на
$comment->author = JComments::getCommentAuthorName($comment);
if ($config->getInt('enable_mambots') == 1) {
require_once (JCOMMENTS_HELPERS.DS.'plugin.php');
JCommentsPluginHelper::trigger('onAfterPrepareComment', array(&$comment));
}
Ну и сама интеграция:1. Откройте файл
\components\com_joomgallery\includes\joom.viewdetails.php2. Найдите и закомментируйте (или удалите) строки:
if ( $config->jg_showcomment ) {
//darf der Besucher Kommentare eingeben
if ($config->jg_anoncomment || (!$config->jg_anoncomment && $user->get('id'))) {
$allowcomment=1;
}else{
$allowcomment=0;
}
HTML_Joom_Detail::Joom_ShowCommentsHead_HTML();
if ( $config->jg_showcommentsarea == 2 ) {
HTML_Joom_Detail::Joom_ShowCommentsArea_HTML($allowcomment);
HTML_Joom_Detail::Joom_BuildCommentsForm_HTML($allowcomment);
} else {
HTML_Joom_Detail::Joom_BuildCommentsForm_HTML($allowcomment);
HTML_Joom_Detail::Joom_ShowCommentsArea_HTML($allowcomment);
}
HTML_Joom_Detail::Joom_ShowCommentsEnd_HTML();
}
3. Найдите строки:
if ( $config->jg_send2friend ) {
HTML_Joom_Detail::Joom_ShowSend2FriendArea_HTML();
}
и после них вставьте следующий код:
if ( $config->jg_showcomment ) {
$comments = JPATH_SITE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php';
if (is_file($comments)) {
require_once($comments);
echo JComments::showComments($this->id, 'com_joomgallery', $this->imgtitle);
}
}
4. Откройте файл
\components\com_joomgallery\includes\joom.viewspecial.php5. Найдите строки:
case 'lastcomment':
$query1="SELECT a.*,cc.*, ca.*,u.username, a.owner AS owner
FROM #__joomgallery AS a, #__joomgallery_catg AS ca, #__joomgallery_comments AS cc
LEFT JOIN #__users AS u on cc.userid = u.id
WHERE a.id=cc.cmtpic AND a.catid=ca.cid AND a.published = '1' " . " AND a.approved='1' " . " AND cc.published = '1' " . " AND ca.published = '1' " . " AND cc.approved='1' " . " AND ca.access<=".$user->get('aid'). "\n
ORDER BY cc.cmtdate DESC LIMIT ".$config->jg_toplist;
$tl_title = JText::_('JGS_TOP').' '.$config->jg_toplist.' '.JText::_('JGS_LAST_COMMENTED_PICTURE');
break;
и замените их на:
case 'lastcomment':
$query1="SELECT a.*,ca.*, u.username, a.owner AS owner
FROM #__joomgallery AS a, #__joomgallery_catg AS ca, #__jcomments AS cc
LEFT JOIN #__users AS u on cc.userid = u.id
WHERE cc.object_group='com_joomgallery' AND a.id=cc.object_id AND a.catid=ca.cid AND a.published = '1' " . " AND a.approved='1' " . " AND cc.published = '1' " . " AND ca.published = '1' " . " AND ca.access<=".$user->get('aid'). "\n
AND cc.id=(SELECT MAX(jc.id) FROM #__jcomments AS jc WHERE a.id = jc.object_id)
ORDER BY cc.date DESC LIMIT ".$config->jg_toplist;
$tl_title = JText::_('JGS_TOP').' '.$config->jg_toplist.' '.JText::_('JGS_LAST_COMMENTED_PICTURE');
break;
6. В директории
\components\com_joomgallery\includes\html\ найдите и откройте следующие файлы:
joom.viewcategory.html.php,
joom.favourites.html.php и
joom.viewspecial.html.php7. В каждом из трёх файлов найдите строки:
if ( $config->jg_showcatcom ) {
# Check how many comments exist
$database->setQuery( "SELECT count(*)
FROM #__joomgallery_comments
WHERE cmtpic='$row1->id' AND approved = '1' and published = '1' " );
$comments=$database->loadResult();
и замените на:
if ( $config->jg_showcatcom ) {
$comments = JPATH_SITE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php';
if (is_file($comments)) {
require_once($comments);
$comments = JComments::getCommentsCount($row1->id, 'com_joomgallery');
}
А в файле joom.favourites.html.php строка должна быть такой (т.е $row->id вместо $row1->id):$comments = JComments::getCommentsCount($row->id, 'com_joomgallery');
8. В файле
\components\com_joomgallery\includes\html\joom.viewspecial.html.php найдите строки:
if ( $sorting == 'lastcomment' && $config->jg_showthiscomment ) {
for ( $ii=0; $ii < $comments; $ii++ ) {
$userid = $row1->userid;
$cmtname = $row1->cmtname;
if ($userid > 0)
$cmtname = $row1->username;
..................................... и т.д.....
$cmttext = str_replace ("$i", "<img src='"._JOOM_LIVE_SITE."components/com_joomgallery/assets/images/smilies/".$config->jg_smiliescolor."/$sm' border='0' alt='$i' title='$i' />", $cmttext);
}
}
?>
<?php echo stripslashes($cmttext); ?>
</li>
и замените на:
if ( $sorting == 'lastcomment' && $config->jg_showthiscomment ) {
$comment = JComments::getLastComment($row1->id, 'com_joomgallery');
JComments::prepareComment($comment);
?>
<li>
<?php echo '<b>' . $comment->username . '</b> ' . JText::_('JGS_WROTE'). ': ' . $comment->comment . '" (' . JCommentsText::formatDate($comment->datetime, '%d.%m.%y %H:%M'). ')';
?>
</li>
в последней (длинной) строке можно менять внешний вид вывода последнего комментария, а также изменить отображение логина пользователя на его имя (
$comment->name).
Вот и всё. Если найдёте какие-то недочёты - пишите.
Примечание: Обновил архив с готовой интеграцией интеграцией до JG 1.5.0.5.
В архив включены только файлы касающиеся самой интеграции, т.е. если у вас стоит версия JoomGallery 1.5.0.4, то сначала нужно поставить обновление до 1.5.0.5 с офсайта, а уже потом этот архив![вложение удалено Администратором]