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

Graiverus

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Всем доброго времени суток, проблема в следующим, при нажатии на кнопку "Добавить" (Купить), появляется пустое окно с уведомлением и кнопками "продолжить" и "в корзину", при нажатии "в корзину" ничего не происходит.
Товар в корзин соответственно тоже не добавляется.
очень нужна ваша помощь иначе вся работа на смарку >:(
Сайт: http://www.caskad.org/index.php?option=com_virtuemart&Itemid=2
*

fsv

  • Moderator
  • 2781
  • 410 / 2
Re: Товар не добавляется в корзину
« Ответ #2 : 04.01.2013, 00:56:39 »
также нет количества.
также очень старая версия темы.js  В файл \components\com_virtuemart\themes\ВашаТема\theme.js после
Код
function handleGoToCart() { document.location = live_site + '/index.php?option=com_virtuemart&page=shop.cart&product_id=' + formCartAdd.product_id.value + '&Itemid=' +formCartAdd.Itemid.value; }
и перед
Код
function handleAddToCart( formId, parameters ) {
вставьте
Код
var timeoutID = 0;
Веб-разработка: заказ. Только новая разработка.
*

Graiverus

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Товар не добавляется в корзину
« Ответ #3 : 04.01.2013, 13:00:47 »
у Вас в форме нет скрытого поля product_id - видимо, кастрировали
Если я вас правильно понял, то мне в файле \components\com_virtuemart\themes\тема\templates\product_details\flypage.tpl.php
нужно добавить поле
Код
<tr>
  <td colspan="3"><?php echo $product_id ?><br />
   </td>
</tr>

fsv спасибо все добавил.

Но ничего не изменилось, может быть я product_id не туда добавил.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Товар не добавляется в корзину
« Ответ #4 : 04.01.2013, 13:02:25 »
Нет, вам нужно добавить скрытый инпут с этим значением и соответствующим name, типа (это просто примерно)
Код: html4strict
<input type="hidden" name="product_id" value="<?php echo $product_id; ?> " />
Самый простой вариант - поставить рядом сайт с дефолтной версией движка и магазина и сравнивать код
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Graiverus

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Товар не добавляется в корзину
« Ответ #5 : 04.01.2013, 13:50:41 »
Самый простой вариант - поставить рядом сайт с дефолтной версией движка и магазина и сравнивать код

Сделал как вы сказали, но даже после сравнения я не могу разобраться, где же косяк. Я извиняюсь конечно за наглость, но может вы лучше посмотрите косяк.

Это мой код:
Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
mm_showMyFileName(__FILE__);
 ?>

<?php echo $buttons_header // The PDF, Email and Print buttons ?>

<?php
if( $this->get_cfg( 'showPathway' )) {
echo "<div class=\"pathway\">$navigation_pathway</div>";
}
if( $this->get_cfg( 'product_navigation', 1 )) {
if( !empty( $previous_product )) {
echo '<a class="previous_page" href="'.$previous_product_url.'">'.shopMakeHtmlSafe($previous_product['product_name']).'</a>';
}
if( !empty( $next_product )) {
echo '<a class="next_page" href="'.$next_product_url.'">'.shopMakeHtmlSafe($next_product['product_name']).'</a>';
}
}
?>
<br style="clear:both;" />
<table border="0" style="width: 100%;">
  <tbody>
 
  <h1 align="center"><?php echo $product_name ?> <?php echo $edit_link ?></h1>
 
<tr>
<?php  if( $this->get_cfg('showManufacturerLink') ) { $rowspan = 5; } else { $rowspan = 4; } ?>
<td rowspan="1" colspan="2">
  <?php echo $product_description ?><br/>
  <span style="font-style: italic;"><?php echo $file_list ?></span>
  </td>
  <td align="right"><div class="product-imade">
  <?$gallery = JHTML::_('content.prepare', '{vsig}'.$product_doppole.'{/vsig}');?>
  <?php echo $gallery; ?>
  </td>
  </div>
</tr>
<?php if( $this->get_cfg('showManufacturerLink')) { ?>
<tr>
  <td rowspan="1" colspan="2"><?php echo $manufacturer_link ?><br /></td>
</tr>
<?php } ?>
<tr>
  <td>
<a href="http://www.caskad.org/index.php?option=com_virtuemart&page=shop.browse&category_id=124&Itemid=2" target="_blank"'); return false;"><img src="/images/color.png" border="0" align="left" /> </a>
  </td>
</tr>
<td>
<td width="33%" valign="top" align="center"><h2>     
      <?php echo $product_price_lbl ?>
<?php echo $product_price ?><br /></td>
      <td valign="top"><?php echo $product_packaging ?></h2><br /></td>
</td>
<tr>
  <td>
  <?php
  if( $this->get_cfg( 'showAvailability' )) {
  echo $product_availability;
  }
  ?>
  </td>
  <td colspan="2"><br /><?php echo $addtocart ?>
  </td>
</tr>
<tr>
  <td colspan="3"><?php echo $product_reviewform ?><br /></td>
</tr>
<tr>
  <td colspan="3"><?php echo $related_products ?><br />
   </td>
</tr>
<?php if( $this->get_cfg('showVendorLink')) { ?>
<tr>
  <td colspan="3"><div style="text-align: center;"><?php echo $vendor_link ?><br /></div><br /></td>
</tr>
<?php  } ?>
  </tbody>
</table>
<?php
if( !empty( $recent_products )) { ?>
<div class="vmRecent">
<?php echo $recent_products; ?>
</div>
<?php
}
if( !empty( $navigation_childlist )) { ?>
<?php echo $VM_LANG->_('PHPSHOP_MORE_CATEGORIES')?><br />
<?php echo $navigation_childlist ?><br style="clear:both"/>
<?php
} ?>

Это исходный:
Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
mm_showMyFileName(__FILE__);
 ?>

<?php echo $buttons_header // The PDF, Email and Print buttons ?>

<?php
if( $this->get_cfg( 'showPathway' )) {
echo "<div class=\"pathway\">$navigation_pathway</div>";
}
if( $this->get_cfg( 'product_navigation', 1 )) {
if( !empty( $previous_product )) {
echo '<a class="previous_page" href="'.$previous_product_url.'">'.shopMakeHtmlSafe($previous_product['product_name']).'</a>';
}
if( !empty( $next_product )) {
echo '<a class="next_page" href="'.$next_product_url.'">'.shopMakeHtmlSafe($next_product['product_name']).'</a>';
}
}
?>
<br style="clear:both;" />
<table border="0" style="width: 100%;">
  <tbody>
<tr>
<?php  if( $this->get_cfg('showManufacturerLink') ) { $rowspan = 5; } else { $rowspan = 4; } ?>
  <td width="33%" rowspan="<?php echo $rowspan; ?>" valign="top"><br/>
  <?php echo $this->vmlistAdditionalImages( $product_id, $images )?></td>
  <td rowspan="1" colspan="2">
  <h1><?php echo $product_name ?> <?php echo $edit_link ?></h1>
  </td>
</tr>
<?php if( $this->get_cfg('showManufacturerLink')) { ?>
<tr>
  <td rowspan="1" colspan="2"><?php echo $manufacturer_link ?><br /></td>
</tr>
<?php } ?>
<tr>
      <td width="33%" valign="top" align="left">
      <?php echo $product_price_lbl ?>
      <?php echo $product_price ?><br /></td>
      <td valign="top"><?php echo $product_packaging ?><br /></td>
</tr>
<tr>
  <td colspan="2"><?php echo $ask_seller ?></td>
</tr>
<tr>
  <td rowspan="1" colspan="2"><hr />
  <?php echo $product_description ?><br/>
  <span style="font-style: italic;"><?php echo $file_list ?></span>
  </td>
</tr>
<tr>
  <td><?php
  if( $this->get_cfg( 'showAvailability' )) {
  echo $product_availability;
  }
  ?><br />
  </td>
  <td colspan="2"><br /><?php echo $addtocart ?></td>
</tr>
<tr>
  <td colspan="3"><?php echo $product_type ?></td>
</tr>
<tr>
  <td colspan="3"><hr /><?php echo $product_reviews ?></td>
</tr>
<tr>
  <td colspan="3"><?php echo $product_reviewform ?><br /></td>
</tr>
<tr>
  <td colspan="3"><?php echo $related_products ?><br />
   </td>
</tr>
<?php if( $this->get_cfg('showVendorLink')) { ?>
<tr>
  <td colspan="3"><div style="text-align: center;"><?php echo $vendor_link ?><br /></div><br /></td>
</tr>
<?php  } ?>
  </tbody>
</table>
<?php
if( !empty( $recent_products )) { ?>
<div class="vmRecent">
<?php echo $recent_products; ?>
</div>
<?php
}
if( !empty( $navigation_childlist )) { ?>
<?php echo $VM_LANG->_('PHPSHOP_MORE_CATEGORIES')?><br />
<?php echo $navigation_childlist ?><br style="clear:both"/>
<?php
} ?>
*

fsv

  • Moderator
  • 2781
  • 410 / 2
Re: Товар не добавляется в корзину
« Ответ #6 : 04.01.2013, 14:17:28 »
для категории:
\components\com_virtuemart\themes\ТЕМА\templates\browse\includes\addtocart_form.tpl.php
для карточки товара:
\components\com_virtuemart\themes\ТЕМА\templates\product_details\includes\addtocart_form.tpl.php

см.скрытые инпуты в <form action...
у вас не все есть.
Веб-разработка: заказ. Только новая разработка.
*

Graiverus

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Товар не добавляется в корзину
« Ответ #7 : 04.01.2013, 14:34:00 »
уф.... спасибо вам всем большое, оказывается облажался когда убирал возможность выбора количества товара, и похоже удалил лишнего, сейчас все исправил.
Еще раз всем спасибо  ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться