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

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1] 2 3 4 5 6   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Плагины для интеграции JComments и JomSocial  (Прочитано 36185 раз)
0 Пользователей и 1 Гость смотрят эту тему.
4.n
Осваиваюсь на форуме
***

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

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


StCrox ™


« : 15.01.2010, 06:06:32 »

После нескольких неудачных попыток, получилось написать плагины для интеграции с Jomsocial !
Тестировалось на версии: 1.5.237
Описание:
В архиве:
  • Плагин добавления комментариев в профиль
    "com_community_p.plugin.php"
  • Плагин добавления комментариев в группу
    "com_community_g.plugin.php"
  • Плагин добавления комментариев в обсуждение, созданное в группе
    "com_community_gd.plugin.php"
  • текстовый файл помощи

Работу плагинов можно увидеть здесь

Скачать

Краткий мануал по установке:
На всякий случай, перед началом внесения, каких либо изменений, сделайте резервное копирование и изучите документацию по созданию плагинов компонента JComments! Дополнительную информацию, по разработке, можно получить из этой статьи:  Создание плагина JComments, для комментирования обсуждений в группах компонента JomSocial.

#####################################################
    ВСЕ ИЗМЕНЕНИЯ ОПИСАННЫЕ НИЖЕ - ДЕЛАЙТЕ НА СВОЙ СТРАХ И РИСК !    
            НЕ ЛЕНИТЕСЬ ДЕЛАТЬ РЕЗЕРВНЫЕ КОПИИ ФАЙЛОВ И БАЗЫ,
                      ПЕРЕД ВНЕСЕНИЕМ ИЗМЕНЕНИЙ В КОД САЙТА !
#####################################################


1. Содержимое архива community_pg.zip, кидаем в папку плагинов компонента JComments, /components/com_jcomments/plugins
2. в шаблоне выбираем места вывода, по логике, вместо вывода сообщений плагина Wall...
Просто удаляем ненужный код и пихаем свой. Надеюсь вы соображаете, что делаете! =)

Все дальнейшие примеры указаны для шаблона по умолчанию:
/components/com_community/templates/default

а) Вывод в профиле:
_____________________________

Открываем файл /components/com_community/templates/default/profile.index.php
Находим:    
Код:
<?php echo $content; ?>
И сразу после него вставляем:
Код:
<!-- JComments ON -->
        <div id="community-profile-comments" class="app-box">
            <div class="app-box-header">
            <div class="app-box-header">            
                <h2 class="app-box-title"><?php echo JText::_('CC PROFILE COMMENTS');?></h2>
                <div class="app-box-menus">
                    <div class="app-box-menu toggle">
                        <a class="app-box-menu-icon" href="javascript: void(0)" onclick="joms.apps.toggle('#community-profile-comments');">
                            <span class="app-box-menu-title"><?php echo JText::_('CC EXPAND');?></span>
                        </a>
                    </div>
                </div>
            </div>                
            </div>  
            <div class="app-box-content">
<?php global $mainframe;
  $comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
  if (file_exists($comments)) {
    require_once($comments);
    echo JComments::showComments($user->id, 'com_community_p', $title);
  }
?>
</div></div>
<!-- JComments END -->

 
Должно получиться красиво =)

Если не проперло, то простенький вариант, как раз для вас:

Код:
<!-- JComments ON -->
<?php global $mainframe;
  $comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
  if (file_exists($comments)) {
    require_once($comments);
    echo JComments::showComments($user->id, 'com_community_p', $title);
  }
?>
<!-- JComments END -->

б) Вывод в группе:
__________________________

Для вывода комментариев в группу, открываем файл:
/components/com_community/templates/default/groups.viewgroup.php
Находим:
Код:
        <!-- Group Walls -->
        <div id="community-group-wall" class="app-box group-wall">
            <div class="app-box-header">
            <div class="app-box-header">            
                <h2 class="app-box-title"><?php echo JText::_('CC WALL');?></h2>
                <div class="app-box-menus">
                    <div class="app-box-menu toggle">
                        <a class="app-box-menu-icon" href="javascript: void(0)" onclick="joms.apps.toggle('#community-group-wall');">
                            <span class="app-box-menu-title"><?php echo JText::_('CC EXPAND');?></span>
                        </a>
                    </div>
                </div>            
            </div>
            </div>            
            <div class="app-box-content">
             <div id="wallForm"><?php echo $wallForm; ?></div>
                <div id="wallContent"><?php echo $wallContent; ?></div>
            </div>
        </div>
        <!-- Group Walls -->

Вместо него, вставляем код, для красивого варианта:

Код:
<!-- JComments ON -->
        <div id="community-group-comments" class="app-box">
            <div class="app-box-header">
            <div class="app-box-header">            
                <h2 class="app-box-title"><?php echo JText::_('CC GROUP COMMENTS');?></h2>
                <div class="app-box-menus">
                    <div class="app-box-menu toggle">
                        <a class="app-box-menu-icon" href="javascript: void(0)" onclick="joms.apps.toggle('#community-group-comments');">
                            <span class="app-box-menu-title"><?php echo JText::_('CC EXPAND');?></span>
                        </a>
                    </div>
                </div>
            </div>                
            </div>  
            <div class="app-box-content">
<?php   global $mainframe;
  $comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
  if (file_exists($comments)) {
    require_once($comments);
    echo JComments::showComments($group->id, 'com_community_g', $title);
  }
?>
</div></div>
 <!-- JComments END -->

Или код, для варианта попроще:

Код:
<!-- JComments ON -->
<?php   global $mainframe;
  $comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
  if (file_exists($comments)) {
    require_once($comments);
    echo JComments::showComments($group->id, 'com_community_g', $title);
  }
?>
<!-- JComments END -->


в) Вывод в обсуждение группы:
______________________________

Для вывода комментариев в обсуждение группы, открываем файл:
/components/com_community/templates/default/groups.viewdiscussion.php

в самом конце файла меняем:
Код:
<div class="app-box">
<div class="ctitle"><span class="createdate"><?php echo JText::_('CC REPLIES'); ?></span></div>
<div>
<div class="wallForm"><?php echo $wallForm; ?></div>
<div id="wallContent"><?php echo $wallContent; ?></div>
</div>
</div>
на
Код:
<div class="app-box">
<!-- JComments ON -->

<?php   global $mainframe;
  $groupid = $group->id;
  $comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
  if (file_exists($comments)) {
    require_once($comments);
    echo JComments::showComments($discussion->id, 'com_community_gd', $title);
  }
?>
<!-- JComments END -->
</div>

Для вывода количества ответов в обсуждении:
____________________________________________

в файле: /components/com_community/templates/default/groups.discussionlist.php

меняем код:
Код:
<?php echo JText::sprintf( (cIsPlural($row->count))? 'CC TOTAL REPLIES MANY' : 'CC TOTAL REPLIES', $row->count); ?>
на
Код:
<!-- JComments count ON -->
<?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_community_gd');
    echo JText::_('CC REPLIES');
    echo $count ? (' '. $count . ' ') : '';
  }
?>

<!-- JComments count END -->

Не забудьте добавить языковой файл JomSocial, значения для:

CC GROUP COMMENTS
CC PROFILE COMMENTS


Более подробная информация, о способах вывода в шаблон и написанию плагинов, доступна на сайте разработчика компонента JComments.


P.S.
Создание плагина добавления комментариев к новостям группы, счел неуместным и лишним!
Кому понадобится, не составит труда, написать самому, примеров достаточно.





« Последнее редактирование: 25.06.2010, 18:16:04 от 4.n » Записан
AlexAl
Давно я тут
****

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

Сообщений: 316



« Ответ #1 : 15.01.2010, 10:51:00 »

Да спсибо вам огромное, тоже наверно сделаю, а на форуме кто то утверждал что это очень сложно.
Записан
slepoy
Завсегдатай
*****

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

Сообщений: 489


Тотальная шизофазия


« Ответ #2 : 15.01.2010, 17:36:38 »

Я правильно понял?
а) Вывод в профиле. Стена пользователя?
б) Вывод в группе. Стена группы?
в) Вывод в обсуждение группы. Ответы в обсуждении группы? При создании обсуждения по-прежнему используется редактор?
т.е. комментирование фото, видео осуществляется без компонента комментариев?
Спасибо за ответы. Скиньте, пожалуйста, в личку ччылку на демо.
Записан
4.n
Осваиваюсь на форуме
***

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

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


StCrox ™


« Ответ #3 : 15.01.2010, 18:33:48 »

Я же писал об этом:
места вывода, по логике, вместо вывода сообщений плагина Wall...
Плагины для фото и видео не писал т.к использую другие компоненты.
Скоро собираюсь пощупать последнюю версию JomSocial и если будет время попробую сделать плагины для добавления комментариев к фотографиям и видео.

 
Записан
Тайная
Захожу иногда
**

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

Пол: Женский
Сообщений: 10



« Ответ #4 : 03.02.2010, 03:00:22 »

А как быть с тем, что не выводятся события на главную, то есть, кто и в какой группе оставил комментарий? И еще, трудности с тем, как оотключить стандартныую форму добавления комментариев в группах
Записан
4.n
Осваиваюсь на форуме
***

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

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


StCrox ™


« Ответ #5 : 07.02.2010, 23:42:21 »

А как быть с тем, что не выводятся события на главную, то есть, кто и в какой группе оставил комментарий?
Воспользоваться стандартным модулем JComments (в настройках вывод только для компонента com_community_g), Смириться или изучать API
И еще, трудности с тем, как оотключить стандартныую форму добавления комментариев в группах
Еще раз прочитайте мануал в этой теме (вывод в группе). Внес изменения, теперь более подробное описание к вашим услугам...
Записан
vdr
Давно я тут
****

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

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


Всё есть в тебе. Реализовывайся.


« Ответ #6 : 11.02.2010, 11:14:13 »

Можно пожалуйста указывать версию JomSocial, а то они патчат постоянно что-то...
Ну и  хотелось бы конечно интеграцию с фото и видео.

Спасибо.
+
Записан
4.n
Осваиваюсь на форуме
***

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

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


StCrox ™


« Ответ #7 : 11.02.2010, 17:24:35 »

Можно пожалуйста указывать версию JomSocial, а то они патчат постоянно что-то...
Ну и  хотелось бы конечно интеграцию с фото и видео.
Версию, на которой собирал, добавил в первый пост.
Ребятки, я PHP не знаю! Попробовал написать плагины к фото и видео, но встрял на проблеме формирования урла.
Разобраться самому, для меня сложновато. Мне обещались помочь, с написанием плагина для фото и видео. Но, как известно, обещанного ...долго ждут. Хотя мне лично уже, это не особо надо, т.к. задействовал другие компоненты.
Smart, хотел добавить эти плагины в некст-релиз компонента, возможно и для фото с видео, кто нить осилит к тому времени... Там делов, всего то, надо знать ПХП и написать пару строк кода... Не плохо было бы иметь полный комплект, уже в инсталяторе компонента.
 Мня сейчас, больше интересует вопрос интеграции JComments и Simgallery. Там, ссылка при перелистывании фото, тоже дублируется и те же самые траблы в итоге. Как подружиться с аяксом пока не разобрался.
Записан
ILexus
Осваиваюсь на форуме
***

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

Сообщений: 39


« Ответ #8 : 18.03.2010, 14:32:59 »

4.n, спасибо за интеграцию, поставил все работает. Только "Настенных сообщений/Комментарии группы" не выводится количество комментариев. Ты забыл указать его в интеграции, просто смотрю на сайте у тебя все нормально выводится.

А как быть с тем, что не выводятся события на главную, то есть, кто и в какой группе оставил комментарий?
Можно воспользоваться плагином:
http://www.joomlatune.com/
Записан
ILexus
Осваиваюсь на форуме
***

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

Сообщений: 39


« Ответ #9 : 18.03.2010, 14:54:55 »

Вообщем сам разобрался.

Для вывода количества комментариев в группе:
Открываем /components/com_community/templates/default/groups.list.php

Находим:
Код:
<?php echo JText::sprintf((cIsPlural($group->wallcount))? 'CC GROUP WALL COUNT MANY' : 'CC GROUP WALL COUNT', $group->wallcount);?>

Вместо него, вставляем код:

Код:
<!-- JComments count ON -->

<?php  global $mainframe;
  $comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
  if (file_exists($comments)) {
    require_once($comments);
    $count = JComments::getCommentsCount($group->id, 'com_community_g');
    echo JText::_('CC GROUP COMMENTS');
    echo $count ? (' '. $count . ' ') : '';
  }
?>

<!-- JComments count END -->

P.S. Теперь осталось только добить интеграцию комментариев к видео и фото
« Последнее редактирование: 18.03.2010, 14:58:35 от ILexus » Записан
ILexus
Осваиваюсь на форуме
***

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

Сообщений: 39


« Ответ #10 : 20.03.2010, 23:00:26 »

Написал плагины для видео и фото. С видео интеграция прошла успешно. А вот с фото возникли проблемы. Дело в том что в социалке просмотр фотографий производится засчет AJAX без перезагрузки страница. Как подружить его с аяксом? Чтобы при просмотре каждой фотографии под каждым photoid грузился нужный $content комментариев. Ничего сложного, просто нужно немного покопаться. Может добьем все таки общими усилиями? Помогите плз Azn
Записан
bzzik
JComments Tester
*

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

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


Contra Gaming Community


« Ответ #11 : 14.04.2010, 10:38:40 »

Да уж, никак ID объекта (в данном случае фотки) не получишь при AJAX подгрузки. Надо очень сильно "вкуривать" в код JomSocial.

P.S.
ILexus - симпотный сайт у Вас.
« Последнее редактирование: 14.04.2010, 10:42:49 от bzzik » Записан
smart
Администратор
*******

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

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


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


« Ответ #12 : 14.04.2010, 11:37:19 »

Ну если научиться получать ID подгруженной фотографии, то комментарии-то показать к ней не проблема, есть метод jcomments.showPage, которым можно подгрузить данные (там простая сигнатура - id оъекта, группа, страница - если дерево, то там 0 передаем).
Записан
bzzik
JComments Tester
*

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

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


Contra Gaming Community


« Ответ #13 : 14.04.2010, 11:45:11 »

Хмм это интересно. ID можно вытащить с URI, так как при листании фоток photoid в URI менятся.

Код:
$photoid = JRequest::getInt('photoid', 'GET')

Как тогда в JComments это реализовать? Я так понял showPage - это нестандартный метод? Azn
Записан
smart
Администратор
*******

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

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


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


« Ответ #14 : 14.04.2010, 14:24:17 »

Как тогда в JComments это реализовать? Я так понял showPage - это нестандартный метод? Azn
В JComments ничего реализовывать не нужно, нужно в JomSocial при листании фотографий, вызывать для фотографии метод jcomments.showPage...
Записан
bzzik
JComments Tester
*

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

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


Contra Gaming Community


« Ответ #15 : 14.04.2010, 14:30:02 »

В JComments ничего реализовывать не нужно, нужно в JomSocial при листании фотографий, вызывать для фотографии метод jcomments.showPage...
Хм, ок. Будем пробовать.
Записан
ILexus
Осваиваюсь на форуме
***

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

Сообщений: 39


« Ответ #16 : 14.04.2010, 16:39:05 »

Раз уж пошла небольшая движуха, выложу интеграцию к видео
Плагин к JComments com_community_v.plugin.php:
Код
<?php
/**
* JComments plugin for JomSocial
*
* @version 2.0
* @package JComments
* @author Sergey M. Litvinov (smart@joomlatune.ru)
* @copyright (C) 2006-2009 by Sergey M. Litvinov (http://www.joomlatune.ru)
* @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
**/

(defined('_VALID_MOS') OR defined('_JEXEC')) or die('Direct Access to this location is not allowed.');
 
class jc_com_community_v extends JCommentsPlugin
{
 
function getObjectTitle($id)
   {
$db = & JCommentsFactory::getDBO();
$db->setQuery( 'SELECT title FROM #__community_videos WHERE id = ' . $id );
return $db->loadResult();
   }
 
function getObjectLink( $id )
{
$_Itemid = JCommentsPlugin::getItemid( 'com_community' );
 
$db = & JCommentsFactory::getDBO();
$db->setQuery( 'SELECT creator FROM #__community_videos WHERE id=' . $id );
$userid = $db->loadResult();
 
$link = JoomlaTuneRoute::_( 'index.php?option=com_community&amp;view=videos&amp;task=video&amp;userid=' .$userid. '&amp;videoid=' . $id .'&amp;Itemid=' . $_Itemid );
return $link;
}
 
function getObjectOwner( $id )
{
$db = & JCommentsFactory::getDBO();
$db->setQuery( 'SELECT creator FROM #__community_videos WHERE id=' . $id );
return $db->loadResult();
}
}
?>
 

Вывод в Jomsocial:

Открыть components/com_community/templates/default/videos.video.php
Найти:
Код
<div class="ctitle"><?php echo JText::_('CC COMMENTS')?></div>
   <div class="video-wall">
<div id="wallForm"><?php echo $wallForm; ?></div>
       <div id="wallContent"><?php echo $wallContent; ?></div>
   </div>

Вместо него, вставить код:

Код
<!-- JComments ON -->
<?php   global $mainframe;
 $comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
 if (file_exists($comments)) {
   require_once($comments);
   echo JComments::showComments($video->id, 'com_community_v', $title);
 }
?>
<!-- JComments END -->


ILexus - симпотный сайт у Вас.
Хм, вроде нигде не афишировал свой сайт, где я так спалился?  Grin
« Последнее редактирование: 28.06.2010, 18:08:38 от ILexus » Записан
bzzik
JComments Tester
*

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

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


Contra Gaming Community


« Ответ #17 : 14.04.2010, 16:52:26 »

Спалился в этой теме Wink Сам ссылку на демо дал :p
Записан
zoor
Осваиваюсь на форуме
***

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

Сообщений: 33


« Ответ #18 : 20.04.2010, 09:03:14 »

Всем привет! Реализовал интеграцию JComments со стандартной фотогаллерей в jomsocial. Мой вариант не претендует на совершенный, но тем не менее могу его опубликовать:

Для начала делаем изменения внутри компонента комментариев, предложенные smart'ом:
Так, по идее достаточно в /components/com_jcomments/js/jcomments-v2.1.js после строчки:
Код
	init: function(oi,og,r){var ua=navigator.userAgent.toLowerCase();this.browser={safari: /webkit/.test(ua),opera: /opera/.test(ua),msie: /msie/.test(ua) && !(/opera/.test(ua)),mozilla: /mozilla/.test(ua) && !(/(compatible|webkit)/.test(ua))};this.oi=oi;this.og=og;this.busy=new JCommentsIndicator();this.requestURI=r;var th=this;jtajax.startLoading=function(){th.busy.show();};jtajax.finishLoading=function(){th.busy.hide();};},
добавить еще одну:
Код
reinit: function(oi,og){this.oi=oi;this.og=og;var foi=this.$('object_id');if(foi){foi.value=oi;};var fog=this.$('object_group');if(fog){fog.value=og;}this.showPage(oi,og,0);},

И для пущей уверенности в /components/com_jcomments/tpl/default/tpl_form.php заменить:
Код
	<input type="hidden" name="object_id" value="<?php echo $object_id; ?>" />
<input type="hidden" name="object_group" value="<?php echo $object_group; ?>" />
на
Код
	<input type="hidden" id="object_id" name="object_id" value="<?php echo $object_id; ?>" />
<input type="hidden" id="object_group" name="object_group" value="<?php echo $object_group; ?>" />


Файл плагина jc_com_community_ph.plugin.php
Код:
<?php
/**
 * JComments plugin for JomSocial
 *
 * @version 2.0
 * @package JComments
 * @author Sergey M. Litvinov (smart@joomlatune.ru)
 * @copyright (C) 2006-2009 by Sergey M. Litvinov (http://www.joomlatune.ru)
 * @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
 **/
(defined('_VALID_MOS') OR defined('_JEXEC')) or die('Direct Access to this location is not allowed.');
 
class jc_com_community_ph extends JCommentsPlugin
{
 
function getObjectTitle($id)
    {
$db = & JCommentsFactory::getDBO();
$db->setQuery( 'SELECT caption FROM #__community_photos WHERE id = ' . $id );
return $db->loadResult();
    }
 
function getObjectLink( $id )
{
$_Itemid = JCommentsPlugin::getItemid( 'com_community' );
 
$db = & JCommentsFactory::getDBO();
$db->setQuery( 'SELECT albumid, creator FROM #__community_photos WHERE id=' . $id );
$array = $db->loadResultArray();
 
$link = JoomlaTuneRoute::_( 'index.php?option=com_community&amp;view=photos&amp;task=photo&amp;userid=' .$array[1]. '&amp;albumid=' . $array[0] .'&amp;Itemid=' . $_Itemid . '#photoid=' . $id);
return $link;
}
 
function getObjectOwner( $id )
{
$db = & JCommentsFactory::getDBO();
$db->setQuery( 'SELECT creator FROM #__community_photos WHERE id=' . $id );
return $db->loadResult();
}
}
?>

Далее идем в components/com_community/templates/default/photos.photo.php:

Меняем строчки
Код:
<div class="photoAction _next" onclick="displayPhoto(nextPhoto());"><img src="" height="50" alt="" /></div>
<div class="photoAction _prev" onclick="displayPhoto(prevPhoto());"><img src="" height="50" alt="" /></div>

на
Код:
<div class="photoAction _next" onclick="displayPhoto(nextPhoto()); jcomments.reinit(urlPhotoId(), 'com_community_ph'); "><img src="" height="50" alt="" /></div>
<div class="photoAction _prev" onclick="displayPhoto(prevPhoto()); jcomments.reinit(urlPhotoId(), 'com_community_ph'); "><img src="" height="50" alt="" /></div>

А эти
Код:
<?php
if( $showWall )
{
?>
<!-- Load walls for this photo -->
<div class="ctitle" id="community-photo-walls-title"><?php echo JText::_('CC COMMENTS');?></div>
<?php
}
?>
<div id="community-photo-walls"></div>
<div id="wallContent"></div>

<script type="text/javascript" language="javascript">
jQuery(document).ready(function(){ initGallery(); });
</script>

на
Код:
<!-- JComments ON -->
<?php   global $mainframe;
 $comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
 if (file_exists($comments)) {
require_once($comments);
echo JComments::showComments($photos[0]->id, 'com_community_ph', $photos[0]->caption);
 }
?>
<!-- JComments END -->
<script type="text/javascript" language="javascript">
jQuery(document).ready(function(){ initGallery(); jcomments.reinit(urlPhotoId(), 'com_community_ph');});
</script>

В первый раз, когда вы только загрузили страницу, подгружаются комментарии первой фотографии в альбоме, но затем с пом. функции jcomments.reinit(); подгружаются комментарии текущей фотографии. При перелистывании фотографии также вызывается эта функция.
« Последнее редактирование: 20.04.2010, 18:24:08 от zoor » Записан
zoor
Осваиваюсь на форуме
***

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

Сообщений: 33


« Ответ #19 : 20.04.2010, 10:11:29 »

Поторопился с ответом.. При листании фотографий лента комментариев обновляется, а форма отправки комментария остается прежней, т.е. к первой фотографии. Надо дальше копать, думаю в сторону функции showForm()
Записан
bzzik
JComments Tester
*

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

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


Contra Gaming Community


« Ответ #20 : 20.04.2010, 11:22:07 »

Цитировать
В первый раз, когда вы только загрузили страницу, подгружаются комментарии несуществующей фотографии с id=0
Тоже не есть хорошо... Может как-то из URI попытаться id вытащить?
Записан
smart
Администратор
*******

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

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


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


« Ответ #21 : 20.04.2010, 12:14:01 »

Поторопился с ответом.. При листании фотографий лента комментариев обновляется, а форма отправки комментария остается прежней, т.е. к первой фотографии. Надо дальше копать, думаю в сторону функции showForm()
Давайте, если нужно, я могу добавить необходимые методы в JavaScript... что-то типа функции reinit, которой будем передавать object_id и object_group, и она будет сама уже вызывать showPage и переинициализировать форму. Я могу сделать такую функцию в течении получаса и дать тестовую версию для проверки.
Записан
zoor
Осваиваюсь на форуме
***

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

Сообщений: 33


« Ответ #22 : 20.04.2010, 16:23:31 »

Цитировать
Давайте, если нужно, я могу добавить необходимые методы в JavaScript... что-то типа функции reinit, которой будем передавать object_id и object_group, и она будет сама уже вызывать showPage и переинициализировать форму. Я могу сделать такую функцию в течении получаса и дать тестовую версию для проверки.
Да, было бы неплохо! Хорошо было бы написать один метод, который сразу переинициализирует и список комментариев и форму.
Записан
smart
Администратор
*******

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

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


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


« Ответ #23 : 20.04.2010, 16:40:04 »

Так, по идее достаточно в /components/com_jcomments/js/jcomments-v2.1.js после строчки:
добавить еще одну:
Код
	init: function(oi,og,r){var ua=navigator.userAgent.toLowerCase();this.browser={safari: /webkit/.test(ua),opera: /opera/.test(ua),msie: /msie/.test(ua) && !(/opera/.test(ua)),mozilla: /mozilla/.test(ua) && !(/(compatible|webkit)/.test(ua))};this.oi=oi;this.og=og;this.busy=new JCommentsIndicator();this.requestURI=r;var th=this;jtajax.startLoading=function(){th.busy.show();};jtajax.finishLoading=function(){th.busy.hide();};},
добавить еще одну:
Код
reinit: function(oi,og){this.oi=oi;this.og=og;var foi=this.$('object_id');if(foi){foi.value=oi;};var fog=this.$('object_group');if(fog){fog.value=og;}this.showPage(oi,og,0);},

И для пущей уверенности в /components/com_jcomments/tpl/default/tpl_form.php заменить:
Код
	<input type="hidden" name="object_id" value="<?php echo $object_id; ?>" />
<input type="hidden" name="object_group" value="<?php echo $object_group; ?>" />
на
Код
	<input type="hidden" id="object_id" name="object_id" value="<?php echo $object_id; ?>" />
<input type="hidden" id="object_group" name="object_group" value="<?php echo $object_group; ?>" />

Ну а дальше просто вызывать jcomments.reinit и два параметра (идентификатор объекта и группа, т.е. в общем случае имя компонента)
Записан
zoor
Осваиваюсь на форуме
***

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

Сообщений: 33


« Ответ #24 : 20.04.2010, 18:25:40 »

Внес изменения в свое предыдущее сообщение http://joomlaforum.ru/index.php/topic,96357.msg610408.html#msg610408
Записан
smart
Администратор
*******

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

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


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


« Ответ #25 : 20.04.2010, 18:34:11 »

Внес изменения в свое предыдущее сообщение
т.е. у вас все получилось? все работает как надо?
Записан
zoor
Осваиваюсь на форуме
***

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

Сообщений: 33


« Ответ #26 : 20.04.2010, 18:35:40 »

т.е. у вас все получилось? все работает как надо?

Да все работает! Спасибо Вам за хороший компонент! Давно им пользуюсь!
Записан
ILexus
Осваиваюсь на форуме
***

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

Сообщений: 39


« Ответ #27 : 20.04.2010, 19:15:41 »

Вау и нашей улице праздник. Все таки общими усилиями провели интеграцию, я очень рад Azn

Спасибо всем  Cheesy

Сейчас проверил интеграцию с фото, все работает.
« Последнее редактирование: 20.04.2010, 19:34:01 от ILexus » Записан
bzzik
JComments Tester
*

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

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


Contra Gaming Community


« Ответ #28 : 20.04.2010, 22:35:20 »

Это просто зачет Azn
Записан
4.n
Осваиваюсь на форуме
***

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

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


StCrox ™


« Ответ #29 : 22.04.2010, 18:35:29 »

Вернулся с отдыха, а тут такое...
Спасибо всем, кто подключился к решению задачи! Сергей, тебе мега-респект!   drink
Записан
Страниц: [1] 2 3 4 5 6   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@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