Новости 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

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

ZJIbIgeHb

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Доброе время суток, Уважаемые!

Описываю проблему с которой столкнулся. И свято верю избавится с Вашей помощью.  ^-^

Есть как минимум 2 компонента, которые группируют созданные материалы по датам (mod_k2_tools и mod_articlebydates). Удивляет, что компоненты написаны обособленно друг от друга, но болячка одна и та же. А именно: при создании материалов (статей, новостей) с 00-00 часов до 03-00 часов 22 мая (для Москвы) эти материалы добавятся к группе материалов созданных 21 мая (то есть днём ранее). Соответственно я догоняю, что это происходит из-за того, что происходит группировка по датам в базе данных, которые указаны по Гринвичу. Соответственно, надо как-то прибавлять к извлекаемой дате (в моём случае это "publish_up") из базы 3 часа... Все возможные способы, которые подсказывал Google не помогают.

p.s. Ноль в php и mysql, но методом тыка чаще всего достигаю поставленной задачи.

p.p.s Поиск по сайту результатов не дал.

Код хелпера mod_articlebydates

Код: php
<?php
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
 
class ModArticleByDates {
   
       public function getArticles($args){
      $db = &JFactory::getDBO();

      $nullDate = $db->getNullDate();
      $date =& JFactory::getDate();
      $now = $date->toMySQL();

      $category_id = $args['category_id'];
      $no_of_items_select = $args['no_of_items_select'];
      $no_of_chars = $args['no_of_chars'];
      $order_by = $args['order_by'];
 
      $query  = "select cn.id, ca.alias as catalias, cn.alias as conalias, ";
      $query .= "if (length(cn.title)>".$no_of_chars;
      $query .= ",concat(substring(cn.title,1,".$no_of_chars."),'...'), ";
      $query .= "cn.title) as title, ";
      $query .= "publish_up ";
      $query .= "from #__content as cn , ";
      $query .= "#__categories as ca ";
      $query .= "where cn.catid in (".$category_id.")";
      $query .= " and state = 1 and ca.id=cn.catid ";

      $query .= ' and ( publish_up = '.$db->Quote($nullDate).' or publish_up <= '.$db->Quote($now).' )';
      $query .= ' and ( publish_down = '.$db->Quote($nullDate).' or publish_down >= '.$db->Quote($now).' )';
     
      $query .= " order by publish_up ".$order_by;
      $query .= " limit ".$no_of_items_select;
   
      $db->setQuery($query, $limitstart, $count);
      $rows = $db->loadObjectList();
      $items = ($items = $db->loadObjectList())?$items:array();


}
« Последнее редактирование: 23.05.2012, 11:46:19 от ZJIbIgeHb »
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
В Общих настройках сайта на Joomla есть временной пояс сайта (см. закладку Сервер).

Выберите там пояс, у которого еще на 3 часа больше от того, который установлен.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ZJIbIgeHb

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
В Общих настройках сайта на Joomla есть временной пояс сайта (см. закладку Сервер).

Выберите там пояс, у которого еще на 3 часа больше от того, который установлен.
Прошу прощения, а что это поменяет? От этого только изменится дата материала. Допустим было [02:00], а станет [05:00]. Но сам материал останется сгруппирован прошлым днём из базы данных по Гринвичу. Изменения часовых поясов не влияет на механизм группировки материалов.
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Прошу прощения, а что это поменяет? От этого только изменится дата материала. Допустим было [02:00], а станет [05:00]. Но сам материал останется сгруппирован прошлым днём из базы данных по Гринвичу. Изменения часовых поясов не влияет на механизм группировки материалов.
Не помогает? Пробовали "играться" с часовым поясом и смотреть как меняется группировка?
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ZJIbIgeHb

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Да, как и описано выше от установки любых часовых поясов меняется только выводимая дата материала. Группировка производится совершенно другим механизмом, скорее всего описанном в helper.php.

Нужно как-то прибавить к извлекаемому publish_up три часа
« Последнее редактирование: 23.05.2012, 11:46:30 от ZJIbIgeHb »
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Нужно как-то прибавить к извлекаемому publish_up три часа

Было же на 1 скрине максимум 2 часа, сейчас 5. Так? Вы прибавили 3 часа к поясу? Отнимите от того что получилось - 6.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ZJIbIgeHb

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Было же на 1 скрине максимум 2 часа, сейчас 5. Так? Вы прибавили 3 часа к поясу? Отнимите от того что получилось - 6.
Всё это не решение проблемы, а только подстраивание. И подстраивание с плачевными последствиями.
Если мы поставим время -6, проще говоря по Гринвичу, как и в MySQL, то конечно, создастся видимость правильной группировки. Но вылезают куча других проблем: Если я ставлю материал на публикацию в 10:00 утра, то опубликуется он только в 13:00. Теперь что бы материал опубликовался в 10:00 мне придётся ставить начало публикации на 07:00. Но в этом случае в новостной ленте выводится дата как 07:00, хотя новость публикуется в 10:00. И это те проблемы, которые сразу были зафиксированы. Сколько же их вылезет позже из-за установки Гринвичевского времени можно только фантазировать.
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Это было как раз решение проблемы, которую Вы описали: материалы из прошлого дня попадаются в дне сегодняшнем. Каков вопрос, таков и ответ. ;-)

А если копать глубже, значит где-то неверно в этих компонентах определяется время (без учета смещения по настройкам пояса).
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ZJIbIgeHb

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Постарался сразу обозначить, что вижу решение проблемы по части программирования:
Цитировать
Соответственно я догоняю, что это происходит из-за того, что происходит группировка по датам в базе данных, которые указаны по Гринвичу. Соответственно, надо как-то прибавлять к извлекаемой дате (в моём случае это "publish_up") из базы 3 часа...
*

ZJIbIgeHb

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Решение найдено. Как и предполагалось надо было прибавить 3 часа к publish_up. Долго мучался из-за незнания синтаксиса php. Жаль никто не подсказал. Видно настоящих программистов тут не много, ну или просто последние два дня они очень заняты  ;).

в файле tmpl/default.php
Вместо:  
Код: php
$article_date = $item->publish_up;
вставляем:
Код: php
$article_date = date('d.m.Y H:i:s', strtotime($item->publish_up) + 3 * 60 * 60);
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Решение найдено. Видно настоящих программистов тут не много, ну или просто последние два дня они очень заняты  ;).

Это Вы сгоряча написали или правда думаете, что тут дураки сидят, раз Вам не помогли с кодом?
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ZJIbIgeHb

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
ни кого не хотел обидеть. Тем более Вас тёзка.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Гостевая книга Easybook Reloaded RUS

Автор dynamit

Ответов: 122
Просмотров: 73911
Последний ответ 10.01.2022, 08:58:53
от mondee
DropFiles генерирует короткую ссылку на pdf-файл, но н

Автор slepoy

Ответов: 1
Просмотров: 2215
Последний ответ 18.04.2017, 22:56:29
от dmitry_stas
EasyBlog 5.0.44 не добавляется новый пост

Автор Slim

Ответов: 0
Просмотров: 1481
Последний ответ 27.03.2017, 23:03:51
от Slim
Akeeba Backup Core 5.3.1 - сайт не поднимается из бэкапа

Автор Alex GOOD

Ответов: 19
Просмотров: 2252
Последний ответ 22.03.2017, 09:03:50
от flyingspook
Akeeba Backup Pro + облако от mail.ru

Автор Леон

Ответов: 4
Просмотров: 2334
Последний ответ 07.02.2017, 22:59:17
от upxbot