%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home1/lightco1/public_html/plugins/system/baforms/
Upload File :
Create Path :
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; 
    }
}

Zerion Mini Shell 1.0