|
ChaosDay
|
 |
« : 02.02.2009, 23:06:53 » |
|
Итак сделал полную интеграцию 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 с офсайта, а уже потом этот архив!
|
|
|
|
« Последнее редактирование: 12.07.2010, 11:53:39 от ChaosDay »
|
Записан
|
|
|
|
|
ChaosDay
|
 |
« Ответ #1 : 03.02.2009, 21:49:00 » |
|
Только что бегло посмотрел - для 1.0 тоже самое, различие в том что в самом конце файла нужно добавить другой код: if ( $jg_showcomment) { $comments = $mainframe->getCfg('absolute_path') . '/components/com_jcomments/jcomments.php'; if (file_exists($comments)) { require_once($comments); echo JComments::showComments($id, 'com_joomgallery', $imgtitle); } }Проверил на Joostina, вроде работает.
|
|
|
|
« Последнее редактирование: 03.02.2009, 21:52:51 от ChaosDay »
|
Записан
|
|
|
|
mikenike
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 6
|
 |
« Ответ #2 : 12.02.2009, 18:40:41 » |
|
Возможен другой вариант( к первому посту), если комментарии запрещены для гостей: if ( $config->jg_showcomment ) { //darf der Besucher Kommentare eingeben if ($config->jg_anoncomment || (!$config->jg_anoncomment && $user->get('id'))) { $allowcomment=1; } $comments = JPATH_SITE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php'; if (is_file($comments)) { require_once($comments); echo JComments::showComments($id, 'com_joomgallery', $imgtitle); } }else{ $allowcomment=0; } Только в этом случае, вставлять нужно на место исходного блока а не перед закрывающим тэгом ?>
|
|
|
|
« Последнее редактирование: 13.02.2009, 13:45:32 от mikenike »
|
Записан
|
|
|
|
|
ChaosDay
|
 |
« Ответ #3 : 14.02.2009, 23:11:58 » |
|
Дополнил интеграцию. Теперь интегрировано всё, даже сортировка по последним комментариям.
2 mikenike В принципе не вижу смысла в такой реализации, т.к. в таком случае если запретить комментирование гостям из галереи, то комменты гостям вообще показываться не будут.
|
|
|
|
|
Записан
|
|
|
|
mikenike
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 6
|
 |
« Ответ #4 : 16.02.2009, 16:05:22 » |
|
Дополнил интеграцию. Теперь интегрировано всё, даже сортировка по последним комментариям.
2 mikenike В принципе не вижу смысла в такой реализации, т.к. в таком случае если запретить комментирование гостям из галереи, то комменты гостям вообще показываться не будут.
Всё правильно, по принципу реализованному в самой галерее, текст комментариев для гостей доступен, а форма добавления не показывается. По поводу интеграции в целом: В том виде как сейчас здесь описан на реальном сервере не работает к сожалению... Делаю свою, по схожему принципу, кстати при включеном SEO (встроеномм) весь сайт отображается некорректно. кстати в файле joom.viewspecial.html.php есть строчка (69) <?php echo $row1->name; ?> у меня лично из-за нее вместо названия категории показывает имя пользователя)... и при обращении к файлу jcomments.php при включении функции JComments::prepareComment($comment); ругается на неустановленные переменные на линиях (1013, 1018, 1038, 1057, 1060, 1187, 1190) отвечающие за вывод и преобразование текста комментариев. Если интересно, могу выложить свой вариант интеграции слегка отличающийся от предложенного ChaosDay (Огромное личное спасибо  , а то не знал от чего оттолкнуться  , очень помогло! ). Работает в живую на сайте, но в тексте комментов смайлики не показывает(...
|
|
|
|
« Последнее редактирование: 16.02.2009, 16:21:43 от mikenike »
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #5 : 16.02.2009, 17:02:45 » |
|
и при обращении к файлу jcomments.php при включении функции JComments::prepareComment($comment); ругается на неустановленные переменные на линиях (1013, 1018, 1038, 1057, 1060, 1187, 1190) отвечающие за вывод и преобразование текста комментариев. а что вы в эту функцию передаете-то? туда не текст комментария должен попадать, а объект (с полным набором полей), получаемый, например, из функции getLatestComment...
|
|
|
|
|
Записан
|
|
|
|
mikenike
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 6
|
 |
« Ответ #6 : 16.02.2009, 17:11:22 » |
|
Выкладываю только отличия: файл joom.viewspecial.html.php <?php if ( $config->jg_showcatcom ) { $comments = JPATH_SITE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php'; if (is_file($comments)) { require_once($comments); $count = JComments::getCommentsCount($row1->id, 'com_joomgallery'); } } echo $count ? ('Комментарии ('.$count.') ') : 'Комментарии (0)'; ?> </li> <li> <?php if ( $sorting == 'lastcomment' ) { $comment = JComments::getLastComment($row1->id, 'com_joomgallery'); JComments::prepareComment($comment); //$smiles = & JCommentsFactory::getSmiles(); //$smilesList = $smiles->get(); echo '<b>' . $row1->jcname . '</b>' . ' добавлено: ' . $row1->jccomment . '(' . $row1->jcdate . ')'; //echo $comment->name, $comment->comment, $comment->datetime; } ?> </li> <li> <?php } ?> файл joom.viewspecial.php case 'lastcomment': $query1="select a.*, ca.name, cc.name as jcname, cc.date as jcdate, cc.comment as jccomment from #__joomgallery as a inner join #__joomgallery_catg as ca on a.catid = ca.cid inner join #__jcomments as cc on a.id = cc.object_id where a.published=1 and a.approved=1 and cc.object_group='com_joomgallery' and cc.published=1 and ca.published=1 and ca.access<=".$user->get('aid'). "\n ORDER BY cc.date DESC LIMIT ".$config->jg_toplist; $tl_title = JText::_('JGS_TOP').' '.$config->jg_toplist.' '.JText::_('JGS_LAST_COMMENTED_PICTURE'); break; файл joom.viewdetails.php : if ( $config->jg_showcomment ) { //darf der Besucher Kommentare eingeben if ($config->jg_anoncomment || (!$config->jg_anoncomment && $user->get('id'))) { $allowcomment=1; } $comments = JPATH_SITE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php'; if (is_file($comments)) { require_once($comments); echo JComments::showComments($id, 'com_joomgallery', $imgtitle); } }else{ $allowcomment=0; } вроде в остальном совпадает с предложенным ChaosDay
|
|
|
|
|
Записан
|
|
|
|
mikenike
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 6
|
 |
« Ответ #7 : 16.02.2009, 17:15:06 » |
|
а что вы в эту функцию передаете-то? туда не текст комментария должен попадать, а объект (с полным набором полей), получаемый, например, из функции getLatestComment...
Я понимаю что объект) но не попадает, думал из-за включенного легаси режима расхождения в конфигурации но вроде нет, объект пустой приходит...
|
|
|
|
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #8 : 16.02.2009, 17:15:24 » |
|
Добавьте проверку что $comment не null, бо потенциально, если комментариев еще не было, из функции getLastComment вернется null.
|
|
|
|
|
Записан
|
|
|
|
|
ChaosDay
|
 |
« Ответ #9 : 22.02.2009, 21:48:42 » |
|
Обновил первый пост: во-первых при придыдущей правке руководства по интеграции забыл убрать строки из joom.viewdetails.php, которые приводят к кривому отображению формы комментирования в ФФ(хотя тогда писал что убрал их  ) - так что настоятельно рекомендую всем перечитать первый пост с исправлениями!!!. Во-вторых(для ленивых  ) обновил UPDATE-архив с готовой интеграцией(т.к. сегодня вышла RC2 версия галереи), ну и обновил демосайт до RC2. ЗЫ: +Просьба к Support Team чуть почистить тему.
|
|
|
|
|
Записан
|
|
|
|
|
marbert
|
 |
« Ответ #10 : 06.03.2009, 23:30:02 » |
|
Обновил первый пост: Во-вторых(для ленивых  ) обновил UPDATE-архив с готовой интеграцией(т.к. сегодня вышла RC2 версия галереи), ну и обновил демосайт до RC2. ChaosDay, пишу сюда, бо smart ответил, что это к тебе, как автору интеграции: - в JoomGallery есть возможность фильтровать фото по " Последним добавленным", " Последним комментированным" и т.п. так вот, " Последние комментированные" - не отслеживает комменты, которые пришли через JComments - показываются лишь те, что были последними ДО интеграции (т.е., комменты еще средствами самой JoomGallery).
|
|
|
|
|
Записан
|
|
|
|
|
ChaosDay
|
 |
« Ответ #11 : 06.03.2009, 23:54:29 » |
|
Я же ещё в ЛС писал, что для JoomGallery 1.0 не сделал сортировку по последним комментам(там чуть другая концепция+не было времени сделать). Полная интеграция пока только для 1.5, так как делал для себя. ЗЫ: Возможно на выходных посмотрю, если свободное время будет.
|
|
|
|
|
Записан
|
|
|
|
|
marbert
|
 |
« Ответ #12 : 07.03.2009, 00:03:21 » |
|
Я же ещё в ЛС писал, что для JoomGallery 1.0 не сделал сортировку по последним комментам(там чуть другая концепция+не было времени сделать). Полная интеграция пока только для 1.5, так как делал для себя. ЗЫ: Возможно на выходных посмотрю, если свободное время будет.
ааа, прости, я запамятовал... дело в том, что я перейду сразу же на 1.5, как только она увидит свет, но когда это случится - учитывая темпы немцев... хм
|
|
|
|
|
Записан
|
|
|
|
crazyASD
JComments Tester
Репутация: +26/-2
Offline
Пол: 
Сообщений: 670
|
 |
« Ответ #13 : 10.03.2009, 01:37:11 » |
|
Спасибки! Все работает как часы!
|
|
|
|
|
Записан
|
|
|
|
|
marbert
|
 |
« Ответ #14 : 10.03.2009, 01:42:40 » |
|
Спасибки! Все работает как часы!
погоди, у тебя работает? а то, о чем я пишу - разве ж только у меня? здесь, моя тема в ветке Сообщения об ошибках - http://joomlaforum.ru/index.php/topic,57041.0.htmlтам перечень ошибок, smart обещал в след. версии исправить.
|
|
|
|
|
Записан
|
|
|
|
Phenom
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 32
|
 |
« Ответ #15 : 18.04.2009, 13:42:34 » |
|
Огромное спасибо ChaosDay и mikenike за проделанную работу. Сделал, как описано выще, очень помог пример от mikenike, почти все работает, не отображаются только смайлы и аватары в "lastcomment". Просьба к mikenike выложить файлы "joom.viewspecial.html.php" и "joom.viewspecial.php" от своей галереи. 
|
|
|
|
|
Записан
|
|
|
|
|
marbert
|
 |
« Ответ #16 : 25.04.2009, 11:30:44 » |
|
Я же ещё в ЛС писал, что для JoomGallery 1.0 не сделал сортировку по последним комментам(там чуть другая концепция+не было времени сделать). Полная интеграция пока только для 1.5, так как делал для себя. ЗЫ: Возможно на выходных посмотрю, если свободное время будет.
несмело спрошу... не появилось ли, часом, время, а?.. )) ну вдруг... 
|
|
|
|
|
Записан
|
|
|
|
|
marbert
|
 |
« Ответ #17 : 25.04.2009, 11:40:42 » |
|
друзья, тема до сих пор актуальна - не отображаются аватарки к старым комментам... JoomGallery 1.0.1
|
|
|
|
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #18 : 25.04.2009, 11:51:29 » |
|
друзья, тема до сих пор актуальна - не отображаются аватарки к старым комментам... JoomGallery 1.0.1
и не будут, пока не выйдет новая версия JComments и вы не повторите импорт...
|
|
|
|
|
Записан
|
|
|
|
|
marbert
|
 |
« Ответ #19 : 25.04.2009, 11:59:01 » |
|
и не будут, пока не выйдет новая версия JComments и вы не повторите импорт...
но у меня последняя (на сегодня) версия JComments v2.0.0.19 или есть еще более... ))
|
|
|
|
|
Записан
|
|
|
|
|
ChaosDay
|
 |
« Ответ #20 : 25.04.2009, 13:30:24 » |
|
"Новая" - это та, которая 2.1(скоро выйдет) 
|
|
|
|
|
Записан
|
|
|
|
|
marbert
|
 |
« Ответ #21 : 25.04.2009, 13:43:03 » |
|
"Новая" - это та, которая 2.1(скоро выйдет)  в таком случае, это благая весть... ждем-с... ))
|
|
|
|
|
Записан
|
|
|
|
crazyASD
JComments Tester
Репутация: +26/-2
Offline
Пол: 
Сообщений: 670
|
 |
« Ответ #22 : 26.04.2009, 13:51:48 » |
|
Встретил глюк. При выводе последних комментариев в модуль, при переходе на некоторые галерея радостно сообщает "Изображение недоступно или удалено администратором", при этом в админке эти сообщения не привязаны совершенно никуда. То есть, некоторые комментарии почему-то не привязываются к картинкам.
|
|
|
|
|
Записан
|
|
|
|
|
ChaosDay
|
 |
« Ответ #23 : 26.04.2009, 14:14:41 » |
|
Чесно говоря сам не сталкивался... Но есть подозрение, что данный баг происходит из-за возможной ошибки в плагине joomgallery для jcomments - вечером гляну, возможно найду причину. ЗЫ: А сайт в онлайне? Если да, то желательно дать ссылку.
|
|
|
|
|
Записан
|
|
|
|
ionafan
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 33
|
 |
« Ответ #24 : 05.05.2009, 10:35:21 » |
|
Всем спасибо за интеграцию... ТО что надо... Появились два вопроса. 1. В JoomGallery вот здесь: Ассистент настроек - > Детальный вид - > Общие установки есть пункт "Показ деталей раскладушкой" и тогда детали фотографии и комментарии том числе приобретают вид разворачивающегося меню (см рис.№1). Очень нужно чтоб комментарии Jcomment тоже прятались в вкладку... Подскажите как это сделать... 2. Как в комментариях добавить функции "Ответить | Ответить с цитатой" см рис.№2 )
|
|
|
|
|
Записан
|
|
|
|
ionafan
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 33
|
 |
« Ответ #25 : 05.05.2009, 10:49:47 » |
|
Простите за поспешность я только что решил второй вопрос..  2. Как в комментариях добавить функции "Ответить | Ответить с цитатой" см рис.№2 )
Банальная не внимательность..  Это в настройках Jcomment -> Настройки -> Вид -> Список комментариев -> Стиль - >"Древовидный" 
|
|
|
|
|
Записан
|
|
|
|
|
ChaosDay
|
 |
« Ответ #26 : 05.05.2009, 15:04:56 » |
|
1. Изначально так и было, но к сожалению такой вариант совсем некорректно отображался в ФФ(видимо конфликт аккордеона галереи и скриптов JC). У меня пока нет времени изучать данную проблему(т.к. вышеописанный вариант полностью устраивает), но если для вас это достаточно важно и есть желание проанализировать конфликт более детально, можете посмотреть такую реализацию: В joom.viewdetails.php просто замените код между: HTML_Joom_Detail::Joom_ShowCommentsHead_HTML(); и HTML_Joom_Detail::Joom_ShowCommentsEnd_HTML(); на вывод JComments, т.е: 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($id, 'com_joomgallery', $imgtitle); } }
|
|
|
|
|
Записан
|
|
|
|
ionafan
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 33
|
 |
« Ответ #27 : 05.05.2009, 17:13:25 » |
|
ChaosDay спасибо за помощь... Там и в правду проблемы. Ну что ж, пока пусть будет так..
|
|
|
|
|
Записан
|
|
|
|
|
marbert
|
 |
« Ответ #28 : 06.05.2009, 09:05:13 » |
|
1. Изначально так и было
а как быть с предыдущими проблемами - до сих пор не работает " Недавно комментированные" (или таки ждем Stable 1.5...  ) и то, что обещал smart подправить - дублирование адреса в уведомлениях на почту о новом комментарии...
|
|
|
|
|
Записан
|
|
|
|
|
ChaosDay
|
 |
« Ответ #29 : 06.05.2009, 13:23:54 » |
|
2 marbert В смысле в интеграции для JoomGallery 1.0.1? Если да, то напомни мне через ЛС ближе к вечеру - я посмотрю.
|
|
|
|
|
Записан
|
|
|
|
|