Новости 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

Компания JetBrains рассказала о своей поддержке Joomla

Компания JetBrains рассказала о своей поддержке Joomla

JetBrains - один из мировых лидеров в разработке программного обеспечения для разработчиков. Её программные продукты - это IDE - профессиональные среды разработки, которые отличаются от простого блокнота/редактора с плагинами набором всевозможных инструментов для разработчиков, глубоким анализом кодовой базы, подсказками по ней и по языку программирования, отладкой ошибок и многим-многим другим. Одним из самых известных продуктов компании является IDE PHP Storm, который можно назвать отраслевым стандартом PHP-разработчика.

В статье How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples в блоге компании описываются Open Source проекты, которым JetBrains оказывает поддержку (это могут быть бесплатные лицензии для разработчиков для некоммерческих проектов).

В список попали:

  • PHPUnit - фреймворк для unit-тестирования в PHP
  • Doctrine DBAL - библиотека для PHP, которая предоставляет лёгкий и гибкий слой для коммуникации с базой данных. Она поддерживает различные базы данных через единый и согласованный API.
  • CodeIgniter — популярный MVC-фреймворк для разработки на PHP
  • Joomla! - наша любимая CMS.

Эти названия (кроме "Joomla") чаще всего не слышат вебмастера и разработчики обычных сайтов и интернет-магазинов. Но эти названия хорошо знакомы PHP-разработчикам, которые создают сложные и высоконагруженные проекты и микросервисы. То, что Joomla оказалась в одном ряду с такими программными инструментами - делает ей честь.

🙏 За ссылку спасибо участнику нашего сообщества Ринату Кажетову (@rkazhet).

Подпишитесь на @joomlafeed

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

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Как написать страницу?
« : 21.09.2018, 13:00:18 »
Понимаю. что вопрос наверняка объёмный, и вряд-ли кто захочет тут все подробно выкладывать, но может кто ссылку на материалы даст.
Собственно сам вопрос: как прописать страницу Joomla 3.8 ? Не материалом, а сделать php файл, содержимое которого будет отображаться в <jdoc:include type="component"/> ?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Как написать страницу?
« Ответ #1 : 21.09.2018, 13:05:13 »
Что бы создать страницу необходимо три файла
  • Controller - папка controllers
  • Model - папка models
  • View - папка views
Но просто так она не откроется. Для этого надо отдельный компонент!
Это лучше один раз увидеть, чем целую книгу читать...
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Как написать страницу?
« Ответ #2 : 21.09.2018, 15:04:30 »
Понимаю. что вопрос наверняка объёмный, и вряд-ли кто захочет тут все подробно выкладывать, но может кто ссылку на материалы даст.
Можно просто и быстро, в зависимости от задачи
https://www.inmotionhosting.com/support/edu/joomla-3/create-component/helloworld
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Как написать страницу?
« Ответ #3 : 24.09.2018, 10:55:57 »
Спасибо, конечно, а по русски нет ?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Как написать страницу?
« Ответ #4 : 24.09.2018, 11:11:48 »
Спасибо, конечно, а по русски нет ?
Если по русски, то это очень много надо писать.
Надо один раз увидеть!!
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Как написать страницу?
« Ответ #5 : 24.09.2018, 11:27:39 »
Спасибо, конечно, а по русски нет ?
https://docs.joomla.org/J3.x:Developing_an_MVC_Component/Developing_a_Basic_Component/ru
Обязательно helloworld.xml не пустой, иначе инсталлятор будет ругаться.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Как написать страницу?
« Ответ #6 : 24.09.2018, 13:17:11 »
Код
$path   = JURI::base(true).'/templates/'.$app->getTemplate().'/';
<?php include_once($path.'/includes/MyPhp.php'); ?>
*

Mick_20

  • Завсегдатай
  • 1025
  • 3 / 0
  • Что тут писать?
Re: Как написать страницу?
« Ответ #7 : 25.09.2018, 07:41:51 »
если одну php-страницу создать, то заинклюдить ее с помощью плагина и все.
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Как написать страницу?
« Ответ #8 : 01.10.2018, 10:37:39 »
Такая проблема: написал две страницы как плагин в виде :
В папке components/com_straisa1 создать файлы straisa1.xml и straisa1.php. В первом прописываю код
Код
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.0" method="upgrade">

<name>straisa1</name>
<!-- The following elements are optional and free of formatting constraints -->
<creationDate>January 2018</creationDate>
<author>John Doe</author>
<authorEmail>john.doe@example.org</authorEmail>
<authorUrl>http://www.example.org</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
<!--  The version string is recorded in the components table -->
<version>0.0.1</version>
<!-- The description is optional and defaults to the name -->
<description>Description of the Hello World component ...</description>

<update> <!-- Runs on update; New since J2.5 -->
<schemas>
<schemapath type="mysql">sql/updates/mysql</schemapath>
</schemas>
</update>

<!-- Site Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /site/ in the package -->
<files folder="site">
<filename>index.html</filename>
<filename>straisa1.php</filename>
</files>

<administration>
<!-- Administration Menu Section -->
<menu link='index.php?option=com_helloworld'>straisa1</menu>
<!-- Administration Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /admin/ in the package -->
<files folder="admin">
<!-- Admin Main File Copy Section -->
<filename>index.html</filename>
<filename>straisa1.php</filename>
<!-- SQL files section -->
<folder>sql</folder>
</files>
</administration>

</extension>
В Joomle создаю в меню кнопку со ссылкой на внешний url https://domkomexpr/index.php?option=com_straisa1
Вторая страница создается также, только везде straisa2.
В straisa1.php прописываю
Код
<form action="" method="GET">
    <input type="text" name="username">
    <input type="submit">
</form>

<?php
//Если форма была отправлена и имя не пустое:
if (!empty($_REQUEST['username'])) {
    //Пишем имя в куки:
    setcookie('username', $_REQUEST['username'], time()+3600, '/');
}

?>

В straisa2.php
Код
<?php
//Если есть данные в куки об имени пользователя:
if (!empty($_COOKIE['username'])) {
    echo $_COOKIE['username']; //выведем имя на экран
}
?>

Только ничего не выводится. Если код со straisa1.php прописать в index.php шаблона сайта, то все работает нормально. В чём может быть проблема.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Переход на страницу материала после его размещения пользователем

Автор stepan39

Ответов: 0
Просмотров: 614
Последний ответ 22.11.2024, 07:14:15
от stepan39
Как определить главную страницу без меню?

Автор d0ublezer0

Ответов: 4
Просмотров: 1333
Последний ответ 23.03.2023, 13:26:57
от gen2023
Редактирование title через страницу

Автор toxic_rain

Ответов: 1
Просмотров: 594
Последний ответ 28.02.2023, 11:54:28
от sivers
Проблема с кэшем сайта - приходится дважды обновлять страницу

Автор LuNa82

Ответов: 8
Просмотров: 1028
Последний ответ 22.02.2023, 12:26:36
от sivers
Как в конце модуля mod_articles_news вывести ссылку на страницу с блогом?

Автор androv77

Ответов: 4
Просмотров: 709
Последний ответ 20.09.2022, 11:20:29
от androv77