Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

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

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
Просмотров: 2585
Последний ответ 28.03.2015, 18:53:58
от Пастор Шлаг
[Элемент] anekdot - 10000 анекдотов для сайта

Автор likrion

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

Автор netherlandman

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

Автор worstinme

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

Автор jan_dax

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