Exemplo n.º 1
0
 /**
  * Set view property.
  *
  * @param Zikula_View $view Default null means new Render instance for this module name.
  *
  * @return Zikula_Controller_AbstractPlugin
  */
 protected function setView(Zikula_View $view = null)
 {
     // please note the docblock param signature is deliberately different to the method signature - drak
     if (is_null($view)) {
         if ($this->plugin->getPluginType() == Zikula_AbstractPlugin::TYPE_MODULE) {
             $view = Zikula_View_Plugin::getModulePluginInstance($this->moduleName, $this->pluginName);
         } else {
             $view = Zikula_View_Plugin::getSystemPluginInstance($this->pluginName);
         }
     } else {
         if (!$view instanceof Zikula_View_Plugin) {
             $name = is_object($view) ? get_class($view) : '$view';
             throw new InvalidArgumentException(sprintf('%s must be an instance of Zikula_View_Plugin', $name));
         }
     }
     $this->view = $view;
     return $this;
 }
Exemplo n.º 2
0
 /**
  * Get system plugin Zikula_View_Plugin instance.
  *
  * @param string       $pluginName Plugin name.
  * @param integer|null $caching    Whether or not to cache (Zikula_View::CACHE_*) or use config variable (null).
  * @param string       $cache_id   Cache Id.
  *
  * @return Zikula_View_Plugin The plugin instance.
  */
 public static function getSystemPluginInstance($pluginName, $caching = null, $cache_id = null)
 {
     $modName = 'zikula';
     return Zikula_View_Plugin::getPluginInstance($modName, $pluginName, $caching, $cache_id);
 }
Exemplo n.º 3
0
    /**
     * Initialise Scribite for requested areas.
     *
     * @param array $args Module name: 'modulename'.
     *
     * @return string
     */
    private function loader($args)
    {
        // Argument checks
        $module = (isset($args['modulename'])) ? $args['modulename'] : ModUtil::getName();
        
        $overrides = ModUtil::getVar('Scribite', 'overrides');
        $editor = (isset($overrides[$module]['editor'])) ? $overrides[$module]['editor'] : ModUtil::getVar('Scribite', 'DefaultEditor');

        // check for modules providing helpers and load them into the page
        $event = new Zikula_Event('module.scribite.editorhelpers', new Scribite_EditorHelper(), array('editor' => $editor));
        $helpers = EventUtil::getManager()->notify($event)->getSubject()->getHelpers();
        foreach ($helpers as $helper) {
            if (ModUtil::available($helper['module'])) {
                PageUtil::AddVar($helper['type'], $helper['path']);            
            }
        }
        
        // check for allowed html
        $AllowableHTML = System::getVar('AllowableHTML');
        $disallowedhtml = array();
        while (list($key, $access) = each($AllowableHTML)) {
            if ($access == 0) {
                $disallowedhtml[] = DataUtil::formatForDisplay($key);
            }
        }

        // fetch additonal editor specific parameters.
        $classname = 'ModulePlugin_Scribite_' . $editor . '_Util';
        $additionalEditorParameters = array();
        if (method_exists($classname, 'addParameters')) {
            $additionalEditorParameters = $classname::addParameters();
        }
        // fetch external editor plugins
        $additionalExternalEditorPlugins = array();
        if (method_exists($classname, 'addExternalPlugins')) {
            $additionalExternalEditorPlugins = $classname::addExternalPlugins();
        }

        // assign disabled textareas to template as a javascript array
        $javascript = "var disabledTextareas=[";
        if (isset($overrides[$module])) {
            foreach (array_keys($overrides[$module]) as $area) {
                if ($area == 'editor') continue;
                if ((isset($overrides[$module][$area]['disabled'])) && ($overrides[$module][$area]['disabled'] == "true")) {
                    $javascript .= "'" . $area . "',";
                }
            }
        }
        $javascript = rtrim($javascript, ",");
        $javascript .= "];";
        PageUtil::addVar("footer", "<script type='text/javascript'>$javascript</script>");
        
        // assign override parameters to javascript object
        $javascript = "";
        $paramOverrides = false;
        if (isset($overrides[$module])) {
            foreach ($overrides[$module] as $area => $config) {
                if ($area == 'editor') continue;
                if (!empty($config['params'])) {
                    $paramOverrides = true;
                    $javascript .= "var paramOverrides_$area = {";
                    foreach ($config['params'] as $param => $value) {
                        $javascript .= "\n    $param: '$value',";
                    }
                    
                    $javascript .= "\n}";
                }
            }
        }
        PageUtil::addVar("footer", "<script type='text/javascript'>\n$javascript\n</script>");
        
        // insert notify function
        PageUtil::addVar('javascript', 'modules/Scribite/javascript/function-insertnotifyinput.js');

        $view = Zikula_View_Plugin::getPluginInstance("Scribite", $editor, Zikula_View::CACHE_DISABLED);

        // assign to template in Scribite 'namespace'
        $templateVars = array('editorVars' => ModUtil::getVar("moduleplugin.scribite." . strtolower($editor)),
            'modname' => $module,
            'disallowedhtml' => $disallowedhtml,
            'paramOverrides' => $paramOverrides);
        if (!empty($additionalEditorParameters)) {
            $templateVars['editorParameters'] = $additionalEditorParameters;
        }
        if (!empty($additionalExternalEditorPlugins)) {
            $templateVars['addExtEdPlugins'] = $additionalExternalEditorPlugins;
        }
        $view->assign('Scribite', $templateVars);

        return $view->fetch("editorheader.tpl");
    }