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

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Многие, включая меня, жаловались на неправильную кодировку слова "Голоса" или "Голосовать" как����������
Поскольку местная поддержка не высказала ни одной дельной мысли, пришлось кумекать самому.
И вот, что я обнаружил:

Проблема номер один.
Основная проблема в том, что красавчеги-разработчеги Mosets Tree используют strtolower для конвертации заглавной буквы в строчную в этом слове. Убедимся в этом открыв sub_listingDetails.tpl.php и начиная со строки 125 видим:
Код
if( $this->link->link_votes <= 1 ) {
echo $this->link->link_votes . " " . strtolower(JText::_( 'Vote' ));
} elseif ($this->link->link_votes > 1 ) {
echo $this->link->link_votes . " " . strtolower(JText::_( 'Votes' ));
}

Использование strtolower в случае, когда заранее известна необходимость поддержки кодировки UTF граничит с идиотизмом.
Руководство по PHP ясно говорит, что
Цитировать
Returns string  with all alphabetic characters converted to lowercase.
Note that 'alphabetic' is determined by the current locale. This means that in i.e. the default "C" locale, characters such as umlaut-A (Ä) will not be converted.
Проще говоря, это работает для ASCII и тамошние дальнейшие примеры изобилуют решениями для нелатинских алфавитов.

Как этой беде помочь?
Можно использовать mb_convert_case, но тут мы сталкиваемся проблемой номер два.

Проблема номер два.
Красавчеги-разработчеги Mosets Tree не отличают глаголов от существительных. В английском такая глупость позволительна чаще, чем в русском, но мы в данном случае, получим "1 голосовать", то есть надо доделывать ещё и языковые константы. Поскольку существительное "голосов" всё-равно не будет стыковаться с числительным, то проще и корректнее использовать давнишний русский приём двоеточия - "Голосов: 1".

Как это сделать?
Открываем вышеуказанный файл - sub_listingDetails.tpl.php - и заменяем указанные строки 125-129 на одну такую строку:
Код
echo JText::_( 'Votes' ). ": " . $this->link->link_votes ;

Всё.
*

liadesign

  • Новичок
  • 7
  • 0 / 0
Я испарил как были крякозяблы так и остались, в чем еще может быть причина
*

nikkem

  • Новичок
  • 4
  • 0 / 0
кодировка базы как вариант !
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Я испарил как были крякозяблы так и остались, в чем еще может быть причина
Кракозябры кракозябрам рознь. Я ведь не случайно свои кракозябры процитировал...
*

Sakhalin

  • Захожу иногда
  • 162
  • 6 / 0
АВТОР, спасибо все встало отлично! +1
*

diks13

  • Захожу иногда
  • 257
  • 10 / 0
Я испарил как были крякозяблы так и остались, в чем еще может быть причина
попробуй в .htaccess  прописать AddDefaultCharset UTF-8
*

lazer

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
А ведь все заработало! Автор молодец
*

masternaraione

  • Новичок
  • 8
  • 0 / 1
Многие, включая меня, жаловались на неправильную кодировку слова "Голоса" или "Голосовать" как����������
Поскольку местная поддержка не высказала ни одной дельной мысли, пришлось кумекать самому.
И вот, что я обнаружил:

Проблема номер один.
Основная проблема в том, что красавчеги-разработчеги Mosets Tree используют strtolower для конвертации заглавной буквы в строчную в этом слове. Убедимся в этом открыв sub_listingDetails.tpl.php и начиная со строки 125 видим:
Код
if( $this->link->link_votes <= 1 ) {
echo $this->link->link_votes . " " . strtolower(JText::_( 'Vote' ));
} elseif ($this->link->link_votes > 1 ) {
echo $this->link->link_votes . " " . strtolower(JText::_( 'Votes' ));
}

Использование strtolower в случае, когда заранее известна необходимость поддержки кодировки UTF граничит с идиотизмом.
Руководство по PHP ясно говорит, чтоПроще говоря, это работает для ASCII и тамошние дальнейшие примеры изобилуют решениями для нелатинских алфавитов.

Как этой беде помочь?
Можно использовать mb_convert_case, но тут мы сталкиваемся проблемой номер два.

Проблема номер два.
Красавчеги-разработчеги Mosets Tree не отличают глаголов от существительных. В английском такая глупость позволительна чаще, чем в русском, но мы в данном случае, получим "1 голосовать", то есть надо доделывать ещё и языковые константы. Поскольку существительное "голосов" всё-равно не будет стыковаться с числительным, то проще и корректнее использовать давнишний русский приём двоеточия - "Голосов: 1".

Как это сделать?
Открываем вышеуказанный файл - sub_listingDetails.tpl.php - и заменяем указанные строки 125-129 на одну такую строку:
Код
echo JText::_( 'Votes' ). ": " . $this->link->link_votes ;

Всё.

Спасибо огромное. +1 автору. Сделал как написано и всё получилось.
*

Gryphus

  • Новичок
  • 3
  • 0 / 0
А что делать с такими - 20 Г������с�� кракозябрами? и такими - 0 От��ы��ы
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Убедиться, что упорядочение базы данных задано как одна из utf8_general_ci или utf8_unicode_ci
*

IgorFIN

  • Осваиваюсь на форуме
  • 28
  • 2 / 0
Я нашел выход как побороть кракозяблы без хака компонента.

В файлах локализации в проблемных полях перевода использовать не Кирилицу а десятичный код букв.

Например
Код
\administrator\language\ru-RU\ru-RU.com_mtree.ini
CORE="&#1054;&#1089;&#1085;&#1086;&#1074;&#1085;&#1086;&#1081;"

\language\ru-RU\ru-RU.com_mtree.ini
VOTE="&#1043;&#1086;&#1083;&#1086;&#1089;&#1072;"
« Последнее редактирование: 31.05.2012, 15:53:19 от IgorFIN »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

3 Проблемы с Mosets Tree

Автор Bruce

Ответов: 2
Просмотров: 2346
Последний ответ 18.01.2010, 17:52:25
от Ksen-nn