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

Inject

  • Захожу иногда
  • 80
  • 2 / 0
Вопрос по mod_product_categories
« : 16.03.2010, 11:35:14 »
Здравтсуйте, сразу прошу прощения если такая тема была. Но я искал ее на форуме, но не нашел  :(

Имеем 2 модуля mod_product_categories, как сделать, что бы в каждом выводились только определенные категории товаров? Например, в первом mod_product_categories категории 1,2,3, а во втором mod_product_categories категории 4,5,6.
*

Inject

  • Захожу иногда
  • 80
  • 2 / 0
Re: Вопрос по mod_product_categories
« Ответ #1 : 17.03.2010, 11:41:05 »
Может есть другой модуль, который выводит определенные категории товаров?
*

sett

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вопрос по mod_product_categories
« Ответ #2 : 20.03.2010, 13:34:39 »
у меня такая же беда, надо сделать структуру как на сайте http://www.muztorg.ru/, например зашел в "Клавишные", а там категории "Рабочие станции (16)", "Интерактивные рабочие станции (8)"...., зашел в "Рабочие станции", а там уже категории "KORG(9)", "YAMAHA(7)". Как реализовать такую структуру?
*

sett

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вопрос по mod_product_categories
« Ответ #3 : 21.03.2010, 00:42:23 »
неужели ни кто не знает?
*

Inject

  • Захожу иногда
  • 80
  • 2 / 0
Re: Вопрос по mod_product_categories
« Ответ #4 : 26.03.2010, 13:00:24 »
Все еще актуально
*

Sova_barmak

  • Осваиваюсь на форуме
  • 39
  • 2 / 0
Re: Вопрос по mod_product_categories
« Ответ #5 : 01.05.2010, 15:02:28 »
Все еще актуально
Я его не использовал создавал простые меню в самой Joomla и туда тулил категории товаров, и вышло 10 менюшок))
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
Re: Вопрос по mod_product_categories
« Ответ #6 : 19.01.2015, 19:08:43 »
В общем продолжу тему, нашел частичное решение но оно не отрабатывает.

Цитировать
Иногда нужно сделать так, что бы в VirtueMart стандартный модуль категорий товаров выводил не все опубликованные категории, а только выборочные. Тоесть представилась возможность размещения нескольких модулей с разными категориями товаров.

Ниже приведен хак как это можно сделать очень быстро. Вы можете "изуродовать" ваш стандартный модуль или сделать из него еще один модифицированный и добавить в модули сайта.

 

Итак, сначала делаем изменения в файле /modules/mod_product_categories/mod_product_categories.xml

Добавляем в секцию params
< param name="show_categories" type="text" default=""
label="Categories"
description="Категории для показа" />


 

Затем изменяем файл /modules/mod_product_categories/mod_product_categories.php, где добавляем (жирным):

$jscook_type = $params->get( 'jscook_type', 'menu' );
$menu_orientation = $params->get( 'menu_orientation', 'hbr' );
$show_categories = $params->get( 'show_categories', '' );
$_REQUEST['root_label'] = $params->get( 'root_label', 'Shop' );

 

И наконец модифицируем файл /administrator/components/com_virtuemart/classes/ps_product_category.php

Находим функцию "get_category_tree" и добавляем в самом начале определения функции:

function get_category_tree( $category_id=0,
$links_css_class="mainlevel",
$list_css_class="mm123",
$highlighted_style="font-style:italic;font-weight: bold;" ) {

global $sess, $show_categories;
$show_array_categories=explode(" ",$show_categories);


$categories = ps_product_category::getCategoryTreeArray(); // Get array of category objects

Далее находим и добавляем:


if (
in_array( $category_tmp[$row_list[$n]]["category_child_id"] , $show_array_categories, true)
or
in_array( $category_tmp[$row_list[$n]]["category_parent_id"] , $show_array_categories, true)
)
{

$html .= '
< a title=".$catname." style="display:block;'.$style.'" class=". $css_class ." href="'." $sess-="$sess-" > url(URL."index.php?page=shop.browse&category_id=".$category_tmp[$row_list[$n]]["category_child_id"]).'" '.$append.'>'
. str_repeat("   ",$depth_list[$n]). $catname
. ps_product_category::products_in_category( $category_tmp[$row_list[$n]]["category_child_id"] )
.'';
}
}
}
return $html;
}

 

Вот собственно и все. Теперь в настройках модуля прописываем через пробел нужны категории и только они будут отражены в дереве каталога продукции.

Есть какие то мысли как допилить код до рабочего состояния?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать 'Задайте вопрос по этому товару'?

Автор newjey

Ответов: 8
Просмотров: 8995
Последний ответ 22.07.2013, 01:40:32
от dalazz
Полный вывод информации (полное описание, количество в упаковке, задать вопрос, сопутствующие товары

Автор ArtTheft

Ответов: 0
Просмотров: 1737
Последний ответ 16.10.2011, 14:02:21
от ArtTheft
Вопрос по настройке ленты новостей

Автор nick71

Ответов: 0
Просмотров: 1053
Последний ответ 06.04.2011, 12:25:40
от nick71
вопрос по "Дополнительные IDs" в "показать опции"

Автор Sqvall

Ответов: 0
Просмотров: 1262
Последний ответ 09.03.2011, 14:08:38
от Sqvall
Вопрос о физ товаре и об электроном.

Автор EURO2012

Ответов: 0
Просмотров: 1380
Последний ответ 25.02.2011, 22:13:18
от EURO2012