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

boreus

  • Захожу иногда
  • 51
  • 7 / 0
Есть форма с селектором, в котором список из 70-80 пунктов.
Ссылку на форму сделал модулем(custom html) и вывожу его в каждой статье.
Но, если, предположим человеку понравился товар, он решил купить, тыкает "заказать" и видит огромный список, из которого он опять должен выбирать.
Как сделать чтоб выбирался нужный пункт, в зависимости от статьи с которой он перешел к форме?

Нашел вот такую штуку $_SERVER['HTTP_REFERER'], которая возвращает адрес страницы, с которой посетитель пришёл на данную страницу.
Но не хватает умения применить это.
Посоветуйте, кто знает, куда копать?
« Последнее редактирование: 28.05.2009, 21:43:25 от Forget-me-not »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Если попробовать так:

Код: php
if ($_SERVER['HTTP_REFERER'] == 'адрес страницы')
{
   $selected = 'selected';
}

и в форме делать просто:

Код
<option <?php echo $selected; ?> value="value1">Это мой выбор</option>
*

boreus

  • Захожу иногда
  • 51
  • 7 / 0
А что должно быть в 'адрес страницы'? Адрес какой страницы?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Вот это уже сложнее. То есть мы заранее не знаем, откуда придёт клиент, так? Я пока не вижу, как это сделать... Может где-то в сесии хранится ID товара, который он выбрал и оттуда его можно вытащить?

Это можно проверить - надо вывести массив сессий через print_r($_SESSION) и посмотреть, что в нём хранится.
*

boreus

  • Захожу иногда
  • 51
  • 7 / 0
Да, верно, не знаем. Может чем-то поможет структура списка:

Код
<select>
<option value='Название статьи'>Название статьи</option>
...

Может именно к 'Названию статьи' привязаться?
*

boreus

  • Захожу иногда
  • 51
  • 7 / 0
Вот, что дал print_r($_SESSION):
Цитировать
Array ( [__default] => Array ( [session.counter] => 48 [session.timer.start] => 1243402167 [session.timer.last] => 1243412858 [session.timer.now] => 1243413724 [session.client.browser] => Opera/9.64 (Windows NT 5.1; U; ru) Presto/2.1.1 [registry] => JRegistry Object ( [_defaultNameSpace] => session [_registry] => Array ( [session] => Array ( [data] => stdClass Object ( ) ) ) [_errors] => Array ( ) ) [user] => JUser Object ( [id] => 0 [name] => [username] => [email] => [password] => [password_clear] => [usertype] => [block] => [sendEmail] => 0 [gid] => 0 [registerDate] => [lastvisitDate] => [activation] => [params] => [aid] => 0 [guest] => 1 [_params] => JParameter Object ( [_raw] => [_xml] => [_elements] => Array ( ) [_elementPath] => Array (
  • => /home/name/public_html/libraries/joomla/html/parameter/element ) [_defaultNameSpace] => _default [_registry] => Array ( [_default] => Array ( [data] => stdClass Object ( ) ) ) [_errors] => Array ( ) ) [_errorMsg] => [_errors] => Array ( ) ) [session.token] => b118eb4bdd1a7a8097d871042abfdd0c ) [__eb81adcc4edfeccb1ba0f16dfe1a737f] => Array ( [chrono_verification] => f9825b6855a967b8f365a2315a22a3e7 ) )
Использую chronoforms. Список селектора вывожу запросом к базе jos_content, нужен код запроса?

Кстати стандартный SEO включен, ссылки выводятся в виде:
http://www.site.com/menu-alias1/menu-alias2/articleID-article-alias.html

Может тогда через айди или алиас статьи?

Спасибо что откликнулся.
« Последнее редактирование: 27.05.2009, 13:02:48 от boreus »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Блин, походу в сессии ничего нету... Ты что-то говорил про зависимость от статьи - может по ID статьи можно определить. Хотя нет - нам нужно к товару как-то привязаться.

А можно это вживую глянуть?
*

boreus

  • Захожу иногда
  • 51
  • 7 / 0
Скинул в личку
Попробуй с какой нибудь статьи перейти

А если скажем так делать:
сейчас у меня вывод с запросом выглядит так
Код: php
    $result =  mysql_query("SELECT title, catid FROM jos_content ORDER BY catid ASC");
 while($row = mysql_fetch_array($result))
{
if($row["catid"] == "34")
{
$ar1[] = "<option value='".$row['title']."'>".$row['title']."</option>";
};
...
...
echo '<OPTGROUP label="Nazvanie kategorii №34">Nazvanie kategorii №34</OPTGROUP>';
for ($i = 0; $i <= count($ar1); $i++)
                {echo $ar1[$i];};
...

если выбирать еще и айди материала и вставлять его, скажем в name="" в каждом <option >, а потом сравнивать его с айди, из адреса который возращает нам $_SERVER['HTTP_REFERER'], и если они равны ставить selected="selected"
« Последнее редактирование: 27.05.2009, 13:55:50 от boreus »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
boreus аха, так можно попробовать сделать. ID из URI придётся вытаскивать через регулярное выражение...
*

boreus

  • Захожу иногда
  • 51
  • 7 / 0
Сделал. Работает!
Сейчас распишу...
*

boreus

  • Захожу иногда
  • 51
  • 7 / 0
Итак, вывод селектора со списком статей из определенных(нужных мне) категорий и  автовыбором опшна статьи, с которой перешли к форме:

Цитировать
   <?php
    $db =& JFactory::getDBO();
    //запрос к таблице jos_content, из нее выбираем айди материала, его заголовок и айди категории
    $result =  mysql_query("SELECT id, title, catid FROM jos_content ORDER BY catid ASC");
    //изначальный вид всех ссылок на материалы в моем случае: http://www.site.com/menu-alias1/menu-alias2/articleID(число)-article-alias.html
    //делаем массив из элементов адреса страницы, с которой перешли к форме, используя $_SERVER['HTTP_REFERER']
    //разделитель "/"

    $url_parts = explode('/', $_SERVER['HTTP_REFERER']);
    //берем из полученного массива последний элемент
    $last_segment = array_pop($url_parts);
    //полчается articleID(число)-article-alias.html, в этой строке выбираем цифры(спасибо моему комраду, синтаксис регулярных выражений меня пугает)
    preg_match ("/^(\d)*/", $last_segment, $matches);
    //записываем полученный результат в переменную для дальнейшего использования - это и есть айди статьи, с которой перешли к форме
    $sel_refer = $matches[0];
    ?>
    //формируем селектор
    <SELECT>
    <OPTION value="Выберите нужный">Выберите нужный</OPTION>
    //пока результат запроса возвращает значения делаем...
    <?php while($row = mysql_fetch_array($result))
{
    //если текущий айди, взятый из базы равен айди статьи-реферера, полученному нами выше,
    //присваиваем переменной атрибут "selected", то есть такой опшн будет выбран

                if($row["id"] == $sel_refer) {$sel_optn = "selected='selected'";};
    //тут я фильтрую статьи по категориям
      if($row["catid"] == "34")
      {
    //нужными наполняю массив
      $ar1[] = "<option value='".$row['title']."' ".$sel_optn.">".$row['title']."</option>";
                       };
    //тут еще несколько условий, для остальных категорий
...
...
    //не забываем сбросить переменную с аттрибутами для следующего прогона цикла, иначе "selected" у вас будет все, начиная с нужной статьи
                       unset($sel_optn);
};
    //в принципе все, дальше выводим массивы, набитые нужными значениями и оформляем
    <OPTGROUP label="Название категории №34">Название категории №34</OPTGROUP>
                      for ($i = 0; $i <= count($ar1); $i++)
                           {echo $ar1[$i];};
    //и т.д. для остальных категорий
...
...
?>
</SELECT>
Сорри за оформление, если с подсветкой синтаксиса делать, комменты на русском не отображаются.

Все, работает. Кому надо - пользуйтесь.

ЗЫ:Это решение только для частного случая, когда SEF ссылки имеют вид http://www.site.com/menu-alias1/menu-alias2/articleID(число)-article-alias.html
Для обычных ссылок это, конечно не подойдет.

ЗЫЫ:По-моему вариант не сильно красивый. Было бы намного элегантней передавать айди статьи POSTом. У кого есть соображения, напишите. Можно собрать тут несколько рецептов. Ведь вещь рано или поздно, но нужная всем.
« Последнее редактирование: 27.05.2009, 23:55:15 от boreus »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
boreus я вот подумал, а ведь можно же получить ID используя $_GET массив =) Чё-то мы с тобой про него заыбли совсем. И тогда будет всё равно, какого вида ссылка.

Рад, что всё у тебя получилось ;)
*

boreus

  • Захожу иногда
  • 51
  • 7 / 0
а ведь точно! надо почитать про него поподробнее...
спасибо за участие.
*

boreus

  • Захожу иногда
  • 51
  • 7 / 0
Вот сделал способ получить айди статьи, с которой перешли к форме. он короче и подойдет к любого вида ссылкам(с SEF и без):
в коде кнопки "Заказать"(для вставки пхп можно взять например вот такой экстеншн )
Цитировать
//полчаем айди текущей статьи
$sel_refer = JRequest::getInt('id', 0);
//записываем его в переменную сессии(либо можно передать через POST)
$_SESSION[session.sel_refer] = $sel_refer;
Все.
в самой форме используем этот айди из сессии или POSTa в наших целях как хотим :)
*

ocuba

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Я вижу решение вашей проблемы близко с решением моей задачи. http://joomlaforum.ru/index.php/topic,90383.0.html можете посоветовать, как это можно реализовать?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как в ChronoForms сделать изменение формы в зависимости от выбора?

Автор sashka17

Ответов: 0
Просмотров: 3039
Последний ответ 08.02.2021, 09:33:52
от sashka17
Отправляет письма при каждом обновлении страницы

Автор Igoritaly

Ответов: 4
Просмотров: 1703
Последний ответ 16.03.2017, 18:44:07
от Igoritaly
Как получить URL страницы с помощью PHP ?

Автор Xzizz

Ответов: 10
Просмотров: 2645
Последний ответ 15.08.2016, 14:33:29
от nicalf
Получить содержимое тегов со страницы формы, как ?

Автор Xzizz

Ответов: 0
Просмотров: 1467
Последний ответ 18.01.2016, 16:14:49
от Xzizz
Thanks message без перезагрузки страницы в ChronoForms 5

Автор Shad-777

Ответов: 4
Просмотров: 3624
Последний ответ 21.12.2015, 16:27:25
от Иоланта