Новости 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

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

Новая итерация компонента продолжает развиваться, ведь с v.4.x компонент был переписан практически с нуля.

v.4.1.0. Что нового?

Редактирование метаданных изображений. Теперь метаданные можно не только читать, но и напрямую редактировать и записывать обратно в изображение JPG. Поддерживаются данные EXIF ​​и IPTC.

Полная совместимость с Joomla! 4.x, 5.x и 6.x. Компонент почистили от устаревших методов в коде.

Заметно ускорили загрузку больших галерей. Списки в админке, особенно для очень больших галерей ( >30 000 изображений), теперь загружаются значительно быстрее.

Несколько сеток lightGallery на одной странице. Будь то плагины контента или модули изображений: теперь вы можете отображать несколько галерей или категорий на одной странице без каких-либо ограничений.

Множество мелких исправлений ошибок и оптимизаций.

Сайт проекта

GitHub расширения

Скачать

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

si@m

  • Захожу иногда
  • 162
  • 2 / 0
Плоховато ориентируюсь в коде, и у самого не получается сделать. Нужно сделать так чтобы окошко с выбором количества товаров находилось под словом купить а не напротив него. Речь идет о категории. Либо поправить кривое отображение шаблона категории, сейчас окно с выбором количества видно не полностью, и невидно кнопок "больше" "меньше". Вот сама категория _radiozamer.ru/magazin/component/virtuemart/category/1-restavratsionnie-materiali.html
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
в addtocart_form.tpl.php

просто поменять местами:
1. <form action="http://radiozamer.ru/magazin/&lt;br /&gt;index.php" method="post" name="addtocart" id="addtocart150_1" class="addtocart_form"                        onsubmit="handleAddToCart( this.id );return false;">
2.  <input type="submit" class="addtocart_button" value="Купить" title="Купить"><label for="quantity8" <<<< вот эта строчка была ниже
3. дальше все также и оставить
4.....

дальше в theme.css
Код
.addtocart_form {
width: 100%;
display: inline;
white-space: nowrap; <<< удалить
}

слово "количество" нужно? если нет - в этом же файле
Код
.quantity_box {
vertical-align: middle;     <<< можно удалить
display: none;  <<<<< добавить
}
« Последнее редактирование: 08.11.2011, 00:41:50 от ELLE »
*

si@m

  • Захожу иногда
  • 162
  • 2 / 0
Попробовал то что вы написали мне (спасибо что откликнулись) но чевойта у меня не очень вышло, у меня кнопка купить вылезла на верх а количество и окошко так и остались на одной строке, думаю я что то не так сделал, вот код из моего addtocart
Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
mm_showMyFileName(__FILE__);

$button_lbl = $VM_LANG->_('PHPSHOP_CART_ADD_TO');
$button_cls = 'addtocart_button';
if( CHECK_STOCK == '1' && !$product_in_stock ) {
$button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
$button_cls = 'notify_button';
$notify = true;
} else {
$notify = false;
}
?>

<form action="<?php echo $mm_action_url ?><br />index.php" method="post" name="addtocart" id="addtocart<?php echo $i ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
    <?php echo $ps_product_attribute->show_quantity_box($product_id,$product_id); ?><br />
<input type="submit" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />
    <input type="hidden" name="category_id" value="<?php echo  @$_REQUEST['category_id'] ?>" />
    <input type="hidden" name="product_id" value="<?php echo $product_id ?>" />
    <input type="hidden" name="prod_id[]" value="<?php echo $product_id ?>" />
    <input type="hidden" name="page" value="shop.cart" />
    <input type="hidden" name="func" value="cartadd" />
    <input type="hidden" name="Itemid" value="<?php echo $sess->getShopItemid()?>" />
    <input type="hidden" name="option" value="com_virtuemart" />
    <input type="hidden" name="set_price[]" value="" />
    <input type="hidden" name="adjust_price[]" value="" />
    <input type="hidden" name="master_product[]" value="" />
</form>
может поточнее меня ткнете носом
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Цитировать
а количество и окошко так и остались на одной строке
ну вам же так и надо было, чтобы кнопка стала выше. а про количество и само окошко - стили надо править в theme.css - я выше расписала.
*

si@m

  • Захожу иногда
  • 162
  • 2 / 0
Извините меня за опечатку, это моя оплошность, попробую показать схематично, как сейчас:
Код
Количество: окошко
addtocart
а нужно так:
Код
Количество:
окошко
addtocart
иначе само окошко не влезает.
Еще раз прошу прощения за опечатку.
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
а, ну всё тогда только в /components/com_virtuemart/themes/default/theme.css
Код
.addtocart_form {
width: 100%;
display: inline;
white-space: nowrap; <<< удалить строчку
}
*

si@m

  • Захожу иногда
  • 162
  • 2 / 0
Перенеслись только кнопки "больше" "меньше" а окошко так и осталось это в опере, а в мозиле без изменений
« Последнее редактирование: 08.11.2011, 10:48:38 от si@m »
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
да, в опере действительно так, а вот в мозиле у меня  все нормально.
для оперы ничего не придумала, как в
\components\com_virtuemart\themes\default\template s\product_details\includes\quantity_box_general.tp l.php вначале найти

$html = '<label for="quantity'.$prod_id.'" class="quantity_box">'.$VM_LANG->_('PHPSHOP_CART_QUANTITY').':&nbsp;</label>';

выделенное жирным заменить на <br/>


*

si@m

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

Как сделать чтобы при нажатии картинку с товаром открывалась страница с товаром?

Автор alicedooh

Ответов: 7
Просмотров: 2680
Последний ответ 01.04.2015, 16:01:14
от alicedooh
Как сделать отображение атрибутов товара в категории ?

Автор Timer

Ответов: 0
Просмотров: 1510
Последний ответ 21.01.2015, 23:43:33
от Timer
Как сделать, чтобы пустая и полная корзина были бы в строго в одинаковом месте?

Автор satmas

Ответов: 2
Просмотров: 2152
Последний ответ 02.08.2014, 15:26:17
от fixbob
Как сделать продающую карточку товара?

Автор Newman1

Ответов: 0
Просмотров: 1319
Последний ответ 10.05.2014, 17:14:39
от Newman1
VM 1.3 количество категорий на странице?

Автор Myst

Ответов: 24
Просмотров: 14725
Последний ответ 19.12.2013, 13:35:32
от itazura