Форум находится в режиме только для чтения.
Связывание форм - форма отправки 1c данными из формы 2
- hush
-
Автор темы
- Не в сети
- Живу я здесь
-
Less
Больше
- Сообщений: 201
- Спасибо получено: 2
14 года 5 мес. назад - 14 года 5 мес. назад #2592
от hush
hush создал тему: Связывание форм - форма отправки 1c данными из формы 2
Добрый вечер!
продолжаю знакомство с себлодом
итак, есть расписание событий с поиском по полям. Теперь нужно добавить в расписание ссылку "Заявка на участие",
которая ведет в отдельную форму. Эта ссылка будет в каждом событии, поэтому в форме заявки должна быть инфа, относящаяся именно
к этому, уникальному событию.
Вот событие (на данный момент):
Вот форма (на данный момент):
Вопрос 1:
Как сделать, чтобы значения из контента события добавлялась в форму заявки автоматически (дата, место проведения, ведущий и т.п.)? Пробовал через Live (Default), но там значение нужно подставлять вручную.
Вопрос 2:
Как сделать так, чтобы форма заявки отправляла письмо на e-mail, указанный в событии (организатору события), и не отправляла ее в админку?
я примерно понимаю, что есть поле e-mail, но как оно работает - не догоняю.
Спасибо.
п.с.
еще вот заголовок собтия - вместо названия показывает цифры (дата) - какое поле нужно добавить, чтобы заголовок отображался с названием события?
продолжаю знакомство с себлодом
итак, есть расписание событий с поиском по полям. Теперь нужно добавить в расписание ссылку "Заявка на участие",
которая ведет в отдельную форму. Эта ссылка будет в каждом событии, поэтому в форме заявки должна быть инфа, относящаяся именно
к этому, уникальному событию.
Вот событие (на данный момент):
Вот форма (на данный момент):
Вопрос 1:
Как сделать, чтобы значения из контента события добавлялась в форму заявки автоматически (дата, место проведения, ведущий и т.п.)? Пробовал через Live (Default), но там значение нужно подставлять вручную.
Вопрос 2:
Как сделать так, чтобы форма заявки отправляла письмо на e-mail, указанный в событии (организатору события), и не отправляла ее в админку?
я примерно понимаю, что есть поле e-mail, но как оно работает - не догоняю.
Спасибо.
п.с.
еще вот заголовок собтия - вместо названия показывает цифры (дата) - какое поле нужно добавить, чтобы заголовок отображался с названием события?
Последнее редактирование: 14 года 5 мес. назад пользователем hush. Причина: коррекция
- Wedal
-
- Не в сети
- Администратор
-
Less
Больше
- Сообщений: 2879
- Спасибо получено: 659
14 года 5 мес. назад #2593
от Wedal
Wedal ответил в теме Re: Связывание форм - форма отправки 1c данными из формы 2
hush,
Ответ 1:
Здесь сложно. Как только вы уйдете с этой страницы(на форму), с ее данными вас уже ничего не будет связывать. Я вижу решение так: Добавьте форму через модуль прямо на страницу события. Ну и, если необходимо, скройте под кнопкой с помощью JavaScript. Типы контента события и формы заявки должны иметь поля, не закрытые друг от друга(я имею ввиду замочек), в этом случае вы сможете использовать одно в другом. Далее плавно переходим к ответу 2...
Ответ 2:
Да, нужно использовать специальное поле. Его настройки здесь описывать не буду, т.к. долго, но разобраться там не так сложно. В комментариях к одной из статей по SEBLOD уже писали немного про настройки этого поля - посмотрите.
Так вот. В этом поле можно создать шаблон формы письма, включая в него любые из доступных полей типа контента, которому принадлежит это поле. Т.к. замочек у вас будет открыт, то скорее всего получится передать в письмо данные события.
P.S. Чтобы отображался заголовок нужно добавить Article Title.
Ответ 1:
Здесь сложно. Как только вы уйдете с этой страницы(на форму), с ее данными вас уже ничего не будет связывать. Я вижу решение так: Добавьте форму через модуль прямо на страницу события. Ну и, если необходимо, скройте под кнопкой с помощью JavaScript. Типы контента события и формы заявки должны иметь поля, не закрытые друг от друга(я имею ввиду замочек), в этом случае вы сможете использовать одно в другом. Далее плавно переходим к ответу 2...
Ответ 2:
Да, нужно использовать специальное поле. Его настройки здесь описывать не буду, т.к. долго, но разобраться там не так сложно. В комментариях к одной из статей по SEBLOD уже писали немного про настройки этого поля - посмотрите.
Так вот. В этом поле можно создать шаблон формы письма, включая в него любые из доступных полей типа контента, которому принадлежит это поле. Т.к. замочек у вас будет открыт, то скорее всего получится передать в письмо данные события.
P.S. Чтобы отображался заголовок нужно добавить Article Title.
Спасибо сказали: hush
- hush
-
Автор темы
- Не в сети
- Живу я здесь
-
Less
Больше
- Сообщений: 201
- Спасибо получено: 2
14 года 5 мес. назад - 14 года 5 мес. назад #2596
от hush
hush ответил в теме Re: Связывание форм - форма отправки 1c данными из формы 2
Wedal, спасибо, логика ясна.
для меня пока самое простое - начать с поля e-mail
Поразбирался - вроде действительно несложно. Делаю на локале, поэтому протестировать не могу.
хочу понять - правильно ли я понял назначение полей в этом поле.
сама форма:
Construction
Левый столбец:
1. from (default/ e-mail/ field) - с этим непонятно (если от кого - зачем справа дублируется From (E-mail / Field)?)
2. Subject - тема письма, приходящего на е-мейл?
3. Message и Message (Field) - поля и их содержание в теле письма?
4. Attachment (Field) - прикрепленные файлы в теле письма?
Правый столбец:
5. Send E-mail - непонятно назначение поля и значения значений в выпадающем списке (пардон за тафталогию).
И зачем справа еще поле?
6. From (E-mail / Field)- тоже, что и From (1) - непонятно?
7. To - список емейлов, на которые будет приходить письмо?
8. To (Field) - список полей е-мейлов, на которые будет приходить письмо?
(Т.е. если эта форма - поле е-мейл организатора, то в To (Field) я могу подставить название этого поля, и организатору придет письмо?
(на рисунке оранжевым цветом)
9. To (Administrators) - это понятно
Хочется как-то раз уж разобраться с этим полем, поэтому столь подробно.
Спасибо
для меня пока самое простое - начать с поля e-mail
Поразбирался - вроде действительно несложно. Делаю на локале, поэтому протестировать не могу.
хочу понять - правильно ли я понял назначение полей в этом поле.
сама форма:
Construction
Левый столбец:
1. from (default/ e-mail/ field) - с этим непонятно (если от кого - зачем справа дублируется From (E-mail / Field)?)
2. Subject - тема письма, приходящего на е-мейл?
3. Message и Message (Field) - поля и их содержание в теле письма?
4. Attachment (Field) - прикрепленные файлы в теле письма?
Правый столбец:
5. Send E-mail - непонятно назначение поля и значения значений в выпадающем списке (пардон за тафталогию).
И зачем справа еще поле?
6. From (E-mail / Field)- тоже, что и From (1) - непонятно?
7. To - список емейлов, на которые будет приходить письмо?
8. To (Field) - список полей е-мейлов, на которые будет приходить письмо?
(Т.е. если эта форма - поле е-мейл организатора, то в To (Field) я могу подставить название этого поля, и организатору придет письмо?
(на рисунке оранжевым цветом)
9. To (Administrators) - это понятно
Хочется как-то раз уж разобраться с этим полем, поэтому столь подробно.
Спасибо
Последнее редактирование: 14 года 5 мес. назад пользователем hush.
- Wedal
-
- Не в сети
- Администратор
-
Less
Больше
- Сообщений: 2879
- Спасибо получено: 659
14 года 5 мес. назад - 14 года 5 мес. назад #2599
от Wedal
Wedal ответил в теме Re: Связывание форм - форма отправки 1c данными из формы 2
hush,
1. Слева мы выбираем что подставлять в имя отправителя: email, заданный вручную или данные, взятые из какого-то поля. Справа мы вводим либо этот email, либо название поля с данными.
2. Да.
3. Да.
4. Поле файла, который будет прикреплен.
5. Здесь выбираем, когда отправлять email: никогда, при отправке формы, при редактировании формы, всегда.
6. Объяснил в п.1.
7. Да.
8. Да. В п.7 Email вписывается вручную. Здесь автоматически из указанного поля. Оба поля заполнять не обязательно. Достаточно заполнить одно из них.
1. Слева мы выбираем что подставлять в имя отправителя: email, заданный вручную или данные, взятые из какого-то поля. Справа мы вводим либо этот email, либо название поля с данными.
2. Да.
3. Да.
4. Поле файла, который будет прикреплен.
5. Здесь выбираем, когда отправлять email: никогда, при отправке формы, при редактировании формы, всегда.
6. Объяснил в п.1.
7. Да.
8. Да. В п.7 Email вписывается вручную. Здесь автоматически из указанного поля. Оба поля заполнять не обязательно. Достаточно заполнить одно из них.
Последнее редактирование: 14 года 5 мес. назад пользователем Wedal.
- hush
-
Автор темы
- Не в сети
- Живу я здесь
-
Less
Больше
- Сообщений: 201
- Спасибо получено: 2
14 года 5 мес. назад #2601
от hush
hush ответил в теме Re: Связывание форм - форма отправки 1c данными из формы 2
Спасибо!
с наступающим!
с наступающим!
- athree
-
- Не в сети
- Осваиваюсь на форуме
-
Less
Больше
- Сообщений: 22
- Спасибо получено: 4
14 года 5 мес. назад - 14 года 5 мес. назад #2607
от athree
athree ответил в теме Re: Связывание форм - форма отправки 1c данными из формы 2
С наступающим!
Работаю над той же проблемой. Кажется, нашел правильный путь, но возникло неожиданное препятствие.
Форма заказа должна выводиться в модуле в "родительском" типе_контента - иначе никак. Но получать поля из "родителя" - настоящая проблема. Использование разомкнутого замочка ровным счетом ничего не дает - все-таки это два совершенно разных типа_контента, никак физически не связанных. Ну, или, я чего-то не допонял...
А вот дальше самое интересное. Направление я подсмотрел на оф. форуме SEBLOD - там по такому принципу делалась система комментариев, там тоже была необходимость связывать два разных типа_контента. Нужно обращаться напрямую к БД, ведь все эти значения родительского типа_контента там уже хранятся, только нужно узнать их ID. Замочек должен быть замкнут - данные должны быть в чистом виде в отдельной таблице, ибо как "выдирать" их из тегов в столбце introtext я даже не догадываюсь.
В форме заказа создаем скрытое поле Core-42 (оно позволяет использовать произвольный PHP код). Во второй секции настроек поля (кнопочка [2]) прописываем Live: "Url-Var(Int)", Live Value: "id". Таким образом, поле Core-42 получает ID материала, созданного в "родительском" типе_контента. Круто? Идем дальше.
В настройках самого поля Core-42 в секции PrepareStore прописываем примерно следующий код:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('email');
$query->from('#__cck_store_form_companion');
$query->where('id='.$value);
$db->setQuery($query);
$value = $db->loadResult();
email - столбец со значением, которое необходимо получить из "родителя"
_cck_store_form_companion - название таблицы "родителя" без префикса
'id=' - это часть запроса, выборка по ID
$value - это переменная, которая вначале подставляет Live Value (наш ID) в код, а затем выводит в виде результата полученное значение "родителя". Результат выполнения этого кода - поля Core-42 получает нужное значение "родителя".
Создаем столько полей Core-42, сколько нужно получать значений полей из "родителя". Все присовокупляем к отправляемому E-mail. Вуаля.
Правда, есть один облом
Может, я где ошибся, ибо мои знания PHP почти нулевые, делал все методом тыка. Однако у меня получалось получать результат - поля из "родителя". Правда потом я потер свой "полигон для испытаний", установил свежую Joomla, проделал все действия абсолютно идентично, и... не работает. Вываливается ошибка при отправки заказа
Fatal error: Call to a member function renderField() on a non-object in Z:\home\joomla17\www\plugins\cck_field\42\42.php(181) : eval()'d code on line 1
Может, кто подскажет, почему не робит? Здесь какая-то внешняя причина...
Работаю над той же проблемой. Кажется, нашел правильный путь, но возникло неожиданное препятствие.
Форма заказа должна выводиться в модуле в "родительском" типе_контента - иначе никак. Но получать поля из "родителя" - настоящая проблема. Использование разомкнутого замочка ровным счетом ничего не дает - все-таки это два совершенно разных типа_контента, никак физически не связанных. Ну, или, я чего-то не допонял...
А вот дальше самое интересное. Направление я подсмотрел на оф. форуме SEBLOD - там по такому принципу делалась система комментариев, там тоже была необходимость связывать два разных типа_контента. Нужно обращаться напрямую к БД, ведь все эти значения родительского типа_контента там уже хранятся, только нужно узнать их ID. Замочек должен быть замкнут - данные должны быть в чистом виде в отдельной таблице, ибо как "выдирать" их из тегов в столбце introtext я даже не догадываюсь.
В форме заказа создаем скрытое поле Core-42 (оно позволяет использовать произвольный PHP код). Во второй секции настроек поля (кнопочка [2]) прописываем Live: "Url-Var(Int)", Live Value: "id". Таким образом, поле Core-42 получает ID материала, созданного в "родительском" типе_контента. Круто? Идем дальше.
В настройках самого поля Core-42 в секции PrepareStore прописываем примерно следующий код:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('email');
$query->from('#__cck_store_form_companion');
$query->where('id='.$value);
$db->setQuery($query);
$value = $db->loadResult();
email - столбец со значением, которое необходимо получить из "родителя"
_cck_store_form_companion - название таблицы "родителя" без префикса
'id=' - это часть запроса, выборка по ID
$value - это переменная, которая вначале подставляет Live Value (наш ID) в код, а затем выводит в виде результата полученное значение "родителя". Результат выполнения этого кода - поля Core-42 получает нужное значение "родителя".
Создаем столько полей Core-42, сколько нужно получать значений полей из "родителя". Все присовокупляем к отправляемому E-mail. Вуаля.
Правда, есть один облом
Fatal error: Call to a member function renderField() on a non-object in Z:\home\joomla17\www\plugins\cck_field\42\42.php(181) : eval()'d code on line 1
Может, кто подскажет, почему не робит? Здесь какая-то внешняя причина...
Последнее редактирование: 14 года 5 мес. назад пользователем athree.
- Wedal
-
- Не в сети
- Администратор
-
Less
Больше
- Сообщений: 2879
- Спасибо получено: 659
14 года 5 мес. назад #2609
от Wedal
Wedal ответил в теме Re: Связывание форм - форма отправки 1c данными из формы 2
athree, выполните ваш php-код в каком-нибудь другом месте Joomla, более простом. Например в модуле Joomla, позволяющем это делать(по умолчанию такового нет), или в компоненте, или в шаблоне SEBLOD или Joomla.
Функция eval(), на которую указывает ошибка, занимается тем, что пытается выполнить то, что вы написали в настройках поля Core-42, как php-код. Возможно, в этот код вкралась ошибка. Чтобы явно ее увидеть, нужно явно исполнить этот код где-либо.
А вообще, если используйте такой подход, почему бы не воспользоваться полем Dynamic Select? Он позволяет конструировать SQL-запросы, также передавая в них значение.
Функция eval(), на которую указывает ошибка, занимается тем, что пытается выполнить то, что вы написали в настройках поля Core-42, как php-код. Возможно, в этот код вкралась ошибка. Чтобы явно ее увидеть, нужно явно исполнить этот код где-либо.
А вообще, если используйте такой подход, почему бы не воспользоваться полем Dynamic Select? Он позволяет конструировать SQL-запросы, также передавая в них значение.
- athree
-
- Не в сети
- Осваиваюсь на форуме
-
Less
Больше
- Сообщений: 22
- Спасибо получено: 4
14 года 5 мес. назад - 14 года 5 мес. назад #2611
от athree
athree ответил в теме Re: Связывание форм - форма отправки 1c данными из формы 2
Wedal, Select-Dynamic в данном контексте бессмыслен. Если ему придать LiveValue = ID текущей статьи, он действительно выберет нужное значение из БД, но... Вернет не это значение, а тот же самый ID, ибо Options Value = id. Кроме того, в запрос нельзя подставлять переменные: Where: id=$value, да и выведет он в таком случае первым значением в списке бесполезное мне "Select an option".
А вот код в Core-42:
Сам по себе работает, если перед ним прописать $value2 = '13' (заранее известный ID). В получении значений из БД проблем нет, проблема есть в подставлении в этот код текущего ID.
По идее такой код:
должен получать значении из некоего скрытого поля с LiveValue = id, но вот он как раз не работает. Не в Core-42, не в шаблоне. Однако в документации SEBLOD такой код приведен! Более того, он у меня УЖЕ работал, на старом "полигоне". Из чего делаю вывод, что что-то поломалось в самом SEBLOD. На оф. форуме, кажется, кто-то сталкивался с той же проблемой, и решил ее... сменой шаблона SEBLOD. Что-то в самом шаблоне препятствует выполнению такого кода. Но вот что? Если, конечно, дело именно в этом...
А вот код в Core-42:
Code:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('email');
$query->from('#__cck_store_form_companion');
$query->where('id='.$value2); //СЮДА ПОДСТАВЛЯЕМ ID
$db->setQuery($query);
$value = $db->loadResult();
По идее такой код:
Code:
$value2 = $cck->renderField('fieldName');
Последнее редактирование: 14 года 5 мес. назад пользователем athree.
- greenmar
-
- Не в сети
- Осваиваюсь на форуме
-
Less
Больше
- Сообщений: 13
- Спасибо получено: 0
13 года 11 мес. назад #3894
от greenmar
greenmar ответил в теме Re: Связывание форм - форма отправки 1c данными из формы 2
Может имеет смысл попробовать упрощенный шаблон для решения задачи -
wedal.ru/forum/SEBLOD/2610-SHABLON-Seb_Simple-prostoj-shablon-dlja-Seblod-2.html
Авось поможет. Отпишите плиз, по результатам. Просто я тоже планирую делать подобную вещь, но пока только присматриваюсь к тому что пишут люди.
Авось поможет. Отпишите плиз, по результатам. Просто я тоже планирую делать подобную вещь, но пока только присматриваюсь к тому что пишут люди.
- greenmar
-
- Не в сети
- Осваиваюсь на форуме
-
Less
Больше
- Сообщений: 13
- Спасибо получено: 0
13 года 11 мес. назад #3898
от greenmar
greenmar ответил в теме Re: Связывание форм - форма отправки 1c данными из формы 2
Ой, что-то я сразу не обратил внимание, последнее сообщение полгода назад написано... А всё же интересно чем вся история закончилась
- seblod.pro
-
- Не в сети
- Новый участник
-
Less
Больше
- Сообщений: 1
- Спасибо получено: 0
13 года 6 мес. назад #4488
от seblod.pro
seblod.pro ответил в теме Re: Связывание форм - форма отправки 1c данными из формы 2
C позволения Wedal размещу ссылку на видео, которое я недавно записал.
Собственно, решение поставленной в теме задачи с помощью плагина SD Live CCK Field.
Собственно, решение поставленной в теме задачи с помощью плагина SD Live CCK Field.
- manja
- Не в сети
- Новый участник
-
Less
Больше
- Сообщений: 1
- Спасибо получено: 0
12 года 9 мес. назад #5892
от manja
manja ответил в теме Re: Связывание форм - форма отправки 1c данными из формы 2
Здесь сложно. Как только вы уйдете с этой страницы(на форму), с ее данными вас уже ничего не будет связывать. Я вижу решение так: Добавьте форму через модуль прямо на страницу события. Ну и, если необходимо, скройте под кнопкой с помощью JavaScript. Типы контента события и формы заявки должны иметь поля, не закрытые друг от друга(я имею ввиду замочек), в этом случае вы сможете использовать одно в другом. Далее плавно переходим к ответу 2...
такая же задачка, можно по подробнее как "скройте под кнопкой с помощью JavaScript"
такая же задачка, можно по подробнее как "скройте под кнопкой с помощью JavaScript"