Новости 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 Гость просматривают эту тему.
  • 105 Ответов
  • 17110 Просмотров
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Очень часто структура магазина выглядит примерно так:

категория_товаров_A
--производитель_A
--производитель_B
категория_товаров_B
--производитель_A
--производитель_С

и тд.. Для создания подобной структуры приходится создавать подкатегории-производителей и аккуратно вбивать каждый товар в обе категории. Это очень неудобно, нелогично, усложняет создание магазина.

Именно для решения этих проблем мною был написан модуль, верней только layout (шаблон вывода) к уже готовому модулю. Он позволяет каждую категорию последнего уровня вложенности разбить на эти самые подкатегории-производители, на основе указанного в товаре значения Производитель (manufacturer). К примеру у нас есть категории:
Цитировать
#  Медиаплееры
# Проекторы

Все наши медиаплееры и проекторы мы желаем разбить на производителей. С помощью этого layout'а генерируется следующее меню:
Цитировать
#  Медиаплеры
    * InFocus
    * JVC

# Проекторы
    * InFocus
    * SONY

Лэйаут создает довольно большую нагрузку на сервер, так как делает в каждой категории по запросу, причем довольно тяжелому. Поэтому я использовал схему кэширования. Чтобы она работала, в общих настройках сайта нужно включить кэширование.

Теперь плохие новости... нам придется (снова?) ковырять VirtueMart, так как при запросе нужной категории да еще и производителя  у него башню сносит. Правки маленькие:
1) Помогаем построить верный запрос. Открываем administrator/components/com_virtuemart/html/shop_browse_queries.php, находим в нем код
Код: php
// Filter Products by Category
if( $category_id ) {
if( !empty( $search_this_category ) && (!empty( $keyword ) || !empty( $manufacturer_id ) )) {
$where_clause[] = "`#__{vm}_product_category_xref`.`category_id`=".$category_id;
} elseif( empty( $keyword ) && empty( $manufacturer_id )) {
$where_clause[] = "`#__{vm}_product_category_xref`.`category_id`=".$category_id;
}
}
и комментируем подстроку && empty( $manufacturer_id ):
Код: php
// Filter Products by Category
if( $category_id ) {
if( !empty( $search_this_category ) && (!empty( $keyword ) || !empty( $manufacturer_id ) )) {
$where_clause[] = "`#__{vm}_product_category_xref`.`category_id`=".$category_id;
} elseif( empty( $keyword ) /*&& empty( $manufacturer_id )*/) {
$where_clause[] = "`#__{vm}_product_category_xref`.`category_id`=".$category_id;
}
}
2) Делаем опознавательный знак что мы фильтруем по производителю. Открываем рядом файл shop.browse.php. Находим
Код: php
	if( $category_id ) {
/**
   * CATEGORY DESCRIPTION
   */
$browsepage_lbl = $category_name;
и добавляем чуть ниже это:
Код: php
		if ($manufacturer_id) {
$db->query( "SELECT manufacturer_id, mf_name, mf_desc FROM #__{vm}_manufacturer WHERE manufacturer_id='$manufacturer_id'");
$db->next_record();
$browsepage_lbl.= ' [ '.shopMakeHtmlSafe( $db->f("mf_name") ).' ] ';
}

Терь зайдя в медиаплееры и выбрав производителя InFocus в заголовке страницы увидем Медиаплееры [ InFocus ]

Сам модуль в соседней теме http://joomlaforum.ru/index.php/topic,109669.msg713262.html#msg713262
Как добавить layout там описано.

UPD: Обновил лэйаут. Добавил еще аккордион.

[вложение удалено Администратором]
« Последнее редактирование: 28.09.2010, 07:28:43 от danik.html »
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Хехе, супер, Даня! Мега произведение искусства выложено, начнёмс тестировать - см сайт http://muzalliance.ru/
Самое главное, что замысел работает - нажимаешь на подкатегорию/производитель и происходит отбор товаров! После включения кеширования запросы к базе на главной странице упали с 51 до 34.

Вот какие траблы:
1) с кешированием какието глобальные проблемы - почемуто при заходе в подкатегорию периодически полностью пропадает текущая страница :) и при возврате - главная страница тоже пропадает :)
2) после удаления базы и при повторном импорте базы через csv improved - исчезли все товары и категории :) они есть только в админке VirtueMart :) через какое-то время опять появились - глюки
3) при выводе 2х одинаковых модулей не работает почему-то по умолчанию стиль  #manufacturers, на который я поменял #accordion
4) меню не сворачивается - нужно чтото делать с таким большим объемом подкатегорий
5) чтото непонятное творится с модулем Новинки - он отсюда http://joomlaforum.ru/index.php/topic,71309.0.html
вобщем новинки исчезли :)
6) возможно ли совместить аккордеон и мануфактурерс? чтобы они открывались аккордеоном?
7) почемуто во втором модуле с отбором по белому списку отображаются подкатегории из первого модуля ))))

Короче, Дэн, см. сайт - давай разбираться с глюками :)
« Последнее редактирование: 21.09.2010, 22:22:52 от mrhuge »
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Настройки кеша стоят такие:
Включить кеширование     Да
Время кеширования    15 мин.
Обработчик кеша    файл
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
1) траблу не наблюдаю
2) если ты не знал - в этом и состоит эффект кэширования - не делать бд-запросы всякий раз, а брать из кэша. Если чтото поменялось - сбрасываем кэш модуля.
3) #manufacturers никто не обещал )
4) да, меню нельзя заставить свернуться.
5) по новинкам не скажу, не могу представить даже в чем дело. включи отображение ошибок максимальное, мож ошибки посыпятся.
6) можно все, при наличии рук и головы...
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Дак кеш модуля нуно включить? и еще см. пункт 7
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
кеш самого модуля не нужно включать если хотим скрипты и подсветку актива.
при двух копиях модуля будут глюки, я знаю. это надо решать...
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Понятно :) ну в общем за плюс отсутствия кучи категорий пока большая плата :) доработка видимо требуется серьезная.

Короче завтра буду более детально тестировать - надо еще понять что там со ссылками с производителями без ЧПУ, какие сейчас дубли, и какие ссылы вообще будут индексироваться поисковиками. Возможно какие-то ссылы прийдется вручную вырезать. И хотелось бы понять что будет с загрузкой через CSV, в каком порядке будут добавляться новые категории и новые производители.

Такто, Дэниел, ты огромную работу провёл. Сама идея реализована - это мега плюс. Теперь надо вылизывать.

Ну и выглядит этот длиннющий список ссылок конечно страшно, надо чтото с ним делать.
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Ну и кстати можешь подробнее расписать в шапке плюсы какие получаем от юзания модуля? Может там ускорение есть какое-то или оптимизация
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
я так думаю нужно закрывать от индексации ссылки вида */manufacturer/*, так как эти ссылки нужны только юзеру для удобства навигации, а для пс они лишние.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Аха, теперь только понять какой код надо указывать в robots.txt.

Disallow: /*/manufacturer/*/

Так что ли?

P.S. С добрым утром ;D
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
В общем надо решить срочно этот вопрос:

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

Если это сделать, можно будет хотя бы начать пользоваться лэйаутом. А потом уже дорабатывать возможности вывода двух модулей и тп

Может можно хотя бы просто класс сделать в CSS такой - который показывается свёрнутым?
« Последнее редактирование: 22.09.2010, 07:49:21 от mrhuge »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
переделал. ща запрашивает сразу всех производителей двумя запросами. да к тому же еще и кэширует результаты этих запросов. так что теперь с копиями модулей проблем нет. и с большой нагрузкой тоже.

[вложение удалено Администратором]
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
О май гад :) уже :)

Слушай ты там на ядерном топливе функционируешь походу  ;D
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Даник отлично! Только слушай что это за глюк - откуда взялась куча одинаковых производителей в одной и той же категории? http://muzalliance.ru/

Похоже что он из каждого товара подхватил производителя и посчитал это отдельным производителем.
« Последнее редактирование: 22.09.2010, 09:02:34 от mrhuge »
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
И еще можно какнить хакнуть VirtueMart, чтобы при показе категории отфильтрованной по производителю, название производителя было не в [] квадратных скобках а просто?
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
я так думаю нужно закрывать от индексации ссылки вида */manufacturer/*, так как эти ссылки нужны только юзеру для удобства навигации, а для пс они лишние.

если закрыть такие ссылки, тогда не будут индексироваться подкатегории/производители с показом товаров им принадлежащих? если да, то это плохо
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
mrhuge, квадратные скобки можешь заменить на что угодно. Про корень ошибки ты прав, позже исправлю. Про индексацию не понял немного... Фактически подпункты-производители это всеголишь фильтрация товаров, не более. для поисковика думаю это не нужно, он увидит все товары по ссылке категории.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
mrhugeФактически подпункты-производители это всеголишь фильтрация товаров, не более. для поисковика думаю это не нужно, он увидит все товары по ссылке категории.

Да, но есть еще один глюк, если я просто нажимаю на категорию, то все товары не помещаются на одну страницу а при нажатии на ссылку "следующая" или показать #50 вылетает такая ошибка:

Not Found
The requested URL /shop/category/2-sintezatori.html&limitstart=0&limit=50 was not found on this server.

Not Found
The requested URL /shop/category/2-sintezatori.html&limit=20&limitstart=20 was not found on this server.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
под идее ссылка должна быть /shop/category/2-sintezatori.html?limit=20&limitstart=20
Полагаю глюк VirtueMart. а с роутером from beagler так же было?
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
У меня на другом сайте работает старый роутер - там всё норамльно:

http://mrhuge.webtm.ru/magazin/category/?limit=20&start=20

теперь поставил старый роутер на сайт - и теже глюки
« Последнее редактирование: 22.09.2010, 10:03:48 от mrhuge »
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Слушай, Дэн, еще один маленький глючок: роутер подхватывает производителей в последовательном порядке и, если в следующей категории те же производители, он их сортирует не в алфавитном порядке, а сначала выводит те, которые подхватил в прошлой категории. В итог получается такой алфавитный хаос:
    *   Alesis
    * Korg
    * Roland
    * Roland
    * Roland
    * Roland
    * Roland
    * Roland
    * Roland
    * Roland
    * Sequential Circuits
    * Waldorf
    * Akai
    * ARP
    * ARP
    * Dave Smith Instruments
    * Dave Smith Instruments
    * Dave Smith Instruments
    * Moog Music
    * Moog Music
    * Moog Music
    * Moog Music
    * Moog Music
    * Oberheim
    * Oberheim
    * Oberheim
    * Oberheim
    * Oberheim
    * Studio Electronics
    * Studio Electronics

Сможешь сделать, чтобы выводилось в алфавитном порядке?


Итого пока 3 непоправленные ошибочки:

1) дубли производителей от каждого товара
2) не переключение страниц вывода товаров
3) алфавитный разнобой

Остальное пока работает хорошо:

1) с кешем проблем вроде нет - просто иногда, чтобы сбросить в общих настройках отключаешь его, потом снова включаешь
2) id производителя сбрасывать научились
3) аккордеон в меню работает
4) несколько модулей работает


Кстати я тут сделал небольшой хак - теперь категория вместе с производителем выводится в title и в заголовке h1: http://muzalliance.ru/shop/category/manufacturer/2-sintezatori/9-roland.html
*

skyscraper

  • Захожу иногда
  • 252
  • 47 / 2
у меня с кешированием неправильно прыгает по товарам, тк некоторые товары относятся к нескольким категориям, человек переключаясь в flypage вправо-влево, постоянно попадает на кешированные страницы в другие категории и начинается путаница... =)
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Молодец, Данил!

При первой возможности отблагодарю за хорошую работу!
В текущей версии ты забыл (скорее по невнимательности) группировать по производителям в запросе, от этого возникают дубли, а так, в целом все нормально работает.
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Дань, слушай, а можно ли как-нибудь сделать такую фишку, что при фильтрации категории по производителю - сверху перед списком товаров выводился логотип и краткое описание производителя. Типа как здесь? http://8not.ru/catalog/keyboard/index.php?cat=1&section=54

Есть мысли как это реализовать возможно? Понятно, что нужно куда-то заносить описание и логотип производителя. Сильно космическое желание?
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Могу подсказать. В админке есть поле описания производителя. остается его только вывести. В том месте где мы в хаке делаем запрос имени производителя (чтобы добавить к заголовку) надо еще добавить в запрос поле mf_desc и отправить в шаблон вирта на вывод. в шабе принять эту переменную и вывести. логотип производителя также засунуть  в его описалово
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

jeka444

  • Захожу иногда
  • 53
  • 1 / 0
а как сделать три столбик как тут на скрине показана а то у меня все вдлину и в один столбик
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
смотря что конкретно нужно. Если нужно просто разбросать все пункты на три колонки то можно и на CSS. Но получится так:
а б в
г д е
ж з и
А если надо так:
a г ж
б д з
в е и
То это сложно, но возможно
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

jeka444

  • Захожу иногда
  • 53
  • 1 / 0
а б в
г д е
ж з и
как сделать
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
а б в
г д е
ж з и
как сделать
Описывалось в теме по самому модулю.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

mrhuge

  • Захожу иногда
  • 222
  • 7 / 0
  • http://muzalliance.ru/
Ох, Даня, слушай дал бы мне пару уроков уже по программированию. С чего начать хоть ;D а то вот вроде всё понимаю что сделать и даже куда вставлять - а тыкаюсь как слепой котенок с этими функциями и переменными.

Короче я понял, что в shop_browse_queries.php в твоём хаке надо:
после
Цитировать
$where_clause[] = "`#__{vm}_product_category_xref`.`category_id`=".$category_id;
добавить что-то типа
Цитировать
$where_clause[] = "`#__{vm}_product_category_xref`.`mf_desc`=".$manufacturer_desc;

в shop.browse.php надо после
Цитировать
$browsepage_lbl.= ' [ '.shopMakeHtmlSafe( $db->f("mf_name") ).' ] ';
добавить что-то типа
Цитировать
такая-то функция = ' [ '.shopMakeHtmlSafe( $db->f("mf_desc") ).' ] ';
так?

Короче поправь меня пожалуйста децл :)

А подскажешь как описание категории тем же макаром присобачить сверху например до описания производителя? Тогда вообще шик будет!
« Последнее редактирование: 27.09.2010, 18:39:03 от mrhuge »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 54534
Последний ответ 05.02.2017, 11:44:02
от Super_Panda
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 28690
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
Модуль Cherry Picker for VirtueMart

Автор flintstone

Ответов: 42
Просмотров: 26837
Последний ответ 04.01.2016, 21:25:50
от gleb22
Добавить модуль в товар

Автор Tokyo

Ответов: 2
Просмотров: 3013
Последний ответ 11.05.2015, 20:43:32
от tierex
Усовершенствованный модуль категорий [Аккордион и прочее - the best ;) ]

Автор danik.html

Ответов: 749
Просмотров: 198347
Последний ответ 24.11.2014, 18:37:11
от slavakh