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

Doktor

  • Осваиваюсь на форуме
  • 16
  • 1 / 1
Re: Карта сайта и ZOO 2
« Ответ #90 : 10.02.2015, 21:18:22 »
J 3.2.3

что делать?

Быть внимательнее.
Этот плагин только для 2.5
*

liten

  • Осваиваюсь на форуме
  • 34
  • 5 / 0
  • не забываем про + и -
Re: Карта сайта и ZOO 2
« Ответ #91 : 17.09.2015, 15:49:08 »
И так долгая борьба за правду увенчалась успехом....
побеждены следующие баги
components/com_zoo/
http://***.ru/****/category/***
http://***.ru/****/item/***

Сборная солянка из нета. Ошибок пока не выявлено
Joomla! 3.2.3
ZOO  3.1.6
Xmap 2.3.4. (plugin_zoo)

1) Вносим изменения в www /plugins /xmap /com_zoo файл com_zoo.php
Находим код:
Код
// now we print categories
$xmap->changeLevel(1);
foreach($cats as $cat) {
$node = new stdclass;
$node->id   = $parent->id;
$node->uid  = $parent->uid .'c'.$cat->id;
$node->name = $cat->name;
$node->link = 'index.php?option=com_zoo&task=category&category_id='.$cat->id;
$node->priority   = $params['cat_priority'];
$node->changefreq = $params['cat_changefreq'];
$node->expandible = true;
$xmap->printNode($node);
}
Меняем на

Код
// now we print categories
    $xmap->changeLevel(1);
foreach($cats as $cat) {
$node = new stdclass;
$node->id   = $parent->id;
$node->uid  = $parent->uid .'c'.$cat->id;
$node->name = $cat->name;
$node->link = 'index.php?option=com_zoo&task=category&category_id='.$cat->id.'&Itemid='.$parent->id;
$node->priority   = $params['cat_priority'];
$node->changefreq = $params['cat_changefreq'];
$node->expandible = true;
$xmap->printNode($node);

}

Дальше в этом же файле находим

Код
// now we print items
$xmap->changeLevel(1);
foreach($items as $item) {
// if we are making news map, we should ignore items older then 3 days
if ($xmap->isNews && strtotime($item->publish_up) < ($xmap->now - (3 * 86400))) {
                    continue;
                }
$node = new stdclass;
$node->id   = $parent->id;
$node->uid  = $parent->uid .'i'.$item->id;
$node->name = $item->name;

$node->link = 'index.php?option=com_zoo&amp;task=item&amp;item_id='.$item->id;

$node->priority   = $params['item_priority'];
$node->changefreq = $params['item_changefreq'];
$node->expandible = true;
$node->modified = strtotime($item->publish_up);
$node->newsItem = 1; // if we are making news map and it get this far, it's news
$xmap->printNode($node);
}

Меняем на
Код
// now we print items
    $xmap->changeLevel(1);
foreach($items as $item) {
// if we are making news map, we should ignore items older then 3 days
    if ($xmap->isNews && strtotime($item->publish_up) < ($xmap->now - (3 * 86400))) {
                    continue;
                }
$node = new stdclass;
$node->id   = $parent->id;
$node->uid  = $parent->uid .'i'.$item->id;
$node->name = $item->name;

                        $node->link = 'index.php?option=com_zoo&amp;task=item&amp;item_id='.$item->id.'&amp;Itemid='.$parent->id;
                     
$node->priority   = $params['item_priority'];
$node->changefreq = $params['item_changefreq'];
$node->expandible = true;
$node->modified = strtotime($item->publish_up);
$node->newsItem = 1; // if we are making news map and it get this far, it's news
$xmap->printNode($node);


}


Так как могла напутать со скобками и вытащить не весь фрагмент кода, прикладываю полный код из файла com_zoo.php
Можно скопировать в ваш файл полностью заменив весь код

Спойлер
[свернуть]

Это избавляет нас от components/com_zoo/ в XML карте
*

liten

  • Осваиваюсь на форуме
  • 34
  • 5 / 0
  • не забываем про + и -
Re: Карта сайта и ZOO 2
« Ответ #92 : 17.09.2015, 16:17:37 »
Далее идем в /www /components /com_zoo Файл ROUTER.PHP
Избавляемся от
http://***.ru/****/category/***
http://***.ru/****/item/***


Находим

Код
// category
$task = 'category';

if (@$query['task'] == $task || @$query['view'] == $task) {
if (@$query['task'] == $task) {
$segments[] = $task;
}
if (@$query['category_id']) {
$segments[] = $app->alias->category->translateIDToAlias((int) $query['category_id']);
}
unset($query['task'], $query['view'], $query['layout'], $query['category_id']);

// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}

Меняем на
Код
// category
    $task = 'category';
 

if ($query['category_id']) {
$segments[] = $app->alias->category->translateIDToAlias((int) $query['category_id']);
}
unset($query['task']);
unset($query['view']);
unset($query['category_id']);

 
// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}



// alpha index

Находим где то на 100 строке

Код
// item
$task = 'item';

if (@$query['task'] == $task || @$query['view'] == $task) {
if (@$query['task'] == $task && @$query['item_id']) {
$segments[] = $task;
$segments[] = $app->alias->item->translateIDToAlias((int) $query['item_id']);
}
unset($query['task'], $query['view'], $query['layout'], $query['item_id']);
}

Меняем на

Код
	// item
$task = 'item';
    if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['item_id'])) {
    $segments[] = $app->alias->item->translateIDToAlias((int) $query['item_id']);
unset($query['task']);
unset($query['view']);
unset($query['item_id']);
unset($query['category_id']);

}


Опять же могла напутать со скобками поэтому выкладываю весь рабочий код:
Спойлер
[свернуть]
« Последнее редактирование: 17.09.2015, 16:24:25 от liten »
*

Abiladenda

  • Захожу иногда
  • 181
  • 5 / 0
Re: Карта сайта и ZOO 2
« Ответ #93 : 26.09.2015, 21:00:50 »
Спасибо конечно, но все ушло очень далеко вперед, и Joomla и Шаблоны и Xmap уже MapX, советую обновить
Вот что сейчас
Zoo - 3.3.7
Mapx - 3.0 rev 301
Joomla 3.4.4
« Последнее редактирование: 14.10.2015, 20:10:58 от Abiladenda »
*

lav61

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Карта сайта и ZOO 2
« Ответ #94 : 24.05.2016, 12:17:41 »
Подскажите пожалуйста какими модулями, компонентами можно решить задачу создания нормальной карты сайта, Joomla: 3.5.1 JBZoo: 2.2.6 Pro, Zoo: 3.3.15.
Буду признателен за любую помощь, с Zoo раньше не сталкивался, вот и проблемы. Подскажите пожалуйста.
*

newvideo

  • Захожу иногда
  • 194
  • 2 / 0
Re: Карта сайта и ZOO 2
« Ответ #95 : 26.01.2017, 12:15:10 »
подписываюсь на тему: Joomla: 3.6.0 / JBZoo: 2.3.0 Pro / Zoo: 3.3.23 / mapX 3.0

найден плагин Zoo Plugin for Xmap 2.1.1
выбираю в плагине меню№1 с 1 пунктом меню (в Joomla есть также меню№2) - все связаны с Zoo.

выводится карта сайта по 1 пункту меню без дублей, но с подменой категории, пример:

Каталог (настоящий путь: сайт/katalog) (путь в карте: сайт/katalog) - верно, потому что это пункт меню с алиасом и его не обрабатывает плагин.
Категория1 (настоящий путь: сайт/katalog/kategory1) (путь в карте: сайт/novosti/kategory1) - перескочил на другое приложение (app!не на другую папку!) novosti
Категория2 (настоящий путь: сайт/katalog/kategory2) (путь в карте: сайт/novosti/kategory2) - перескочил на другое приложение (app!не на другую папку!) novosti
с материалами ниже также.

Если выключить верхнее меню №2 с Novosti, тогда ссылки в карте поменяются на
http://сайт/component/zoo/kategory1?Itemid=

странно ведь связь с меню1, но почему-то отключенное меню novosti как-то влияет на ссылки карты

в коде (обсуждали выше код старых версий, код тянется с тех времен) есть такая строчка:
Код
				$node->link = 'index.php?option=com_zoo&amp;task=category&amp;category_id='.$cat->id.'&amp;Itemid='.$Itemid;
зачем в пути категории Itemid='? убираем и окончания ссылок карта делает ровными, как должны быть с включенным сео (у меня от JBZoo).
далее сам параметр index.php?option=com_zoo&task=category&category_id=38 если его поместить в браузер с сайтом - ведет на верную ссылку и отображение категории.

В карте происходит подмена приложения, а при выключенном соседнем меню к ссылке вида  .../component/zoo/kategory1
Интересно, что ссылка ведет в правильную категорию, а не выдает ошибку, это уже наверное вопросы к самому роутеру Zoo или JBZoo? Тут внутри ссылки можно написать любое опубликованное приложение, а она всё равно ведет к категории, лишь бы алиас был верным, но всё равно оставлять так нельзя, это ведет к бесконечным дублям для поисковиков, а в случае с картой к несоответствию ссылок и как следствие плохую репутацию для ботов.

в коде остается только функция function _find с непонятным для меня содержанием, где скорее всего эта подмена и происходит, я там жонглировал параметрами, что-то меняется в карте на непонятки.
« Последнее редактирование: 26.01.2017, 13:23:45 от newvideo »
*

newvideo

  • Захожу иногда
  • 194
  • 2 / 0
Re: Карта сайта и ZOO 2
« Ответ #96 : 26.01.2017, 14:34:08 »
функция _find зачем-то прочесывает пункты меню, причем одного в цикле не хватает.
Код
			foreach($menu_items as $menu_item) {
switch (@$menu_item->query['view']) {
case 'frontpage':
/* xmap_com_zoo::$_menu_items['frontpage'][$app->parameter->create($menu_item->params)->get('application')] = $menu_item;*/
break;
case 'category':
xmap_com_zoo::$_menu_items['category'][$app->parameter->create($menu_item->params)->get('category')] = $menu_item;

echo '$menu_item='.$menu_item->id.'<hr>';

break;
case 'item':
/* xmap_com_zoo::$_menu_items['item'][$app->parameter->create($menu_item->params)->get('item_id')] = 516;*/
break;
}
}

выдается результат
$menu_item=489
$menu_item=504
$menu_item=503
$menu_item=514
$menu_item=515
$menu_item=517

515 - это id пункта, который находится в "левое меню" - привязан в настройках компонента.
"верхнее меню" с остальными номерами пунктов мне не нужны пока), но в цикле они находятся. И 516 нет, хотя он включен.

Оказалось $Itemid это пункт меню входа к приложению, но в моем случае он от соседнего пункта. Осталось понять почему он меняется.

Так это я сейчас приду к той правке, которая в коде выше http://joomlaforum.ru/index.php/topic,123887.msg1584861.html#msg1584861 *DRINK*
« Последнее редактирование: 26.01.2017, 15:45:12 от newvideo »
*

newvideo

  • Захожу иногда
  • 194
  • 2 / 0
Re: Карта сайта и ZOO 2
« Ответ #97 : 26.01.2017, 15:48:40 »
всё верно)))) $parent->id в конце указывает связанный пункт меню и формирует правильно путь, осталось протестировать на нескольких пунктах и разной вложенности. Я так пробежался мельком по коду выше и решил, что мне не поможет, так как роутер Zoo я не трогаю у меня Seo JBZoo, но первая часть правки плагина у меня сработала. yes!
*

newvideo

  • Захожу иногда
  • 194
  • 2 / 0
Re: Карта сайта и ZOO 2
« Ответ #98 : 26.01.2017, 15:59:45 »
если привязать все вложенные категории к пунктам меню, то путь в карте работает, только получаются дубли, вход через меню и через путь к каталогу по алиасу, тут поможет только вскрытие
« Последнее редактирование: 26.01.2017, 18:11:41 от newvideo »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Автоматическая публикация при добавлении материалов с фронта сайта?

Автор TMSergey

Ответов: 3
Просмотров: 1726
Последний ответ 28.03.2015, 18:53:58
от Пастор Шлаг
[Элемент] anekdot - 10000 анекдотов для сайта

Автор likrion

Ответов: 4
Просмотров: 977
Последний ответ 16.09.2013, 18:36:57
от likrion
Проблема после переноса сайта на хостинг.

Автор netherlandman

Ответов: 14
Просмотров: 4164
Последний ответ 26.05.2013, 13:11:34
от Тошик
Карта Яндекса элемент для ZOO [Решено]

Автор worstinme

Ответов: 6
Просмотров: 6260
Последний ответ 11.05.2013, 11:03:15
от ost007
Карта Google co всеми обьектами каталога

Автор jan_dax

Ответов: 11
Просмотров: 1769
Последний ответ 15.02.2013, 23:11:21
от worstinme