init files
Dieser Commit ist enthalten in:
		
							Ursprung
							
								
									b4fc73b332
								
							
						
					
					
						Commit
						05632001a3
					
				
					 6 geänderte Dateien mit 359 neuen und 0 gelöschten Zeilen
				
			
		
							
								
								
									
										19
									
								
								cl_plugin.xml
									
										
									
									
									
										Normale Datei
									
								
							
							
						
						
									
										19
									
								
								cl_plugin.xml
									
										
									
									
									
										Normale Datei
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<plugin>
 | 
			
		||||
    <general active="1">
 | 
			
		||||
        <plugin_name>Smarty Wrapper</plugin_name>
 | 
			
		||||
        <plugin_foldername>smarty</plugin_foldername>
 | 
			
		||||
        <uuid>7071C44D-3B6F-5503-8C01-38B9A6A88E71</uuid>
 | 
			
		||||
        <description>Enhance Backend and Frontend of ConLite with Smarty Template Engine</description>
 | 
			
		||||
        <author>Ortwin Pinke</author>
 | 
			
		||||
        <copyright>(c) 2017 Ortwin Pinke, PHP-Backoffice.de</copyright>
 | 
			
		||||
        <mail>info@php-backoffice.de</mail>
 | 
			
		||||
        <website>http://php-backoffice.de</website>
 | 
			
		||||
        <version>1.0.2</version>
 | 
			
		||||
        <license>GNU Lesser General Public License</license>
 | 
			
		||||
    </general>
 | 
			
		||||
    <requirements php="5.4">
 | 
			
		||||
        <conlite minversion="2.0.2" />
 | 
			
		||||
    </requirements>
 | 
			
		||||
    <conlite />
 | 
			
		||||
</plugin>
 | 
			
		||||
							
								
								
									
										47
									
								
								classes/class.smarty.backend.php
									
										
									
									
									
										Normale Datei
									
								
							
							
						
						
									
										47
									
								
								classes/class.smarty.backend.php
									
										
									
									
									
										Normale Datei
									
								
							| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
<?php
 | 
			
		||||
/**
 | 
			
		||||
 * This file contains the backend class for smarty wrapper plugin.
 | 
			
		||||
 *
 | 
			
		||||
 * @package Plugin
 | 
			
		||||
 * @subpackage SmartyWrapper
 | 
			
		||||
 * @version $Rev: 128 $
 | 
			
		||||
 * @since 2.0.2
 | 
			
		||||
 * @author Ortwin Pinke <o.pinke@conlite.org>
 | 
			
		||||
 * @copyright (c) 2018, conlite.org
 | 
			
		||||
 * @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version)
 | 
			
		||||
 * @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version)
 | 
			
		||||
 * @link http://www.conlite.org ConLite.org
 | 
			
		||||
 * 
 | 
			
		||||
 * $Id: class.smarty.backend.php 128 2019-07-03 11:58:28Z oldperl $
 | 
			
		||||
 */
 | 
			
		||||
/**
 | 
			
		||||
 * @package Plugin
 | 
			
		||||
 * @subpackage SmartyWrapper
 | 
			
		||||
 * @author Andreas Dieter
 | 
			
		||||
 * @copyright four for business AG <www.4fb.de>
 | 
			
		||||
 */
 | 
			
		||||
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Wrapper class for Integration of smarty.
 | 
			
		||||
 *
 | 
			
		||||
 * @package Plugin
 | 
			
		||||
 * @subpackage SmartyWrapper
 | 
			
		||||
 */
 | 
			
		||||
class cSmartyBackend extends cSmartyFrontend {
 | 
			
		||||
 | 
			
		||||
    public function __construct(&$aCfg, &$aClientCfg, $bSanityCheck = false) {
 | 
			
		||||
        parent::__construct($aCfg, $aClientCfg, false);
 | 
			
		||||
 | 
			
		||||
        parent::$aDefaultPaths = array(
 | 
			
		||||
            'template_dir' => $aCfg['path']['contenido'] . 'plugins/smarty_templates/',
 | 
			
		||||
            'cache_dir' => $aCfg['path']['conlite_cache'],
 | 
			
		||||
            'compile_dir' => $aCfg['path']['conlite_cache'] . 'templates_c/'
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        parent::$bSmartyInstanciated = true;
 | 
			
		||||
 | 
			
		||||
        $this->resetPaths();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										158
									
								
								classes/class.smarty.frontend.php
									
										
									
									
									
										Normale Datei
									
								
							
							
						
						
									
										158
									
								
								classes/class.smarty.frontend.php
									
										
									
									
									
										Normale Datei
									
								
							| 
						 | 
				
			
			@ -0,0 +1,158 @@
 | 
			
		|||
<?php
 | 
			
		||||
/**
 | 
			
		||||
 * This file contains the frontend class for smarty wrapper plugin.
 | 
			
		||||
 *
 | 
			
		||||
 * @package Plugin
 | 
			
		||||
 * @subpackage SmartyWrapper
 | 
			
		||||
 * @version $Rev: 128 $
 | 
			
		||||
 * @since 2.0.2
 | 
			
		||||
 * @author Ortwin Pinke <o.pinke@conlite.org>
 | 
			
		||||
 * @copyright (c) 2018, conlite.org
 | 
			
		||||
 * @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version)
 | 
			
		||||
 * @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version)
 | 
			
		||||
 * @link http://www.conlite.org ConLite.org
 | 
			
		||||
 * 
 | 
			
		||||
 * $Id: class.smarty.frontend.php 128 2019-07-03 11:58:28Z oldperl $
 | 
			
		||||
 */
 | 
			
		||||
/**
 | 
			
		||||
 * This file contains the frontend class for smarty wrapper plugin.
 | 
			
		||||
 *
 | 
			
		||||
 * @package Plugin
 | 
			
		||||
 * @subpackage SmartyWrapper
 | 
			
		||||
 * @author Andreas Dieter
 | 
			
		||||
 * @copyright four for business AG <www.4fb.de>
 | 
			
		||||
 */
 | 
			
		||||
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Wrapper class for Integration of smarty.
 | 
			
		||||
 *
 | 
			
		||||
 * @package Plugin
 | 
			
		||||
 * @subpackage SmartyWrapper
 | 
			
		||||
 */
 | 
			
		||||
class cSmartyFrontend {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The smarty Object
 | 
			
		||||
     *
 | 
			
		||||
     * @var Smarty
 | 
			
		||||
     */
 | 
			
		||||
    protected static $oSmarty;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * static flag to simulate singleton behaviour
 | 
			
		||||
     *
 | 
			
		||||
     * @var bool
 | 
			
		||||
     */
 | 
			
		||||
    public static $bSmartyInstanciated = false;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * static default paths
 | 
			
		||||
     *
 | 
			
		||||
     * @var array
 | 
			
		||||
     */
 | 
			
		||||
    protected static $aDefaultPaths = array();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * constructor
 | 
			
		||||
     *
 | 
			
		||||
     * @param array &$aCfg contenido cfg array
 | 
			
		||||
     * @param array &$aClientCfg contenido client cfg array of the specific
 | 
			
		||||
     *        client
 | 
			
		||||
     * @throws cException
 | 
			
		||||
     * @throws cInvalidArgumentException if the given configurations are not an
 | 
			
		||||
     *         array
 | 
			
		||||
     */
 | 
			
		||||
    public function __construct(&$aCfg, &$aClientCfg, $bSanityCheck = false) {
 | 
			
		||||
        // check if already instanciated
 | 
			
		||||
        if (isset(self::$bSmartyInstanciated) && self::$bSmartyInstanciated) {
 | 
			
		||||
            throw new Exception("cSmartyFrontend class is intended to be used as singleton. Do not instanciate multiple times.");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!is_array($aCfg)) {
 | 
			
		||||
            throw new Exception(__CLASS__ . " " . __FUNCTION__ . " Parameter 1 invalid.");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!is_array($aClientCfg)) {
 | 
			
		||||
            throw new Exception(__CLASS__ . " " . __FUNCTION__ . " Parameter 2 invalid.");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        self::$oSmarty = new cSmartyWrapper();
 | 
			
		||||
        self::$aDefaultPaths = array(
 | 
			
		||||
            'template_dir' => $aClientCfg['template']['path'],
 | 
			
		||||
            'cache_dir' => $aClientCfg['cache']['path'] . 'templates_c',
 | 
			
		||||
            'compile_dir' => $aClientCfg['cache']['path'] . 'templates_c'
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        // check the template directory and create new one if it not exists
 | 
			
		||||
        if (!is_dir(self::$aDefaultPaths['compile_dir'])) {
 | 
			
		||||
            mkdir(self::$aDefaultPaths['compile_dir'], 0777);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // check if folders exist and rights ok if needed
 | 
			
		||||
        if ($bSanityCheck) {
 | 
			
		||||
            foreach (self::$aDefaultPaths as $key => $value) {
 | 
			
		||||
                if (!file_exists($value)) {
 | 
			
		||||
                    throw new Exception(sprintf("Class %s Error: Folder %s does not exist. Please create.", __CLASS__, $value));
 | 
			
		||||
                }
 | 
			
		||||
                if ($key == 'cache' || $key == 'compile_dir') {
 | 
			
		||||
                    if (!is_writable($value)) {
 | 
			
		||||
                        throw new Exception(sprintf("Class %s Error: Folder %s is not writable. Please check for sufficient rights.", __CLASS__, $value));
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        self::resetPaths();
 | 
			
		||||
        self::$bSmartyInstanciated = true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * prevent users from cloning instance
 | 
			
		||||
     *
 | 
			
		||||
     * @throws cException if this function is called
 | 
			
		||||
     */
 | 
			
		||||
    public function __clone() {
 | 
			
		||||
        throw new Exception("cSmartyFrontend class is intended to be used as singleton. Do not clone.");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * destructor
 | 
			
		||||
     * set cSmarty::bSmartyInstanciated to false
 | 
			
		||||
     */
 | 
			
		||||
    public function __destruct() {
 | 
			
		||||
        self::$bSmartyInstanciated = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * static function to provide the smart object
 | 
			
		||||
     *
 | 
			
		||||
     * @param boolean $bResetTemplate true if the template values shall all be
 | 
			
		||||
     *        resetted
 | 
			
		||||
     * @throws cException if singleton has not been instantiated yet
 | 
			
		||||
     * @return cSmartyWrapper
 | 
			
		||||
     */
 | 
			
		||||
    public static function getInstance($bResetTemplate = false) {
 | 
			
		||||
        if (!isset(self::$oSmarty)) {
 | 
			
		||||
            // @TODO find a smart way to instanciate smarty object on demand
 | 
			
		||||
            throw new Exception("Smarty singleton not instantiated yet.");
 | 
			
		||||
        }
 | 
			
		||||
        if ($bResetTemplate) {
 | 
			
		||||
            self::$oSmarty = new cSmartyWrapper();
 | 
			
		||||
            self::resetPaths();
 | 
			
		||||
        }
 | 
			
		||||
        return self::$oSmarty;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * sets the default paths again
 | 
			
		||||
     */
 | 
			
		||||
    public static function resetPaths() {
 | 
			
		||||
        self::$oSmarty->setTemplateDir(self::$aDefaultPaths['template_dir']);
 | 
			
		||||
        self::$oSmarty->setCacheDir(self::$aDefaultPaths['cache_dir']);
 | 
			
		||||
        self::$oSmarty->setCompileDir(self::$aDefaultPaths['compile_dir']);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										73
									
								
								classes/class.smarty.wrapper.php
									
										
									
									
									
										Normale Datei
									
								
							
							
						
						
									
										73
									
								
								classes/class.smarty.wrapper.php
									
										
									
									
									
										Normale Datei
									
								
							| 
						 | 
				
			
			@ -0,0 +1,73 @@
 | 
			
		|||
<?php
 | 
			
		||||
/**
 | 
			
		||||
 * This file contains the wrapper class for smarty wrapper plugin.
 | 
			
		||||
 * 
 | 
			
		||||
 * @package Plugin
 | 
			
		||||
 * @subpackage SmartyWrapper
 | 
			
		||||
 * @version $Rev: 128 $
 | 
			
		||||
 * @since 2.0.2
 | 
			
		||||
 * @author Ortwin Pinke <o.pinke@conlite.org>
 | 
			
		||||
 * @copyright (c) 2018, conlite.org
 | 
			
		||||
 * @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version)
 | 
			
		||||
 * @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version)
 | 
			
		||||
 * @link http://www.conlite.org ConLite.org
 | 
			
		||||
 * 
 | 
			
		||||
 * $Id: class.smarty.wrapper.php 128 2019-07-03 11:58:28Z oldperl $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @package Plugin
 | 
			
		||||
 * @subpackage SmartyWrapper
 | 
			
		||||
 * @author Andreas Dieter
 | 
			
		||||
 * @copyright four for business AG <www.4fb.de>
 | 
			
		||||
 */
 | 
			
		||||
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
 | 
			
		||||
 | 
			
		||||
class cSmartyWrapper extends Smarty {
 | 
			
		||||
 | 
			
		||||
    public function fetch($template = NULL, $cache_id = NULL, $compile_id = NULL, $parent = NULL, $display = false, $merge_tpl_vars = true, $no_output_filter = false) {
 | 
			
		||||
        /* @todo implement functionality for CL 2.0
 | 
			
		||||
        if ($this->templateExists($template) === false) {
 | 
			
		||||
            $moduleId = (int) cRegistry::getCurrentModuleId();
 | 
			
		||||
            if ($moduleId > 0) {
 | 
			
		||||
                $module = new cModuleHandler($moduleId);
 | 
			
		||||
                $template = $module->getTemplatePath($template);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        */
 | 
			
		||||
        return parent::fetch($template, $cache_id, $compile_id, $parent, $display, $merge_tpl_vars, $no_output_filter);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function fetchGeneral($template = NULL, $cache_id = NULL, $compile_id = NULL, $parent = NULL, $display = false, $merge_tpl_vars = true, $no_output_filter = false) {
 | 
			
		||||
        $template = cRegistry::getFrontendPath() . 'templates/' . $template;
 | 
			
		||||
 | 
			
		||||
        return parent::fetch($template, $cache_id, $compile_id, $parent, $display, $merge_tpl_vars, $no_output_filter);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function display($template = NULL, $cache_id = NULL, $compile_id = NULL, $parent = NULL) {
 | 
			
		||||
        global $frontend_debug;
 | 
			
		||||
 | 
			
		||||
        if ($frontend_debug['template_display']) {
 | 
			
		||||
            echo("<!-- SMARTY TEMPLATE " . $template . " -->");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return parent::display($template, $cache_id, $compile_id, $parent);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function displayGeneral($template = NULL, $cache_id = NULL, $compile_id = NULL, $parent = NULL) {
 | 
			
		||||
        $this->fetchGeneral($template, $cache_id, $compile_id, $parent, true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function clearCache($template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null) {
 | 
			
		||||
        /* @todo implement functionality for CL 2.0
 | 
			
		||||
        if ($this->templateExists($template_name) === false) {
 | 
			
		||||
            $moduleId = (int) cRegistry::getCurrentModuleId();
 | 
			
		||||
            if ($moduleId > 0) {
 | 
			
		||||
                $module = new cModuleHandler($moduleId);
 | 
			
		||||
                $template_name = $module->getTemplatePath($template_name);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        */
 | 
			
		||||
        return parent::clearCache($template_name, $cache_id, $compile_id, $exp_time, $type);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								includes/config.autoloader.php
									
										
									
									
									
										Normale Datei
									
								
							
							
						
						
									
										25
									
								
								includes/config.autoloader.php
									
										
									
									
									
										Normale Datei
									
								
							| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
<?php
 | 
			
		||||
/**
 | 
			
		||||
 * This file contains the autoloader stuff for this plugin
 | 
			
		||||
 *
 | 
			
		||||
 * @package Plugin
 | 
			
		||||
 * @subpackage SmartyWrapper
 | 
			
		||||
 * @version $Rev: 128 $
 | 
			
		||||
 * @since 2.0.2
 | 
			
		||||
 * @author Ortwin Pinke <o.pinke@conlite.org>
 | 
			
		||||
 * @copyright (c) 2018, conlite.org
 | 
			
		||||
 * @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version)
 | 
			
		||||
 * @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version)
 | 
			
		||||
 * @link http://www.conlite.org ConLite.org
 | 
			
		||||
 * 
 | 
			
		||||
 * $Id: config.autoloader.php 128 2019-07-03 11:58:28Z oldperl $
 | 
			
		||||
 */
 | 
			
		||||
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
 | 
			
		||||
 | 
			
		||||
$sAutoloadClassPath = strstr(dirname(dirname(__FILE__)), "conlite/plugins")."/classes/";
 | 
			
		||||
return array(
 | 
			
		||||
    'cSmartyBackend' => $sAutoloadClassPath.'class.smarty.backend.php',
 | 
			
		||||
    'cSmartyFrontend' => $sAutoloadClassPath.'class.smarty.frontend.php',
 | 
			
		||||
    'cSmartyWrapper' => $sAutoloadClassPath.'class.smarty.wrapper.php'
 | 
			
		||||
);
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										37
									
								
								includes/config.plugin.php
									
										
									
									
									
										Normale Datei
									
								
							
							
						
						
									
										37
									
								
								includes/config.plugin.php
									
										
									
									
									
										Normale Datei
									
								
							| 
						 | 
				
			
			@ -0,0 +1,37 @@
 | 
			
		|||
<?php
 | 
			
		||||
/**
 | 
			
		||||
 * This file is the config file for this plugin
 | 
			
		||||
 *
 | 
			
		||||
 * @package Plugin
 | 
			
		||||
 * @subpackage SmartyWrapper
 | 
			
		||||
 * @version $Rev: 128 $
 | 
			
		||||
 * @since 2.0.2
 | 
			
		||||
 * @author Ortwin Pinke <o.pinke@conlite.org>
 | 
			
		||||
 * @copyright (c) 2018, conlite.org
 | 
			
		||||
 * @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version)
 | 
			
		||||
 * @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version)
 | 
			
		||||
 * @link http://www.conlite.org ConLite.org
 | 
			
		||||
 * 
 | 
			
		||||
 * $Id: config.plugin.php 128 2019-07-03 11:58:28Z oldperl $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
 | 
			
		||||
 | 
			
		||||
rereadClients();
 | 
			
		||||
$client = (isset($client)) ? $client : $load_client;
 | 
			
		||||
// Load smarty
 | 
			
		||||
if (!defined('SMARTY_DIR')) {
 | 
			
		||||
    define('SMARTY_DIR', cRegistry::getConfigValue('path', 'conlite') 
 | 
			
		||||
            .  cRegistry::getConfigValue('path', 'plugins')
 | 
			
		||||
            . 'smarty/libs/');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
require_once(SMARTY_DIR . 'Autoloader.php');
 | 
			
		||||
Smarty_Autoloader::register();
 | 
			
		||||
 | 
			
		||||
try {
 | 
			
		||||
    new cSmartyFrontend(cRegistry::getConfig(), cRegistry::getClientConfig(cRegistry::getClientId()), true);
 | 
			
		||||
} catch (Exception $e) {
 | 
			
		||||
    cWarning($e->getFile(), $e->getLine(), $e->getMessage());
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
		Laden …
	
	Tabelle hinzufügen
		
		In neuem Issue referenzieren