Новости 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

Поток товаров, связанные товары для JoomShopping 5+.

Поток товаров, связанные товары для JoomShopping 5+.

Расширение для JoomShopping 5+, которое позволяет связывать товары между собой на основе общих характеристик, создавая логические группы товаров в каталоге.

Расширение реализует механизм связывания товаров, похожий на стандартный Related Products, но с дополнительной возможностью быстрого подбора товаров по характеристикам.

Принцип работы
- Связывание товаров происходит в полуавтоматическом режиме.
- Администратор выбирает характеристику, по которой нужно сформировать группу товаров (например: модель, серия, объем, тип и т.д.).
- Система фильтрует и показывает список товаров с таким же значением характеристики.
- Администратор выбирает нужные товары из списка для создания связи.
Таким образом сохраняется полный контроль над связями, но значительно упрощается поиск нужных товаров.

Назначение потока товаров в одном товаре является сквозным. Это обеспечивает автоматическую связь и возможность корректировки потока в каждом товаре, который к нему относится.

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

@joomlafeed

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

rain_heart

  • Новичок
  • 4
  • 1 / 0
Возникла такая необходимость в модуле ZOO Category показывать не только категории а еще заголовки элементов. Немного изменил модуль и все заработало.
Версия Zoo 3.1
Версия Joomla 3.3.0


1. Добавляем строчку в файл: administrator/language/en-GB/en-GB.com_zoo.ini

Код: ini
SHOW_ITEMS_DESCRIPTION="If set to yes, it will show the elements from category"
я добавил после строчки
Код: ini
SHOW_ITEM_COUNT_DESCRIPTION="If set to yes, it will show the number of items present in the category"

это дескриптор для будущей радиокнопки (вкл/выкл показ элементов)

2. Добавляем в файл: modules/mod_zoocategory/mod_zoocategory.xml в раздел <fieldset></fieldset>
Код: xml
<field name="add_items" type="radio" default="0" label="Show elements in category" description="SHOW_ITEMS_DESCRIPTION">
     <option value="1">JYES</option>
     <option value="0">JNO</option>
</field>[/color]
это радиокнопка в настройках модуля Zoo Category

3. Добавляем в файл: modules/mod_zoocategory/helper.php кусочек кода
Код: php
if ($params->get('add_items', 0)) {
   if ($category->getItems()) {
      $result[] = "<ul $attribs>";
      $arr_items = $category->getItems();
      foreach ($arr_items as $currentitem) {
        $url = $this->app->route->item($currentitem, true);
        $result[] = "<li$class>";
        $result[] = "<a href=\"$url\"$class><span>{$currentitem->name}</span></a>";
         $result[] = '</li>';
      }
      $result[] = '</ul>';
    }
}

!этот кусочек надо добавить после кода!
Код: php
if ($params->get('add_count', 0)) {
     $result[] = "<a href=\"$url\"$class><span>{$category->name} ({$category->itemCount()})</span></a>";
} else {
      $result[] = "<a href=\"$url\"$class><span>{$category->name}</span></a>";
}

В результате можно выводить не только список категорий и подкатегорий но еще и список элементов категорий со ссылками на них.
P.S. Я не волшебник, я только учусь поэтому комментарии от гуру приветствуются, возможно это можно было сделать более изящней.
*

rain_heart

  • Новичок
  • 4
  • 1 / 0
UPD!

Посмотрел внимательно код: modules/mod_zoocategory/helper.php
обнаружил
строчку (у меня 37)
Код: php
$parent = $category->hasChildren() && !($max_depth && $max_depth < $depth + 1));

надо заменить на строку
Код: php
$parent = ($category->hasChildren() && !($max_depth && $max_depth < $depth + 1)) || ($category->getItems());

она добавляет в класс значение ' parent' для категории в которой есть элементы.

Так как дальше собираюсь сделать завернуть список категорий в аккордеон меню, кажется это правильно.
*

rain_heart

  • Новичок
  • 4
  • 1 / 0
UPD 2.0

В приложенном выше коде получается что элементы директорий будут всегда отображаться в независимости активная директория или нет это при использовании темы "warp6-sidebar-menu"
чтоб это исправить надо немного изменить условие в строке

вот это
Код: php
if ($category->getItems()) {
...
}

меняем на это
Код: php
if ($category->getItems() && $active) {
...
}


в результате получаем вот такой полный код в modules/mod_zoocategory/helper.php

Код: php
<?php
/**
* @package   ZOO Category
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
*/

/*
Class: CategoryModuleHelper
The category module helper class
*/
class CategoryModuleHelper extends AppHelper {

    public function render($category, $params, $level = 0, $flat = false, $attribs = null, $expanded = false) {

// init vars
$menu_item = $params->get('menu_item');
$max_depth = (int) $params->get('depth', 0);
if (!$current_id = (int) $this->app->request->getInt('category_id', $this->app->system->application->getParams()->get('category'))) {
if ($item = $this->app->table->item->get((int) $this->app->request->getInt('item_id', $this->app->system->application->getParams()->get('item_id', 0)))) {
$current_id = $item->getPrimaryCategoryId();
}
}

$result = array("<ul $attribs>");
foreach ($category->getChildren($flat ? true : false) as $category) {

$path = array_reverse($category->getPath());
$depth = count(array_slice($path, array_search($params->get('category', 0), $path))) - 1;
if ($max_depth && $max_depth < $depth) {
continue;
}

$current = $current_id == $category->id;
$active = $current || in_array($current_id, array_keys($category->getChildren(true)));
$parent = ($category->hasChildren() && !($max_depth && $max_depth < $depth + 1)) || ($category->getItems());
$url = $this->app->route->category($category, true, $menu_item);
$class = ' class="'.($flat ? '' : 'level'.$level).($parent ? ' parent' : '').($current ? ' current' : '').($active ? ' active' : '').'"';

$result[] = "<li$class>";
           
           if ($params->get('add_count', 0)) {
$result[] = "<a href=\"$url\"$class><span>{$category->name} ({$category->itemCount()})</span></a>";
                   
} else {
$result[] = "<a href=\"$url\"$class><span>{$category->name}</span></a>";
}
           
           
            /* Вывод элементов категории   */
             if ($params->get('add_items', 0)) {
                if ($category->getItems() && $active) {
                    $result[] = "<ul $attribs>";
                    foreach ($category->getItems() as $currentitem) {
                        $url = $this->app->route->item($currentitem, true);
                        $result[] = "<li$class>";
                        $result[] = "<a href=\"$url\"$class><span>{$currentitem->name}</span></a>";
                        $result[] = '</li>';
                    }
                    $result[] = '</ul>';
                }
             }
           
if (!$flat && ($active || $expanded) && $parent) {
$result[] = $this->render($category, $params, $level+1, $flat, 'class="level'.($level+1).'"', $expanded);
}
$result[] = '</li>';

}
$result[] = '</ul>';

return implode("\n", $result);
}

}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Дополнительное поле с редактором для категории. Zoo

Автор rch.sergeevich

Ответов: 1
Просмотров: 3574
Последний ответ 22.05.2022, 08:12:16
от arma
Error!-Error-Reordering Category (invalid slug)

Автор sig_

Ответов: 2
Просмотров: 4647
Последний ответ 27.11.2020, 08:59:35
от vasmed
Вывод материала категории

Автор face2005

Ответов: 0
Просмотров: 4444
Последний ответ 28.09.2018, 18:26:52
от face2005
[Решено] Как в модуле ZOO Item вывести название и описание категории?

Автор frolov.ar

Ответов: 13
Просмотров: 7568
Последний ответ 01.04.2017, 13:29:52
от rivermc
URL нескольких страниц категории

Автор saschka

Ответов: 2
Просмотров: 2625
Последний ответ 08.02.2017, 13:45:36
от saschka