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

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
Доброго времени суток. Прошу помочь в решении моей задачи.
Имеется кастомный компонент объявлений. В объявлении есть опции, к примеру срок аренды. В админке срок аренды задается через список селект со значениями 1,2,3, так далее. Далее в субконтроллере вида view.html.php в цикле происходит обработка вывода этих значений и присвоение им текстовых параметров . То есть к примеру если срок аренды = 1 то ему присваиваем определенную языковую переменную из языкового файла. И далее уже в виде се красиво.

Теперь более подробно с чем я столкнулся и что я не могу понять как решить. На странице вывода объявлений  есть AJAX подгрузка объявлений. Из вьюхи в котроллер .  com_arenda/controllers/arenda.php  я передаю параметры для sql запроса на выборку объявлений. То есть сейчас в контроллере у меня и запрос на выборку из БД и предполагаемая пост обработка данных для формирования вывода их в вид. Но модель может усложняться и я хочу отделить при AJAX подгрузке контента модуль и контроллер.

Если отталкиваться от патерна MVC я должен передать из вида в контроллер параметры, далее их передать в модель, получить ответ от модели и его уже обработать и отдать в вид. Я понимаю что MVC это не 100% как надо делать но для меня сейчас это решение . Что бы не громоздить конструкцию из 100500 if else в контроллере и там же не обращаться к БД я хочу получить данные в контроллере, подгрузить метод выборки из модели в которую передам то что получил в контроллере, и уже далее в контроллере перебрать в цикле foreach то что мне вернет бд и оформить так как мне нужно.

То есть что мне нужно
: подскажите, как правильно написать конструкцию запроса обращения к методу модули из контроллера, что бы в контроллере получить результат работы БД
 
*

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
Запрос на url:
'index.php?option=com_arenda&task=arenda.getData'
или на
'index.php?option=com_arenda&task=arenda.getData&format=json'

в com_arenda/controllers/arenda.php
или в
в com_arenda/controllers/arenda.json.php

Код
public function getData()
{
    JSession::checkToken() or jexit (JText::_('JINVALID_TOKEN'));
    $jinput = JFactory::getApplication()->input;
    ........

    try
    {
        $model = $this->getModel();  // или $model = $this->getModel('modelName');
        if( $model->blabla($any) )   // получить объявления из базы
        {
        // обработать и echo данные
Веб-разработка: заказ. Только новая разработка.
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
Спс, буду пробовать. :)

Можно еще вопрос? :) А вот такая ситуация : у меня в модели есть метод выборки записей

Код: php

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from('#__zaim');
$query->where('`published` = 1');
$query->order('`top` DESC');
return($query);

получается он возвращает строку запроса sql в бд. И далее в view.html.php он уже перебирается. Сейчас я в моделе создал еще один метод, который возвращает объект с данными. По сути они будут идентичны. То есть выборка будет одинаковая но т.к в дальнейшем модель  будет обрастать условиями я думаю как сделать так что бы метод в моделе был один и для обычного вывода  на странице записей и для подгрузки аякса.

Если я в контроллере делаю вот так

Код: php
  			$db = JFactory::getDbo(); 
                        $model = $this->getModel();
$db->setQuery($model, $start, 1);
$list = $db->loadObjectList();

То в контроллере будет ошибка связанная с неверным запросом в БД. Причина ошибки ясна но я хотел уточнить : в целом такой подход может быть ? То есть у меня есть 1 метод в моделе для выборки записей и в контроллере я уже   обращаясь к нему же, возвращаю объект с данными и его обрабатываю ? Или е то что я написал некий БДСМ и есть методы и попроще ?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Ваши контроллер и модель, скорее всего, являются "дочерьми" контроллера и модели API Joomla. Родительская модель в конечном счете возвращает массив объектов, просто она разбила скрипт на несколько методов для более удобного использования.
Метод, который формирует запрос, называется getListQuery(). Он передает запрос в функцию getItems(), которая, в свою очередь, делает выборку из БД.
Если в вашей модели нет getItems, это не значит, что она не может использовать тот же метод от своего родителя.
Как правило, вы пишете для своей модели свой метод getItems только в случае, когда вы хотите обрабатывать результат, полученный от родительского класса.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
я думаю как сделать так что бы метод в моделе был один и для обычного вывода  на странице записей и для подгрузки аякса.
Он и так один. Модель ничего не знает, какой будет вывод. Она просто вернет данные. Как вы их отразите, ее не волнует.

Если я в контроллере делаю вот так
не надо

То есть у меня есть 1 метод в моделе для выборки записей и в контроллере я уже   обращаясь к нему же, возвращаю объект с данными и его обрабатываю ?
Веб-разработка: заказ. Только новая разработка.
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отправка файлов через ajax в модуль Joomla

Автор hemicide

Ответов: 19
Просмотров: 2829
Последний ответ 11.04.2022, 08:44:33
от sivers
Создание компонента для табеля рабочего времени

Автор sashahz

Ответов: 7
Просмотров: 1144
Последний ответ 12.04.2021, 11:12:11
от sashahz
Вызов формы компонента в pop-up, при клике по ссылке из любого места

Автор SkyAn

Ответов: 1
Просмотров: 974
Последний ответ 01.03.2021, 04:08:48
от gartes
Документация по разработки компонента для Joomla 3.x

Автор Aspik

Ответов: 9
Просмотров: 3732
Последний ответ 23.01.2021, 07:55:56
от hmr
Сборка инсталятора компонента файлами из разных папок с привлечением github

Автор borro

Ответов: 1
Просмотров: 1007
Последний ответ 25.12.2020, 21:21:30
от platonische