示例#1
0
文件: ExtJs.php 项目: nhp/shopware-4
    public function extendsAction()
    {
        $request = $this->Request();
        $moduleName = 'backend';
        $controllerName = $this->Request()->getParam('baseController');

        $inflector = new Zend_Filter_Inflector(':module/:controller/:file:suffix');
        $inflector->setRules(array(
            ':module' => array('Word_CamelCaseToUnderscore', 'StringToLower'),
            ':controller' => array('Word_CamelCaseToUnderscore', 'StringToLower'),
            ':file' => array('Word_CamelCaseToUnderscore', 'StringToLower'),
            'suffix' => '.js'
        ));
        $inflector->setThrowTargetExceptionsOn(false);

        $fileNames = (array) $request->getParam('file');
        if(empty($fileNames)) {
            return;
        }
        $this->Response()->setHeader('Content-Type', 'application/javascript; charset=utf-8', true);
        $template = 'snippet:string:';

        $this->View()->Engine()->setCompileId($this->View()->Engine()->getCompileId() . '_' . $this->Request()->getControllerName());

        foreach($fileNames as $fileName) {
            $fileName = ltrim(dirname($fileName) . '/' . basename($fileName, '.js'), '/.');
            if (empty($fileName)) {
                continue;
            }
            $templateBase = $inflector->filter(array(
                'module' => $moduleName,
                'controller' => $controllerName,
                'file' => $fileName)
            );

            $templateExtend = $inflector->filter(array(
                'module' => $moduleName,
                'controller' => $this->Request()->getControllerName(),
                'file' => $fileName)
            );
            if($this->View()->templateExists($templateBase)) {
                $template .= '{include file="' . $templateBase. '"}' . "\n";
            }
            if($this->View()->templateExists($templateExtend)) {
                $template .= '{include file="' . $templateExtend. '"}' . "\n";
            }
        }
        $toFind = $this->Request()->getParam('find');
        $toReplace = $this->Request()->getParam('replace');
        $toFind = rtrim($toFind, '.') . '.';
        $toReplace = rtrim($toReplace, '.') . '.';

        $this->View()->setTemplate();
        $template = $this->View()->fetch($template);
        $template = str_replace($toFind, $toReplace, $template);
        echo $template;
    }
示例#2
0
 /**
  * Returns the template name.
  *
  * @return  string
  */
 public function getTemplateName()
 {
     $request = $this->viewRenderer->Action()->Request();
     $dispatcher = $this->viewRenderer->Front()->Dispatcher();
     $moduleName = $dispatcher->formatModuleName($request->getModuleName());
     $controllerName = $dispatcher->formatControllerName($request->getControllerName());
     $inflector = new Zend_Filter_Inflector($this->target);
     $inflector->setRules($this->filterRules);
     $inflector->setThrowTargetExceptionsOn(false);
     $fileNames = (array) $request->getParam('file', $this->defaultFile);
     $templateNames = array();
     foreach ($fileNames as $fileName) {
         $fileName = ltrim(dirname($fileName) . '/' . basename($fileName, '.js'), '/.');
         if (empty($fileName)) {
             continue;
         }
         $templateNames[] = $inflector->filter(array('module' => $moduleName, 'controller' => $controllerName, 'file' => $fileName));
     }
     $count = count($templateNames);
     if ($count === 0) {
         return null;
     } elseif ($count === 1) {
         return $templateNames[0];
     } else {
         return 'snippet:string:{include file="' . implode("\"}\n{include file=\"", $templateNames) . '"}';
     }
 }
示例#3
0
 /**
  * Returns the template name.
  *
  * @return  string
  */
 public function getTemplateName()
 {
     $request = $this->viewRenderer->Action()->Request();
     $dispatcher = $this->viewRenderer->Front()->Dispatcher();
     $moduleName = $dispatcher->formatModuleName($request->getModuleName());
     $controllerName = $dispatcher->formatControllerName($request->getControllerName());
     $inflector = new Zend_Filter_Inflector($this->target);
     $inflector->setRules($this->filterRules);
     $inflector->setThrowTargetExceptionsOn(false);
     $fileName = $request->getParam('file', $this->defaultFile);
     $fileName = ltrim(dirname($fileName) . '/' . basename($fileName, '.js'), '/.');
     if (empty($fileName)) {
         return null;
     }
     $templateName = $inflector->filter(array('module' => $moduleName, 'controller' => $controllerName, 'file' => $fileName));
     return $templateName;
 }