Новости 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 для атрибута addfieldprefix namespace 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 Гость просматривают эту тему.
  • 15 Ответов
  • 2789 Просмотров
*

D-Nik Lubny

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Здравствуйте. Для размещения своей ленты новостей на сайте UkrNet необходимо добавить в нее поле (тег) yandex:full-text. перерыл все в поиске и так ничего и не нашел. Только компонент платный есть и все. Но покупать не вариант (очень дорого). Поэтому прошу помощи у знающих людей и у тех, кому хочется развивать Joomla.
Нашел где лежит файл отвечающий за вывод тегов RSS \libraries\src\Document\Renderer\Feed\RssRenderer.php
В нем попроовал дописать тег на основе description
Код
$feed .= "<description><![CDATA[" . $this->_relToAbs($data->items[$i]->description). "]]></description>\n";
поменял на
Код
$feed .= "<yandex:full-text><![CDATA[" . $this->_relToAbs($data->items[$i]->description). "]]></yandex:full-text>\n";
В таком случае тег yandex:full-text добавляется в код ленты новостей и в нем текст описания новости, но сама лента, тоесть материал в ней не отображается.

Понимаю, что это все я неправильно делаю. Но это хатя бы уже какое то начало. Подскажите пожалуйста в каком направлении дальше копать. А именно:
1. Как прописать в тег yandex:full-text вывод полного материала новости (я так понимаю нужно знать какой файл подключается к БД)
2. Почему при добавлении, или изменении тегов в файте RssRenderer.php новости в RSS пропадают, но если посмотреть код страницы RSS то все теги там нормально прописаны.

Версия Joomla последняя 3.8

Зарание благодарен за помощь!
*

kern.USR

  • Давно я тут
  • 827
  • 68 / 1
Вы хотите модуль в Яндекс отправлять?
Либо вы что-то странное делаете, либо я вас плохо понял
*

D-Nik Lubny

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Да. Только не в Яндекс а в Ukr.net. Я так понимаю там принцип одинаковый, что в Яндекс, что в УкрНет.
*

effrit

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

Код
$feed = "<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"> \n";

вот это  xmlns:atom и далее попробуйте переделать на яндексную строку

Код
xmlns:yandex="http://news.yandex.ru"
*

D-Nik Lubny

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Я же говорю, мне Яндекс Не нужен. Мне нужно для УкрНет вставить тег <yandex:full-text>. Тоесть между <yandex:full-text></yandex:full-text> должна быть полная новость (материал).
*

effrit

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

D-Nik Lubny

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Вот взял навскидку сайт из новостной ленты УкрНет
Ссылка на их RSS https://newsyou.info/?yandex_feed=news
А вот и код
Спойлер
[свернуть]

Как видите в yandex:full-text заключен текст всего материала (всей новости)

effrit, спасибо вам большое за наводку. Буду копать в этом направлении. Только как еще мне полную новость вставить между <yandex:full-text>
*

effrit

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

D-Nik Lubny

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Сделал так как вы указали, но ничего не изменилось. Если не трудно взгляните пожалуйста.
Ссылка на RSS: https://lubenshina.com.ua/?format=feed&type=rss
А это код: view-source:https://lubenshina.com.ua/?format=feed&type=rss

В коде все отображается, а вот на самой странице RSS новостей нет.
« Последнее редактирование: 11.03.2018, 12:18:31 от D-Nik Lubny »
*

D-Nik Lubny

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Простите за невнимательность. Огромное спасибо!
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
вам ещё надо atom: убрать в link, по идее.
а ещё лучше доп. параметр передавать в ссылке &ynd=1 и на основе этого менять строки, иначе в других лентах может не отобразиться.
*

D-Nik Lubny

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
М-да. Для меня это темный лес. Может подскажете хорошую литературу по созданию RSS?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
да какой лес?
"как получить get переменную" + простое условие if - else, по которому будут выводиться или старые строки, или - новые.
какая вам литература нужна? формат Яндекс у него в справочнике описан.
https://yandex.ru/support/news/feed.html
я вот до сегодняшнего дня не знал, в чем там различия, так что тут не нужно быть специалистом, суть вы сами уловили, просто не все изменения нужные внесли.
*

D-Nik Lubny

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Еще раз спасибо. Вы мне очень помогли.
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Как вариант, можете использовать эту тему для создания ленты, не надо лезть в ядро, и только пару строк подогнать под необходимую разметку.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Лента новостей

Автор Serebro2009

Ответов: 11
Просмотров: 1852
Последний ответ 06.05.2015, 18:32:56
от Serebro2009
Куплю модуль для граба новостей из другого сайта J3.2

Автор volkov2000

Ответов: 0
Просмотров: 1108
Последний ответ 02.12.2013, 17:06:44
от volkov2000
Как убрать article_seperator из новостей в модуле Newsflash?

Автор Professor

Ответов: 2
Просмотров: 7437
Последний ответ 03.07.2008, 10:32:35
от Professor