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

Mr_SMiT

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Меню с переносом строки
« : 19.11.2009, 18:17:13 »
Я ничего уже не понимаю. Добавил в шаблоне строчку: $text = str_replace('|','<br />',$text); для переноса слова в длинном подменю, а оно не работает, мало того - отображается в виде текста. В стилях везде white-space:normal. Как еще решить проблему?
*

Вязной

  • Захожу иногда
  • 195
  • 19 / 0
  • Просто Вова
Re: Меню с переносом строки
« Ответ #1 : 19.11.2009, 18:23:39 »
В каком месте делаете реплейс? В студию!
*

Mr_SMiT

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Меню с переносом строки
« Ответ #2 : 19.11.2009, 18:26:47 »
Код
function modMainMenuArtXMLCallback(&$node, $args)
{
if (!$GLOBALS['menu_showSubmenus'] && $node->name() == 'li' && $node->level() == 1) {
if ($ul = $node->getElementByPath('ul'))
$node->removeChild($ul);
}

if ($node->name() == 'li') {
$liChildren = & $node->_children;
if (count($liChildren) > 0) {
$liFirstChild = & $liChildren[0];
$linkChildren = & $liFirstChild->_children;
$span = & $linkChildren[0];
$text = $span->data();
[color=red]$text = str_replace('|','<br />',$text);[/color]
if ($liFirstChild->name() == 'span' && $liFirstChild->attributes('class') == 'separator') {
$liFirstChild->_name = 'a';
$liFirstChild->addAttribute('href', '#');
$liFirstChild->addAttribute('onclick', 'return false;');
}
if ($liFirstChild->name() == 'a') {
if ($liFirstChild->level() == 2) {
$liFirstChild->removeChild($span);
$lspan = & $liFirstChild->addChild('span', array('class' => 'l'));
$lspan->setData(' ');
$rspan = & $liFirstChild->addChild('span', array('class' => 'r'));
$rspan->setData(' ');
$tspan = & $liFirstChild->addChild('span', array('class' => 't'));
$tspan->setData($text);
} else {
$liFirstChild->removeAttribute('class');
$liFirstChild->setData($text);
$liFirstChild->removeChild($span);
}
}
}
}
modMainMenuXMLCallback($node, $args);
if ($node->name() == 'li') {
$class = $node->attributes('class');
if ($class && false !== strpos(' ' . $class, ' active')) {
$itemChildren = & $node->_children;
$itemChildren[0]->addAttribute('class', 'active');
}
}
}

define('modMainMenuArtXMLCallbackDefined', true);
}
*

Вязной

  • Захожу иногда
  • 195
  • 19 / 0
  • Просто Вова
Re: Меню с переносом строки
« Ответ #3 : 19.11.2009, 18:30:19 »
Знаете, я так сейчас на память не вспомню, но вам надо делать реплейс непосредственно перед выплевыванием меню в шаблон. Поищите...
*

Mr_SMiT

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Меню с переносом строки
« Ответ #4 : 19.11.2009, 18:33:30 »
В смысле самом Джумаловском mod_mainmenu? Подскажите пожалуйста где конкретно?
*

xobot

  • Захожу иногда
  • 125
  • 12 / 0
Нужно лечиться в молодости, что бы не болеть в старости.
*

Mr_SMiT

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
*

xobot

  • Захожу иногда
  • 125
  • 12 / 0
Re: Меню с переносом строки
« Ответ #7 : 19.11.2009, 18:45:37 »
Митрич писал: "Если меню все таки не двухстрочное, а нужно чтобы в названии пункта меню было две строки (что есть разные вещи)
ТО можно поробовать поискать в описании a.mainlevel что то вроде white-space:nowrap и удалить эту строку.
Потом для того же a.mainlevel установить padding-right какой нужен методом тыка
И все будет чудесным образом переноситься"

Митрич: white-space:nowrap
Вы: white-space:normal
Нужно лечиться в молодости, что бы не болеть в старости.
*

Mr_SMiT

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Меню с переносом строки
« Ответ #8 : 19.11.2009, 18:47:58 »
Цитировать
Синтаксис
white-space: normal | nowrap | pre

Аргументы
normal Текст в окне браузера выводится как обычно, переносы строк устанавливаются автоматически.
nowrap Переносы строк в коде HTML игнорируются, весь текст отображается одной строкой, вместе с тем, добавление тега <BR> переносит текст на новую строку.
pre Текст показывается с учетом всех пробелов и переносов, как они были добавлены разработчиком в коде HTML. Если строка получается слишком длинной и не помещается в окне браузера, то будет добавлена горизонтальная полоса прокрутки.
*

Mr_SMiT

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Меню с переносом строки
« Ответ #9 : 19.11.2009, 18:51:57 »
И в файле legacy.php <td nowrap="nowrap"> тоже удалял - не помогает
*

Mr_SMiT

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Меню с переносом строки
« Ответ #10 : 19.11.2009, 19:50:35 »
Вроде надыбал в файле шаблона нужную строчку и добавил $result = str_replace('|', '<br />', $result); Но теперь ни вертикальной палки ни тега br не отображается и меню просто обрывается в этом месте.
*

Mr_SMiT

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Меню с переносом строки
« Ответ #11 : 20.11.2009, 13:37:23 »
Идея родилась! Помню был плагин для замены текста, может он поможет. Вот только запамятовал - как называется.
*

AlexAGF

  • Захожу иногда
  • 70
  • 6 / 0
Re: Меню с переносом строки
« Ответ #12 : 01.07.2010, 16:30:18 »
Подниму тему, т.к. рабочего решениядля j1.5.x не нашел.
Необходимо в определенных местах меню вставлять перенос строки.
Идеальный вариант заменой | на <br />

Помогите решить вопрос!
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Меню с переносом строки
« Ответ #13 : 01.07.2010, 20:36:01 »
Что вы паритесь? Я для себя эту проблему уже решил намного проще :) Чего и вам желаю
*

AlexAGF

  • Захожу иногда
  • 70
  • 6 / 0
Re: Меню с переносом строки
« Ответ #14 : 02.07.2010, 10:29:10 »
drobinkin
Решение замечательное, но появляется новая проблема!
Отписал здесь.
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Меню с переносом строки
« Ответ #15 : 02.07.2010, 12:23:29 »
Да, с крошками нехорошо получилось, оно и понятно :) НО — "вьетнамци не здаються!"
Пришла мне в голову мысль :) — модуль крошек все же поменьше будет, чем меню, и отловить в нем резалку спецсимволов будет проще.
Что я и сделал — закомментил в файле хелпер.пхп модуля крошек строчку
Код: php
$items[$i]->name = stripslashes(htmlspecialchars($items[$i]->name));
— и вуаля — имею меню в две строчки, а крошки в одну :)
Единственно, я гляжу, у крошек что-ли стоит где-то ограничение на длину выводимой строки для каждого подпункта :(
« Последнее редактирование: 02.07.2010, 12:26:33 от drobinkin »
*

AlexAGF

  • Захожу иногда
  • 70
  • 6 / 0
Re: Меню с переносом строки
« Ответ #16 : 02.07.2010, 14:59:12 »
Спасибо. Работает.
Но, ИМХО, правильнее было бы сделать замену в файле шаблона модуля.
Это возможно?
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Меню с переносом строки
« Ответ #17 : 02.07.2010, 15:14:48 »
замену надо делать непосредственно перед echo $result;
Неужели за время ковыряния в php не выучили что означает echo
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Меню с переносом строки
« Ответ #18 : 02.07.2010, 15:16:27 »
А как насчет ограничения кол-ва символов в пунктах? Где это можно глянуть?
*

AlexAGF

  • Захожу иногда
  • 70
  • 6 / 0
Re: Меню с переносом строки
« Ответ #19 : 02.07.2010, 15:48:51 »
danik.html
Эх, братцы, кабы я хоть что-то понимал в РНР, то и вопросов бы таких не задавал.
Если можете, выложите правленый файлик с заменой.
Буду очень благодарен!
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Меню с переносом строки
« Ответ #20 : 02.07.2010, 16:53:01 »
для этого не обязательно даже знать php, главное иметь желание. ведь тут достаточно скомбинировать то что тут писали:

$result = str_replace('|','<br />',$result);
echo $result;

файл mod_mainmenu/helper.php
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

AlexAGF

  • Захожу иногда
  • 70
  • 6 / 0
Re: Меню с переносом строки
« Ответ #21 : 02.07.2010, 17:28:05 »
Попробовал. Как ни странно, замена не работает.
Да, и Вы потеряли суть проблемы!

Теперь необходимо с помощью замены убрать перевод строки из хлебных крошек.
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Меню с переносом строки
« Ответ #22 : 02.07.2010, 18:51:16 »
Теперь необходимо с помощью замены убрать перевод строки из хлебных крошек.
Может, как-то так?
$result = str_replace('<br />','&nbsp;',$result);
echo $result;
*

AlexAGF

  • Захожу иногда
  • 70
  • 6 / 0
Re: Меню с переносом строки
« Ответ #23 : 02.07.2010, 19:17:55 »
Так нету echo $result; в хлебных крошках!
Есть:
Код
<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>
<span class="breadcrumbs pathway">
<?php for ($i = 0; $i < $count; $i ++) :

// If not the last item in the breadcrumbs add the separator
if ($i < $count -1) {
if(!empty($list[$i]->link)) {
echo '<a href="'.$list[$i]->link.'" class="pathway">'.$list[$i]->name.'</a>';
} else {
echo $list[$i]->name;
}
echo ' '.$separator.' ';
else if ($params->get('showLast', 1)) { // when $i == $count -1 and 'showLast' is true
    echo $list[$i]->name;
}
endfor; ?>
</span>
Попробовал:
Код
<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>
<span class="breadcrumbs pathway">
<?php for ($i = 0; $i < $count; $i ++) :

   // If not the last item in the breadcrumbs add the separator
   if ($i < $count -1) {
       if(!empty($list[$i]->link)) {
           echo '<a href="'.$list[$i]->link.'" class="pathway">'.str_replace("<br />"," ",$list[$i]->name).'</a>';
       } else {
           echo str_replace("<br />"," ",$list[$i]->name);
       }
       echo ' '.$separator.' ';
   }  else if ($params->get('showLast', 1)) { // when $i == $count -1 and 'showLast' is true
       echo str_replace("<br />"," ",$list[$i]->name);
   }
endfor; ?>
</span>
Не заменяет!
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Меню с переносом строки
« Ответ #24 : 02.07.2010, 19:27:03 »
так так.. а откуда там возьмется <br /> ?
если только вы не пишете в админке
Я пункт меню<br />я его вторая строчка....
и то, помоему <br /> превратится в &lt;br /&gt;
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

AlexAGF

  • Захожу иногда
  • 70
  • 6 / 0
Re: Меню с переносом строки
« Ответ #25 : 02.07.2010, 19:37:40 »
Блин, мы с этой проблемой пляшем меж двух топиков.
<br /> в меню уже вставлены с помощью плагина Sourcerer

И самое интересное, если я в вышеприведенном примере вместо $list[$i]->name пишу вася<br />пупкин,
то замена происходит на ура.
« Последнее редактирование: 02.07.2010, 19:41:08 от AlexAGF »
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Меню с переносом строки
« Ответ #26 : 02.07.2010, 19:45:12 »
AlexAGF, дык в чем траблы-то? Я тебе вариант решения проблемы с крошками написал несколькими постами выше.
*

drobinkin

  • Захожу иногда
  • 90
  • 4 / 0
  • Старый пират
Re: Меню с переносом строки
« Ответ #27 : 02.07.2010, 19:49:29 »
Не заменяет!
Как вариант — перебрать возможные комбинации, в т.ч. и указанную Даником.хтмл-ом (их не так уж и много по идее)
*

AlexAGF

  • Захожу иногда
  • 70
  • 6 / 0
Re: Меню с переносом строки
« Ответ #28 : 03.07.2010, 07:09:52 »
AlexAGF, дык в чем траблы-то? Я тебе вариант решения проблемы с крошками написал несколькими постами выше.
Да, в общем, ни в чем. Хотелось вариант подмены именно в шаблоне.

danik.html
Ура и спасибо! Вариант с &lt;br /&gt; работает!
Мне это даже в голову не пришло.
« Последнее редактирование: 03.07.2010, 07:23:31 от AlexAGF »
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Меню с переносом строки
« Ответ #29 : 03.07.2010, 07:33:07 »
Вот. Для вашей задачи с небольшими переделками вполне подойдет.
http://www.joomla15.ru/%D0%B2%D0%B5%D1%80%D1%82%D1%81%D0%BA%D0%B0/receips-makeup/73-helpermodmainmenutitle.html
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

убрать из меню заголовки h3

Автор nexter

Ответов: 19
Просмотров: 7886
Последний ответ 03.02.2020, 18:49:47
от durte
При добавлении нового пункта меню не отображается содержимое

Автор Denko

Ответов: 2
Просмотров: 3294
Последний ответ 16.01.2020, 18:40:55
от Denko
Не нажимается пункт меню на мобильной версии

Автор Sensession

Ответов: 7
Просмотров: 4794
Последний ответ 04.01.2020, 16:45:27
от xpank
Не отображаются пункты в меню

Автор physic

Ответов: 20
Просмотров: 23002
Последний ответ 20.09.2019, 16:54:01
от beliyadm
Как в ARI Ext Menu добиться работы параметра "Показать в меню"?

Автор vasmed

Ответов: 1
Просмотров: 3541
Последний ответ 01.03.2019, 11:12:18
от vasmed