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

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Интеграция JComments + JoomGallery MVC (1.5.5) BETA  (Прочитано 4186 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ChaosDay
Завсегдатай
*****

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

Сообщений: 536



« : 23.01.2010, 13:43:44 »

По просьбе одного из пользователей форума сделал интеграцию с JoomGallery MVC (1.5.5) BETA(не путать просто с версией 1.5 - это две разные ветки). Тестировалось на JG MVC (1.5.5) BETA/JC 2.1(07/08/2009).

1. В админке выставляем JoomGallery->Configuration Manager->User Access Rights->Comments->Allow Comments->Нет
2. Откройте файл \components\com_joomgallery\views\detail\tmpl\default.php
3. В самом конце файла перед строкой echo $this->loadTemplate('footer'); вставьте следующее:
Код
?>
 <div class="jg_commentsarea">
   <div class="sectiontableheader">
     <h4>
       <?php echo JText::_('JGS_EXISTING_COMMENTS'); ?>&nbsp;
     </h4>
   </div>
   <?php
       $comments = JPATH_SITE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php';
       if (is_file($comments)) {
             require_once($comments);
             echo JComments::showComments($this->image->id, 'com_joomgallery', $this->image->imgtitle);
       }
   ?>
 </div>
<?php

4. Откройте файл \components\com_joomgallery\models\edit.php
5. Найдите и закомментируйте или удалите строки:
Код
//delete the corresponding database entries in comments
$this->_db->setQuery("DELETE
                           FROM
                             "
._JOOM_TABLE_COMMENTS."
                           WHERE
                             cmtpic = "
.$this->_id
                       );
   if(!$this->_db->query())
   {
     JError::raiseWarning(100, JText::sprintf('JGA_COULD_NOT_DELETE_COMMENTS', $this->_id));
   }
6. Вместо или после удалённого куска вставьте:
Код
$jcomments = JPATH_SITE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php';
if (file_exists($jcomments)) {
   require_once($jcomments);
   JComments::deleteComments($this->_id, 'com_joomgallery');
}

7. Откройте файл \components\com_joomgallery\models\category.php
8. Найдите и закомментируйте или удалите строки:
Код
if($this->_config->get('jg_showcatcom'))
   {
     $query .= ",
               ( SELECT
                   COUNT(cmtid)
                 FROM
                   "
._JOOM_TABLE_COMMENTS."
                 WHERE
                          cmtpic = a.id
                   AND published = 1
                   AND approved  = 1
               ) AS comments"
;
   }

9. Откройте файл \components\com_joomgallery\views\category\view.html.php
10. Где-то перед строками:
Код
//additional icons added by plugins
$icons = $this->_mainframe->triggerEvent('onDisplayJoomIcons', array($image));
$images[$key]->icons = implode('', $icons);
...вставьте следующее:
Код
$jcomments = JPATH_SITE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php';
if (is_file($jcomments)) {
require_once($jcomments);
$images[$key]->comments = JComments::getCommentsCount($image->id, 'com_joomgallery');
}

11. Откройте файл \components\com_joomgallery\views\favourites\view.html.php
12. Найдите и закомментируйте или удалите строки:
Код
//TODO
$model = &$this->getModel();
$row->comments = $model->getCommentsNumber($row->id);
13. Вместо или после удалённого куска вставьте:
Код
$jcomments = JPATH_SITE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php';
if (is_file($jcomments)) {
require_once($jcomments);
$row->comments = JComments::getCommentsCount($row->id, 'com_joomgallery');
}

14. Откройте файл \components\com_joomgallery\views\search\view.html.php
15. Найдите и закомментируйте или удалите строки:
Код
//TODO
$model = &$this->getModel();
$rows[$key]->comments = $model->getCommentsNumber($row->id);
16. Вместо или после удалённого куска вставьте:
Код
$jcomments = JPATH_SITE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php';
if (is_file($jcomments)) {
require_once($jcomments);
$rows[$key]->comments = JComments::getCommentsCount($row->id, 'com_joomgallery');
}

17. Откройте файл \components\com_joomgallery\models\toplist.php
18. Найдите и закомментируйте или удалите строки:
Код
$this->_db->setQuery("SELECT
 a.*,
 cc.*,
 ca.*,
 a.owner AS owner
FROM
 "
._JOOM_TABLE_IMAGES." AS a,
 "
._JOOM_TABLE_CATEGORIES." AS ca,
 "
._JOOM_TABLE_COMMENTS." AS cc
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   <= "
.$this->_user->get('aid')."
ORDER BY
 cc.cmtdate DESC
LIMIT "
.$this->_config->get('jg_toplist')
);
19. Вместо или после удалённого куска вставьте:
Код
$this->_db->setQuery("SELECT
 a.*,
 cc.*,
 ca.*,
 a.id AS id,
 a.owner AS owner,
 cc.id AS cmtid
FROM
 "
._JOOM_TABLE_IMAGES." AS a,
 "
._JOOM_TABLE_CATEGORIES." AS ca,
 #__jcomments AS cc
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 <= "
.$this->_user->get('aid')."
AND cc.id = (SELECT MAX(jc.id) FROM #__jcomments AS jc WHERE a.id = jc.object_id)
ORDER BY cc.date DESC
LIMIT "
.$this->_config->get('jg_toplist')
);

20. Откройте файл \components\com_joomgallery\views\toplist\view.html.php
21. Найдите и закомментируйте или удалите строки:
Код
        if($row->userid)
       {
         $rows[$key]->cmtname = JHTML::_('joomgallery.displayname', $row->userid, false);
       }
 
       $cmttext = $row->cmttext;
       $cmttext = JoomHelper::processText($cmttext);
       if($this->_config->get('jg_smiliesupport'))
       {
         $smileys = JoomHelper::getSmileys();
         foreach($smileys as $i => $sm)
         {
           $cmttext = str_replace($i, '<img src="'.$sm.'" border="0" alt="'.$i.'" title="'.$i.'" />', $cmttext);
         }
       }
       $cmttext = stripslashes($cmttext);
 
       $rows[$key]->processed_cmttext = $cmttext;
22. Вместо или после удалённого куска вставьте:
Код
        $jcomments = JPATH_SITE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php';
if (is_file($jcomments)) {
require_once($jcomments);
$rows[$key]->cmtdate = JCommentsText::formatDate($row->date, '%d.%m.%y %H:%M');
 
$cmttext = $row->comment;
$bbcode = & JCommentsFactory::getBBCode();
$smileys = & JCommentsFactory::getSmiles();
       $cmttext = JCommentsText::censor($cmttext);
$cmttext = JCommentsText::cleanText($cmttext);
$cmttext = stripslashes($cmttext);
$cmttext = $bbcode->filter( $cmttext, true );
       if($this->_config->get('jg_smiliesupport'))
       {
         $cmttext = $smileys->replace($cmttext);
       }
       $rows[$key]->processed_cmttext = $cmttext;
       }
23. В том же файле найдите и удалите или закомментируйте строки:
Код
//TODO
$model = &$this->getModel();
$rows[$key]->comments = $model->getCommentsNumber($row->id);
24. Вместо или после удалённого куска вставьте:
Код
$jcomments = JPATH_SITE.DS.'components'.DS.'com_jcomments'.DS.'jcomments.php';
if (is_file($jcomments)) {
require_once($jcomments);
$rows[$key]->comments = JComments::getCommentsCount($row->id, 'com_joomgallery');
}

25. Откройте файл \components\com_joomgallery\views\toplist\tmpl\default.php
26. Вместо строк:
Код
<?php echo JText::sprintf('JGS_WROTE_AT', $row->cmtname, JHTML::_('date', $row->cmtdate, JText::_('DATE_FORMAT_LC1'))); ?>
<?php echo $row->processed_cmttext; ?>&nbsp;
...вставьте следующее:
Код
<?php /* -- hack */echo "<b>".$row->username."</b>&nbsp;&#38;#1085;&#38;#1072;&#38;#1087;&#38;#1080;&#38;#1089;&#38;#1072;&#38;#1083;&#38;#40;&#38;#1072;&#38;#41;:&nbsp;".$row->processed_cmttext."&nbsp;(".$row->cmtdate.")"; ?>

В общем всё(если что забыл пишите).
« Последнее редактирование: 25.01.2010, 16:08:38 от ChaosDay » Записан
Eol
Захожу иногда
**

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

Сообщений: 11


« Ответ #1 : 23.01.2010, 20:31:21 »

Огромное Вам спасибо! Сейчас буду пробовать!

Update.

Сделал, как вы описали, единственная проблема - TOP-листы. Когда пытаюсь зайти в TOP выводится ошибка:

Цитировать
Parse error: syntax error, unexpected $end, expecting T_FUNCTION in ***\components\com_joomgallery\views\toplist\view.html.php on line 213

Если вернуть, в указанном файле, всё, как было, то ошибка "пропадает", но, естественно, количество комментариев JComments не отображается.
« Последнее редактирование: 24.01.2010, 01:11:01 от Eol » Записан
ChaosDay
Завсегдатай
*****

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

Сообщений: 536



« Ответ #2 : 23.01.2010, 23:55:46 »

Вставьте закрывающуюся фигурную скобку после строки $rows[$key]->processed_cmttext = $cmttext; в пункте 22(видимо потерялась при копировании). В первом посте тоже поправил.
Записан
Eol
Захожу иногда
**

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

Сообщений: 11


« Ответ #3 : 24.01.2010, 01:24:08 »

Вставьте закрывающуюся фигурную скобку после строки $rows[$key]->processed_cmttext = $cmttext; в пункте 22(видимо потерялась при копировании). В первом посте тоже поправил.

Спасибо за разъяснение. =)
Записан
qZED
Захожу иногда
**

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

Сообщений: 9


« Ответ #4 : 24.04.2010, 18:34:14 »

Привет автору. Мне интересно для чего там ХАК? У меня вылазят просто набор этих кодов...
О блин... - написал(а)! все понял...
Записан
ChaosDay
Завсегдатай
*****

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

Сообщений: 536



« Ответ #5 : 21.09.2010, 16:55:18 »

P.S. Для интеграции с 1.5.5.х  советую использовать этот модуль и плагин с сайта разработчиков - эффект будет аналогичный(кроме удаления комментов при удалении фотки), но не придется править галерею при каждом обновлении.
Записан
Garum
Завсегдатай
*****

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

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



« Ответ #6 : 23.09.2010, 23:18:13 »

P.S. Для интеграции с 1.5.5.х  советую использовать этот модуль и плагин с сайта разработчиков - эффект будет аналогичный(кроме удаления комментов при удалении фотки), но не придется править галерею при каждом обновлении.
А как его интегрировать с помощью этих плагинов? У меня он не выходит под картинкой. И мне надо, чтобы он появлялся только на странице картинки, а он появляется еще и галерее картинок.
Записан
Denikin
Осваиваюсь на форуме
***

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

Сообщений: 78


Только Учусь)))


« Ответ #7 : 02.11.2010, 23:05:14 »

А как его интегрировать с помощью этих плагинов? У меня он не выходит под картинкой. И мне надо, чтобы он появлялся только на странице картинки, а он появляется еще и галерее картинок.
угу))) как удалить из страницы категорий и фот))) отключение данной опции в плагине не помогает)))
извиняюсь)))) решено, тема http://joomlaforum.ru/index.php/topic,54040.msg688343.html#msg688343
« Последнее редактирование: 02.11.2010, 23:22:13 от Denikin » Записан
sergmuz
Захожу иногда
**

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

Сообщений: 22


« Ответ #8 : 04.11.2010, 22:18:28 »

Вставьте закрывающуюся фигурную скобку после строки $rows[$key]->processed_cmttext = $cmttext; в пункте 22(видимо потерялась при копировании). В первом посте тоже поправил.
P.S. Для интеграции с 1.5.5.х  советую использовать этот модуль и плагин с сайта разработчиков - эффект будет аналогичный(кроме удаления комментов при удалении фотки), но не придется править галерею при каждом обновлении.
Все вроде работает, кроме ссылки на "Последние комментарии", по ссылке http://localhost/index.php?view=toplist&type=lastcommented&option=com_joomgallery&Itemid=89
Выдает такую ошибку: "Fatal error: Class 'JCommentsPluginHelper' not found in Z:\home\localhost\www\components\com_jcomments\jcomments.php on line 1204"
Куда копать ? Подскажите пож-та.
Записан
ChaosDay
Завсегдатай
*****

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

Сообщений: 536



« Ответ #9 : 17.12.2010, 17:59:32 »

sergmuz См. http://joomlaforum.ru/index.php/topic,54040.msg664735.html#msg664735, вроде писал смарту насчет этой ошибки, но видимо ещё не включил в последнее обновление.
Записан
marbert
Завсегдатай
*****

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

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



« Ответ #10 : 25.12.2010, 23:39:15 »

sergmuz См. http://joomlaforum.ru/index.php/topic,54040.msg664735.html#msg664735, вроде писал смарту насчет этой ошибки, но видимо ещё не включил в последнее обновление.

поддерживаю, сегодня обнаружил ту же фигню (Fatal error: Class 'JCommentsPluginHelper' not found in)...

а smart не анонсировал выпуск обновления или, хотя бы, заплатки?
Записан
smart
Администратор
*******

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

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


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


« Ответ #11 : 27.12.2010, 17:27:15 »

а smart не анонсировал выпуск обновления или, хотя бы, заплатки?
Обновления не выпускал, а описание заплатки есть в указанной теме, мне кажется этого достаточно, в следующей версии, это безусловно будет учтено. Новая версия уже на подходе, и отвлекаться на выпуск обновлений я не хочу - исправлено слишком много, и включать в обновление одни исправления и не включать другие - неправильно, а все включить - так мы как раз на новую версию и выйдем.
Записан
Страниц: [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