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

AmdAveO

  • Захожу иногда
  • 165
  • 43 / 2
Что такое каноническая страница? Зачем нужно указывать rel="canonical"?
Спойлер
[свернуть]

Сегодня в первый раз открыл для себя Joomla 3.х (сказывается отсутствие времени). Подтолкнула меня к этому Taatshi.

Вобщем поставил себе тестовую версию тройки и понял, что незря отношусь с недоверием к разного рода плагинам.
В этой версии Joomla добавлена генерация ссылки canonical при помощи системного sef-плагина.
Похвальное начинание НО, результат плачевный. Во всех тестовых материалах, где я нашел ссылку canonical, была прописана ссылка на раздел материала, а не на сам материал.
В плане поисковой оптимизации это тихий ужас. Поисковики просто выкинут страницы материалов и оставят в индексе только страницы разделов. (Если конечно я в этом что-то понимаю)

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

Приступим.

Ссылка Canonical для главной страницы.
Внимание! Этот шаг не обязателен. Его можно использовать если на главной странице используется стандартный компонент материалов com_content.
Открываем файл templates/МОЙ ШАБЛОН/index.php
Спойлер
[свернуть]

Ссылка Canonical для страниц компонента материалов (com_content)
Открываем файл templates/МОЙ ШАБЛОН/html/com_content/archive/default.php
Спойлер
[свернуть]

Открываем файл templates/МОЙ ШАБЛОН/html/com_content/article/default.php
Спойлер
[свернуть]

Открываем файл templates/МОЙ ШАБЛОН/html/com_content/categories/default.php
Спойлер
[свернуть]

Открываем файл templates/МОЙ ШАБЛОН/html/com_content/category/blog.php
Спойлер
[свернуть]

Открываем файл templates/МОЙ ШАБЛОН/html/com_content/category/default.php
Спойлер
[свернуть]

Открываем файл templates/МОЙ ШАБЛОН/html/com_content/featured/default.php
Спойлер
[свернуть]

//------------------------------------------------------------------------------------------------------------------------------------------//

Для тех у кого нет файлов-шаблонов в templates/МОЙ ШАБЛОН/html/com_content/ и они не знают где их взять
Спойлер
[свернуть]

Не забываем!
1. Следить за обновлениями поста. Возможны правки!
2. Нашли ошибку? Пишите сюда, попробуем разобраться.
3. При обновлении заменяем весь код находящийся между строками
Код
// ------------ Start Canonical-Mod
и
Код
// ------------ End Canonical-Mod
« Последнее редактирование: 25.10.2012, 22:09:16 от AmdAveO »
Просить не буду! Сами дадите, когда совесть замучает. R336340187313
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Артур, ты забыл написать, как избавляться от родного rel canonical

У новичков могут возникать вопросы по этому поводу.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

AmdAveO

  • Захожу иногда
  • 165
  • 43 / 2
Лена, родной canonical сбрасывается автоматом.
Эти строки в коде
Код
// Удаляем ссылку каноникал добавленную системным sef-плагином
foreach (JFactory::getDocument()->_links as $key=>$link) {
if (($link['relation'] == 'canonical')) {
unset(JFactory::getDocument()->_links[$key]);
break;
}
}

Цитата: frisian
1. как бы ничего что даже разработчики не рекомендуют сейчас использовать Joomla 3 на боевых проэктах?
Да как бы и ничего. Только зачем тогда в народ выкладывать, да еще релизом называть?
Или ты тут в защитников решил поиграть? Только я не прокурор. ::)

Цитата: frisian
2. Почему не написать свой плагин? зачем столько лишних телодвижений?
За чем дело стало? Пиши свой плагин и не будет лишних телодвижений. ;)
Просить не буду! Сами дадите, когда совесть замучает. R336340187313
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
AmdAveO Ссылка Canonical для главной страницы
JSite::getMenu()->getActive() == JSite::getMenu()->getDefault()
Правильно так:
JSite::getMenu()->getActive()->id == JSite::getMenu()->getDefault()->id
и опять же это частный случай. если ссылка будет формироваться с использованием  query строки то и контент может быть разный. И не обязательно материалом. Мы же данному контенту, может быть совсем разному и не связанному задаем canonical
Далее $docstart = JRequest::getInt('start',0);
А если не start. Компоненты разные бывают и могут использовать разную пагинацию. Вместо JRequest следует мне кажется использовать JInput
$doc->addHeadLink($link, 'canonical'); И плагин тогда стоит отключать родной.
Без каких либо обид. Но плагин здесь уместнее. А делать смысла нет. Разработчики надеюсь сами исправят
*

AmdAveO

  • Захожу иногда
  • 165
  • 43 / 2
frisian, тут как бы два варианта развития событий
1. Тебе оно надо и ты берешь.
2. Тебе оно НЕ надо и ты НЕ берешь.
Как я вижу с выбором у тебя проблем не возникло. Так в чем еще проблемы, у тебя что-то отобрали?

Poznakomlus
Конструктивно.
Можно с id, можно и без. Хотя согласен, с id будет более правильно.
В JInput не вижу особой выгоды. А она есть?
Да, по поводу пагинатора на главной тоже думал, но поскольку речь идет о родном компоненте материалов Joomla, решил его оставить.
Сделаю пометку о других компонентах.

Еще раз о плагине.
1. Он уже есть. Его исправление это вопрос времени.
2. Плагины зависят от приоритета их исполнения. Сдается мне, что это и есть причина косяка в родном плагине. Хотя, могу и ошибаться.
3. Не известно как поведет себя такой плагин с другими компонентами. Не появится ли например в ZOO, две разных ссылки canonical?

Вобщем, у кого есть желание и время, делайте плагин, или дорабатывайте уже имеющийся. Я всегда за!
Только пустословием заниматься не стоит.
Просить не буду! Сами дадите, когда совесть замучает. R336340187313
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
Большое спасибо! А то у меня пять страниц из индекса выпало, и хоть Я их добавил в вебмастере снова, вовсе убрав rel="canonical" из плагина, восстанавливаются они уже неделю. Такое ощущение, что Яндекс вообще в последнее время работать не хочет.
frisian, ну так напишите плагин, чего хейтера включаете то? Или скажите как родной исправить. Человек в любом случае старался, так что по моему тут не оскорблять надо, а скорее (если это нужно) поправить.
*

AmdAveO

  • Захожу иногда
  • 165
  • 43 / 2
Из всего написанного тобой, я пока вижу толк только в этом
Цитата: frisian
ну кроме того что скоро JRequest вообще будет удален наверно выгоды нет..
За что тебе огромное спасибо!
Каюсь, я не живу в багтрекере Joomla, и не слежу за их новостями. Как-то вот так сложилось.

Есть еще толковые предложения?
« Последнее редактирование: 24.10.2012, 22:35:13 от ELLE »
Просить не буду! Сами дадите, когда совесть замучает. R336340187313
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
frisian не горячись. Веришь я здесь усмотрел применение твоей строчки кода
if(JMenuSite::getInstance('site')->getActive()->home) здесь наверно ей самое место для первого случая
*

AmdAveO

  • Захожу иногда
  • 165
  • 43 / 2
Poznakomlus
Уверен, что все пользователи используют "home" в качестве алиаса для главной страницы? Я встречал и другие.
Или тут "JMenuSite::getInstance('site')->getActive()->home" не спрашивается алиас?
Может всетаки тут подсмотреть?
« Последнее редактирование: 25.10.2012, 13:25:28 от AmdAveO »
Просить не буду! Сами дадите, когда совесть замучает. R336340187313
*

AmdAveO

  • Захожу иногда
  • 165
  • 43 / 2
Цитата: Poznakomlus
AmdAveO смотрите FAQ форума Joomla 2.5 - проверка на главную страницу
Уже смотрел. Правда не увидел пока причины того, почему это if ($menu->getActive()!= $menu->getDefault()) не работает.
Я сейчас говорю не о том, что лучше, а о том, в каких случаях оно не работает. Кручу это условие на локале и проблемы пока не встретил.

Цитата: Poznakomlus
AmdAveO смотрите FAQ форума Joomla 2.5 - проверка на главную страницу
кто сказал, что это алиас <?php echo '<pre>'.var_dump(JMenuSite::getInstance('site')->getActive()).'</pre>'; ?>
Никто не сказал. Я спросил.

Цитата: Poznakomlus
техническая информация которую вы привели не актуальная
Это просто утверждение или факт?

Цитата: Poznakomlus
ну и вы должны понимать, что вам не главная нужна а все страницы которые "цепляются" к активному меню главной
Стал бы я спрашивать про алиас не понимая этого?

Не имеет абсолютно никакого смысла. Хозяин сайта сам должен решать какой странице добавить тег (на подобии description)
Абсолютно не согласен с этим.
Я знаю с десяток авторов которых абсолютно не волнует техническая сторона работы.
Некоторых не заставишь и description прописать, а не то чтобы еще делать выбор ссылки canonical.
Тут просто нужно сделать возможным выбор подключения/отключения canonical в плагине.
Просить не буду! Сами дадите, когда совесть замучает. R336340187313
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Наверно стоит объяснить почему порнография.
1. С каких таких побуждений мы привязываем ссылки к меню
2. Может стоит посмотреть в меню как ссылки формируются. Найди 3 отличия
Открываем файл templates/МОЙ ШАБЛОН/html/com_content/categories/default.php
...
JFactory::getDocument()->addHeadLink('http://' . $_SERVER['SERVER_NAME'] . JRoute::_(ContentHelperRoute::getCategoryRoute($this->parent->id)). $docpagenr, 'canonical', 'rel', '');
...
Открываем файл templates/МОЙ ШАБЛОН/html/com_content/category/blog.php
...
JFactory::getDocument()->addHeadLink('http://' . $_SERVER['SERVER_NAME'] . JRoute::_(ContentHelperRoute::getCategoryRoute($this->category->id)). $docpagenr, 'canonical', 'rel', '');
...
Открываем файл templates/МОЙ ШАБЛОН/html/com_content/category/default.php
...
JFactory::getDocument()->addHeadLink('http://' . $_SERVER['SERVER_NAME'] . JRoute::_(ContentHelperRoute::getCategoryRoute($this->category->id)). $docpagenr, 'canonical', 'rel', '');
*

AmdAveO

  • Захожу иногда
  • 165
  • 43 / 2
Poznakomlus
Это объяснение или просто вопросы без вопросительных знаков?
Честно говоря, не понятна их цель.
Просить не буду! Сами дадите, когда совесть замучает. R336340187313
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
это говорит о том, что вы привели решение совсем не понимая, что и о чем пишите
разберитесь для начала как формируются ссылки в Joomla потом выдавайте их за решения
Ссылка на документ может формироваться по разному.
Документ привязан к меню(ваш вариант). Категория/документ(ContentHelperRoute::getArticleRoute($id, $catid, $this->language);)? документ ('index.php?option=com_content&view=article&id='.$id)
Так вот, два последних варианта наиболее больше соответствуют каноническим ссылкам/ Но это никак не вариант сменю. Про категории уже написал выше
*

Taatshi

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Канонические ссылки для Joomla 3

Плагин специально повесил на событие onBeforeCompileHead, чтобы не отслеживать порядок размещения по отношению к системному. Он обрабатывает onAfterRoute() (системный). Присоединяйся, ведь плагин нужен будет всем. Конструктивная критика всегда приветствуется
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Помогите с БАГом в панели администратора Joomla 3

Автор akteon25

Ответов: 2
Просмотров: 1088
Последний ответ 26.02.2025, 16:41:56
от akteon25
Версии РНР и Joomla 3

Автор Ebelous

Ответов: 8
Просмотров: 2863
Последний ответ 27.01.2025, 20:38:45
от pavelrer
Trouble Upgrading from Joomla 3.8 to 3.9

Автор melissa00

Ответов: 0
Просмотров: 1694
Последний ответ 26.07.2024, 10:03:51
от melissa00
SP polls в Joomla 3.8.2

Автор wawont

Ответов: 2
Просмотров: 3366
Последний ответ 22.02.2024, 21:03:15
от Zegeberg
Исправление уязвимости в Joomla 3.10.12

Автор Sulpher

Ответов: 8
Просмотров: 3048
Последний ответ 12.01.2024, 22:15:52
от stepan39