public function render($name, $value = null, $attributes = array(), $errors = array()) { if (sfConfig::get('sf_app') == 'mobile_frontend') { return parent::render($name, $value, $attributes, $errors); } $toggle = ''; $js = ''; $id = $this->getId($name, $attributes); $changerName = $id . '_changer'; $offId = $id . '_changer_1'; $onId = $id . '_changer_2'; if (self::$isFirstRender) { sfContext::getInstance()->getResponse()->addJavascript('/sfProtoculousPlugin/js/prototype'); sfContext::getInstance()->getResponse()->addJavascript('tiny_mce/tiny_mce'); $js .= <<<EOF function op_toggle_mce_editor(id) { var textmode_checked = \$(id + "_changer_1").checked; var previewmode_checked = \$(id + "_changer_2").checked; var relational_objects = \$\$("." + id); var editor = tinyMCE.get(id); if (!editor) { if (previewmode_checked) { tinyMCE.execCommand('mceAddControl', false, id); relational_objects.each(function(object){ object.style.display = "none"; }); } return true; } if (editor.isHidden() && previewmode_checked) { editor.show(); relational_objects.each(function(object){ object.style.display = "none"; }); } else if (!editor.isHidden() && textmode_checked) { editor.hide(); relational_objects.each(function(object){ object.style.display = "block"; }); } } EOF; $js .= sprintf(" tinyMCE.init(%s);\n", json_encode($this->tinyMCEConfigs)); self::$isFirstRender = false; } if (!$this->getOption('is_textmode')) { $js .= sprintf(" tinyMCE.execCommand('mceAddControl', false, '%s');\n", $id); } $js .= sprintf(" op_toggle_mce_editor('%s');\n", $id); if ($js) { sfProjectConfiguration::getActive()->loadHelpers('Javascript'); $js = javascript_tag($js); } if ($this->getOption('is_toggle')) { $toggle = sprintf(<<<EOF <input id="%s" type="radio" name="%s" onclick="%s"%s /><label for="%s">%s</label> <input id="%s" type="radio" name="%s" onclick="%s"%s /><label for="%s">%s</label><br /> EOF , $offId, $changerName, sprintf("op_toggle_mce_editor('%s')", $id), $this->getOption('is_textmode') ? ' checked="true"' : '', $offId, sfContext::getInstance()->getI18N()->__('Text Mode'), $onId, $changerName, sprintf("op_toggle_mce_editor('%s')", $id), $this->getOption('is_textmode') ? '' : ' checked="true"', $onId, sfContext::getInstance()->getI18N()->__('Preview Mode')); } return $toggle . sprintf($this->getOption('textarea_template'), parent::render($name, $value, $attributes, $errors)) . $js; }
public function render($name, $value = null, $attributes = array(), $errors = array()) { $js = ''; if (self::$isFirstRender) { sfContext::getInstance()->getResponse()->addSmtJavascript('jquery.min.js'); sfContext::getInstance()->getResponse()->addSmtJavascript('jquery-ui.min.js'); sfContext::getInstance()->getResponse()->addSmtJavascript('tiny_mce/tiny_mce'); sfContext::getInstance()->getResponse()->addSmtJavascript('op_emoji'); sfContext::getInstance()->getResponse()->addSmtJavascript('Selection'); sfContext::getInstance()->getResponse()->addSmtJavascript('decoration'); $relativeUrlRoot = sfContext::getInstance()->getRequest()->getRelativeUrlRoot(); $js .= sprintf("function op_mce_editor_get_config() { return %s; }\n", json_encode(self::getButtons())); $js .= sprintf('function op_get_relative_uri_root() { return "%s"; }', $relativeUrlRoot); self::$isFirstRender = false; } if ($js) { sfProjectConfiguration::getActive()->loadHelpers('Javascript'); $js = javascript_tag($js); } $id = $this->getId($name, $attributes); $this->setOption('textarea_template', '<div id="' . $id . '_buttonmenu" class="' . $id . '">' . get_partial('global/richTextareaOpenPNEButton', array('id' => $id, 'configs' => self::getButtons(), 'onclick_actions' => self::$buttonOnclickActions)) . '</div>' . $this->getOption('textarea_template')); return $js . parent::render($name, $value, $attributes, $errors); }
public function render($name, $value = null, $attributes = array(), $errors = array()) { if (sfConfig::get('sf_app') == 'mobile_frontend') { return parent::render($name, $value, $attributes, $errors); } $js = ''; if (self::$isFirstRenderOpenPNE) { sfProjectConfiguration::getActive()->loadHelpers('Partial'); sfContext::getInstance()->getResponse()->addJavascript('/sfProtoculousPlugin/js/prototype'); sfContext::getInstance()->getResponse()->addJavascript('op_emoji'); sfContext::getInstance()->getResponse()->addJavascript('Selection'); sfContext::getInstance()->getResponse()->addJavascript('decoration'); $relativeUrlRoot = sfContext::getInstance()->getRequest()->getRelativeUrlRoot(); foreach ($this->loadPluginList as $key => $path) { $js .= sprintf('tinymce.PluginManager.load("%s", "%s");' . "\n", $key, $path); } $js .= sprintf("function op_mce_editor_get_config() { return %s; }\n", json_encode(self::getButtons())); $js .= sprintf('function op_get_relative_uri_root() { return "%s"; }', $relativeUrlRoot); self::$isFirstRenderOpenPNE = false; } if ($js) { sfProjectConfiguration::getActive()->loadHelpers('Javascript'); $js = javascript_tag($js); } $id = $this->getId($name, $attributes); $this->setOption('textarea_template', '<div id="' . $id . '_buttonmenu" class="' . $id . '">' . get_partial('global/richTextareaOpenPNEButton', array('id' => $id, 'configs' => self::getButtons(), 'onclick_actions' => self::$buttonOnclickActions)) . '</div>' . $this->getOption('textarea_template')); return $js . parent::render($name, $value, $attributes, $errors); }