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

Se2008

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Техническое поражение
« : 09.03.2009, 22:03:08 »
Собственно вопрос...

Как можно добавить результат типа (+/-) и (-/-)?
:) Очень интересный вопрос на мой взгляд
*

Se2008

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Техническое поражение
« Ответ #1 : 11.03.2009, 19:37:27 »
Неужели нет решения по данному вопросу??  >:(
*

deeZ

  • Захожу иногда
  • 464
  • 33 / 0
Re: Техническое поражение
« Ответ #2 : 12.03.2009, 08:49:44 »
А как данный результат учитывать при начислении очков? В футболе, как правило техпоражение 3-0.
*

Se2008

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Техническое поражение
« Ответ #3 : 12.03.2009, 16:49:02 »
Допускается (и во многих федерациях используется. Напр. использовалось во всех лигах Украины до недавнего времени) +/-  - тех. победа/поражение без учета забитых голов. Победившей команде +3 очка.  -/- - поражение обеим командам.

П.С. Даже не знаю где поковырять
*

deeZ

  • Захожу иногда
  • 464
  • 33 / 0
Re: Техническое поражение
« Ответ #4 : 12.03.2009, 17:06:12 »
Ковырять много... Начать с joomleague.php и joomleague.html.php - там выяснить через какую форму резалты заносятся. + добавить условие типа "если + первый, то +3 хозяину, если -, то смотри второе значение" - как-то так ;)
*

Se2008

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Техническое поражение
« Ответ #5 : 13.03.2009, 20:04:17 »
2 deeZ: спасибо.

Покопался немного... Тяжело в чужом коде. Но уж больно компонент хорош.

Может кто сможет/поможет хоть частично решить проблему, за умеренную плату?
Реально горит  :o
*

deeZ

  • Захожу иногда
  • 464
  • 33 / 0
Re: Техническое поражение
« Ответ #6 : 14.03.2009, 17:25:13 »
я в выходные поковыряюсь, если что смогу, отпишусь здесь
*

Se2008

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Техническое поражение
« Ответ #7 : 17.03.2009, 19:59:01 »
2 deeZ: не смотрел?
*

deeZ

  • Захожу иногда
  • 464
  • 33 / 0
Re: Техническое поражение
« Ответ #8 : 18.03.2009, 13:17:28 »
2 deeZ: не смотрел?
Смотрел...но не разобрался пока. Надо как-то включить возможность добавления не цифр. Это где-то в ява скриптах. Не понял пока где
*

Dynamik

  • Захожу иногда
  • 130
  • 7 / 0
  • Пива бы!
Re: Техническое поражение
« Ответ #9 : 18.03.2009, 16:14:34 »
Ребята я в том году как то делал т/п не правя код. На сколько я понял нужно чтобы отражался счет типа 3-0 т/п и очки засчитывались, а голы не считались в турнирной таблице?
*

Se2008

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Техническое поражение
« Ответ #10 : 18.03.2009, 16:52:07 »
Типа того. Результат должен быть как +/- (типа 3:0) или -/- :)
Как то давно делали самописный скрипт. Там попросту делали подмену счету 1:0 (в базу так писалось), а на выводе на самом сайте было +/- или -/-
*

Dynamik

  • Захожу иногда
  • 130
  • 7 / 0
  • Пива бы!
Re: Техническое поражение
« Ответ #11 : 19.03.2009, 10:31:39 »
Да щас глянул в том году я чего то намудрил в попыхах с т/п.
*

Se2008

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Техническое поражение
« Ответ #12 : 04.04.2009, 19:54:24 »
"Не цифры" можно добавлять если поменять тип поля в БД. На как заставить "читать" это скрипт даже не знаю
*

Turban

  • Захожу иногда
  • 115
  • 1 / 2
Re: Техническое поражение
« Ответ #13 : 24.04.2009, 00:35:43 »
У меня такая же проблема,не знаю  как делать
*

dimonji

  • Новичок
  • 9
  • 3 / 0
Re: Техническое поражение
« Ответ #14 : 15.06.2009, 22:43:35 »
Привет всем копателям joomleague! Насчет технических результатов решил следующим способом:
1. В базе данных находим таблицу jos_joomleague_matches, меняем типы полей matchpart1_result и matchpart2_result с значения float на значение varchar(2) ( самый действенный способ менять через phpMyAdmin ).
2. Открываем файл
Код
/administrator/components/com_joomleague/classes/Ranking.class.php
, находим в нем функцию
Код
function collectPoints(& $data, $mode, $match, $shownegpoints) {
и заменяем следующим кодом
Код
function collectPoints(& $data, $mode, $match, $shownegpoints) {  
    $homeId = $match->matchpart1;
    $awayId = $match->matchpart2;
    $decision = $match->decision;
    if ($decision == 0) {
       $home_score=$match->home_score;
       $away_score=$match->away_score;
       $leg1=$match->l1;
       $leg2=$match->l2;
      }
      else {
       $home_score=$match->home_score_decision;
       $away_score=$match->away_score_decision;
       $leg1=$match->l1;
       $leg2=$match->l2;
  }
  if ($mode == 0 || $mode == 1) $home = & $data[$homeId];
  else {
    $home = new stdClass(); //in that case, $data wont be affected
    $this->init_stdclass($home); //and now they are also initialized in php4
    }
    if ($mode == 0 || $mode == 2) $away = & $data[$awayId];
    else {
      $away = new stdClass(); //in that case, $data wont be affected
      $this->init_stdclass($away); //and now they are also initialized in php4
    }
  if (!isset($data[$homeId]->headtohead[$awayId])) {
      $home->headtohead[$awayId]=0;
      $home->headtohead_diff[$awayId]=0;
      $home->headtohead_goal_for[$awayId]=0;
      $home->headtohead_awaygoals[$awayId]=0;
    }
    if (!isset($data[$awayId]->headtohead[$homeId])) {
      $away->headtohead[$homeId]=0;
      $away->headtohead_diff[$homeId]=0;
      $away->headtohead_goal_for[$homeId]=0;
      $away->headtohead_awaygoals[$homeId]=0;
    }
    $home->cnt_matches++;
    $away->cnt_matches++;   
    $resultType = ($this->project->allow_add_time) ? $match->match_result_type : 0;   
    switch($resultType){
      case 1: $arr = explode(",",$this->project->points_after_add_time);break;
      case 2: $arr = explode(",",$this->project->points_after_penalty);break;
      default: $arr = explode(",",$this->project->points_after_regular_time);break;
    }
    $win_points = $arr[0];
    $draw_points = $arr[1];
    $loss_points = $arr[2];
    if ($decision!=1 || ( $decision==1 && (isset($home_score) || isset($away_score)))) {
if ( $home_score == "+" or $home_score == "-" or $away_score == "+" or $away_score == "-") {
if( $home_score == "+" and $away_score == "-" ){
$home->cnt_won++;
        $home->cnt_won_home++;
        $home->sum_points += $win_points; //home_score can't be null...
        $away->cnt_lost++;
        $away->sum_points += ( $decision == 0 || isset($away_score) ? $loss_points : 0);
    if ( $shownegpoints==1) {
    $home->neg_points += $loss_points;
    $away->neg_points += ( $decision == 0 || isset($away_score) ? $win_points : 0);
    }
    $home->headtohead[$awayId]++;
    $away->headtohead[$homeId]--;
      }
else if ( $home_score == "-" and $away_score == "-" ){
$home->cnt_lost++;
$home->cnt_lost_home++;
$home->sum_points += ( $decision == 0 || isset($home_score) ? $loss_points : 0);
$away->cnt_lost++;
        $away->sum_points += ( $decision == 0 || isset($away_score) ? $loss_points : 0);
if ($shownegpoints==1) {
$home->neg_points += ( $decision == 0 || isset($home_score) ? $win_points : 0);
$away->neg_points += ( $decision == 0 || isset($away_score) ? $win_points : 0);
}
$away->headtohead[$homeId]--;
$home->headtohead[$awayId]--;
}
else if ( $home_score == "-" and $away_score == "+"){
$home->cnt_lost++;
    $home->cnt_lost_home++;
    $home->sum_points += ( $decision == 0 || isset($home_score) ? $loss_points : 0);
    $away->cnt_won++;
    $away->sum_points += $win_points;
        if ( $shownegpoints==1) {
          $home->neg_points += ( $decision == 0 || isset($home_score) ? $win_points : 0);
          $away->neg_points += $loss_points;
        }
    $home->headtohead[$awayId]--;
    $away->headtohead[$homeId]++;
}
} else {
if( $home_score > $away_score ){
$home->cnt_won++;
        $home->cnt_won_home++;
        $home->sum_points += $win_points; //home_score can't be null...
        $away->cnt_lost++;
        $away->sum_points += ( $decision == 0 || isset($away_score) ? $loss_points : 0);
      if ( $shownegpoints==1) {
        $home->neg_points += $loss_points;
        $away->neg_points += ( $decision == 0 || isset($away_score) ? $win_points : 0);
      }
    $home->headtohead[$awayId]++;
    $away->headtohead[$homeId]--;
      }
else if ( $home_score == $away_score ){
      $home->cnt_draw++;
      $home->cnt_draw_home++;
      $home->sum_points += ( $decision == 0 || isset($home_score) ? $draw_points : 0);
      $away->cnt_draw++;
      $away->sum_points += ( $decision == 0 || isset($away_score) ? $draw_points : 0);
      if ($shownegpoints==1) {
        $home->neg_points += ( $decision == 0 || isset($home_score) ? $draw_points : 0);
        $away->neg_points += ( $decision == 0 || isset($away_score) ? $draw_points : 0);
      }
    }
else if ( $home_score < $away_score){
$home->cnt_lost++;
    $home->cnt_lost_home++;
    $home->sum_points += ( $decision == 0 || isset($home_score) ? $loss_points : 0);
    $away->cnt_won++;
    $away->sum_points += $win_points;
        if ( $shownegpoints==1) {
          $home->neg_points += ( $decision == 0 || isset($home_score) ? $win_points : 0);
          $away->neg_points += $loss_points;
        }
    $home->headtohead[$awayId]--;
    $away->headtohead[$homeId]++;
}
}
    /* bonus points */
    $home->sum_points += $match->home_bonus;
    $home->bonus_points += $match->home_bonus;
    $away->sum_points += $match->away_bonus;
    $away->bonus_points += $match->away_bonus;
    /* goals for/against/diff */
      $home->sum_matchpart1_result += $home_score;
      $home->sum_matchpart2_result += $away_score;   
      $home->diff_matchpart_results= $home->sum_matchpart1_result - $home->sum_matchpart2_result;
      $home->sum_matchpart1_legs += $leg1;
      $home->sum_matchpart2_legs += $leg2;   
      $home->diff_matchpart_legs= $home->sum_matchpart1_legs - $home->sum_matchpart2_legs;
      $away->sum_matchpart1_result += $away_score;
      $away->sum_matchpart2_result += $home_score;   
      $away->diff_matchpart_results= $away->sum_matchpart1_result - $away->sum_matchpart2_result;
      $away->sum_matchpart1_legs += $leg2;
      $away->sum_matchpart2_legs += $leg1;   
      $away->diff_matchpart_legs= $away->sum_matchpart1_legs - $away->sum_matchpart2_legs;
      /* head to head goal diff */
      $home->headtohead_diff[$awayId]+=($home_score-$away_score);
      $away->headtohead_diff[$homeId]-=($home_score-$away_score);
      /*head to head goals for/away goals*/
      $home->headtohead_goal_for[$awayId]+=$home_score;
      $away->headtohead_goal_for[$homeId]+=$away_score;
      $away->headtohead_awaygoals[$homeId]+=$away_score;     
    }
    else { //none of the 2 teams gets any points
      if ($shownegpoints==1) {
        $home->neg_points += $loss_points;
        $away->neg_points += $loss_points;
      }
      $home->cnt_lost++;
      $away->cnt_lost++;
    }
  }
Принимаются следующие значения:
 - +/- Техническая победа/Техническийпроигрыш;
 - -/+ Технический проигрыш/Техническая победа;
 - -/- Технический проигрыш/Технический проигрыш;
Работоспособность способа тестировалась на русской сборке с сайта http://rusliga.bgme.net/index.php?option=com_frontpage&Itemid=1. Очки насчитываются как за стандартную победу в матче.
« Последнее редактирование: 15.06.2009, 22:49:09 от dimonji »
*

foxynn

  • Осваиваюсь на форуме
  • 45
  • 4 / 0
Re: Техническое поражение
« Ответ #15 : 15.06.2009, 23:56:11 »
Посмотри, как оно с varchar(2) обработает матч, закончившися со счетом 10:8
Мне почему-то кажется, что с ошибкой.  !!!???!!!
*

dimonji

  • Новичок
  • 9
  • 3 / 0
Re: Техническое поражение
« Ответ #16 : 16.06.2009, 00:50:21 »
Посмотри, как оно с varchar(2) обработает матч, закончившися со счетом 10:8
Мне почему-то кажется, что с ошибкой.  !!!???!!!

varchar(2) насколько я понимаю указывает тип данных максимальным размером в два символа и самое главное если мало символов то можно поставить и 3 и 10. Так что выбор так сказать за вами. И кстати поле 10:8 формируется из двух переменных.
« Последнее редактирование: 16.06.2009, 01:12:17 от dimonji »
*

foxynn

  • Осваиваюсь на форуме
  • 45
  • 4 / 0
Re: Техническое поражение
« Ответ #17 : 16.06.2009, 10:15:02 »
нет, ты меня не понял. Поставь одной команде 10 голов, а второй 8, и посмотри, кому у тебя будет отдана победа.
*

Se2008

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Техническое поражение
« Ответ #18 : 16.06.2009, 23:06:24 »
все правильно считает
*

Dynamik

  • Захожу иногда
  • 130
  • 7 / 0
  • Пива бы!
Re: Техническое поражение
« Ответ #19 : 10.08.2009, 22:35:59 »
arse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in Z:\home\joostina_1.2\www\administrator\components\com_joomleague\classes\Ranking.class.php on line 432

Ошибку выдает, что делать7

Хех функцию не всю заменил
« Последнее редактирование: 10.08.2009, 22:48:26 от Dynamik »
*

veNick

  • Захожу иногда
  • 63
  • 0 / 0
Re: Техническое поражение
« Ответ #20 : 17.02.2010, 09:51:47 »
спасибо, сработало :)
« Последнее редактирование: 17.02.2010, 09:59:50 от veNick »
*

Misty

  • Новичок
  • 5
  • 0 / 0
Re: Техническое поражение
« Ответ #21 : 19.10.2010, 15:45:32 »
кто знает как решить данную проблему в BearLeague?
*

kish

  • Захожу иногда
  • 243
  • 3 / 0
  • Estonian referee
Re: Техническое поражение
« Ответ #22 : 19.10.2010, 17:54:55 »
в для 1.5 тоже так надо сделать всё?
*

makhmudov.timur

  • Захожу иногда
  • 341
  • 20 / 0
  • Alshanskiy
Re: Техническое поражение
« Ответ #23 : 20.10.2010, 09:54:23 »
в для 1.5 тоже так надо сделать всё?
а зачем техническое поражение ?
сделайте 3-0 и всё
*

Dynamik

  • Захожу иногда
  • 130
  • 7 / 0
  • Пива бы!
Re: Техническое поражение
« Ответ #24 : 20.10.2010, 10:24:53 »
А голы на кого записывать? ))
*

makhmudov.timur

  • Захожу иногда
  • 341
  • 20 / 0
  • Alshanskiy
Re: Техническое поражение
« Ответ #25 : 20.10.2010, 10:58:44 »
А голы на кого записывать? ))
ни на кого!
Я бы наверное сделал какое нибудь событие типо ТП
сделал бы иконку
открыл бы матч, сделал в матче только это событие и написал бы в примечание (ТехПор)
*

kish

  • Захожу иногда
  • 243
  • 3 / 0
  • Estonian referee
Re: Техническое поражение
« Ответ #26 : 23.10.2010, 18:53:23 »
ни на кого!
Я бы наверное сделал какое нибудь событие типо ТП
сделал бы иконку
открыл бы матч, сделал в матче только это событие и написал бы в примечание (ТехПор)
так эти 3 лишних мяча смогут повлиять на турнирную таблицу
*

Se2008

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Техническое поражение
« Ответ #27 : 24.10.2010, 10:59:05 »
уже ведь писали об этом :)) во многих регламентах есть такое понятие как тех. поражения типа +/- и -/- и тут 0-3 и всякими ухищрениями не отделаешься :)
*

makhmudov.timur

  • Захожу иногда
  • 341
  • 20 / 0
  • Alshanskiy
Re: Техническое поражение
« Ответ #28 : 25.10.2010, 09:01:27 »
так эти 3 лишних мяча смогут повлиять на турнирную таблицу
f что при техническом поражении голы не добавляются ?
*

kish

  • Захожу иногда
  • 243
  • 3 / 0
  • Estonian referee
Re: Техническое поражение
« Ответ #29 : 31.10.2010, 00:06:50 »
f что при техническом поражении голы не добавляются ?
нет...и это я тебе говорю как играющий человек и как футбольный арбитр =))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как засчитать обеим командам техническое поражение 0-3?

Автор BoBaN

Ответов: 6
Просмотров: 3014
Последний ответ 16.10.2009, 15:33:48
от BoBaN