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

onniby

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Доброго всем времени суток!
Ситуация следующая, шаблон свой, банальный, без наворотов, ничего не менялось. Со старта пагинация не выводит вперед и назад, есть только цифры страниц, в конец и в начало.
Схематически выглядит так - (в начало)-( )-(1)-(2)-(3)-(4)-( )-(в конец).
НА том же шаблоне на другом сайте все работает, выводит (Назад) (Вперед).
В языковых файлах константы есть, сравнивал фалы пагинации все, все норм.
Как исправить, как найти баг, где копать? В PHP разбираюсь интуитивно, на уровне, вырезал и посмотрел что получится)))
Пожалуйста помогите! *ОХ-Х-Х*
« Последнее редактирование: 30.04.2022, 11:13:50 от onniby »
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
Re: Проблемы с пагинацией, не выводит
« Ответ #1 : 30.04.2022, 11:13:02 »
пропишите вручную без переменных
может смотрит не на тот ини файл
индивидуальная помощь: @SetAlexx
*

onniby

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Проблемы с пагинацией, не выводит
« Ответ #2 : 30.04.2022, 11:16:29 »
пропишите вручную без переменных
может смотрит не на тот ини файл
Пробовал, он ничего в ссылку не выводит, вообще. ТО есть сама ссылка есть, а внутри, для отображения, ничего, если в инспекторе кода смотреть и вставить любой символ, все норм работает, вопрос в выводе.
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
а стилями не скрыто?
дайте кусок кода пагинации
индивидуальная помощь: @SetAlexx
*

onniby

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
а стилями не скрыто?
дайте кусок кода пагинации

Это вывод уже на странице...
Код
<div class="pagination">
<ul>
<li class="pagination-start"><span class="pagenav">В начало</span></li>
<li class="pagination-prev"><span class="pagenav"></span></li>
<li><span class="pagenav">1</span></li> <li><a href="/ru/katalog/avto-i-moto/avto-aksessuary?start=3" class="pagenav">2</a></li> <li class="pagination-next"><a title="" href="/ru/katalog/avto-i-moto/avto-aksessuary?start=3" class="hasTooltip pagenav"></a></li>
<li class="pagination-end"><a title="В конец" href="/ru/katalog/avto-i-moto/avto-aksessuary?start=3" class="hasTooltip pagenav">В конец</a></li>
</ul>
 </div>
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
так нужен не вывод а сам макет
индивидуальная помощь: @SetAlexx
*

onniby

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
так нужен не вывод а сам макет
Если  я правильно понимаю, за вывод отвечает файл link.php
Весь код, формирование ссылки внизу
Код
<?php
/**
 * @package     Joomla.Site
 * @subpackage  Layout
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('JPATH_BASE') or die;

/** @var JPaginationObject $item */
$item = $displayData['data'];

$display = $item->text;

switch ((string) $item->text)
{
// Check for "Start" item
case JText::_('JLIB_HTML_START') :
$icon = 'icon-backward icon-first';
break;

// Check for "Prev" item
case $item->text === JText::_('JPREV') :
$item->text = JText::_('JPREVIOUS');
$icon = 'icon-step-backward icon-previous';
break;

// Check for "Next" item
case JText::_('JNEXT') :
$icon = 'icon-step-forward icon-next';
break;

// Check for "End" item
case JText::_('JLIB_HTML_END') :
$icon = 'icon-forward icon-last';
break;

default:
$icon = null;
break;
}

if ($icon !== null)
{
$display = '<span class="' . $icon . '"></span>';
}

if ($displayData['active'])
{
if ($item->base > 0)
{
$limit = 'limitstart.value=' . $item->base;
}
else
{
$limit = 'limitstart.value=0';
}

$cssClasses = array();

$title = '';

if (!is_numeric($item->text))
{
JHtml::_('bootstrap.tooltip');
$cssClasses[] = 'hasTooltip';
$title = ' title="' . $item->text . '" ';
}

$onClick = 'document.adminForm.' . $item->prefix . 'limitstart.value=' . ($item->base > 0 ? $item->base : '0'). '; Joomla.submitform();return false;';
}
else
{
$class = (property_exists($item, 'active') && $item->active)? 'active' : 'disabled';
}
?>
<?php if ($displayData['active']) : ?>
<li>
<a <?php echo $cssClasses ? 'class="' . implode(' ', $cssClasses). '"' : ''; ?> <?php echo $title; ?> href="#" onclick="<?php echo $onClick; ?>">
<?php echo $display; ?>
</a>
</li>
<?php else : ?>
<li class="<?php echo $class; ?>">
<span><?php echo $display; ?></span>
</li>
<?php endif;

*

onniby

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
так нужен не вывод а сам макет
И это все? так тут помогают?  :D
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
вам тут никто ни чем не обязан. с вашим простеньким шаблоном.
за минус спасибо
индивидуальная помощь: @SetAlexx
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Так кнопки "вперед\назад" это ж не пагинация, это плагин "Навигация по страницам", или я чего то не понимаю?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
Так кнопки "вперед\назад" это ж не пагинация, это плагин "Навигация по страницам", или я чего то не понимаю?
в пагинации тоже встречаются
начало, назад, страницы, вперед, конец
но уже явно нет желания помогать
индивидуальная помощь: @SetAlexx
*

onniby

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
вам тут никто ни чем не обязан. с вашим простеньким шаблоном.
за минус спасибо
А я никого ни к чему не обязывал, я попросил помощи.
Не можете не беритесь.
А за пустые надежды можно и получить, в вашем случае всего лишь минус.
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
А я никого ни к чему не обязывал, я попросил помощи.
Не можете не беритесь.
А за пустые надежды можно и получить, в вашем случае всего лишь минус.
а не опух ли?
вам дали направление движения? мало?
ждите пока еще кто то что то подскажет.
не нравится? изучайте.
а то получить действительно можно и не только минус.
индивидуальная помощь: @SetAlexx
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не выводит категорию

Автор redmetal

Ответов: 2
Просмотров: 621
Последний ответ 26.10.2023, 12:19:37
от redmetal
Модуль «Материалы - Новости» выводит неправильное количество материалов

Автор goga_pgasovav

Ответов: 1
Просмотров: 909
Последний ответ 20.03.2023, 19:30:45
от goga_pgasovav
Проблемы с Шорткодами (Shortcode Designer)

Автор polezniy

Ответов: 7
Просмотров: 813
Последний ответ 20.10.2021, 16:17:56
от polezniy
Проблемы с пунктом меню типа - Метки/Список элементов

Автор ryocka

Ответов: 1
Просмотров: 884
Последний ответ 28.08.2020, 00:40:14
от Kon Dou
Проблемы с новым роутером

Автор d0ublezer0

Ответов: 1
Просмотров: 632
Последний ответ 21.08.2020, 10:27:34
от d0ublezer0