Перейти к содержимому


Фотография
- - - - -

RSFORM и ZOO


Лучший Ответ RK3DNP , 03 September 2014 - 18:32

Ура,  решил свою проблему, хоть не много не так думал делать реализовать. Попробую написать инструкцию может кому поможет. Скажу сразу, не могу утверждать, что все верно, главное что работает.

1. В RSForm создаю форму с нужными полями.

2. Создал модуль rsform, модуль главное включить, позицию не указывать.

3. В ZOO в редакторе полей добавляю Joomla Module (указываем модуль RSFORM) и JBZoo Quick View (это будет кнопкой для всплывающего окна)

4. В форму Quick View добавляет нужные поля (name, foto...) будут просто отображаться в заявке. Тут же добавляем и Joomla Module

5. Теперь выводим кнопку для отображения всплывающего окна, добавляем JBZoo Quick View в full и/или teaser.

В принципе все, при нажатии кнопке, появляется всплывающее окна с данными добавленными в Quick View и форма заявки.

Если требуется данные из Item отправить на почту, то требуется эти данные добавить в форму, к примеру в скрытое поле (пока не проверил, но думаю все верно)

Мне нужно было только название передать в форму, почты, поэтому в файле quickview.php добавляю код:

   <script type="text/javascript">
    jQuery(function($){
    $('#test').attr('value', '<?php echo $item->name; ?>');
    });
    </script>

Где #test это ID формы (имя формы, пишется при создании формы)

<input id="test" class="rsform-input-box" type="text" name="form[test]" size="50" value="тесттест">

 

Еще можно использовать Chronoforms, для него создан даже элемент, но мне он не понравился, мне ближе Rsform

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 28

#1 RK3DNP

RK3DNP

Отправлено 19 August 2014 - 18:48

Прошу не пинать сразу, знаю что много тем уже есть на форуме про это, всё просмотрел, но так полностью и не разобрался. Мне надо вывести в принципе только title. Давайте все по шагам.

 

1. Создал нужную форму в RSFORM, его ID=1

2. Вот вроде как код, но куда его вставлять (шаблон zoo или в форме rsform)?

//<code>
$document = & JFactory::getDocument();
return $document->title;
//</code>

3. Косые черты я так понял надо убирать?

4. Это я так понимаю в шаблон zoo ?

    <script>
    jQuery(document).ready(function($) {
    $('#rstitle').val($.trim($('.title').text()));
        });
    </script>

5. Я так понимаю rstitle это название поля в RSFORM ? Какое поле формы использовать и что еще там указывать?


  • 0

#2 Sliapy

Sliapy

Отправлено 19 August 2014 - 21:05

В приведенном в пункте 4 коде. в поле с id rstitle вставляется значение из элемента с классом title.

 

Яваскрипт можно вставлять куда Вам удобнее:

 

1. В шаблон материала, в котором Вы хотите этот код применить. Например, в \media\zoo\applications\jbuniversal\templates\catalog\renderer\item\*псевдоним типа материала*\full.php для полной страницы материала.

 

2. В index.php Вашего шаблона для Joomla.

 

3. В отдельный js-файл.

 

Код и пункта 2 - это php код, который нужен для получения заголовка страницы через API Joomla. Эти 2 кода вообще друг с другом не связаны никак.

 

PS Честно говоря, все эти вопросы немного не по адресу. Здесь все-таки поддержка JBZoo.


  • 1
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]

#3 RK3DNP

RK3DNP

Отправлено 20 August 2014 - 06:04

Да, тут подддержка JBZoo, но судя по колличеству сообщений, эта часто волнующее людей и почему бы один раз не написать мануал?

 

1. В приведенном в пункте 4 коде. в поле с id rstitle вставляется значение из элемента с классом title. - тогда что это за значения и откуда они берутся? Какой элемент, не совсем понятно?

2. То есть, получается указанный код не нужен или это взаимозаменыемые кода, выполняют одну и туже функцию, просто на разных языках?

3. Что еще требуется сделать в rsform и шаблоне JBZOO для вывода title из ZOO ?


Сообщение отредактировал RK3DNP: 20 August 2014 - 06:05

  • 0

#4 Sliapy

Sliapy

Отправлено 20 August 2014 - 10:20

$('*поле куда будет вствлена информация*').val($.trim($('*блок, из которого берется информация*').text()));

Я не знаю, как еще это можно объяснить.

 

Нужна только одна строчка jQuery кода, в которой нужно изменить селекторы под конкретный сайт. Невозможно написать мануал, потому что у каждого они свои.

 

Понимание того, что такое "селектор", "элемент в HTML" - это основы основ, обучение которым не входит в рамки тех.поддержки JBZoo. 


Сообщение отредактировал Sliapy: 20 August 2014 - 10:20

  • 0
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]

#5 sdweb

sdweb

Отправлено 20 August 2014 - 10:28

Вам нужно создать новое поле (можно скрытое) в RS Form и внутри в "Значение по умолчанию" вставить код (данный код будет выводить весь title, а не только JBZoo).

//<code>
$document = & JFactory::getDocument();
return $document->title;
//</code>

Соответственно, Вам нужно так же настроить сам компонент - прописать, какие поля будут передаваться на почту администратора.

 

Тема по RS Form на joomlaforum.ru находится тут.


Сообщение отредактировал sdweb: 20 August 2014 - 10:29

  • 1

#6 RK3DNP

RK3DNP

Отправлено 20 August 2014 - 12:01

Вам нужно создать новое поле (можно скрытое) в RS Form и внутри в "Значение по умолчанию" вставить код (данный код будет выводить весь title, а не только JBZoo).

//<code>
$document = & JFactory::getDocument();
return $document->title;
//</code>

Соответственно, Вам нужно так же настроить сам компонент - прописать, какие поля будут передаваться на почту администратора.

 

Тема по RS Form на joomlaforum.ru находится тут.

Спасибо, из этого получилось вот что:

Если брать форму для ввода текста и туда подсавить код, то на странице отображается в окне ввода текста титл страницы.

Если взять форму скрытого поля, то тогда отображается вот что: // $document = & JFactory::getDocument(); return $document->title; //

Мне на самом деле надо вывести название материала у которого будет нажата кнока Заказать, а все это будет происходить в teaser. Причем желательно во всплывающем окне.


  • 0

#7 i001

i001

Отправлено 23 August 2014 - 06:21

1. В index.php шаблона подключаем (ставим в самый верх)

<?php JHTML::_('behavior.modal'); ?>

2. Создаем форму в rs форм, смотрим ее id (в списке форм в админ панеле, самый правый столбик)

3. В нужное место ставим кнопку, которая будет вызывать всплывающее окно с формой, где 3 - это id нужной формы, {x: 400, y: 400} - размеры формы.

<a href="/component/rsform/form/3-form?tmpl=component&id=<?=$item->id?>" class="modal" rel="{size: {x: 400, y: 400}}">Заказать</a>

4. В rs form делаем инпут который будет выводить тайтл страницы

в значение по умлочанию вставляем

//<code>
$page_content = file_get_contents ($_SERVER['HTTP_REFERER']); 
preg_match_all( "|<title>(.*)</title>|", $page_content, $titles); 
$titles[0][0]=str_replace('<title>','',$titles[0][0]);
$titles[0][0]=str_replace('</title>','',$titles[0][0]);
return $titles[0][0]; 
//</code> 

  • 0

#8 RK3DNP

RK3DNP

Отправлено 25 August 2014 - 18:01

Спасибо за подробную инструкцию, вот что вышло:

Проблема 1. в Firefox открывается только маленькое белое окошко. В ie 11 уже отображается с данными.

Проблема 2. если в текстовом поле вставить код (в значении по умолчанию), то отображается тайтл, но он отображается в окошко и текст можно удалить. Если сделать в скрытом поле, то ничего не отображается. Мне бы вот чтобы отображался текст и его нельзя было изменить.

И еще, время на загрузку окошка выходит около 10 секунд, что мне кажется долго.


  • 0

#9 i001

i001

Отправлено 25 August 2014 - 18:29

1. Попробуйте так

rel="{handler: 'iframe', size: {x: 400, y: 400}}"

2. добавьте инпуту атрибут disabled и его нельзя будет отредактировать

По скорости - никто не мешает ускорить, заменить modal и т.д


  • 0

#10 RK3DNP

RK3DNP

Отправлено 25 August 2014 - 19:17

Да, так лучше. Осталось разобраться с получением картинки и ускорением вывода,а то получается секунд 5-10 пустой квадрат, не очень хорошо.


  • 0




Click to return to top of page in style!