Новости Joomla

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

Новый способ добавления и рендера полей в 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.
// В Controller/View добавляем поля$this->form  ->addControlField('task', '')  ->addControlField('return', $input->getBase64('return', ''))  ->addControlField('forcedLanguage', $forcedLanguage);
А в layout'е просто используем метод
renderControlFields()
// В layout формыecho $this->form->renderControlFields();
Многие компоненты ядра уже используют этот подход. Соответствующий PR был принят в Joomla 5.3 осенью 2024г.Смотреть
Pull Request@joomlafeed#joomla #разработка #php

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

Bear

  • Захожу иногда
  • 67
  • 11 / 0
День добрый. Столкнулся с токой задачкой - хочу чтоб поля типа товара выводились не только на странице с полным описанием товара, но и на странице категории. Проблема в том, что ключик {product_type} используемый для этого в flypage.php не определён для browse.php.

Решение проблемы:
в файл shop.browse.php в начале кода(к примеру сразу после строки "require_once (CLASSPATH."ps_reviews.php");") вписываем класс для типа продукта:
require_once(CLASSPATH . 'ps_product_type.php' );
$ps_product_type = new ps_product_type;

затем в конце кода, сразу после строк:
else {
$product_cell = str_replace( "{image_width}", "", $product_cell );
$product_cell = str_replace( "{image_height}", "height=\"".PSHOP_IMG_HEIGHT."\"", $product_cell );
}
вписываем следующий код:
$product_id=$db_browse->f("product_id");
if ($product_parent_id!=0 && !$ps_product_type->product_in_product_type($product_id)) {
 $product_type = $ps_product_type->list_product_type($product_parent_id);
 }
else {
$product_type = $ps_product_type->list_product_type($product_id);
}

ну и наконец делаем подмену {product_type}:

перед строкой:
$product_cell = str_replace( "{product_name}", shopMakeHtmlSafe( $product_name ), $product_cell );
вставлем строку:
$product_cell = str_replace( "{product_type}", $product_type, $product_cell );
Теперь можем заходить в browse_x.php и вставлять там в требуемом месте {product_type}. Спасибо за внимание.
*

-L-

  • Осваиваюсь на форуме
  • 31
  • 1 / 0
Ой, спасибо большое то что надо
*

Xook

  • Захожу иногда
  • 77
  • 1 / 0
Я так понял это для старой версии VM. Есть что-то подобное для VM 1.1?
*

Bear

  • Захожу иногда
  • 67
  • 11 / 0
Для новой не было необходимости но делается почти также.
В файл shop.browse.php в начале кода(к примеру сразу после строки "require_once (CLASSPATH."ps_reviews.php");") вписываем класс для типа продукта:
require_once(CLASSPATH . "ps_product_type.php" );
$ps_product_type = new ps_product_type;

затем в конце кода, сразу после строк:
      // Unset these for the next product
      unset($full_image_width);
      unset($full_image_height);
вписываем следующий код:
$product_id=$db_browse->f("product_id");
if ($product_parent_id!=0 && !$ps_product_type->product_in_product_type($product_id)) {
   $product_type = $ps_product_type->list_product_type($product_parent_id);
}
else {
   $product_type = $ps_product_type->list_product_type($product_id);
}

$products[$i]['product_type'] =  $product_type;
Теперь можем заходить в browse_x.php и вставлять там в требуемом месте  echo $product_type.

Это на вскидку. работоспособность не проверял. но принцип тот же
*

Xook

  • Захожу иногда
  • 77
  • 1 / 0
...
Огромное спасибо! Как раз то, чего не хватало. Работает как надо.
*

streamsky

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
А как сделать это все для свойств товара?!
*

miran83

  • Новичок
  • 9
  • 0 / 0
Пробовал - ничего не выводится......
VM 1.0.15b
В режиме отладки магазина на странице просмотра категории запросов, связанных с product_type - нет вообще, след. нечего выводить.
Кто подскажет где копать???
« Последнее редактирование: 05.08.2009, 22:21:08 от miran83 »
*

Webprohozhiy

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Теперь можем заходить в browse_x.php и вставлять там в требуемом месте  echo $product_type.

А что нужно вставить в browse_listtable.tpl.php для VM 1.1.3

*

onreik

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
А что бы выводился один из двух типов? Как это прописать?
{product_type_1} или как?
*

gandgy

  • Осваиваюсь на форуме
  • 25
  • 0 / 3
А можете пожалуйста помочь вывести данные из таблицы в шаблон (( Я создал руками поле чек-бокс, которое означает наличие или отсутствие товара. Значение чек бокса передаются в таблицу nalichie в таблице #__vm_product, туда же где хранятся все атрибуты товара, имя и прочее. Данные передаются в таблицу - я проверял. Значение может быть 1 или 0, но теперь я не знаю как вывести эти данные в переменную, чтобы использовать в шаблоне browse((( К сожалению я не силен в программировании настолько ( Версия моего магазина 1.1.4 Заранее благодарен.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как реализовать: товары, которых нет в наличии в конец списка категории?

Автор Girevik

Ответов: 1
Просмотров: 1473
Последний ответ 02.11.2017, 10:52:04
от P_B
Сортировка товаров категории по алфавиту

Автор atlet

Ответов: 5
Просмотров: 2011
Последний ответ 20.11.2015, 18:33:50
от atlet
Вывод товара из дочерних категорий в родительскую

Автор B0nG

Ответов: 0
Просмотров: 1826
Последний ответ 03.08.2014, 15:13:57
от B0nG
ID товара вместо cdata

Автор newsky

Ответов: 0
Просмотров: 1562
Последний ответ 01.07.2014, 13:05:12
от newsky
Расширенный Ajax-поиск по характеристикам товара VirtueMart

Автор Arkadiy

Ответов: 990
Просмотров: 205207
Последний ответ 27.06.2014, 16:47:52
от DeLight