Вход Регистрация
Файл: admin/applications/forums/modules_public/extras/legends.php
Строк: 87
<?php
/**
 * <pre>
 * Invision Power Services
 * IP.Board v3.3.3
 * Emoticon and BBCode Legends
 * Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
 * </pre>
 *
 * @author         $Author $
 * @copyright    (c) 2001 - 2009 Invision Power Services, Inc.
 * @license        http://www.invisionpower.com/company/standards.php#license
 * @package        IP.Board
 * @subpackage    Forums
 * @link        http://www.invisionpower.com
 * @version        $Rev: 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 
public_forums_extras_legends extends ipsCommand
{
    
/**
     * Output
     *
     * @var        string
     */
    
public $output    "";

    
/**
     * Class entry point
     *
     * @param    object        Registry reference
     * @return    @e void        [Outputs to screen/redirects]
     */
    
public function doExecuteipsRegistry $registry )
    {
        
/* Load language */
        
$this->registry->class_localization->loadLanguageFile( array( 'public_legends' ), 'forums' );

        
/* What to do */
        
switch( $this->request['do'] )
        {
            case 
'bbcode':
                
$this->bbcodePopUpList();
            break;
                
            case 
'emoticons':            
            default:
                
$this->emoticonsPopUpList();
            break;
        }
        
        
/* If we have any HTML to print, do so... */
        
$this->registry->getClass('output')->setTitle$this->page_title ' - ' ipsRegistry::$settings['board_name'] );
        
$this->registry->getClass('output')->popUpWindow$this->output );
    }

    
/**
     * Displays the emoticon list popup
     *
     * @return    @e void
     */
     
public function emoticonsPopUpList()
     {
        
/* INIT */
        
$this->page_title $this->lang->words['emo_title'];
         
$smilie_id        0;
         
$editor_id        IPSText::alphanumericalClean$this->request['editor_id'] );

        
/* Query the emoticons */
         
$this->DB->build( array( 'select' => 'typed, image''from' => 'emoticons''where' => "emo_set='".$this->registry->output->skin['set_emo_dir']."'"'order' => 'emo_position asc' ) );
        
$this->DB->execute();
        
        
/* Loop through and build output array */
        
$rows = array();
        
        if( 
$this->DB->getTotalRows() )
        {
            while( 
$r $this->DB->fetch() )
            {
                
$smilie_id++;
                
                if( 
strstr$r['typed'], "&quot;" ) )
                {
                    
$in_delim  "'";
                    
$out_delim '"';
                }
                else
                {
                    
$in_delim  '"';
                    
$out_delim "'";
                }
                
                
$rows[] = array(
                                
'code'       => stripslashes$r['typed'] ),
                                
'image'      => stripslashes$r['image'] ),
                                
'in'         => $in_delim,
                                
'out'        => $out_delim,
                                
'smilie_id' =>    $smilie_id                            
                            
);                    
            }
        }
        
        
/* Output */
        
$this->output .= $this->registry->getClass('output')->getTemplate('legends')->emoticonPopUpList$editor_id$rows );
    }
     
    
/**
     * Show BBCode Helpy file
     *
     * @return    @e void
     */
     
public function bbcodePopUpList()
     {
        
/* Load the Parser */
        
IPSText::resetTextClass('bbcode');
        
IPSText::getTextClass'bbcode' )->parse_smilies    1;
        
IPSText::getTextClass'bbcode' )->parse_html        0;
        
IPSText::getTextClass'bbcode' )->parse_bbcode        1;
        
IPSText::getTextClass'bbcode' )->parsing_section    'global';

        
/* Loop through the bbcode and build the output array */        
        
$rows = array();

        
/* Add in custom bbcode */
        
if( count$this->caches['bbcode'] ) )
        {
            foreach(
$this->caches['bbcode'] as $row )
            {
                if( 
$row['bbcode_groups'] != 'all' )
                {
                    
$pass        false;
                    
$groups        array_diffexplode','$row['bbcode_groups'] ), array('') );
                    
$mygroups    = array( $this->memberData['member_group_id'] );
                    
$mygroups    array_diffarray_merge$mygroupsexplode','IPSText::cleanPermString$this->memberData['mgroup_others'] ) ) ), array('') );
                    
                    foreach( 
$groups as $g_id )
                    {
                        if( 
in_array$g_id$mygroups ) )
                        {
                            
$pass true;
                            break;
                        }
                    }
                    
                    if( !
$pass )
                    {
                        continue;
                    }
                }

                if( 
$row['bbcode_tag'] == 'member' )
                {
                    
$row['bbcode_example'] = str_replace'[member=admin]''[member=' $this->memberData['members_display_name'] . ']'$row['bbcode_example'] );
                }

                
$before  htmlspecialchars$row['bbcode_example'] );
                
$t       IPSText::getTextClass'bbcode' )->preDisplayParseIPSText::getTextClass'bbcode' )->preDbParse$before ) );                

                
$before preg_replace"#([".$row['bbcode_tag']."(?:[^]]+)?])#is"$this->registry->output->getTemplate('legends')->wrap_tag("\1"), $before );
                
$before preg_replace"#([/".$row['bbcode_tag']."])#is"          $this->registry->output->getTemplate('legends')->wrap_tag("\1"), $before );

                
$rows[] = array( 
                                
'title'  => $row['bbcode_title'],
                                
'desc'   => $row['bbcode_desc'],
                                
'before' => nl2br$before ),
                                
'after'  => $t,
                            );                
            }
        }
        
        
/* Output */
        
$this->page_title $this->lang->words['bbc_title'];        
        
$this->output    .= $this->registry->getClass('output')->getTemplate('legends')->bbcodePopUpList$rows );        
     }
}
Онлайн: 3
Реклама