Новости Joomla

Свои типы полей в Joomla.

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note" name="your_note_for_user" label="Заголовок примечания" title="Альтернативный способ для заголовка" description="Текст примечания" class="col-12 alert alert-info" heading="h1" close="true" />

heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён. Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле

<field type="systempluginstatus" name="systempluginstatus" addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>

-

type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:

<?php // namespace для атрибута addfieldprefix namespace Joomla\Module\Wtquicklinks\Site\Fields; // нельзя напрямую обращаться к этому файлу defined('_JEXEC') or die; // подключаем родительский класс для переопределения use Joomla\CMS\Form\Field\NoteField; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\PluginHelper; // имя класса и имя файла точь-в-точь class SystempluginstatusField extends NoteField { protected $type = 'Systempluginstatus'; protected function getLabel() { // если плагин не включён if(PluginHelper::isEnabled('system','wtquicklinks')) { // меняем свойства родительского класса $this->class = 'alert alert-danger w-100'; $this->element['label'] = '⚠️ А-а-а-а!'; $this->element['description'] = 'Плагин не включён!!'; // и просто рендерим его с нашими свойствами return parent::getLabel(); } // А иначе всё хорошо, скрываем поле из виду. $this->parentclass = 'd-none'; return ''; } }

Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает. @webtolkru#joomla #php #webdev #разработка

0 Пользователей и 1 Гость просматривают эту тему.
  • 82 Ответов
  • 33442 Просмотров
*

ixard

  • Осваиваюсь на форуме
  • 14
  • 1 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #30 : 06.11.2011, 14:21:37 »
проблемы с кодировкой решил явным указанием кодировки AddDefaultCharset UTF-8 в файле .htaccess (не понял этой проблемы потому что везде у меня UTF-8 и откуда лезет cp1251?)
на тему не работает квитанция - у меня проблема оказалась в том что во всех браузерах запрещены всплывающие окна - а здесь именно так и реализовано.

здесь интересно  http://joomlaforum.ru/index.php?topic=176231.0

Цитировать
Как оказалось, действительно \com_jshopping\lib\generete_pdf_order.php формирует пдф счёт и рисует его путём вывода нужной информации по заданным координатам, перестроили его и получился более приемлемый вариант, даже вставил печать с подписью.
« Последнее редактирование: 23.11.2011, 16:09:48 от ixard »
*

Nekhay

  • Новичок
  • 3
  • 0 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #31 : 17.11.2011, 15:13:38 »
посмотрел робокассу, буду делать
Добрый день!
Получилось с робокассой?
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #32 : 17.11.2011, 23:28:33 »
Добрый день!
Получилось с робокассой?
так и не доделал, отпала необходимость

на форуме есть тема где выложена готовая
*

nevigen

  • Moderator
  • 10447
  • 863 / 25
  • http://n*****n.com
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

sergoguga

  • Давно я тут
  • 896
  • 70 / 8
  • www.mpbox.ru
Re: Оплата квитанцией Сбербанка
« Ответ #34 : 19.11.2011, 01:54:01 »
как без всплывающего окошка? все браузеры мочат его(((
>>> Верстка 100 евро - ждешь новый курс? Пиши!
>>> Создание моб. приложений по ГОСТу)))! Личка работает!
>>> Микроразметка по стандартам - цены адекват! Пиши, не боись!
>>> Личный кабинет на ZOO - уже сделан! Пиши в личку, не стесняйся!
*

Aquasonick

  • Захожу иногда
  • 314
  • 1 / 7
  • Пока семь раз отмеришь - другие уж сожрут.
Re: Оплата квитанцией Сбербанка
« Ответ #35 : 02.12.2011, 14:09:15 »
Сделал способ оплаты квитанцией Сбербанка.

В конце оформления заказа пользователь получает квитанцию.
Я не очень понял как её устанавливать?? )
*

Aquasonick

  • Захожу иногда
  • 314
  • 1 / 7
  • Пока семь раз отмеришь - другие уж сожрут.
Re: Оплата квитанцией Сбербанка
« Ответ #36 : 02.12.2011, 14:11:33 »
Или на 1.7 не будет работать??
*

ixard

  • Осваиваюсь на форуме
  • 14
  • 1 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #37 : 05.12.2011, 21:23:45 »
Или на 1.7 не будет работать??
на 1.7 работает - читай внимательно ветку
*

Sandmansss

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #38 : 08.12.2011, 14:05:52 »
А доработки не будет с тем чтобы квитанция по почте приходила пользователю?
*

igorksan

  • Давно я тут
  • 503
  • 23 / 1
Re: Оплата квитанцией Сбербанка
« Ответ #39 : 16.12.2011, 00:06:03 »
на 1.7 работает - читай внимательно ветку
Читаю внимательно, нахожу только это
Установка обычная: архив через инсталятор магазина  JoomShopping. Вот только в Joomla 1.7 - не работает!
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #40 : 18.12.2011, 02:33:30 »
Мне кажется проще pdf счет под квитанцию переделать. Если кто сможет, поделитесь пожалуйста)
*

sergoguga

  • Давно я тут
  • 896
  • 70 / 8
  • www.mpbox.ru
Re: Оплата квитанцией Сбербанка
« Ответ #41 : 18.12.2011, 15:21:56 »
Мне кажется проще pdf счет под квитанцию переделать. Если кто сможет, поделитесь пожалуйста)
да там все просто)))
только этот счет приходит при любом способе оплаты (при вкл "отправлять счет клиенту"), или можно код покопошить)))
>>> Верстка 100 евро - ждешь новый курс? Пиши!
>>> Создание моб. приложений по ГОСТу)))! Личка работает!
>>> Микроразметка по стандартам - цены адекват! Пиши, не боись!
>>> Личный кабинет на ZOO - уже сделан! Пиши в личку, не стесняйся!
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #42 : 18.12.2011, 15:23:53 »
да там все просто)))
только этот счет приходит при любом способе оплаты (при вкл "отправлять счет клиенту"), или можно код покопошить)))
может поделитесь?
очень надо
*

sergoguga

  • Давно я тут
  • 896
  • 70 / 8
  • www.mpbox.ru
Re: Оплата квитанцией Сбербанка
« Ответ #43 : 18.12.2011, 18:19:27 »

делал для двух банков, у каждого свои формы почему-то)))
абсолют банк и еще какой-то
да там ниче сложного))))
вот только время тратится на каждую форму не час-два....)))
>>> Верстка 100 евро - ждешь новый курс? Пиши!
>>> Создание моб. приложений по ГОСТу)))! Личка работает!
>>> Микроразметка по стандартам - цены адекват! Пиши, не боись!
>>> Личный кабинет на ZOO - уже сделан! Пиши в личку, не стесняйся!
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #44 : 18.12.2011, 18:27:30 »
делал для двух банков, у каждого свои формы почему-то)))
абсолют банк и еще какой-то
да там ниче сложного))))
вот только время тратится на каждую форму не час-два....)))
Если не сложно скинь пожалуйста на почту формы, которые получились
newsbox САБАКА pochta.ru

Спасибо!
*

GecO

  • Захожу иногда
  • 65
  • 1 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #45 : 21.12.2011, 02:29:40 »
установил на Joomla 1.7. после оформления заказа, квитанция быстро исчезает, появляется надпись "спасибо, за заказ". в итоге письмо не приходит  на почту и в админке  заказ не поялвяется. Что делать?
*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
Re: Оплата квитанцией Сбербанка
« Ответ #46 : 23.12.2011, 23:43:26 »
установил на Joomla 1.7. после оформления заказа, квитанция быстро исчезает, появляется надпись "спасибо, за заказ". в итоге письмо не приходит  на почту и в админке  заказ не поялвяется. Что делать?

У меня та же ситуация. Прошло вот уже два месяца но никто не помог...
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #47 : 23.12.2011, 23:50:47 »
У меня та же ситуация. Прошло вот уже два месяца но никто не помог...
может есть мысли по переделке pdf файла в квитанцию
с ним все намного проще, он на почту приходит и данные о клиенте и сумме заказа выводит
надо просто настроить отображение как у квитанции сбербанка

чуть выше один товарищЪ хвастал тем что делал квитанции для двух банков, но делится ими его жаба душит
*

igorksan

  • Давно я тут
  • 503
  • 23 / 1
Re: Оплата квитанцией Сбербанка
« Ответ #48 : 24.12.2011, 06:32:39 »
установил на Joomla 1.7. после оформления заказа, квитанция быстро исчезает, появляется надпись "спасибо, за заказ". в итоге письмо не приходит  на почту и в админке  заказ не поялвяется. Что делать?
У меня та же ситуация. Прошло вот уже два месяца но никто не помог...

У вас у обоих в голове ситуация. Тут 2 листа то перечитать в этой теме, где раз 6 сказано - НА 1.7 НЕ РАБОТАЕТ.
*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
Re: Оплата квитанцией Сбербанка
« Ответ #49 : 24.12.2011, 13:55:32 »
У вас у обоих в голове ситуация. Тут 2 листа то перечитать в этой теме, где раз 6 сказано - НА 1.7 НЕ РАБОТАЕТ.

igorksan, ЧЁ ТАКОЙ ЗЛОЙ... Это я сам писал в теме, что НЕ РАБОТАЕТ. Но надо как то решать проблему, а не успокаиваться - не работает и ладно. Но как оказалось помочь решить проблему желающих нет.

Да, кстати скоро переход на Joomla 1.8, а мы еще с Joomla 1.7 не разобрались.
« Последнее редактирование: 24.12.2011, 14:05:41 от kit2m2 »
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sergoguga

  • Давно я тут
  • 896
  • 70 / 8
  • www.mpbox.ru
Re: Оплата квитанцией Сбербанка
« Ответ #50 : 24.12.2011, 20:33:09 »
...Но надо как то решать проблему, а не успокаиваться ...[/u]
а кто-то не позарился на все новое (1.6...1.7...1.8...))) зачем?))), а без проблем продает на 1.5, хех!
и тратит время не на борьбу с выплывающими косяками, а на облизывание КЛИЕНТА)))
>>> Верстка 100 евро - ждешь новый курс? Пиши!
>>> Создание моб. приложений по ГОСТу)))! Личка работает!
>>> Микроразметка по стандартам - цены адекват! Пиши, не боись!
>>> Личный кабинет на ZOO - уже сделан! Пиши в личку, не стесняйся!
*

igorksan

  • Давно я тут
  • 503
  • 23 / 1
Re: Оплата квитанцией Сбербанка
« Ответ #51 : 24.12.2011, 22:14:23 »
igorksan, ЧЁ ТАКОЙ ЗЛОЙ... Это я сам писал в теме, что НЕ РАБОТАЕТ. Но надо как то решать проблему, а не успокаиваться - не работает и ладно. Но как оказалось помочь решить проблему желающих нет.

Да, кстати скоро переход на Joomla 1.8, а мы еще с Joomla 1.7 не разобрались.
;D
ню находит иногда. Я пока подожду, время есть, не родится, будем помогать, если нужда заставит..
*

kit2m2

  • Живу я здесь
  • 3345
  • 273 / 0
  • Беру сайты на полное сопровождение
Re: Оплата квитанцией Сбербанка
« Ответ #52 : 25.12.2011, 14:53:47 »
а кто-то не позарился на все новое (1.6...1.7...1.8...))) зачем?))), а без проблем продает на 1.5, хех!
и тратит время не на борьбу с выплывающими косяками, а на облизывание КЛИЕНТА)))

Ну да, а некоторые еще работают на WINDOWS 98, ведь гланое бабок срубить. "Эволюцией компонента" пусть займутся другие...
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #53 : 25.12.2011, 14:58:38 »
Ну да, а некоторые еще работают на WINDOWS 98, ведь гланое бабок срубить. "Эволюцией компонента" пусть займутся другие...

к тому же Joomla 1.5 официально не поддерживается сообществом Joomla.org с июля 2011
да и по нагрузке на сервак 1.7 намного легче
*

sergoguga

  • Давно я тут
  • 896
  • 70 / 8
  • www.mpbox.ru
Re: Оплата квитанцией Сбербанка
« Ответ #54 : 25.12.2011, 22:46:20 »
Ну да, а некоторые еще работают на WINDOWS 98, ведь гланое бабок срубить. "Эволюцией компонента" пусть займутся другие...

а зачем еще компонент магазина? хм.... вы свой пост переведите и на немецком форуме джумшопа опубликуйте))))) интересно будет на ответы посмотреть ...
а для всего остального есть мастеркард)))
>>> Верстка 100 евро - ждешь новый курс? Пиши!
>>> Создание моб. приложений по ГОСТу)))! Личка работает!
>>> Микроразметка по стандартам - цены адекват! Пиши, не боись!
>>> Личный кабинет на ZOO - уже сделан! Пиши в личку, не стесняйся!
*

ynota

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #55 : 05.01.2012, 15:18:41 »
Вот подредактированный файл generete_pdf_order.php. Выводит в отправленном клиенту письме квитанцию сбербанка в ПДФ. Следует отметить, что она отправляется при любом способе оплаты.
Открываем файл с данным названием, тот что находится у Вас , заменяем код на тот что здесь, вставляем свои данные, сохраняем, радуемся жизни. Работает в версии 2.9.7, Joomla 1.5.21.
Код
<?php
/**
* @version      2.9.0 12.03.2011
* @author       MAXXmarketing GmbH
* @package      Jshopping
* @copyright    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
* @license      GNU/GPL
*/

define('K_TCPDF_EXTERNAL_CONFIG', true);
// Installation path
define("K_PATH_MAIN", JPATH_LIBRARIES.DS."tcpdf");
// URL path
define("K_PATH_URL", JPATH_SITE);
// Fonts path
define("K_PATH_FONTS", JPATH_SITE.DS.'language'.DS."pdf_fonts".DS);
// Cache directory path
define("K_PATH_CACHE", K_PATH_MAIN.DS."cache");
// Cache URL path
define("K_PATH_URL_CACHE", K_PATH_URL.DS."cache");
// Images path
define("K_PATH_IMAGES", K_PATH_MAIN.DS."images");
// Blank image path
define("K_BLANK_IMAGE", K_PATH_IMAGES.DS."_blank.png");

/*
* Format options
*/
// Cell height ratio
define("K_CELL_HEIGHT_RATIO", 1.5);
// Magnification scale for titles
define("K_TITLE_MAGNIFICATION", 1);
// Reduction scale for small font
define("K_SMALL_RATIO", 2/3);
// Magnication scale for head
define("HEAD_MAGNIFICATION", 1);

include(JPATH_SITE."/libraries/tcpdf/tcpdf.php");
error_reporting(1);

class MYPDF extends TCPDF{
function addNewPage(){
$this->addPage();
$this->addTitleHead();
}
function addTitleHead(){
$jshopConfig = &JSFactory::getConfig();
        $vendorinfo = $this->_vendorinfo;
$this->Image($jshopConfig->path . '/images/header.jpg',1,1,$jshopConfig->pdf_header_width,$jshopConfig->pdf_header_height);
$this->Image($jshopConfig->path . '/images/footer.jpg',1,265,$jshopConfig->pdf_footer_width,$jshopConfig->pdf_footer_height);
        $this->SetFont('freesans','',8);
        $this->SetXY(155,12);
        $this->SetTextColor(155,155,155);
        $_vendor_info = array();
        $_vendor_info[] = $vendorinfo->adress;
        $_vendor_info[] = $vendorinfo->zip . " " . $vendorinfo->city;
        if ($vendorinfo->phone) $_vendor_info[] = _JSHOP_CONTACT_PHONE . ": " . $vendorinfo->phone;
        if ($vendorinfo->fax) $_vendor_info[] = _JSHOP_CONTACT_FAX . ": " . $vendorinfo->fax;
        if ($vendorinfo->email) $_vendor_info[] = _JSHOP_EMAIL . ": " . $vendorinfo->email;
        $str_vendor_info = implode("\n",$_vendor_info);
        $this->MultiCell(40, 3, $str_vendor_info, 0, 'R');
        $this->SetTextColor(0,0,0);
}
}

function generatePDF($order){

    $jshopConfig = &JSFactory::getConfig();
    $vendorinfo = $order->getVendorInfo();

$pdf = new MYPDF();
    $pdf->_vendorinfo = $vendorinfo;
    $pdf->SetFont('freesans','',8);
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false);
    $pdf->SetMargins(0, 0, 0);
$pdf->addNewPage();

$pdf->SetXY(20,55);
$pdf->setfontsize(6);
$pdf->SetTextColor(0,0,0);
$pdf->MultiCell(80,3, $vendorinfo->company_name . ", " . $vendorinfo->adress . ", " . $vendorinfo->zip . " " . $vendorinfo->city,0,'L');

$pdf->SetXY(110,55);
$pdf->SetFont('freesansb','',11);
$pdf->SetTextColor(0,0,0);
$pdf->MultiCell(80,3,_JSHOP_EMAIL_BILL,0,'R');

$pdf->SetFont('freesans','',11);
$pdf->SetXY(20,60);
$pdf->MultiCell(80,4.5,$order->firma_name . "\n" . $order->f_name . " " . $order->l_name . "\n" . $order->street . "\n" . $order->zip . " " . $order->city . "\n" . $order->country, 0,'L');

$pdf->SetFont('freesansi','',11);
$pdf->SetXY(110,65);
$pdf->MultiCell(80,4.5,_JSHOP_ORDER_SHORT_NR . " " . $order->order_number . "\n" . _JSHOP_ORDER_FROM . " " . $order->order_date,0,'R');


$pdf->SetDrawColor(0,0,0);
$pdf->SetFont('freesans','',7);

    if ( $jshopConfig->identification_number){
        $pdf->SetXY(115,102);
        $pdf->MultiCell(35, 4, _JSHOP_IDENTIFICATION_NUMBER, 1, 'L');
        $pdf->SetXY(150,102);
        $pdf->MultiCell(40, 4, $jshopConfig->identification_number, 1, 'R');
    }
    if ($jshopConfig->tax_number){
        $pdf->SetXY(115,106);
        $pdf->MultiCell(35, 4, _JSHOP_TAX_NUMBER, 1, 'L');
        $pdf->SetXY(150,106);
        $pdf->MultiCell(40, 4, $jshopConfig->tax_number, 1, 'R');
    }

        $pdf->SetFont('freesansi','', 8);
        $pdf->Text(170,108, 'Форма № ПД-4');
        $pdf->SetXY(20,104);
        $pdf->SetFont('freesansi','', 9);
        $pdf->MultiCell(50, 72,'ИЗВЕЩЕНИЕ', 1, 'C');
        $pdf->SetXY(70,104);
        $pdf->SetFont('freesansb','', 9);
        $pdf->MultiCell(120, 72, '', 1, '');

        $pdf->Text(100,110, 'Ваша фирма');

        $pdf->SetFont('freesans','', 7);
        $pdf->Text(105, 113, '(наименование получателя платежа)');
        $pdf->Line(78, 111, 180, 111, $style3);

         $pdf->SetFont('freesansb','', 9);
        $pdf->Text(80, 118, 'Ваш ИНН');
        $pdf->Line(78, 119, 115, 119, $style);

        $pdf->Text(130, 118, 'Ваш номер счёта');
        $pdf->Line(120, 119, 180, 119, $style3);

        $pdf->SetFont('freesans','', 7);
        $pdf->Text(80, 121, '(ИНН получателя платежа)');
        $pdf->Text(130, 121, '(номер счёта получателя платежа)');

        $pdf->SetFont('freesansb','', 9);
        $pdf->Text(80, 125, 'Ваш банк');
        $pdf->Line(78, 126, 145, 126, $style);
        $pdf->Text(146, 126, 'БИК');
        $pdf->Text(155, 125, 'БИК банка');

        $pdf->Line(154, 126, 180, 126, $style);



        $pdf->SetFont('freesans','', 7);
        $pdf->Text(80, 128, '(наименование банка получателя платежа)');

        $pdf->SetFont('freesans','', 8);
        $pdf->Text(78, 132, 'Номер кор./сч. банка получателя платежа:');

        $pdf->SetFont('freesansb','', 9);
        $pdf->Text(140, 131, 'Номер кор счёта');
        $pdf->Line(138, 132, 180, 132, $style);
        $pdf->Text(80, 136, 'Заказ №');


$pdf->SetXY(93,133);
$pdf->MultiCell(80,4.5, $order->order_number . "\n");

$pdf->Line(78, 137, 120, 137, $style);
        $pdf->Line(124, 137, 180, 137, $style);
        $pdf->SetFont('freesans','', 6);
        $pdf->Text(80, 139, '(наименование платежа)');
        $pdf->Text(125, 139, '(номер лицевого счета (код) плательщика)');

        $pdf->SetFont('freesans','', 9);
        $pdf->Text(78, 144, 'Ф.И.О. плательщика');
        $pdf->Line(110, 144, 180, 144, $style);
        $pdf->Text(78, 149, 'Адрес плательщика');
        $pdf->Line(110, 149, 180, 149, $style);
        $pdf->Text(78, 154, 'Сумма платежа');
        $pdf->Line(103, 154, 130, 154, $style);



        $pdf->Text(131, 154, 'коп.');

        $pdf->SetXY(102,150);
$pdf->MultiCell(20,5,formatprice($order->order_total),'0','L');


        $pdf->Text(78, 159, 'Сумма платы за услуги');
        $pdf->Line(114, 159, 125, 159, $style);

        $pdf->Text(127, 159, 'руб.');

        $pdf->Text(140, 159, 'коп.');
        $pdf->Line(134, 159, 139, 159, $style);

        $pdf->Text(78, 164, 'Итого');
        $pdf->Line(88, 164, 125, 164, $style);

        $pdf->Text(127, 164, 'руб.');
        $pdf->Line(134, 164, 139, 164, $style);

        $pdf->Text(140, 164, 'коп.');

        $pdf->Text(78, 170, 'Плательщик');
        $pdf->Line(98, 170, 125, 170, $style);
        $pdf->Text(126, 170, '(Подпись)');
         $pdf->Text(160, 170, 'Дата:');

         $pdf->Text(38, 170, 'КАССИР');



        $pdf->SetXY(20,176);
        $pdf->SetFont('freesansi','', 9);
        $pdf->MultiCell(50, 72,'', 1, 'C');
        $pdf->SetXY(70,176);
        $pdf->SetFont('freesansb','', 9);
        $pdf->MultiCell(120, 72, '', 1, '');

        $pdf->Text(100,182, 'Ваша фирма');

        $pdf->SetFont('freesans','', 7);
        $pdf->Text(105, 185, '(наименование получателя платежа)');
        $pdf->Line(78, 183, 180, 183, $style3);

         $pdf->SetFont('freesansb','', 9);
        $pdf->Text(80, 190, 'Ваш ИНН');
        $pdf->Line(78, 191, 115, 191, $style);

        $pdf->Text(130, 190, 'Ваш номер счёта');
        $pdf->Line(120, 191, 180, 191, $style3);

        $pdf->SetFont('freesans','', 7);
        $pdf->Text(80, 193, '(ИНН получателя платежа)');
        $pdf->Text(130, 193, '(номер счёта получателя платежа)');

        $pdf->SetFont('freesansb','', 9);
        $pdf->Text(80, 197, 'Ваш банк');
        $pdf->Line(78, 198, 145, 198, $style);
        $pdf->Text(146, 198, 'БИК');
        $pdf->Text(155, 197, 'Бик банка');

        $pdf->Line(154, 198, 180, 198, $style);



        $pdf->SetFont('freesans','', 7);
        $pdf->Text(80, 200, '(наименование банка получателя платежа)');

        $pdf->SetFont('freesans','', 8);
        $pdf->Text(78, 204, 'Номер кор./сч. банка получателя платежа:');

        $pdf->SetFont('freesansb','', 9);
        $pdf->Text(140, 203, 'Номер Кор счёта');
        $pdf->Line(138, 204, 180, 204, $style);
        $pdf->Text(80, 208, 'Заказ №');


$pdf->SetXY(93,205);
$pdf->MultiCell(80,4.5, $order->order_number . "\n");

$pdf->Line(78, 209, 120, 209, $style);
        $pdf->Line(124, 209, 180, 209, $style);
        $pdf->SetFont('freesans','', 6);
        $pdf->Text(80, 211, '(наименование платежа)');
        $pdf->Text(125, 211, '(номер лицевого счета (код) плательщика)');

        $pdf->SetFont('freesans','', 9);
        $pdf->Text(78, 216, 'Ф.И.О. плательщика');
        $pdf->Line(110, 216, 180, 216, $style);
        $pdf->Text(78, 221, 'Адрес плательщика');
        $pdf->Line(110, 221, 180, 221, $style);
        $pdf->Text(78, 226, 'Сумма платежа');
        $pdf->Line(103, 226, 130, 226, $style);



        $pdf->Text(131, 226, 'коп.');

        $pdf->SetXY(102,222);
$pdf->MultiCell(20,5,formatprice($order->order_total),'0','L');

        $pdf->Text(78, 231, 'Сумма платы за услуги');
        $pdf->Line(114, 231, 125, 231, $style);

        $pdf->Text(127, 231, 'руб.');
        $pdf->Line(134, 231, 139, 231, $style);
        $pdf->Text(140, 231, 'коп.');


        $pdf->Text(78, 236, 'Итого');
        $pdf->Line(88, 236, 125, 236, $style);

        $pdf->Text(127, 236, 'руб.');
        $pdf->Line(134, 236, 139, 236, $style);

        $pdf->Text(140, 236, 'коп.');

        $pdf->Text(78, 242, 'Плательщик');
        $pdf->Line(98, 242, 125, 242, $style);
        $pdf->Text(126, 242, '(Подпись)');
         $pdf->Text(160, 242, 'Дата:');


         $pdf->Text(35, 230, 'КВИТАНЦИЯ');
         $pdf->Text(38, 242, 'КАССИР');

        $name_pdf = $order->order_id."_".md5(uniqid(rand(0,100))). ".pdf";
$pdf->Output($jshopConfig->pdf_orders_path."/".$name_pdf ,'F');
return $name_pdf;
}
?>
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #56 : 05.01.2012, 16:23:26 »
Цитировать
Вот подредактированный файл generete_pdf_order.php. Выводит в отправленном клиенту письме квитанцию сбербанка в ПДФ. Следует отметить, что она отправляется при любом способе оплаты.
Открываем файл с данным названием, тот что находится у Вас , заменяем код на тот что здесь, вставляем свои данные, сохраняем, радуемся жизни. Работает в версии 2.9.7, Joomla 1.5.21.
Круто! Плюсанул)
На Joomla 1.7 + джумшоппинг 3.2.7 не работало, вот с этим кодом получилось
Код
<?php
/**
* @version      3.2.2 12.03.2011
* @author       MAXXmarketing GmbH
* @package      Jshopping
* @copyright    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
* @license      GNU/GPL
*/

define('K_TCPDF_EXTERNAL_CONFIG', true);
// Installation path
define("K_PATH_MAIN", JPATH_SITE.DS."components".DS."com_jshopping".DS."lib".DS."tcpdf");
// URL path
define("K_PATH_URL", JPATH_SITE);
// Fonts path
define("K_PATH_FONTS", JPATH_SITE.DS."components".DS."com_jshopping".DS."lib".DS."tcpdf".DS."fonts".DS);
// Cache directory path
define("K_PATH_CACHE", K_PATH_MAIN.DS."cache");
// Cache URL path
define("K_PATH_URL_CACHE", K_PATH_URL.DS."cache");
// Images path
define("K_PATH_IMAGES", K_PATH_MAIN.DS."images");
// Blank image path
define("K_BLANK_IMAGE", K_PATH_IMAGES.DS."_blank.png");

/*
* Format options
*/
// Cell height ratio
define("K_CELL_HEIGHT_RATIO", 1.5);
// Magnification scale for titles
define("K_TITLE_MAGNIFICATION", 1);
// Reduction scale for small font
define("K_SMALL_RATIO", 2/3);
// Magnication scale for head
define("HEAD_MAGNIFICATION", 1);

include(JPATH_SITE."/components/com_jshopping/lib/tcpdf/tcpdf.php");
error_reporting(1);

class MYPDF extends TCPDF{
function addNewPage(){
$this->addPage();
$this->addTitleHead();
}
function addTitleHead(){
$jshopConfig = &JSFactory::getConfig();
        $vendorinfo = $this->_vendorinfo;
$this->Image($jshopConfig->path . '/images/header.jpg',1,1,$jshopConfig->pdf_header_width,$jshopConfig->pdf_header_height);
$this->Image($jshopConfig->path . '/images/footer.jpg',1,265,$jshopConfig->pdf_footer_width,$jshopConfig->pdf_footer_height);
        $this->SetFont('freesans','',8);
        $this->SetXY(155,12);
        $this->SetTextColor(155,155,155);
        $_vendor_info = array();
        $_vendor_info[] = $vendorinfo->adress;
        $_vendor_info[] = $vendorinfo->zip . " " . $vendorinfo->city;
        if ($vendorinfo->phone) $_vendor_info[] = _JSHOP_CONTACT_PHONE . ": " . $vendorinfo->phone;
        if ($vendorinfo->fax) $_vendor_info[] = _JSHOP_CONTACT_FAX . ": " . $vendorinfo->fax;
        if ($vendorinfo->email) $_vendor_info[] = _JSHOP_EMAIL . ": " . $vendorinfo->email;
        $str_vendor_info = implode("\n",$_vendor_info);
        $this->MultiCell(40, 3, $str_vendor_info, 0, 'R');
        $this->SetTextColor(0,0,0);
}
}

function generatePDF($order){

    $jshopConfig = &JSFactory::getConfig();
    $vendorinfo = $order->getVendorInfo();

$pdf = new MYPDF();
    $pdf->_vendorinfo = $vendorinfo;
    $pdf->SetFont('freesans','',8);
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false);
    $pdf->SetMargins(0, 0, 0);
$pdf->addNewPage();

$pdf->SetXY(20,55);
$pdf->setfontsize(6);
$pdf->SetTextColor(0,0,0);
$pdf->MultiCell(80,3, $vendorinfo->company_name . ", " . $vendorinfo->adress . ", " . $vendorinfo->zip . " " . $vendorinfo->city,0,'L');

$pdf->SetXY(110,55);
$pdf->SetFont('freesansb','',11);
$pdf->SetTextColor(0,0,0);
$pdf->MultiCell(80,3,_JSHOP_EMAIL_BILL,0,'R');

$pdf->SetFont('freesans','',11);
$pdf->SetXY(20,60);
$pdf->MultiCell(80,4.5,$order->firma_name . "\n" . $order->f_name . " " . $order->l_name . "\n" . $order->street . "\n" . $order->zip . " " . $order->city . "\n" . $order->country, 0,'L');

$pdf->SetFont('freesansi','',11);
$pdf->SetXY(110,65);
$pdf->MultiCell(80,4.5,_JSHOP_ORDER_SHORT_NR . " " . $order->order_number . "\n" . _JSHOP_ORDER_FROM . " " . $order->order_date,0,'R');


$pdf->SetDrawColor(0,0,0);
$pdf->SetFont('freesans','',7);

    if ( $jshopConfig->identification_number){
        $pdf->SetXY(115,102);
        $pdf->MultiCell(35, 4, _JSHOP_IDENTIFICATION_NUMBER, 1, 'L');
        $pdf->SetXY(150,102);
        $pdf->MultiCell(40, 4, $jshopConfig->identification_number, 1, 'R');
    }
    if ($jshopConfig->tax_number){
        $pdf->SetXY(115,106);
        $pdf->MultiCell(35, 4, _JSHOP_TAX_NUMBER, 1, 'L');
        $pdf->SetXY(150,106);
        $pdf->MultiCell(40, 4, $jshopConfig->tax_number, 1, 'R');
    }

        $pdf->SetFont('freesansi','', 8);
        $pdf->Text(170,108, 'Форма № ПД-4');
        $pdf->SetXY(20,104);
        $pdf->SetFont('freesansi','', 9);
        $pdf->MultiCell(50, 72,'ИЗВЕЩЕНИЕ', 1, 'C');
        $pdf->SetXY(70,104);
        $pdf->SetFont('freesansb','', 9);
        $pdf->MultiCell(120, 72, '', 1, '');

        $pdf->Text(100,110, 'Ваша фирма');

        $pdf->SetFont('freesans','', 7);
        $pdf->Text(105, 113, '(наименование получателя платежа)');
        $pdf->Line(78, 111, 180, 111, $style3);

         $pdf->SetFont('freesansb','', 9);
        $pdf->Text(80, 118, 'Ваш ИНН');
        $pdf->Line(78, 119, 115, 119, $style);

        $pdf->Text(130, 118, 'Ваш номер счёта');
        $pdf->Line(120, 119, 180, 119, $style3);

        $pdf->SetFont('freesans','', 7);
        $pdf->Text(80, 121, '(ИНН получателя платежа)');
        $pdf->Text(130, 121, '(номер счёта получателя платежа)');

        $pdf->SetFont('freesansb','', 9);
        $pdf->Text(80, 125, 'Ваш банк');
        $pdf->Line(78, 126, 145, 126, $style);
        $pdf->Text(146, 126, 'БИК');
        $pdf->Text(155, 125, 'БИК банка');

        $pdf->Line(154, 126, 180, 126, $style);



        $pdf->SetFont('freesans','', 7);
        $pdf->Text(80, 128, '(наименование банка получателя платежа)');

        $pdf->SetFont('freesans','', 8);
        $pdf->Text(78, 132, 'Номер кор./сч. банка получателя платежа:');

        $pdf->SetFont('freesansb','', 9);
        $pdf->Text(140, 131, 'Номер кор счёта');
        $pdf->Line(138, 132, 180, 132, $style);
        $pdf->Text(80, 136, 'Заказ №');


$pdf->SetXY(93,133);
$pdf->MultiCell(80,4.5, $order->order_number . "\n");

$pdf->Line(78, 137, 120, 137, $style);
        $pdf->Line(124, 137, 180, 137, $style);
        $pdf->SetFont('freesans','', 6);
        $pdf->Text(80, 139, '(наименование платежа)');
        $pdf->Text(125, 139, '(номер лицевого счета (код) плательщика)');

        $pdf->SetFont('freesans','', 9);
        $pdf->Text(78, 144, 'Ф.И.О. плательщика');
        $pdf->Line(110, 144, 180, 144, $style);
        $pdf->Text(78, 149, 'Адрес плательщика');
        $pdf->Line(110, 149, 180, 149, $style);
        $pdf->Text(78, 154, 'Сумма платежа');
        $pdf->Line(103, 154, 130, 154, $style);



        $pdf->Text(131, 154, 'коп.');

        $pdf->SetXY(102,150);
$pdf->MultiCell(20,5,formatprice($order->order_total),'0','L');


        $pdf->Text(78, 159, 'Сумма платы за услуги');
        $pdf->Line(114, 159, 125, 159, $style);

        $pdf->Text(127, 159, 'руб.');

        $pdf->Text(140, 159, 'коп.');
        $pdf->Line(134, 159, 139, 159, $style);

        $pdf->Text(78, 164, 'Итого');
        $pdf->Line(88, 164, 125, 164, $style);

        $pdf->Text(127, 164, 'руб.');
        $pdf->Line(134, 164, 139, 164, $style);

        $pdf->Text(140, 164, 'коп.');

        $pdf->Text(78, 170, 'Плательщик');
        $pdf->Line(98, 170, 125, 170, $style);
        $pdf->Text(126, 170, '(Подпись)');
         $pdf->Text(160, 170, 'Дата:');

         $pdf->Text(38, 170, 'КАССИР');



        $pdf->SetXY(20,176);
        $pdf->SetFont('freesansi','', 9);
        $pdf->MultiCell(50, 72,'', 1, 'C');
        $pdf->SetXY(70,176);
        $pdf->SetFont('freesansb','', 9);
        $pdf->MultiCell(120, 72, '', 1, '');

        $pdf->Text(100,182, 'Ваша фирма');

        $pdf->SetFont('freesans','', 7);
        $pdf->Text(105, 185, '(наименование получателя платежа)');
        $pdf->Line(78, 183, 180, 183, $style3);

         $pdf->SetFont('freesansb','', 9);
        $pdf->Text(80, 190, 'Ваш ИНН');
        $pdf->Line(78, 191, 115, 191, $style);

        $pdf->Text(130, 190, 'Ваш номер счёта');
        $pdf->Line(120, 191, 180, 191, $style3);

        $pdf->SetFont('freesans','', 7);
        $pdf->Text(80, 193, '(ИНН получателя платежа)');
        $pdf->Text(130, 193, '(номер счёта получателя платежа)');

        $pdf->SetFont('freesansb','', 9);
        $pdf->Text(80, 197, 'Ваш банк');
        $pdf->Line(78, 198, 145, 198, $style);
        $pdf->Text(146, 198, 'БИК');
        $pdf->Text(155, 197, 'Бик банка');

        $pdf->Line(154, 198, 180, 198, $style);



        $pdf->SetFont('freesans','', 7);
        $pdf->Text(80, 200, '(наименование банка получателя платежа)');

        $pdf->SetFont('freesans','', 8);
        $pdf->Text(78, 204, 'Номер кор./сч. банка получателя платежа:');

        $pdf->SetFont('freesansb','', 9);
        $pdf->Text(140, 203, 'Номер Кор счёта');
        $pdf->Line(138, 204, 180, 204, $style);
        $pdf->Text(80, 208, 'Заказ №');


$pdf->SetXY(93,205);
$pdf->MultiCell(80,4.5, $order->order_number . "\n");

$pdf->Line(78, 209, 120, 209, $style);
        $pdf->Line(124, 209, 180, 209, $style);
        $pdf->SetFont('freesans','', 6);
        $pdf->Text(80, 211, '(наименование платежа)');
        $pdf->Text(125, 211, '(номер лицевого счета (код) плательщика)');

        $pdf->SetFont('freesans','', 9);
        $pdf->Text(78, 216, 'Ф.И.О. плательщика');
        $pdf->Line(110, 216, 180, 216, $style);
        $pdf->Text(78, 221, 'Адрес плательщика');
        $pdf->Line(110, 221, 180, 221, $style);
        $pdf->Text(78, 226, 'Сумма платежа');
        $pdf->Line(103, 226, 130, 226, $style);



        $pdf->Text(131, 226, 'коп.');

        $pdf->SetXY(102,222);
$pdf->MultiCell(20,5,formatprice($order->order_total),'0','L');

        $pdf->Text(78, 231, 'Сумма платы за услуги');
        $pdf->Line(114, 231, 125, 231, $style);

        $pdf->Text(127, 231, 'руб.');
        $pdf->Line(134, 231, 139, 231, $style);
        $pdf->Text(140, 231, 'коп.');


        $pdf->Text(78, 236, 'Итого');
        $pdf->Line(88, 236, 125, 236, $style);

        $pdf->Text(127, 236, 'руб.');
        $pdf->Line(134, 236, 139, 236, $style);

        $pdf->Text(140, 236, 'коп.');

        $pdf->Text(78, 242, 'Плательщик');
        $pdf->Line(98, 242, 125, 242, $style);
        $pdf->Text(126, 242, '(Подпись)');
         $pdf->Text(160, 242, 'Дата:');


         $pdf->Text(35, 230, 'КВИТАНЦИЯ');
         $pdf->Text(38, 242, 'КАССИР');

        $name_pdf = $order->order_id."_".md5(uniqid(rand(0,100))). ".pdf";
$pdf->Output($jshopConfig->pdf_orders_path."/".$name_pdf ,'F');
return $name_pdf;
}
?>
*

ynota

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #57 : 05.01.2012, 19:04:36 »
В продолжении темы, здесь примеры генерации ПДФ с помощью PHP, используя TCPDF, которая применяется в данном случае. http://www.tcpdf.org/examples.php
При желании можно клиенту отправить файл любого содержания и вида.
*

sergoguga

  • Давно я тут
  • 896
  • 70 / 8
  • www.mpbox.ru
Re: Оплата квитанцией Сбербанка
« Ответ #58 : 07.01.2012, 01:13:33 »
ynota, кракозябрики в присылаемом счете присутствуют.... увы и ах...
PHP и кириллица все еще не подружились)))
Вы напишите, что надо файл с кодировкой UTF-8 без  BOM сохранять, а то ща налетят - КАК СДЕЛАТЬ? ГДЕ ВЗЯТЬ? ))))
хотя и без BOM не всегда помогает, полностью работающая версия файла - как у виктора, с отсылом в языковой файл, типа _JSHOP_BANK
« Последнее редактирование: 07.01.2012, 01:24:19 от sergoguga »
>>> Верстка 100 евро - ждешь новый курс? Пиши!
>>> Создание моб. приложений по ГОСТу)))! Личка работает!
>>> Микроразметка по стандартам - цены адекват! Пиши, не боись!
>>> Личный кабинет на ZOO - уже сделан! Пиши в личку, не стесняйся!
*

ynota

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
Re: Оплата квитанцией Сбербанка
« Ответ #59 : 07.01.2012, 10:42:43 »
Мне кажется, достаточно открыть этот файл блокнотом и пересохранить его в UTF8. Мне помогло.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Оплата Uniteller

Автор lenaERT92

Ответов: 1
Просмотров: 2230
Последний ответ 04.07.2022, 20:00:06
от nevigen
[Скачать] Оплата через WebPay.by

Автор ViktorMah

Ответов: 37
Просмотров: 7006
Последний ответ 30.12.2021, 14:38:35
от zhalevich
Онлайн оплата по QR-коду

Автор Simply

Ответов: 0
Просмотров: 2325
Последний ответ 12.12.2021, 11:30:52
от Simply
Оплата квитанцией Сбербанка (форма ПД 4) для Joomla 2.5-3.3

Автор Zet13

Ответов: 311
Просмотров: 62796
Последний ответ 24.07.2019, 00:04:30
от nevigen
Оплата через Сбербанк Online

Автор Mick_20

Ответов: 2
Просмотров: 2611
Последний ответ 14.02.2019, 09:46:30
от MichailPickStyle