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

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
Как ограничить название?
« : 14.05.2015, 12:02:40 »
Как ограничить название товара до определённого числа символов.
Вот сайт http://lik-astana.kz/index.php/ru/ в низу есть Последние поступления
и они выводят полное название товара.

Цитировать
Плакаты "1 декабря - День
Первого Президента",
изготовление
   

и поэтому неразбериха где 2 строки где 3 строки.
Возможно сделать

Цитировать
Плакаты "1 декабря - День
Первого Президента...

допустим так чтоб весе товары отображались в две строки    
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
Re: Как ограничить название?
« Ответ #2 : 14.05.2015, 14:42:12 »
 А какой файл отвечает за вывод.
Ковырял /html/com_virtuemart/categories/default.php но там не нашел не чего
*

Ilhom666

  • Завсегдатай
  • 1384
  • 184 / 0
Re: Как ограничить название?
« Ответ #3 : 14.05.2015, 15:09:35 »
если ограничивать одной строкой то можно и средствами CSS
*

neogeek

  • Захожу иногда
  • 196
  • 21 / 2
Re: Как ограничить название?
« Ответ #4 : 14.05.2015, 15:27:08 »
Stasweb, вы напишите версию VM
*

neogeek

  • Захожу иногда
  • 196
  • 21 / 2
Re: Как ограничить название?
« Ответ #5 : 14.05.2015, 15:31:36 »
В дефолтном шаблоне должна быть такая строка - <h2><?php echo JHTML::link ($product->link, $product->product_name); ?></h2>
тут и надо обрабатывать - $product->product_name
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
Re: Как ограничить название?
« Ответ #6 : 14.05.2015, 15:33:21 »
Версия VirtueMart 2.6.16
*

neogeek

  • Захожу иногда
  • 196
  • 21 / 2
Re: Как ограничить название?
« Ответ #7 : 14.05.2015, 15:38:17 »
Дошло, вы не тот шаблон смотрите, это главная страница VirtueMart и шаблон находится - components\com_virtuemart\views\virtuemart\tmpl\default_products.php
если шаблон не правленный, по дефолту должно быть такое
Код
<h3>
<?php // Product Name
echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id, FALSE ), $product->product_name, array ('title' => $product->product_name ) ); ?>
</h3>
вместо этого - , $product->product_name, вот с этой частью надо работать
*

neogeek

  • Захожу иногда
  • 196
  • 21 / 2
Re: Как ограничить название?
« Ответ #8 : 14.05.2015, 15:42:52 »
если по простому делать, то так

Код
$cut_prodname = mb_substr($product->product_name,0,30,'UTF-8');

<h3><?php echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id, FALSE ), $cut_prodname, array ('title' => $product->product_name ) ); ?></h3>

30 - это кол-во отображаемых символов.
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
Re: Как ограничить название?
« Ответ #9 : 14.05.2015, 16:22:31 »
отлично спасибо то что надо.
Сделал так
Код
           <h3> <?php
                    $cut_prodname = mb_substr($product->product_name,0,20,'UTF-8');
                    $end_name = '...';
                    echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' .
                    $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id, FALSE ),
                    $cut_prodname, array ('title' => $product->product_name ) );
                    echo $end_name;
                    ?>
            </h3>
http://card.lik-material.kz/index.php/ru/ все работает
вот только вопрос как сделать чтоб если количество символов не превышает 20-ти то $end_name не показывать
« Последнее редактирование: 14.05.2015, 16:39:27 от Stasweb »
*

neogeek

  • Захожу иногда
  • 196
  • 21 / 2
Re: Как ограничить название?
« Ответ #10 : 14.05.2015, 17:15:12 »
вместо
Код
<h3>
<?php
$cut_prodname = mb_substr($product->product_name,0,20,'UTF-8');
$end_name = '...';
echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' .
$product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id, FALSE ),
$cut_prodname, array ('title' => $product->product_name ) );
echo $end_name;
?>
</h3>
надо так
Код
<h3>
<?php
$cut_prodname = mb_substr($product->product_name,0,20,'UTF-8');

if (strlen($product->product_name) > 20) {
$cut_prodname .= '...';
}

echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' .
$product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id, FALSE ),
$cut_prodname, array ('title' => $product->product_name ) );
?>
</h3>

*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
Re: Как ограничить название?
« Ответ #11 : 15.05.2015, 07:51:11 »
Реализовал тут http://lik-astana.kz/index.php/ru/ все отлично
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести название группы покупателя в которой он находится?

Автор neGODnic

Ответов: 3
Просмотров: 945
Последний ответ 08.11.2016, 14:25:30
от neGODnic
Как ограничить количество знаков в описании?

Автор Stasweb

Ответов: 32
Просмотров: 2329
Последний ответ 30.01.2016, 11:13:58
от gartes
VirtueMart 3 как ограничить краткое описание товара

Автор Mehanick

Ответов: 3
Просмотров: 2161
Последний ответ 25.01.2016, 10:35:59
от Mehanick
Название сайта на всех стр title

Автор dj_serg

Ответов: 0
Просмотров: 779
Последний ответ 23.06.2014, 23:28:46
от dj_serg
Название страны на русском языке

Автор Иоланта

Ответов: 2
Просмотров: 1160
Последний ответ 06.05.2014, 17:34:07
от digitalphotos2