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

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Есть число с фиксированным набором знаков, необходимое кол-во знаков дописывается нулями в начале перед числом. Число вообще может быть равно 0, в этом случае оно будет выглядеть как '000000000000'. Число храниться в базе как строка и выводится во фронт компонентом. Вывод нужно сделать с форматированием, вставив пробелы в качестве разделителя групп: '000 000 000 000'. Как это можно реализовать быстро? number_format($this->escape($this->item->code), 0, '', ' ') выводит '0'. Имеется ли в php функция, аналогичная number_format, но учитывающая необходимое фиксированное кол-во знаков в результате?
*

icom

  • Давно я тут
  • 830
  • 202 / 4
Re: Форматирование числа в ведущими 0
« Ответ #1 : 07.11.2014, 22:11:34 »
можно так
Код
$code = '000000000000'.$this->item->code;
$code = substr($code, -12);

$res = '';
$g = 0;
for ($i = 0; $i < strlen($code); $i++) {
  if ($g == 3) {
    $res .= ' ';
    $g = 0;
  }

  $g++;
  $res .= $code[$i];
}

echo $res;
« Последнее редактирование: 07.11.2014, 23:58:42 от icom »
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
*

fsv

  • Живу я здесь
  • 2785
  • 413 / 2
Re: Форматирование числа в ведущими 0
« Ответ #3 : 07.11.2014, 23:01:34 »
sprintf / printf / +доработать
Веб-разработка: заказ. Только новая разработка.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Форматирование числа в ведущими 0
« Ответ #4 : 07.11.2014, 23:48:45 »
Велосипед:
Код: php
  /*
   * string форматируемое число
   * int общее кол-во символов
   * int кол-во символов в блоке
  */
  function f_number($num,$rlenght,$rcount) {
    $num = preg_replace("[^0-9]",'',$num);
    if ($rlenght) {
      if (strlen($num) < $rlenght) {
        $num = str_pad($num, $rlenght, '0', STR_PAD_LEFT);
      } else if (strlen($num) > $rlenght) {
        $num = substr($num,0,$rlenght);
      }
    } else {
      $rlenght = strlen($num);
    }

    $result = '';
    while (strlen($num) > $rcount) {
      $result = substr($num,-$rcount).' '.$result;
      $num = substr($num,0,-$rcount);
    }
    if (strlen($num))
      $result = $num.' '.$result;

    return $result;
  }
Работает, меня устраивает. Оптимизация приветствуется.
« Последнее редактирование: 07.11.2014, 23:55:06 от AlekVolsk »
*

icom

  • Давно я тут
  • 830
  • 202 / 4
Re: Форматирование числа в ведущими 0
« Ответ #5 : 08.11.2014, 00:00:14 »
можно так
Код
$code = '000000000000'.$this->item->code;
$code = substr($code, -12);

$res = '';
$g = 0;
for ($i = 0; $i < strlen($code); $i++) {
  if ($g == 3) {
    $res .= ' ';
    $g = 0;
  }

  $g++;
  $res .= $code[$i];
}

echo $res;

а лучше так
Код
echo chunk_split(str_pad($this->item->code, 12, '0', STR_PAD_LEFT), 3, ' ');
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Форматирование числа в ведущими 0
« Ответ #6 : 08.11.2014, 00:09:42 »
Хороший рефакторинг )) но кол-во знаков может быть и не кратным кол-ву знаков в блоке, т.е. не 12 и 3, а 9 и 4, тогда
Код: php
echo chunk_split(str_pad('0', 9, '0', STR_PAD_LEFT), 4, ' ');
вернет '0000 0000 0', а надо '0 0000 0000', т.о. chunk_split() не подходит, ибо разбиение не стой стороны начинает.
*

icom

  • Давно я тут
  • 830
  • 202 / 4
Re: Форматирование числа в ведущими 0
« Ответ #7 : 08.11.2014, 00:26:01 »
Код: php
echo strrev(chunk_split(strrev(str_pad('0', 9, '0', STR_PAD_LEFT)), 4, ' '));
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Форматирование числа в ведущими 0
« Ответ #8 : 08.11.2014, 00:28:15 »
Шиворот-навыворот-задом-наперед )))

Код: php
  function f_number($num,$rlenght,$rcount) {
    return strrev(chunk_split(strrev(str_pad($num, $rlenght, '0', STR_PAD_LEFT)), $rcount, ' '));
  }
Работает, решено.
« Последнее редактирование: 08.11.2014, 00:32:19 от AlekVolsk »
*

icom

  • Давно я тут
  • 830
  • 202 / 4
Re: Форматирование числа в ведущими 0
« Ответ #9 : 08.11.2014, 00:33:38 »
Код: php
function f_number($num,$rlenght,$rcount) {
    return strrev(chunk_split(strrev(str_pad($num, $rlenght, '0', STR_PAD_LEFT)), $rcount, ' '));
}
окончательный вариант)

UPD: а, уже исправил)
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Форматирование числа в ведущими 0
« Ответ #10 : 08.11.2014, 00:41:41 »
Общая длина может быть произвольной, а может и фиксированной, согласно заданным параметрам (используется в компоненте).
Если длина фиксированная, а строка больше заданной длины, сделаем ей обрезание.
А еще бывают случаи, когда строка уже содержит лишние пробелы не в тех местах где нужно (данные импортируются на сайт извне).

Окончательный вариант пока так:
Код: php
  protected function f_number($num,$rlenght,$rcount) {
    $num = preg_replace("[^0-9]",'',$num);
    if ($rlenght) {
      if (strlen($num) > $rlenght)
        $num = substr($num,0,$rlenght);
    } else {
      $rlenght = strlen($num);
    }
    return strrev(chunk_split(strrev(str_pad($num, $rlenght, '0', STR_PAD_LEFT)), $rcount, ' '));
  }
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Форматирование текста. Вопрос связан с MySQL

Автор Аня

Ответов: 6
Просмотров: 1305
Последний ответ 06.05.2018, 00:35:31
от Аня
Сортировка материалов категории, содержащии в названии числа

Автор RezistoR

Ответов: 2
Просмотров: 1097
Последний ответ 15.12.2015, 23:49:36
от robert