Новости Joomla

Joomla 6: Автоматические обновления ядра в Joomla

Joomla 6: Автоматические обновления ядра в Joomla

👩‍💻 Joomla 6: Автоматические обновления ядра в Joomla. В октябрьском номере официального журнала Joomla - Joomla Community Magazine вышла статья David Jardin, где рассказывается о внедрении функционала автоматического обновления ядра Joomla.❓Почему сейчас? Joomla же жила как-то 20 лет без автоматических обновлений?Это оказалась самая востребованная за последнее время от пользователей Joomla функция. Но, основная причина внедрения - проблемы безопасности. Всякий раз, когда в новой версии Joomla устраняется уязвимость, злоумышленники начинают анализировать код, чтобы выяснить, какая именно уязвимость была исправлена. И как только они это выясняют - начинается разработка автоматизированных скриптов для взлома как можно большего количества сайтов. Затем доступы к автоматически взломанным сайтам продаются в профильных чатах и ресурсах "пачками" по несколько сотен тысяч или миллионов сайтов. Ваш сайт могли взломать несколько лет назад, но воспользоваться уязвимостью могут не сразу, а тогда, когда у злоумышленников возникнет необходимость. И только после этого вы может быть узнаете об этом.Анализ патча, понимание проблемы и разработка скрипта требуют времени. И если владелец сайта не обновит его до истечения этого срока, сайт может быть взломан. А хакеры действуют быстро! Для критических, легко эксплуатируемых уязвимостей речь идёт о временном окне в 10–12 часов — и этого времени явно недостаточно, чтобы все успели обновить свои сайты.Здесь выходят на первый план автоматизированные обновления: проект Joomla теперь может активно устанавливать обновления (и, следовательно, исправления безопасности) на сайты, чтобы гарантировать, что сайты действительно обновляются вовремя.🕘 От первых идей до реализации прошло 5 лет. И здесь можно вспомнить, как в Joomla 5.1 внедрили TUF - The Update Framework, позволяющий устанавливать защищённое соединение между сайтом и сервером обновлений и исключает возможность supply chain attack (атаки на цепочку поставок).Об особенностях реализации и требованиях к сайту читаем подробнее в статье на JCM.@joomlafeed#joomla #secutiry #jcm

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™. Интервью с волонтёрами 🎈Ну что, друзья, вот и настал этот долгожданный момент. Мы выпустили первое издание собственного журнала под эгидой NorrNext, который включает в себя интервью с видными деятелями сообщества из разных стран и континентов.Общий нарратив: показать, что нас объединяет (Joomla) и узнать больше о людях, которые вносят свой вклад в развитие платформы в своих сообществах. 20 лет — это много. Давайте же узнаем о коллегах 🎁 Первый цикл включает такие страны, как Австрия, Испания, Латвия, Россия, Румыния, Тайланд, Черногория, Чехия.⚙️ С кем интервью: ✔️ Владимир Елисеев 🇷🇺✔️ Дмитрий Рекун 🇱🇻✔️ Дмитрий Цымбал 🇷🇺✔️ Евгений Сивоконь 🇷🇺 ✔️ Сергей Толкачёв 🇷🇺✔️ Dénes Székely 🇷🇴✔️ Jan Pavelka 🇨🇿✔️ Miljan Vujosevic 🇲🇪✔️ Sergio Iglesias 🇪🇸✔️ Sigrid Gramlinger 🇦🇹✔️ Pisan Chueatchatchai 🇹🇭‼️ Новые интервью будут добавляться до конца декабря 2025. Заходите по ссылке время от времени💡👉 Читать далее

0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 1236 Просмотров
*

kate1987

  • Захожу иногда
  • 51
  • 0 / 0
Здравствуйте
После импорта материалов из Joomla 3 в К2 нужно отобразить первое изображение из содержимого статьи как превью статьи на странице со списком материалов (category_item.php)
Пробовала плагин IAKI, но он отображает картинку из контента как изображение К2 только на странице детального просмотра статьи

Код плагина

Код
<?php
/**
 * @version 2.1
 * @package IAKI - Import As K2 Image (K2 plugin)
 * @author     JoomlaWorks - http://www.joomlaworks.net
 * @copyright Copyright (c) 2006 - 2014 JoomlaWorks Ltd. All rights reserved.
 * @license GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
 */

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

// Load the K2 Plugin API
JLoader::register('K2Plugin', JPATH_ADMINISTRATOR.DS.'components'.DS.'com_k2'.DS.'lib'.DS.'k2plugin.php');

// Initiate class to hold plugin events
class plgK2Jw_iaki extends K2Plugin
{

// Some params
var $pluginName = 'jw_iaki';
var $pluginNameHumanReadable = 'IAKI (Import As K2 Image)';

function plgK2Jw_iaki(&$subject, $params)
{
parent::__construct($subject, $params);

// Define the DS constant under Joomla! 3.0
if (!defined('DS'))
{
define('DS', DIRECTORY_SEPARATOR);
}
}

function onK2PrepareContent(&$item, &$params, $limitstart)
{
$mainframe = JFactory::getApplication();

// Get the K2 plugin params (the stuff you see when you edit the plugin in the plugin manager)
$plugin = JPluginHelper::getPlugin('k2', $this->pluginName);
$pluginParams = new JRegistry($plugin->params);

$limitK2ItemId = (int)$pluginParams->get('limitK2ItemId', 9999999);
$sourceImageFolder = $pluginParams->get('sourceImageFolder');
$destImageFolder = $pluginParams->get('destImageFolder');

// Includes
require_once (dirname(__FILE__).DS.$this->pluginName.DS.'includes'.DS.'helper.php');
$JWIakiHelper = new JWIakiHelper;

// Output
if (isset($item->id) && $item->id <= $limitK2ItemId)
{

if (isset($item->text) && JString::trim($item->text)!= '')
{
$text = $item->text;
}
elseif (isset($item->introtext) && JString::trim($item->introtext)!= '')
{
$text = $item->introtext;
}
else
{
$text = '';
}

$getFirstImage = $JWIakiHelper->getFirstImage($text);

// Replace the entire path if needed
if ($sourceImageFolder && $destImageFolder)
{
$getFirstImageSrc = str_replace($sourceImageFolder, $destImageFolder, $getFirstImage['src']);
}
else
{
$getFirstImageSrc = $getFirstImage['src'];
}

if ($getFirstImageSrc && !(isset($item->imageXSmall) && $item->imageXSmall != ''))
{
// Assign image path to K2 image object
$item->image = $item->imageXSmall = $item->imageSmall = $item->imageMedium = $item->imageLarge = $item->imageXLarge = $item->imageGeneric = $getFirstImageSrc;

// Strip the content from the actual <img /> tag
$item->text = str_replace($getFirstImage['tag'], '', $item->text);
}
}

}

} // END CLASS
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться