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

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Здравствуйте. Модуль новостей из категории имеет такую структуру, если настроить его по горизонтали:
Код: html4strict
<div class="latest-new">
<ul class="newsflash-horiz">
  <li>
    <h4 class="newsflash-title">  Материал </h4>
     <p>
        <img alt="image005" src="/images/image005.jpg">
    </p>
     <p>Текст материала.</p>
   <a class="readmore" href="/index.php/8-blog/1-material">Подробнее...</a>
 <span class="article-separator"> </span>
 </li>
</ul>
</div>

Вот у меня вопрос: Есть ли возможность переписать его в такой вид?
Код: html4strict
<div class="latest-new">
  <img alt="image005" src="/images/image005.jpg">
   <div class="mystyle">
      <h4 class="newsflash-title">  Материал </h4>
        <p>Текст материала.</p>
       <a class="readmore" href="/index.php/8-blog/1-material">Подробнее...</a>
   </div>
</div>
Если конкретнее сказать, мне нужно вывести  картинку за таблицу.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Хмм... а Вы разве его уже не переписали?
Переопределяйте модуль в шаблоне и модифицируйте, как Вам будет угодно.
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Хмм... а Вы разве его уже не переписали?
Переопределяйте модуль в шаблоне и модифицируйте, как Вам будет угодно.
Нет я его не переписывал, я еще вчера переопределил и со вчерашнего дня не могу модифицировать как не старался <img alt="image005" src="/images/image005.jpg"> и вывести его за  <li>. li поменять на div - это без проблем, а вывести никак не могу...
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Что мешает? опишите подробно.
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Что мешает? опишите подробно.
А выше разве не очень подробно...)
Подробнее: вывожу с бутстрапом 3 изображения по ширине:
Код: php
<div class="row<?php echo $params->get('moduleclass_sfx'); ?>">
<?php for ($i = 0, $n = count($list); $i < $n; $i ++) :
$item = $list[$i]; ?>
<div class="col-md-4">
<?php require JModuleHelper::getLayoutPath('mod_articles_news', '_item');

if ($n > 1 && (($i < $n - 1) || $params->get('showLastSeparator'))) : ?>

<span class="article-separator"> </span>

<?php endif; ?>
</div>
<?php endfor; ?>
</div>
Картинка попадает под col-md-4, а мне не нужно, чтобы она не входила в него. Структуру написал выше.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Код: php
<?php require JModuleHelper::getLayoutPath('mod_articles_news', '_item');

У вас тут подшаблон подключается. В нём нужно переопределять.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Правильно, картинка принадлежит итему, и выводится вместе с итемом, в отдельном шаблоне для итема _item.php
*

fbr

  • Завсегдатай
  • 1684
  • 210 / 7
В стандартном модуле выводится изображение, содержащееся в тексте вступления, т.е вот здесь:
Код: php
$item->introtext;
и вытащить его достаточно проблематично.
Если вы в переопределенном макете выводите изображение для вступительного текста (вставили самостоятельно) - тогда можно
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Код: php
<?php require JModuleHelper::getLayoutPath('mod_articles_news', '_item');

У вас тут подшаблон подключается. В нём нужно переопределять.
В _item.php. А как? Можете помочь...
В стандартном модуле выводится изображение, содержащееся в тексте вступления, т.е вот здесь:
Код: php
$item->introtext;
и вытащить его достаточно проблематично.
Если вы в переопределенном макете выводите изображение для вступительного текста (вставили самостоятельно) - тогда можно
Вот именно на этом я и остановился, надо как-то отделить картинку от текста...
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Скорее всего файл называется default_item.php и находится там же, где и default.php. Выложите его листинг.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Как переделать структуру mod_articles_news?
« Ответ #10 : 01.05.2014, 10:16:50 »
Вот именно на этом я и остановился, надо как-то отделить картинку от текста...
Получаете в отдельную переменную значение записи (итема) $aitem = $item->introtext; выковыриваете регуляркой из $aitem картинку и уже потом выводите остаток во фронт. Как ковырять - не подскажу, только теоретически представляю ((

Файл называется _item.php, лежит рядом с default.php. оригинальное содержимое:

<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_articles_news
 *
 * @copyright   Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;
$item_heading $params->get('item_heading''h4');
?>
<?php 
if ($params->get('item_title')) : ?>

	
<<?php echo $item_heading?> class="newsflash-title<?php echo $params->get('moduleclass_sfx'); ?>">
	
<?php if ($params->get('link_titles') && $item->link != '') : ?>
	
	
<a href="<?php echo $item->link;?>">
	
	
	
<?php echo $item->title;?></a>
	
<?php else : ?>
	
	
<?php echo $item->title?>
	
<?php endif; ?>
	
</<?php echo $item_heading?>>

<?php endif; ?>

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

<?php echo $item->beforeDisplayContent?>

<?php echo $item->introtext?>

<?php if (isset($item->link) && $item->readmore != && $params->get('readmore')) :
	
echo 
'<a class="readmore" href="'.$item->link.'">'.$item->linkText.'</a>';
endif; 
?>
*

fbr

  • Завсегдатай
  • 1684
  • 210 / 7
Re: Как переделать структуру mod_articles_news?
« Ответ #11 : 01.05.2014, 10:17:45 »
посмотрите здесь, может пригодится
http://www.wantweb.ru/mod-articles-news/mod-articles-news-date-image
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Как переделать структуру mod_articles_news?
« Ответ #12 : 01.05.2014, 10:24:17 »
В стандартном модуле выводится изображение, содержащееся в тексте вступления, т.е вот здесь:
Код: php
$item->introtext;
и вытащить его достаточно проблематично.
Если вы в переопределенном макете выводите изображение для вступительного текста (вставили самостоятельно) - тогда можно

Первый раз только проблемно. Потом привыкаешь. ^-^

Код: php
/*сперва найдём первую картинку, вернее только её адрес:*/
$src_regex = '#src\s*=\s*(["\'])(.*?)\1#'; //регулярка для поиска src картинки
preg_match_all($src_regex, $item->introtext, $matches); //где $item->introtext — переменная, в которой ищем.
$item->imgsrc = $matches[2][0];

/*потом удалим все теги, в том числе картинки из текста. Выборочные, например <p> можно оставить*/
$item->introtext = strip_tags($item->introtext);

/*подчистим:*/
$item->introtext = trim($item->introtext);

/*ещё можно подрезать строку до нужного количества символов без кромсания слов:*/
$txtcut = 600;
$item->introtext = strip_tags($item->introtext);
$item->introtext = substr(
$item->introtext, 0, (
strripos(
substr($item->introtext, 0, $txtcut), ' '
)
)
);

/*Всё, теперь можно выводить:*/

//$item->introtext = чистый, готовый текст для вывода.
//$item->imgsrc = значение src первой картинки
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Re: Как переделать структуру mod_articles_news?
« Ответ #13 : 01.05.2014, 10:35:56 »
посмотрите здесь, может пригодится
http://www.wantweb.ru/mod-articles-news/mod-articles-news-date-image
Интересная статья. но у меня вышло по две картинки. От вставленного кода и от стандартного кода. Автор не объяснил как заменить подробно.
Первый раз только проблемно. Потом привыкаешь. ^-^

Спойлер
[свернуть]


Как правильно этот код вставить? А то я вставил и у меня картинки пропали  ::)
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Как переделать структуру mod_articles_news?
« Ответ #14 : 01.05.2014, 10:40:53 »
Картинку вывести так:

Код: php
echo '<img src="'.$item->imgsrc.'" / >';
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Re: Как переделать структуру mod_articles_news?
« Ответ #15 : 01.05.2014, 10:50:34 »
Если я правильно понял, то нужно <?php echo $item->introtext; ?> заменить на :
Код: php
<?php $src_regex = '#src\s*=\s*(["\'])(.*?)\1#'; 
preg_match_all($src_regex, $item->introtext, $matches);
$item->imgsrc = $matches[2][0];
 

$item->introtext = strip_tags($item->introtext);
 
/*подчистим:*/
$item->introtext = trim($item->introtext);
 

$txtcut = 600;
$item->introtext = strip_tags($item->introtext);
$item->introtext = substr(
$item->introtext, 0, (
strripos(
substr($item->introtext, 0, $txtcut), ' '
)
)
);
echo '<img src="'.$item->imgsrc.'" / >' ?>
Если так, то пропал вступительный текст...
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Как переделать структуру mod_articles_news?
« Ответ #16 : 01.05.2014, 10:54:45 »
Я же файл не вижу.

Код: php
//выводим картинку:
echo '<img src="'.$item->imgsrc.'" / >';

//ниже выводим текст:
echo $item->introtext;
*

Davidich

  • Захожу иногда
  • 179
  • 7 / 1
Re: Как переделать структуру mod_articles_news?
« Ответ #17 : 01.05.2014, 11:12:03 »
Я же файл не вижу.

Код: php
//выводим картинку:
echo '<img src="'.$item->imgsrc.'" / >';

//ниже выводим текст:
echo $item->introtext;
Файл стандартный, я не использую готовые шаблоны ^-^. Спасибо большое! Получилось по вашему коду!
Спойлер
[свернуть]
Не обязательно было из-под col-md-4 выводить картинку, а достаточно было под div засунуть остальное))
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться