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

Shelendor

  • Новичок
  • 3
  • 0 / 0
Здравствуйте.

Впервые столкнулся с Joomla и VirtueMart и никак не могу решить возникший вопрос.

Дано: Joomla! 2.5.28 + VirtueMart 2.6.16

Через Пользовательские поля добавлены поля Подъезд, Этаж и Номер квартиры, заполняемые покупателем при оформлении заказа. В письме, приходящем администратору, данные выводятся, но названий полей нет. Т.е. получаем вот такое



Т.е. информация выводится в письме, но названий полей нет и что такое 6, 1 и 18 понять невозможно.

Как я понял, за эту часть письма отвечает файл /components/com_virtuemart/views/invoice/tmpl/mail_html_shopperaddresses.php

В этом я убедился, когда вставил туда код для вывода даты и времени оформления заказа и они появились в письме, т.е. явно код должен быть тут.

Но код этого файла выглядит так:
Код
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');
?>
<table class="html-email" cellspacing="0" cellpadding="0" border="0" width="100%">  <tr  >
<th width="50%">
    <?php echo JText::_('COM_VIRTUEMART_USER_FORM_BILLTO_LBL'); ?>
</th>
<th width="50%" >
    <?php echo JText::_('COM_VIRTUEMART_USER_FORM_SHIPTO_LBL'); ?>
</th>
    </tr>
    <tr>
<td valign="top" width="50%">

    <?php

    foreach ($this->userfields['fields'] as $field) {
if (!empty($field['value'])) {
?><!-- span class="titles"><?php echo $field['title'] ?></span -->
        <span class="values vm2<?php echo '-' . $field['name'] ?>" ><?php echo $this->escape($field['value'])?></span>
<?php if ($field['name'] != 'title' and $field['name'] != 'first_name' and $field['name'] != 'middle_name' and $field['name'] != 'zip') { ?>
    <br class="clear" />
    <?php
}
    }

    }
    ?>

</td>
<td valign="top" width="50%">
    <?php
    foreach ($this->shipmentfields['fields'] as $field) {

if (!empty($field['value'])) {
    ?><!-- span class="titles"><?php echo $field['title'] ?></span -->
    <span class="values vm2<?php echo '-' . $field['name'] ?>" ><?php echo $this->escape($field['value'])?></span>
    <?php if ($field['name'] != 'title' and $field['name'] != 'first_name' and $field['name'] != 'middle_name' and $field['name'] != 'zip') { ?>
        <br class="clear" />
<?php
    }
}
    }

    ?>
</td>
</tr>

Я не вижу здесь вообще кода, отвечающего за поля Этаж, Подъезд и Номер квартиры, но в любом случае не могу понять, как вывести названия соответствующих полей. Подскажите, пожалуйста, куда копать. Спасибо.
*

Shelendor

  • Новичок
  • 3
  • 0 / 0
Интересно, ответ на вопрос настолько очевиден, что всем лень отвечать, или настолько сложен, что никто не знает ответ? :)
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Ответ и не очевиден и не сложен.
1. Обе версии Joomla и VM - древние, не у каждого они есть, чтобы код посмотреть.
2. У вас магазин, значит делаете бизнес и должны знать, что просто так не будут помогать вам (или вашему работодателю, если вы - не хозяин) делать деньги.
Сделайте
Код: php-brief
echo '<pre>';
print_r($this->userfields['fields']);
print_r($this->shipmentfields['fields']);
echo '</pre>';
exit();
и посмотрите, что в них.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Shelendor

  • Новичок
  • 3
  • 0 / 0
Ответ и не очевиден и не сложен.
1. Обе версии Joomla и VM - древние, не у каждого они есть, чтобы код посмотреть.
2. У вас магазин, значит делаете бизнес и должны знать, что просто так не будут помогать вам (или вашему работодателю, если вы - не хозяин) делать деньги.
Сделайте
Код: php-brief
echo '<pre>';
print_r($this->userfields['fields']);
print_r($this->shipmentfields['fields']);
echo '</pre>';
exit();
и посмотрите, что в них.

Спасибо, сейчас попробую. По поводу же остального - знакомый попросил посмотреть. В данном случае у меня нет работодателя и я не хозяин :) Просто с конкретным вопросом разобраться пытаюсь. Joomla вообще не моя тема, мне как-то с Друпалом проще и, видимо, я к особенностям его сообщества привык. Так что извиняюсь.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отправляем данные о заказе в Google Analytics

Автор gartes

Ответов: 0
Просмотров: 2570
Последний ответ 31.01.2020, 21:32:16
от gartes
Virtuemart: Как поставить уведомления о заказе покупателя продавцу

Автор duck-man

Ответов: 2
Просмотров: 3565
Последний ответ 29.01.2019, 09:55:27
от WooSuuP
Не уходят сообщения из VirtueMart 3.4.2 о заказе администратору!

Автор RaidKill

Ответов: 4
Просмотров: 3635
Последний ответ 29.01.2019, 09:52:42
от WooSuuP
Отображение даты в заказе

Автор Olexa

Ответов: 0
Просмотров: 835
Последний ответ 18.09.2018, 15:40:42
от Olexa
Как вывести в корзине

Автор nden

Ответов: 1
Просмотров: 1346
Последний ответ 18.01.2018, 13:14:48
от ElenaD