Новости Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla.Это модуль-конструктор для быстрого создания набора элементов. Это могут быть ссылки на компоненты Joomla, пункт меню или пользовательская ссылка. Есть условия для исключений показа элементов списка. Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина, список FAQ, табы или аккордеоны. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео.v.2.4.0. Что нового?Добавлена поддержка новых компонентов. Добавлены новые типы ссылок и исключений для них: - Phoca Download, - Phoca Gallery, - RadicalMart (@radicalmart).Joomla 6. Успешно протестирована работа модуля на Joomla 6-alpha2.РазработчикамПроведён большой рефакторинг кода. Для типов ссылок созданы классы-драйверы. Теперь для того, чтобы добавить новый тип ссылки в модуль достаточно скопировать класс-образец из
modules/mod_wt_quick_links/src/Driver/Collection и наполнить его данными по образцу, а так же добавить необходимые языковые константы в панели администратора Joomla.Модуль бесплатный. Страница расширенияGitHub расширенияJoomla Extensions Directory👩‍💻 Подпишись на @joomlafeed.#joomla #разработка

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

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

ZHart

  • Захожу иногда
  • 324
  • 53 / 2
ВОПРОС:

Как известно, в Joomla 1.6 есть поддержка многоязычности «Из коробки».
Применительно к названиям пунктов меню, она заключается в том, что для каждого пункта меню можно указать язык к которому он относится.
Главный пункт меню (ведущий на домашнюю страницу) может быть только один, и он обязательно должен быть включен для всех языков.

Вроде бы все логично, но беда в том, что и название этого пункта едино для всех языков.
В итоге, если назовем его по-русски, то в англоязычной версии меню отображаются, например, такие пункты:
«Главная», «Articles»,  «Gallery»,  «Contacts».
Если поменяем «Главная» на «Home», то, соответственно, в русскоязычной версии сайта будет:
«Home», «Статьи»,  «Галерея»,  «Контакты».

Можно ли как-то сделать, чтобы для каждого языка первый пункт главного меню можно было назвать по-своему?

ОТВЕТ:

Да, можно, причем существует несколько вариантов решения (обратите особое внимание на последний, 4-й метод):

1. Картинка вместо текста.
Спойлер
[свернуть]

2. Небольшой хак.
Спойлер
[свернуть]

3. Метод отдельных меню с псевдонимами.
Спойлер
[свернуть]

4. Ну и наконец, самый красивый, корректный и простой метод, который даже под спойлер прятать не буду (я использовал именно его, спасибо Lex!):

В шаблоне пишем

Код: php
<?php
$menu = JSite::getMenu();
$menu->getDefault()->title = JText::_($menu->getDefault()->title);
?>
В языковом файле шаблона
HOME=Главная
Решение работает, если первый пункт меню называется не иначе как «Home».
Если главная home в языковом файле HOME=Главная, если главная не home то и в языковом файле надо
ЧЕТОТАМ=Главная

При использовании этого метода вопрос с «крошками» (breadcrumbs) также решается без всяких хаков.
Для вывода названия главного пункта меню можно создать отдельные модули крошек для каждого языка:
Спойлер
[свернуть]
...А можно даже модули не дублировать, а просто оставить пустым поле «Текст пункта `Главная`», при этом текст будет браться из языковых файлов:
Спойлер
[свернуть]
_________________________________________________________________________

ИНСТРУКЦИЯ ДЛЯ Joomla 1.7

Для Joomla 1.7 все поменялось, ибо изменилась логика работы многоязычного сайта.

Если обновиться с Jooomla 1.6 до Joomla 1.7, оставив все как есть, то модуль переключения языков перестает работать.
Поэтому в случае с Joomla 1.7 нужно забыть все предыдущие инструкции и выполнить другую, не менее простую инструкцию:
  • Создать несколько главных меню — одно общее и по одному для каждого из языков.
    Например: mainmenu-all, mainmenu-ru, mainmenu-en.
    Для каждого из языковых меню создать соответствующие им модули. Для «общего» меню модуль можно не создавать (ибо его все равно потом придется скрыть).
  • Назначение «общего» меню только одно — создать в нем единственный пункт меню «Главная», сделать его основным и назначить его всем языкам. Смысл этой манипуляции в том, что хотя-бы один пункт меню обязательно должен быть главным и при этом должен быть назначен всем языкам.
  • Далее в каждом из языковых меню нужно создать соответствующие языку пункты меню. Важно, чтобы в каждом из этих меню присутствовал пункт «Главная», при этом чтобы он был сделан основным, а в качестве языка был выбран язык этого конкретного меню.
  • Profit.

P.S.: Кого интересует пошаговая настройка мультиязычного сайта на Joomla 1.7 (с нуля, а не после обновления) — можете заглянуть сюда (ахтунг, английский!).
« Последнее редактирование: 24.08.2011, 10:44:54 от ZHart »
*

doctorgrif

  • Давно я тут
  • 745
  • 82 / 1
  • Нудный доктор
Как известно, в Joomla 1.6 есть поддержка многоязычности «Из коробки».
Применительно к названиям пунктов меню, она заключается в том, что для каждого пункта меню можно указать язык к которому он относится.
Главный пункт меню (ведущий на домашнюю страницу) может быть только один, и он обязательно должен быть включен для всех языков.

Вроде бы все логично, но беда в том, что и название этого пункта едино для всех языков.
В итоге, если назовем его по-русски, то в англоязычной версии меню отображаются, например, такие пункты:
«Главная», «Articles»,  «Gallery»,  «Contacts».
Если поменяем «Главная» на «Home», то, соответственно, в русскоязычной версии сайта будет:
«Home», «Статьи»,  «Галерея»,  «Контакты».

Можно ли как-то сделать, чтобы для каждого языка первый пункт главного меню можно было назвать по-своему?
картинка типа home не вариант? а название не отображать
Омск-Екатеринбург-Челябинск...Feldzug gen Westen | Кафедра | GrayBox | Joostina 1.2.1 | Joostina Extensions | In Vino Veritas [в работе]
*

ZHart

  • Захожу иногда
  • 324
  • 53 / 2
Вариант конечно, но это полумера.
Картинка не очень хорошо вписывается в общий дизайн.
Но если другого варианта нет, то придется делать так.
Странно, что разработчики не предусмотрели такую очевидную штуку.
Других идей нет?
*

doctorgrif

  • Давно я тут
  • 745
  • 82 / 1
  • Нудный доктор
Вариант конечно, но это полумера.
Картинка не очень хорошо вписывается в общий дизайн.
Но если другого варианта нет, то придется делать так.
Странно, что разработчики не предусмотрели такую очевидную штуку.
Других идей нет?
можно, конечно, попробовать подменять название пункта меню исходя из GeoIP, но при заходе через прокси...
Омск-Екатеринбург-Челябинск...Feldzug gen Westen | Кафедра | GrayBox | Joostina 1.2.1 | Joostina Extensions | In Vino Veritas [в работе]
*

ZHart

  • Захожу иногда
  • 324
  • 53 / 2
можно, конечно, попробовать подменять название пункта меню исходя из GeoIP, но при заходе через прокси...

Это слишком уж мудрено. Хотелось бы делать подобное средствами самой системы.
*

doctorgrif

  • Давно я тут
  • 745
  • 82 / 1
  • Нудный доктор
Это слишком уж мудрено. Хотелось бы делать подобное средствами самой системы.
API 1.6 не смотрел настолько подробно... может на форуме их порыться...
Омск-Екатеринбург-Челябинск...Feldzug gen Westen | Кафедра | GrayBox | Joostina 1.2.1 | Joostina Extensions | In Vino Veritas [в работе]
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
да не сложно сделать, так-то.
только надо понять, как узнать текущий язык из кода.
дальше стандартно - хакаем хэлпер меню в одну-две строки
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
решение "топором"

открываем файл
\modules\mod_menu\helper.php, втавляем после
   static function getList(&$params)
   {
вот это
Код
$lang = JFactory::getDocument();
$lang = $lang->language;
далее ищем в конце
            $item->title = htmlspecialchars($item->title);
и пишем после неё      

Код
if($item->title=="Home" && $lang=="ru-ru") $item->title="дом2";

где Home - это название пункта меню, которое надо переводить

зы
файл надо сохранить в utf-8 без BOM, зарубежные други опять в ANSI всё пишут )
зы2
разумеется, на крошки это решение никак не повлияет, но крошки делаются ровно так же - правкой пары строк, либо просто отрубаем в модуле показ главной, что обычно и делается )
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ещё можно, наверно, в отдельное меню вынести этот пункт.
и не публиковать модуль с ним, а только с псевдонимами.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
кстати, метод с псевдонимами-работает.

по порядку:
идём в менеджер языков, выбираем вкалдку "Content"
создаём там, к примеру, русский язык, заполняя все обязательные поля.
включаем системный плагин System - Language Filter и создаём соотвествующий модуль для переключения языков.


создаём отдельные меню для каждого языка.
в каждом делаем по псевдониму главного пункта меню, но язык выбираем свой.
создаём новые модули для вывода этих меню, в настройках ставим привязку к соотвествующим языкам.
модуль с единственной двуязычной ссылкой снимаем с публикации.

так всё нормально, но почему-то не могу сделать дефолтным русский язык.
главная страница стразу редиректит на /en, даже если в дефолте стоит русский. щас попробую кэши почистить и перезайти.

upd: последний выбранный язык, кажется, сохраняется в кукисах. после их очистки по дефолту становится правильный /ru

с крошками косяк остаётся, так что либо отрубаем показ главного в настройках модуля крошек или хакаем его по примеру выше.
*

ZHart

  • Захожу иногда
  • 324
  • 53 / 2
effrit, спасибо за помощь.
В любом случае решение нетривиальное, а проблема очень похожа на косяк разработчиков, так что согласен с bzzik.

Реально тупизм. По моему это баг.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
да решение как раз логическим путём выведено ))
просто этот "мультиязычнй" пункт с толку сбивает поначалу.
напоминает подобные телодвижения с убиванием дублей главной, там тоже прятали модуль с единственным главным меню.
если не переделают логику, то можно в факи тему.
а вот с крошками без хака первый пункт не вытащить на радном языке - тут прокол, согласен. не продумали момент.
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
*

nightstalker

  • Новичок
  • 9
  • 0 / 0
не знаю, как у меня получилось
но при включении фильтрации языка home у меня не выводиться (шаблон от Joomlart - меню выводится в виде MegaMenu)

http://vsesvit.uticom.com.ua - сайтик в разработке

сделано следующим образом:
одно главное меню содержит пункты и на русском, и на укр.
пункты на русском выводятся только при включенном русском
на украинском соответственно - при включенном укр.

тоже долго думал, как быть с home page
назвал Всестів.Home - ну и понятно осталась опция выводить везде, но он не выводится
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

nightstalker

  • Новичок
  • 9
  • 0 / 0
рекламировть Joomlart пришёл? ))

опс, я, честно говоря, думал, что это я сам такого результата добился (наивняк) простой комбинацией языков
:-) но сомневался, поэтому и указал еще и шаблон
разобраться попробую - но на себя бы не поставил
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
если бы комбинация работала, то и на стандартных шаблонах тоже должно было получиться )
попробуй сменить шаблон и опиши результат )
*

nightstalker

  • Новичок
  • 9
  • 0 / 0
сменил нашблон на Yougrids 16 Template
первый пункт в меню вылез - как следовало ожидать, заслуга не моя, а разработчиков шаблона

*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ну вот. значит надо расковырять код модуля и посмотреть как они маскируют двуязычный пункт, чтобы было альтернативное решение. )
*

nightstalker

  • Новичок
  • 9
  • 0 / 0
я в этом деле полный лось

есть модуль меню - mod_mainmenu
есть стили относящиеся к меню - CSS.css
есть еще стили по цветовым гаммам...

но нигде ниего явного я не нашел, ибо не теми глазами смотрю
если поможет делу, могу выложить коды этих файлов (хоть это и запрещено их лицензией)
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ну у нас тоже варез запрещён, так что не надо.
тем более что меню - сложное, и не факт что с ходу можно будет понять, где маскировка происходит.
но будем знать, что есть такая штука, хотя бы )
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
В шаблоне пишем

Код: php
<?php
$menu = JSite::getMenu();
$menu->getDefault()->title = JText::_($menu->getDefault()->title);
?>
В языковом файле шаблона
HOME=Главная
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

ZHart

  • Захожу иногда
  • 324
  • 53 / 2
Lex, не помогло. Возможно, я что-то не так понял.
В index.php шаблона прописал указанный код, в языковые файлы шаблона (английский и русский) прописал соответствующие каждому языку переменные — никакого видимого результата.
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Lex, не помогло. Возможно, я что-то не так понял.
В index.php шаблона прописал указанный код, в языковые файлы шаблона (английский и русский) прописал соответствующие каждому языку переменные — никакого видимого результата.
echo $menu->getDefault()->title;
что покажет?, может там не home
во всяком случае проверил щас на стандартном шаблоне rhuk_milkyway и пустой Joomla 1.6 при переключении языка по умолчанию работает.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

ZHart

  • Захожу иногда
  • 324
  • 53 / 2
Решение работает, если первый пункт меню называется не иначе как «Home».
Если название другое — не работает.
Сначала у меня первый пункт меню назывался «Главная», и после указанных изменений для обоих языков (а также по «echo $menu->getDefault()->title;») выводилось «Главная». После того, как поменял название первого пункта на «Home», все заработало.
При этом в крошках в обоих случаях выводится «Home».

В принципе, решение вполне приемлемое, если быть уверенным, что оно нигде ничего не попортит (например, не произойдет автозамена в другом месте, где это никому не нужно). Опасаться нечего? :)
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Да нет. Если главная home в языковом файле HOME=Главная, если главная не home то и в языковом файле надо
ЧЕТОТАМ=Главная
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

ZHart

  • Захожу иногда
  • 324
  • 53 / 2
Ок, значит оставляю как есть.
Большое спасибо за помощь в решении проблемы *DRINK*

Кстати говоря, вопрос с крошками тоже решил, и ничего хакать не пришлось.
Необходимо просто продублировать модуль «Breadcrumbs», после чего в настройках первого модуля выбрать русский язык и вписать «Главная» в поле «Текст пункта `Главная`». В настройках второго модуля соответственно нужно выбрать английский язык и вписать текст «Home». Если кому-то нужны другие языки — делается по аналогии, для каждого языка — свой модуль.
« Последнее редактирование: 16.02.2011, 15:56:24 от ZHart »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

В Joomla 2.5 VirtueMart 2.0.26d не работает добавление в корзину под мобилку

Автор kvintovskiy

Ответов: 8
Просмотров: 1884
Последний ответ 15.04.2024, 17:29:25
от Vastriet
Озвучивание текста на сайте

Автор Cherr23

Ответов: 2
Просмотров: 4017
Последний ответ 29.08.2023, 19:26:50
от Bobbi86
Изменить размер видео на сайте

Автор MultiMatrix83

Ответов: 5
Просмотров: 3296
Последний ответ 15.08.2022, 07:57:42
от marksetter
Модуль устанавливается, но Joomla его не видит

Автор ruppert

Ответов: 20
Просмотров: 18237
Последний ответ 01.08.2022, 05:30:50
от rezon777
Как сделать что бы заголовки статей на сайте были в теге <h1>?

Автор MultiMatrix83

Ответов: 10
Просмотров: 3119
Последний ответ 27.04.2022, 15:56:45
от MultiMatrix83