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

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/
*

buto

  • Давно я тут
  • 570
  • 1 / 0
Спасибо.Пробую на локальном сервере, прямо так ввожу localhost/ins...../ym_export.php  выдает ошибку:
This page contains the following errors:
error on line 2 at column 1: Extra content at the end of the document
Below is a rendering of the page up to the first error.
Смотрю файл ym_export.php
Код
<?php
header ("Content-Type:text/xml");
// Пропишите относительный путь к 'configuration.php' (он находится в корне Joomla)
// Например: include '../configuration.php';
include '../configuration.php';
$cfg = new JConfig();
 
//NAME - Короткое название магазина (название, которое выводится в списке найденных на Яндекс.Маркете товаров.
//Не должно содержать более 20 символов). Нельзя использовать слова, не имеющие отношения к
//наименованию магазина ("лучший", "дешевый"), указывать номер телефона и т.п. Название магазина,
//должно совпадать с фактическим названием магазина, которое публикуется на сайте. При несоблюдении
//данного требования наименование может быть изменено Яндексом самостоятельно без уведомления Клиента.
//ВНИМАНИЕ! Обязательно укажите в переменную, по какому пути у Вас расположена главная страница каталога JoomShopping,
//точнее то что идет после адреса самого сайта http://mysite.ru/katalog, в данном случае, нужно указать переменной $js_main_page = "katalog";
$cfg_name = $cfg->fromname;
$js_main_page = "index.php";
Хз, гуглил, перечитывал тему, не знаю в чем то дело.
Версия JS3.12.1 php 5.2 (на локалке Denwer) 
*

nikonor

  • Давно я тут
  • 513
  • 56 / 0
  • Content Grabber
а вы включите отображение ошибок .. скорее всего увидите что то типа
Код
<b>Fatal error</b>:  Class 'PDO' not found in
то есть в этом случае нужно подключить к php PDO модуль

кстати ... у меня вот на хостинге например нет возможности его подключить .. есть ли версия скрипта со старым добрым (не добрым?) mysql_connect ?
*

buto

  • Давно я тут
  • 570
  • 1 / 0
Вообщем пробовал прописать в .htaccess строку
Код
AddType application/x-httpd-php .php .html .phtml .htm .yml
. Залил на хостинг перезалитый файл .htaccess  и теперь при попытке просто зайти на сайт автоматически скачивался файл ym_export.php.
nikonor: "отключить отображение ошибок" через прописывание в .htaccess?
Код
php_value error_reporting 1
подключить к php PDO модуль.Можно подробнее, если не сложно.Что-то типо такого?
Код
  define ( SQLCHARSET, "cp1251" );   //define ( SQLCHARSET, "uft8" );  
    $dbhost = "localhost";  
    $dbname = "dbname";  
    $dbuser = "username";  
    $dbpass = "pawwsord";  
    $db = new PDO ( 'mysql:host=' . $dbhost . ';dbname=' . $dbname, $dbuser, $dbpass );  
    $db->query ( 'SET character_set_connection = ' . SQLCHARSET . ';' );  
    $db->query ( 'SET character_set_client = ' . SQLCHARSET . ';' );  
    $db->query ( 'SET character_set_results = ' . SQLCHARSET . ';' );
« Последнее редактирование: 04.03.2013, 13:30:11 от buto »
*

nikonor

  • Давно я тут
  • 513
  • 56 / 0
  • Content Grabber
Код: php
$extra_info = nomalizeArray($extra_info, 'name');
наверное тут должно быть?
Код: php
$extra_info = normalizeArray($extra_info, 'name');
*

Kadet

  • Захожу иногда
  • 52
  • 0 / 0
Спасибо автору за скрипт!
Однако попробовал поставить на свой сайт - выдаёт ошибку.
На Денвере перечисляет все категории и подкатегории (три уровня подкатегорий, как у яндекса - одежда и обувь), после последней выдаёт ошибку:
Код
Fatal error: Call to a member function fetch() on a non-object in Z:\home\atest\www\ymlexport\export.yml on line 108

Когда пытаюсь проверить файл на хочте через браузер, просто загоняя ссылку на него, типа как на локалке, выдаёт ошибку, что файл не найден.
Проверяю в вебмастере Яндекса выдаёт следующее:
Код
Определена кодировка: utf-8 (строка 0, столбец 0)
Дата из файла: 2013-03-22 23:33 (строка 3, столбец 38)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Unknown element 'br' (строка 325, столбец 4)
Видимо где-то затерялся тег <br/>. Скорее всего где-то с кратких описаниях. А как узнать где именно - ума не приложу...



_____________________________________________________________________________________________________________________________
Одежду обувь купить можно, совесть не купишь.
« Последнее редактирование: 21.06.2013, 09:16:45 от Kadet »
*

neonox

  • Захожу иногда
  • 62
  • 2 / 0
Кто подскажет, в чем проблема?

Яндекс Маркет ругается, на выгруженный файл

Цитировать
Определена кодировка: utf-8 (строка 0, столбец 0)
Дата из файла: 2013-03-23 22:28 (строка 3, столбец 38)
Ошибка: Не указано название категории (строка 18, столбец 43)
Фатальная ошибка: Фид отклонен

Напрямую сайт выгружает данные
Спойлер
[свернуть]
*

ghio

  • Захожу иногда
  • 102
  • 0 / 0
тоже проблема, ям ругается: Определена кодировка: utf-8 (строка 0, столбец 0)
Дата из файла: 2013-03-24 11:37 (строка 3, столбец 38)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Unknown element 'br' (строка 75, столбец 4)

При открытии файла в браузере ответ: This page contains the following errors:

error on line 76 at column 170: Extra content at the end of the document
Below is a rendering of the page up to the first error.
Fatal error: Call to a member function fetch() on a non-object in /var/www/u2327082/public_html/botanmedia.ru/export/ym_export.php on line 112

Подскажите, как исправить?
*

neonox

  • Захожу иногда
  • 62
  • 2 / 0
Никто не подскажет по нашим проблемам?
*

neonox

  • Захожу иногда
  • 62
  • 2 / 0
Да, конечно.

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

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/
У Вас же идет куча категорий без названий:
Код
<category id="20" parentId="9"/>
<category id="21" parentId="9"/>
<category id="22" parentId="9"/>
<category id="23" parentId="9"/>
<category id="24" parentId="9"/>
<category id="25" parentId="9"/>
<category id="26" parentId="6"/>
<category id="27" parentId="6"/>
<category id="28" parentId="6"/>
<category id="29" parentId="6"/>
<category id="30" parentId="6"/>
<category id="31" parentId="6"/>
<category id="32" parentId="6"/>
<category id="33" parentId="14"/>
<category id="34" parentId="14"/>
<category id="35" parentId="14"/>
<category id="36" parentId="14"/>
<category id="37" parentId="14"/>
<category id="38" parentId="14"/>
Видимо, у них пустое name_ru-RU
Чтобы их исключить вместо
Код
// Секция категорий
   echo "<categories>\n";
      $res = $pdo->query("SELECT * FROM $category");
      while ($row_cat= $res->fetch(PDO::FETCH_ASSOC)) {
         $cat_parent_id=$row_cat['category_parent_id'];
         $parent = ($cat_parent_id != 0)? " parentId=\"{$cat_parent_id}\"" : "";
         echo "<category id=\"{$row_cat['category_id']}\"{$parent}>{$row_cat['name_ru-RU']}</category>\n";
      }
сделайте
Код
// Секция категорий
   echo "<categories>\n";
      $res = $pdo->query("SELECT * FROM $category");
      while ($row_cat= $res->fetch(PDO::FETCH_ASSOC)) {
         if($row_cat['name_ru-RU']){
           $cat_parent_id=$row_cat['category_parent_id'];
           $parent = ($cat_parent_id != 0)? " parentId=\"{$cat_parent_id}\"" : "";
           echo "<category id=\"{$row_cat['category_id']}\"{$parent}>{$row_cat['name_ru-RU']}</category>\n";
        }
      }
*

neonox

  • Захожу иногда
  • 62
  • 2 / 0
Теперь вот так

Цитировать
Определена кодировка: utf-8 (строка 0, столбец 0)
Дата из файла: 2013-03-26 16:51 (строка 3, столбец 38)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Expected end of tag 'categories' (строка 955, столбец 3)

И данные выгружаются не в YML формате, вот такое при прямом открытии скрипта:

Цитировать
This page contains the following errors:
error on line 955 at column 8: Opening and ending tag mismatch: categories line 0 and shop
Below is a rendering of the page up to the first error.
« Последнее редактирование: 26.03.2013, 16:57:40 от neonox »
*

neonox

  • Захожу иногда
  • 62
  • 2 / 0
beagler, спасибо огромное! Все работает. Действительно удалил эти строки кода.
*

Kadet

  • Захожу иногда
  • 52
  • 0 / 0
Спасибо, конечно, но мне не помогло...
Вроде бы пустых категорий не делал, хотя у меня всё на русском, а английский вовсе отключён.

Вот ссылка на файл: http://laffka.net/ymlexport/export.yml
Вот скрипт:
Спойлер
[свернуть]
Буду очень благодарен за подсказку в чём дело.
Всё тоже самое:
Цитировать
Определена кодировка: utf-8 (строка 0, столбец 0)
Дата из файла: 2013-03-29 00:43 (строка 3, столбец 38)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Unknown element 'br' (строка 324, столбец 4)



_____________________________________________________________________________________________________________________________
Одежду обувь купить можно, совесть не купишь.
« Последнее редактирование: 21.06.2013, 09:16:31 от Kadet »
*

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/
У Вас вот такая ошибка:
Fatal error: Call to a member function fetch() on a non-object in /home/host1265486/laffka.net/htdocs/www/ymlexport/export.yml on line 119

119 строка - это
Код
while ($row= $res->fetch(PDO::FETCH_ASSOC)) {
Судя по всему у Вас в запрос не попадает ни один товар.
Попробуйте перед 119 строкой написать
Код
echo $query;
и увидите свой запрос - и дальше уже отлаживать его в phpMyAdmin
*

Kadet

  • Захожу иногда
  • 52
  • 0 / 0
Как у вас это получилось увидеть на хосте?
Сколько не пытался у меня ничего не получилось.
Судя по всему у Вас в запрос не попадает ни один товар.
Не пойму почему. Товара вроде много. Должен попадать.

Поставил вот так:
Код
117: 	$product_log = Array();
118: $res = $pdo->query($query);
119: echo $query;
120: while ($row= $res->fetch(PDO::FETCH_ASSOC)) {
Теперь выдаёт так:
Вначале идёт полный перечень всех категорий (большая часть из которых пусты, без товара ещё), а потом:
Код
SELECT jvbqc_jshopping_products.extra_field_1
jvbqc_jshopping_products.extra_field_2
jvbqc_jshopping_products.extra_field_3
jvbqc_jshopping_products.extra_field_4
jvbqc_jshopping_products.extra_field_5
jvbqc_jshopping_products.extra_field_6
jvbqc_jshopping_products.extra_field_7
jvbqc_jshopping_products.extra_field_8
jvbqc_jshopping_products.extra_field_9
jvbqc_jshopping_products.extra_field_10
jvbqc_jshopping_products.extra_field_11
jvbqc_jshopping_products.extra_field_12
jvbqc_jshopping_products.extra_field_13
jvbqc_jshopping_products.extra_field_14
jvbqc_jshopping_products.extra_field_15
jvbqc_jshopping_products.extra_field_16
jvbqc_jshopping_products.extra_field_17
jvbqc_jshopping_products.extra_field_18
jvbqc_jshopping_products.extra_field_19
jvbqc_jshopping_products.extra_field_20
 jvbqc_jshopping_products.product_id
 jvbqc_jshopping_products.`name_ru-RU` as product_name
 jvbqc_jshopping_manufacturers.`name_ru-RU` as mf_name
 jvbqc_jshopping_manufacturers.`manufacturer_id`
 jvbqc_jshopping_products_to_categories.`category_id`
 jvbqc_jshopping_products.`product_price`
 jvbqc_jshopping_products.`product_id` as product_sku
 jvbqc_jshopping_products.`product_quantity`
 jvbqc_jshopping_products.`product_full_image` as product_full_image
 jvbqc_jshopping_products.`short_description_ru-RU` as product_s_desc FROM jvbqc_jshopping_products LEFT JOIN jvbqc_jshopping_products_to_categories ON jvbqc_jshopping_products.product_id = (SELECT jvbqc_jshopping_products_to_categories.product_id FROM jvbqc_jshopping_products_to_categories WHERE jvbqc_jshopping_products_to_categories.product_id = jvbqc_jshopping_products.product_id GROUP BY jvbqc_jshopping_products_to_categories.product_id) LEFT JOIN jvbqc_jshopping_manufacturers ON jvbqc_jshopping_products.product_manufacturer_id = jvbqc_jshopping_manufacturers.manufacturer_id WHERE jvbqc_jshopping_products.product_publish='1' GROUP BY jvbqc_jshopping_products.product_id
Fatal error: Call to a member function fetch() on a non-object in Z:\home\atest\www\ymlexport\export.yml on line 120
Может скрипт начинает выборку с первой по ID категории, а она пока пуста, без товара?
Сейчас попробую в неё какой-нибудь товар поставить.



_____________________________________________________________________________________________________________________________
Одежду обувь купить можно, совесть не купишь.
« Последнее редактирование: 21.06.2013, 09:15:54 от Kadet »
*

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/
да нет, категории не причем - это другой запрос.

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

Kadet

  • Захожу иногда
  • 52
  • 0 / 0
Если бы я ещё что-то соображал в SQL-запросах...  ;D

Попробовал на локалке. Получил ошибку:
Цитировать
#1054 - Unknown column 'jvbqc_jshopping_products.extra_field_11' in 'field list'
(# 1054 - "jvbqc_jshopping_products.extra_field_11" Неизвестный столбец в поле "список")

Действительно, столбца "extra_field_11" почему-то нет...
extra_field_10 - есть
extra_field_12 - есть
и до 21 есть, а - 11-го почему-то нет... :dry:



_____________________________________________________________________________________________________________________________
Одежду обувь купить можно, совесть не купишь.
« Последнее редактирование: 21.06.2013, 09:16:09 от Kadet »
*

ghio

  • Захожу иногда
  • 102
  • 0 / 0
При загрузке в ям ответ: Предупреждение: Кодировка XML не определена (строка 0, столбец 0)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Unknown element 'br' (строка 1, столбец 4)
Сам скрипт:
Спойлер
[свернуть]
*

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/

и до 21 есть, а - 11-го почему-то нет... :dry:


в скрипте вместо
Код
for($i = 1; $i <= $extra_cnt; $i++) {
$extra_select .= "{$tb_product}.extra_field_{$i},";
}
напишите
Код
for($i = 1; $i <= $extra_cnt; $i++) {
            if($i!=11) $extra_select .= "{$tb_product}.extra_field_{$i},";
}
*

Kadet

  • Захожу иногда
  • 52
  • 0 / 0
beagler, может быть начать с того, что у меня Joomla 3.0.3 и Joomshopping 4.0.0
Потому что начал на локалке проверять - сразу нескольких столбцов нет.
extra_field_11 - нет
Потом начало ругаться на отсутствие - product_full_image.

Ага... действительно.
Заменил в запросе - вместо product_full_image - image
И extra_field_11 на extra_field_21

По запросу всё выдало.
В скрипте заменил product_full_image на image, и extra_field_11 на extra_field_21.
На локалке всё прокатило и выдало перечень продуктов.
При проверке на яндексе вновь ошибка:
Цитировать
Определена кодировка: utf-8 (строка 0, столбец 0)
Дата из файла: 2013-03-29 15:23 (строка 3, столбец 38)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: No character data is allowed by content model (строка 350, столбец 1)



_____________________________________________________________________________________________________________________________
Одежду обувь купить можно, совесть не купишь.
« Последнее редактирование: 21.06.2013, 09:15:02 от Kadet »
*

Kadet

  • Захожу иногда
  • 52
  • 0 / 0
в скрипте вместо
Код
for($i = 1; $i <= $extra_cnt; $i++) {
$extra_select .= "{$tb_product}.extra_field_{$i},";
}
напишите
Код
for($i = 1; $i <= $extra_cnt; $i++) {
            if($i!=11) $extra_select .= "{$tb_product}.extra_field_{$i},";
}
Да, спасибо. Сделал так:
Код
for($i = 1; $i <= $extra_cnt+1; $i++) {
if($i!=11) $extra_select .= "{$tb_product}.extra_field_{$i},"; }
}

Потому что так как вы предлагаете столбец 21 не будет участвовать... 11-й пропускается, а количество остаётся прежним... До 20-ти дойдёт и отключится.



_____________________________________________________________________________________________________________________________
Одежду обувь купить можно, совесть не купишь.
« Последнее редактирование: 21.06.2013, 09:15:14 от Kadet »
*

Kadet

  • Захожу иногда
  • 52
  • 0 / 0
ghio чуть выше ответ на этот вопрос уже дан.
Почитайте, пожалуйста.






_____________________________________________________________________________________________________________________________
Одежду обувь купить можно, совесть не купишь.
« Последнее редактирование: 21.06.2013, 09:15:19 от Kadet »
*

Kadet

  • Захожу иногда
  • 52
  • 0 / 0
Дело в том, что у меня товара с таким id нет.
Последний id - 472.
Т.е. - скрипт почему-то выскакивает за пределы существующего товара.
Кстати, когда запускаю по адресу файла в браузере, тоже выдаёт:
Цитировать
Ошибка синтаксического анализа XML: несоответствующий тег. Ожидается: </categories>.
Адрес: http://laffka.net/ymlexport/export.yml
Строка 9071, символ 3:
Т.е. - ожидается конец, а его нет... А на локалке выгружает без ошибок... все товары до последнего.

Кстати, а можно как-нибудь сделать выгрузку в статический файл?
А то, слишком долго формируется динамический файл...
А так и отредактировать в случае чего можно... Да и Яндекс рекомендует...



_____________________________________________________________________________________________________________________________
Одежду обувь купить можно, совесть не купишь.
« Последнее редактирование: 21.06.2013, 09:14:22 от Kadet »
*

Kadet

  • Захожу иногда
  • 52
  • 0 / 0
beagler, огромное спасибо за помощь!
Доковырял таки. Сглотнул Яндекс, сказал - "ОК".





_____________________________________________________________________________________________________________________________
Одежду обувь купить можно, совесть не купишь.
« Последнее редактирование: 21.06.2013, 09:15:25 от Kadet »
*

Kadet

  • Захожу иногда
  • 52
  • 0 / 0
Рано порадовался... :(
XML-файл-то скрипт сделал, но во все характеристики товаров вместо названий этих характеристик вставил их ID. Только там где не множественные списки характеристик, а текстовые поля - даёт само значение характеристики...

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




_____________________________________________________________________________________________________________________________
Одежду обувь купить можно, совесть не купишь.
« Последнее редактирование: 21.06.2013, 09:14:00 от Kadet »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Импорт/экспорт

Автор apirat

Ответов: 903
Просмотров: 200426
Последний ответ 17.06.2022, 21:10:28
от marksetter
Интеграция с Yandex.Market (заказы)

Автор Mikle_Shaman

Ответов: 10
Просмотров: 3137
Последний ответ 27.04.2022, 10:14:17
от Mikle_Shaman
Импорт товаров в Яндекс.Объявления

Автор demll

Ответов: 1
Просмотров: 2961
Последний ответ 04.02.2021, 09:32:19
от khan-alex
Для настройки Яндекс Маркет

Автор stardel

Ответов: 6
Просмотров: 4406
Последний ответ 03.12.2019, 20:00:35
от zikkuratvk
Перенос товаров из магазнина на Joomla 2.5 на Joomla 3.9

Автор dron

Ответов: 3
Просмотров: 3271
Последний ответ 09.04.2019, 14:27:51
от nevigen