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

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: 1 ... 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 [43]   Вниз
  Добавить закладку  |  Печать  
Автор

QuickForm - форма с функциями калькулятора и зависимыми полями

 (Прочитано 123444 раз)
0 Пользователей и 1 Гость смотрят эту тему.
varX
Живу я здесь
******

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

Сообщений: 1529


разработка компонентов


« : 09.09.2012, 14:35:59 »

Это старая тема. Новая тут http://joomlaforum.ru/index.php/topic,330126.0.html


Быстрый и удобный компонент форм для Joomla с функцией калькулятора.

http://juice-lab.ru/dev/components/3-quickform

Краткий help http://joomlaforum.ru/index.php/topic,228015.msg1369044.html#msg1369044

Новая версия для Joomla 3
http://joomlaforum.ru/index.php/topic,228015.msg1659682.html#msg1659682
« Последнее редактирование: 15.08.2016, 22:49:50 от lcd25 » Записан
 
Keidjjj
Новичок
*

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

Сообщений: 8


« Ответ #1261 : 02.12.2016, 13:16:09 »

Какой максимальный размер файла можно прикрепить к сообщению  ? И каким образом можно этот объем ограничить.
Записан
ApxaHGe1
Новичок
*

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

Сообщений: 2


« Ответ #1262 : 06.12.2016, 15:36:44 »

Скажите, а возможно ли сделать редирект на страницу с материалом, после заполнения формы и нажатия на кнопку
Записан
x1
Давно я тут
****

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

Сообщений: 381


« Ответ #1263 : 16.12.2016, 16:40:15 »

gf 1.0.1 + AcyMailing Starter 5.5.0 + Joomla! 3.6.5

Сделал себе, может кому понадобится: заносим из формы ФИО и мыло (если такие данные конечно присутствуют в форме) в рассылочную базу подписчиков AcyMailing.
В файле components\com_quickform\quickform.php ищем самую последнюю строку и делаем 2 вставки, перед этой строкой и после неё:
Код:
$jAp->redirect($link, $msg, $msgtype);

1) перед этой строкой вставляем:
Код:
// AcyMailing
//echo $mailHtml;

$newmailHtml =  $mailHtml;
$newmailHtmltd = "<td>";
$newmailHtml = str_replace ($newmailHtmltd,"|", str_replace ( "</td>","|",  $newmailHtml));


//  Массив возможных названий полей фамилий в анкете
$newusersurnamesearch = "Sur Name|Sur name|Surname|surname|Фамилия|Прізвище|ФИО|Ф.И.О|ФИО плательщика";
$newusersurnamearray = explode ( "|", $newusersurnamesearch);

foreach($newusersurnamearray as $usersn) {
    $u = strpos ( $newmailHtml,$usersn);
    $uu = strpos ( $newmailHtml,$usersn." ");
    if (($u > 0) and ($uu == 0)) {
        $newusersurname = substr($newmailHtml,$u);
        $newusersurname = substr($newusersurname,strpos ($newusersurname, "|") + 1);
        $newusersurname = substr($newusersurname,0,strpos($newusersurname, "|"));
        echo "Фамилия: ". $newusersurname. "<br/>";
        break;
    }
}

// Массив возможных названий полей имен в анкете
$newusernamesearch = "First Name|First name|Имя|Имя, отчество|Ім'я|Ім'я (по батькові)|Ім'я, по батькові";
$newusernamearray = explode ( "|", $newusernamesearch);

foreach($newusernamearray as $useri) {
    $u = strpos ( $newmailHtml,$useri);
    $uu = strpos ( $newmailHtml,$useri." ");
     if (($u > 0) and ($uu == 0)) {
        $newusername = substr ($newmailHtml,$u);
        $newusername = substr ($newusername,strpos ( $newusername, "|") + 1);
        $newusername = substr($newusername,0,strpos ( $newusername, "|"));
        echo "Имя: ". $newusername. "<br/>";
        break;
    }
}

// Массив возможных названий полей отчеств в анкете
$newuserpatronymicsearch = "Patronymic|Отчество|По батькові";
$newuserpatronymicarray = explode ( "|", $newuserpatronymicsearch);

foreach($newuserpatronymicarray as $userp) {
    $u = strpos ( $newmailHtml,$userp);
    $uu = strpos ( $newmailHtml,$userp." ");
     if (($u > 0) and ($uu == 0)) {
        $newuserpatronymic = substr ($newmailHtml,$u);
        $newuserpatronymic = substr ($newuserpatronymic,strpos ( $newuserpatronymic, "|") + 1);
        $newuserpatronymic = substr($newuserpatronymic,0,strpos ( $newuserpatronymic, "|"));
        echo "Отчество: ". $newuserpatronymic. "<br/>";
        break;
    }
}

// Получаем ФИО из формы
$newusersname = $newusersurname. " ". $newusername. " ". $newuserpatronymic;
//die;

// Массив возможных названий полей email в анкете
$newuserfonesearch = "Ваш email|Ваш e-mail|Email|email|E-mail|e-mail|";
$newuserfonearray = explode ( "|", $newuserfonesearch);

foreach($newuserfonearray as $userm) {
    $u = strpos ( $newmailHtml,$userm);
    $uu = strpos ( $newmailHtml,$userm." ");
    if (($u > 0) and ($uu == 0)) {
        $newusersemail = substr ($newmailHtml,$u);
        $newusersemail = substr ($newusersemail,strpos ( $newusersemail, "|") + 1);
        $newusersemail = substr($newusersemail,0,strpos ( $newusersemail, "|"));
        echo "E-mail: ". $newusersemail. "<br/>";
        break;
    }
}

// Формируем данные для записи в базу AcyMailing
$newusersname = "'". strip_tags ( $newusersname). "'";
$newuserskey = "'". quickform_generateKey(14). "'";
$newuserssource = "'"."module_96"."'";
$newusersdate = "'". round(gettimeofday(true))."'";
$newusersip = "'".$qfCheck->getip()."'";
$newusersemail = "'". strip_tags($newusersemail). "'";

//echo "Подписчик: ". $newusersname." ". $newusersemail;
//die;

$query = $db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('#__acymailing_subscriber'));
$query->where($db->quoteName('email')." = "."'".$post['email'][0]."'");
$db->setQuery($query);
$newuser = $db->loadObjectList();

// Если email в базе AcyMailing отсутствует, добавляем нового подписчика
if (empty($newuser)) {

    // добавляем подписчика в базу
    $db->setQuery(" INSERT INTO `#__acymailing_subscriber` (`email`,`name`,`created`,`ip`,`source`,`key`) VALUES  ($newusersemail,$newusersname,$newusersdate,$newusersip,$newuserssource,$newuserskey)");
    $db->query();

    // Получаем данные о новом подписчике
    $query = $db->getQuery(true);
    $query->select('*');
    $query->from($db->quoteName('#__acymailing_subscriber'));
    $query->where($db->quoteName('email')." = ".$newusersemail);
    $db->setQuery($query);
    $newuser = $db->loadRow();

    if (!empty($newuser)) {

        // listID рассылки из _acymailing_list, на которую будет подписан подписчик
        $newuserslistid =  "2";
        //$newuserslistid = "'".$newuserslistid."'" ;
        $newuserssubid =  "'".$newuser[0]."'";
        $newuserstatus = "1";
        //echo $newuserssubid;
        //die;

        // Подписываем на рассылку
        $db->setQuery(" INSERT INTO `#__acymailing_listsub` (`listid`,`subid`,`subdate`,`status`) VALUES  ($newuserslistid,$newuserssubid,$newusersdate,$newuserstatus)");
        $db->query();

    }
}
2) а после неё вставляем:
Код:
function quickform_generateKey($length){
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randstring = '';
$max = strlen($characters) - 1;
for($i = 0; $i < $length; $i++){
$randstring .= $characters[mt_rand(0, $max)];
}
return $randstring;
}

Срабатывать будет на определенные заголовки полей в форме, дополните своими, если надо...:

$newusersurnamesearch = "sur name|фамилия|прізвище|ФИО|Ф.И.О";
$newusernamesearch = "first name|имя|имя, отчество|ім'я|ім'я (по батькові)|ім'я, по батькові";
$newuserpatronymicsearch = "patronymic|отчество|по батькові";

ID рассылки берется из _acymailing_list:
$newuserslistid =  "2";

Все конечно через заднюю калитку, но полезно.
« Последнее редактирование: 22.12.2016, 15:06:52 от x1 » Записан
kassilukraine
Осваиваюсь на форуме
***

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

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



« Ответ #1264 : 26.12.2016, 13:07:19 »

Это старая тема. Новая тут http://joomlaforum.ru/index.php/topic,330126.0.html


Быстрый и удобный компонент форм для Joomla с функцией калькулятора.

http://juice-lab.ru/dev/components/3-quickform

Краткий help http://joomlaforum.ru/index.php/topic,228015.msg1369044.html#msg1369044

Новая версия для Joomla 3
http://joomlaforum.ru/index.php/topic,228015.msg1659682.html#msg1659682

Как вывести на сайт статистику отправленных форм. Это вообще реально ?
Записан
varX
Живу я здесь
******

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

Сообщений: 1529


разработка компонентов


« Ответ #1265 : 27.12.2016, 01:19:35 »

Как вывести на сайт статистику отправленных форм. Это вообще реально ?

Если у вас что-то есть, то оно уже реально. Я ведь вывел статистику в админку, значит и вы сможете.
Записан
kassilukraine
Осваиваюсь на форуме
***

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

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



« Ответ #1266 : 27.12.2016, 13:10:37 »

Если у вас что-то есть, то оно уже реально. Я ведь вывел статистику в админку, значит и вы сможете.
Весь вопрос в  том   что именно  отвечает за статистику?
Потому  что я  там увидел и обращение к  базе  данных, перелопатил содержимое, но видимо я что то упускаю (
Вы все-таки программист который создал такой чудесный инструмент, а я  всего лишь его модифицирую (
Может быть вы сможете подсказать ?
Записан
varX
Живу я здесь
******

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

Сообщений: 1529


разработка компонентов


« Ответ #1267 : 27.12.2016, 17:15:39 »

А что тут подсказывать? Все отправления лежат в #__quickform_ps.

В этой версии компонента статистика представляет из себя простой снимок HTML с письма пользователя. Если нужно разложить ее по параметрам, используйте регулярные выражения, у меня такой необходимости не было. Но в QF2 уже другой подход,  там статистика - это строка json данных, с которой удобно работать и легко читать.
Записан
kassilukraine
Осваиваюсь на форуме
***

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

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



« Ответ #1268 : 28.12.2016, 15:01:40 »

А что тут подсказывать? Все отправления лежат в #__quickform_ps.

В этой версии компонента статистика представляет из себя простой снимок HTML с письма пользователя. Если нужно разложить ее по параметрам, используйте регулярные выражения, у меня такой необходимости не было. Но в QF2 уже другой подход,  там статистика - это строка json данных, с которой удобно работать и легко читать.
Под статистикой  я имел ввиду только количество (цифры) отправленных форм, не более.
И способ вывода этой информации на странице сайта.
Записан
varX
Живу я здесь
******

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

Сообщений: 1529


разработка компонентов


« Ответ #1269 : 28.12.2016, 17:28:09 »

Под статистикой  я имел ввиду только количество (цифры) отправленных форм, не более.
И способ вывода этой информации на странице сайта.
Чтобы определить количество записей в таблице MySQL, нужно воспользоваться специальной функцией COUNT(). Функция COUNT() возвращает количество записей в таблице, соответствующих заданному критерию.
Для вывода информации на странице сайта, можно использовать echo, пример:
Код
echo "Привет мир!";
Записан
monkjust
Осваиваюсь на форуме
***

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

Сообщений: 61


« Ответ #1270 : 16.01.2017, 12:23:52 »

РЕШЕНИЕ:
1. Скачать папку компонента.
administrator/components/com_quickform

2. Во всех файлах сделать замену строчки
JHtml::_('behavior.formvalidator');

на JHtml::_('behavior.formvalidation');

Может пригодиться кому.
Записан
sergei_yak
Новичок
*

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

Сообщений: 1


« Ответ #1271 : 04.03.2017, 19:15:27 »

добрый день.
извините. если немного не в тему...
ищу модуль, где из выпадающего списка городов, клиент выберет два и между ними будет рассчитана доставка.
доставка зависит не только от городов. но и от веса*объема*груза...
также по чекбоксам возможны доп услуги, которые тоже должны падать в доставку.
Подскажите, пожалуйста, каким простым и бесплатным расширением можно воспользоваться?
Нужен некий калькулятор, где к селектам можно привязать формулы...

облегчение задачи в том. что доставка рассчитывается всегда из одного и того-же города, те арифметические расчеты совсем уж простые.

ПС Joomla 3x
« Последнее редактирование: 04.03.2017, 19:29:25 от sergei_yak » Записан
Страниц: 1 ... 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 [43]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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