Новости Joomla

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

hoper

  • Осваиваюсь на форуме
  • 16
  • 1 / 0
У меня всё же вопрос о генерации pdf, хожу вокруг да около. Не знаю, как записать внесённые данные в таблицу и из неё сформировать pdf с отправкой в письме одним нажатием кнопки.
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
У меня всё же вопрос о генерации pdf, хожу вокруг да около. Не знаю, как записать внесённые данные в таблицу и из неё сформировать pdf с отправкой в письме одним нажатием кнопки.

Я использую TCPDF, с mpdf я просто не знаком. Кроме того, ваш вопрос ни о чём. Вы вывели пустую форму через библиотеку, и удивляетесь, что она не заполнена. Покажите, что продвинулись в теме, тогда и помочь будет не бесполезно.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

greenspot

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
varX, Спасибо за ответ.
hoper, Спасибо за совет.

Скорее всего, остановлюсь на варианте создания группы полей для каждого выбора. Писать долго, но зато понятно как сделать.

varX,
Глянул - в админке компонента, в проекте, когда заходишь в список полей, кнопки копировать нет - возможно, было бы полезно сделать для решения задач, связанных с созданием множества однотипных полей.
« Последнее редактирование: 17.01.2017, 07:47:12 от greenspot »
*

greenspot

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Все думал над решением задачи - можно ли копировать поля или целые проекты в данном компоненте?  Очень бы помогло при создании однотипных форм/полей

Где в коде смотреть и копировать  - подскажите пожалуйста!
*

Aleksander63

  • Новичок
  • 1
  • 0 / 0
Здравствуйте! Возможно, вопрос покажется глупым )) Подскажите, пожалуйста, где можно поменять цвет выводимого сообщения на сайте после отправки данных формы? Спасибо!
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Все думал над решением задачи - можно ли копировать поля или целые проекты в данном компоненте?  Очень бы помогло при создании однотипных форм/полей

Где в коде смотреть и копировать  - подскажите пожалуйста!

Это делается стандартными функциями, как в любом другом компоненте и в самой Joomla. Смотрите контроллер /administrator/components/com_quickform/controllers/forms.php он унаследован от стандартного JControllerAdmin. А значит в нем доступны все стандартные задачи.

Здравствуйте! Возможно, вопрос покажется глупым )) Подскажите, пожалуйста, где можно поменять цвет выводимого сообщения на сайте после отправки данных формы? Спасибо!

За стили стандартного сообщения отвечает ваш шаблон. Если эти стили "не такие", то у вас "не тот" шаблон.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

hoper

  • Осваиваюсь на форуме
  • 16
  • 1 / 0
Генерацию pdf настроил с помощью библиотеки TCPDF и выгрузки формы из базы данных. Может кому-нибудь пригодится (описание в комментариях):
Код
$host="localhost";
$user="****";
$pass="*****";
$db_name="*******";
$link=mysql_connect($host,$user,$pass);
mysql_select_db($db_name,$link);
$sql = mysql_query("SELECT `id`, `st_form` FROM `idg1v_quickform_ps` WHERE id = (select max(id) from `idg1v_quickform_ps`)", $link);  // вывод из базы данных последней заполненной формы
$html = mysql_fetch_array($sql);

$pdf->SetFont('dejavusans', '', 10);  // шрифт, поддерживающий кириллицу

$pdf->writeHTML($html[1], true, false, true, false, ''); //вывод формы в файл pdf

остался вопрос как отправить этот файл в письме одним нажатием кнопки?
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Генерацию pdf настроил с помощью библиотеки TCPDF и выгрузки формы из базы данных. Может кому-нибудь пригодится (описание в комментариях):
Код
$host="localhost";
$user="****";
$pass="*****";
$db_name="*******";
$link=mysql_connect($host,$user,$pass);
mysql_select_db($db_name,$link);
$sql = mysql_query("SELECT `id`, `st_form` FROM `idg1v_quickform_ps` WHERE id = (select max(id) from `idg1v_quickform_ps`)", $link);  // вывод из базы данных последней заполненной формы
$html = mysql_fetch_array($sql);

$pdf->SetFont('dejavusans', '', 10);  // шрифт, поддерживающий кириллицу

$pdf->writeHTML($html[1], true, false, true, false, ''); //вывод формы в файл pdf

остался вопрос как отправить этот файл в письме одним нажатием кнопки?

У вас в файле /components/com_quickform/quickform.php уже готовый $html формируется. Не нужно никаких подключений к базе. Нужно только конвертнуть его в pdf и приаттачить к письму.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

greenspot

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
varX, еще раз спасибо за компонент!

Разобрался, вставил в свой экземпляр кнопку SaveAsCopy в админку полей.

Для заинтересовавшихся - делается вставкой в
/public_html/administrator/components/com_quickform/views/form/view.html.php

после строчек
JToolbarHelper::save('form.save');
еще одной строки
JToolbarHelper::save2copy('form.save2copy');

именно эта строка отвечает за кнопку SaveAsCopy.


Теперь копирование и клонирование полей внутри проекта не представляет сложностей. Предлагаю добавить эту возможность при обновлении компонента - полезная штука!
« Последнее редактирование: 24.01.2017, 23:00:59 от greenspot »
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
+. Обязательно добавлю.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

greenspot

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Добрый вечер!

Еще вопрос по применению SUM0, SUM1 итд - в каком окошке писать эти переменные (в окошке calc не срабатывают)? Похоже, во 2й версии компонента подсказки про использование данных переменных куда-то подевались :(

И есть ли возможность вывести пользователю в текстовом поле или в письмо финальное выражение калькулятора (не только результат, а само выражение например "Ваш результат рассчитан:(2*2+7+1)/3=4")?
*

Osmosis

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Коллеги, помогите!
Если в форме есть калькулятор, значит нужна функция вывода изображений ))
Больше вопрос по jQuery, чем по форме, но темнемение наверняка решение ещё комунибудь пригодится.
Задача простая: нужно вывести на странице, определенные картинки путём подставления в URL картинки значения div или value из select>option. Подобного рода задача обсуждалась на 5 странице, varX- предложил изящное решение, надеюсь и мне не откажет )
Форма здесь: https://oknamag.com/moskitnaya-setka-po-vashemu-razmeru

Ещебы инструкцию по подключению к платежной системе, например яндексДеньги, цены бы компоненту небыло.
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Добрый вечер!

Еще вопрос по применению SUM0, SUM1 итд - в каком окошке писать эти переменные (в окошке calc не срабатывают)? Похоже, во 2й версии компонента подсказки про использование данных переменных куда-то подевались :(

И есть ли возможность вывести пользователю в текстовом поле или в письмо финальное выражение калькулятора (не только результат, а само выражение например "Ваш результат рассчитан:(2*2+7+1)/3=4")?

Я не понял ваш вопрос. Если вы хотите использовать калькулятор по формуле, тогда она задается в настройках проекта формы. Если вам нужно посмотреть итоговую строку, по которой ведется рассчет, тогда можно сделать ошибку (специально). Вместо суммы отобразится строка расчета. Например, можно поставить две точки подряд в калькулируемое текстовое поле.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Коллеги, помогите!
Если в форме есть калькулятор, значит нужна функция вывода изображений ))
Больше вопрос по jQuery, чем по форме, но темнемение наверняка решение ещё комунибудь пригодится.
Задача простая: нужно вывести на странице, определенные картинки путём подставления в URL картинки значения div или value из select>option. Подобного рода задача обсуждалась на 5 странице, varX- предложил изящное решение, надеюсь и мне не откажет )
Форма здесь: https://oknamag.com/moskitnaya-setka-po-vashemu-razmeru

Ещебы инструкцию по подключению к платежной системе, например яндексДеньги, цены бы компоненту небыло.

Для вывода картинок проще всего использовать зависимые поля.
Создаете группу полей с одним единственным полем - customHtml, в котором размещаете картинку. Привязываете эту группу к нужному option селекта, как зависимую. Все. Как с помощью CSS вывести все это в нужное место страницы, я уже описывать не буду.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

n1x0n

  • Новичок
  • 5
  • 1 / 0
Подскажите пожалуйста есть ли возможность реализовать сообщение об успешной отправке без редиректа страницы, а допустим в том же окне под самой формой на технологии AJAX. Цены бы не было данному компоненту!
*

hoper

  • Осваиваюсь на форуме
  • 16
  • 1 / 0
У вас в файле /components/com_quickform/quickform.php уже готовый $html формируется. Не нужно никаких подключений к базе. Нужно только конвертнуть его в pdf и приаттачить к письму.

Всё сделал, как и рекомендовали и получился результат. Им и делюсь.
Для начала необходимо скачать библиотеку tcpdf, распаковать всё в отдельную папку.
Добавить в файл quickform.php :
Код
require_once('c:/***********/components/com_quickform/tcpdf.php'); // подключаем библиотеку
require_once('c:/***********/components/com_quickform/tcpdf_include.php');

$pdf = new TCPDF(); // СОЗДАЁМ ОБЪЕКТ
$namePDF = date('d-m-Y_H-i-s', strtotime("-1 hour"));  // ДАТА ДЛЯ ИМЕНИ ФАЙЛА PDF
$namePDF2 = 'c:/***********/components/com_quickform/pdf/'.$namePDF.'.pdf';  // путь для сохранения pdf

$pdf->SetFont('dejavusans', '', 10);
$pdf->AddPage(); // первая страница
$pdf->writeHTML($html); // вставляем имеющийся текст в pdf

$pdf->AddPage();
$html4 = <<<EOF
<h3>Примечание:</h3> // ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ ПОСЛЕ ТАБЛИЦЫ С ДАННЫМИ ИЗ ФОРМЫ
EOF;

$html2 = <<<EOF
<p>
Коллеги, добрый день.<br> // ТЕКСТ В ТЕЛЕ ПИСЬМА
</p>
EOF;

// output the HTML content
$pdf->writeHTML($html4);
$pdf->Output($namePDF2, 'F'); // выводим результат в файл принудительно сохраняя

$sent = $qfFilds->sendMail($project, $html2);
$stat = $qfFilds->writeStat($project, $html);

и в файл buildletters.php :
Код

$dir = 'c:/***********/components/com_quickform/pdf/'; // папка с pdf-файлами
$content = scandir($dir); // берём всё содержимое директории
$i = 0;

foreach($content as $key=>&$value){
   if(is_file($dir.$value)){
       $files[$i]['file'] = $value;
       $files[$i]['path'] = $dir.$value;
       $files[$i]['ctime'] = date ("F d Y H:i:s.", filemtime($dir.$value)); // выбираем последний изменённый файл
       $i++;
   }
}
$file = $files[0];
for($i = 0; $i < count($files); $i++){
   if($files[$i]['ctime'] > $file['ctime'])
       $file = $files[$i];
}

$mail->setSender(array($mailfrom, $fromname));
$mail->addReplyTo($mailfrom, $fromname);
$mail->setSubject($project->subject);
$mail->setBody($html);
$mail->isHTML(true);
$mail->addAttachment($file['path']);  // вставляем файл в письмо

Да и самое главное, если вы оборачиваете какую-то группу полей в тэги с помощью customhtml, например <div>......</div>, то обязательно нужно их скрыть в письме, иначе выводится только часть полей из формы.
« Последнее редактирование: 27.01.2017, 22:48:07 от hoper »
*

hoper

  • Осваиваюсь на форуме
  • 16
  • 1 / 0
varX, остался ещё один вопрос.
Как получить значение определённого поля, введённого посетителем?
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Подскажите пожалуйста есть ли возможность реализовать сообщение об успешной отправке без редиректа страницы, а допустим в том же окне под самой формой на технологии AJAX. Цены бы не было данному компоненту!
Возможность всегда есть. Пишите, договоримся.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Всё сделал, как и рекомендовали и получился результат. Им и делюсь.
Для начала необходимо скачать библиотеку tcpdf, распаковать всё в отдельную папку.
Добавить в файл quickform.php :
Код
require_once('c:/***********/components/com_quickform/tcpdf.php'); // подключаем библиотеку
require_once('c:/***********/components/com_quickform/tcpdf_include.php');

$pdf = new TCPDF(); // СОЗДАЁМ ОБЪЕКТ
$namePDF = date('d-m-Y_H-i-s', strtotime("-1 hour"));  // ДАТА ДЛЯ ИМЕНИ ФАЙЛА PDF
$namePDF2 = 'c:/***********/components/com_quickform/pdf/'.$namePDF.'.pdf';  // путь для сохранения pdf

$pdf->SetFont('dejavusans', '', 10);
$pdf->AddPage(); // первая страница
$pdf->writeHTML($html); // вставляем имеющийся текст в pdf

$pdf->AddPage();
$html4 = <<<EOF
<h3>Примечание:</h3> // ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ ПОСЛЕ ТАБЛИЦЫ С ДАННЫМИ ИЗ ФОРМЫ
EOF;

$html2 = <<<EOF
<p>
Коллеги, добрый день.<br> // ТЕКСТ В ТЕЛЕ ПИСЬМА
</p>
EOF;

// output the HTML content
$pdf->writeHTML($html4);
$pdf->Output($namePDF2, 'F'); // выводим результат в файл принудительно сохраняя

$sent = $qfFilds->sendMail($project, $html2);
$stat = $qfFilds->writeStat($project, $html);

и в файл buildletters.php :
Код

$dir = 'c:/***********/components/com_quickform/pdf/'; // папка с pdf-файлами
$content = scandir($dir); // берём всё содержимое директории
$i = 0;

foreach($content as $key=>&$value){
    if(is_file($dir.$value)){
        $files[$i]['file'] = $value;
        $files[$i]['path'] = $dir.$value;
        $files[$i]['ctime'] = date ("F d Y H:i:s.", filemtime($dir.$value)); // выбираем последний изменённый файл
        $i++;
    }
}
$file = $files[0];
for($i = 0; $i < count($files); $i++){
    if($files[$i]['ctime'] > $file['ctime'])
        $file = $files[$i];
}

$mail->setSender(array($mailfrom, $fromname));
$mail->addReplyTo($mailfrom, $fromname);
$mail->setSubject($project->subject);
$mail->setBody($html);
$mail->isHTML(true);
$mail->addAttachment($file['path']);  // вставляем файл в письмо

Да и самое главное, если вы оборачиваете какую-то группу полей в тэги с помощью customhtml, например <div>......</div>, то обязательно нужно их скрыть в письме, иначе выводится только часть полей из формы.

Молодец, конечно, что разобрался. Только зачем так много кода?
1. Все это лучше в одном месте делать, в частности в функции sendMail файла buildletters.php. Там ведь та же самая переменная $html.
2. Зачем вам нужно куда-то что-то сохранять, а потом героически искать последний сохраненный файл? Все делается на лету. Всего несколько строчек кода.

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

Форма состоит из групп(ы) полей, у каждой группы свой уникальный id. В группе все поля пронумерованы. По номеру поля найдете его значение. В компоненте есть пример вывода заполненной формы в виде json строки. Имея такую строку, можно легко ее разобрать и получить любой параметр.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

mlukyanov

  • Захожу иногда
  • 166
  • 2 / 0
А как поле сделать обязательным?
Можно ли для телефона добавить маску ввода +7-888-888-88-88? т.е. вводишь цифры - тире сам расставляет
*

greenspot

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Приветствую, коллеги!

Обратил внимание на то, что при выставлении зависимых полей нет возможности использовать синтаксис (id fields point fildnum), как в калькуляторе.
Столкнулся с необходимостью ввести двухуровневый список Федеральный Округ-> Область.
Было бы удобно в 1 поле прописать с помощью нескольких select все области для всех округов, и выдергивать их по  (id fields point fildnum). С логикой компонента разобрался, еще раз спасибо!
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Цитировать
в 1 поле прописать с помощью нескольких select все области
Вас сложно понять.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

mlukyanov

  • Захожу иногда
  • 166
  • 2 / 0
А как поле сделать обязательным?
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
А как поле сделать обязательным?

Какие у вас проблемы с обязательными полями, что не получается? Скриншот можете прикрепить.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

oc01

  • Захожу иногда
  • 315
  • 29 / 1
А как поле сделать обязательным?
В настройках поля (голубой гаечный ключик) поставить галку в графе "required".
*

naumov_evg

  • Новичок
  • 1
  • 0 / 0
Всем привет! Спасибо за крутой компонент, но есть вопрос.

Прикрутил рекапчу к форме и все норм. Но вот я заполнил все поля, а капчу не поставил и отправил. Страница перегружается, выходит ошибка, что ты капчу не ткнул (все норм), но поля, которые так долго и упорно заполнял они стали пустые.. Может есть какая-то хитрость, которую я не догоняю?

И такая же проблема у старых браузеров, которые игнорируют аттрибут required
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Всем привет! Спасибо за крутой компонент, но есть вопрос.

Прикрутил рекапчу к форме и все норм. Но вот я заполнил все поля, а капчу не поставил и отправил. Страница перегружается, выходит ошибка, что ты капчу не ткнул (все норм), но поля, которые так долго и упорно заполнял они стали пустые.. Может есть какая-то хитрость, которую я не догоняю?

И такая же проблема у старых браузеров, которые игнорируют аттрибут required

Зачем же вы без CAPTCHA отправляете? Тем более, если долго и упорно заполняли поля? Можно было просто попробовать, не заполняя много.

Проблемы старых браузеров шерифа не интересуют. Те, кто ими пользуется, должны быть готовы к подобным сюрпризам, по крайней мере, внимательно следить за звездочками возле полей. Или получать сообщения с ошибкой про незаполненное поле, пока не выработается условный рефлекс, или пока не догадаются, что что-то идет не так, и может быть стоит проверить обновление браузера.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

istraweb

  • Осваиваюсь на форуме
  • 16
  • 0 / 2
Перехожу в настройки компонента, а там такое:

Ошибка

Table 'u0026114_katerok.#__quickform_projects' doesn't exist SQL=SELECT a.*,`uc`.`name` AS `editor`,`ag`.`title` AS `access_level`,l.title AS language_title, l.image AS language_image FROM `#__quickform_projects` AS `a` LEFT JOIN `#__users` AS `uc` ON `uc`.`id` = `a`.`checked_out` LEFT JOIN `#__viewlevels` AS `ag` ON `ag`.`id` = `a`.`access` LEFT JOIN `#__languages` AS l ON l.lang_code = a.language WHERE (`a`.`published` = 0 OR `a`.`published` = 1) ORDER BY a.title asc LIMIT 20 Table 'u0026114_katerok.#__quickform_projects' doesn't exist SQL=SELECT COUNT(*) FROM `#__quickform_projects` AS `a` LEFT JOIN `#__users` AS `uc` ON `uc`.`id` = `a`.`checked_out` LEFT JOIN `#__viewlevels` AS `ag` ON `ag`.`id` = `a`.`access` LEFT JOIN `#__languages` AS l ON l.lang_code = a.language WHERE (`a`.`published` = 0 OR `a`.`published` = 1)

кто встречал? Глюк БД, а что именно ковырять?
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Это, скорее, глюк Joomla, а не базы. Вместо u0026114_katerok.#__quickform_projects должно подставляться что-то типа u0026114_katerok_quickform_projects или, что вероятнее, u0026114_quickform_projects.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

istraweb

  • Осваиваюсь на форуме
  • 16
  • 0 / 2
 :(мда..пациент скорее жив чем мертв...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

QuickForm 3 - конструктор простых и сложных форм

Автор varX

Ответов: 1074
Просмотров: 60775
Последний ответ 26.11.2023, 19:02:39
от barvik
Конструктор форм joomly.ru. Ошибка 404

Автор kunsaid

Ответов: 2
Просмотров: 1474
Последний ответ 11.01.2022, 10:00:21
от kunsaid
QuickForm - форма с функциями калькулятора и зависимыми полями

Автор varX

Ответов: 1332
Просмотров: 192755
Последний ответ 29.09.2021, 16:40:57
от varX
Модуль конструктор формы обратной связи simpleForm2 для Joomla 1.0 / joostina 1.2

Автор vs12345

Ответов: 21
Просмотров: 21388
Последний ответ 25.09.2020, 16:21:22
от svarg
QuickForm 3 не считает калькулятор

Автор Wargoth

Ответов: 17
Просмотров: 3352
Последний ответ 02.04.2020, 22:52:39
от Igor12