1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- /*
- * This file is part of the symfony package.
- * (c) 2004-2006 Fabien Potencier <fabien.potencier@symfony-project.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- /**
- * sfRichTextEditorFCK implements the FCK rich text editor.
- *
- * <b>Options:</b>
- * - tool - Sets the FCKEditor toolbar style
- * - config - Sets custom path to the FCKEditor configuration file
- *
- * @package symfony
- * @subpackage helper
- * @author Fabien Potencier <fabien.potencier@symfony-project.com>
- * @version SVN: $Id: sfRichTextEditorFCK.class.php 17860 2009-05-01 22:33:31Z FabianLange $
- */
- class sfRichTextEditorFCK extends sfRichTextEditor
- {
- /**
- * Returns the rich text editor as HTML.
- *
- * @return string Rich text editor HTML representation
- */
- public function toHTML()
- {
- $options = $this->options;
- // we need to know the id for things the rich text editor
- // in advance of building the tag
- $id = _get_option($options, 'id', $this->name);
- $php_file = sfConfig::get('sf_rich_text_fck_js_dir').DIRECTORY_SEPARATOR.'fckeditor.php';
- if (!is_readable(sfConfig::get('sf_web_dir').DIRECTORY_SEPARATOR.$php_file))
- {
- throw new sfConfigurationException('You must install FCKEditor to use this helper (see rich_text_fck_js_dir settings).');
- }
- // FCKEditor.php class is written with backward compatibility of PHP4.
- // This reportings are to turn off errors with public properties and already declared constructor
- $error_reporting = error_reporting(E_ALL);
- require_once(sfConfig::get('sf_web_dir').DIRECTORY_SEPARATOR.$php_file);
- // turn error reporting back to your settings
- error_reporting($error_reporting);
- $fckeditor = new FCKeditor($this->name);
- $fckeditor->BasePath = sfContext::getInstance()->getRequest()->getRelativeUrlRoot().'/'.sfConfig::get('sf_rich_text_fck_js_dir').'/';
- $fckeditor->Value = $this->content;
- if (isset($options['width']))
- {
- $fckeditor->Width = $options['width'];
- }
- elseif (isset($options['cols']))
- {
- $fckeditor->Width = (string)((int) $options['cols'] * 10).'px';
- }
- if (isset($options['height']))
- {
- $fckeditor->Height = $options['height'];
- }
- elseif (isset($options['rows']))
- {
- $fckeditor->Height = (string)((int) $options['rows'] * 10).'px';
- }
- if (isset($options['tool']))
- {
- $fckeditor->ToolbarSet = $options['tool'];
- }
- if (isset($options['config']))
- {
- $fckeditor->Config['CustomConfigurationsPath'] = javascript_path($options['config']);
- }
- $content = $fckeditor->CreateHtml();
- if (sfConfig::get('sf_compat_10'))
- {
- // fix for http://trac.symfony-project.com/ticket/732
- // fields need to be of type text to be picked up by fillin. they are hidden by inline css anyway:
- // <input type="hidden" id="name" name="name" style="display:none" value="<p>default</p>">
- $content = str_replace('type="hidden"','type="text"',$content);
- }
- return $content;
- }
- }
|