Новости Joomla

Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla

Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla

👩‍💻 Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla.v.6.1.0 Что нового?Модуль корзины. Отображение корзины в виде offcanvas-элемента.Кнопка выхода в панели управления пользователя. Что тут сказать, просто добавили. Отправка писем только для заказов, оплаченных определёнными способами. Это удобно для рассылки сообщений, привязанных к региону или провайдеру (например, инструкции по банковскому переводу только для заказов, оплаченных банковским переводом).Листинг выплат по партнерской системе. В разделе управления партнёрскими программами появилось новое подменю «Выплаты», в котором перечислены выплаты партнёрам (упрощённое отслеживание и сверка). Добавлены настройки, благодаря которым можно определить категории товаров, на которые начисляется партнёрская комиссия с продаж.Список комплектов товаров. Система комплектов позволяет отслеживать остатки товаров, продаваемых в комплекте.Подробнее в блоге Hikashop.Поскольку мы не сообщали ранее о Hikashop 6.0, то вкратце скажем, что он вышел в июне 2025г. В новой версии было:- 13 исправлений ошибок- 17 улучшений. В частности:- - Hikashop теперь проверяет UserAgent пользователя перед добавлением товара в корзину, чтобы отсечь ботов. Ведь компонент хранит корзины в базе данных.- - улучшен роутинг компонента, позволяющий использовать в названии товара даже слеши.- - улучшения фильтра товаров - ускорение загрузки категорий/брендов/характеристик.- 4 новых функции:- - добавлена поддержка Joomla 6.0.- - Улучшена возможность адаптации форм HikaShop на фронтенде к шаблонам, не использующим стандартные классы Joomla.- - Плагин внутреннего баланса: возможность исключить уцененные товары из начисленных баллов.- - Теперь можно выбирать склады для вариантов товаров.Подробнее в Changelog Hikashop.Также при работе с Hikashop стоит учитывать, что один и тот же код поддерживает версии Joomla от 3.х до 5.х, а в таблице сравнения версий заявлена и Joomla 2.5. Беглый просмотр кода показал, что компонент как был, так и остался старым и для совместимости с Joomla 4+ просто добавлен плагин.@joomlafeed#joomla #расширения #hikashop

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

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Или если таблицы связанные то в модели второго представления напишите метод с запросом из двух связанных таблиц (join) и вызовите его в преставлении.
Написать запрос - не проблема, проблема передать в него значение параметра из первого представления.
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Так выбор не велик или через $_GET или через $_POST. Ничего другого придумывать не требуется. В ссылку в первом представлении которая открывает второе, пишете свой параметр и все. В модели ловите.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В общем, к тому же мнению пришел, терзают сомнения только насчет корректности использования: компоненту ли самой J при наличии незнакомых параметров мозг не снесет?
И как правильно парсить URL? Встроенные в J механизмы имеются, или вновь изобретать велосипед?
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
$login = JFactory::getApplication()->input->getString('cl_login');
а это чем не устраивает?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Не то, это из админки, уже решено.
Сейчас решаю задачу во фронте.
Юзер залогинился, в личном кабинете посмотрел договора, заключенные с конторой - это одно представление; по каждому из договоров надо ему показать пакет документов по договору - это другое представление. Из одного представления (или связанной с ним модели) в другое надо передать номер договора, документы по которому юзер желает посмотреть.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
передавай post или get
Буду изучать, спс.
Сразу - уже - по традиции: примерчиком для чайников в чайника кините?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
get к ссылке добавляешь http://joomlaforum.ru/?order=1
post
Код: html4strict
<form action="http://joomlaforum.ru/" method="post">
    <input type="hidden" name="order" value="1">
    <input type="submit">
</form>
получаешь
Код: php
$order = JFactory::getApplication()->input->getInt('order', 0);
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Спасибо, буду ковыряться.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Вот так из бд вывожу дату:
echo JHtml::_('date'$item->bdate'd.m.Y');

А как вывести число с фиксированным кол-вом знаков после запятой? Денежный формат (#0.00), процентный формат (#0.0000)
« Последнее редактирование: 22.04.2014, 22:12:24 от AlekVolsk »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Спасибо :)

Как узнать имя и логин зарегистрировавшегося пользователя?

upd
Сам нашел:
$user =& JFactory::getUser();
$username $user->name;
$userlogin $user->username;
« Последнее редактирование: 22.04.2014, 23:06:20 от AlekVolsk »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Будет ли такой запрос корректным, в модели:

  
protected function getListQuery()
  {
    
$db JFactory::getDBO();
    
$query $db->getQuery(true);
    
$query->select('num, bdate, edate, term, prc, sm, rest, arest, prest, crest, srest');
    
$query->from('#__mfo_loans');
    
$query->where('client = '.$db->quote(JFactory::getUser()->username));
    return 
$query;
  }
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4

Как узнать имя и логин зарегистрировавшегося пользователя?

upd
Сам нашел:
$user =& JFactory::getUser();
$username $user->name;
$userlogin $user->username;

1. Это данные авторизированного юзера а не зарегестрировавшегося ))
2. Амперсанд перед JFactory писать не нужно просто $user = JFactory::getUser();
3. зачем создаете лишние переменные?? просто там где нужно
 $user = JFactory::getUser();
echo 'Вы вошли как '.$user->username.'. Выйти. ';
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Будет ли такой запрос корректным, в модели:
Вполне!
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
1. Это данные авторизированного юзера а не зарегестрировавшегося ))
2. Амперсанд перед JFactory писать не нужно просто $user = JFactory::getUser();
3. зачем создаете лишние переменные?? просто там где нужно
 $user = JFactory::getUser();
echo 'Вы вошли как '.$user->username.'. Выйти. ';
1. Сори, некорректно выразился, нужно именно авторизировавшегося юзера.
2. Спс
3. Да я сразу прописал, как в запросе, без переменных вообще, благо единожды в модели используется.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Вывожу данные из бд, формирую ссылку на второе представление, будет ли так корректно:
Код: html4strict
<a title="<?php echo JText::_('COM_MFO_TABLE_LOAN_HINT'); ?>" href="index.php?option=com_mfo&view=docums&loan='<?php echo $item->num; ?>'"><?php echo $item->num; ?></a>
$item->num содержит или может содержать символы / , . # - _ ( )
во второй модели параметр придет в кавычках?

upd
В общем, можно передавать без кавычек, меньше мороки с их удалением, все символы передаются корректно.
« Последнее редактирование: 23.04.2014, 00:58:22 от AlekVolsk »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Как правильно указать в запросе несколько where с объединением and:

$query
->where('client = '.$db->quote(JFactory::getUser()->username));
$query->where('loan = '.$db->quote($loan));
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Как правильно указать в запросе несколько where с объединением and:

$query
->where('client = '.$db->quote(JFactory::getUser()->username));
$query->where('loan = '.$db->quote($loan));

Как хотите, можно как вы
можно так:
Код: php
$query->where( array( 'client = '.$db->quote( JFactory::getUser()->username ), 'loan = '.$db->quote( $loan ) ) );
или так
Код: php
$query->where( 'client = '.$db->quote( JFactory::getUser()->username )  .' AND loan = '.$db->quote( $loan )  );
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Спасибо. Оставил 1 вариант. В общем, 2 представления между собой связал.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Во втором представлении пытаюсь получить данные из первого, перед списком документов по договору вывожу данные о договоре:
Код: php
          $db =JFactory::getDBO();
          $query = 'select bdate, edate, term, prc, sm, rest, arest, prest, crest, srest from #__mfo_loans where (client = '.$db->quote(JFactory::getUser()->username).') and (num = '.$db->quote($loan).')';
          $item = $db->setQuery($query)->loadAssoc();
          $rests = $item->arest+$item->prest+$item->crest+$item->srest;
          echo '<div><span>'.JHtml::_('date', $item->bdate, 'd.m.Y').'</span></div>';
          echo '<div><span>'.JHtml::_('date', $item->edate, 'd.m.Y').'</span></div>';
          echo '<div><span>'.$item->term.'</span></div>';
          echo '<div><span>'.number_format($item->prc,4,'.','').'</span></div>';
          echo '<div><span>'.number_format($item->sm,2,'.',' ').'</span></div>';
          echo '<div><span>'.number_format($item->rest,2,'.',' ').'</span></div>';
          echo '<div><span>'.number_format($rests,2,'.',' ').'</span></div>';
Сам запрос строится корректно, в phpMyAdmin выполняется и возвращает нужные данные, а во фронт выводятся нули и все даты - текущая. Что я не так сделал?
« Последнее редактирование: 23.04.2014, 03:40:22 от AlekVolsk »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Замените loadAssoc() на loadObject()
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Следующий офигенный вопрос.
Во фронте при нажатии на кнопку в модели вызывается функция обновления данных (все тоже самое: обмен xml-файлами по ftp, запись данных из XML в бд).
Как мне вызвать эту функцию сразу после успешной авторизации пользователя?
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Форма в представлении в компоненте, ссылка на js, в котором вызывается form.submit:
Код: html4strict
<script type="text/javascript">
  UpdateData = function()
  {
    var form = document.getElementById('adminForm');
    jQuery('#loading').css('display', 'block');
    form.worktype.value = 'ftpxml';
    form.submit();
  };

  jQuery(document).ready(function($)
  {
    var outerDiv = $('html');
    $('<div id="loading"></div>')
      .appendTo(outerDiv);
  });
</script>

<div id="mfo" class="clearfix" >
  <h1><?php echo JText::_('COM_MFO_H_LOANS'); ?></h1>
  <form action="<?php echo JRoute::_('index.php?option=com_mfo&view=loans'); ?>" method="post" name="adminForm" id="adminForm" class="form-horizontal">

    <div class="control-group mfo-upd">
      <div class="controls">
        <a class="btn a pull-right" href="javascript:UpdateData()"><?php echo JText::_('COM_MFO_FTP_UPDATE');?></a>
      </div>
    </div>

    <div>
      <input type="hidden" name="type" value="" />
      <input type="hidden" name="worktype" value="" />
      <input type="hidden" name="task" value="loans.work" />
      <?php echo JHtml::_('form.token'); ?>
    </div>

  </form>
</div>

В модели public function work() делает вызов protected function _FtpXML(), где и производятся все манипуляции по обновлению данных.
Теперь нужно вызвать work(), передав ей form.worktype.value = 'ftpxml'; или как-либо еще вызвать _FtpXML() при авторизации юзера.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Плагин на событие onUserLogin ?
и как это реализовать?
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
и как это реализовать?
В смысле как написать свой плагин? Или как в плагине вызвать work()?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В смысле как обойтись без плагина, только в компоненте? Протоколируется время последнего обновления, при авторизации пользователь сразу попадает в представление, в модели которого имеется work(). Возможно, как-то можно вызвать work() в момент вызова представления, попутно проверив, а надо ли это делать: если последнее обновление было раньше, чем пользователь залогинился в активной сессии, и при этом раньше, чем с момента последнего обновления прошел час, то вызываем work(), иначе просто отображаем то, что надо.
Кстати, J хранит время последней авторизации юзера? как получить?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Конечно можно, в представлении и проверьте и вызовите, в чем проблема?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться