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

new

  • Новичок
  • 8
  • 0 / 0
Возникла такая проблема.. При попытке редоктирования элемента (рис. 1) Появляется следующая ошибка Fatal error: Class ElementSimple contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Element::edit) in Z:\home\*****\www\administrator\components\com_zoo\elements\simple\simple.php on line 400

Рис. 1

Часть кода из файла simple.php
Код
type = 'simple'; $this->_table_columns = array('_value' => 'VARCHAR(255)'); } /* Function: setItem Set related item object. Parameters: $item - item object Returns: Void */ function setItem(&$item) { $this->_item =& $item; $this->load(); } /* Function: hasValue Checks if the element's value is set. Can be overloaded/supplemented by the child class. Returns: Boolean - true, on success */ function hasValue() { return !empty($this->value); } /* Function: render Renders the element. Parameters: $view - current view Returns: String - HTML */ function render($view = ZOO_VIEW_ITEM) { // render layout if ($layout = $this->getLayout()) { return Element::renderLayout($layout, array('value' => $this->value)); } return $this->value; } /* Function: load Load items element data and set vars Returns: Void */ function load() { if (isset($this->_item->id)) { // load element data from item $data = ElementSimple::loadData($this->_item->id, $this->_type->getTableName()); // set element vars foreach ($this->_table_columns as $name => $type) { if (isset($data[$this->name.$name])) { $var = ltrim($name, '_'); $this->$var = $data[$this->name.$name]; } } } } /* Function: loadData Static. Load items element data Returns: Array - element data */ function loadData($id, $table_name) { static $data; if (!isset($data)) { $data = array(); } if (!isset($data[$id])) { // execute database query $db =& JFactory::getDBO(); $query = "SELECT * FROM ".$table_name ." WHERE item_id = ".$id; $db->setQuery($query); $data[$id] = $db->loadAssoc(); // check for errors if ($db->getErrorNum()) { return false; } } return $data[$id]; } /* Function: bind Binds a named array/hash to this object. Can be overloaded/supplemented by the child class. Parameters: $data - An associative array or object. Returns: Void	*/ function bind($data) { // set element vars foreach ($this->_table_columns as $name => $type) { if (isset($data[$this->name.$name])) { $var = ltrim($name, '_'); $this->$var = $data[$this->name.$name]; } } } /* Function: save Save the elements item data. Can be overloaded/supplemented by the child class. Returns: Boolean - true on success */ function save() { // init vars $db =& JFactory::getDBO(); $table = $this->_type->getTableName(); $numeric = array('TINYINT', 'SMALLINT', 'MEDIUMINT', 'INT', 'BIGINT'); // build query $params = array(); foreach ($this->_table_columns as $suffix => $type) { $var = ltrim($suffix, '_'); $column = $this->name.$suffix; if (in_array($type, $numeric)) { $params[] = $column." = ".(isset($this->$var)? $db->getEscaped($this->$var) : 'NULL'); } else { $params[] = $column." = ".(isset($this->$var)? $db->Quote($this->$var) : 'NULL'); } } if (count($params)) { // check if row already exists $query = "SELECT item_id FROM ".$table ." WHERE item_id = ".$this->_item->id; $db->setQuery($query); if (!$db->query()) { $this->setError($db->getErrorMsg()); return false; } // build update or insert query if ($db->getNumRows()) { $query = "UPDATE ".$table ." SET ".implode(", ", $params)." WHERE item_id = ".$this->_item->id; } else { $params[] = "item_id = ".$this->_item->id; $query = "INSERT INTO ".$table ." SET ".implode(", ", $params); } // execute query $db->setQuery($query); if (!$db->query()) { $this->setError($db->getErrorMsg()); return false; } } return true; } 
Стоит Joomla 1.5.22 и zoo 2.3.7 с сайта yoojoomla
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

не работает загрузчик файлов в подаче материалов (upload в submission)

Автор skover

Ответов: 25
Просмотров: 10056
Последний ответ 30.08.2018, 11:37:08
от Beer
Smart Search Zoo не работает

Автор newvideo

Ответов: 1
Просмотров: 3662
Последний ответ 09.01.2017, 14:42:03
от newvideo
[Решено] Превью в виде картинки с youtube для элемента MEDIA

Автор likrion

Ответов: 4
Просмотров: 4183
Последний ответ 13.10.2016, 07:02:34
от Театрал
[Элемент] archiv - перенос элемента в архивную категорию по окончанию публикации( и ее продление )

Автор likrion

Ответов: 37
Просмотров: 6575
Последний ответ 22.10.2015, 08:13:12
от nick71
Не работает Альфаиндекс

Автор Helg

Ответов: 0
Просмотров: 1335
Последний ответ 03.02.2015, 00:39:05
от Helg