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

romagromov

  • Давно я тут
  • 667
  • 9 / 3
Стоит Jdownloads.
Стоит sh404SEF
Сам компонент имеет ссылку на  закачку - viewdownload/21-category/47-zakachka
Такие же ссылки дает Xmap и модули самого jdownloads

Модуль mod_jcomments_latest дает ссылку на эту же закачку /view.download/47
« Последнее редактирование: 02.09.2013, 22:39:17 от smart »
*

romagromov

  • Давно я тут
  • 667
  • 9 / 3
Перечитал правила.
Поискал еще раз, на форуме подобной проблемы нет.
Joomla 2.5.14
JComments 2.3.0
Jdowloads 1.9.1.3 Stable
sh404SEF4.1.0.1559

PHP 5.3.3-7+squeeze15

При отключенном sh404SEF модуль выдает ссылку на закачу jdownloads в виде

/index.php?option=com_jdownloads&task=view.download&cid=148&Itemid=284

в то время, как сам компонент jdownloads и его модули на эту же закачку дает такую ссылку

/index.php?option=com_jdownloads&Itemid=181&view=viewdownload&catid=32&cid=148


Не знаю, что еще добавить...

*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Хм, нас видимо файлы чуть отличаются, вот содержимое моего:

Код: php
<?php
/**
 * JComments plugin for JDownloads objects support
 *
 * @version 2.3
 * @package JComments
 * @author Sergey M. Litvinov (smart@joomlatune.ru)
 * @copyright (C) 2006-2013 by Sergey M. Litvinov (http://www.joomlatune.ru)
 * @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
 */

defined('_JEXEC') or die;

class jc_com_jdownloads extends JCommentsPlugin
{
function getObjectInfo($id, $language = null)
{
$db = JFactory::getDBO();
$query = "SELECT file_id as id, file_title as title, submitted_by as owner, cat_id"
. " FROM #__jdownloads_files"
. " WHERE file_id = " . $id;
$db->setQuery($query);
$row = $db->loadObject();

$info = new JCommentsObjectInfo();

if (!empty($row)) {
$Itemid = self::getItemid('com_jdownloads');
$Itemid = $Itemid > 0 ? '&amp;Itemid='.$Itemid : '';

$info->category_id = $row->cat_id;
$info->title = $row->title;
$info->userid = $row->owner;
$info->link = JRoute::_('index.php?option=com_jdownloads&amp;view=viewdownload&amp;catid='.$row->cat_id.'&amp;cid='.$id.$Itemid);
}

return $info;
}
}

Ну и строку:
Код: php
$Itemid = self::getItemid('com_jdownloads');
можно попробовать заменить на:
Код: php
			$db->setQuery("SELECT id from #__menu WHERE link = 'index.php?option=com_jdownloads&view=viewcategory&catid=".$row->cat_id."' and published = 1");
$Itemid = $db->loadResult();
if (!$Itemid) {
$Itemid = self::getItemid('com_jdownloads');
}
« Последнее редактирование: 28.08.2013, 00:51:45 от smart »
*

romagromov

  • Давно я тут
  • 667
  • 9 / 3
YES!
Вставил этот код, заработало  :D.

А некорректные ссылки в старых комментариях, которые были сделаны еще до правки кода,
как исправить?
Обновление кеша ничего не дает...
*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Обновление кеша ничего не дает...
Быть такого не может, перестройте кэш объектов в JComments и почистите кэш в Joomla. Да, обратите еще внимание, я помимо свежего кода плагина привел еще одно изменение в предыдущем сообщении.
*

romagromov

  • Давно я тут
  • 667
  • 9 / 3
Клянусь  ^-^, со старых комментариев модуль отдает ссылки типа viewdownload/22/130
с новых комментариев, как положено - viewdownload/22-category/315-zakachka

Кеш чистил везде, даже "прочистил" ссылки sh404SEF

Это

Код
$Itemid = self::getItemid('com_jdownloads');



менял, ничего не дает...
*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Ой, не верю )) Дело в том, что JComments сохраняет ссылки в jos_jcomments_object и при перестройке кэша объектов они просто обязаны обновиться. Кстати, по поводу sh404SEF, я сегодня выпустил JComments 3.0, в дистрибутиве прилагается файл для поддержки sh404SEF (/site/sef_ext/com_jcomments.php) можете взять его из дистрибутива и положить в /components/com_jcomments/sef_ext/com_jcomments.php.
*

romagromov

  • Давно я тут
  • 667
  • 9 / 3
Я подтверждаю, что это так.
Я еще раз все проверил.
Он все так таки пересоздает кеш, но пересоздает со старыми ссылками - /viewdownload/8/

Я специально удалял из базы поле с ссылкой, после пересоздания кеша - старая ссылка становилась  /viewdownload/8/,
а из новых комментариев - как положено viewdownload/21-category/35-zakachka
Мистика...

PS Поставил 3.0 - в jdownloads нет формы комментариев вообще...


PSPS Убрал SEF, обновил кеши
с модуля jcomments

Код
/index.php?option=com_jdownloads&view=viewdownload&catid=21&cid=35&Itemid=284

должно быть

Код
index.php?option=com_jdownloads&Itemid=166&view=viewdownload&catid=21&cid=35
« Последнее редактирование: 28.08.2013, 11:41:53 от romagromov »
*

romagromov

  • Давно я тут
  • 667
  • 9 / 3
Короче говоря, дело в itemid видимо.

Это менять обязательно

Код
$Itemid = self::getItemid('com_jdownloads');

на вот это


Код
$db->setQuery("SELECT id from #__menu WHERE link = 'index.php?option=com_jdownloads&view=viewcategory&catid=".$row->cat_id."' and published = 1");
$Itemid = $db->loadResult();
if (!$Itemid) {
$Itemid = self::getItemid('com_jdownloads');
}


Как вы и говорили собственно.

А вот в строке

Код
$info->link = JRoute::_('index.php?option=com_jdownloads&amp;view=viewdownload&amp;catid='.$row->cat_id.'&amp;cid='.$id.$Itemid);

я заменил вот так

Код
$info->link = JRoute::_('index.php?option=com_jdownloads'.$Itemid.'&amp;view=viewdownload&amp;catid='.$row->cat_id.'&amp;cid='.$id);

Только после этого, кеши стали пересоздаваться как положено, хотя в новых комментариях ссылки были правильные  :o

В итоге, рабочее содержимое файла  com_jdownloads.plugin.php


Код
<?php
/**
 * JComments plugin for JDownloads objects support
 *
 * @version 2.3
 * @package JComments
 * @author Sergey M. Litvinov (smart@joomlatune.ru)
 * @copyright (C) 2006-2013 by Sergey M. Litvinov (http://www.joomlatune.ru)
 * @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
 */
 
defined('_JEXEC') or die;
 
class jc_com_jdownloads extends JCommentsPlugin
{
function getObjectInfo($id, $language = null)
{
$db = JFactory::getDBO();
$query = "SELECT file_id as id, file_title as title, submitted_by as owner, cat_id"
. " FROM #__jdownloads_files"
. " WHERE file_id = " . $id;
$db->setQuery($query);
$row = $db->loadObject();
 
$info = new JCommentsObjectInfo();
 
if (!empty($row)) {


$db->setQuery("SELECT id from #__menu WHERE link = 'index.php?option=com_jdownloads&view=viewcategory&catid=".$row->cat_id."' and published = 1");
$Itemid = $db->loadResult();
if (!$Itemid) {
$Itemid = self::getItemid('com_jdownloads');
}



$Itemid = $Itemid > 0 ? '&amp;Itemid='.$Itemid : '';
 
$info->category_id = $row->cat_id;
$info->title = $row->title;
$info->userid = $row->owner;
$info->link = JRoute::_('index.php?option=com_jdownloads'.$Itemid.'&amp;view=viewdownload&amp;catid='.$row->cat_id.'&amp;cid='.$id);
}
 
return $info;
}
}

Спасибо за помощь.
*

smart

  • Администратор
  • 6485
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Отлично. Я включу эти изменения в ближайшее обновление JComments 3.0 и в готовящееся к выпуск обновление JComments 2.3.1
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Разрешить комментирование гостям

Автор Taatshi

Ответов: 21
Просмотров: 5127
Последний ответ 19.12.2020, 11:54:49
от Nobillis
Уведомления о комментариях JDownloads - неправильные ссылки

Автор Beer

Ответов: 5
Просмотров: 1459
Последний ответ 23.08.2018, 10:45:06
от Beer
[Решено] Не отображаются аватары CommunityBuilder в JComments

Автор Ishti39

Ответов: 10
Просмотров: 1992
Последний ответ 11.07.2017, 19:09:32
от warlocksp
[Решено] Не удаляются комментарии в админке. (Joomla 2.5.28, JComments 3.0.5)

Автор Esken

Ответов: 5
Просмотров: 2278
Последний ответ 08.05.2017, 17:47:54
от Esken
JComments Latest неправильные ссылки на комментарии в К2

Автор Dimon32587

Ответов: 5
Просмотров: 4283
Последний ответ 05.06.2016, 11:29:44
от asterixoder