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

arma

  • Завсегдатай
  • 1753
  • 81 / 3
Извиняюся, может не внимательно читаю, но что-то не нахожу решение...:(
Моя "проблема" - основное меню не должно быть вложенности больше двух, когда создаю дополнетельные меню с "псевдоним пункта меню" на главное и есть дочерные подпункты не даёт алиас главного меню. Т.е. не получается ни в крошках, ни в адресной строке получить нормальную ссылку. Вылазит это /2013-05-25-09-04-16/. Вместо этих цифр должен быть алиас!
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Цитировать
МЕНЯТЬ КОД Joomla который может затереться автообновлением
так это же хак. по сути наверное можно написать свой альтернативный макет вывода меню в котором псевдоним меню менять оригинальную ссылку и все никаких хаков
*

Fedor Vlasenko

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Цитировать
Спорить не стану - если появятся альтернативные решения
Цитировать
альтернативный макет вывода меню
Цитировать
прямые переходы (не из меню) как будут обрабатываться? Переходы из внутренней перелинковки
также ничего ведь не меняется по сути только мы переходим не по ссылке menu/home_alias а по ссылке menu/home что наооборот припятствует возникновению дублей. Поисковикам же нужно узнать как-то о наличии ссылки menu/home_alias
Мы не скажем и они не узнают. модули других разработчиков да тоже корректировать если используете
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
в 2.5.11 таких проблем с меню нет. Специально хотел смодулировать ситуацию . Увы все работает должным образом. Тему можно закрывать.
Обновитесь
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Проблема осталась и в тройке - ума не приложу как решить  :(
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Походу это уже не баг, а так задумано, и отходить от этого не будут. Поэтому, тут только один вариант - делать конструктор модуля меню. Т.е. делаешь изначально в меню ту структуру что тебе нужно (вложенность урлов и т.д.), а с помощью конструктора выводишь в любом виде, в любой иерархии
*

Efenia

  • Осваиваюсь на форуме
  • 23
  • 1 / 0
Я решил вопрос с копированием пунктов с тем же алиасом так:
закоментировал блок кода проверки:

С помощью phpMyAdmin cделал дамп #_menus с опцией "drop table if exist"
В дампе удалил проверку на уникальность (строку целиком):

Код
UNIQUE KEY `idx_client_id_parent_id_alias_language` (`client_id`,`parent_id`,`alias`,`language`),

(Можно и SQL запросом сделать, но мне надо было еще массово алиасы поменять, потому дампом)

и залил обратно это все :)

теперь можно нормально дублировать алиасы в админке ;)

Статус темы можно менять на "решено" ;)

Можно я думаю видоизменить удлиннив проверку уникальности. К примеру  используя дополнительно menutype получим:

Код
UNIQUE KEY `idx_client_id_menutype_parent_id_alias_language` (`client_id`,`menutype`,`parent_id`,`language`),

По идее это тоже позволит создавать одинаковые alias в разных меню, но при этом в пределах 1 меню/1 уровня дубли будут проверяться (в PHP условии также надо будет добавить menutype). 

не могли бы вы написать, в каком конкретно файле нужно закоментировть блок кода проверки?
*

rek

  • Новичок
  • 3
  • 0 / 0
Файл для Joomla 3.6.2: \www\libraries\legacy\table\menu.php
Код
207| // The alias already exists. Send an error message.
208|   if ($errorType)
209|    {
210|    $message = JText::_('JLIB_DATABASE_ERROR_MENU_UNIQUE_ALIAS' . ($this->menutype != $table->menutype ? '_ROOT' : ''));
211|    $this->setError($message);
212|
213|    return false;
214|    }
Достаточно за комментировать return false;
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Достаточно за комментировать return false;

После чего выскакивает ошибка с 1062 Duplicate entry ... for key 'idx_client_id_parent_id_alias_language' и Fatal error: Uncaught exception 'JDatabaseExceptionExecuting'
*

rek

  • Новичок
  • 3
  • 0 / 0
После чего выскакивает ошибка с 1062 Duplicate entry ... for key 'idx_client_id_parent_id_alias_language' и Fatal error: Uncaught exception 'JDatabaseExceptionExecuting'

Так в базе надо удалить ключ 'idx_client_id_parent_id_alias_language'
*

rek

  • Новичок
  • 3
  • 0 / 0
1) Удаляем из БД ключ 'idx_client_id_parent_id_alias_language'
MySQL -> имя_БД -> префикс_menu -> Структура -> Индексы
и удалить имя индекса 'idx_client_id_parent_id_alias_language'


2) Редактируем файл
Файл для Joomla 3.6.2: \www\libraries\legacy\table\menu.php
Код
207| // The alias already exists. Send an error message.
208|   if ($errorType)
209|    {
210|    $message = JText::_('JLIB_DATABASE_ERROR_MENU_UNIQUE_ALIAS' . ($this->menutype != $table->menutype ? '_ROOT' : ''));
211|    $this->setError($message);
212|
213|    return false;
214|    }
Достаточно за комментировать return false;
« Последнее редактирование: 15.11.2016, 17:45:14 от rek »
*

Spirz

  • Новичок
  • 7
  • 0 / 0
Всем привет!)
Помогите разобраться. Проблема с меню, но не знаю в Joomla проблема или в VM. Связка такая - Joomla 2.5.28, VirtueMart 2.6.0.
Создаю меню в VM. В него добавляется весь товар. Далее через менеджер меню Joomla создается меню "тип: категория virtuemart" и выбираем эту категорию. Ставим нужный алиас и тд. Это стандартная процедура. Получаем ссылку http://site.ru/alias1 (алиас vm такой же как и в меню)
Далее нужно вывести туже категорию со всеми товарами, в другой папке,  например для др города в папке city. Для city мы создаем категорию в VM.
Далее в менеджере меню Joomla делаем меню (тип категория virtuemart)  выбираем категорию city, алиас ставим тоже city. Там товара нет, просто промежуточная папка. В ней мы делаем новое меню(тип категория virtuemart), в которой будет тот же весь товар. Алиас поставим, например, alias2.
Получаем две ссылки, категория из которой они берут товар - одна:
http://site.ru/alias1
http://site.ru/city/alias2
Нам необходимо, чтобы главной была первая папка и товары имели вид:
http://site.ru/alias1/*-detail
Но по факту получается ссылка замещается на ту, в которой алиас меню выше при сортировке по имени. Т.е. если alias1=apple, а alias2=banana, то везде на сайте ссылки заменяться на второй алиас - http://site.ru/city/banana/*detail. В общем дает приоритет по имени. Как сделать эту сортировку и вывод ссылок по другому параметру, например по порядку? Надеюсь понятно изъяснил))
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
А ведь проблема не решена. До сих пор нельзя ни тупо продублировать пункты из одного меню в другое с теми же алиасами (что было бы в идеале - если делаешь сайт не для себя, а для заказчика, которому приходится объяснять что надо создавать новый пункт типа "Псевдоним"), ни с псевдонимами, сохраняющими прежний алиас. Хотя для псевдонима пофиг какой будет алиас в админке, на фронте все равно будет алиас оригинала. Но согласитесь бред же)) почему не сделать возможность тупо копировать одно меню в другое? Может хоть в 4-ке это сделают
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
А ведь проблема не решена. До сих пор нельзя ни тупо продублировать пункты из одного меню в другое с теми же алиасами (что было бы в идеале - если делаешь сайт не для себя, а для заказчика, которому приходится объяснять что надо создавать новый пункт типа "Псевдоним"), ни с псевдонимами, сохраняющими прежний алиас. Хотя для псевдонима пофиг какой будет алиас в админке, на фронте все равно будет алиас оригинала. Но согласитесь бред же)) почему не сделать возможность тупо копировать одно меню в другое? Может хоть в 4-ке это сделают
Вы не про такую же задачу ведете речь?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Алиас пункта меню совпадает с именем подкаталога в каталоге с сист.файлами

Автор Andrey N.

Ответов: 14
Просмотров: 3227
Последний ответ 07.10.2021, 23:57:15
от Garrr
Главное меню

Автор Анастасия87

Ответов: 7
Просмотров: 1568
Последний ответ 21.05.2021, 08:40:40
от arma
[РЕШЕНО] Как в Joomla 2.5 автоматом удалять пользователей, не активировавшихся?

Автор pH43

Ответов: 2
Просмотров: 3660
Последний ответ 01.06.2020, 17:16:26
от pH43
Как сократить вертикальное расстояние между меню сайта и баннером?

Автор MultiMatrix83

Ответов: 2
Просмотров: 1424
Последний ответ 16.02.2020, 19:30:25
от MultiMatrix83
Редактирование Модуля - в меню не удаляется пункт

Автор bovinkm

Ответов: 4
Просмотров: 1617
Последний ответ 16.08.2019, 15:00:22
от bovinkm