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

Worker

  • Новичок
  • 7
  • 0 / 0
setRedirect
« : 19.10.2008, 17:14:30 »
Это отрывок из com_user\controller.php стандартный компонент, на сколько я понял в случае возникновения ошибки происходит редирект на адрес
index.php?option=com_user&view=reset и передается сообщение с тектом ошибки $message. Вот вопрос как мне добраться до этого сообщения из Представления (View) что-бы вывести на экран?
 
// Request a reset
if ($model->requestReset($email) === false)
{
   $message = JText::sprintf('PASSWORD_RESET_REQUEST_FAILED', $model->getError());
   $this->setRedirect('index.php?option=com_user&view=reset', $message);
   return false;
}
*

Worker

  • Новичок
  • 7
  • 0 / 0
Re: setRedirect
« Ответ #1 : 27.10.2008, 10:12:04 »
С проблемой я разобрался:) Так как я новичок то не знал что в шаблоне надо указывать место отображения сообщений <jdoc:include type="message" /> по этому у меня сообщения и не отображались.
*

Worker

  • Новичок
  • 7
  • 0 / 0
Re: setRedirect
« Ответ #2 : 15.01.2009, 16:39:13 »
Я почему то не могу отправлять Личные сообщение, по этому отвечу zaboich сдесь.
Для вывода сообщения в представлении я использую переменную message:
Задача в контроллере:
function edit(){
      $arr = JRequest::get( 'post' );
      $model =& $this->getModel( 'explog' );
      $r = $model->getConfig($arr['cid'][0]);
      if (!$r) {
         $msg = $model->getError(); // Получение сообщения из объекта модели
         JRequest::setVar( 'view', 'explog' );
         JRequest::setVar( 'layout', 'options'  );
         JRequest::setVar('hidemainmenu', 1);
         JRequest::set(JRequest::get( 'post' ), 'post');
         JRequest::setVar( 'message', $msg  ); // Установка переменной message
      }
      JRequest::setVar( 'view', 'explog' );
      JRequest::setVar( 'layout', 'options'  );
      JRequest::setVar('hidemainmenu', 1);
      parent::display();
   }
В представлении:
$arr = JRequest::get( 'post' );
if(!empty($arr['message'])) echo '<h3 style="color:#FF0000">'.$arr['message'].'</h3>'; // Если переменная не пустая вывести сообщение

В модели например:
$db->setQuery( $query );
if(  !$db->query()  ){
   $this->setError( 'INSERT category cfg  '.$db->getErrorMsg() ); // Получение ошибки при обращении к БД и занесение ее в объект модели
   return false;
}
*

zaboich

  • Осваиваюсь на форуме
  • 37
  • 11 / 0
Re: setRedirect
« Ответ #3 : 20.01.2009, 17:00:07 »
Спасибо за ответ.

Цитировать
В представлении:
Код
$arr = JRequest::get( 'post' );
if(!empty($arr['message'])) echo '<h3 style="color:#FF0000">'.$arr['message'].'</h3>'; // Если переменная не пустая вывести сообщение

Мне кажется более красивое решение:
Код
JError::raiseNotice($code, 'message'); // выводит предупреждение 
или
Код
JError::raiseWarning($code,'message'); // выводит сообщение об ошибке 
Как раз выводят стандартное Jooml`овское сообщение (предупрежедение или ошибку), такой подход должен лучше вписываться в произвольный шаблон. Честно говоря зачем нужна переменная $code я не понял, а "message" - это то самое сообщение.

Ну а соответственно если надо сделать редирект, то из контролера
Код
$this->setRedirect('index.php?...', 'сообщение об ошибке');
$this->redirect;
но иногда хочется сделать редирект из Модели или из Вида (представления)
(может, конечно, все проверки надо делать в контроллере, но:
если Вид (с помощью Модели) делается к.л. сложный и долгий запрос к БД, а запрос возвращает к.н. нехороший результат, например нулевой (не ошибку, а именно результат, который не вписывается в логику текущего Вида), то можно сделать редирект прямо из Вида, с объявнением причины, почему пользователя туда послали
Код
JController::setRedirect('/index.php?option=com_component&view=correctView', 'Вы сделали что-то не то или хотите туда куда Вам нельзя, начните с другой стороны' );
JController::redirect();

к сожалению не могу вспомнить какие значения, кроме "message" может принимать третий параметр setRedirect( $url, $msg = null, $type = 'message' )
*

Cerebrum

  • Новичок
  • 7
  • 1 / 0
Re: setRedirect
« Ответ #4 : 28.09.2011, 22:07:16 »
Цитировать
к сожалению не могу вспомнить какие значения, кроме "message" может принимать третий параметр setRedirect( $url, $msg = null, $type = 'message' )
"message" - для вывода информации
"warning" - для вывода предостережений или предупреждений
"error" - для вывода информации об ошибках
Вроде так...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Непонятное поведение setRedirect

Автор b2z

Ответов: 5
Просмотров: 2165
Последний ответ 14.01.2010, 01:57:49
от b2z