Новости Joomla

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

TW-WEB

  • Новичок
  • 6
  • 0 / 0
Добрый день! В данный момент используем компонент SP Page Builder. В данном расширении есть аддон под названием AJAX contact, который мы активно используем в формах на странице. Требуется добавить в модальное окно форму с этим аддоном.

Модальное окно:
Код
	<div id="myModal" class="modal fade">
  <div class="modal-dialog">
<div class="modal-content">
  <!-- Заголовок модального окна -->
  <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Форма обратной связи</h4>
  </div>
  <!-- Основное содержимое модального окна -->
  <div class="modal-body">

  </div>

  <!-- Футер модального окна -->
  <div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
  </div>
</div>
  </div>
</div>

Сам аддон (site.php)

Код
<?php
/**
 * @package SP Page Builder
 * @author JoomShaper http://www.joomshaper.com
 * [member=126442]copyright[/member] Copyright (c) 2010 - 2015 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
*/
//no direct accees
defined ('_JEXEC') or die ('restricted aceess');

AddonParser::addAddon('sp_ajax_contact','sp_ajax_contact_addon');

function sp_ajax_contact_addon($atts){

extract(spAddonAtts(array(
"title" => '',
"heading_selector" => 'h3',
"title_fontsize" => '',
"title_fontweight" => '',
"title_text_color" => '',
"title_margin_top" => '',
"title_margin_bottom" => '',
"recipient_email" => 'email@yourdomain.com',
"formcaptcha" => '',
"captcha_question" => '',
"captcha_answer" => '',
"class" => '',
), $atts));

$output  = '<div class="sppb-addon sppb-addon-ajax-contact ' . $class . '">';

if($title) {

$title_style = '';
if($title_margin_top !='') $title_style .= 'margin-top:' . (int) $title_margin_top . 'px;';
if($title_margin_bottom !='') $title_style .= 'margin-bottom:' . (int) $title_margin_bottom . 'px;';
if($title_text_color) $title_style .= 'color:' . $title_text_color  . ';';
if($title_fontsize) $title_style .= 'font-size:'.$title_fontsize.'px;line-height:'.$title_fontsize.'px;';
if($title_fontweight) $title_style .= 'font-weight:'.$title_fontweight.';';

$output .= '<'.$heading_selector.' class="sppb-addon-title" style="' . $title_style . '">' . $title . '</'.$heading_selector.'>';
}

$output .= '<div class="sppb-addon-content">';
$output .= '<form class="sppb-ajaxt-contact-form">';

$output .= '<div class="sppb-form-group">';
$output .= '<input type="text" name="name" style="width: 310px;margin: 0 auto;"  class="sppb-form-control" placeholder="Имя"'. JText::_('COM_SPPAGEBUILDER_ADDON_AJAX_CONTACT_NAME').'" required="required">';
$output .= '</div>';

$output .= '<div class="sppb-form-group">';
$output .= '<input type="text" name="subject" style="width: 310px;margin: 0 auto;"  class="sppb-form-control" placeholder="Номер"'. JText::_('COM_SPPAGEBUILDER_ADDON_AJAX_CONTACT_SUBJECT').'" required="required">';
$output .= '</div>';

if($formcaptcha) {
$output .= '<div class="sppb-form-group">';
$output .= '<input type="text" name="captcha_question" class="sppb-form-control" placeholder="'. $captcha_question .'" required="required">';
$output .= '</div>';
}


$output .= '<input type="hidden" name="recipient" value="'. base64_encode($recipient_email).'">';

if($formcaptcha) {
$output .= '<input type="hidden" name="captcha_answer" value="'. md5($captcha_answer).'">';
}

$output .= '<button type="submit" class="sppb-btn sppb-btn-success"><i class="fa"></i> '. JText::_('Отправить').'</button>';

$output .= '</form>';

$output .= '<div style="display:none;margin-top:10px;" class="sppb-ajax-contact-status"></div>';

$output .= '</div>';

$output .= '</div>';

return $output;

}


function sp_ajax_contact_get_ajax() {
$input  = JFactory::getApplication()->input;
$mail = JFactory::getMailer();

$showcaptcha = false;

//inputs
$inputs = $input->get('data', array(), 'ARRAY');

foreach ($inputs as $input) {

if( $input['name'] == 'recipient' ) {
$recipient = base64_decode($input['value']);
}

if( $input['name'] == 'email' ) {
$email = $input['value'];
}

if( $input['name'] == 'name' ) {
$name = $input['value'];
}

if( $input['name'] == 'subject' ) {
$subject = $input['value'];
}

if( $input['name'] == 'message' ) {
$message = nl2br( $input['value'] );
}

if( $input['name'] == 'captcha_question' ) {
$captcha_question = $input['value'];
$showcaptcha = true;
}

if( $input['name'] == 'captcha_answer' ) {
$captcha_answer = $input['value'];
$showcaptcha = true;
}
}

if($showcaptcha) {
if ( md5($captcha_question)!= $captcha_answer ) {
return '<span class="sppb-text-danger">'. JText::_('COM_SPPAGEBUILDER_ADDON_AJAX_CONTACT_WRONG_CAPTCHA').'</span>';
}
}

$emai_body = 'Имя: ' . $name . '<br />';
$emai_body .= 'Номер: ' . $subject . '<br />';
$emai_body .= 'Cообщение: ' . $message . '<br />';
$sender = array($email, $name);
if (!empty($from_email)) {
$sender = array($from_email, $from_name);
$mail->addReplyTo($email, $name);
}
$mail->setSender($sender);
$mail->addRecipient($recipient);
$mail->setSubject($subject);
$mail->isHTML(true);
$mail->Encoding = 'base64';
$mail->setBody($emai_body);

if ($mail->Send()) {
return '<span class="sppb-text-success">'. JText::_('COM_SPPAGEBUILDER_ADDON_AJAX_CONTACT_SUCCESS').'</span>';
} else {
return '<span class="sppb-text-danger">'. JText::_('COM_SPPAGEBUILDER_ADDON_AJAX_CONTACT_FAILED').'</span>';
}

}
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Сделать код аддона как HTML модуль, опубликовать на невидимой позиции, по клику на кнопку показывать его как инлайн элемент - не?
Просто не знаю что такое SP Page Builder и зачем он вообще нужен, так то делается элементарно нативными инструментами
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

TW-WEB

  • Новичок
  • 6
  • 0 / 0
Цитировать
Сделать код аддона как HTML модуль, опубликовать на невидимой позиции, по клику на кнопку показывать его как инлайн элемент - не?[/size]Просто не знаю что такое SP Page Builder и зачем он вообще нужен, так то делается элементарно нативными инструментами

Как я понимаю - site.php - это обработчик и сама форма в одном.
SP Page Builder это что-то типо конструктора элементов с определенным набором аддонов, в котором как раз-таки и есть эта форма) Можно в одном месте сконструировать разметку и добавить необходимые элементы (как стандартные, так и самописанные)
Буду очень благодарен, если прокурируете процесс действий
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модернизировать модуль

Автор kurz

Ответов: 4
Просмотров: 326
Последний ответ 13.09.2022, 15:35:31
от kurz
sp page builder contact form

Автор AzaTT

Ответов: 4
Просмотров: 344
Последний ответ 04.07.2022, 11:09:23
от AzaTT
SP Page Builder - ajax Contact

Автор TW-WEB

Ответов: 4
Просмотров: 2426
Последний ответ 29.01.2019, 15:47:53
от Akeksandr
Как выполнить 2 разных скрипта в одном ajax-запросе?

Автор fbr

Ответов: 16
Просмотров: 1296
Последний ответ 02.03.2018, 00:08:04
от robert
Improved AJAX Login & Register + социальные кнопки

Автор atkaa1

Ответов: 12
Просмотров: 3185
Последний ответ 07.10.2017, 18:02:29
от vipiusss