Новости Joomla

👩‍💻 WT CDEK library v.1.3.0 - обновление PHP SDK для Joomla + CDEK.

👩‍💻 WT CDEK library v.1.3.0 - обновление PHP SDK для Joomla + CDEK.

Небольшая нативная PHP Joomla библиотека для работы с API v.2 службы доставки CDEK. Библиотека представляет собой клиент для авторизации в CDEK API по OAuth, работы с некоторыми методами API: получения ряда данных и расчета стоимости доставки. Поддерживается Joomla 4.2.7 и выше.

В пакет входят:
- библиотека Webtolk/Cdekapi
- системный плагин System - WT Cdek для хранения настроек и AJAX-интеграций
- task-плагин Task - Update WT Cdek data для обновления локальных копий справочников CDEK по расписанию
- web asset с официальным JavaScript-виджетом СДЭК

👉 v.1.3.0. Что нового?
- Полный рефакторинг библиотеки. Библиотека переработана в entity-based API с фасадом Cdek и отдельным слоем запросов. Обратная совместимость не нарушена, поэтому версия библиотеки - 1.3.0.
- Добавлена поддержка новых разделов API СДЭК. Добавлена поддержка новых разделов API СДЭК: webhooks, prealert, печатные формы, payment, passport, reverse, intakes и других сущностей.
- Улучшена интеграция с Joomla.
Улучшена интеграция с Joomla: installer script для layouts, новые поля Joomla Form для тарифов и обновлённые js виджета CDEK.
- документация библиотеки. Все методы библиотеки подробно описаны, а так же текст документации собран в отдельной папке в git репозитории и будет опубликован на сайте.

Библиотека эта нужна для разработчиков, создающих свои расширения для интеграции Joomla и курьерской службы CDEK.

Страница расширения
GitHub расширения

@joomlafeed

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

zmeyx

  • Захожу иногда
  • 144
  • 7 / 0
  • http://www.nt1.su
Необходимо доаботать поиск VirtueMart. нужно в поиск добавить выбор производителя.  сделать как на сайте http://www.vseinstrumenti.ru/ т.е. ограничить поиск только товарами выбранного производителя.
Готов заплатить в разумных пределах за доработанный модуль....
Сам в PHP не разбираюсь, но так понимаю что работы не особо много.... в общих чертах - объединить 2 модуля mod_virtuemart_search и mod_virtuemart_manufacturers.
Буду благодарен за помощь
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
не проверял, кошелек в профиле
Код
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/**
* VirtueMart Search Module
* NOTE: THIS MODULE REQUIRES THE PHPSHOP COMPONENT FOR MOS!
*
* @version $Id: mod_virtuemart_search.php 1159 2008-01-14 20:30:30Z soeren_nb $
* @package VirtueMart
* @subpackage modules
*
* @copyright (C) 2004-2007 soeren
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* VirtueMart is Free Software.
* VirtueMart comes with absolute no warranty.
*
* www.virtuemart.net
*/

// Load the VirtueMart main parse code
if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
} else {
require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
}

global $VM_LANG, $mm_action_url, $sess;

$query_all  = "SELECT m.manufacturer_id,m.mf_name FROM #__{vm}_manufacturer m ";
$query_all .= "ORDER BY m.mf_name ASC";

$db = new ps_DB;
$db->query( $query_all );
$res = $db->record;
$mans='';
foreach( $res as $manufacturer) {
$mans.="<option value=\"".$manufacturer->manufacturer_id ."\" >". $manufacturer->mf_name ."</option>\n"
}
?>
<!--BEGIN Search Box -->
<form action="<?php $sess->purl( $mm_action_url."index.php?page=shop.browse" )?>" method="post">

<p><label for="keyword"><?php echo $VM_LANG->_('PHPSHOP_SEARCH_LBL')?></label></p>
<p>
<input name="keyword" type="text" size="12" title="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" class="inputbox" id="keyword"  />
<select class="inputbox" name="manufacturer_id">
            <option value=""><?php echo $VM_LANG->_('PHPSHOP_SELECT')?></option>
<?php echo $mans ?>
</select>
<input class="button" type="submit" name="Search" value="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" />
</p>
</form>
<!-- End Search Box -->
*

zmeyx

  • Захожу иногда
  • 144
  • 7 / 0
  • http://www.nt1.su
Спасибо огромное за решение... кошельком в профиле воспользовался)))
в коде всего одна маленькая ошибочка исправленный и рабочий код ниже
Код
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/**
* VirtueMart Search Module
* NOTE: THIS MODULE REQUIRES THE PHPSHOP COMPONENT FOR MOS!
*
* @version $Id: mod_virtuemart_search.php 1159 2008-01-14 20:30:30Z soeren_nb $
* @package VirtueMart
* @subpackage modules
*
* @copyright (C) 2004-2007 soeren
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* VirtueMart is Free Software.
* VirtueMart comes with absolute no warranty.
*
* www.virtuemart.net
*/

// Load the VirtueMart main parse code
if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
} else {
require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
}

global $VM_LANG, $mm_action_url, $sess;

$query_all  = "SELECT m.manufacturer_id,m.mf_name FROM #__{vm}_manufacturer m ";
$query_all .= "ORDER BY m.mf_name ASC";

$db = new ps_DB;
$db->query( $query_all );
$res = $db->record;
$mans='';
foreach( $res as $manufacturer) {
$mans.="<option value=\"".$manufacturer->manufacturer_id ."\" >". $manufacturer->mf_name ."</option>\n" }; ?>
<!--BEGIN Search Box -->
<form action="<?php $sess->purl( $mm_action_url."index.php?page=shop.browse" )?>" method="post">

<p><label for="keyword"><?php echo $VM_LANG->_('PHPSHOP_SEARCH_LBL')?></label></p>
<p>
<input name="keyword" type="text" size="12" title="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" class="inputbox" id="keyword"  />
<select class="inputbox" name="manufacturer_id">
            <option value=""><?php echo $VM_LANG->_('PHPSHOP_SELECT')?></option>
<?php echo $mans ?>
</select>
<input class="button" type="submit" name="Search" value="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" />
</p>
</form>
<!-- End Search Box -->

ЗЫ ошибка была в синтаксисе одной ";" не хватало
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
вполне могла быть ошибка - не проверял.
Бонус - вместо
Код
<input name="keyword" type="text" size="12" title="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" class="inputbox" id="keyword"  />
вставьте
Код
<input name="keyword" type="text" size="12" title="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" class="inputbox" type="text" id="keyword" value="введите название товара" onblur="if(this.value=='') this.value='введите название товара';" onfocus=" if(this.value=='введите название товара' || keyword.value=='Слишком короткая фраза!') this.value='';"/>

Только сохраните файл в кодировке UTF без BOM
*

witalikm

  • Новичок
  • 2
  • 0 / 0
Спасибо! полезный материал,
есть небольшой вопрос, чтобы вывести все товары определенного производителя необходимо:
1. в поле поиска поставить * или %
2. выбрать производителя
3. Нажать кнопку поиска,
но не все пользователи знают об первом пункте про значки * или %,
где подправить код:
1. чтоб пользователь не меняя поле поиска, где стоит надпись "введите название товара",
2. выбрал производителя
3. Нажать кнопку поиска
И вывелись товары выбранного производителя как и со значками * или %
Спасибо!
*

witalikm

  • Новичок
  • 2
  • 0 / 0
Проблему решил, оказалось чтобы вывести все товары одного производителя достаточно:
1. Выбрать из выпадающего списка производителя
2. Поле поиска оставить пустым (* или % - не нужны)
3. Нажать кнопку поиска
То есть не использовать JavaScript кода:
Код
<input name="keyword" type="text" size="12" title="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" class="inputbox" type="text" id="keyword" value="введите название товара" onblur="if(this.value=='') this.value='введите название товара';" onfocus=" if(this.value=='введите название товара' || keyword.value=='Слишком короткая фраза!') this.value='';"/>
А использовать
Код
<input name="keyword" type="text" size="12" title="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" class="inputbox" id="keyword"  />

Весь день ломал голову, искал способ как при нажатии кнопки поиска в поле поиска заменять текст "введите название товара" на *
но так и не получилось, оказался выход проще.

Если кто подскажет (а в инете я не нашел), как на лету при отправке формы подменять value текстового поля, было бы замечательно.
пробовал организовать это на JavaScript не получилось, а вот на php не знаю где копать?
Спасибо!
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart - SMS уведомления о сделаном заказе.

Автор bork

Ответов: 42
Просмотров: 25587
Последний ответ 26.07.2021, 22:11:25
от Oleg91
Отчеты и статистика для VirtueMart

Автор 4kict

Ответов: 25
Просмотров: 12167
Последний ответ 14.01.2021, 00:09:53
от gartes
IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 57286
Последний ответ 05.02.2017, 11:44:02
от Super_Panda
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 31746
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
Хаки для убыстрения VirtueMart (уменьшение запросов и т.п.)

Автор yadrinez

Ответов: 197
Просмотров: 84890
Последний ответ 05.02.2016, 21:53:34
от flyingspook