<?php
/**
* @author JoomWorker
* @email info@joomla.work
* @url http://www.joomla.work
* @copyright Copyright (c) 2010 - 2019 JoomWorker
* @license GNU General Public License version 2 or later
* @date 2019/01/01 09:30
*/
//no direct accees
defined('_JEXEC') or die ('restricted access');
class JwpagefactoryAddonOptin_form extends JwpagefactoryAddons
{
public function render()
{
$settings = $this->addon->settings;
// get pageid
$input = JFactory::getApplication()->input;
$page_id = $input->get('id', 0, 'INT');
$class = (isset($settings->class) && $settings->class) ? $settings->class : '';
$title = (isset($settings->title) && $settings->title) ? $settings->title : '';
$heading_selector = (isset($settings->heading_selector) && $settings->heading_selector) ? $settings->heading_selector : 'h3';
$content = (isset($settings->content) && $settings->content) ? $settings->content : '';
$grid = (isset($settings->grid) && $settings->grid) ? $settings->grid : '';
$media_type = (isset($settings->media_type) && $settings->media_type) ? $settings->media_type : '';
$image = (isset($settings->image) && $settings->image) ? $settings->image : '';
$alt_text = (isset($settings->alt_text) && $settings->alt_text) ? $settings->alt_text : '';
$icon_name = (isset($settings->icon_name) && $settings->icon_name) ? $settings->icon_name : '';
$media_position = (isset($settings->media_position) && $settings->media_position) ? $settings->media_position : 'top';
$form_inline = (isset($settings->form_inline) && $settings->form_inline) ? $settings->form_inline : '';
$alignment = (isset($settings->alignment) && $settings->alignment) ? $settings->alignment : '';
$submit_btn_inside = (isset($settings->submit_btn_inside) && $settings->submit_btn_inside) ? $settings->submit_btn_inside : '';
// Addon Options
$show_checkbox = (isset($settings->show_checkbox)) ? $settings->show_checkbox : 0;
$recaptcha = (isset($settings->recaptcha)) ? $settings->recaptcha : 0;
$checkbox_title = (isset($settings->checkbox_title) && $settings->checkbox_title) ? $settings->checkbox_title : '';
$platform = (isset($settings->platform) && $settings->platform) ? $settings->platform : 'mailchimp';
$hide_name = (isset($settings->hide_name)) ? $settings->hide_name : 0;
$mailchimp_api = (isset($settings->mailchimp_api) && $settings->mailchimp_api) ? $settings->mailchimp_api : '';
$sendgrid_api = (isset($settings->sendgrid_api) && $settings->sendgrid_api) ? $settings->sendgrid_api : '';
$sendinblue_api = (isset($settings->sendinblue_api) && $settings->sendinblue_api) ? $settings->sendinblue_api : '';
$madmimi_api = (isset($settings->madmimi_api) && $settings->madmimi_api) ? $settings->madmimi_api : '';
$optin_type = (isset($settings->optin_type) && $settings->optin_type) ? $settings->optin_type : 'normal';
$button_text = JText::_('COM_JWPAGEFACTORY_ADDON_OPTIN_FORM_SUBCSCRIBE');
$use_custom_button = (isset($settings->use_custom_button) && $settings->use_custom_button) ? $settings->use_custom_button : 0;
$button_position = (isset($settings->button_position) && $settings->button_position) ? $settings->button_position : '';
$button_class = (isset($settings->button_type) && $settings->button_type) ? ' jwpf-btn-' . $settings->button_type : ' jwpf-btn-success';
$button_text = (isset($settings->button_text) && $settings->button_text) ? $settings->button_text : '';
if ($use_custom_button) {
$button_class .= (isset($settings->button_size) && $settings->button_size) ? ' jwpf-btn-' . $settings->button_size : '';
$button_class .= (isset($settings->button_shape) && $settings->button_shape) ? ' jwpf-btn-' . $settings->button_shape : ' jwpf-btn-rounded';
$button_class .= (isset($settings->button_appearance) && $settings->button_appearance) ? ' jwpf-btn-' . $settings->button_appearance : '';
$button_class .= (isset($settings->button_block) && $settings->button_block) ? ' ' . $settings->button_block : '';
$button_class .= ' jwpf-btn-custom';
$button_icon = (isset($settings->button_icon) && $settings->button_icon) ? $settings->button_icon : '';
$button_icon_position = (isset($settings->button_icon_position) && $settings->button_icon_position) ? $settings->button_icon_position : 'left';
if ($button_icon_position == 'left') {
$button_text = ($button_icon) ? '<i class="fa ' . $button_icon . '"></i> ' . $button_text : $button_text;
} else {
$button_text = ($button_icon) ? $button_text . ' <i class="fa ' . $button_icon . '"></i>' : $button_text;
}
}
$output = '';
// if cURL has't loaded or available in the server
if (!extension_loaded('curl')) {
$output .= '<div class="jwpf-addon jwpf-addon-optin-forms jwpf-alert jwpf-alert-warning">';
$output .= '<p>' . JTEXT::_('COM_JWPAGEFACTORY_GLOBAL_CURL_NOT_AVAILABLE') . '</p>';
$output .= '</div>';
return $output;
}
// if selected platform hasn't api key inserted
if (($platform == 'mailchimp' && $mailchimp_api == '') || ($platform == 'sendgrid' && $sendgrid_api == '') || ($platform == 'sendinblue' && $sendinblue_api == '') || ($platform == 'madmimi' && $madmimi_api == '')) {
$output .= '<div class="jwpf-addon jwpf-addon-optin-forms jwpf-alert jwpf-alert-warning">';
$output .= '<p>' . JTEXT::_('COM_JWPAGEFACTORY_ADDON_OPTIN_FORM_EMPTY_API') . ' ' . $platform . '.</p>';
$output .= '</div>';
return $output;
} elseif ($platform == 'acymailing') {
$acymailing_helper = rtrim(JPATH_ADMINISTRATOR, '/') . '/components/com_acymailing/helpers/helper.php';
if (!file_exists($acymailing_helper)) {
// if acymailing isn't installed
$output .= '<div class="jwpf-addon jwpf-addon-optin-forms jwpf-alert jwpf-alert-warning">';
$output .= '<p>' . JTEXT::_('COM_JWPAGEFACTORY_ADDON_OPTIN_PLATFORM_ACYMAILING_NOT_INSTALLED') . '</p>';
$output .= '</div>';
return $output;
} else {
require_once $acymailing_helper;
}
}
$info_wrap = '';
$form_wrap = '';
$raw_wrap = '';
switch ($grid) {
case '6-6':
$raw_wrap = 'has-grid';
$info_wrap = 'jwpf-col-sm-6';
$form_wrap = 'jwpf-col-sm-6';
break;
case '5-7':
$raw_wrap = 'has-grid';
$info_wrap = 'jwpf-col-sm-5';
$form_wrap = 'jwpf-col-sm-7';
break;
case '8-4':
$raw_wrap = 'has-grid';
$info_wrap = 'jwpf-col-sm-8';
$form_wrap = 'jwpf-col-sm-4';
break;
case '2-10':
$raw_wrap = 'has-grid';
$info_wrap = 'jwpf-col-sm-2';
$form_wrap = 'jwpf-col-sm-10';
break;
default:
$info_wrap = 'jwpf-col-sm-12';
$form_wrap = 'jwpf-col-sm-12';
break;
}
$output .= '<div class="jwpf-addon jwpf-addon-optin-forms optintype-' . $optin_type . ' ' . $class . ' ' . $alignment . ' grid' . $grid . '">';
$media = '';
$media_class = '';
if ($media_type == 'img') {
$media_class .= ' jwpf-optin-form-img';
if ($image) {
$media .= '<img class="jwpf-img-responsive" src="' . $image . '" alt="' . $alt_text . '">';
}
} else {
$media_class .= ' jwpf-optin-form-icon';
if ($icon_name) {
$media .= '<i class="fa ' . $icon_name . '"></i>';
}
}
if ($grid == 'ws-4-4-4') {
$output .= '<div class="jwpf-row justify-content-center">';
$output .= '<div class="jwpf-col-sm-4">';
} elseif ($grid == 'ws-2-8-2') {
$output .= '<div class="jwpf-row justify-content-center">';
$output .= '<div class="jwpf-col-sm-8">';
} elseif ($grid == 'ws-3-6-3') {
$output .= '<div class="jwpf-row justify-content-center">';
$output .= '<div class="jwpf-col-sm-6">';
}
$output .= '<div class="jwpf-optin-form-box jwpf-row ' . $raw_wrap . '">';
$output .= '<div class="jwpf-optin-form-info-wrap media-position-' . $media_position . ' ' . $info_wrap . '">';
$output .= '<div class="jwpf-optin-form-img-wrap ' . $media_class . '">' . $media . '</div>';
if (isset($title) || isset($content)) {
$output .= '<div class="jwpf-optin-form-details-wrap">';
}
if