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

tranceRoller

  • Захожу иногда
  • 452
  • 37 / 0
Топ по эффективности "голы в одном матче".
Скрипт по идее должен работать также и для JL 2.0.

Код
SELECT pl_g.goals, pl_m.games, pl_g.goals / pl_m.games AS goals_per_game, pl_g.name, pl_g.p_id
FROM (
SELECT CONCAT(p.firstname, ' ', p.lastname) AS name, COUNT(mp.id) AS games, p.id AS p_id
FROM jos_joomleague_match_player AS mp
JOIN jos_joomleague_match AS m ON mp.match_id = m.id
JOIN jos_joomleague_team_player AS tp ON mp.teamplayer_id = tp.id
JOIN jos_joomleague_person AS p ON tp.person_id = p.id
JOIN jos_joomleague_project_team AS pt ON tp.projectteam_id = pt.id
JOIN jos_joomleague_project AS pr ON pt.project_id = pr.id
WHERE m.published = 1
AND m.alt_decision != 1
AND pr.sports_type_id = 5            /* Выделение нужного вида спорта */
AND pr.id NOT IN(47,70,82,85)     /* Исключение ненужных проектов */
GROUP BY p.id
) AS pl_m
JOIN (
    SELECT CONCAT(p.firstname, ' ', p.lastname) AS name, SUM(me.event_sum) AS goals, p.id AS p_id
FROM jos_joomleague_match_event AS me
JOIN jos_joomleague_project_team AS pt ON me.projectteam_id = pt.id
JOIN jos_joomleague_project AS pr ON pt.project_id = pr.id
JOIN jos_joomleague_team_player AS tp ON me.teamplayer_id = tp.id
JOIN jos_joomleague_person AS p ON tp.person_id = p.id
JOIN jos_joomleague_match AS m ON me.match_id = m.id
WHERE me.event_type_id IN ( 1 )         /* id события. Если больше одного, то указать через запятую */
AND m.alt_decision != 1
AND pr.sports_type_id = 5           /* Выделение нужного вида спорта */
AND pr.id NOT IN(47,70,82,85)    / * Исключение ненужных проектов */
GROUP BY p.id
) AS pl_g
WHERE pl_m.p_id = pl_g.p_id
AND (pl_g.goals > 60 OR pl_m.games > 40)               /* Минимум забитых голов или сыгранных матчей */
ORDER BY goals_per_game DESC
« Последнее редактирование: 20.12.2014, 14:22:21 от tranceRoller »
*

Геныч

  • Захожу иногда
  • 287
  • 9 / 0
Проще говоря, это результативность в среднем за игру?
*

tranceRoller

  • Захожу иногда
  • 452
  • 37 / 0
Да. Скрипт состоит из 2-х частей. Можно и просто бомбардиров получить.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Увеличение даты всех матчей на один день в календаре игр команды

Автор uf1976

Ответов: 15
Просмотров: 3425
Последний ответ 29.04.2014, 17:50:12
от M0sk0W
Экспорт данных

Автор Gugolovski

Ответов: 1
Просмотров: 1283
Последний ответ 08.10.2013, 18:19:05
от tranceRoller
Одни события для всех видов спорта

Автор ap87

Ответов: 3
Просмотров: 1777
Последний ответ 04.12.2012, 16:55:26
от ap87
Перенос базы турнира

Автор ZEVZ

Ответов: 1
Просмотров: 1315
Последний ответ 03.05.2012, 12:23:07
от tranceRoller
Вывод данных на главную

Автор mdfc

Ответов: 4
Просмотров: 1756
Последний ответ 11.04.2011, 20:25:49
от mdfc