%PDF- %PDF-
Direktori : /home1/lightco1/public_html/plugins/system/baforms/ |
Current File : //home1/lightco1/public_html/plugins/system/baforms/baforms.php |
<?php /** * @package BaForms * @author Balbooa http://www.balbooa.com/ * @copyright Copyright @ Balbooa * @license http://www.gnu.org/licenses/gpl.html GNU/GPL */ defined('_JEXEC') or die; jimport( 'joomla.plugin.plugin' ); jimport('joomla.filesystem.folder'); class plgSystemBaforms extends JPlugin { /** * Constructor. * * @access protected * @param object $subject The object to observe * @param array $config An array that holds the plugin configuration * @since 1.0 */ public function __construct( &$subject, $config ) { $doc = JFactory::getDocument(); if ($doc->getType() != 'html') { return; } parent::__construct( $subject, $config ); } function onAfterInitialise() { $app = JFactory::getApplication(); if ($app->isSite()) { $path = JPATH_ROOT . '/components/com_baforms/helpers/baforms.php'; $dir = $this->checkOverride(); if ($dir) { $path = $dir; } JLoader::register('baformsHelper', $path); } } public function checkOverride() { $db = JFactory::getDBO(); $query = $db->getQuery(true); $query->select('template') ->from('#__template_styles') ->where('`client_id`=0') ->where('`home`=1'); $db->setQuery($query); $template = $db->loadResult(); $path = JPATH_ROOT. '/templates/' .$template. '/html/com_baforms'; if (JFolder::exists($path)) { if (JFolder::exists($path. '/helpers')) { $file = JFolder::files($path. '/helpers', 'baforms.php'); if (!empty($file)) { return $path. '/helpers/baforms.php'; } else { return false; } } else { return false; } } else { return false; } } function onBeforeCompileHead() { $app = JFactory::getApplication(); if ($app->isSite()) { $loaded = JLoader::getClassList(); if (isset($loaded['baformshelper'])) { $a_id = $app->input->get('a_id'); if (empty($a_id)) { baformsHelper::addStyle(); } } } } function onAfterRender() { $app = JFactory::getApplication(); $a_id = $app->input->get('a_id'); if ($app->isSite() && empty($a_id)) { $loaded = JLoader::getClassList(); if (isset($loaded['baformshelper'])) { $html = JResponse::getBody(); $html = $this->getContent($html); JResponse::setBody($html); } } } function getContent($body) { $regex = '/\[forms ID=+(.*?)\]/i'; preg_match_all($regex, $body, $matches, PREG_SET_ORDER); if ($matches) { foreach ($matches as $index => $match) { $form = explode(',', $match[1]); $formId = $form[0]; if (isset($formId)) { if (baformsHelper::checkForm($formId)) { $doc = JFactory::getDocument(); $form = baformsHelper::drawHTMLPage($formId); if (!array_key_exists(JURI::root() . 'components/com_baforms/assets/js/ba-form.js', $doc->_scripts)) { $form = $this->drawScripts($formId).$form; } $body = @preg_replace("|\[forms ID=".$formId."\]|", addcslashes($form, '\\$'), $body, 1); } } } } return $body; } public function drawScripts($id) { $doc = JFactory::getDocument(); $scripts = $doc->_scripts; $array = array(); $map = true; foreach ($scripts as $key=>$script) { if (strpos($key, 'maps.googleapis.com/maps/api/js')) { $map = false; } $key = explode('/', $key); $array[] = end($key); } $html = ''; if (!in_array('jquery.min.js', $array) && !in_array('jquery.js', $array)) { $html .= '<script type="text/javascript" src="' .JUri::root(true). '/media/jui/js/jquery.min.js"></script>'; } if (!in_array('bootstrap.min.js', $array) && !in_array('bootstrap.js', $array)) { $html .= '<script type="text/javascript" src="' .JUri::root(true) . '/media/jui/js/bootstrap.min.js"></script>'; } $captcha = baformsHelper::getCaptcha($id); if ($captcha != '0') { $captch = JCaptcha::getInstance($captcha); $captch->initialise($captcha); } $elements = baformsHelper::getElement($id); foreach ($elements as $element) { $element = explode('_-_', $element->settings); if ($element[2] == 'map') { if ($map) { $html .= '<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js"></script>'; } } if ($element[2] == 'date') { $html .= '<script type="text/javascript" src="'.JUri::root(true) . '/media/system/js/calendar.js"></script>'; $html .= '<script type="text/javascript" src="'.JUri::root(true) . '/media/system/js/calendar-setup.js"></script>'; $html .= '<link rel="stylesheet" href="' .JUri::root(true) . '/media/system/css/calendar-jos.css">'; } if ($element[2] == 'slider') { $html .= '<script type="text/javascript" src="'.JUri::root() . 'components/com_baforms/libraries/bootstrap-slider/bootstrap-slider.js"></script>'; } } $html .= '<script type="text/javascript" src="' .JUri::root() . 'components/com_baforms/libraries/modal/ba_modal.js"></script>'; $html .= '<link rel="stylesheet" href="' .JURI::root() . 'components/com_baforms/assets/css/ba-style.css">'; $html .= '<script type="text/javascript" src="' .JURI::root() . 'components/com_baforms/assets/js/ba-form.js"></script>'; return $html; } }