Друзья, здравствуйте.
Не прошу конкретного "облизывания", но прошу указать направление "в какую сторону глядеть" по следующему вопросу.
Есть внутренний сайт на Drupal 7. Необходимо реализовать функционал, к примеру заполнения пользователем заявления на отпуск и вывода его сгенерированного PDF варианта на новую вкладку.
Попробовал побороть модуль WebForm, но как я понял он умеет только отправлять результат на email и в целом это не совсем пододящий модуль для решения моей задачи.
Требуется примерно следующее:
Создаю новый тип материала, в нём полностью убираю body и добавляю текстовые поля:
- ФИО
- Должность
- Департамент
- Дата начала отпуска
- Дата окончания отпуска
- Текущая дата
После заполнения данных полей, пользователь должен нажать кнопку "Generate PDF" и получить в новой вкладке браузера готовое заявление на отпуск (в котором к заранее созданному текстовому шаблону приписаны результаты его заполненных полей).
При этом сохранять всё это дело как новую статью не надо, чтобы не копить в базе данных мусор.
Как использовать модуль PDF using mPDF я разобрался, тоесть генерировать ПДФ-ки на основе ноды я научился, но хотелось бы иметь слегка другой функционал, чтобы пользователь в созданном для этих целей заполнял только несколько полей и не видел ни body, ни текстового шаблона, а на выходе получал готовое к подписи и распечатыванию заявление.
Прошу поверхностно описать, в сторону каких модулей ковырять, и как подготовить текстовый шаблон к которому будут дописываться результаты заполнения полей пользователями.
Большое всем спасибо!
Комментарии
Я делал подобное для внутреннего проекта. Не сохранять такие материалы не получится, но можно их по крону удалять. Вы всё правильно описали. Создаем новый тип материала, делаем необходимые поля. Пользователь создает материал, сохраняет его. Вы, в кастомном модуле с помощью хука (не помню какого) добавляете вниз к системным кнопкам кнопку "Экспорт в PDF", а на её обработчик вешаем код собственно по генерации. Вы всё так и описали.
Так и будет
---------------------------
А вообще, вам наверное будет проще сделать кастомную форму в своем модуле. Она будет открываться как обычная страница, пользователи будут её заполнять, а по итогу также получать PDF. Данные же никуда сохраняться не будут
подскажите пожалуйста, а как Вы справились с тем, что текстовые поля всегда встают новой строкой?
К примеру, мне нужен такой результат:
Я, "текст и заполненного пользователем поля", прошу предоставить мне отпуск с "текст и заполненного пользователем поля" по "текст и заполненного пользователем поля".
Чтобы всё было в одну строку. Потому что сейчас у меня все текстовые поля становятся в новую строку.
Спасибо!
Не понял вопроса
Я генерировал файлы на основе шаблона LibreOffice ODT. Т.е. подставлял в уже заготовленный файл-шаблон нужные значения
Ух ты, а вот это уже что-то новенькое. Спасибо! Сейчас загуглю в эту сторону, если не разберусь, то попрошу у Вас чуть-чуть разжевать, если Вы не против!
https://www.drupal.org/project/phpwkhtmltopdf
Аналог модуля wkhtmltopdf https://www.drupal.org/project/pdfer
Позволяет быстро накликивать то, что нужно
что бы пользователь не видел других полей
www.drupal.org/project/field_permissions
что бы сгенерировать пдф и не создавать ноду
https://www.drupal.org/project/print
Друзья!
Всем спасибо за подсказки, но я пока что столкнулся и не могу разобраться с проблемой: Установил модуль "ODT Filler", прикрутил к нему библиотеку phpODT. Создал шаблон через LibreOffice, назначил его через "ODT Filler", подставил необходимые поля.
Файл он генерирует, это конечно очень хорошо, но, блин, в ISO-8859-1 кодировке Циферки показывает правильно, а вот Русский текст (тот что подставляется к шаблону из текстовых полей) превращается в кракозябры.
Вот сижу, воюю, но чего-то вообще не пойму откуда эти кракозябры появляются...
Уф, разобрался с кракозябрами. Теперь, переходим к следующей стадии: как показать модулю "ODT Filler" генерировать не *.odt а *.pdf ))) Чую, тут всё ещё хлеще чем с кракозябрами
Вероятно, никак) Генерить .odt, а потом конвертировать в .pdf
Но, судя по Вашему первому ответу, Вы всё-же как-то генерировали PDF-ки, не сложно ли Вам тогда описать логику работы Вашей системы? Просто смыслы Вашей и моей системы получается схожи (пользователь заполняет, в шаблон подставляется, на выходе - PDF). И шаблон у Вас как я понял тоже был ODT.
Спасибо!
Отпишу в личку в ближайшее время.
Если еще актуально, есть вот такой вариант: https://drupal-coder.ru/blog/generacia-i-otpravka-pdf-s-rezultatami-zapo...
Добрый день! Аналогичная задача, только сохранять нужно в ворд. Может уже появились готовые модули ?
Про готовые не слышал (за исключением sandbox-проекта https://www.drupal.org/sandbox/neilt17/1694708).
Могу написать кастомный модуль под ваши нужды за некое вознаграждение.
Как с вами связаться?
Написал вам в личные сообщения.