Новости 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 Ответов
  • 1340 Просмотров
*

makc9I

  • Захожу иногда
  • 89
  • 0 / 0
Всем привет. Возникла странная проблема. Слегка покосилась верстка главной страницы. И я даже толком не могу сказать, после каких действий. Так как косяк не очень заметный и мог заметить не сразу.
Суть проблемы. Есть сайт: musaget.net
На главной есть блок, созданный модулем произвольного HTML кода и вставленный в позицию position-9. Вот как это выглядит на старой версии, развернутой с бекапа.
Спойлер
[свернуть]
При отображении позиций выглядит вот так:
Спойлер
[свернуть]

На боевом сайте я занимался тем, что переопределял внешний вид модулей и компонентов, вынося все правки в папку с шаблоном, каталог HTML. Предварительно все те же действия делал на локальной машине, проблем не было. Скорее всего их не было и на боевом сайте, но еще раз повторюсь, косяк небольшой, я мог не заметить.
Но вот теперь заметил и не знаю, как его победить. А косяк в том, что на сайте главная выглядит так:
Спойлер
[свернуть]
Проблемы 2: блок "Смотреть больше мероприятий" уехал вверх, и футер обрезается шириной внутреннего контента, хотя должен быть в ширину всего окна. Причем проблема с футером наблюдается только на главной, на любой другой странице он ведет себя, как положено.
А вот так выглядит странице при отображении позиций:
Спойлер
[свернуть]
position-9 каким-то чудесным образом переехала вверх.

Я пытался выцепить какие-то зависимости через панель разработчика браузера, анализируя стили, никаких аномалий не вижу. Файлы templateDetails.xls и index.php абсолютно такие-же, как и в бекапе, где все работает, на боевом index.php отличается только тем, что я добавил скрипты Яндекс метрики и Google аналитики, грешил на них, но уже проверил этот вариант, удалив их. Не помогло.
Я уже не понимаю, в чем дело. очень хочется разобраться в ситуации, чтобы знать, как действовать в таких случаях, а не тупо откатиться на бекап.
« Последнее редактирование: 09.11.2014, 21:17:46 от makc9I »
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
привет.
на счет первой проблемы - не понял, где косяк, т.к. не наблюдаю этого блока на сайте.
на счет ширины футера - скорее всего имеем где-то незакрытый div, т.к. на главной футер попадает в блок #all с фиксированной шириной, а на прочих страницах он вне его находится.
обычно лечится поочередным отключением модулей главной страницы. если при отключении какого-то из них глюк пропадает - то лезем в шаблон этого модуля и фиксим там лишний/недостающий тег.
ну либо может в основном шаблоне с условиями перемудрили и в условиях для главной странице где-то пропущен/лишний тег закрывающий.
*

makc9I

  • Захожу иногда
  • 89
  • 0 / 0
привет. Первая проблема: блок уехал за надпись : "Календарь мероприятий" сразу под слайдером вверху, а должен быть над футером.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ну наверно проблемы связаны ))
я так понимаю, на главной блок с новостями  выводится компонентом?
если да - то закомментируте в шаблоне вызов компонента и посмотрите результат.
просто сейчас там внушает сомнение структура
<div class="blog">:
<div class="items-row cols-3 row-1"> вложена внутрь <div class="items-row cols-3 row-0">, хотя по смыслу они вроде бы одноранговые должны быть.
<div class="items-row cols-3 row-1">
*

makc9I

  • Захожу иногда
  • 89
  • 0 / 0
да, проблема именно в этом компоненте, его отключил, все спозиционировалось нормально. Буду колупать код.
*

makc9I

  • Захожу иногда
  • 89
  • 0 / 0
вот листинг кода, вроде как реально накинуты лишние закрывающие дивы в конце, но пытаюсь что-то удалять, вообще все летит.
Код: php
<?php
/**
 * @package Joomla.Site
 * @subpackage com_content
 * @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license GNU General Public License version 2 or later; see LICENSE.txt
 */

// no direct access
defined('_JEXEC') or die;

// Create a shortcut for params.
$params = &$this->item->params;
$images = json_decode($this->item->images);
$canEdit = $this->item->params->get('access-edit');
JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.framework');

?>

<?php if ($this->item->state == 0) : ?>
<div class="system-unpublished">
<?php endif; ?>


<?php if ($params->get('show_print_icon') || $params->get('show_email_icon') || $canEdit) : ?>
<ul class="actions">
<?php if ($params->get('show_print_icon')) : ?>
<li class="print-icon">
<?php echo JHtml::_('icon.print_popup', $this->item, $params); ?>
</li>
<?php endif; ?>
<?php if ($params->get('show_email_icon')) : ?>
<li class="email-icon">
<?php echo JHtml::_('icon.email', $this->item, $params); ?>
</li>
<?php endif; ?>
<?php if ($canEdit) : ?>
<li class="edit-icon">
<?php echo JHtml::_('icon.edit', $this->item, $params); ?>
</li>
<?php endif; ?>
</ul>
<?php endif; ?>

<?php if (!$params->get('show_intro')) : ?>
<?php echo $this->item->event->afterDisplayTitle; ?>
<?php endif; ?>

<?php echo $this->item->event->beforeDisplayContent; ?>

<?php // to do not that elegant would be nice to group the params ?>

<?php if (($params->get('show_author')) or ($params->get('show_category')) or ($params->get('show_create_date')) or ($params->get('show_modify_date')) or ($params->get('show_publish_date')) or ($params->get('show_parent_category')) or ($params->get('show_hits'))) : ?>
 <dl class="article-info">
 <dt class="article-info-term"><?php echo JText::_('COM_CONTENT_ARTICLE_INFO'); ?></dt>
<?php endif; ?>

<?php if ($params->get('show_parent_category') && $this->item->parent_id != 1) : ?>
<dd class="parent-category-name">
<?php $title = $this->escape($this->item->parent_title);
$url = '<a href="' . JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->parent_id)). '">' . $title . '</a>'; ?>
<?php if ($params->get('link_parent_category')) : ?>
<?php echo JText::sprintf('COM_CONTENT_PARENT', $url); ?>
<?php else : ?>
<?php echo JText::sprintf('COM_CONTENT_PARENT', $title); ?>
<?php endif; ?>
</dd>
<?php endif; ?>

<?php if ($params->get('show_category')) : ?>
<dd class="category-name">
<?php $title = $this->escape($this->item->category_title);
$url = '<a href="' . JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catid)). '">' . $title . '</a>'; ?>
<?php if ($params->get('link_category')) : ?>
<?php echo JText::sprintf('COM_CONTENT_CATEGORY', $url); ?>
<?php else : ?>
<?php echo JText::sprintf('COM_CONTENT_CATEGORY', $title); ?>
<?php endif; ?>
</dd>
<?php endif; ?>

<?php if ($params->get('show_create_date')) : ?>
<dd class="create">
<?php echo JText::sprintf('COM_CONTENT_CREATED_DATE_ON', JHtml::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2'))); ?>
</dd>
<?php endif; ?>

<?php if ($params->get('show_modify_date')) : ?>
<dd class="modified">
<?php echo JText::sprintf('COM_CONTENT_LAST_UPDATED', JHtml::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?>
</dd>
<?php endif; ?>

<?php if ($params->get('show_publish_date')) : ?>
<dd class="published">
<?php echo JText::sprintf('COM_CONTENT_PUBLISHED_DATE_ON', JHtml::_('date', $this->item->publish_up, JText::_('DATE_FORMAT_LC2'))); ?>
</dd>
<?php endif; ?>

<?php if ($params->get('show_author') && !empty($this->item->author )) : ?>
<dd class="createdby">
<?php $author =  $this->item->author; ?>
<?php $author = ($this->item->created_by_alias ? $this->item->created_by_alias : $author);?>

<?php if (!empty($this->item->contactid ) &&  $params->get('link_author') == true):?>
<?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY' ,
JHtml::_('link', JRoute::_('index.php?option=com_contact&view=contact&id='.$this->item->contactid), $author)); ?>

<?php else :?>
<?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', $author); ?>
<?php endif; ?>
</dd>
<?php endif; ?>

<?php if ($params->get('show_hits')) : ?>
<dd class="hits">
<?php echo JText::sprintf('COM_CONTENT_ARTICLE_HITS', $this->item->hits); ?>
</dd>
<?php endif; ?>

<?php if (($params->get('show_author')) or ($params->get('show_category')) or ($params->get('show_create_date')) or ($params->get('show_modify_date')) or ($params->get('show_publish_date')) or ($params->get('show_parent_category')) or ($params->get('show_hits'))) :?>
  </dl>
<?php endif; ?>

<?php  if (isset($images->image_intro) and !empty($images->image_intro)) : ?>
<?php $imgfloat = (empty($images->float_intro))? $params->get('float_intro') : $images->float_intro; ?>
<div class="img-intro-<?php echo htmlspecialchars($imgfloat); ?>">
<div class="img-wrapper"><img
<?php if ($images->image_intro_caption):
echo 'class="caption"'.' title="' .htmlspecialchars($images->image_intro_caption).'"';
endif; ?>
src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>"/>
</div>

<div class="corner">
<?php if ($params->get('show_title')) : ?>

<h2>
<?php if ($params->get('link_titles') && $params->get('access-view')) : ?>
<a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>">
<?php echo $this->escape($this->item->title); ?></a>
<?php else : ?>
<?php echo $this->escape($this->item->title); ?>
<?php endif; ?>
</h2>
<?php echo $this->item->introtext; ?>
<?php endif; ?>


<?php if ($params->get('show_readmore') && $this->item->readmore) :
if ($params->get('access-view')) :
$link = JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid));
else :
$menu = JFactory::getApplication()->getMenu();
$active = $menu->getActive();
$itemId = $active->id;
$link1 = JRoute::_('index.php?option=com_users&view=login&Itemid=' . $itemId);
$returnURL = JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid));
$link = new JURI($link1);
$link->setVar('return', base64_encode(urlencode($returnURL)));
endif;
?>
<p class="readmore">
<a href="<?php echo $link; ?>">
<?php if (!$params->get('access-view')) :
echo JText::_('COM_CONTENT_REGISTER_TO_READ_MORE');
elseif ($readmore = $this->item->alternative_readmore) :
echo $readmore;
if ($params->get('show_readmore_title', 0)!= 0) :
echo JHtml::_('string.truncate', ($this->item->title), $params->get('readmore_limit'));
endif;
elseif ($params->get('show_readmore_title', 0) == 0) :
echo JText::sprintf('COM_CONTENT_READ_MORE_TITLE');
else :
echo JText::_('COM_CONTENT_READ_MORE');
echo JHtml::_('string.truncate', ($this->item->title), $params->get('readmore_limit'));
endif; ?></a>
</p>

<?php endif; ?>

</div>
</div>

<?php endif; ?>







<?php if ($this->item->state == 0) : ?>
</div>
<?php endif; ?>

<div class="item-separator"></div>
<?php echo $this->item->event->afterDisplayContent; ?>

*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ну мне-то точно этот код ничего не даст - каша такая, как её визуально разобрать?
надо менять и смотреть.
лучше наоборот, по одному закрывающему добавьте по очереди к каждому существующему закрывающему тегу
*

almika

  • Захожу иногда
  • 325
  • 27 / 0
Мне кажется, что дело не в компоненте, а во вводном тексте какого-то материала. В одном из них должен быть незакрытый <div> (До ссылки readmore).

*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
кстати, да. если шаблон не сам переделывал, то более вероятно.
тогда то же самое для материалов - по одному отключаем те, что на главную выводятся и смотрим результат
*

makc9I

  • Захожу иногда
  • 89
  • 0 / 0
Цитировать
Мне кажется, что дело не в компоненте, а во вводном тексте какого-то материала. В одном из них должен быть незакрытый <div> (До ссылки readmore).
Бинго! Так оно и было. Я нашел этот материал. Ух, спасибо огромное. Сколько же нервов и сил угробил на такую мелочь.
Проблема исчезла.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблемы с мобильной версией

Автор gromlan

Ответов: 0
Просмотров: 1144
Последний ответ 04.07.2018, 15:23:33
от gromlan
Слетела верстка на Joomla 2.5 после установки JL No Doubles

Автор qvaro

Ответов: 3
Просмотров: 1070
Последний ответ 02.07.2017, 21:53:43
от vipiusss
Проблемы с кодировкой Joomshoping

Автор mary_NK

Ответов: 3
Просмотров: 1351
Последний ответ 06.06.2017, 10:19:14
от darkghost
Удаление дублей страниц и связанные с этим проблемы

Автор Deska

Ответов: 1
Просмотров: 1805
Последний ответ 14.03.2017, 19:57:10
от Deska
Проблемы с формой GET

Автор Yan

Ответов: 1
Просмотров: 1626
Последний ответ 01.07.2016, 14:52:42
от saharin88