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

Magl

  • Захожу иногда
  • 85
  • 3 / 0
Доброго времени суток !
Надо создать форму после заполнения которой при нажатии на "Отправить" у человека начинается скачивание файл, а форма отправляется админу.
Заранее спасибо!
*

Groweed

  • Новичок
  • 1
  • 0 / 0
Re: Скачка файла при откравки формы ?
« Ответ #1 : 17.12.2012, 10:33:14 »
Самому нужна была такая тема, реализовал немного криво, но кое что есть.Требуется доработка, т.к. php я особо не знаю.
Идём в папку, открываем следующий файл
Z:\home\localhost\www\components\com_breezingforms\facileforms.process.php
Там ищем строчку // sendMail.Функция exppdf. В этой функции выполняется генерация самого pdf файла со всем необходимым нам содержимым.

Код
    function exppdf($filter = array(), $mailback = false) {
        global $ff_compath;

        $file = JPATH_SITE . '/administrator/components/com_breezingforms/pdftpl/' . $this->formrow->name . '_pdf_attachment.php';
        if (!JFile::exists($file)) {
            $file = JPATH_SITE . '/administrator/components/com_breezingforms/pdftpl/pdf_attachment.php';
        }

        if ($mailback) {
            $mb_file = JPATH_SITE . '/administrator/components/com_breezingforms/pdftpl/' . $this->formrow->name . '_pdf_mailback_attachment.php';
            if (JFile::exists($mb_file)) {
                $file = $mb_file;
            } else {
                $mb_file = JPATH_SITE . '/administrator/components/com_breezingforms/pdftpl/pdf_mailback_attachment.php';
                if (JFile::exists($mb_file)) {
                    $file = $mb_file;
                }
            }
        }

        $processed = array();
        $xmldata = array();

        $_xmldata = $this->xmldata;
        if ($mailback) {
            $_xmldata = $this->mb_xmldata;
        }

        foreach ($_xmldata as $data) {
            if (!in_array($data[_FF_DATA_NAME], $filter) && !in_array($data[_FF_DATA_NAME], $processed)) {
                $xmldata[] = $data;
                //$processed[] = $data[_FF_DATA_NAME];
            }
        }

        ob_start();
        require($file);
        $c = ob_get_contents();
        ob_end_clean();

        require_once(JPATH_SITE . '/administrator/components/com_breezingforms/libraries/tcpdf/tcpdf.php');
        $pdf = new TCPDF();
        $pdf->setPrintHeader(false);
        $pdf->AddPage();
        $pdf->writeHTML($c);
        mt_srand();
        $pdfname = $ff_compath . '/exports/ffexport-pdf-' . date('YmdHis'). '-' . mt_rand(0, mt_getrandmax()). '.pdf';
        $pdf->lastPage();
       $pdf->Output($pdfname, "F");
        return $pdfname;
    }

Как берутся данные с страницы?
На сколько я понял всё берётся функцией ob_get_contents(), из этих данных формируется наш pdf файл. В функцию exppdf нужно вставить следующий код
Цитировать
///////////////////////////////////////////////////////
        $createpdf = new TCPDF();
        $createpdf->SetFont('freesansi', '', 15);  //Строку эту можно и убрать, но тогда у Вас не будет отображать русский шрифт (
        $createpdf->setPrintHeader(false);     
        $createpdf->AddPage();
        $createpdf->writeHTML($c);             
        $createpdf->Output();                   
///////////////////////////////////////////////////////

В итоге, функция exppdf выглядит у меня следующим образом:
Цитировать
// sendMail


    function exppdf($filter = array(), $mailback = false) {
        global $ff_compath;

        $file = JPATH_SITE . '/administrator/components/com_breezingforms/pdftpl/' . $this->formrow->name . '_pdf_attachment.php';
        if (!JFile::exists($file)) {
            $file = JPATH_SITE . '/administrator/components/com_breezingforms/pdftpl/pdf_attachment.php';
        }

        if ($mailback) {
            $mb_file = JPATH_SITE . '/administrator/components/com_breezingforms/pdftpl/' . $this->formrow->name . '_pdf_mailback_attachment.php';
            if (JFile::exists($mb_file)) {
                $file = $mb_file;
            } else {
                $mb_file = JPATH_SITE . '/administrator/components/com_breezingforms/pdftpl/pdf_mailback_attachment.php';
                if (JFile::exists($mb_file)) {
                    $file = $mb_file;
                }
            }
        }

        $processed = array();
        $xmldata = array();

        $_xmldata = $this->xmldata;
        if ($mailback) {
            $_xmldata = $this->mb_xmldata;
        }

        foreach ($_xmldata as $data) {
            if (!in_array($data[_FF_DATA_NAME], $filter) && !in_array($data[_FF_DATA_NAME], $processed)) {
                $xmldata[] = $data;
                //$processed[] = $data[_FF_DATA_NAME];
            }
        }

        ob_start();
        require($file);
        $c = ob_get_contents();
        ob_end_clean();

        require_once(JPATH_SITE . '/administrator/components/com_breezingforms/libraries/tcpdf/tcpdf.php');
        $pdf = new TCPDF();
        $pdf->setPrintHeader(false);
        $pdf->AddPage();
        $pdf->writeHTML($c);
///////////////////////////////////////////////////////
        $createpdf = new TCPDF();
        $createpdf->SetFont('freesansi', '', 15);   
        $createpdf->setPrintHeader(false);     
        $createpdf->AddPage();
        $createpdf->writeHTML($c);             
        $createpdf->Output();                   
///////////////////////////////////////////////////////       
        mt_srand();
        $pdfname = $ff_compath . '/exports/ffexport-pdf-' . date('YmdHis'). '-' . mt_rand(0, mt_getrandmax()). '.pdf';
        $pdf->lastPage();
        $pdf->Output($pdfname, "F");
        return $pdfname;
    }

Что мы имеем:
После тогда как мы на кнопку submit настроим отправку сообщений на мыло админа, автоматически после заполнения формы будет открываться pdf файл который можно будет сохранить.
Минусы:
-открывается в том же окне, хотелось чтобы в новом открывалось.
-Вставить бы этот код куда нибудь в другое место, чтобы его можно было прикрепить на любую кнопку, потому что мне допустим не нужна отправка сообщений =)
-Мне не нравится, что документ формируется из данных которые берутся функцией  ob_get_contents(). А эта функция берёт абсолютно всё.И данные браузера айпишника и т.д. Как сформировать свой документ, с нужными данными?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пропадают символы "_" и "-" в имени файла при закачке через форму

Автор busik

Ответов: 0
Просмотров: 3924
Последний ответ 17.04.2018, 21:38:11
от busik
Изменить надпись после отправки Формы

Автор warlocksp

Ответов: 4
Просмотров: 7490
Последний ответ 26.05.2016, 16:56:56
от bgg87
Автоматическая прокрутка страницы после отправки формы

Автор Mihas

Ответов: 0
Просмотров: 2577
Последний ответ 29.07.2015, 15:54:53
от Mihas
Ошибка 1146 при отправке с формы. Сообщение не уходит

Автор Kaktus_0,7

Ответов: 6
Просмотров: 2545
Последний ответ 30.11.2014, 23:05:04
от Kaktus_0,7
Как загрузить название товара из каталога в поле формы?

Автор kantimota

Ответов: 1
Просмотров: 2620
Последний ответ 03.07.2013, 14:25:46
от Cergunya