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

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Здравствуйте!
В компоненте формирования заявок от пользователей, среди прочей информации, которую вводит пользователь, должна быть загрузка изображения (.png), которое надо сохранить на сервере и записать в БД.
В site/com_odere/views/html/default.php поле для файла представлено в блоке Структурная формула (name=img_png):
Спойлер
[свернуть]
в
В site/com_order/models/forms/ поле представлено (среди прочих полей):
Спойлер
[свернуть]
В site/com_order/controllers/registration/ register.php
Код
		$app   = JFactory::getApplication();
/* файл */
$jinput = $app->input;
if ($file = $jinput->files->get('img_png', null, 'files', 'array')) {
if ($filename = JFile::makeSafe($file['name'])) {
             $src = $file['tmp_name'];              
            $path =JPATH_SITE ."/components/com_order/assets/images/";
            $dest =$path.'uploaded_files '.$filename;
           if (JFile::upload($src, $dest)) {
JFile::delete($dest);
 } else {
                              JFactory::getApplication()->enqueueMessage('Не получается обработать файл', 'error');
                           }
} else {
JFactory::getApplication()->enqueueMessage('Нет названия файла', 'error');
}
} else {
JFactory::getApplication()->enqueueMessage('Нет файла', 'error');
}
Так вот у меня получается 'Нет файла'
Все остальные поля формы сохраняются, а вот изображение получить не могу.
Правда, в компоненте вид формы зависит от типа записи, и в модели я подставляю нужную форму
Спойлер
[свернуть]
« Последнее редактирование: 17.01.2017, 11:35:47 от GuDeVic »
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Цитировать
$file = $jinput->files->get('img_png', null, 'files', 'array')
это что за зверь? откуда там четвертый параметр взялся?)
сделать var_dump($_FILES) и посмотреть что приходит
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
это что за зверь? откуда там четвертый параметр взялся?)
сделать var_dump($_FILES) и посмотреть что приходит
Вот отсюда взяла (от Fedor Vlasenko) http://joomlaforum.ru/index.php?topic=263530.0
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Да, var_dump($_FILES) (в модели)правильно изображение представляет
Спойлер
[свернуть]
« Последнее редактирование: 17.01.2017, 12:42:46 от GuDeVic »
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
а если так?
Цитировать
$files = $jinput->files->get('jform', null, 'array');
if (!empty($files)) {
    foreach ($files as $file) {
        var_dump($file);
    }
}
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
а если так?
Тогда получается так:
Спойлер
[свернуть]
« Последнее редактирование: 17.01.2017, 13:38:37 от GuDeVic »
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Спасибо.
Я вставила var_dump, на экране появились сведения о загружаемом файле, и только они.
Убираю var_dump - сохраняю файлы, архивирую, загружаю компонент - ничего не меняется.
Всё выглядит так, как будто продолжается работа с неисправленным компонентом.
И наоборот, если возвращаюсь к версии, где не было var_dump и вставляю команду var_dump - тоже ничего не меняется, как будто этой команды нет.
Ничего понять не могу - ведь как-то же первый раз по Вашему совету вставила.

*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Убираю var_dump - сохраняю файлы, архивирую, загружаю компонент - ничего не меняется.
Всё выглядит так, как будто продолжается работа с неисправленным компонентом.
что архивирую и куда загружаю?)
и причем здесь var_dump?
это я просто написал для отладки что бы можно посмотреть приходит файл или нет
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
что архивирую и куда загружаю?)
и причем здесь var_dump?
это я просто написал для отладки что бы можно посмотреть приходит файл или нет
var_dump  я вставляла в контроллер и в метод register (сохранение записи) в модели. Потом эти команды убрала (закомментировала), сохранила файлы, заархивировала компонент, загрузила его, но после загрузки всё выглядело так, как будто dump_var не убран.
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Код
JFile::makeSafe($file['name'])
Оффтоп - и это всё? Маловато для проверки

https://cmscafe.ru/razrabotka/547-sozdaem-bezopasnye-rasshireniya-dlya-joomla#file-uploads


У Вас сейчас дыра, как было у AdsManager Опасное расширения для Joomla - AdsManager все версии, разработчик не добросовестный!
Спасибо. Маловато будет! Это просто для тестирования возможности загрузки.
Ещё раз спасибо за дыру, в смысле, что, скорее всего это дыра, а не я сошла с ума (пока что).
Что делать? Удавиться?
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
AdsManager у меня нет, а вот ajaxupload вчера вечером установила. Может совпадение, конечно, но в своём компоненте до загрузки изображений не дошла, тк. не могла получить информацию о загруженном файле (именно поэтому я и обратилась за помощью)
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
var_dump  я вставляла в контроллер и в метод register (сохранение записи) в модели. Потом эти команды убрала (закомментировала), сохранила файлы, заархивировала компонент, загрузила его, но после загрузки всё выглядело так, как будто dump_var не убран.
причем тут сборка и установка?
все манипуляции надо производить в файлах на уже установленном расширении, а потом уже когда все готово и работает думать уже о его сборке, упаковке и т.д.
файл то получилось загрузить или нет? :)

*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
причем тут сборка и установка?
все манипуляции надо производить в файлах на уже установленном расширении, а потом уже когда все готово и работает думать уже о его сборке, упаковке и т.д.
файл то получилось загрузить или нет? :)



Речь идёт о компонентне, который надо было дополнить возможностью загрузки пользователем файла(изображения). Т.е. пользователь выбирает тип заявки, заполняет её, заявка поступает исполнителю и тд и тп.  Но. Теперь понадобилось форму заявки дополнить возможностью ввода структурной формулы (изображение.png), чтобы исполнитель имел доп. информацию. В этом компоненте я пыталась сделать загрузку файла.
Пока не получилось. Потому что ...не знаю, что случилось, но ни print_r, ни var_dump..Ладно, попробую успокоиться.
Не сама же я от руки написала
Код
array(1) { ["jform"]=> array(5) { ["name"]=> array(1) { ["img_png"]=> string(23) "Gerb_Novosibirsk_50.png" } ["type"]=> array(1) { ["img_png"]=> string(9) "image/png" } ["tmp_name"]=> array(1) { ["img_png"]=> string(14) "/tmp/php0HB8TX" } ["error"]=> array(1) { ["img_png"]=> int(0) } ["size"]=> array(1) { ["img_png"]=> int(5413) } } }
Так как к этому массиву обратиться, чтобы прочесть имя загруженного файла, если у поля имя img_png?
*

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
Цитировать
Так как к этому массиву обратиться, чтобы прочесть имя загруженного файла, если у поля имя img_png?
В контроллере:
Код: php
$files = $this->input->files->get('jform', array(), 'array');
foreach( $files['img_png'] as $img )
{
    //todo
}

Попробуйте более четко излагать мысли. Ничего не понятно в теме.
Веб-разработка: заказ. Только новая разработка.
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
В контроллере:
Код: php
$files = $this->input->files->get('jform', array(), 'array');
foreach( $files['img_png'] as $img )
{
    //todo
}

Попробуйте более четко излагать мысли. Ничего не понятно в теме.

Вообще-то в теме было написано и про компонент, и про проблему, и приведены  коды.
« Последнее редактирование: 18.01.2017, 21:14:10 от GuDeVic »
*

averkiev

  • Новичок
  • 3
  • 0 / 0
проблему то решили?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

routing в компоненте для соц сетей

Автор interregional

Ответов: 4
Просмотров: 1108
Последний ответ 10.04.2019, 09:01:01
от sivers
Удаление в самописном компоненте компоненте

Автор phpCoder

Ответов: 8
Просмотров: 1382
Последний ответ 25.11.2016, 09:09:56
от phpCoder
Как в компоненте Backend получить чистый экран без системного джумловского меню ?

Автор tm2010

Ответов: 30
Просмотров: 2788
Последний ответ 10.02.2016, 19:34:41
от Aleks.Denezh
Создание динамических полей в своем компоненте

Автор NeuroZ

Ответов: 14
Просмотров: 1923
Последний ответ 18.08.2015, 11:17:59
от b2z
Обработка данных в компоненте перед сохранением

Автор ipservice

Ответов: 2
Просмотров: 1594
Последний ответ 27.07.2015, 12:46:01
от ipservice