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

chernblx

  • Захожу иногда
  • 262
  • 2 / 0
На версии 2.5 проблему решили, к 2.6 не подходит... Помогите решить эту проблему... Не вижу смысла в строку выводить пустые названия полей поочереди...
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
пробуйте!
Код
function showFieldValue($content,$field)
{
$return = "";
if ((strpos($field->catsid, ",".$content->catid.",")!== false)||(strpos($field->catsid, ",-1,")!== false))
{
if ($field->title)
$name = $field->name;

$value = "";
$content = $content;
$val = "\$content->".$field->name;
$fieldname = $field->name;
eval("if (isset($val)) \$value = \"$val\";");
$value = JText::_($value);

if (($field->type != 'multiselect')&&($field->type != 'checkbox')&&(($field->display_title & $this->mode) == $this->mode))
{
if ($value) $return .= "<b>".JText::_($field->title).":</b> ";
}
if (($field->type == 'multiselect')&&(($field->display_title & $mode) == $mode)) {
$valsel= str_replace(',','',$value);
if ($valsel != '') $return .= "<b>".JText::_($field->title).":</b> ";
}

switch($field->type)
{
case 'checkbox':
if (($field->display_title & $this->mode) == $this->mode)
{
$return .= JText::_($field->title);
if ($value == 1)
$return .= ":&nbsp;".JText::_('ADSMANAGER_YES')."<br />";
else
$return .= ":&nbsp;".JText::_('ADSMANAGER_NO')."<br />";
}
else if ($value == 1)
{
$return .= JText::_($field->title)."<br />";
}
break;

case 'multicheckbox':
case 'multicheckboximage':
for($i=0,$nb=count($this->field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$this->field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$this->field_values[$field->fieldid][$i]->fieldtitle;

if (strpos($value, ",".$fieldvalue.",")!== false)
{
if ($field->type == 'multicheckbox') {
$title .= JText::_($fieldtitle);
if ($title) $return[] = $title; }
else
if ($fieldtitle) $return[] = "<img src='".$this->baseurl."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
}
}
for($i=0,$nb=count($return);$i < $nb ;$i++)
if ($i < ($nb - 1)) echo $return[$i].","; else echo $return[$i].".";
break;

case 'url':
if ((isset($field->link_text))&&($field->link_text != ""))
$linkObj = $field->link_text;
else if ((isset($field->link_image))&&(file_exists(JPATH_BASE."/images/com_adsmanager/fields/".$field->link_image)))
$linkObj = "<img src='".$this->baseurl."/images/com_adsmanager/fields/".$field->link_image."' />";
else
{
$linkObj = $value;
}
if ($value != "")
{
$return .= "<a href='http://$value' target='_blank'>$linkObj</a><br />";
}
break;

case 'date':
$return = $value;
$return .= $return;
break;

case 'select':
if (isset($this->field_values[$field->fieldid])) {
foreach($this->field_values[$field->fieldid] as $v)
{
if ($value == $v->fieldvalue)
{
$return .= JText::_($v->fieldtitle);
if ($v->fieldtitle) $return .= "<br />";
}
}
}
break;

case 'multiselect':
if (isset($this->field_values[$field->fieldid])) {
foreach($this->field_values[$field->fieldid] as $v)
{
if (strpos($value, ",".$v->fieldvalue.",") === false)
{
}
else
{
$return .= JText::_($v->fieldtitle);
if ($v->fieldtitle) $return .= "<br />";
}
}
}
break;

case 'emailaddress':
if ($value != "")
{
switch($this->conf->email_display) {
case 2:
$emailForm = JRoute::_("index.php?option=com_adsmanager&view=message&contentid=".$content->id."&catid=".$content->catid."&Itemid=".$this->itemid);
$return .= '<a href="'.$emailForm.'">'.JText::_('ADSMANAGER_EMAIL_FORM').'</a><br />';
break;
case 1:
$return .= $this->Txt2Png($value)."<br/>";
break;
default:
$return .= JText::_('ADSMANAGER_FORM_EMAIL').": <a href='mailto:".$value."'>".$value."</a><br/>";
break;

}
}
break;

case 'textarea':
$return .= str_replace(array("\r\n", "\n", "\r"), "<br />", $value)."<br />";
break;

case 'editor':
case 'number':
case 'text':
$return .= $value;
if ($value) $return .= "<br />";
break;
case 'price':
if ($value != "") {
$return .= JText::sprintf('ADSMANAGER_DEVICE',$value);
$return .= "<br />"; }
break;
case 'radio':
case 'radioimage':
for($i=0,$nb=count($this->field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$this->field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$this->field_values[$field->fieldid][$i]->fieldtitle;
if ($value == $fieldvalue)
{
if ($field->type == 'radio')
$return .= $fieldtitle;
else
$return .= "<img src='".$this->baseurl."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
$return .= "<br/>";
}
}
break;
case 'file':
if ($value != "")
{
$return .= "<a href='$this->baseurl/images/com_adsmanager/files/$value' target='_blank'>".JText::_('ADSMANAGER_DOWNLOAD_FILE')."</a></b>";
$return .= "<br />";
}
break;

default:
if (isset($this->plugins[$field->type]))
{
if ($this->mode == 1)
$plug = $this->plugins[$field->type]->getListDisplay($content->id,$field );
else
$plug = $this->plugins[$field->type]->getDetailsDisplay($content->id,$field );
$return .= $plug;
}
break;
}
}
return $return;
}
« Последнее редактирование: 11.06.2011, 17:16:52 от Alex89 »
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

chernblx

  • Захожу иногда
  • 262
  • 2 / 0
Спасибо всё получилось, но от компонента отказался...
*

kroshkafunt

  • Новичок
  • 8
  • 0 / 0
к сожалению для 2.6.4 не подходит , выдает белый экран с ошибкой.
Alex89 подскажите пожалуйста решение.
*

LS_D

  • Захожу иногда
  • 155
  • 16 / 0
Здравствуйте! Есть одна проблема, в колонке отображает название поля, хотя я его выключаю (в развернутом виде все норм работает). Можно как нибуть это устранить?
*

maxor

  • Осваиваюсь на форуме
  • 27
  • 5 / 0
Up!
Очень интересует ответ на последний вопрос. Есть знающие, кто может помочь?

PS. AdsManager 2.6.5
« Последнее редактирование: 30.06.2012, 23:31:06 от maxor »
*

maxor

  • Осваиваюсь на форуме
  • 27
  • 5 / 0
Нашёл решение.

Нужно в коде от Alex89, в строке:
if (($field->type != 'multiselect')&&($field->type != 'checkbox')&&(($field->display_title & $this->mode) == $this->mode))

Поменять 'mode' на 'modetitle':
if (($field->type != 'multiselect')&&($field->type != 'checkbox')&&(($field->display_title & $this->modetitle) == $this->modetitle))

Всем удачи.
« Последнее редактирование: 02.07.2012, 01:19:12 от maxor »
*

LS_D

  • Захожу иногда
  • 155
  • 16 / 0
Нашёл решение.

Нужно в коде от Alex89, в строке:
if (($field->type != 'multiselect')&&($field->type != 'checkbox')&&(($field->display_title & $this->mode) == $this->mode))

Поменять 'mode' на 'modetitle':
if (($field->type != 'multiselect')&&($field->type != 'checkbox')&&(($field->display_title & $this->modetitle) == $this->modetitle))

Всем удачи.
Спасибо! Все работатет
*

niceteam

  • Захожу иногда
  • 169
  • 2 / 2
В каком файле заменить надо?
Попробовал в файле field.php сделать замену, в карточке объявления слетели стили почемуто. Объявления стали показываться на белом листе.
*

real-man

  • Захожу иногда
  • 84
  • 4 / 0
После замена кода пропал фильтр отображения цены "от" и "до" в расширенном поиске, кракозяблы вместо поля отображаются  :(
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено]Дублирования ссылки "объвления" в breadcrumb, в компоненте AdsManager

Автор nicklas

Ответов: 4
Просмотров: 3989
Последний ответ 25.04.2024, 23:13:18
от Rinat abzyi
AdsManager вывод нужных полей по отдельности

Автор klekovkinandrey

Ответов: 2
Просмотров: 14516
Последний ответ 06.04.2024, 09:54:15
от Rinat abzyi
AdsManager загрузка файлов

Автор FlexNL

Ответов: 1
Просмотров: 3245
Последний ответ 21.10.2021, 17:20:09
от khan-alex
Проблема с RSS

Автор uf1976

Ответов: 17
Просмотров: 7766
Последний ответ 14.07.2020, 12:31:40
от khan-alex
AdsManager 2.9.13 Есть ли возможность добавить функцию снять с публикации по мимо редактировать и уд

Автор murovoz

Ответов: 11
Просмотров: 13630
Последний ответ 27.03.2020, 22:39:23
от Pavel