Доработка: вывод item.Title в форму RSForm pro

  • 4 Ответов
  • 2072 Просмотров

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

Добрый день, друзья верстальщики и вэбмастера!

Часто читаю этот форум и постоянно нахожу тут полезные решения.

И вот первый раз пишу с вопросом, поскольку он касается работы с php, а я в этом не силен.

Суть вопроса: нашел решение по выводу названия материала К2 в форму заказа RSForm Pro, которая реализована через JCE mediabox.
Решение получилось применить вот такое: http://joomlaforum.ru/index.php/topic,148897.msg811624.html#msg811624
Данные: Joomla 3.2.0+K2 v2.6.7+RSForm Pro+JCE mediabox
Описание:
1. в материале К2 есть ссылка на форму заказа
<a class="jcepopup" type="iframe" rel="width[700];height[500]" href="index.php?option=com_rsform&amp;view=rsform&amp;formId=1;tmpl=component;&name=<?php echo $pageTitle ?>" target="_blank">Получить КП на e-mail</a>
2. Название материала выводится в через скрипт:
<script type="text/javascript">
function get_title(){
var HF = document.getElementById("Tech");
HF.value = document.title;
}</script>
3. заполнение поля Tech производится путем нажатия Sumbit, через функцию onclick="get_title()"
Проблема: при заполнении поля название берется из $pageTitle - в котором у меня при помощи sh404SEF добавлены SEO данные и получается название материала К2+SEO текст ("Станок вертикально-сверлильный 2С132 купить станки, цена, описание, заказать)


Вопрос: как изменить код, чтобы название материала К2 бралось из <meta property="og:title" content=" "> либо из breadcrumbs, в которых в обоих название материала стоит без SEO текста, либо другие варианты откуда взять название материала. Так же необходимо заполнять без нажатия на Sumbit, т.е. при загрузке формы в модальном окне (т.е. автоматически, как только пользователь нажмет кнопку Получить КП на странице товара).

Идеальное решение для меня: при нажатии на кнопку появляется форма в которой уже стоит название товара и остается только ввести почту и телефон, чтобы получить цену и предложение на этот товар.

Жду помощи, друзья!

Fedor Vlasenko, где же вы? Это по вашей компетенции вопрос - помогите!
« Последнее редактирование: 06.12.2013, 18:29:54 от poz1tive »

*

Оффлайн Fedor Vlasenko

  • ********
  • 3799
  • [+]704 / [-]6
  • Все начинается с Value
    • Просмотр профиля
    • Создание сайтов, поддержка сайтов
Можно так брать с заголовка h1
Код: (php-brief) [Выделить]
<script type="text/javascript">
function get_title(){
var HF = document.getElementById("Tech");
HF.value = document.getElementsByTagName('h1')[0].innerHTML;
 //jQuery('h1').text();
}</script>

Можно так брать с заголовка h1
Код: (php-brief) [Выделить]
<script type="text/javascript">
function get_title(){
var HF = document.getElementById("Tech");
HF.value = document.getElementsByTagName('h1')[0].innerHTML;
 //jQuery('h1').text();
}</script>

не работает...

Решил сам:
в Properties RSFormPro в поле Java script вставлен код:
<script type="text/javascript">
window.onload = function get_title(){
var HF = document.getElementById("Tech");
HF.value = parent.document.getElementsByTagName('h1')[0].innerHTML;
}</script>

Теперь при нажатии на ссылку на странице товара, открывается форма, в которой заполнено поле по тегу H1, в котором содержится корректное название товара.

Может кому пригодится.

Всем добра :)


Решил сам:
в Properties RSFormPro в поле Java script вставлен код:
<script type="text/javascript">
window.onload = function get_title(){
var HF = document.getElementById("Tech");
HF.value = parent.document.getElementsByTagName('h1')[0].innerHTML;
}</script>

Теперь при нажатии на ссылку на странице товара, открывается форма, в которой заполнено поле по тегу H1, в котором содержится корректное название товара.

Может кому пригодится.

Всем добра :)


в данном случае по ссылке в принципе можно ничего не отправлять - он просто берет значение h1 из страницы.
Я немного по-другому решил схожую проблему, в моем случае модальное окно необязательно.
Создал пользовательский модуль, подключив расширение php_module, ибо Joomla режет код при сохранении. Можно выбрать любое другое, главное чтобы код не обрезало. Прописал модулю позицию, чтобы можно было вызвать в материале добавлением {loadposition module_name}
В этот модуль вставил:
<?php 
$db 
JFactory::getDBO();
$articleid JRequest::getInt('id');
$db->setQuery('SELECT title FROM 'table_name'_k2_items WHERE id='.$articleid);
$item_title=$db->loadResult();

?>

<a class="jcepopup" type="iframe" rel="width[700];height[500]" href="index.php?option=com_rsform&amp;view=rsform&amp;formId=6;tmpl=component;&title=<?php echo $item_title?>" target="_blank">Нажми меня</a>
Где formId - id вашей формы, a 'table_name' префикс вашей таблицы в БД. А в нужное мне поле RSForm вставил следующее:
//<code>
return $_REQUEST['title'];
//</code>
 
В принципе, таким образом можно передать любое значение, какое пожелаете и получить его в RSForm. Properties RSForm можно оставить пустым и модальное окно в ссылке необязательно.
Не знаю, может этот способ в чем-то плох - я еще новичок и ненастоящий программист, но мучился с этим полутора суток, даже вот решил написать и зарегистрировался на этом сайте.
Всем добра!
« Последнее редактирование: 06.04.2015, 23:48:52 от Vivaldi »