Новости Joomla

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

При отображении форм компонента в админке раньше разработчикам нужно было описывать скрытые поля в лейаутах. И выглядело это так:

<?php // Это файл в /layouts/components/com_component/your_layout.php ?> <input type="hidden" name="task" value=""> <input type="hidden" name="return" value="<?php echo $input->getBase64('return'); ?>"> <input type="hidden" name="forcedLanguage" value="<?php echo $input->get('forcedLanguage', '', 'cmd'); ?>"> <?php echo HTMLHelper::_('form.token'); ?>

Начиная с Joomla 5.3 добавлен новый способ добавления таких полей (их называют control fields) - программно. И теперь это можно сделать просто в Controller / View.

<?php // В Controller/View добавляем поля $this->form ->addControlField('task', '') ->addControlField('return', $input->getBase64('return', '')) ->addControlField('forcedLanguage', $forcedLanguage);

А в layout'е просто используем метод

renderControlFields()

<?php // В layout формы echo $this->form->renderControlFields();

Многие компоненты ядра уже используют этот подход. Соответствующий PR был принят в Joomla 5.3 осенью 2024г.

Смотреть Pull Request

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

genius

  • Осваиваюсь на форуме
  • 42
  • 2 / 0
Все категории 2 уровня
« : 06.11.2020, 16:55:16 »
Доброго всем дня. Наконец то перехожу с 1.5 на 3 >:(. Перенес все что нужно. Осталось найти модуль который может вывести все категории 2 уровня независимо от родительской категории. Искал готовое решение найти не смог. на 1,5 пользовался mod_qcategories.
Прошу помощи у знатоков, весь день сегодня потратил на эту задачу *ОХ-Х-Х*
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Все категории 2 уровня
« Ответ #1 : 06.11.2020, 17:36:45 »
Код: php
$menus = JFactory::getApplication()->getMenu();
$items = $menus->getItems(array('level'), array(2));
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

genius

  • Осваиваюсь на форуме
  • 42
  • 2 / 0
Re: Все категории 2 уровня
« Ответ #2 : 06.11.2020, 18:53:15 »
А почему меню?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Все категории 2 уровня
« Ответ #3 : 06.11.2020, 19:29:40 »
А почему меню?
*ОХ-Х-Х* Точно! А в какой компоненте находятся категории?
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

genius

  • Осваиваюсь на форуме
  • 42
  • 2 / 0
Re: Все категории 2 уровня
« Ответ #4 : 07.11.2020, 09:33:39 »
В стандартном модуле mod_articles_categories в настройках задается категория родителя и максимальная глубина уровня
Вот код helper, как отключить чтобы все категории выбирал из бд а не только категории из параметра parent?
Код
$options               = array();
$options['countItems'] = $params->get('numitems', 0);

$categories = JCategories::getInstance('Content', $options);
$category   = $categories->get($params->get('parent', 'root'));

if ($category !== null)
{
$items = $category->getChildren();

$count = $params->get('count', 0);

if ($count > 0 && count($items) > $count)
{
$items = array_slice($items, 0, $count);
}
return $items;
}
}
}


*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Re: Все категории 2 уровня
« Ответ #5 : 07.11.2020, 10:03:54 »
Возможно, методы стандартного модуля не рассчитаны на это.
Если это так (не проверял, но скорее всего), я бы сделал свой модуль или свой клон стандартного модуля, с внесением правок. Свой запрос в БД для получения категорий 2 уровня.
Возможно, будет интересно: Интеграция с Ozon
*

genius

  • Осваиваюсь на форуме
  • 42
  • 2 / 0
Re: Все категории 2 уровня
« Ответ #6 : 07.11.2020, 11:59:50 »
я бы сделал свой модуль или свой клон стандартного модуля, с внесением правок. Свой запрос в БД для получения категорий 2 уровня.

Так и хочу сделать. Так и было сделано на 1.5 у меня, скопированый модуль выбирал из бд все категории и выводил на сайте. Еще я их фильтровал по первой букве и у меня таким образом получился алфавитный указатель. Теперь хочу сделать также на 3.9.
*

genius

  • Осваиваюсь на форуме
  • 42
  • 2 / 0
Re: Все категории 2 уровня
« Ответ #7 : 07.11.2020, 12:50:09 »
Скопировал модуль, вставил parent 0, и через default сделал сортировку по первой букве названия категории. Получился алфавитный указатель. Осталась проблема что категории не отсортированы по алфавиту. На 1.5 были отсортированы. как сделать сортировку? сейчас код вывада следующий:
Код
  <?php $buk = $item->title ?>
    <?php $z = mb_strtolower (mb_substr($buk,0,1,'UTF-8')); ?>
    <?php
    $document = & JFactory::getDocument();
        $document->getTitle();
    $bukv = mb_strtolower ($document->getTitle())?>
    <?php //$bukva = $params->get('bukva'); ?>
        <?php if($z == $bukv) :?>
<li<?php if ($id == $item->id && in_array($view, array('category', 'categories')) && $option == 'com_content') echo ' class="active"'; ?>> <?php $levelup = $item->level - $startLevel - 1; ?>
<h<?php echo $params->get('item_heading') + $levelup; ?>>
<a href="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($item->id)); ?>">
<?php echo $item->title; ?>
<?php if ($params->get('numitems')) : ?>
(<?php echo $item->numitems; ?>)
<?php endif; ?>
</a><?php endif; ?>
</h<?php echo $params->get('item_heading') + $levelup; ?>>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенести описание категории вниз страницы

Автор jimka

Ответов: 1
Просмотров: 964
Последний ответ 18.07.2024, 08:02:46
от Vastriet
Сортировка по доп. полям на странице списка категории

Автор revil

Ответов: 4
Просмотров: 1460
Последний ответ 02.06.2024, 13:42:45
от tigra-uki
Поиск в Материал- Блог категории

Автор mag_num83

Ответов: 1
Просмотров: 775
Последний ответ 14.09.2023, 20:36:34
от beliyadm
Как назначить пункту меню ссылку на категории К2?

Автор kochevnik

Ответов: 1
Просмотров: 601
Последний ответ 12.03.2023, 16:26:44
от kochevnik
[Решено] Ссылка на домен и текущий шаблон в блоге категории

Автор goga_pgasovav

Ответов: 2
Просмотров: 767
Последний ответ 06.03.2023, 16:30:23
от goga_pgasovav