<?php 
 
/** 
 * Plugin.php - Plugin interface 
 * 
 * Generic interface for all Jaxon plugins. 
 * 
 * @package jaxon-core 
 * @author Jared White 
 * @author J. Max Wilson 
 * @author Joseph Woolley 
 * @author Steffen Konerow 
 * @author Thierry Feuzeu <[email protected]> 
 * @copyright Copyright (c) 2005-2007 by Jared White & J. Max Wilson 
 * @copyright Copyright (c) 2008-2010 by Joseph Woolley, Steffen Konerow, Jared White  & J. Max Wilson 
 * @copyright 2016 Thierry Feuzeu <[email protected]> 
 * @license https://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License 
 * @link https://github.com/jaxon-php/jaxon-core 
 */ 
 
namespace Jaxon\Plugin; 
 
abstract class Plugin implements Code\Contracts\Generator 
{ 
    use \Jaxon\Features\Config; 
 
    /** 
     * Check if the assets of this plugin shall be included in Jaxon generated code. 
     * 
     * @return boolean 
     */ 
    protected function includeAssets() 
    { 
        $sPluginOptionName = 'assets.include.' . $this->getName(); 
        if($this->hasOption($sPluginOptionName) && !$this->getOption($sPluginOptionName)) 
        { 
            return false; 
        } 
        if($this->hasOption('assets.include.all') && !$this->getOption('assets.include.all')) 
        { 
            return false; 
        } 
        return true; 
    } 
 
    /** 
     * Get a unique name to identify the plugin. 
     * 
     * @return string 
     */ 
    abstract public function getName(); 
 
    /** 
     * @inheritDoc 
     */ 
    public final function readyEnabled() 
    { 
        // For plugins, the getReadyScript() is always included in the generated code. 
        return true; 
    } 
 
    /** 
     * @inheritDoc 
     */ 
    public function readyInlined() 
    { 
        // For plugins, the getReadyScript() can be exported to external files. 
        return false; 
    } 
 
    /** 
     * @inheritDoc 
     */ 
    public function getHash() 
    { 
        return ''; 
    } 
 
    /** 
     * @inheritDoc 
     */ 
    public function getCss() 
    { 
        return ''; 
    } 
 
    /** 
     * @inheritDoc 
     */ 
    public function getJs() 
    { 
        return ''; 
    } 
 
    /** 
     * @inheritDoc 
     */ 
    public function getScript() 
    { 
        return ''; 
    } 
 
    /** 
     * @inheritDoc 
     */ 
    public function getReadyScript() 
    { 
        return ''; 
    } 
} 
 
 |