コード例 #1
0
 /**
  * @param $args
  * @param $compiler
  * @return string
  */
 public function compile($args, $compiler)
 {
     $_attr = $this->getAttributes($compiler, $args);
     if (!Enlight_Application::Instance()->Bootstrap()->hasResource('Config')) {
         if (!isset($_attr['default'])) {
             $_attr['default'] = 'null';
         }
         return '<?php echo ' . $_attr['default'] . '; ?>';
     }
     if (!preg_match('/^([\'"]?)[a-zA-Z0-9]+(\\1)$/', $_attr['name'], $match)) {
         $return = $_attr['name'];
         if (isset($_attr['default'])) {
             $return .= ', ' . $_attr['default'];
         }
         if (isset($_attr['namespace'])) {
             return '<?php echo Enlight_Application::Instance()->Config()->getByNamespace(' . $_attr['namespace'] . ', ' . $return . '); ?>';
         }
         return '<?php echo Enlight_Application::Instance()->Config()->get(' . $return . '); ?>';
     }
     $name = substr($_attr['name'], 1, -1);
     if (isset($_attr['namespace'])) {
         $namespace = substr($_attr['namespace'], 1, -1);
         $value = Enlight_Application::Instance()->Config()->getByNamespace($namespace, $name);
     } else {
         $value = Enlight_Application::Instance()->Config()->get($name);
     }
     if ($value !== null) {
         return '<?php echo ' . var_export($value, true) . ';?>';
     }
     if (isset($_attr['default'])) {
         return '<?php echo ' . $_attr['default'] . ';?>';
     }
     return null;
 }
コード例 #2
0
ファイル: compiler.url.php プロジェクト: nvdnkpr/Enlight
 /**
  * @param $args
  * @param $compiler
  * @return string
  */
 public function compile($args, $compiler)
 {
     // check and get attributes
     $_attr = $this->getAttributes($compiler, $args);
     // default 'false' for all option flags not set
     foreach ($_attr as $index => $param) {
         if ($param === false) {
             unset($_attr[$index]);
         } elseif ($param === true) {
             $_attr[$index] = "'1'";
         }
     }
     $params = array();
     foreach ($_attr as $index => $param) {
         if (!preg_match('/^([\'"]?)[a-zA-Z0-9]+(\\1)$/', $param, $match) || !empty($_attr['appendSession'])) {
             $params = '';
             foreach ($_attr as $index => $param) {
                 $params .= var_export($index, true) . ' => ' . $param . ', ';
             }
             return '<?php echo Enlight_Application::Instance()->Front()->Router()->assemble(array(' . $params . ')); ?>';
         }
         $params[$index] = substr($param, 1, -1);
     }
     $url = Enlight_Application::Instance()->Front()->Router()->assemble($params);
     return '<?php echo ' . var_export($url, true) . ';?>';
 }
コード例 #3
0
ファイル: modifier.date.php プロジェクト: nhp/shopware-4
/**
 * Format an given Date to local specific rules.
 *
 * @link http://framework.zend.com/manual/de/zend.date.constants.html
 * @param string $value
 * @param string $format
 * @param string $type
 * @return int|mixed|null|string
 */
function smarty_modifier_date($value, $format = null, $type = null)
{
    if ($value === 'r') {
        $value = $format;
        $format = 'r';
        $type = 'php';
    }
    if (empty($value)) {
        return '';
    }
    if (!empty($format) && is_string($format)) {
        if (defined('Zend_Date::' . strtoupper($format))) {
            $format = constant('Zend_Date::' . strtoupper($format));
        }
    }
    if (!empty($type) && is_string($type)) {
        $type = strtolower($type);
    }
    /** @var Zend_Locale $locale */
    $locale = Enlight_Application::Instance()->Bootstrap()->getResource('locale');
    if (is_string($value)) {
        $value = strtotime($value);
    } elseif ($value instanceof DateTime) {
        /** @var $value DateTime */
        $value = $value->getTimestamp();
    }
    $date = new Zend_Date($value, Zend_Date::TIMESTAMP, $locale);
    $value = $date->toString($format, $type);
    $value = htmlentities($value, ENT_COMPAT, 'UTF-8', false);
    return $value;
}
コード例 #4
0
/**
 * @param $params
 * @param $template
 * @return void
 * @throws Exception
 */
function smarty_function_compileLess($params, $template)
{
    $time = $params['timestamp'];
    $output = $params['output'];
    /**@var $pathResolver \Shopware\Components\Theme\PathResolver*/
    $pathResolver = Shopware()->Container()->get('theme_path_resolver');
    /**@var $shop \Shopware\Models\Shop\Shop*/
    $shop = Shopware()->Container()->get('shop');
    /**@var $settings \Shopware\Models\Theme\Settings*/
    $settings = Shopware()->Container()->get('theme_service')->getSystemConfiguration(\Doctrine\ORM\AbstractQuery::HYDRATE_OBJECT);
    /** @var $front Enlight_Controller_Front */
    $front = Enlight_Application::Instance()->Front();
    $secure = $front->Request()->isSecure();
    $file = $pathResolver->getCssFilePath($shop, $time);
    $url = $pathResolver->formatPathToUrl($file, $shop, $secure);
    if (!$settings->getForceCompile() && file_exists($file)) {
        // see: http://stackoverflow.com/a/9473886
        $template->assign($output, [$url]);
        return;
    }
    /**@var $compiler \Shopware\Components\Theme\Compiler*/
    $compiler = Shopware()->Container()->get('theme_compiler');
    $compiler->compileLess($time, $shop->getTemplate(), $shop);
    $template->assign($output, [$url]);
}
コード例 #5
0
ファイル: modifier.number.php プロジェクト: nvdnkpr/Enlight
/**
 * Returns a number in local specific format.
 *
 * @link http://framework.zend.com/manual/de/zend.locale.parsing.html
 * @param int|float $value
 * @param array     $format
 * @return mixed
 */
function smarty_modifier_number($value, $format = array())
{
    if (empty($format['locale'])) {
        $format['locale'] = Enlight_Application::Instance()->Locale();
    }
    return Zend_Locale_Format::toNumber($value, $format);
}
コード例 #6
0
ファイル: PathTest.php プロジェクト: nvdnkpr/Enlight
 /**
  * App path test case.
  */
 public function testPathsExtends()
 {
     $app = Enlight_Application::Instance();
     $this->assertFileExists($app->Path('Enlight'));
     $this->assertFileExists($app->CorePath('Components'));
     $this->assertFileExists($app->ComponentsPath('Db'));
 }
コード例 #7
0
/**
 * Formats a given decimal value to a local aware currency value
 *
 *
 * @link http://framework.zend.com/manual/de/zend.currency.options.html
 * @param float  $value Value can have a coma as a decimal separator
 * @param array  $config
 * @param string $position where the currency symbol should be displayed
 * @return float|string
 */
function smarty_modifier_currency($value, $config = null, $position = null)
{
    if (!Enlight_Application::Instance()->Bootstrap()->hasResource('Currency')) {
        return $value;
    }
    if (!empty($config) && is_string($config)) {
        $config = strtoupper($config);
        if (defined('Zend_Currency::' . $config)) {
            $config = array('display' => constant('Zend_Currency::' . $config));
        } else {
            $config = array();
        }
    } else {
        $config = array();
    }
    if (!empty($position) && is_string($position)) {
        $position = strtoupper($position);
        if (defined('Zend_Currency::' . $position)) {
            $config['position'] = constant('Zend_Currency::' . $position);
        }
    }
    $currency = Enlight_Application::Instance()->Currency();
    $value = floatval(str_replace(',', '.', $value));
    $value = $currency->toCurrency($value, $config);
    if (function_exists('mb_convert_encoding')) {
        $value = mb_convert_encoding($value, 'HTML-ENTITIES', 'UTF-8');
    }
    $value = htmlentities($value, ENT_COMPAT, 'UTF-8', false);
    return $value;
}
コード例 #8
0
ファイル: BootstrapTest.php プロジェクト: nvdnkpr/Enlight
 /**
  * Test case
  */
 public function testStaticCallException()
 {
     if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
         $this->setExpectedException('Enlight_Exception');
         Enlight_Application::Test();
     }
 }
コード例 #9
0
/**
 * @param $params
 * @param $template
 * @return bool|mixed|string
 */
function smarty_function_flink($params, $template)
{
    $file = $params['file'];
    /** @var $front Enlight_Controller_Front */
    $front = Enlight_Application::Instance()->Front();
    $request = $front->Request();
    // check if we got an URI or a local link
    if (!empty($file) && strpos($file, '/') !== 0 && strpos($file, '://') === false) {
        $useIncludePath = $template->smarty->getUseIncludePath();
        // try to find the file on the filesystem
        foreach ($template->smarty->getTemplateDir() as $dir) {
            if (file_exists($dir . $file)) {
                $file = realpath($dir) . DS . str_replace('/', DS, $file);
                break;
            }
            if ($useIncludePath) {
                if ($dir === '.' . DS) {
                    $dir = '';
                }
                if (($result = Enlight_Loader::isReadable($dir . $file)) !== false) {
                    $file = $result;
                    break;
                }
            }
        }
        if (method_exists(Enlight_Application::Instance(), 'DocPath')) {
            $docPath = Enlight_Application::Instance()->DocPath();
        } else {
            $docPath = getcwd() . DIRECTORY_SEPARATOR;
        }
        // some clean up code
        if (strpos($file, $docPath) === 0) {
            $file = substr($file, strlen($docPath));
        }
        // make sure we have the right separator for the web context
        if (DIRECTORY_SEPARATOR !== '/') {
            $file = str_replace(DIRECTORY_SEPARATOR, '/', $file);
        }
        if (strpos($file, './') === 0) {
            $file = substr($file, 2);
        }
        // if we did not find the file, we are returning a false
        if (strpos($file, '/') !== 0) {
            if (!file_exists($docPath . $file)) {
                //return false;
            }
            if ($request !== null) {
                $file = $request->getBasePath() . '/' . $file;
            }
        }
    }
    if (empty($file) && $request !== null) {
        $file = $request->getBasePath() . '/';
    }
    if ($request !== null && strpos($file, '/') === 0 && !empty($params['fullPath'])) {
        $file = $request->getScheme() . '://' . $request->getHttpHost() . $file;
    }
    return $file;
}
コード例 #10
0
ファイル: function.config.php プロジェクト: nvdnkpr/Enlight
/**
 * Function to get access to the Enlight2 Config system.
 *
 * The params array knows the key
 * - name    : Name of the config parameter which should be requested
 * - default : Default value if the queried config key does not exists
 *
 * @param array  $params
 * @param mixed  $smarty
 * @param string $template
 *
 * @return mixed
 */
function smarty_function_config($params, $smarty, $template)
{
    $config = Enlight_Application::Instance()->Bootstrap()->hasResource('Config');
    if (empty($params['name']) || $config) {
        return null;
    }
    return Enlight_Application::Instance()->Config()->get($params['name'], isset($params['default']) ? $params['default'] : null);
}
コード例 #11
0
ファイル: DefaultTester.php プロジェクト: GerDner/luck-docker
 /**
  * Returns the test database connection.
  *
  * @return PHPUnit_Extensions_Database_DB_IDatabaseConnection
  */
 public function getConnection()
 {
     if ($this->connection === null) {
         $pdo = Enlight_Application::Instance()->Db()->getConnection();
         $this->connection = $this->createDefaultDBConnection($pdo);
     }
     return $this->connection;
 }
コード例 #12
0
ファイル: ConfigTest.php プロジェクト: nvdnkpr/Enlight
 /**
  * Test case.
  */
 public function testSetIncludePaths()
 {
     $app = Enlight_Application::Instance();
     $options = $app->getOptions();
     $options['includepaths'] = $app->Loader()->explodeIncludePath();
     $app->setOptions($options);
     $this->assertNotEmpty(get_include_path());
 }
コード例 #13
0
ファイル: Manager.php プロジェクト: nvdnkpr/Enlight
 /**
  * Constructor can be injected with a read / write adapter object
  *
  * @param Enlight_Components_Cron_Adapter $adapter
  * @param Enlight_Event_EventManager|null $eventManager
  * @return Enlight_Components_Cron_Manager
  */
 public function __construct(Enlight_Components_Cron_Adapter $adapter, Enlight_Event_EventManager $eventManager = null)
 {
     $this->setAdapter($adapter);
     if (is_null($eventManager)) {
         $eventManager = Enlight_Application::Instance()->Events();
     }
     $this->setEventManager($eventManager);
 }
コード例 #14
0
ファイル: ImportExport.php プロジェクト: GerDner/luck-docker
 /**
  * Standard set up for every test - just disable auth
  */
 public function setUp()
 {
     parent::setUp();
     $proxy = Enlight_Application::Instance()->Hooks()->getProxy('Shopware_Controllers_Backend_ImportExport');
     $this->controller = new $proxy(new Enlight_Controller_Request_RequestTestCase(), new Enlight_Controller_Response_ResponseTestCase());
     // disable auth and acl
     Shopware()->Plugins()->Backend()->Auth()->setNoAuth();
     Shopware()->Plugins()->Backend()->Auth()->setNoAcl();
 }
コード例 #15
0
ファイル: Loader.php プロジェクト: ClaudioThomas/shopware-4
 /**
  * Instantiates a plugin from the plugin namespace and adds it to the internal plugins array.
  *
  * @param   string      $name
  * @param   string      $prefix
  * @param   string|null $file
  * @return  Enlight_Plugin_Namespace_Loader
  */
 protected function initPlugin($name, $prefix, $file = null)
 {
     $class = implode('_', array($prefix, $name, 'Bootstrap'));
     if (!class_exists($class, false)) {
         Enlight_Application::Instance()->Loader()->loadClass($class, $file);
     }
     $plugin = new $class($name, $this);
     $this->plugins[$name] = $plugin;
     return $this;
 }
コード例 #16
0
/**
 * Returns the current action's name
 *
 * The params array knows the following keys
 * - name : The name of the action to call
 * - params : optional params array for the specific action call
 *
 * @param                          $params
 * @param Enlight_Template_Default $template
 * @return string
 * @throws Exception
 */
function smarty_function_controllerAction($params, Enlight_Template_Default $template)
{
    /** @var $front Enlight_Controller_Front */
    $front = Enlight_Application::Instance()->Front();
    $request = $front->Request();
    if (empty($request) || !$request instanceof Zend_Controller_Request_Abstract) {
        $e = new Exception('Controller view helper requires a valid request object in the front controller instance');
        throw $e;
    }
    return $request->getActionName();
}
コード例 #17
0
ファイル: Application.php プロジェクト: GerDner/luck-docker
 /**
  * Constructor method
  *
  * @param string $environment
  * @param array $options
  * @param Container $container
  */
 public function __construct($environment, array $options, Container $container)
 {
     $this->container = $container;
     Shopware($this);
     if ($this->oldPath === null) {
         $this->oldPath = realpath(__DIR__ . '/../../') . DIRECTORY_SEPARATOR;
     }
     parent::__construct($environment, $options, $container);
     $container->setBootstrap($this->Bootstrap());
     $container->setApplication($this);
 }
コード例 #18
0
ファイル: Application.php プロジェクト: nhp/shopware-4
    /**
     * Constructor method
     *
     * @param string $environment
     * @param mixed $options
     */
    public function __construct($environment = 'production', $options = null)
    {
        Shopware($this);

        $this->oldPath = dirname(realpath(dirname($this->AppPath()))) . $this->DS();

        if ($options === null) {
            $options = $this->AppPath() . 'Configs/Default.php';
        }

        parent::__construct($environment, $options);
    }
コード例 #19
0
/**
 * Returns known translations.
 *
 * @link http://framework.zend.com/manual/de/zend.locale.functions.html
 * @param string $value
 * @param string $path
 * @param string $locale
 * @return string|null
 */
function smarty_modifier_translate($value = null, $path = null, $locale = null)
{
    if (!Enlight_Application::Instance()->Bootstrap()->hasResource('Locale')) {
        return $value;
    }
    if ($locale === null) {
        $locale = Enlight_Application::Instance()->Locale();
    }
    if ($path == 'currency') {
        $path = 'nametocurrency';
    }
    return $locale->getTranslation($value, $path, $locale);
}
コード例 #20
0
ファイル: TestHelper.php プロジェクト: nvdnkpr/Enlight
 /**
  * Constructor method
  *
  * Loads all needed resources for the test.
  */
 public function __construct()
 {
     $this->testPath = dirname(__FILE__) . $this->DS();
     parent::__construct('testing', array('app' => 'Default', 'app_path' => realpath($this->testPath . '../../Apps/Default/')));
     $this->Bootstrap()->loadResource('Zend');
     //$this->Bootstrap()->loadResource('Cache');
     //$this->Bootstrap()->loadResource('Db');
     //$this->Bootstrap()->loadResource('Plugins');
     //$this->Bootstrap()->loadResource('Session');
     //$this->Loader()->loadClass('Shopware_Components_Test_TicketListener');
     //$this->Loader()->loadClass('Shopware_Components_Test_MailListener');
     //$this->Config()->hostOriginal = $this->Config()->host;
     //$this->Bootstrap()->loadResource('License');
 }
コード例 #21
0
/**
 * Method to fast deploy a query to enlight
 *
 * The params array knows the following keys
 * - name : The name of the action to call
 * - params : optional params array for the specific action call
 *
 * @param                          $params
 * @param Enlight_Template_Default $template
 * @return string
 * @throws Exception
 */
function smarty_function_action($params, Enlight_Template_Default $template)
{
    /** @var $front Enlight_Controller_Front */
    $front = Enlight_Application::Instance()->Front();
    $dispatcher = clone $front->Dispatcher();
    $modules = $dispatcher->getControllerDirectory();
    if (empty($modules)) {
        $e = new Exception('Action helper depends on valid front controller instance');
        //$e->setView($view);
        throw $e;
    }
    $request = $front->Request();
    $response = $front->Response();
    if (empty($request) || empty($response)) {
        $e = new Exception('Action view helper requires both a registered request and response object in the front controller instance');
        //$e->setView($view);
        throw $e;
    }
    if (isset($params['name'])) {
        $params['action'] = $params['name'];
        unset($params['name']);
    }
    if (isset($params['params'])) {
        $userParams = (array) $params['params'];
        unset($params['params']);
    } else {
        $userParams = array();
    }
    $params = array_merge($userParams, $params);
    $request = clone $request;
    $response = clone $response;
    $request->clearParams();
    $response->clearHeaders()->clearRawHeaders()->clearBody();
    if (isset($params['module'])) {
        $request->setModuleName($params['module'])->setControllerName('index')->setActionName('index');
    }
    if (isset($params['controller'])) {
        $request->setControllerName($params['controller'])->setActionName('index');
    }
    $request->setParam('_isSubrequest', true);
    $request->setActionName(isset($params['action']) ? $params['action'] : 'index');
    $request->setParams($params)->setDispatched(true);
    $dispatcher->dispatch($request, $response);
    if (!$request->isDispatched() || $response->isRedirect()) {
        // forwards and redirects render nothing
        return '';
    }
    $return = $response->getBody();
    return $return;
}
    function content_5642400ed5aa93_29200754($_smarty_tpl)
    {
        if ($_smarty_tpl->tpl_vars['sMenu']->value[$_smarty_tpl->tpl_vars['sGroup']->value]) {
            ?>
    <ul class="service--list is--rounded" role="menu">
        <?php 
            $_smarty_tpl->tpl_vars['item'] = new Smarty_Variable();
            $_smarty_tpl->tpl_vars['item']->_loop = false;
            $_from = $_smarty_tpl->tpl_vars['sMenu']->value[$_smarty_tpl->tpl_vars['sGroup']->value];
            if (!is_array($_from) && !is_object($_from)) {
                settype($_from, 'array');
            }
            foreach ($_from as $_smarty_tpl->tpl_vars['item']->key => $_smarty_tpl->tpl_vars['item']->value) {
                $_smarty_tpl->tpl_vars['item']->_loop = true;
                ?>
            <li class="service--entry" role="menuitem">
                <a class="service--link" href="<?php 
                if ($_smarty_tpl->tpl_vars['item']->value['link']) {
                    echo $_smarty_tpl->tpl_vars['item']->value['link'];
                } else {
                    echo htmlspecialchars(Enlight_Application::Instance()->Front()->Router()->assemble(array('controller' => 'custom', 'sCustom' => $_smarty_tpl->tpl_vars['item']->value['id'], 'title' => $_smarty_tpl->tpl_vars['item']->value['description'])));
                }
                ?>
" title="<?php 
                echo htmlspecialchars($_smarty_tpl->tpl_vars['item']->value['description'], ENT_QUOTES, 'utf-8', true);
                ?>
" <?php 
                if ($_smarty_tpl->tpl_vars['item']->value['target']) {
                    ?>
target="<?php 
                    echo $_smarty_tpl->tpl_vars['item']->value['target'];
                    ?>
"<?php 
                }
                ?>
>
                    <?php 
                echo $_smarty_tpl->tpl_vars['item']->value['description'];
                ?>

                </a>
            </li>
        <?php 
            }
            ?>
    </ul>
<?php 
        }
    }
コード例 #23
0
ファイル: function.link.php プロジェクト: nvdnkpr/Enlight
/**
 * Builds an Enlight Link based on given controller and action.
 * The params array knows the following key:
 * - file     : this key must be filled with a filename
 * - fullpath : if this key is filled, a whole link will be returned http[s]://....
 *
 * @param array                    $params
 * @param Enlight_Template_Default $template
 * @return bool|mixed|string
 */
function smarty_function_link($params, Enlight_Template_Default $template)
{
    if (empty($params['file'])) {
        return false;
    }
    $file = $params['file'];
    /** @var $front Enlight_Controller_Front */
    $front = Enlight_Application::Instance()->Front();
    $request = $front->Request();
    // check if we got an URI or a local link
    if (strpos($file, '/') !== 0 && strpos($file, '://') === false) {
        // we've got a file which looks like a link
        $dirs = (array) $template->smarty->getTemplateDir();
        // lets guess the webroot, if we are running inside an Enlight2 application
        // we are able to get the right path from the configs
        if (method_exists(Enlight_Application::Instance(), 'DocPath')) {
            $docPath = Enlight_Application::Instance()->DocPath();
        } else {
            // otherwise assume we are in the webroot
            $docPath = getcwd() . DIRECTORY_SEPARATOR;
        }
        // try to find the file on the filesystem
        foreach ($dirs as $dir) {
            if (file_exists($dir . $file)) {
                $file = $dir . $file;
                break;
            }
        }
        // some clean up code
        if (strpos($file, $docPath) === 0) {
            $file = substr($file, strlen($docPath));
        }
        // make sure we have the right separator for the web context
        if (DIRECTORY_SEPARATOR !== '/') {
            $file = str_replace(DIRECTORY_SEPARATOR, '/', $file);
        }
        // if we did not find the file, we are returning a false
        if (strpos($file, '/') !== 0) {
            if (!file_exists($docPath . $file)) {
                return false;
            }
            $file = $request->getBasePath() . '/' . $file;
        }
    }
    if (strpos($file, '/') === 0 && !empty($params['fullPath'])) {
        $file = $request->getScheme() . '://' . $request->getHttpHost() . $file;
    }
    return $file;
}
コード例 #24
0
 * @example The following example illustrates a js compression:
 * {booster type="js" src="frontend/_resources/javascript/jquery.shopware.js}
 * {booster type="js" output=1}
 *
 * @category   Enlight
 * @package    Enlight_Template_Plugins
 * @copyright  Copyright (c) 2011, shopware AG (http://www.shopware.de)
 * @license    http://enlight.de/license     New BSD License
 * @version    $Id$
 * @author     $Author$
 * @author     rodneyrehm (https://github.com/rodneyrehm)
 * @author     S.Pohl
 */
// Terminate the path to the document root
if (method_exists(Enlight_Application::Instance(), 'DocPath')) {
    $docPath = Enlight_Application::Instance()->DocPath();
} else {
    $docPath = getcwd() . DIRECTORY_SEPARATOR;
}
// Define booster root and include it
define('DOCPATH', $docPath);
define('BOOSTER_HTDOCS', DOCPATH . 'engine' . DIRECTORY_SEPARATOR . 'Library' . DIRECTORY_SEPARATOR . 'Booster');
require_once BOOSTER_HTDOCS . '/booster_inc.php';
function smarty_function_booster(array $params, Smarty_Internal_Template $template)
{
    $root = $template;
    $type = isset($params['type']) ? $params['type'] : null;
    $media = isset($params['media']) ? $params['media'] : null;
    $src = isset($params['src']) ? $params['src'] : null;
    $output = isset($params['output']);
    // sanity checks
    function content_5642402b70bf43_21129011($_smarty_tpl)
    {
        ?>

<div class="product--actions">

    
    
        <?php 
        ob_start();
        echo 1;
        $_tmp1 = ob_get_clean();
        if ($_tmp1) {
            ?>
            <a href="<?php 
            echo htmlspecialchars(Enlight_Application::Instance()->Front()->Router()->assemble(array('controller' => 'compare', 'action' => 'add_article', 'articleID' => $_smarty_tpl->tpl_vars['sArticle']->value['articleID'])));
            ?>
"
               title="<?php 
            $_smarty_tpl->smarty->_tag_stack[] = array('snippet', array('name' => 'ListingBoxLinkCompare', 'namespace' => 'frontend/listing/box_article'));
            $_block_repeat = true;
            echo Enlight_Components_Snippet_Resource::compileSnippetBlock(array('name' => 'ListingBoxLinkCompare', 'namespace' => 'frontend/listing/box_article'), null, $_smarty_tpl, $_block_repeat);
            while ($_block_repeat) {
                ob_start();
                ?>
Vergleichen<?php 
                $_block_content = ob_get_clean();
                $_block_repeat = false;
                echo Enlight_Components_Snippet_Resource::compileSnippetBlock(array('name' => 'ListingBoxLinkCompare', 'namespace' => 'frontend/listing/box_article'), $_block_content, $_smarty_tpl, $_block_repeat);
            }
            array_pop($_smarty_tpl->smarty->_tag_stack);
            ?>
"
               class="product--action action--compare"
               data-product-compare-add="true"
               rel="nofollow">
                <i class="icon--compare"></i> <?php 
            $_smarty_tpl->smarty->_tag_stack[] = array('snippet', array('name' => 'ListingBoxLinkCompare', 'namespace' => 'frontend/listing/box_article'));
            $_block_repeat = true;
            echo Enlight_Components_Snippet_Resource::compileSnippetBlock(array('name' => 'ListingBoxLinkCompare', 'namespace' => 'frontend/listing/box_article'), null, $_smarty_tpl, $_block_repeat);
            while ($_block_repeat) {
                ob_start();
                ?>
Vergleichen<?php 
                $_block_content = ob_get_clean();
                $_block_repeat = false;
                echo Enlight_Components_Snippet_Resource::compileSnippetBlock(array('name' => 'ListingBoxLinkCompare', 'namespace' => 'frontend/listing/box_article'), $_block_content, $_smarty_tpl, $_block_repeat);
            }
            array_pop($_smarty_tpl->smarty->_tag_stack);
            ?>

            </a>
        <?php 
        }
        ?>
    

    
    
        <a href="<?php 
        echo htmlspecialchars(Enlight_Application::Instance()->Front()->Router()->assemble(array('controller' => 'note', 'action' => 'add', 'ordernumber' => $_smarty_tpl->tpl_vars['sArticle']->value['ordernumber'])));
        ?>
"
           title="<?php 
        ob_start();
        $_smarty_tpl->smarty->_tag_stack[] = array('snippet', array('name' => 'DetailLinkNotepad', 'namespace' => 'frontend/listing/box_article'));
        $_block_repeat = true;
        echo Enlight_Components_Snippet_Resource::compileSnippetBlock(array('name' => 'DetailLinkNotepad', 'namespace' => 'frontend/listing/box_article'), null, $_smarty_tpl, $_block_repeat);
        while ($_block_repeat) {
            ob_start();
            echo "Auf den Merkzettel";
            $_block_content = ob_get_clean();
            $_block_repeat = false;
            echo Enlight_Components_Snippet_Resource::compileSnippetBlock(array('name' => 'DetailLinkNotepad', 'namespace' => 'frontend/listing/box_article'), $_block_content, $_smarty_tpl, $_block_repeat);
        }
        array_pop($_smarty_tpl->smarty->_tag_stack);
        $_tmp2 = ob_get_clean();
        echo htmlspecialchars($_tmp2, ENT_QUOTES, 'utf-8', true);
        ?>
"
           class="product--action action--note"
           data-ajaxUrl="<?php 
        echo htmlspecialchars(Enlight_Application::Instance()->Front()->Router()->assemble(array('controller' => 'note', 'action' => 'ajaxAdd', 'ordernumber' => $_smarty_tpl->tpl_vars['sArticle']->value['ordernumber'])));
        ?>
"
           data-text="<?php 
        $_smarty_tpl->smarty->_tag_stack[] = array('snippet', array('name' => "DetailNotepadMarked", 'namespace' => 'frontend/listing/box_article'));
        $_block_repeat = true;
        echo Enlight_Components_Snippet_Resource::compileSnippetBlock(array('name' => "DetailNotepadMarked", 'namespace' => 'frontend/listing/box_article'), null, $_smarty_tpl, $_block_repeat);
        while ($_block_repeat) {
            ob_start();
            ?>
Gemerkt<?php 
            $_block_content = ob_get_clean();
            $_block_repeat = false;
            echo Enlight_Components_Snippet_Resource::compileSnippetBlock(array('name' => "DetailNotepadMarked", 'namespace' => 'frontend/listing/box_article'), $_block_content, $_smarty_tpl, $_block_repeat);
        }
        array_pop($_smarty_tpl->smarty->_tag_stack);
        ?>
"
           rel="nofollow">
            <i class="icon--heart"></i> <span class="action--text"><?php 
        $_smarty_tpl->smarty->_tag_stack[] = array('snippet', array('name' => "DetailLinkNotepadShort", 'namespace' => 'frontend/listing/box_article'));
        $_block_repeat = true;
        echo Enlight_Components_Snippet_Resource::compileSnippetBlock(array('name' => "DetailLinkNotepadShort", 'namespace' => 'frontend/listing/box_article'), null, $_smarty_tpl, $_block_repeat);
        while ($_block_repeat) {
            ob_start();
            ?>
Merken<?php 
            $_block_content = ob_get_clean();
            $_block_repeat = false;
            echo Enlight_Components_Snippet_Resource::compileSnippetBlock(array('name' => "DetailLinkNotepadShort", 'namespace' => 'frontend/listing/box_article'), $_block_content, $_smarty_tpl, $_block_repeat);
        }
        array_pop($_smarty_tpl->smarty->_tag_stack);
        ?>
</span>
        </a>
    

    
    

    
    
</div><?php 
    }
コード例 #26
0
ファイル: TestCase.php プロジェクト: nvdnkpr/Enlight
 /**
  * Returns the test database connection.
  *
  * @return PHPUnit_Extensions_Database_DB_IDatabaseConnection
  */
 protected function getConnection()
 {
     $pdo = Enlight_Application::Instance()->Db()->getConnection();
     return $this->createDefaultDBConnection($pdo);
 }
コード例 #27
0
ファイル: TestCase.php プロジェクト: GerDner/luck-docker
 /**
  * Tests set up method
  */
 public function setUp()
 {
     parent::setUp();
     $app = Enlight_Application::Instance();
     $app->Bootstrap()->loadResource('Plugins');
 }
コード例 #28
0
ファイル: ProxyFactory.php プロジェクト: nvdnkpr/Enlight
 /**
  * Generate the class source code for the hooked method of the given class.
  * First all methods of the class are iterated.
  * Final, static, magic and private methods can't be hooked.
  * If the method is hooked, enlight iterates all method parameters to generate
  * the parameter definition. At last all hooked methods are implemented by the
  * $proxyMethodTemplate.
  *
  * @param unknown_type $class
  * @return unknown
  */
 protected function generateMethods($class)
 {
     $rc = new ReflectionClass($class);
     $methodsArray = array();
     $methods = '';
     //iterate all class methods
     foreach ($rc->getMethods() as $rm) {
         //final, static and private methods can't be hooked.
         if ($rm->isFinal() || $rm->isStatic() || $rm->isPrivate()) {
             continue;
         }
         if (substr($rm->getName(), 0, 2) == '__') {
             continue;
         }
         //checks if the current method hooks exists.
         if (!Enlight_Application::Instance()->Hooks()->hasHooks($class, $rm->getName())) {
             continue;
         }
         //adds the hooked method to the array.
         $methodsArray[] = $rm->getName();
         $params = '';
         $proxy_params = '';
         $array_params = '';
         //iterates all parameters to generate the parameter definition.
         foreach ($rm->getParameters() as $rp) {
             if ($params) {
                 $params .= ', ';
                 $proxy_params .= ', ';
                 $array_params .= ', ';
             }
             if ($rp->isPassedByReference()) {
                 $params .= '&';
             }
             $params .= '$' . $rp->getName();
             $proxy_params .= '$' . $rp->getName();
             $array_params .= '\'' . $rp->getName() . '\'=>$' . $rp->getName();
             if ($rp->isOptional()) {
                 $params .= ' = ' . str_replace("\n", '', var_export($rp->getDefaultValue(), true));
             }
         }
         $modifiers = Reflection::getModifierNames($rm->getModifiers());
         $modifiers = implode(' ', $modifiers);
         $search = array('<methodName>', '<methodModifiers>', '<methodParameters>', '<proxyMethodParameters>', '<arrayMethodParameters>', '<className>');
         $replace = array($rm->getName(), $modifiers, $params, $proxy_params, $array_params, $class);
         $method = $this->proxyMethodTemplate;
         $method = str_replace($search, $replace, $method);
         $methods .= $method;
     }
     return array('array' => $methodsArray, 'methods' => $methods);
 }
コード例 #29
0
ファイル: Default.php プロジェクト: GerDner/luck-docker
 /**
  * If the given request is not dispatchable, the default controller is set.
  * Then it tries to load the controller class and appends the hook proxies.
  * If the hook proxies are added, the dispatched flag of the request object is set to true.
  * If the disableOutputBuffering parameter isn't set, the output buffering starts.
  * After that, run the dispatch on the controller.
  * At the ending the body is added to the response object.
  *
  * @param Enlight_Controller_Request_Request   $request
  * @param Enlight_Controller_Response_Response $response
  * @throws Enlight_Controller_Exception|Enlight_Exception|Exception
  */
 public function dispatch(Enlight_Controller_Request_Request $request, Enlight_Controller_Response_Response $response)
 {
     $this->setResponse($response);
     if (!$this->isDispatchable($request)) {
         throw new Enlight_Controller_Exception('Controller "' . $request->getControllerName() . '" not found', Enlight_Controller_Exception::Controller_Dispatcher_Controller_Not_Found);
     }
     $class = $this->getControllerClass($request);
     $path = $this->getControllerPath($request);
     try {
         Enlight_Application::Instance()->Loader()->loadClass($class, $path);
     } catch (Exception $e) {
         throw new Enlight_Exception('Controller "' . $class . '" can\'t load failure');
     }
     $proxy = Enlight_Application::Instance()->Hooks()->getProxy($class);
     /** @var $controller Enlight_Controller_Action */
     $controller = new $proxy($request, $response);
     $controller->setFront($this->Front());
     if ($controller instanceof ContainerAwareInterface) {
         $container = Enlight_Application::Instance()->Container();
         $controller->setContainer($container);
     }
     $action = $this->getActionMethod($request);
     $request->setDispatched(true);
     $disableOb = $this->Front()->getParam('disableOutputBuffering');
     $obLevel = ob_get_level();
     if (empty($disableOb)) {
         ob_start();
     }
     try {
         $controller->dispatch($action);
     } catch (Exception $e) {
         $curObLevel = ob_get_level();
         if ($curObLevel > $obLevel) {
             do {
                 ob_get_clean();
                 $curObLevel = ob_get_level();
             } while ($curObLevel > $obLevel);
         }
         throw $e;
     }
     if (empty($disableOb)) {
         $content = ob_get_clean();
         $response->appendBody($content);
     }
 }
コード例 #30
0
ファイル: Enlight.php プロジェクト: nhp/shopware-4
 /**
  * Constructor
  */
 public function __construct($environment, $options = null)
 {
     Enlight($this);
     parent::__construct($environment, $options);
 }