Skip to:
Content

bbPress.org

Ticket #1884: 1884.3.diff

File 1884.3.diff, 19.6 KB (added by netweb, 8 years ago)

Fix now strips custom phpBB codes with regex from $field first then the clean $field is parsed with parser.php to decode remaining HTML | 8 new phpBB user profile fields mapped to _usermeta | Whitespace & Inline Docs also updated for import tools consistency.

  • bbPress/admin/converters/phpBB.php

    diff --git a/bbPress/admin/converters/phpBB.php b/bbPress/admin/converters/phpBB.php
    index 8f3a03c..2d8a466 100644
    a b  
    11<?php
    22
    33/**
    4  * Implementation of phpBB converter.
     4 * Implementation of phpBB v3 converter.
     5 *
     6 * @since bbPress (r4689)
    57 */
    68class phpBB extends BBP_Converter_Base {
     9
     10        /**
     11         * Main Constructor
     12         *
     13         * @uses phpBB::setup_globals()
     14         */
    715        function __construct() {
    816                parent::__construct();
    917                $this->setup_globals();
    1018        }
    1119
     20        /**
     21         * Sets up the field mappings
     22         */
     23
    1224        public function setup_globals() {
    1325
    1426                /** Forum Section ******************************************************/
    1527
    16                 // Forum id. Stored in postmeta.
     28                // Forum id (Stored in postmeta)
    1729                $this->field_map[] = array(
    1830                        'from_tablename' => 'forums',
    1931                        'from_fieldname' => 'forum_id',
    class phpBB extends BBP_Converter_Base { 
    2133                        'to_fieldname'   => '_bbp_forum_id'
    2234                );
    2335               
    24                 // Forum parent id.  If no parent, than 0. Stored in postmeta.
     36                // Forum parent id (If no parent, than 0, Stored in postmeta)
    2537                $this->field_map[] = array(
    2638                        'from_tablename' => 'forums',
    2739                        'from_fieldname' => 'parent_id',
    2840                        'to_type'        => 'forum',
    29                         'to_fieldname'   => '_bbp_parent_id'
     41                        'to_fieldname'   => '_bbp_forum_parent_id'
    3042                );
    3143               
    3244                // Forum title.
    class phpBB extends BBP_Converter_Base { 
    3749                        'to_fieldname'   => 'post_title'
    3850                );
    3951               
    40                 // Forum slug. Clean name.
     52                // Forum slug (Clean name to avoid conflicts)
    4153                $this->field_map[] = array(
    4254                        'from_tablename'  => 'forums',
    4355                        'from_fieldname'  => 'forum_name',
    class phpBB extends BBP_Converter_Base { 
    5567                        'callback_method' => 'callback_null'
    5668                );
    5769               
    58                 // Forum display order.  Starts from 1.
     70                // Forum display order (Starts from 1)
    5971                $this->field_map[] = array(
    6072                        'from_tablename' => 'forums',
    6173                        'from_fieldname' => 'display_on_index',
    class phpBB extends BBP_Converter_Base { 
    8799
    88100                /** Topic Section ******************************************************/
    89101
    90                 // Topic id. Stored in postmeta.
     102                // Topic id (Stored in postmeta)
    91103                $this->field_map[] = array(
    92104                        'from_tablename' => 'topics',
    93105                        'from_fieldname' => 'topic_id',
    class phpBB extends BBP_Converter_Base { 
    95107                        'to_fieldname'   => '_bbp_topic_id'
    96108                );
    97109               
    98                 // Forum id. Stored in postmeta.
     110                // Forum id (Stored in postmeta)
    99111                $this->field_map[] = array(
    100112                        'from_tablename'  => 'topics',
    101113                        'from_fieldname'  => 'forum_id',
    class phpBB extends BBP_Converter_Base { 
    103115                        'to_fieldname'    => '_bbp_forum_id',
    104116                        'callback_method' => 'callback_forumid'
    105117                );
    106                                
     118
    107119                // Topic author.
    108120                $this->field_map[] = array(
    109121                        'from_tablename'  => 'topics',
    class phpBB extends BBP_Converter_Base { 
    114126                );
    115127
    116128                // Topic content.
     129                // Note: We join the posts table because topics do not have content.
    117130                $this->field_map[] = array(
    118131                        'from_tablename'  => 'posts',
    119132                        'from_fieldname'  => 'post_text',
    class phpBB extends BBP_Converter_Base { 
    123136                        'to_type'         => 'topic',
    124137                        'to_fieldname'    => 'post_content',
    125138                        'callback_method' => 'callback_html'
    126                 );     
     139                );
    127140
    128141                // Topic title.
    129142                $this->field_map[] = array(
    class phpBB extends BBP_Converter_Base { 
    133146                        'to_fieldname'   => 'post_title'
    134147                );
    135148               
    136                 // Topic slug. Clean name.
     149                // Topic slug (Clean name to avoid conflicts)
    137150                $this->field_map[] = array(
    138151                        'from_tablename'  => 'topics',
    139152                        'from_fieldname'  => 'topic_title',
    class phpBB extends BBP_Converter_Base { 
    141154                        'to_fieldname'    => 'post_name',
    142155                        'callback_method' => 'callback_slug'
    143156                );
    144                
    145                 // Forum id.  If no parent, than 0.
     157
     158                // Forum id (If no parent, than 0)
    146159                $this->field_map[] = array(
    147160                        'from_tablename'  => 'topics',
    148161                        'from_fieldname'  => 'forum_id',
    class phpBB extends BBP_Converter_Base { 
    213226                );             
    214227                */
    215228               
    216                 /** Post Section ******************************************************/
     229                /** Reply Section *****************************************************/
    217230
    218                 // Post id. Stored in postmeta.
     231                // Post id (Stored in postmeta)
    219232                $this->field_map[] = array(
    220233                        'from_tablename' => 'posts',
    221234                        'from_fieldname' => 'post_id',
    222235                        'to_type'        => 'reply',
    223236                        'to_fieldname'   => '_bbp_post_id'
    224237                );
    225                
     238
    226239                // Topic content.
    227240                $this->field_map[] = array(
    228241                        'from_tablename'  => 'topics',
    class phpBB extends BBP_Converter_Base { 
    231244                        'join_type'       => 'LEFT',
    232245                        'join_expression' => 'USING (topic_id) WHERE posts.post_id != topics.topic_first_post_id',
    233246                        'to_type'         => 'reply'
    234                 );     
    235                
    236                 // Forum id. Stored in postmeta.
     247                );
     248
     249                // Forum id (Stored in postmeta)
    237250                $this->field_map[] = array(
    238251                        'from_tablename'  => 'posts',
    239252                        'from_fieldname'  => 'forum_id',
    class phpBB extends BBP_Converter_Base { 
    241254                        'to_fieldname'    => '_bbp_forum_id',
    242255                        'callback_method' => 'callback_topicid_to_forumid'
    243256                );
    244                
    245                 // Topic id. Stored in postmeta.
     257
     258                // Topic id (Stored in postmeta)
    246259                $this->field_map[] = array(
    247260                        'from_tablename'  => 'posts',
    248261                        'from_fieldname'  => 'topic_id',
    class phpBB extends BBP_Converter_Base { 
    250263                        'to_fieldname'    => '_bbp_topic_id',
    251264                        'callback_method' => 'callback_topicid'
    252265                );
    253                
    254                 // Author ip. Stored in postmeta.
     266
     267                // Author ip (Stored in postmeta)
    255268                $this->field_map[] = array(
    256269                        'from_tablename' => 'posts',
    257270                        'from_fieldname' => 'poster_ip',
    258271                        'to_type'        => 'reply',
    259272                        'to_fieldname'   => '_bbp_author_ip'
    260                 );     
    261                        
     273                );
     274
    262275                // Post author.
    263276                $this->field_map[] = array(
    264277                        'from_tablename'  => 'posts',
    class phpBB extends BBP_Converter_Base { 
    267280                        'to_fieldname'    => 'post_author',
    268281                        'callback_method' => 'callback_userid'
    269282                );
    270                
     283
    271284                // Topic title.
    272285                $this->field_map[] = array(
    273286                        'from_tablename' => 'posts',
    class phpBB extends BBP_Converter_Base { 
    275288                        'to_type'        => 'reply',
    276289                        'to_fieldname'   => 'post_title'
    277290                );
    278                
    279                 // Topic slug. Clean name.
     291
     292                // Topic slug (Clean name to avoid conflicts)
    280293                $this->field_map[] = array(
    281294                        'from_tablename'  => 'posts',
    282295                        'from_fieldname'  => 'post_subject',
    class phpBB extends BBP_Converter_Base { 
    284297                        'to_fieldname'    => 'post_name',
    285298                        'callback_method' => 'callback_slug'
    286299                );
    287                
     300
    288301                // Post content.
    289302                $this->field_map[] = array(
    290303                        'from_tablename'  => 'posts',
    class phpBB extends BBP_Converter_Base { 
    293306                        'to_fieldname'    => 'post_content',
    294307                        'callback_method' => 'callback_html'
    295308                );
    296                
    297                 // Topic id.  If no parent, than 0.
     309
     310                // Topic id (If no parent, than 0)
    298311                $this->field_map[] = array(
    299312                        'from_tablename'  => 'posts',
    300313                        'from_fieldname'  => 'topic_id',
    class phpBB extends BBP_Converter_Base { 
    335348
    336349                /** User Section ******************************************************/
    337350
    338                 // Store old User id. Stored in usermeta.
     351                // Store old User id (Stored in usermeta)
    339352                $this->field_map[] = array(
    340353                        'from_tablename' => 'users',
    341354                        'from_fieldname' => 'user_id',
    342355                        'to_type'        => 'user',
    343356                        'to_fieldname'   => '_bbp_user_id'
    344357                );
    345                
    346                 // Store old User password. Stored in usermeta serialized with salt.
     358
     359                // Store old User password (Stored in usermeta serialized with salt)
    347360                $this->field_map[] = array(
    348361                        'from_tablename'  => 'users',
    349362                        'from_fieldname'  => 'user_password',
    class phpBB extends BBP_Converter_Base { 
    352365                        'callback_method' => 'callback_savepass'
    353366                );
    354367
    355                 // Store old User Salt. This is only used for the SELECT row info for the above password save
     368                // Store old User Salt (This is only used for the SELECT row info for the above password save)
    356369                $this->field_map[] = array(
    357370                        'from_tablename' => 'users',
    358371                        'from_fieldname' => 'user_form_salt',
    359372                        'to_type'        => 'user',
    360373                        'to_fieldname'   => ''
    361374                );
    362                                
    363                 // User password verify class. Stored in usermeta for verifying password.
     375
     376                // User password verify class (Stored in usermeta for verifying password)
    364377                $this->field_map[] = array(
    365378                        'to_type'      => 'user',
    366379                        'to_fieldname' => '_bbp_class',
    367380                        'default'      => 'phpBB'
    368381                );
    369                                
     382
    370383                // User name.
    371384                $this->field_map[] = array(
    372385                        'from_tablename' => 'users',
    class phpBB extends BBP_Converter_Base { 
    374387                        'to_type'        => 'user',
    375388                        'to_fieldname'   => 'user_login'
    376389                );
    377                                
     390
    378391                // User email.
    379392                $this->field_map[] = array(
    380393                        'from_tablename' => 'users',
    class phpBB extends BBP_Converter_Base { 
    382395                        'to_type'        => 'user',
    383396                        'to_fieldname'   => 'user_email'
    384397                );
    385                
     398
    386399                // User homepage.
    387400                $this->field_map[] = array(
    388401                        'from_tablename' => 'users',
    class phpBB extends BBP_Converter_Base { 
    390403                        'to_type'        => 'user',
    391404                        'to_fieldname'   => 'user_url'
    392405                );
    393                
     406
    394407                // User registered.
    395408                $this->field_map[] = array(
    396409                        'from_tablename'  => 'users',
    class phpBB extends BBP_Converter_Base { 
    399412                        'to_fieldname'    => 'user_registered',
    400413                        'callback_method' => 'callback_datetime'
    401414                );
    402                
    403                 // User aim.
     415
     416                // Store ICQ (Stored in usermeta)
     417                $this->field_map[] = array(
     418                        'from_tablename' => 'users',
     419                        'from_fieldname' => 'user_icq',
     420                        'to_type'        => 'user',
     421                        'to_fieldname'   => '_bbp_phpbb_old_user_icq'
     422                );
     423
     424                // User aim (Stored in usermeta)
    404425                $this->field_map[] = array(
    405426                        'from_tablename' => 'users',
    406427                        'from_fieldname' => 'user_aim',
    407428                        'to_type'        => 'user',
    408429                        'to_fieldname'   => 'aim'
    409430                );
    410                
    411                 // User yahoo.
     431
     432                // User yahoo (Stored in usermeta)
    412433                $this->field_map[] = array(
    413434                        'from_tablename' => 'users',
    414435                        'from_fieldname' => 'user_yim',
    415436                        'to_type'        => 'user',
    416437                        'to_fieldname'   => 'yim'
    417                 );     
     438                );
     439
     440                // Store MSNM (Stored in usermeta)
     441                $this->field_map[] = array(
     442                        'from_tablename' => 'users',
     443                        'from_fieldname' => 'user_msnm',
     444                        'to_type'        => 'user',
     445                        'to_fieldname'   => '_bbp_phpbb_old_user_msnm'
     446                );
     447
     448                // Store Jabber
     449                $this->field_map[] = array(
     450                        'from_tablename' => 'users',
     451                        'from_fieldname' => 'user_jabber',
     452                        'to_type'        => 'user',
     453                        'to_fieldname'   => 'jabber'
     454                );
     455
     456                // Store Occupation (Stored in usermeta)
     457                $this->field_map[] = array(
     458                        'from_tablename' => 'users',
     459                        'from_fieldname' => 'user_occ',
     460                        'to_type'        => 'user',
     461                        'to_fieldname'   => '_bbp_phpbb_old_user_occ'
     462                );
     463
     464                // Store Interests (Stored in usermeta)
     465                $this->field_map[] = array(
     466                        'from_tablename' => 'users',
     467                        'from_fieldname' => 'user_interests',
     468                        'to_type'        => 'user',
     469                        'to_fieldname'   => '_bbp_phpbb_old_user_interests'
     470                );
     471
     472                // Store Signature (Stored in usermeta)
     473                $this->field_map[] = array(
     474                        'from_tablename' => 'users',
     475                        'from_fieldname' => 'user_sig',
     476                        'to_type'        => 'user',
     477                        'to_fieldname'   => '_bbp_phpbb_old_user_signature',
     478                        'callback_method' => 'callback_html'
     479                );
     480
     481                // Store Location (Stored in usermeta)
     482                $this->field_map[] = array(
     483                        'from_tablename' => 'users',
     484                        'from_fieldname' => 'user_from',
     485                        'to_type'        => 'user',
     486                        'to_fieldname'   => '_bbp_phpbb_old_user_location'
     487                );
     488
     489                // Store Avatar Filename (Stored in usermeta)
     490                $this->field_map[] = array(
     491                        'from_tablename' => 'users',
     492                        'from_fieldname' => 'user_avatar',
     493                        'to_type'        => 'user',
     494                        'to_fieldname'   => '_bbp_phpbb_old_user_avatar_filename'
     495                );
     496
    418497        }
    419498
    420499        /**
    class phpBB extends BBP_Converter_Base { 
    446525        public function authenticate_pass($password, $serialized_pass) {
    447526                $itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    448527                $pass_array = unserialize($serialized_pass);
    449                 if (strlen($pass_array['hash']) == 34) {                               
     528                if (strlen($pass_array['hash']) == 34) {
    450529                        return ($this->_hash_crypt_private($password, $pass_array['hash'], $itoa64) === $pass_array['hash']) ? true : false;
    451530                }
    452        
     531
    453532                return (md5($password) === $pass_array['hash']) ? true : false;
    454533        }
    455534       
    class phpBB extends BBP_Converter_Base { 
    458537         */
    459538        private function _hash_crypt_private($password, $setting, &$itoa64) {
    460539                $output = '*';
    461        
     540
    462541                // Check for correct hash
    463542                if (substr($setting, 0, 3) != '$H$') {
    464543                        return $output;
    465544                }
    466        
     545
    467546                $count_log2 = strpos($itoa64, $setting[3]);
    468        
     547
    469548                if ($count_log2 < 7 || $count_log2 > 30) {
    470549                        return $output;
    471550                }
    472        
     551
    473552                $count = 1 << $count_log2;
    474553                $salt = substr($setting, 4, 8);
    475        
     554
    476555                if (strlen($salt) != 8) {
    477556                        return $output;
    478557                }
    479        
     558
    480559                /**
    481560                 * We're kind of forced to use MD5 here since it's the only
    482561                 * cryptographic primitive available in all versions of PHP
    class phpBB extends BBP_Converter_Base { 
    502581
    503582                $output = substr($setting, 0, 12);
    504583                $output .= $this->_hash_encode64($hash, 16, $itoa64);
    505        
     584
    506585                return $output;
    507586        }
    508                
     587
    509588        /**
    510589         * Encode hash
    511590         */
    512591        private function _hash_encode64($input, $count, &$itoa64) {
    513592                $output = '';
    514593                $i = 0;
    515        
     594
    516595                do {
    517596                        $value = ord($input[$i++]);
    518597                        $output .= $itoa64[$value & 0x3f];
    519        
     598
    520599                        if ($i < $count) {
    521600                                $value |= ord($input[$i]) << 8;
    522601                        }
    523        
     602
    524603                        $output .= $itoa64[($value >> 6) & 0x3f];
    525        
     604
    526605                        if ($i++ >= $count) {
    527606                                break;
    528607                        }
    529        
     608
    530609                        if ($i < $count) {
    531610                                $value |= ord($input[$i]) << 16;
    532611                        }
    533        
     612
    534613                        $output .= $itoa64[($value >> 12) & 0x3f];
    535        
     614
    536615                        if ($i++ >= $count) {
    537616                                break;
    538617                        }
    539        
     618
    540619                        $output .= $itoa64[($value >> 18) & 0x3f];
    541620                }
    542621                while ($i < $count);
    543        
     622
    544623                return $output;
    545624        }
    546625
    class phpBB extends BBP_Converter_Base { 
    563642                }
    564643                return $status;
    565644        }
    566 }
     645
     646        /**
     647         * This callback processes any custom parser.php attributes and custom code with preg_replace
     648         */
     649        protected function callback_html( $field ) {
     650
     651                // Strip any custom phpBB 'magic_url' and 'bbcode_uid' first from $field before parsing to parser.php
     652                $phpbb_uid = $field;
     653                $phpbb_uid = html_entity_decode ( $phpbb_uid );
     654
     655                // Replace '[b:XXXXXXX]' with '<strong>'
     656                $phpbb_uid = preg_replace ( '/\[b:(.*?)\]/'   , '<strong>'  , $phpbb_uid );
     657                // Replace '[/b:XXXXXXX]' with '</strong>'
     658                $phpbb_uid = preg_replace ( '/\[\/b:(.*?)\]/' , '</strong>' , $phpbb_uid );
     659
     660                // Replace '[i:XXXXXXX]' with '<em>'
     661                $phpbb_uid = preg_replace ( '/\[i:(.*?)\]/'   , '<em>'      , $phpbb_uid );
     662                // Replace '[/i:XXXXXXX]' with '</em>'
     663                $phpbb_uid = preg_replace ( '/\[\/i:(.*?)\]/' , '</em>'     , $phpbb_uid );
     664
     665                // Replace '[u:XXXXXXX]' with '<u>'
     666                $phpbb_uid = preg_replace ( '/\[u:(.*?)\]/'   , '<u>'       , $phpbb_uid );
     667                // Replace '[/u:XXXXXXX]' with '</u>'
     668                $phpbb_uid = preg_replace ( '/\[\/u:(.*?)\]/' , '</u>'      , $phpbb_uid );
     669
     670                // Replace '[quote:XXXXXXX]' with '<blockquote>'
     671                $phpbb_uid = preg_replace ( '/\[quote:(.*?)\]/'         , '<blockquote>'                   , $phpbb_uid );
     672                // Replace '[quote="$1"]' with '<em>$1 wrote:</em><blockquote>"
     673                $phpbb_uid = preg_replace ( '/\[quote="(.*?)":(.*?)\]/' , '<em>$1 wrote:</em><blockquote>' , $phpbb_uid );
     674                // Replace '[/quote:XXXXXXX]' with '</blockquote>'
     675                $phpbb_uid = preg_replace ( '/\[\/quote:(.*?)\]/'       , '</blockquote>'                  , $phpbb_uid );
     676
     677                // Replace '[img:XXXXXXX]' with '<img src="'
     678                $phpbb_uid = preg_replace ( '/\[img:(.*?)\]/'   , '<img src="' , $phpbb_uid );
     679                // Replace '[/img:XXXXXXX]' with ' alt="">'
     680                $phpbb_uid = preg_replace ( '/\[\/img:(.*?)\]/' , '" alt="">'  , $phpbb_uid );
     681
     682                // Replace '<!-- s$1 --><img src=\"{SMILIES_PATH}$2 -->' with '$1'
     683                $phpbb_uid = preg_replace ( '/<!-- s(.*?) --><img src=\"{SMILIES_PATH}(.*?)-->/' , '$1' , $phpbb_uid );
     684
     685                // Replace '<!-- m --><a class="postlink" href="$1">$1</a><!-- m -->' with '$1'
     686                $phpbb_uid = preg_replace ( '/\<!-- m --\>\<a class="postlink" href="([^\[]+?)"\>([^\[]+?)\<\/a\>\<!-- m --\>/' , '$1' , $phpbb_uid );
     687
     688                // Replace '[url:XXXXXXX]$1[/url:XXXXXXX]' with '<a href="http://$1">$1</a>'
     689                $phpbb_uid = preg_replace ( '/\[url:(?:[^\]]+)\]([^\[]+?)\[\/url:(?:[^\]]+)\]/'       , '<a href="http://$1">$1</a>'  , $phpbb_uid );
     690                // Replace '[url=http://$1:XXXXXXX]$3[/url:XXXXXXX]' with '<a href="http://$1">$3</a>'
     691                $phpbb_uid = preg_replace ( '/\[url\=http\:\/\/(.*?)\:(.*?)\](.*?)\[\/url:(.*?)\]/i'  , '<a href="http://$1">$3</a>'  , $phpbb_uid );
     692                // Replace '[url=https://$1:XXXXXXX]$3[/url:XXXXXXX]' with '<a href="http://$1">$3</a>'
     693                $phpbb_uid = preg_replace ( '/\[url\=https\:\/\/(.*?)\:(.*?)\](.*?)\[\/url:(.*?)\]/i' , '<a href="https://$1">$3</a>' , $phpbb_uid );
     694
     695                // Replace '[email:XXXXXXX]' with '<a href="mailto:$2">$2</a>'
     696                $phpbb_uid = preg_replace ( '/\[email:(.*?)\](.*?)\[\/email:(.*?)\]/' , '<a href="mailto:$2">$2</a>' , $phpbb_uid );
     697                // Replace '<!-- e -->no.one@domain.adr<!-- e -->' with '$1'
     698                $phpbb_uid = preg_replace ( '/\<!-- e --\>(.*?)\<!-- e --\>/' , '$1' , $phpbb_uid );
     699
     700                // Replace '[code:XXXXXXX]' with '<pre><code>'
     701                $phpbb_uid = preg_replace ( '/\[code:(.*?)\]/'   , '<pre><code>'   , $phpbb_uid );
     702                // Replace '[/code:XXXXXXX]' with '</code></pre>'
     703                $phpbb_uid = preg_replace ( '/\[\/code:(.*?)\]/' , '</code></pre>' , $phpbb_uid );
     704
     705                // Replace '[color=$1:XXXXXXXX]' with '<span style="color:$1">'
     706                $phpbb_uid = preg_replace ( '/\[color=(.*?)\:(.*?)\]/' , '<span style="color: $1">' , $phpbb_uid );
     707                // Replace '[/color:XXXXXXX]' with '</span>'
     708                $phpbb_uid = preg_replace ( '/\[\/color:(.*?)\]/'     , '</span>'                 , $phpbb_uid );
     709
     710                // Replace '[size=$1:XXXXXXXX]' with '<span style="font-size:$1%;">$3</span>'
     711                $phpbb_uid = preg_replace ( '/\[size=(.*?):(.*?)\]/' , '<span style="font-size:$1%;">' , $phpbb_uid );
     712                // Replace '[/size:XXXXXXX]' with ''
     713                $phpbb_uid = preg_replace ( '/\[\/size:(.*?)\]/'     , '</span>'                       , $phpbb_uid );
     714
     715                // Replace '[list:XXXXXXX]' with '<ul>'
     716                $phpbb_uid = preg_replace ( '/\[list:(.*?)\]/'     , '<ul>'          , $phpbb_uid );
     717                // Replace '[list=a:XXXXXXX]' with '<ol type="a">'
     718                $phpbb_uid = preg_replace ( '/\[list=a:(.*?)\]/'   , '<ol type="a">' , $phpbb_uid );
     719                // Replace '[list=1:XXXXXXX]' with '<ol>'
     720                $phpbb_uid = preg_replace ( '/\[list=1:(.*?)\]/'   , '<ol>'          , $phpbb_uid );
     721                // Replace '[*:XXXXXXX]' with '<li>'
     722                $phpbb_uid = preg_replace ( '/\[\*:(.*?)\]/'       , '<li>'          , $phpbb_uid );
     723                // Replace '[/*:m:XXXXXXX]' with '</li>'
     724                $phpbb_uid = preg_replace ( '/\[\/\*:m:(.*?)\]/'   , '</li>'         , $phpbb_uid );
     725                // Replace '[/list:u:XXXXXXX]' with '</ul>'
     726                $phpbb_uid = preg_replace ( '/\[\/list:u:(.*?)\]/' , '</ul>'         , $phpbb_uid );
     727                // Replace '[/list:o:XXXXXXX]' with '</ol>'
     728                $phpbb_uid = preg_replace ( '/\[\/list:o:(.*?)\]/' , '</ol>'         , $phpbb_uid );
     729
     730                // Now that phpBB's 'magic_url' and 'bbcode_uid' have been stripped put the cleaned HTML back in $field
     731                $field = $phpbb_uid;
     732
     733                // Parse out any bbCodes with the BBCode 'parser.php'
     734                require_once( bbpress()->admin->admin_dir . 'parser.php' );
     735                $bbcode = BBCode::getInstance();
     736                $bbcode->enable_smileys = false;
     737                $bbcode->smiley_regex   = false;
     738                return html_entity_decode( $bbcode->Parse( $field ) );
     739
     740        }
     741}
     742 No newline at end of file