* Invision Power Services * IP.Board v3.4.8 * Editor Library: Core Class * Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $ * * * @author $Author: bfarber $ * @copyright (c) 2001 - 2009 Invision Power Services, Inc. * @license http://www.invisionpower.com/company/standards.php#license * @package IP.Board * @link http://www.invisionpower.com * @since 9th March 2005 11:03 * @version $Revision: 10721 $ * * EXAMPLE USAGE * * $han_editor = new han_editor(); * * $han_editor->init(); * * # To generate the HTML for the editor: * $editor_html = $han_editor->showEditor( $raw_post, 'Post' ); * * # $raw_post is either raw HTML for the rich text editor or raw BBCode tagged text when * # using the standard editor. (See the document on the BBCode parser for more information) * # 'Post' is the name of the form field you wish use. In this case it'll return $_POST['Post']. * * #To process the editor's text into tagged BBCode text: * $post = $han_editor->processRawPost( 'Post' ); * * #'Post' is the name of the form field you used when displaying the editor. As in $_POST['Post'] * * # To use the HTML generated by editor class for displaying the actual editor (in our example; $editor_html) * # you'll need to use it like this: * *
* {$editor_html} *
*
* * The form tag MUST have: id='postingform' onsubmit='return ValidateForm()' otherwise the editor will fail. *
*/ if ( ! defined( 'IN_IPB' ) ) { print "

Incorrect access

You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files."; exit(); } class class_editor { /** * Allow unicode setting * * @access public * @var boolean */ public $allow_unicode; /** * Get magic quotes * * @access public * @var boolean */ public $get_magic_quotes; /** * Reverse font sizes * * @access public * @var array */ public $rev_font_sizes = array(); /** * Registry object * * @access protected * @var object */ protected $registry; /** * Database object * * @access protected * @var object */ protected $DB; /** * Settings object * * @access protected * @var object */ protected $settings; /** * Request object * * @access protected * @var object */ protected $request; /** * Language object * * @access protected * @var object */ protected $lang; /** * Member object * * @access protected * @var object */ protected $member; protected $memberData; /** * Cache object * * @access protected * @var object */ protected $cache; protected $caches; /** * Main font sizes * * @access protected * @var array */ protected $font_sizes = array( 1 => 8, 2 => 10, 3 => 12, 4 => 14, 5 => 18, 6 => 24, 7 => 36 ); /** * Constructor * * @access public * @param object Registry object * @return @e void */ public function __construct( ipsRegistry $registry ) { /* Make object */ $this->registry = $registry; $this->DB = $this->registry->DB(); $this->settings =& $this->registry->fetchSettings(); $this->request =& $this->registry->fetchRequest(); $this->lang = $this->registry->getClass('class_localization'); $this->member = $this->registry->member(); $this->memberData =& $this->registry->member()->fetchMemberData(); $this->cache = $this->registry->cache(); $this->caches =& $this->registry->cache()->fetchCaches(); } /** * Main init: Prep font sizes * * @access public * @return @e void */ public function editorInit( ) { foreach( $this->font_sizes as $bbcode => $real ) { $this->rev_font_sizes[ $real ] = $bbcode; } } /** * Get BBCode font size from real PX size * * @access public * @param integer PX Size * @return integer BBCode size */ public function convertRealsizeToBbsize( $real ) { $real = intval( $real ); if ( $this->rev_font_sizes[ $real ] ) { return $this->rev_font_sizes[ $real ]; } else { return 2; } } /** * Clean up and make the post safe for the DB * * @access protected * @param string Raw text * @return string Converted text */ protected function _cleanPost( $t ) { if ( $t == "" ) { return ""; } //----------------------------------------- // Make it safe //----------------------------------------- $t = str_replace( "&" , "&" , $t ); $t = str_replace( "" , "-->" , $t ); $t = str_ireplace( "" , ">" , $t ); $t = str_replace( "<" , "<" , $t ); $t = str_replace( '"' , """ , $t ); $t = str_replace( "\n" , "
" , $t ); $t = str_replace( '$' , "$" , $t ); $t = str_replace( "\r" , "" , $t ); $t = str_replace( "!" , "!" , $t ); $t = str_replace( "'" , "'" , $t ); //----------------------------------------- // Ensure unicode chars are OK //----------------------------------------- if ( $this->allow_unicode ) { $t = preg_replace("/&#([0-9]+);/s", "&#\\1;", $t ); } //----------------------------------------- // Strip slashes if not already done so. //----------------------------------------- /*if ( $this->get_magic_quotes ) { $t = stripslashes($t); }*/ //----------------------------------------- // Swap user inputted backslashes //----------------------------------------- $t = preg_replace( "/\\\(?!&#|\?#)/", "\", $t ); return $t; } }