Skip to:
Content

bbPress.org

Ticket #1884: 1884.2.diff

File 1884.2.diff, 12.4 KB (added by netweb, 8 years ago)

Update with fixed _bbp_forum_parent_id and inline docs

  • bbPress/admin/converters/phpBB.php

    diff --git a/bbPress/admin/converters/phpBB.php b/bbPress/admin/converters/phpBB.php
    index 8f3a03c..1b5e020 100644
    a b  
    11<?php
    22
    33/**
    4  * Implementation of phpBB converter.
     4 * phpBB v3 converter
     5 *
     6 * @since bbPress (r)
    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         */
    1223        public function setup_globals() {
    1324
    1425                /** Forum Section ******************************************************/
    1526
    16                 // Forum id. Stored in postmeta.
     27                // Forum id (Stored in postmeta)
    1728                $this->field_map[] = array(
    1829                        'from_tablename' => 'forums',
    1930                        'from_fieldname' => 'forum_id',
    class phpBB extends BBP_Converter_Base { 
    2132                        'to_fieldname'   => '_bbp_forum_id'
    2233                );
    2334               
    24                 // Forum parent id.  If no parent, than 0. Stored in postmeta.
     35                // Forum parent id (If no parent, than 0, Stored in postmeta)
    2536                $this->field_map[] = array(
    2637                        'from_tablename' => 'forums',
    2738                        'from_fieldname' => 'parent_id',
    2839                        'to_type'        => 'forum',
    29                         'to_fieldname'   => '_bbp_parent_id'
     40                        'to_fieldname'   => '_bbp_forum_parent_id'
    3041                );
    3142               
    3243                // Forum title.
    class phpBB extends BBP_Converter_Base { 
    3748                        'to_fieldname'   => 'post_title'
    3849                );
    3950               
    40                 // Forum slug. Clean name.
     51                // Forum slug (Clean name to avoid conflicts)
    4152                $this->field_map[] = array(
    4253                        'from_tablename'  => 'forums',
    4354                        'from_fieldname'  => 'forum_name',
    class phpBB extends BBP_Converter_Base { 
    5566                        'callback_method' => 'callback_null'
    5667                );
    5768               
    58                 // Forum display order.  Starts from 1.
     69                // Forum display order (Starts from 1)
    5970                $this->field_map[] = array(
    6071                        'from_tablename' => 'forums',
    6172                        'from_fieldname' => 'display_on_index',
    class phpBB extends BBP_Converter_Base { 
    8798
    8899                /** Topic Section ******************************************************/
    89100
    90                 // Topic id. Stored in postmeta.
     101                // Topic id (Stored in postmeta)
    91102                $this->field_map[] = array(
    92103                        'from_tablename' => 'topics',
    93104                        'from_fieldname' => 'topic_id',
    class phpBB extends BBP_Converter_Base { 
    95106                        'to_fieldname'   => '_bbp_topic_id'
    96107                );
    97108               
    98                 // Forum id. Stored in postmeta.
     109                // Forum id (Stored in postmeta)
    99110                $this->field_map[] = array(
    100111                        'from_tablename'  => 'topics',
    101112                        'from_fieldname'  => 'forum_id',
    class phpBB extends BBP_Converter_Base { 
    114125                );
    115126
    116127                // Topic content.
     128                // Note: We join the posts table because topics do not have content.
    117129                $this->field_map[] = array(
    118130                        'from_tablename'  => 'posts',
    119131                        'from_fieldname'  => 'post_text',
    class phpBB extends BBP_Converter_Base { 
    133145                        'to_fieldname'   => 'post_title'
    134146                );
    135147               
    136                 // Topic slug. Clean name.
     148                // Topic slug (Clean name to avoid conflicts)
    137149                $this->field_map[] = array(
    138150                        'from_tablename'  => 'topics',
    139151                        'from_fieldname'  => 'topic_title',
    class phpBB extends BBP_Converter_Base { 
    142154                        'callback_method' => 'callback_slug'
    143155                );
    144156               
    145                 // Forum id.  If no parent, than 0.
     157                // Forum id (If no parent, than 0)
    146158                $this->field_map[] = array(
    147159                        'from_tablename'  => 'topics',
    148160                        'from_fieldname'  => 'forum_id',
    class phpBB extends BBP_Converter_Base { 
    190202                        'callback_method' => 'callback_topic_status'
    191203                );
    192204
    193                 /** Tags Section ******************************************************/
     205                /** Tags Section *******************************************************/
    194206                /*
    195207                // Topic id.
    196208                $this->field_map[] = array(
    class phpBB extends BBP_Converter_Base { 
    213225                );             
    214226                */
    215227               
    216                 /** Post Section ******************************************************/
     228                /** Reply Section ******************************************************/
    217229
    218                 // Post id. Stored in postmeta.
     230                // Post id (Stored in postmeta)
    219231                $this->field_map[] = array(
    220232                        'from_tablename' => 'posts',
    221233                        'from_fieldname' => 'post_id',
    class phpBB extends BBP_Converter_Base { 
    233245                        'to_type'         => 'reply'
    234246                );     
    235247               
    236                 // Forum id. Stored in postmeta.
     248                // Forum id (Stored in postmeta)
    237249                $this->field_map[] = array(
    238250                        'from_tablename'  => 'posts',
    239251                        'from_fieldname'  => 'forum_id',
    class phpBB extends BBP_Converter_Base { 
    242254                        'callback_method' => 'callback_topicid_to_forumid'
    243255                );
    244256               
    245                 // Topic id. Stored in postmeta.
     257                // Topic id (Stored in postmeta)
    246258                $this->field_map[] = array(
    247259                        'from_tablename'  => 'posts',
    248260                        'from_fieldname'  => 'topic_id',
    class phpBB extends BBP_Converter_Base { 
    251263                        'callback_method' => 'callback_topicid'
    252264                );
    253265               
    254                 // Author ip. Stored in postmeta.
     266                // Author ip (Stored in postmeta)
    255267                $this->field_map[] = array(
    256268                        'from_tablename' => 'posts',
    257269                        'from_fieldname' => 'poster_ip',
    class phpBB extends BBP_Converter_Base { 
    276288                        'to_fieldname'   => 'post_title'
    277289                );
    278290               
    279                 // Topic slug. Clean name.
     291                // Topic slug (Clean name to avoid conflicts)
    280292                $this->field_map[] = array(
    281293                        'from_tablename'  => 'posts',
    282294                        'from_fieldname'  => 'post_subject',
    class phpBB extends BBP_Converter_Base { 
    294306                        'callback_method' => 'callback_html'
    295307                );
    296308               
    297                 // Topic id.  If no parent, than 0.
     309                // Topic id (If no parent, than 0)
    298310                $this->field_map[] = array(
    299311                        'from_tablename'  => 'posts',
    300312                        'from_fieldname'  => 'topic_id',
    class phpBB extends BBP_Converter_Base { 
    335347
    336348                /** User Section ******************************************************/
    337349
    338                 // Store old User id. Stored in usermeta.
     350                // Store old User id (Stored in usermeta)
    339351                $this->field_map[] = array(
    340352                        'from_tablename' => 'users',
    341353                        'from_fieldname' => 'user_id',
    class phpBB extends BBP_Converter_Base { 
    343355                        'to_fieldname'   => '_bbp_user_id'
    344356                );
    345357               
    346                 // Store old User password. Stored in usermeta serialized with salt.
     358                // Store old User password (Stored in usermeta serialized with salt)
    347359                $this->field_map[] = array(
    348360                        'from_tablename'  => 'users',
    349361                        'from_fieldname'  => 'user_password',
    class phpBB extends BBP_Converter_Base { 
    352364                        'callback_method' => 'callback_savepass'
    353365                );
    354366
    355                 // Store old User Salt. This is only used for the SELECT row info for the above password save
     367                // Store old User Salt (This is only used for the SELECT row info for the above password save)
    356368                $this->field_map[] = array(
    357369                        'from_tablename' => 'users',
    358370                        'from_fieldname' => 'user_form_salt',
    class phpBB extends BBP_Converter_Base { 
    360372                        'to_fieldname'   => ''
    361373                );
    362374                               
    363                 // User password verify class. Stored in usermeta for verifying password.
     375                // User password verify class (Stored in usermeta for verifying password)
    364376                $this->field_map[] = array(
    365377                        'to_type'      => 'user',
    366378                        'to_fieldname' => '_bbp_class',
    class phpBB extends BBP_Converter_Base { 
    563575                }
    564576                return $status;
    565577        }
    566 }
     578
     579        /**
     580         * This callback processes any custom parser.php attributes and custom code with preg_replace
     581         */
     582        protected function callback_html( $field ) {
     583
     584                // Parse out bbCodes
     585                require_once( bbpress()->admin->admin_dir . 'parser.php' );
     586                $bbcode = BBCode::getInstance();
     587                $bbcode->enable_smileys = false;
     588                $bbcode->smiley_regex   = false;
     589                $field = html_entity_decode( $bbcode->Parse( $field ) );
     590
     591                // Replace phpBB 'magic_url' and 'bbcode_uid' with SimplePress smilies with the equivelant WordPress
     592
     593                // Replace '[b:XXXXXXX]' with '<strong>'
     594                $phpbb_uid = preg_replace ( '/\[b:(.*?)\]/'   , '<strong>'  , $phpbb_uid );
     595                // Replace '[/b:XXXXXXX]' with '</strong>'
     596                $phpbb_uid = preg_replace ( '/\[\/b:(.*?)\]/' , '</strong>' , $phpbb_uid );
     597
     598                // Replace '[i:XXXXXXX]' with '<em>'
     599                $phpbb_uid = preg_replace ( '/\[i:(.*?)\]/'   , '<em>'      , $phpbb_uid );
     600                // Replace '[/i:XXXXXXX]' with '</em>'
     601                $phpbb_uid = preg_replace ( '/\[\/i:(.*?)\]/' , '</em>'     , $phpbb_uid );
     602
     603                // Replace '[u:XXXXXXX]' with '<u>'
     604                $phpbb_uid = preg_replace ( '/\[u:(.*?)\]/'   , '<u>'       , $phpbb_uid );
     605                // Replace '[/u:XXXXXXX]' with '</u>'
     606                $phpbb_uid = preg_replace ( '/\[\/u:(.*?)\]/' , '</u>'      , $phpbb_uid );
     607
     608                // Replace '[quote:XXXXXXX]' with '<blockquote>'
     609                $phpbb_uid = preg_replace ( '/\[quote:(.*?)\]/'         , '<blockquote>'                   , $phpbb_uid );
     610                // Replace '[quote="$1"]' with '<em>$1 wrote:</em><blockquote>"
     611                $phpbb_uid = preg_replace ( '/\[quote="(.*?)":(.*?)\]/' , '<em>$1 wrote:</em><blockquote>' , $phpbb_uid );
     612                // Replace '[/quote:XXXXXXX]' with '</blockquote>'
     613                $phpbb_uid = preg_replace ( '/\[\/quote:(.*?)\]/'       , '</blockquote>'                  , $phpbb_uid );
     614
     615                // Replace '[img:XXXXXXX]' with '<img src="'
     616                $phpbb_uid = preg_replace ( '/\[img:(.*?)\]/'   , '<img src="' , $phpbb_uid );
     617                // Replace '[/img:XXXXXXX]' with ' alt="">'
     618                $phpbb_uid = preg_replace ( '/\[\/img:(.*?)\]/' , '" alt="">'  , $phpbb_uid );
     619
     620                // Replace '<!-- s$1 --><img src=\"{SMILIES_PATH}$2 -->' with '$1'
     621                $phpbb_uid = preg_replace ( '/<!-- s(.*?) --><img src=\"{SMILIES_PATH}(.*?)-->/' , '$1' , $phpbb_uid );
     622
     623                // Replace '<!-- m --><a class="postlink" href="$1">$1</a><!-- m -->' with '$1'
     624                $phpbb_uid = preg_replace ( '/\<!-- m --\>\<a class="postlink" href="([^\[]+?)"\>([^\[]+?)\<\/a\>\<!-- m --\>/' , '$1' , $phpbb_uid );
     625
     626                // Replace '[url:XXXXXXX]$1[/url:XXXXXXX]' with '<a href="http://$1">$1</a>'
     627                $phpbb_uid = preg_replace ( '/\[url:(?:[^\]]+)\]([^\[]+?)\[\/url:(?:[^\]]+)\]/'       , '<a href="http://$1">$1</a>'  , $phpbb_uid );
     628                // Replace '[url=http://$1:XXXXXXX]$3[/url:XXXXXXX]' with '<a href="http://$1">$3</a>'
     629                $phpbb_uid = preg_replace ( '/\[url\=http\:\/\/(.*?)\:(.*?)\](.*?)\[\/url:(.*?)\]/i'  , '<a href="http://$1">$3</a>'  , $phpbb_uid );
     630                // Replace '[url=https://$1:XXXXXXX]$3[/url:XXXXXXX]' with '<a href="http://$1">$3</a>'
     631                $phpbb_uid = preg_replace ( '/\[url\=https\:\/\/(.*?)\:(.*?)\](.*?)\[\/url:(.*?)\]/i' , '<a href="https://$1">$3</a>' , $phpbb_uid );
     632
     633                // Replace '[email:XXXXXXX]' with '<a href="mailto:$2">$2</a>'
     634                $phpbb_uid = preg_replace ( '/\[email:(.*?)\](.*?)\[\/email:(.*?)\]/' , '<a href="mailto:$2">$2</a>' , $phpbb_uid );
     635
     636                // Replace '[code:XXXXXXX]' with '<pre><code>'
     637                $phpbb_uid = preg_replace ( '/\[code:(.*?)\]/'   , '<pre><code>'   , $phpbb_uid );
     638                // Replace '[/code:XXXXXXX]' with '</code></pre>'
     639                $phpbb_uid = preg_replace ( '/\[\/code:(.*?)\]/' , '</code></pre>' , $phpbb_uid );
     640
     641                // Replace '[color=$1:XXXXXXXX]' with '<span style="color:$1">'
     642                $phpbb_uid = preg_replace ( '/\[color=(.*?):(.*?)\]/' , '<span style="color:$1">' , $phpbb_uid );
     643                // Replace '[/color:XXXXXXX]' with '</span>'
     644                $phpbb_uid = preg_replace ( '/\[\/color:(.*?)\]/'     , '</span>'                 , $phpbb_uid );
     645
     646                // Replace '[size=$1:XXXXXXXX]' with '<span style="font-size:$1%;">$3</span>'
     647                $phpbb_uid = preg_replace ( '/\[size=(.*?):(.*?)\]/' , '<span style="font-size:$1%;">' , $phpbb_uid );
     648                // Replace '[/size:XXXXXXX]' with ''
     649                $phpbb_uid = preg_replace ( '/\[\/size:(.*?)\]/'     , '</span>'                       , $phpbb_uid );
     650
     651                // Replace '[list:XXXXXXX]' with '<ul>'
     652                $phpbb_uid = preg_replace ( '/\[list:(.*?)\]/'     , '<ul>'          , $phpbb_uid );
     653                // Replace '[list=a:XXXXXXX]' with '<ol type="a">'
     654                $phpbb_uid = preg_replace ( '/\[list=a:(.*?)\]/'   , '<ol type="a">' , $phpbb_uid );
     655                // Replace '[list=1:XXXXXXX]' with '<ol>'
     656                $phpbb_uid = preg_replace ( '/\[list=1:(.*?)\]/'   , '<ol>'          , $phpbb_uid );
     657                // Replace '[*:XXXXXXX]' with '<li>'
     658                $phpbb_uid = preg_replace ( '/\[\*:(.*?)\]/'       , '<li>'          , $phpbb_uid );
     659                // Replace '[/*:m:XXXXXXX]' with '</li>'
     660                $phpbb_uid = preg_replace ( '/\[\/\*:m:(.*?)\]/'   , '</li>'         , $phpbb_uid );   
     661                // Replace '[/list:u:XXXXXXX]' with '</ul>'
     662                $phpbb_uid = preg_replace ( '/\[\/list:u:(.*?)\]/' , '</ul>'         , $phpbb_uid );           
     663                // Replace '[/list:o:XXXXXXX]' with '</ol>'
     664                $phpbb_uid = preg_replace ( '/\[\/list:o:(.*?)\]/' , '</ol>'         , $phpbb_uid );           
     665
     666                return $field;
     667        }
     668}
     669 No newline at end of file