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

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Я прекрасно знаком с инструментами разработчика. Может я не совсем точно выразился, уточню. Мне не нужно заменить класс qf2modal, на свой. Зачем мне клонировать стили в разных местах, когда уже есть готовые, и нужно только прописать класс. Ну да ладно, уже сам нашел в buildform.php.
Не нужно вносить никакие изменения в php файлы компонента. Это очень неправильный подход. Если нужно "повесить" готовые стили на ссылку, тогда в эти готовые стили просто дописывается класс qf2modal через запятую.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

alekplotnikov

  • Новичок
  • 2
  • 0 / 0
Добрый день!

Подскажите, пожалуйста, есть ли возможность отправлять письмо (дублировать то, которое приходит администратору - указанный ящик в настройках компонента) пользователю по адресу, который он указывает в поле e-mail при заполнении формы? Может есть какая-то переменная, которую можно указать через запятую после адреса администратора?
« Последнее редактирование: 19.06.2018, 11:11:01 от alekplotnikov »
*

varX

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

Подскажите, пожалуйста, есть ли возможность отправлять письмо (дублировать то, которое приходит администратору - указанный ящик в настройках компонента) пользователю по адресу, который он указывает в поле e-mail при заполнении формы? Может есть какая-то переменная, которую можно указать через запятую после адреса администратора?

Такая функция есть в компоненте. Называется backemail. Читайте описание полей.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

alekplotnikov

  • Новичок
  • 2
  • 0 / 0
Большое спасибо!
*

x1

  • Давно я тут
  • 617
  • 15 / 0
  • Linux — это Windows для бытовой техники
Здравствуйте. Подскажите пожалуйста (может обсуждалось уже), как реализовать такое: пользователь ставит галочку против чекбокса "Хочу получить документацию" и ему вместе с заполненной формой высылается (или не высылается) конкретный файл, который лежит например на сайте в папке "/doc" ?
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Здравствуйте. Подскажите пожалуйста (может обсуждалось уже), как реализовать такое: пользователь ставит галочку против чекбокса "Хочу получить документацию" и ему вместе с заполненной формой высылается (или не высылается) конкретный файл, который лежит например на сайте в папке "/doc" ?

Такой функции нет в компоненте. Но на customPhp все можно сделать.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

x1

  • Давно я тут
  • 617
  • 15 / 0
  • Linux — это Windows для бытовой техники
Такой функции нет в компоненте. Но на customPhp все можно сделать.
Спасибо, тогда пожалуйста еще один уточняющий вопрос, как в customPhp прописать проверку, есть ли поле backemail (или его значение ) в текущей форме?
*

Osmosis

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Вставляю в радио картинку, через поле label из админки - src в двойных кавычках все ломает, в одинарных (<img src='/images.jpg'/>) ломает только код в админке, сама форма при этом работает: https://oknamag.com/zhalyuzi/gorizontalnye-zhalyuzi (в input[radio] вставлено 60 картинок!!)
Вопрос: в QF, таким способом нормально прикручивать img k radio или есть другой способ?
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Спасибо, тогда пожалуйста еще один уточняющий вопрос, как в customPhp прописать проверку, есть ли поле backemail (или его значение ) в текущей форме?


То, что вы пишите в customPhp - это простой php. К компоненту слабое отношение имеет. А содержимое полей в Joomla легко получать:
Код
$app = JFactory::getApplication();
$value = $app->input->get('qfbackemail');
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Вставляю в радио картинку, через поле label из админки - src в двойных кавычках все ломает, в одинарных (<img src='/images.jpg'/>) ломает только код в админке, сама форма при этом работает: https://oknamag.com/zhalyuzi/gorizontalnye-zhalyuzi (в input[radio] вставлено 60 картинок!!)
Вопрос: в QF, таким способом нормально прикручивать img k radio или есть другой способ?

Прикручивать картинки к radio лучше всего через CSS, для этого много вариантов есть. Например, в компоненте к каждой кнопке в радиогруппе добавляется пустой span с индивидуальным классом (специально для подобных дел). Можно и по другому делать, как показано на странице http://plasma-web.ru/dev/quickform в примере подбора дверей.

А если вам именно нужно вставить какой-то HTML в поле label из админки, тогда это можно сделать через текстовую константу. Задаете константу через переопределение языковых констант в Joomla, которая должна начинаться с префикса QF_ и все.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

Osmosis

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Начинал делать через CSS,
на моем сайте не работает знак + , такая запись checked+label не проходит, возможно потому что много CSS файлов подключено, конфликт.
делал картинку на span, но тогда клик не отследить- по идее нужно у span сделать родителем label , тогда можно будет делать у span {position: absolute;} у label {position:relative}
Не очень понял какой скрипт у Вас в примере вставляет  background-image для отображения большой двери.
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Начинал делать через CSS,
на моем сайте не работает знак + , такая запись checked+label не проходит, возможно потому что много CSS файлов подключено, конфликт.
делал картинку на span, но тогда клик не отследить- по идее нужно у span сделать родителем label , тогда можно будет делать у span {position: absolute;} у label {position:relative}
Не очень понял какой скрипт у Вас в примере вставляет  background-image для отображения большой двери.

Не может такого быть, чтобы checked+label не работало из-за конфликта, значит эта пара у вас где-то переопределена жестко. ищите.
background-image подставляется в зависимом поле. Там должно быть описано. Вместо картинки в зависимом поле пишется стиль, например, <style>.f_6_img_box {background-image: url(/media/art/v7v.gif);}</style>
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

x1

  • Давно я тут
  • 617
  • 15 / 0
  • Linux — это Windows для бытовой техники
https://fex.net/863175561715?fileId=552815110
Здравствуйте, маленькое пожелание, чистое украшательство, нельзя ли в админке надпись "проекты" дать болдом и с заглавной буквы?
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
https://fex.net/863175561715?fileId=552815110
Здравствуйте, маленькое пожелание, чистое украшательство, нельзя ли в админке надпись "проекты" дать болдом и с заглавной буквы?
Думаю, можно будет немного доработать эту навигацию.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

x1

  • Давно я тут
  • 617
  • 15 / 0
  • Linux — это Windows для бытовой техники
Подскажите пожалуйста, в каком направлении искать:
Добавляю в buildletters.php $mail->addAttachment("https:/sitename.com/doc/info.doc")
На localhost (через PHP mailer) отправка документа происходит, на сайте (SMTP Google аккаунт) - нет.
« Последнее редактирование: 21.06.2018, 14:46:53 от x1 »
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Подскажите пожалуйста, в каком направлении искать:
Добавляю в buildletters.php $mail->addAttachment("https:/sitename.com/doc/info.doc")
На localhost (через PHP mailer) отправка документа происходит, на сайте (SMTP Google аккаунт) - нет.
Попробуйте абсолютный путь указать, через JPATH_SITE.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

x1

  • Давно я тут
  • 617
  • 15 / 0
  • Linux — это Windows для бытовой техники
Попробуйте абсолютный путь указать, через JPATH_SITE.
Код
 

Огромнейшее спасибо! С сайта через SMTP успешно отправилось:
         
$file = JPATH_SITE. "/doc/info.doc";
$mail->addAttachment($file);

Прекрасный компонент! Сделал добавление емейлов пользователей из формы в базу AcyMailing и отсылку аттачментов! Спасибо разработчику!
*

x1

  • Давно я тут
  • 617
  • 15 / 0
  • Linux — это Windows для бытовой техники
Уважаемый varX, чисто теоретическая проблема: "персональные данные" и ваша форма.
Если в форме есть чекбокс 'qfbackemail', то письмо сейчас отправляется по адресам: 1 - тем, что перечислены в настройках формы (а их там может быть несколько), 2 - на адрес посетителя сайта, заполнившего форму и добровольно указавшего свой емейл.
Суть проблемы, как я её вижу: посетитель получает на свой адрес письмо/форму (как и задумано), но при этом в заголовке письма видит, не только свой емейл, но и все остальные электронные адреса. Конкретно у меня форма/заявка отправляется 4-м менеджерам сайта (кто из них в данный момент на связи, тот и обрабатывает заказ).
И это не хорошо, что клиент видит служебные/личные адреса менеджеров! Как правило, у каждой компании есть стандартное общедоступное мыло для обратной связи типа info@mycompany.com , а личные адреса в паблик не выкладываются.
Собственно теоретический вопрос: не видите ли вы смысла и целесообразности в том, что бы форма отправлялась в таких случаях 2 раза (а не 1 раз как сейчас) - одно письмо на только на адрес/адреса сайта, а второе письмо только индивидуально посетителю сайта?
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Уважаемый varX, чисто теоретическая проблема: "персональные данные" и ваша форма.
Если в форме есть чекбокс 'qfbackemail', то письмо сейчас отправляется по адресам: 1 - тем, что перечислены в настройках формы (а их там может быть несколько), 2 - на адрес посетителя сайта, заполнившего форму и добровольно указавшего свой емейл.
Суть проблемы, как я её вижу: посетитель получает на свой адрес письмо/форму (как и задумано), но при этом в заголовке письма видит, не только свой емейл, но и все остальные электронные адреса. Конкретно у меня форма/заявка отправляется 4-м менеджерам сайта (кто из них в данный момент на связи, тот и обрабатывает заказ).
И это не хорошо, что клиент видит служебные/личные адреса менеджеров! Как правило, у каждой компании есть стандартное общедоступное мыло для обратной связи типа info@mycompany.com , а личные адреса в паблик не выкладываются.
Собственно теоретический вопрос: не видите ли вы смысла и целесообразности в том, что бы форма отправлялась в таких случаях 2 раза (а не 1 раз как сейчас) - одно письмо на только на адрес/адреса сайта, а второе письмо только индивидуально посетителю сайта?
Есть такой момент. Буду думать.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

Saich

  • Новичок
  • 1
  • 0 / 0
Связываем QuickForm 2 + AcyMailing. Если у вас много разных форм, и в них есть емейлы, то  иногда хочется добавить их в рассылочную базу  AcyMailing. От нас требуется передать в базу всего 2 значения: емейл и то, что будет именем подписчика в AcyMailing.
Всего 3 простых шага:

Код на половину не рабочий. Точнее работает но местами не верно.
Я немного его подправил:


1) В файл \administrator\components\com_quickform\config.xml добавляем код:
Код
<fieldset
        name="AcyMailing"
        label="AcyMailing"
        description="Add a username and e-mail address to the AcyMailing database"
    >
        <field name="useradd" type="list" label="Add user On/Off" description="" default="0">
            <option value="1">On</option>
            <option value="0">Off</option>
        </field>

        <field type="spacer" class="" label="Username and e-mail address class of the QuickForm field:"/>
        <field name="usermailclass" type="text" class="cartfilds" default="usermail" label="User e-mail class" description=""/>
        <field name="usernameclass" type="text" class="cartfilds" default="username" label="User name class" description=""/>
        <field type="spacer" class="" label="Assign name for all new users (if needed):"/>
        <field name="userngroupname" type="text" class="cartfilds" default="Quick Form subscriber" label="Name for all new users" description=""/>
        <field name="usernnameren" type="list" label="Rename always or only when username is not found in form" description="" default="1">
            <option value="1">Rename only when username not found</option>
            <option value="0">Rename username always</option>
        </field>
        <field name="userover" type="list" label="Overwrite the user if it is present in the database" description="" default="1">
            <option value="1">JYES</option>
<option value="0">JNO</option>
        </field>
        <field type="spacer" class="" label="AcyMailing lists ID you want the user to be subscribed (0 - not subscribed):"/>
        <field name="userlistid" type="text" class="cartfilds" default="0" label="Newsletter ID" description=""/>
    </fieldset>

2)В файле components\com_quickform\classes\buildletters.php ищем функцию public function getMainForm($projectid), и перед return вставляем код, т.е. конец функции д.б. такой:
Код
// AcyMailing
        require_once JPATH_COMPONENT.'/classes/qfacymailing.php';
        $addAcyMailing = qfAcyMailing($data);

        return $data;

3) В папке components\com_quickform\classes\ создаем файлик qfacymailing.php следующего содержания:
Код
<?php
/**
  * @license GNU/GPL
*/

defined('_JEXEC') or die();

function qfAcyMailing($data) {

    // Get config parameters
    $qf_params = JComponentHelper::getParams('com_quickform');
    $userAdd = $qf_params->get('useradd');
    if ($userAdd == 0) {
       //echo "Выключено! <br/>";
       //die;
       return false;
    }

    $userMailClass = $qf_params->get('usermailclass');
    $userNameClass = $qf_params->get('usernameclass');
    $userListId = $qf_params->get('userlistid');
    $userGroupName = $qf_params->get('userngroupname');
    $userNameRename = $qf_params->get('usernnameren');
    $userOver = $qf_params->get('userover');

    $userDate = round(gettimeofday(true));
    $userMail ="";
    $userName="";

    // Search user name and email
    foreach ($data as $field) {
        if ($field->class == $userMailClass) {
            $userMail = $field->value;
            //echo "userMail: ". $userMail. "<br/>";
            break;
        }
    }

    foreach ($data as $field) {
        if ($field->class == $userNameClass) {
            $userName = $field->value;
            //echo "userName: ". $userName. "<br/>";
            break;
        }
    }

    If ($userMail == "") {
        //echo "Email not found!". "<br/>";
        return false;
    }

    if ($userNameRename == 1 and empty($userName) OR $userNameRename == 0) {
        $userName = $userGroupName;
    }

    //echo "userMail: ". $userMail. "<br/>";
    //echo "userName: ". $userName. "<br/>";

    //die;

   

        if(!include_once(rtrim(JPATH_ADMINISTRATOR,DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.'components'.DIRECTORY_SEPARATOR.'com_acymailing'.DIRECTORY_SEPARATOR.'helpers'.DIRECTORY_SEPARATOR.'helper.php')){
            echo 'This code can not work without the AcyMailing Component';
            return false;
        }
       
            $stopAdd = 0;
            if($userOver != 1){
                // Проверяем, есть ли mail в базе AcyMailing
                $userClass = acymailing_get('class.subscriber');
                $subid = $userClass->subid($userMail);
               
                if(is_numeric($subid)){
                    $stopAdd = 1;
                }
            }
       
        // Если email в базе AcyMailing отсутствует, добавляем нового подписчика   
        if($stopAdd != 1){
            $myUser = new stdClass();
            $myUser->email = $userMail;
            $myUser->name = $userName; //this information is optional
            $myUser->confirmed = 1;
            //die;
   
            //If you require a confirmation but don't want the user to have to confirm his subscription via the API, you can set the confirmed field to 1:
            //$myUser->confirmed = 1;
   
            //You can add as many extra fields as you want if you already created them in AcyMailing
            //$myUser->country = 'france';
            //$myUser->phone = '064872754';
            //...
   
            $subscriberClass = acymailing_get('class.subscriber');
            $subid = $subscriberClass->save($myUser); //this function will return you the ID of the user inserted in the AcyMailing table
           
           
            //die;
   
            if ($userListId != 0) {
           
                $sb[$userListId]['status'] = 1;
                $subscriberClass->saveSubscription($subid,$sb);
               
   
            } else {
                // echo "Без подписки";
            }
        }else{
            return false;
        }
}

?>

Теперь все работает так:
  • Идем в Настройки QuickForm 2 и включаем передачу данных в AcyMailing - если оно вам нужно.
  • Там же вписываем ту ID рассылки из AcyMailing, на которую будем подписывать все добавленные в базу емейлы.
  • Далее смотрим и запоминаем (или вводим свои названия), как обозваны классы, которыми мы будем маркировать нужные поля в проектах QuickForm
  • Поле: Overwrite the user...:
    Да - Если если пользователь уже есть в базе рассылок, перезапишет данные, имя(если указано другое) и добавит в рассылку которую указали в настройках.
    Нет - Ни какие данные о пользователе не изменятся.
  • Сохранямся, закрываем Настройки и переходим к проектам QuickForm 2.
  • Находим нужный проект, переходим к полям и в параметрах нужного поля, например "Ваш емейл:" в параметре "class" вписываем одно из двух значений, в данном случае это "usermail", а например в поле "Ваше имя" - вписываем класс "username". Таким образом метим все нужные поля с именем юзера и его емейлом во всех формах, откуда мы хотим вытягивать подписчиков.
*

johnwick

  • Новичок
  • 8
  • 1 / 0
Здравствуйте,


Вывожу форму как модальное окно, но ссылка на форму (кликаешь по ссылке и ничего не происходит) не работает в браузере mozilla Firefox.
В браузерах chrome / edge / IE всё работает чётко.
Код
<button id="conf_rqst" style="margin-top: 5px;"><a href="javascript:void(0);" class="qf2modal" data-project="4">Сделать заявку</a></button>
В чём может быть проблема?
Если уже обсуждалось здесь, дайте ссылку на сообщение. Буду признателен.
Спасибо.
*

varX

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


Вывожу форму как модальное окно, но ссылка на форму (кликаешь по ссылке и ничего не происходит) не работает в браузере mozilla Firefox.
В браузерах chrome / edge / IE всё работает чётко.
Код
<button id="conf_rqst" style="margin-top: 5px;"><a href="javascript:void(0);" class="qf2modal" data-project="4">Сделать заявку</a></button>
В чём может быть проблема?
Если уже обсуждалось здесь, дайте ссылку на сообщение. Буду признателен.
Спасибо.


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

johnwick

  • Новичок
  • 8
  • 1 / 0
Как вы пришли к "гениальной" идее вставить ссылку внутрь кнопки? Теперь объясняйте браузеру, какому из этих двух кликабельных элементов ему нужно отдать предпочтение.
Вот я  crazy!
Понял, спасибо!
*

Надежда

  • Осваиваюсь на форуме
  • 43
  • 0 / 0

Подскажите пожалуйста, как реализовать в письме, после отправки формы, ID текущей формы и дату ее создания?
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Подскажите пожалуйста, как реализовать в письме, после отправки формы, ID текущей формы и дату ее создания?
Это делается при помощи php. Функция, которая отправляет письмо, находится в файле /components/com_quickform/classes/buildletters.php и называется sendMail(). Там вы сможете добавить в письмо id и дату создания.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

Надежда

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Это делается при помощи php. Функция, которая отправляет письмо, находится в файле /components/com_quickform/classes/buildletters.php и называется sendMail(). Там вы сможете добавить в письмо id и дату создания.

Спасибо!
*

Надежда

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Это делается при помощи php. Функция, которая отправляет письмо, находится в файле /components/com_quickform/classes/buildletters.php и называется sendMail(). Там вы сможете добавить в письмо id и дату создания.

Все-таки, прошу помочь прописать в коде как добавить дату создания формы и ее id, видимо моих знаний php не достаточно, чтобы это сделать((
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Все-таки, прошу помочь прописать в коде как добавить дату создания формы и ее id, видимо моих знаний php не достаточно, чтобы это сделать((
К сожалению, двумя строчками нельзя обойтись. А времени сейчас нет, чтобы решить вам эту проблему. Может, позже, если будет свободное время.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

Надежда

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
К сожалению, двумя строчками нельзя обойтись. А времени сейчас нет, чтобы решить вам эту проблему. Может, позже, если будет свободное время.
Если указать в теме письма дату заказа и id - может, в этом случае сможете помочь?
*

Makaroon

  • Новичок
  • 2
  • 0 / 0
Здравствуйте. Установил компонент. Спасибо, полностью устраивает.
Прошу совета - у меня на сайте несколько десятков одинаковых форм. Как средствами компонента в письме передать заголовок страницы, с которой отправлена форма?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор varX

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

Автор kunsaid

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

Автор varX

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

Автор vs12345

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

Автор Wargoth

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