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

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Не создается база данных
« : 10.10.2018, 10:42:58 »
При попытке установить сделанный мной компонент не происходит создане его таблицы в базе данных
в admin/sql/install.mysql.utf8.sql пишу
Код
CREATE TABLE IF NOT EXISTS '#_straniza'(
'id' int(11) NOT NULL AUTO_INCREMENT,
'title' varchar(25) NOT NULL,
'published' tinyint(4) DEFAULT NULL,
'text' text NOT NULL,
'images' varchar(1024) NOT NULL DEFAULT '',
'publish_up' datetime DEFAULT NULL,
'alias' varchar(45) DEFAULT NULL,
PRIMARY KEY(`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11;
В чем может быть проблема ?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Не создается база данных
« Ответ #1 : 10.10.2018, 10:47:04 »
Код: sql
CREATE TABLE `#__straniza` (
  `id` int(11) NOT NULL,
  `title` varchar(25) DEFAULT NULL,
  `published` tinyint(3) NOT NULL DEFAULT '0',
  `text` text,
  `images` text,
  `publish_up` datetime DEFAULT NULL,
  `alias` varchar(25) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `#__straniza` ADD PRIMARY KEY (`id`);
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Не создается база данных
« Ответ #2 : 10.10.2018, 10:57:17 »
Не помогает. К тому-же, теперь при установке пишет

JInstaller: :Install: Не удалось найти XML-файл установк

install.xml у меня такой

Код
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.0" method="upgrade">
<name>straniza</name>
<creationDate>January 2018</creationDate>
<author>John Doe</author>
<authorEmail>john.doe@example.org</authorEmail>
<authorUrl>http://www.example.org</authorUrl>
<license>License Info</license>
<version>1.0.0</version>
<description>vivodit straniza</description>
<files folder="site">
<folder>language</folder>
<folder>models</folder>
<folder>views</folder>
<filename>controller.php</filename>
<filename>straniza.php</filename>
</files>
<languages folder="site/language">
<language tag="ru-RU">ru-RU/ru-RU.com_straniza.ini</language>
</languages>
<install>
<sql>
<file driver='mysql' charset="utf-8">sql/install.mysql.utf8.sql</file>
</sql>
</install>
<uninstall>
<sql>
<file driver='mysql' charset="utf-8">sql/uninstall.mysql.utf8.sql</file>
</sql>
</uninstall>
<administration>
<menu link="index.php?option=com_straniza">straniza</menu>
<files folder="admin">
<folder>language</folder>
<folder>models</folder>
<folder>views</folder>
<folder>controllers</folder>
<folder>tables</folder>
<folder>sql</folder>
<filename>controller.php</filename>
<filename>straniza.php</filename>
</files>
<languages folder="admin/language">
<language tag="ru-RU">ru-RU/ru-RU.com_straniza.ini</language>
<language tag="ru-RU">ru-RU/ru-RU.com_straniza.sys.ini</language>
</languages>
</administration>
</extension>
« Последнее редактирование: 10.10.2018, 11:03:35 от leha111 »
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Не создается база данных
« Ответ #3 : 10.10.2018, 11:05:29 »
install.xml у меня такой
имя XML файла должно быть таким же как и имя компонента, только без com_
Если имя компонента com_admin, то имя XML файла будет admin.xml
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Не создается база данных
« Ответ #4 : 10.10.2018, 11:14:20 »
Переименовал как надо. На установщик больше не жалуется, но  бд при установке все равно не создается.
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Не создается база данных
« Ответ #5 : 10.10.2018, 11:18:36 »
Код: xml
<install>
    <sql>
      <file driver="mysqli" charset="utf8">install.mysql.sql</file>
    </sql>
  </install>
  <uninstall>
    <sql>
      <file driver="mysqli" charset="utf8">uninstall.mysql.sql</file>
    </sql>
</uninstall>
Файлы должны находится в корне компонента для админки...

Попробуй так...
Код: sql
CREATE TABLE `#__straniza` (
  `id` int(11) NOT NULL,
  `title` varchar(25) DEFAULT NULL,
  `published` tinyint(3) NOT NULL DEFAULT '0',
  `text` text,
  `images` text,
  `publish_up` datetime DEFAULT NULL,
  `alias` varchar(25) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `#__straniza` ADD PRIMARY KEY (`id`);
ALTER TABLE `#__straniza` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Не создается база данных
« Ответ #6 : 10.10.2018, 11:23:53 »
"Файлы должны находится в корне компонента для админки..."

Так, что-ли ?

admin/install.mysql.utf8.sql
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Не создается база данных
« Ответ #7 : 10.10.2018, 11:37:23 »
"Файлы должны находится в корне компонента для админки..."

Так, что-ли ?

admin/install.mysql.utf8.sql
Вот какая у меня структура для компонентов
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Не создается база данных
« Ответ #8 : 10.10.2018, 12:09:07 »
index.xml в admin переименовал в config.xml
Оба файла вынес в admin и изменил их названия как у вас
В Sytraniza.xml  прписал
Код
?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.0" method="upgrade">
<name>straniza</name>
<creationDate>January 2018</creationDate>
<author>John Doe</author>
<authorEmail>john.doe@example.org</authorEmail>
<authorUrl>http://www.example.org</authorUrl>
<license>License Info</license>
<version>1.0.0</version>
<description>vivodit straniza</description>
<files folder="site">
<folder>language</folder>
<folder>models</folder>
<folder>views</folder>
<filename>controller.php</filename>
<filename>straniza.php</filename>
</files>
<languages folder="site/language">
<language tag="ru-RU">ru-RU/ru-RU.com_straniza.ini</language>
</languages>
<install>
<sql>
<file driver='mysql' charset="utf-8">install.mysql.sql</file>
</sql>
</install>
<uninstall>
<sql>
<file driver='mysql' charset="utf-8">uninstall.mysql.sql</file>
</sql>
</uninstall>
<administration>
<menu link="index.php?option=com_straniza">straniza</menu>
<files folder="admin">
<folder>language</folder>
<folder>models</folder>
<folder>views</folder>
<folder>controllers</folder>
<folder>tables</folder>
<filename>controller.php</filename>
<filename>straniza.php</filename>
</files>
<languages folder="admin/language">
<language tag="ru-RU">ru-RU/ru-RU.com_straniza.ini</language>
<language tag="ru-RU">ru-RU/ru-RU.com_straniza.sys.ini</language>
</languages>
</administration>
</extension>

в config.xml
Код
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.0" method="upgrade">
<name>straniza</name>
<creationDate>January 2018</creationDate>
<author>John Doe</author>
<authorEmail>john.doe@example.org</authorEmail>
<authorUrl>http://www.example.org</authorUrl>
<license>License Info</license>
<version>1.0.0</version>
<description>vivodit straniza</description>
<files folder="site">
<folder>language</folder>
<folder>models</folder>
<folder>views</folder>
<filename>controller.php</filename>
<filename>straniza.php</filename>
</files>
<languages folder="site/language">
<language tag="ru-RU">ru-RU/ru-RU.com_straniza.ini</language>
</languages>
<install>
<sql>
<file driver='mysql' charset="utf-8">install.mysql.sql</file>
</sql>
</install>
<uninstall>
<sql>
<file driver='mysql' charset="utf-8">uninstall.mysql.sql</file>
</sql>
</uninstall>
<administration>
<menu link="index.php?option=com_straniza">straniza</menu>
<files folder="admin">
<folder>language</folder>
<folder>models</folder>
<folder>views</folder>
<folder>controllers</folder>
<folder>tables</folder>
<filename>controller.php</filename>
<filename>straniza.php</filename>
</files>
<languages folder="admin/language">
<language tag="ru-RU">ru-RU/ru-RU.com_straniza.ini</language>
<language tag="ru-RU">ru-RU/ru-RU.com_straniza.sys.ini</language>
</languages>
</administration>
</extension>

Все равно не добавляется.
« Последнее редактирование: 10.10.2018, 12:14:41 от leha111 »
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Не создается база данных
« Ответ #9 : 10.10.2018, 12:23:13 »
Все равно не добавляется.
Я знаю! Неправильно ни первый ни второй файл...
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Не создается база данных
« Ответ #10 : 10.10.2018, 12:29:58 »
А как правильно  ?
*

NewUsers

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

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Не создается база данных
« Ответ #12 : 10.10.2018, 12:38:43 »
Я в админке и так уже как у вас сделал

https://yadi.sk/d/78725U4STVKXnA
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Не создается база данных
« Ответ #13 : 10.10.2018, 12:44:32 »
Я в админке и так уже как у вас сделал

https://yadi.sk/d/78725U4STVKXnA
Так работает же!
https://yadi.sk/d/b_VjsWfeYQ78kg
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Не создается база данных
« Ответ #14 : 10.10.2018, 12:52:08 »
В смысле ? Вы прямо то что я скидывал пробовали загружать ?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Не создается база данных
« Ответ #15 : 10.10.2018, 12:53:50 »
В смысле ? Вы прямо то что я скидывал пробовали загружать ?
Да! Так убедительно https://yadi.sk/d/1O8y9c9FE54EBQ
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Не создается база данных
« Ответ #16 : 10.10.2018, 12:57:46 »
Странно. У меня вот она в бд что-то не появляется.  Щяс на другом сайте с локалки проверю. У вас Joomla какой версии ? А есть у вас при попытке создать и сохранить новый элемент ошибка Call to a member function getTableColumns() on null
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Не создается база данных
« Ответ #17 : 10.10.2018, 13:01:43 »
У вас Joomla какой версии ?
3.8.13

А есть у вас при попытке создать и сохранить новый элемент ошибка Call to a member function getTableColumns() on null
У меня другая https://yadi.sk/d/7AQxxDzYhufPhw
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Не создается база данных
« Ответ #18 : 10.10.2018, 13:29:42 »
Бд не создалась даже на новосозданном сайте. Видать, проблема в настройках OpenServer. Вы чем пользуйтесь
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Не создается база данных
« Ответ #19 : 10.10.2018, 13:35:13 »
Бд не создалась даже на новосозданном сайте. Видать, проблема в настройках OpenServer. Вы чем пользуйтесь
OpenServer-ом
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Не создается база данных
« Ответ #20 : 10.10.2018, 13:38:18 »
А версия-настройки какие ?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Не создается база данных
« Ответ #21 : 10.10.2018, 13:42:25 »
А версия-настройки какие ?
Версия: 5.2.2
Настройки: https://yadi.sk/d/rh3j7-XKlmHiIw
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться