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

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Component+Ajax+json
« : 18.09.2013, 15:53:18 »
Привет всем. Помогите разобраться в структуре и как что правильно подключить.
У меня есть страница категорий из нее я передаю ID товара
Спойлер
[свернуть]
Почитав про компоненты и AJAX я в контролере добавил  код каторый мне надо для записи в сесию и вывода сообщений .
Спойлер
[свернуть]
и собственно сам скрипт которым я хотел это реализовать.
Спойлер
[свернуть]
Но вот когда я проверяю запрос у фаербаге, то вкладка JSON не появляеться и страница пустая ниче не передаеться.Что я не так делаю ?Куда рыть дальше?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Component+Ajax+json
« Ответ #1 : 18.09.2013, 16:39:43 »
1. Зачем сессию стартовать не понятно, она и так стартуется при инициализации приложения.
2. В конце метода контроллера должен быть die(json_encode($json));
3. Из ссылки убрать '&format=raw'
4. Не надо ни на какие вкладки смотреть, надо смотреть ответ, который приходит на запрос. Вкладка консоль.

*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #2 : 18.09.2013, 17:07:56 »
1. Зачем сессию стартовать не понятно, она и так стартуется при инициализации приложения.
2. В конце метода контроллера должен быть die(json_encode($json));
3. Из ссылки убрать '&format=raw'
4. Не надо ни на какие вкладки смотреть, надо смотреть ответ, который приходит на запрос. Вкладка консоль.


Спасибо.
1.убрал.
2.заменил.
3.Убрал
4.Ответа не было.Поменял конструкцию на такую
Спойлер
[свернуть]
То сечас записывает в сесию переменные.Вопрос как мне вывести сообщения, типа что товар уже добавлен или успешно добавлен?
-----
пытаюсь написать правильные условия .

-------------
спасибо за подсказки.Все кажеться работает.Особо не тестил.но AJAX отправляет сообщения проверок возвращает, в сесию записываться.Вот код.Мб что то Неправильно и надо подредактировать?
Спойлер
[свернуть]
Хочу сразу спросить за такую же реализацию токо в модуле?Как в нем обновить?Там уже сразу будет выводиться сесия.Так как сообщения и проверка берет на себя компонент .Дайте ссылочку полезную)
« Последнее редактирование: 18.09.2013, 18:08:58 от olejenya »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Component+Ajax+json
« Ответ #3 : 18.09.2013, 19:52:07 »
у вас неправильна логика, вы должны отдавать не строку а JSON
например
Код: php
public function add() {
  if ((!in_array($_POST['product_id'], $_SESSION['ids'])) && (count($_SESSION['ids'])<= 3) )
    $this->showJSON(true, 'Tovar bul uspeshno dobavlen');
  } else {
         if (!in_array($_POST['product_id'], $_SESSION['ids'])) {
              $this->showJSON(false,'Limit tovarov dlya sravneniya ravno 4');
            }else {
               $this->showJSON(false, 'Etot tovar bul dobavlen ranie');
            }           
      }
}

public function showJSON($result, $message=''){
echo json_encode(array('result'=>$result, 'message'=>$message));
exit;
}

и JavaScript
Код: javascript
function addToCompare(product_id) { 
$.getJson('index.php?option=com_compare&task=add&product_id=' + product_id, function(json){
if(json.result){
//выполняем что то если действия успешны
}
else{
//выполняем что то если действия неудачны
}
alert(json.message)
});
}
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #4 : 18.09.2013, 22:32:00 »
у вас неправильна логика, вы должны отдавать не строку а JSON
например
Код: php
public function add() {
  if ((!in_array($_POST['product_id'], $_SESSION['ids'])) && (count($_SESSION['ids'])<= 3) )
    $this->showJSON(true, 'Tovar bul uspeshno dobavlen');
  } else {
         if (!in_array($_POST['product_id'], $_SESSION['ids'])) {
              $this->showJSON(false,'Limit tovarov dlya sravneniya ravno 4');
            }else {
               $this->showJSON(false, 'Etot tovar bul dobavlen ranie');
            }           
      }
}

public function showJSON($result, $message=''){
echo json_encode(array('result'=>$result, 'message'=>$message));
exit;
}

и JavaScript
Код: javascript
function addToCompare(product_id) { 
$.getJson('index.php?option=com_compare&task=add&product_id=' + product_id, function(json){
if(json.result){
//выполняем что то если действия успешны
}
else{
//выполняем что то если действия неудачны
}
alert(json.message)
});
}
Спасибо большое.Это как раз то что я и хотел изначально.Но не понимал как джейсон задействовать.Сейчас буду пробовать.И можно сразу вопрос.Если мне кроме меседжа надо вывести например тайтл, как это сделать?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Component+Ajax+json
« Ответ #5 : 18.09.2013, 22:55:45 »
Спасибо большое.Это как раз то что я и хотел изначально.Но не понимал как джейсон задействовать.Сейчас буду пробовать.И можно сразу вопрос.Если мне кроме меседжа надо вывести например тайтл, как это сделать?
всего лишь добавляете новую переменную, например:
Код: php
public function showJSON($result, $message='', $title=''){
echo json_encode(array('result'=>$result, 'message'=>$message, 'title'=>$title));
exit;
}
тоесть по сути вам надо сформировать асоциированный массив который вы прогоните через json_encode b отдадите (просто ради интереса в строке браузера введите
yoursite.com/index.php?option=com_compare&task=add&product_id=1 и посмотрите что там выводит )

а дальше в скрипте $.getJson('index.php?option=com_compare&task=add&product_id=' + product_id, function(json){alert(json.tille})
тоесть json точка и ключ из массива который вы отдали скриптом )
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #6 : 18.09.2013, 22:59:01 »
Спасибо.2 дня гуглил, сегодня решил написать на форуме и вот оно счастье))А то я принимаю HTML, а без json_encode передает весь HTML.Но теперь как бы все ясно, ща буду переписывать и вникать, что бы отложилось в макушке))
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Component+Ajax+json
« Ответ #7 : 18.09.2013, 23:02:15 »
Спасибо.2 дня гуглил, сегодня решил написать на форуме и вот оно счастье))А то я принимаю HTML, а без json_encode передает весь HTML.Но теперь как бы все ясно, ща буду переписывать и вникать, что бы отложилось в макушке))
незачто, вы там про модуль спрашивали выше вроде, так что бы из модуля AJAX послать вам нужно будет к компоненту стучаться (точно так же как и из компонента) либо в плагин!
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #8 : 18.09.2013, 23:23:13 »
незачто, вы там про модуль спрашивали выше вроде, так что бы из модуля AJAX послать вам нужно будет к компоненту стучаться (точно так же как и из компонента) либо в плагин!
Нет мне не из модуля послать.А наобороть в модуль и без перезагрузки обновлять.Если выводить те самые продукты из сесии.
Ваш скрипт показывает ошибку, а мой категорчески не хочет выводить JASON, но в ответах он есть.
Ваша ошибка в скрипте
ypeError: jQuery.getJson is not a function

-------
все работает.Еще раз спасибо.Вопрос.Я теперь  в шаблоне могу из сесии спокойно вытягивать все что мне надо?Это правильно?Тему не закрываю))Еще есть моудль и вывод самого щаблона в котором надо будет удлять из сесии и обновлять или скрывать ID.
« Последнее редактирование: 18.09.2013, 23:35:15 от olejenya »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Component+Ajax+json
« Ответ #9 : 19.09.2013, 00:29:55 »
все работает.Еще раз спасибо.Вопрос.Я теперь  в шаблоне могу из сесии спокойно вытягивать все что мне надо?Это правильно?Тему не закрываю))Еще есть моудль и вывод самого щаблона в котором надо будет удлять из сесии и обновлять или скрывать ID.
Да вы можете вытягивать из сессии данные где вам угодно )
а модуль вам не обязательно же весь обновлять, допустим у вас есть строка в модуле:
<div class="cart-info">В вашей корзине товаров: <strong>10</strong> на сумму <span>2000</span>руб.</div>
никто же вам не мешает в json сформировать данные в виде строки array('message'=>'lala', 'result'=>$result, 'module'=>'<strong>11</strong> на сумму <span>2200</span>руб.')
а дальше как получите данные банально:
$('.cart-info').html(json.module);
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #10 : 20.09.2013, 16:59:54 »
Столкнулся с такой проблемой как вывод картинки в модуль.Притом я пытаюсь передать путь к картинки.Но что то ничего не получается.Помогите пожалуйста))
понял сам свои ошибки))
« Последнее редактирование: 20.09.2013, 18:04:09 от olejenya »
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #11 : 24.09.2013, 23:20:22 »
Привет Istaan .Спасибо за помощь с компонентом и модулем все работает.Теперь вот хочу обратно побаловаться аяксом и решением проблемы как быстрый просмотр.
1.Пытался сделать штатными средствами Joomla.Возвращает в айфрейме и все скрипты почему то перестают работать.В плагинах фенсибокс все тоже.
2.Решил сделать это через компонент.Но мне надо возвращать много инфы и плюс постройка через условия выводы циклы.и как потом все запихнуть в переменную и вывести?Мб это и Неправильно?
Вопрос можно по такой методики как с джейсоном только вывести уже в штмл?
То есть я сделаю разметку, по вывожу все что мне надо и при аяксе возвращаю на страницу категорий этот штмл в виде быстрого просмотра?И сразу вопрос.Как быть со скриптами?Их при аяксе надо как то обновлять?
3.Потом решил попытаться вывести через плагин.Создал поагин, в нем файлик AJAX.В скрипте указал путь  к файлику.Проверил выводит ли штмл.Все вывело.Потом когда попытался через PHP выводить.ТО все пустая страница.Как праильно надо ?Посоветуйте))
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Component+Ajax+json
« Ответ #12 : 25.09.2013, 22:41:12 »
olejenya - создайте отдельную тему, не надо все в одной спрашивать.
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #13 : 25.09.2013, 23:03:39 »
olejenya - создайте отдельную тему, не надо все в одной спрашивать.
Та я уже их по на создавал и нигде ответа нет((Даже у вас на блоге запись сделал))
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Component+Ajax+json
« Ответ #14 : 25.09.2013, 23:11:29 »
Ну значит никто не знает ответа, а кто знает еще не прочитал тему.
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Component+Ajax+json
« Ответ #15 : 03.02.2015, 22:01:52 »
Привет еще раз, появилась проблема с возвратом контента.
В общем думал все работает норм.Но когда в описание вставляешь картинку, то при обработке аяксом, выдает ошибку :
Путь не найден "
и возвращает картинку
<img src="images/joomla_black.gif" alt="" />
Понтяно, что путь не найден из за index.php/en/ , почему обращение идет к картинке вот именно с таким путем??И как сделать правильно и нормально

Код
jQuery.ajax({
url: 'index.php?action=test',
type: 'get',
data: 'product_id=' + product_id,
success: function (data) {
                    jQuery('#quick_view_popup').html(data);
}
сам плагин

public function onAfterRender(){
if (!defined('DS')) define('DS', DIRECTORY_SEPARATOR);

$input = JFactory::getApplication()->input;
if($input->getCmd('action')!== 'test'){
return;
}
$region = $input->getInt('product_id', 0);
if ($region) {
                  код возвращает, вывожу переменуую контента
               }
}

*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Component+Ajax+json
« Ответ #16 : 04.02.2015, 00:34:42 »
<img src="<?php echo JUri::base(); ?>images/joomla_black.gif" alt="" />
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как закрыть страницу сайт/index.php/component/users/?view=registration?

Автор alentero

Ответов: 6
Просмотров: 10756
Последний ответ 07.11.2015, 00:02:16
от Vol^T
Создание поиска c json ответом

Автор OmniWizard

Ответов: 8
Просмотров: 1499
Последний ответ 16.12.2013, 21:09:35
от OmniWizard
Красивая подсказка с помощью hasTip + AJAX

Автор Aeliot

Ответов: 7
Просмотров: 1453
Последний ответ 07.11.2013, 16:43:15
от Aeliot
Использование AJAX в Joomla 2.5/3.0

Автор platonische

Ответов: 2
Просмотров: 5572
Последний ответ 28.05.2013, 01:27:50
от platonische
AJAX и Joomla

Автор skyer

Ответов: 31
Просмотров: 7320
Последний ответ 22.11.2011, 01:08:43
от skyer