Вход Регистрация
Файл: admin/sources/handlers/han_editor.php
Строк: 143
<?php
/**
 * <pre>
 * Invision Power Services
 * IP.Board v3.3.3
 * Editor Library: Gateway
 * Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
 * </pre>
 *
 * @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 $
 */

if ( ! defined'IN_IPB' ) )
{
    print 
"<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
    exit();
}

class 
hanEditor
{
    
/**
     * Editor reference
     *
     * @var        object
     */
    
public  $class_editor;
    
    
/**
     * Editing method (rte|std)
     *
     * @var        string
     */
    
public $method            '';

    
/**
     * RTE enabled?
     *
     * @var        boolean
     */
    
public $rte_on            false;
        
    
/**
     * Images directory (for acp)
     *
     * @var        string
     */
    
public $image_dir        '';

    
/**
     * Emoticons directory (for acp)
     *
     * @var        string
     */
    
public $emo_dir            '';
    
    
/**
     * Current editor id
     *
     * @var        string
     */
    
public $editor_id        'ed-0';
    
    
/**
     * Remove emoticons from editor
     *
     * @var        boolean
     */
    
public $remove_emoticons    false;
    
    
/**
     * ACP editor id
     *
     * @var        integer
     */
    
public $acp_editor_id    0;
    
    
/**#@+
    * Registry objects
    *
    * @var        object
    */    
    
protected $registry;
    protected 
$DB;
    protected 
$settings;
    protected 
$request;
    protected 
$lang;
    protected 
$member;
    protected 
$memberData;
    protected 
$cache;
    protected 
$caches;
    
/**#@-*/
    
    /**
     * Constructor
     *
     * @param    object        $registry        Registry object
     * @return    @e void
     */
    
public function __constructipsRegistry $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();
    }    
    
    
/**
     * Init method
     *
     * @param    object        Registry object
     * @return    @e void
     */
    
public function init()
    {
        
//-----------------------------------------
        // INIT
        //-----------------------------------------
        
        
$class "";
        
        if ( ! 
$this->method )
        {
            
$this->method 'rte';
        }

        
//-----------------------------------------
        // Make sure we haven't had any messin'
        //-----------------------------------------
        
        
if ( isset( $_POST['editor_ids'] ) AND is_array$_POST['editor_ids'] ) )
        {
            foreach( 
$_POST['editor_ids'] as $k => $v )
            {
                if ( isset(
$_POST$v '_wysiwyg_used']) AND intval($_POST$v '_wysiwyg_used']) == 1)
                {
                    
$this->method 'rte';
                }
                else
                {
                    
$this->method 'std';
                }
            }
        }
        
        if ( isset(
$_POST['ed-0_wysiwyg_used']) AND intval($_POST['ed-0_wysiwyg_used']) == )
        {
            
$this->method 'rte';
        }
    
        
//-----------------------------------------
        // Force STD editor.. if needed
        //-----------------------------------------
        
        
if ( ( isset($_POST['std_used']) AND intval($_POST['std_used']) ) )
        {
            
$this->method 'std';
        }

        
//-----------------------------------------
        // Which class
        //-----------------------------------------
        
        
switch( $this->method )
        {
            case 
'rte':
                
$class        'class_editor_rte.php';
                
$this->rte_on 1;
                break;
            case 
'std':
                
$class           'class_editor_std.php';
                
$this->rte_on 0;
                break;
            default:
                
$class           'class_editor_std.php';
                
$this->rte_on 0;
        }

        
//-----------------------------------------
        // Load classes
        //-----------------------------------------
    
        
require_once( IPS_ROOT_PATH 'sources/classes/editor/class_editor.php' );/*noLibHook*/
        
$classToLoad IPSLib::loadLibraryIPS_ROOT_PATH 'sources/classes/editor/' $class'class_editor_module' );
        
        
$this->class_editor                        =  new $classToLoad$this->registry );
        
        
$this->class_editor->allow_unicode        =  IPS_ALLOW_UNICODE;
        
$this->class_editor->get_magic_quotes    =  IPS_MAGIC_QUOTES;
        
        
//-----------------------------------------
        // Load lang file
        //-----------------------------------------
        
        
ipsRegistry::getClass'class_localization')->loadLanguageFile( array( 'public_editors' ), 'core' );
        
        
//-----------------------------------------
        // Init class
        //-----------------------------------------

        
$this->class_editor->editorInit();
        
        
//-----------------------------------------
          // Load skin and language
          //-----------------------------------------

          
if ( IN_ACP )
          {
            
$image_set $this->DB->buildAndFetch( array( 'select' => 'set_image_dir, set_emo_dir''from' => 'skin_collections''where' => 'set_is_default=1' ) );

            
$this->image_dir $image_set['set_image_dir'];
            
$this->emo_dir   $image_set['set_emo_dir'];

            
//-----------------------------------------
            // Remove side panel
            //-----------------------------------------

            
$this->remove_emoticons  true;
          }
          else
          {
            
$this->emo_dir ipsRegistry::getClass('output')->skin['set_emo_dir'];
          }
    }
    
    
/**
     * Show the editor
     *
     * @param    string        Raw text with bbcode
     * @param    string        Form field name
     * @return    string        Editor HTML
     */
    
public function showEditor$text$form_field='post_content' )
    {
        
//-----------------------------------------
        // INIT
        //-----------------------------------------
    
        
$smilies      IPSLib::fetchEmoticonsAsJson$this->emo_dir );
        
$total        0;
        
$count        0;
        
$smilie_id    0;
        
        
//-----------------------------------------
          // Load skin and language
          //-----------------------------------------

          //if ( IN_ACP )
          //{
            //-----------------------------------------
            // Sort out editor id
            //-----------------------------------------
            
            
$this->editor_id 'ed-'.$this->acp_editor_id;
            
            
$this->acp_editor_id++;
          
//}

        //-----------------------------------------
        // Emoticons
        //-----------------------------------------
        
        
$this->settings['_remove_emoticons'] =  $this->remove_emoticons;
        
          
//-----------------------------------------
          // Pre parse...
          //-----------------------------------------

          
$text $this->class_editor->processBeforeForm$text );

        
//-----------------------------------------
        // Weird script tag stuff...
        //-----------------------------------------
        
        
if( $this->method == 'rte' )
        {
            
$text preg_replace'#(<|&lt;|&amp;lt;|&#60;)script#si'"&amp;lt;script"$text );
        }

        
//-----------------------------------------
        // Comment
        //-----------------------------------------

          
if ( IN_ACP )
          {
              
$return_html $this->registry->getClass('output')->global_template->ips_editor$form_field$text$this->settings['img_url'].'/folder_editor_images/'$this->rte_on$this->editor_id$smilies );
              
            
$return_html preg_replace'#([^/.])js/#is'"\1".$this->settings['board_url'] . '/' PUBLIC_DIRECTORY "/js/"                 $return_html );
            
$return_html str_replace"<#IMG_DIR#>"        $this->settings['board_url'] . '/' PUBLIC_DIRECTORY "/style_images/{$this->image_dir}"$return_html );
        }
        else
        {
            
$return_html $this->registry->getClass('output')->getTemplate('editors')->ips_editor$form_field$text$this->settings['img_url'].'/folder_editor_images/'$this->rte_on$this->editor_id$smilies );
        }

        return 
$return_html;
      }
      
    
/**
     * Retrieve the posted contents from the editor
     *
     * @param    string        Form field name OR raw text
     * @param    boolean        Is definitely full text and not a field name
     * @return    string        Editor HTML
     */
      
public function processRawPost$form_field$isDefinitelyFullText=false )
      {
          return 
$this->class_editor->processAfterForm$form_field$isDefinitelyFullText );
      }

    
/**
     * Runs through processBeforeForm
     *
     * @param    string        Raw text
     * @return    string        Processed text
     */
      
public function unProcessRawPost$text )
      {
          return 
$this->class_editor->processBeforeForm$text );
      }
}
Онлайн: 0
Реклама