Новости 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 Ответов
  • 2223 Просмотров
*

zt.Dan4ik

  • Осваиваюсь на форуме
  • 31
  • 1 / 0
Здравствуйте. Снова нуждаюсь в Вашей помощи.
Вопрос в следующем. На front-end части сайта пользователь заполняет определённую форму. Но данные должны сохранятся в две таблицы.
Например:
Есть таблицы jos_properties_products с послем name и jos_properties_products_translations с полем pt_name
На сайта два поля с именем name и pt_name
Как сделать так что бы данные из поля name попадали в таблицу jos_properties_products а pt_name в jos_properties_products_translations

В данный момент функция store() выглядит так:

Код
  function store($data)
{
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_properties'.DS.'tables');
$row =& JTable::getInstance('products', 'Table');
if (!$row->bind($data)) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$row->check()) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$row->store()) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
return true;
}

Для таблицы jos_properties_products_translations есть отдельный файл "tables" по этому пути: (JPATH_ADMINISTRATOR.DS.'components'.DS.'com_properties'.DS.'tables')

Заранее спасибо за помощь!
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: store() и несколько таблиц mysql
« Ответ #1 : 22.11.2011, 15:37:34 »
написать нужный SQL запрос и выполнять его. В этом или другом каком-нибудь методе.
*

zt.Dan4ik

  • Осваиваюсь на форуме
  • 31
  • 1 / 0
Re: store() и несколько таблиц mysql
« Ответ #2 : 22.11.2011, 15:40:57 »
а c использованием двух файлов "tables" в которых уже размечена структура таблиц и выполняется запрос?
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: store() и несколько таблиц mysql
« Ответ #3 : 22.11.2011, 15:45:33 »
Ну так выполни тот же самый алгоритм для другой tables
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: store() и несколько таблиц mysql
« Ответ #4 : 22.11.2011, 15:52:13 »
я понятия не имею чего нужно.
Но насколько мне известно операторы INSERT и UPDATE работают с одной таблицей. Т.е. это минимум два запроса будет.
Так же если в них используются какие-то индексы, то их тоже нужно учитывать.
Кроме вас структуры вашей БД никто не знает, следовательно помочь чем-то будет проблематично))
*

zt.Dan4ik

  • Осваиваюсь на форуме
  • 31
  • 1 / 0
Re: store() и несколько таблиц mysql
« Ответ #5 : 22.11.2011, 16:18:35 »
Lex, я об этом думал и даже пытался сделать, в начале не получилось, поэтому обратился на форум. Твой пост заставил меня еще раз попробовать и все получилось. В первой попытке сделал ошибку. Без тебя я бы не справился  *DRINK*

Код
  function store($data)
{
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_properties'.DS.'tables');
$row =& JTable::getInstance('products', 'Table');
$ptrow =& JTable::getInstance('products_translations', 'Table');

if (!$row->bind($data)) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$row->check()) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$row->store()) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$ptrow->bind($data)) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$ptrow->check()) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$ptrow->store()) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
return true;
}

SmokerMan, у меня такое чувство что ты совсем не читал мой первый пост. Я ведь описал для примера элементарную структуру базы и формы. Ведь этого достаточно что бы понять суть вопроса. Я не просил за меня сделать всю работу поэтому не приводил структуру таблиц с которыми работаю ибо она огромная.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться