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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Делюсь примером вывода изображений в блоге категорий. Вывод предусматривает автоматическое создание изображений нужных размеров.
Используем изображение полного текста
Спойлер
[свернуть]
Используем изображение вступительного текста
Спойлер
[свернуть]
Корректировка вывода изображения материала( добавляем размер, article, default.php)
Спойлер
[свернуть]
*

Kyrsor

  • Захожу иногда
  • 317
  • 4 / 2
:( Что то упорно не выходит.
Буду пробовать дальше, но чуть левее правее и становится всё очень тяжко!
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код обрабатывает изображения которые вставляются к материалу вкладка Images and links (Изображения и ссылки) в материале
Там есть изображения?
*

Kyrsor

  • Захожу иногда
  • 317
  • 4 / 2
Так смотрим, что сейчас есть:
1. Добавил в blog_item.php код который для intro текста и второй readmore
2. Добавил в default.php после заголовка.
Notice: Trying to get property of non-object in БЛАБЛА_ПУТЬ_К_МОЕМУ_ШАБЛОНУ\warp\systems\joomla\layouts\com_content\category\blog_item.php on line 89
В принципе то это не ошибка, а просто предупреждение, что в строке 57 (в моём случае) пытаются получить свойство несуществующего объекта.
Эта строка if ($imgsrc = $img->image_intro)
Выходит объект это картинка которая уменьшится, но она есть.
blog_item.php:
Код
<?php
/**
* @package   Warp Theme Framework
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license   http://www.gnu.org/licenses/gpl.html GNU/GPL
*/

// 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::core();

?>

<article class="item" data-permalink="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid), true, -1); ?>">
<?php if ($params->get('show_title')) : ?>
<header>

<?php if ($params->get('show_email_icon')) : ?>
<div class="icon email"><?php echo JHtml::_('icon.email', $this->item, $params); ?></div>
<?php endif; ?>

<?php if ($params->get('show_print_icon')) : ?>
<div class="icon print"><?php echo JHtml::_('icon.print_popup', $this->item, $params); ?></div>
<?php endif; ?>

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

<?php if ($params->get('show_create_date') || ($params->get('show_author') && !empty($this->item->author)) || $params->get('show_category')) : ?>
<p class="meta">

<?php

if ($params->get('show_author') && !empty($this->item->author )) {

$author =  $this->item->author;
$author = ($this->item->created_by_alias ? $this->item->created_by_alias : $author);

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

}

if ($params->get('show_create_date')) {
echo ' '.JText::_('TPL_WARP_ON').' <time datetime="'.substr($this->item->created, 0,10).'" pubdate>'.JHtml::_('date', $this->item->created, JText::_('DATE_FORMAT_LC3')).'</time>';
}

if (($params->get('show_author') && !empty($this->item->author )) || $params->get('show_create_date')) {
echo '. ';
}

if ($params->get('show_category')) {
echo JText::_('TPL_WARP_POSTED_IN').' ';
$title = $this->escape($this->item->category_title);
$url = '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catid)).'">'.$title.'</a>';
if ($params->get('link_category')) {
echo $url;
} else {
echo $title;
}
}

?>

</p>
<?php endif; ?>
</header>
<?php //Вставляем в файл blog_item.php. Не забываем переопределять на уровне своего шаблона
$img = json_decode($this->item->images);
if ($imgsrc = $img->image_intro)
{
echo '<div class="img-blog">';
$h = 100; //Новая высота изображения
$w = 150; //Новая ширина изображения
$path_parts = pathinfo($imgsrc);
$file_thumb = $path_parts['dirname'].'/'.$path_parts['filename'].'_'.$h.'_'.$w.'.'.$path_parts['extension'];
if (!file_exists($file_thumb) || filemtime($file_thumb) <= filemtime($imgsrc))
{
$image = new JImage($imgsrc);
$new_image = $image->resize($w, $h, true, JImage::SCALE_INSIDE );
$properties = $image->getImageFileProperties($imgsrc);
switch ($properties->mime)
{
case 'image/jpeg':
$type = IMAGETYPE_JPEG;
break;
case 'image/png':
$type = IMAGETYPE_PNG;
break;
case 'image/gif':
$type = IMAGETYPE_GIF;
break;
}
$new_image->toFile($file_thumb, $type);
}
$attr = getimagesize(JURI::base().$file_thumb);
echo JHTML::_('image', $file_thumb, htmlspecialchars($img->image_intro_alt), $attr[3]).'</div>';
}
?>
<?php endif; ?>

<?php

if (!$params->get('show_intro')) {
echo $this->item->event->afterDisplayTitle;
}

echo $this->item->event->beforeDisplayContent;

?>

<div class="content clearfix">
<?php

if (isset($images->image_intro) and !empty($images->image_intro)) {
$imgfloat = (empty($images->float_intro))? $params->get('float_intro') : $images->float_intro;
$class = (htmlspecialchars($imgfloat)!= 'none')? ' class="size-auto align-'.htmlspecialchars($imgfloat).'"' : ' class="size-auto"';
$title = ($images->image_intro_caption)? ' title="'.htmlspecialchars($images->image_intro_caption).'"' : '';
echo '<img'.$class.$title.' src="'.htmlspecialchars($images->image_intro).'" alt="'.htmlspecialchars($images->image_intro_alt).'" />';
}

echo $this->item->introtext;

?>
</div>

<?php if ($params->get('show_readmore') && $this->item->readmore) : ?>

<p class="links">

<?php

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($returnURL));
}

?>

<a href="<?php echo $link; ?>" title="<?php echo $this->escape($this->item->title); ?>">
<?php //Вставляем в файл blog_item.php. Не забываем переопределять на уровне своего шаблона
$img = json_decode($this->item->images);
if ($imgsrc = $img->image_fulltext)
{
echo '<div class="img-blog">';
$h = 100; //Новая высота изображения
$w = 150; //Новая ширина изображения
$path_parts = pathinfo($imgsrc);
$file_thumb = $path_parts['dirname'].'/'.$path_parts['filename'].'_'.$h.'_'.$w.'.'.$path_parts['extension'];
if (!file_exists($file_thumb) || filemtime($file_thumb) <= filemtime($imgsrc))
{
$image = new JImage($imgsrc);
$new_image = $image->resize($w, $h, true, JImage::SCALE_INSIDE );
$properties = $image->getImageFileProperties($imgsrc);
switch ($properties->mime)
{
case 'image/jpeg':
$type = IMAGETYPE_JPEG;
break;
case 'image/png':
$type = IMAGETYPE_PNG;
break;
case 'image/gif':
$type = IMAGETYPE_GIF;
break;
}
$new_image->toFile($file_thumb, $type);
}
$attr = getimagesize(JURI::base().$file_thumb);
echo JHTML::_('image', $file_thumb, htmlspecialchars($img->image_fulltext_alt), $attr[3]);
echo '</div>';
}
?>
<?php

if (!$params->get('access-view')) {
echo JText::_('COM_CONTENT_REGISTER_TO_READ_MORE');
} elseif ($readmore = $this->item->alternative_readmore) {
echo $readmore;
} else {
echo JText::_('TPL_WARP_CONTINUE_READING');
}

?>
</a>

</p>
<?php endif; ?>

<?php if ($canEdit) : ?>
<p class="edit"><?php echo JHtml::_('icon.edit', $this->item, $params); ?> <?php echo JText::_('TPL_WARP_EDIT_ARTICLE'); ?></p>
<?php endif; ?>

<?php echo $this->item->event->afterDisplayContent; ?>
</article>
« Последнее редактирование: 17.12.2012, 06:12:10 от Kyrsor »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код обрабатывает изображения которые вставляются к материалу вкладка Images and links (Изображения и ссылки) в материале
Там есть изображения?
Ваш шаблон вывода и без моего кода должен выводить изображение.  (Изображения и ссылки) в материале
Спойлер
[свернуть]
*

Kyrsor

  • Захожу иногда
  • 317
  • 4 / 2
ДЫ и так выводит=)))
Короче меня дезинформировали по этой теме)
Я хочу так что бы с боку если в материале есть картинка она прям с лева от тайтла текста интро и т д выводилась маленькой
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Вот для этого этот код и написан. Удалите, за комментируйте свой вывод и оставьте вышеприведенный с установкой параметров высоты и ширины нужного изображения.
*

Kyrsor

  • Захожу иногда
  • 317
  • 4 / 2
Щас попробую. Спасибо)
Как всё сложно.........
« Последнее редактирование: 17.12.2012, 13:15:13 от Kyrsor »
*

Kyrsor

  • Захожу иногда
  • 317
  • 4 / 2
Это групповое изнасилование мозга)))
Спасибо пост интересный) Но у меня не вышло)
*

NKovalenko.88

  • Новичок
  • 9
  • 0 / 0
Как зилить ссылку на интро изображение для материалов К2 не через админку?
*

kefalia

  • Захожу иногда
  • 68
  • 0 / 0
Добрый вечер! Подскажите, как дописать приведенный Вами код для вывода изображения вступительного текста в блоге категорий так, чтобы изображение в блоге стало ссылкой на содержание статьи? Подобные вопросы уже решались на форуме, однако прикрутить приведенные в других темах решения к написанному Вами коду для меня пока что является невыполнимой задачей :)
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Примерно так
Спойлер
[свернуть]
*

kefalia

  • Захожу иногда
  • 68
  • 0 / 0
Примерно так
Спойлер
[свернуть]

Спасибо! :)
*

Rumboid

  • Новичок
  • 8
  • 0 / 0
Уважаемый Fedor Vlasenko, спасибо большое за выложенные Вами коды. У меня получилось в своем шаблоне вывести изображение вступительного текста, но, когда я пытаюсь сделать его кликабельным (вставляя последний в этом топике Ваш код), то получаю на странице ошибку:
Fatal error: Call to a member function get() on a non-object in Z:\home\мой сайт\www\templates\мой шаблон\html\com_content\category\blog_item.php on line 24
Эта строка содержит $imgfloat = (empty($images->float_intro))? $params->get('float_intro') : $images->float_intro;
Подскажите, что не так?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

Rumboid

  • Новичок
  • 8
  • 0 / 0
Это изменение действительно делает картинку кликабельной, но, к сожалению, фатально влияет на расположение элементов на странице шаблона. Картинки я смог расположить слева от текста, теперь они снова встали выше него, Футер ушел в верхний правый блок. Пожалуй, я откажусь от идеи сделать картинки кликабельными. Но Вам все равно спасибо за неравнодушие.
*

Irsn

  • Захожу иногда
  • 83
  • 0 / 0
А не подскажете, как блоге категорий вывести миниатюры?
« Последнее редактирование: 14.02.2014, 13:54:48 от Irsn »
*

hazyin

  • Захожу иногда
  • 142
  • 1 / 0
Все получилось... и картинки и ссыли на картинках! Автору респект! +1
*

hazyin

  • Захожу иногда
  • 142
  • 1 / 0
Ток вот один косяк нарисовался (((( при сохранении статьи с превьюшкой создается файлик картинки в этой же папке где исходник,  исходник+_ширина_высота. расширение (где высота и ширина - установленные в коде значения)... но.... вот размеры созданного изображения почему-то не соответствуют установленным.... так исходное изображение  с именем 640x428, установлено в коде 100х65, а результат - 94х63... В чем может быть косяк?
*

hazyin

  • Захожу иногда
  • 142
  • 1 / 0
Ну как выход из ситуации - в <div class="img-blog-left> поставить нужные width и height...
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Fedor Vlasenko, подскажите что не так я сделал: добавил код из "Используем изображение вступительного текста" и выводятся миниатюры из вступительных в <div class="img-blog"> и в <div class="pull-none item-image"> исходные изображения.
Как оставить лишь миниатюры?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Смотрите внимательно макет(шаблон) вывода вашего макета
В приведенном мною решении нет класса "pull-none item-image"
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Смотрите внимательно макет(шаблон) вывода вашего макета
В приведенном мною решении нет класса "pull-none item-image"
Понял, подскажите еще пожалуйста - как поправить путь, чтобы миниатюры создавались не прямо в соответствующей папке, а создавалась внутри папка, например, tmp, и уже в ней лежал jpg.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Блог категории

Автор raynor77

Ответов: 2
Просмотров: 1558
Последний ответ 18.08.2016, 10:05:09
от raynor77
нет картинок в блоге

Автор Коваленко Вадим

Ответов: 4
Просмотров: 1689
Последний ответ 12.05.2016, 01:13:27
от Коваленко Вадим
не работает разделение на колонки в "блоге категорий".

Автор Algemir

Ответов: 7
Просмотров: 10146
Последний ответ 25.04.2016, 08:58:33
от Омск
Разные шаблоны при редактировании материала (на основании родительской категории)

Автор goga_pgasovav

Ответов: 11
Просмотров: 1642
Последний ответ 26.03.2016, 01:05:19
от goga_pgasovav
Компонент к2 категории

Автор 13RUS

Ответов: 1
Просмотров: 1153
Последний ответ 18.01.2016, 15:19:44
от 13RUS