Форум русской поддержки Joomla!® CMS
17.08.2017, 12:08:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Основной курс по Joomla
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Plugin Generate PDF Product

 (Прочитано 454 раз)
0 Пользователей и 1 Гость смотрят эту тему.
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« : 10.02.2017, 21:44:31 »

Плагин устанавливается из установщика Joomla.
После установки, плагин необходимо включить.
В шаблоне товара добавить в нужном месте любой элемент с id 'PDF':
<div id="pdf"></div>

New! 20.07.17 - Добавлен вывод цены.

Плагин можно скачать тут:
https://drive.google.com/open?id=0ByCort6ATLmsRmlES0tmRUxYbGM
« Последнее редактирование: 20.07.2017, 13:52:46 от maximis » Записан
dmitry_stas
Профи
********

Репутация: +935/-6
Online Online

Сообщений: 9958



« Ответ #1 : 10.02.2017, 22:10:27 »

ну копирайты вы научились менять, а это уже пол дела Azn некоторые и до этого не доходят Azn

Цитировать
Может я совсем все не так сделал.
серьезно если - то слишком много минусов чтобы тут писать все. для первого раза - великолепно. нет, не великолепно. ВЕЛИКОЛЕПНО! но если тут
Цитировать
Это мой первый аддон
первый - это не тоже самое что единственный, то работы вам еще предстоит 2 вагона и маленькая вагонеточка Azn читать неперечитать Azn
Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #2 : 11.02.2017, 00:20:57 »

ну копирайты вы научились менять, а это уже пол дела Azn некоторые и до этого не доходят Azn
серьезно если - то слишком много минусов чтобы тут писать все. для первого раза - великолепно. нет, не великолепно. ВЕЛИКОЛЕПНО! но если тутпервый - это не тоже самое что единственный, то работы вам еще предстоит 2 вагона и маленькая вагонеточка Azn читать неперечитать Azn

Спасибо Дмитрий, что потратили время. Аддон написал действительно первый раз, буду пробовать еще и еще, если будет позволять время. Прежде чем начать писать аддон, я скачал несколько аддонов и плагинов у разработчика, далее пришлось рыть много информации в инете, чтобы понять, что к чему. Каждая строка написанная мной, давалась очень тяжело. Начал я с изучения библиотеки TCPDF и стандартного вывода заказа в PDF., хотя щас я понимаю, что начал с конца. Правильно ли я сделал в данном случае, что написал по модели MVC? Ведь можно было сразу в шаблоне подключить файл. Правильно было получать информацию о товаре в моделе и передавать ее в представление? Можно было ведь передать из шаблона input-ом в контроллер. Я вот понимаю, что это какой то недокомпонент,. отсюда вопрос, правильно ли вызывать его таким образом как сделал я, через SEF ссылку? Еще один вопрос,.. я пробовал получать данные из шаблона в контроллере input-ом и  в конечном итоге описание товара выводилась в pdf без тегов, т.е. красиво. В данном случае пришлось применить функцию strip_tags, чтобы очистить описание товаров от тегов и дополнительно чистка булов функцией замены preg_replace. Можете подсказать, как этот момент сделать красиво? Спасибо еще раз, что откликнулись.
Записан
dmitry_stas
Профи
********

Репутация: +935/-6
Online Online

Сообщений: 9958



« Ответ #3 : 11.02.2017, 11:54:42 »

Правильно ли я сделал в данном случае, что написал по модели MVC?
понимаете какое дело... вообще следовать MVC нужно. если писать компонент Azn а то, что написано у вас - можно было обойтись только плагином. не нужно ни контроллера, ни модели, ни вью. нужен один плагин. при чем в идеале он нужен группы jshoppingproducts, а не jshopping как у вас. также рекомендовал бы вам загуглить com_lendr и разобрать его по полочкам. он доступен на гитхабе. в частности изучить MVC на его примере. на данный момент считаю это лучшим примером принципов MVC в Joomla.

немного не понял по поводу что и как именно вы пробовали
Цитировать
получать данные из шаблона в контроллере input-ом и  в конечном итоге описание товара выводилась в pdf без тегов
расшифруйте.
Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #4 : 11.02.2017, 12:10:52 »

Огромное спасибо за совет, обязательно посмотрю и разберу com_lendr. И попробую переписать аддон по вашей рекомендации, если выйдет выложу тут.

немного не понял по поводу что и как именно вы пробовали расшифруйте.

Я сам себя иногда не понимаю =)
Имел ввиду:
 В шаблоне продукта вешаем форму и в ней пишем инпут
 <input type="hidden" name="product_name" value="<?php print $product->name; ?>">
 .... и т.д.

 В контроллере получаем пост запрос с данными о товаре и передаем во вьюху
 $view->assign('product_name', JRequest::getVar('product_name'));

Ну я теперь хоть понял, что для данной задачи не нужно изобретать велосипед.
 
Записан
dmitry_stas
Профи
********

Репутация: +935/-6
Online Online

Сообщений: 9958



« Ответ #5 : 11.02.2017, 12:13:33 »

а, теперь понятно. ну просто так получалось потому, что JRequest::getVar (который кстати тоже уже устарел Azn ) обрезает теги по умолчанию. но так делать не нужно. не нужно передавать то, что вы потом получаете и базы. передавать нужно только product_id
Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #6 : 11.02.2017, 12:21:56 »

Я пробовал сначала передавать всю информацию о товаре из шаблона, модели с запросом на тот момент еще не было. Потом решил, что наверное правильней написать отдельный запрос. Очень хотелось понять MVC ). Забыл написать, что Joomla 2.5 стоит с Jshop-ом.
Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #7 : 14.02.2017, 16:20:51 »

Второй день в ступоре. Уважаемый dmitry_stas, можете помочь навести меня на правильную мысль.
Создал плагин в группе 'jshoppingproducts'.
Далее создал функцию с наименованием тригерра 'function onAfterDisplayProduct(&$product) {'.
Соответственно я могу получить все необходимые данные по продукту и в дальнейшем вывести в PDF.
Ступор заключается в том, что я не могу вызвать функцию генерации в PDF файл по нажатию кнопки.
Появилась идея поставить в функции условие 'if( array_key_exists('PDF', $_REQUEST)) {'.
Тогда в кнопке достаточно прописать ссылку document.location.href+'?PDF' и внутри условия прописать функцию генерации PDF.
Но тогда получается, что на выходе получим ту же карточку товара сначала в HTML виде, затем нужно очистить объект и вызвать функцию генерации PDF.
Совсем запутался, если не сложно, намекните.
С контроллером было понятно, что к чему, а вот без него я опух.
Записан
dmitry_stas
Профи
********

Репутация: +935/-6
Online Online

Сообщений: 9958



« Ответ #8 : 14.02.2017, 17:15:57 »

не очень понимаю, почему мы
Цитировать
на выходе получим ту же карточку товара сначала в HTML виде
? кто мешает ловить не onAfterDisplayProduct, а onBeforeDisplayProduct? там HTML еще никакого нет. а как раз $product уже ваш готовый объект есть. что вам и нужно. а если вообще и $product хотите полностью контролировать, то вообще ловите onConstructJshoppingControllerProduct, там еще вообще ничего нет, все сами будете делать
Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #9 : 14.02.2017, 18:05:10 »

Начал получаться каменный цветок. Медленно, но для меня это пока не важно.
Записан
nevigen
Moderator
*****

Репутация: +771/-17
Offline Offline

Пол: Мужской
Сообщений: 9339


http://n*****n.com


« Ответ #10 : 14.02.2017, 19:04:57 »

что Данила мастер, не выходить каменный цветок ?
оооооййй.... не выыыыххооооодит.... (тужась)
Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #11 : 16.02.2017, 17:54:48 »

Выходит помаленьку, время не всегда есть =).
Сегодня появилось время и я переписал аддон под плагин.
dmitry_stas, для меня очень важно ваше мнение и других.
На что мне еще обратить внимание в данном плагине.
Очень хочется сделать красиво, для всех кто нуждается.

Плагин устанавливается из установщика Joomla.
После установки плагин необходимо включить.
В шаблоне товара добавить в нужном месте любой элемент с id 'PDF':
<div id="pdf"></div>
« Последнее редактирование: 20.07.2017, 13:47:47 от maximis » Записан
dmitry_stas
Профи
********

Репутация: +935/-6
Online Online

Сообщений: 9958



« Ответ #12 : 16.02.2017, 18:09:30 »

ну вот, совсем же другое дело Azn гляньте как просто и красиво получилось Azn
Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #13 : 16.02.2017, 18:15:37 »

Спасибо еще раз огромное за помощь! Хорошо, когда есть такие люди. Планирую дополнить настройки плагина и красиво оформить в шапке форума. Действительно оказалось все намного проще =)
Записан
Zhanadil1509
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 71


« Ответ #14 : 19.07.2017, 15:20:07 »

Спасибо еще раз огромное за помощь! Хорошо, когда есть такие люди. Планирую дополнить настройки плагина и красиво оформить в шапке форума. Действительно оказалось все намного проще =)
Воспользовался Вашим плагином! Выручили реально! Но есть небольшое но:
Как можно избавиться от этих косяков? Возможен ли такой вариант, что характеристика не влезает во всю страницу?



« Последнее редактирование: 19.07.2017, 15:23:26 от Zhanadil1509 » Записан
Zhanadil1509
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 71


« Ответ #15 : 19.07.2017, 15:51:13 »

Еще вот заметил, какое то время стоит и начинает дублировать кнопку. Как устранить?

Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #16 : 19.07.2017, 16:08:34 »

1. Нужно индивидуально перекроить шаблон PDF под вас. Начал делать универсальное решение, но к сожалению появились дела.
2. Нужно смотреть, так не угадаешь. В стандартном шаблоне выводило нормально.

Записан
Zhanadil1509
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 71


« Ответ #17 : 19.07.2017, 16:49:07 »

очень жаль
Записан
Zhanadil1509
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 71


« Ответ #18 : 20.07.2017, 09:35:33 »

1. Нужно индивидуально перекроить шаблон PDF под вас. Начал делать универсальное решение, но к сожалению появились дела.
2. Нужно смотреть, так не угадаешь. В стандартном шаблоне выводило нормально.


Вот сделал поправки, теперь нормально почти. Не знаете почему не вытаскивает цену? Где его можно настроить или подключить. Весь плагин прошарил не понял. И как правый столб чуть подтянуть?
Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #19 : 20.07.2017, 11:33:06 »

В файле assets/pdf/generate_pdf_product.php
Найдите блок:
      foreach($this->product->extra_field as $extra_field) {
         $this->MultiCell(40,4,$extra_field['name'].':',0,'L','L',false);
         $this->MultiCell(42,4,$extra_field['value'],0,'L','R',false);
         $this->Ln();
      }
и после него добавьте блок:
      if (!$this->jshopConfig->user_as_catalog) {
         $this->MultiCell(40,4,_JSHOP_PRICE.':',0,'L','L',false);
         $this->MultiCell(42,4,formatprice($this->product->product_price),0,'L','R',false);
         $this->Ln();      
      }

« Последнее редактирование: 20.07.2017, 12:11:20 от maximis » Записан
Zhanadil1509
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 71


« Ответ #20 : 20.07.2017, 12:14:01 »

В файле assets/pdf/generate_pdf_product.php добавьте в нужный блок(блок характеристик, блок описания и т.д.) строку:
$this->Cell(182,7,$this->product->product_price,0,0,'L',false);

Пробовал так. Не работает. Видимо еще в родительском классе TCPDF надо добавлять поля связанные с price, а то не нашел ни одного значения (components/com_jshopping/lib/tcpdf/tcpdf.php).
А на счет столбца уже разобрался. Спасибо.
« Последнее редактирование: 20.07.2017, 12:17:10 от Zhanadil1509 » Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #21 : 20.07.2017, 12:15:11 »

Я отредактировал сообщение, смотрите выше.
Записан
Zhanadil1509
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 71


« Ответ #22 : 20.07.2017, 12:19:44 »

Я отредактировал сообщение, смотрите выше.

Огромнейшее спасибо! Идеально!
Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #23 : 20.07.2017, 12:20:53 »

В TCPDF добавлять ничего не нужно, данная библиотека только генерирует данные в PDF.
У вас есть объект product, там есть все, что выводится в карточку товара.
Нужно только подсунуть в плагин необходимые данные и все.
Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #24 : 20.07.2017, 14:56:59 »

Вот сделал поправки, теперь нормально почти. Не знаете почему не вытаскивает цену? Где его можно настроить или подключить. Весь плагин прошарил не понял. И как правый столб чуть подтянуть?


Вам лучше сделать разметку шаблона PDF так:
1. блок основной картинки оставить как есть.
2. вместо блока описания поставить блок с характеристиками.
3. сделать один блок с описанием вместо блока всех картинок и блока характеристик.
Слева будет основная картинка товара, справа от нее характеристики и внизу все пространство заполнит описание.
Тогда получится лаконично и красиво.

Заходил к вам на сайт, кнопка pdf не работает.
Записан
Zhanadil1509
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 71


« Ответ #25 : 25.07.2017, 15:49:55 »

Заходил к вам на сайт, кнопка pdf не работает.


Сейчас все сделал, работает нормально и кнопка генерируется при загрузке страницы товара. Еще раз спасибо за этот отличный плагин.
Этот плагин хотел подключить на страницу корзины вставил <div id="pdf"></div>, но кнопка не генерируется.
Я как понимаю, этот плагин pdf, не генерирует формат pdf с корзины? Только страницу товара может генерировать в pdf?

Записан
maximis
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 19


« Ответ #26 : 25.07.2017, 17:57:37 »

Данный плагин написан под карточку товара.
Под корзину надо писать отдельный плагин.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet