Skip to:
Content

Ticket #4126: 4126.patch

File 4126.patch, 31.3 KB (added by abwebstudio, 21 months ago)

Updated patch file with changing in code

  • plugins/buddypress/bp-fields/admin/css/buddy-profile-admin-styles.css

    diff -Naur wp-content-old/plugins/buddypress/bp-fields/admin/css/buddy-profile-admin-styles.css wp-content/plugins/buddypress/bp-fields/admin/css/buddy-profile-admin-styles.css
    old new  
     1#pp-profile-data-fields li { 
     2        padding: 10px; 
     3        width: 50%; 
     4        font-weight: bold; 
     5        background: #f0f0f0; /* for non-css3 browsers */ 
     6        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7f7f7', endColorstr='#e7e7e7'); /* for IE */ 
     7        background: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7), to(#e7e7e7)); /* for webkit browsers */ 
     8        background: -moz-linear-gradient(top,  #f7f7f7,  #e7e7e7); /* for firefox 3.6+ */ 
     9        cursor: move; 
     10        border: 1px solid #ddd; 
     11        border-raidus: 10px; 
     12        -moz-border-radius: 10px; 
     13        -webkit-border-radius: 10px; 
     14        } 
     15 No newline at end of file 
  • plugins/buddypress/bp-fields/admin/js/buddy-profile-admin-scripts.js

    diff -Naur wp-content-old/plugins/buddypress/bp-fields/admin/js/buddy-profile-admin-scripts.js wp-content/plugins/buddypress/bp-fields/admin/js/buddy-profile-admin-scripts.js
    old new  
     1jQuery(document).ready(function($) { 
     2                $("#pp-profile-data-fields ul").sortable({ 
     3                        cursor: 'move' 
     4                }); 
     5 
     6                $('#pp-profile-data-fields ul').disableSelection(); 
     7                $('#pp-profile-data-fields li').disableSelection(); 
     8}); 
     9 No newline at end of file 
  • plugins/buddypress/bp-fields/bp-show-profile-data.php

    diff -Naur wp-content-old/plugins/buddypress/bp-fields/bp-show-profile-data.php wp-content/plugins/buddypress/bp-fields/bp-show-profile-data.php
    old new  
     1<?php 
     2function bp_show_profile_data_init() { 
     3        if ( is_admin() ) { 
     4                if ( isset( $_GET['page'] ) && !is_super_admin()) { 
     5                        if ( $_GET['page'] == 'bp-show-profile-data') { 
     6                                add_action( 'admin_enqueue_scripts', 'bp_show_profile_data_admin_scripts' ); 
     7                                add_action( 'admin_enqueue_scripts', 'bp_show_profile_data_admin_styles' ); 
     8                        } 
     9                } 
     10                $bp_profile_data_instance = new BP_Show_Profile_Data_Admin(); 
     11        } 
     12        else { 
     13                if ( bp_is_members_component() || bp_is_group_members() ) 
     14                        add_action( 'wp_enqueue_scripts', 'bp_show_profile_data_styles' ); 
     15        } 
     16} 
     17add_action( 'bp_init', 'bp_show_profile_data_init' ); 
     18 
     19function bp_show_profile_data_admin_scripts() { 
     20        wp_enqueue_script( 'jquery-ui-sortable' ); 
     21        wp_enqueue_script( 'buddyprofiledata-admin-script',  plugins_url( 'admin/js/buddy-profile-admin-scripts.js' , __FILE__ ), array('jquery-ui-sortable') ); 
     22} 
     23 
     24function bp_show_profile_data_admin_styles() { 
     25        wp_enqueue_style( 'buddyprofiledata-admin-styles',  plugins_url( 'admin/css/buddy-profile-admin-styles.css' , __FILE__ ), array() ); 
     26} 
     27 
     28function bp_show_profile_data_styles() { 
     29        if(file_exists( get_stylesheet_directory() . '/buddy-profile-data.css')) : 
     30                wp_enqueue_style( 'buddyprofiledata-styles',  get_stylesheet_directory_uri() . '/buddy-profile-data.css', array() ); 
     31        else: 
     32                wp_enqueue_style( 'buddyprofiledata-styles',  plugins_url('/css/buddy-profile-data.css',__FILE__)  , array() ); 
     33        endif; 
     34} 
     35 
     36class BP_Show_Profile_Data_Admin { 
     37 
     38        private $pages_message = ''; 
     39        private $fields_message = ''; 
     40        private $allowed_fields = array(); 
     41        private $allowed_pages = array('members', 'groups' ); 
     42 
     43    public function __construct() { 
     44                $this->gather_profile_fields(); 
     45                $this->pages_update(); 
     46                $this->fields_update(); 
     47                add_action('xprofile_field_after_sidebarbox',array($this,'select_profile_field_metabox')); 
     48                add_action('xprofile_fields_saved_field',array($this,'profile_field_save')); 
     49        } 
     50 
     51        public function profile_field_save($field) { 
     52 
     53                if(isset($_POST['card-visibility'])) { 
     54 
     55                        $profile_fields = get_option( 'pp_profile_data_fields'); 
     56 
     57                        if(!is_array($profile_fields)) { 
     58                                $profile_fields = Array(); 
     59                        } 
     60 
     61                        if($_POST['card-visibility'] == 'on') { 
     62                                $profile_fields[] = $field->id; 
     63 
     64                                $profile_fields = array_unique($profile_fields); 
     65                        } else { 
     66 
     67                                $exists_key = array_search($field->id, $profile_fields); 
     68 
     69                                if($exists_key !== false) unset($profile_fields[$exists_key]); 
     70                        } 
     71 
     72                        update_option('pp_profile_data_fields',$profile_fields); 
     73                } 
     74        } 
     75 
     76        public function select_profile_field_metabox($field) { 
     77 
     78                $enabled = false; 
     79                if($field->id) { 
     80 
     81                        $profile_fields = get_option('pp_profile_data_fields'); 
     82 
     83                        $field_key = array_search($field->id,$profile_fields); 
     84 
     85                        if($field_key !== false) $enabled = true; 
     86                } 
     87 
     88                 ?> 
     89 
     90                <div class="postbox"> 
     91                        <h2><label for="card-visibility"><?php esc_html_e( 'Show on card', 'buddypress' ); ?></label></h2> 
     92                        <div class="inside"> 
     93                                <div> 
     94                                        <select name="card-visibility" id="card-visibility"> 
     95                                                <option <?php selected($enabled); ?> value="on"><?php esc_html_e( 'Enabled', 'buddypress' ); ?></option> 
     96                                                <option <?php selected(!$enabled); ?> value=""><?php esc_html_e( 'Disabled', 'buddypress' ); ?></option> 
     97                                        </select> 
     98                                </div> 
     99                        </div> 
     100                </div> 
     101                <?php 
     102        } 
     103 
     104 
     105        function bp_profile_data_network_admin_menu() { 
     106                add_submenu_page('settings.php', 'BuddyProfileData', 'BuddyProfileData', 'manage_options', 'bp-show-profile-data', array( $this, 'bp_profile_data_admin_screen' ) ); 
     107        } 
     108 
     109 
     110        function bp_profile_data_admin_menu() { 
     111                add_options_page(  __( 'BuddyProfileData', 'bp-show-profile-data'), __( 'BuddyProfileData', 'bp-show-profile-data' ), 'manage_options', 'bp-show-profile-data', array( $this, 'bp_profile_data_admin_screen' ) ); 
     112        } 
     113 
     114        function bp_profile_data_admin_screen() { 
     115                ?> 
     116                <div class="wrap"> 
     117 
     118                <div id="icon-tools" class="icon32"><br /></div> 
     119 
     120                <h2><?php _e( 'BuddyProfileData', 'bp-show-profile-data' )?></h2> 
     121                <br /> 
     122 
     123                <?php if ( bp_is_active( 'xprofile' ) ) {  ?> 
     124 
     125                        <?php _e( 'Profile data is shown in various places in BuddyPress.', 'bp-show-profile-data' )?> 
     126                        <br /> 
     127                        <?php _e( 'This page controls the additional display of the selected profile fields on the selected pages.', 'bp-show-profile-data' )?> 
     128 
     129                        <?php 
     130                        $this->bp_profile_data_forms(); 
     131 
     132                } 
     133                else 
     134                        echo '<br>Enable the BuddyPress Extended Profile component.'; 
     135                ?> 
     136                </div> 
     137                <?php 
     138        } 
     139 
     140 
     141        private function bp_profile_data_forms() { 
     142                ?> 
     143                <table border="0" cellspacing="10" cellpadding="10"> 
     144                <tr> 
     145                <td style="vertical-align:top; border: 1px solid #ccc;" > 
     146 
     147                <h3><?php _e('Which pages should show profile data?', 'bp-show-profile-data'); ?></h3> 
     148 
     149                <?php echo $this->pages_message; ?> 
     150 
     151                <form action="" name="profile-data-pages-form" id="profile-data-pages-form"  method="post" class="standard-form"> 
     152 
     153                <?php wp_nonce_field('profile-data-pages-action', 'profile-data-pages-field'); ?> 
     154 
     155                <ul id="pp-profile-data-pages-list"> 
     156 
     157                <?php 
     158                $current_pages = explode(",", get_option( 'pp_profile_data_pages' )); 
     159 
     160                foreach ($this->allowed_pages as $allowed_page => $value) { 
     161 
     162                        if( in_array( $value, $current_pages ) ) $checked = ' checked="checked"'; 
     163                        else $checked = ''; 
     164 
     165                        if( 'groups' == $value ) $shown_value = 'Group Members'; 
     166                        else $shown_value = ucfirst($value); 
     167                        ?> 
     168 
     169                        <li><label for="bp-allowed-pages-<?php echo $value; ?>"><input id="pp-allowed-pages-<?php echo $value; ?>" type="checkbox" name="pages[]" value="<?php echo $value; ?>" <?php echo  $checked; ?> /> <?php echo $shown_value; ?></label></li> 
     170 
     171                <?php } ?> 
     172                </ul> 
     173 
     174                <input type="hidden" name="profile-data-pages-access" value="1"/> 
     175                <input type="submit" name="submit" class="button button-primary" value="<?php _e('Save Changes', 'bp-show-profile-data'); ?>"/> 
     176                </form> 
     177 
     178                </td> 
     179 
     180                <td style="vertical-align:top; border: 1px solid #ccc;" > 
     181 
     182                <h3><?php _e('Which profile fields should be shown?', 'bp-show-profile-data'); ?></h3> 
     183 
     184                <?php echo $this->fields_message; ?> 
     185 
     186                <?php _e('Drag checked boxes to set display order.', 'bp-show-profile-data'); ?> 
     187                <br /> 
     188                <?php _e('Visibility settings will be honored.', 'bp-show-profile-data'); ?> 
     189 
     190                <form action="" name="profile-data-fields-form" id="profile-data-fields-form"  method="post" class="standard-form"> 
     191 
     192                <?php wp_nonce_field('profile-data-fields-action', 'profile-data-fields-field'); ?> 
     193 
     194                        <div id="pp-profile-data-fields"> 
     195                                <ul id="pp-profile-data-fields-list" class="ui-sortable"> 
     196 
     197                                <?php 
     198                                $current_fields = get_option( 'pp_profile_data_fields' ); 
     199 
     200                                if( $current_fields != false ) { 
     201 
     202                                        foreach ($current_fields as $key => $value) { 
     203                                                if( !empty( $value ) ) { 
     204                                                        $field_name = $this->allowed_fields[$value]; 
     205                                                        unset( $this->allowed_fields[$value] ); 
     206 
     207                                        ?> 
     208                                                        <li><label for="pp-allowed-fields-<?php echo $field_name; ?>"><input id="pp-allowed-fields-<?php echo $field_name; ?>" type="checkbox" name="fields[]" value="<?php echo $value; ?>"  checked="checked"'/> &nbsp;<?php echo stripslashes(ucfirst($field_name)); ?></label></li> 
     209 
     210                                         <?php 
     211                                                } 
     212                                        } 
     213                                } ?> 
     214 
     215                                <?php foreach ($this->allowed_fields as $key => $value) :  ?> 
     216 
     217                                        <li><label for="pp-allowed-fields-<?php echo $value; ?>"><input id="pp-allowed-fields-<?php echo $value; ?>" type="checkbox" name="fields[]" value="<?php echo $key; ?>" /> &nbsp;<?php echo stripslashes( ucfirst($value) ); ?></label></li> 
     218 
     219                                <?php endforeach; ?> 
     220                                </ul> 
     221                        </div> 
     222 
     223                <input type="hidden" name="profile-data-fields-access" value="1"/> 
     224                <input type="submit" name="submit" class="button button-primary" value="<?php _e('Save Changes', 'bp-show-profile-data'); ?>"/> 
     225                </form> 
     226                </td> 
     227                </tr></table> 
     228 
     229                <?php 
     230        } 
     231 
     232        private function pages_update() { 
     233 
     234                if( isset( $_POST['profile-data-pages-access'] ) ) { 
     235 
     236                        if( !wp_verify_nonce($_POST['profile-data-pages-field'],'profile-data-pages-action') ) 
     237                                die('Security check'); 
     238 
     239                        $updated = 0; 
     240 
     241                        if( isset( $_POST['pages'] ) ) { 
     242 
     243                                foreach( $_POST['pages'] as $key => $value ){ 
     244                                        if( in_array( $value, $this->allowed_pages ) ) { 
     245                                                $new_pages[] = $value; 
     246                                        } 
     247                                } 
     248 
     249                                $new_pages = implode(",", $new_pages); 
     250                                $updated = update_option( 'pp_profile_data_pages', $new_pages ); 
     251 
     252                        } else { 
     253                                delete_option( 'pp_profile_data_pages' ); 
     254                                $updated = 1; 
     255                        } 
     256 
     257                        if( $updated ) 
     258                                $this->pages_message .= 
     259                                        "<div class='updated below-h2'>" . __('Pages have been updated.', 'bp-show-profile-data') . "</div>"; 
     260                        else 
     261                                $this->pages_message .= 
     262                                        "<div class='updated below-h2' style='color: red'>" . __('No changes were detected re Pages.', 'bp-show-profile-data') . "</div>"; 
     263 
     264                } 
     265        } 
     266 
     267        private function fields_update() { 
     268 
     269                if ( isset( $_POST['profile-data-fields-access'] ) ) { 
     270 
     271                        if ( !wp_verify_nonce($_POST['profile-data-fields-field'],'profile-data-fields-action') ) 
     272                                die('Security check'); 
     273 
     274                        if ( !is_super_admin() ) 
     275                                return; 
     276 
     277                        $updated = 0; 
     278 
     279                        if ( isset( $_POST['fields'] ) ) { 
     280 
     281                                $new_fields = array(); 
     282 
     283                                foreach( $_POST['fields'] as $key => $value ){ 
     284                                        if( array_key_exists($value, $this->allowed_fields ) ) { 
     285                                                $new_fields[] = $value; 
     286                                        } 
     287                                } 
     288 
     289                                if( !empty( $new_fields ) ) 
     290                                        $updated = update_option( 'pp_profile_data_fields', $new_fields ); 
     291 
     292                        } else { 
     293                                delete_option( 'pp_profile_data_fields' ); 
     294                                $updated = 1; 
     295                        } 
     296 
     297                        if ( $updated ) 
     298                                $this->fields_message .= 
     299                                        "<div class='updated below-h2'>" . __('Fields have been updated.', 'bp-show-profile-data') . "</div>"; 
     300                        else 
     301                                $this->fields_message .= 
     302                                        "<div class='updated below-h2' style='color: red'>" . __('No changes were detected re Fields.', 'bp-show-profile-data') . "</div>"; 
     303                } 
     304        } 
     305 
     306        private function gather_profile_fields() { 
     307 
     308                $groups = BP_XProfile_Group::get( array( 'fetch_fields' => true ) );    // from bp-xprofile/bp-xprofile-admin.php 
     309 
     310                if ( !empty( $groups ) ) { 
     311                         foreach ( $groups as $group ) { 
     312                                if ( !empty( $group->fields ) ) { 
     313                                        foreach ( $group->fields as $field ) { 
     314                                                $this->allowed_fields[$field->id] = $field->name; 
     315                                        } 
     316                                } 
     317                        } 
     318                } 
     319        } 
     320} 
     321 
     322function bp_show_profile_data_display() { 
     323        global $wpdb, $bp; 
     324 
     325        if ( bp_is_current_component( $bp->groups->slug ) ) { 
     326                $user_id = bp_get_group_member_id(); 
     327                echo '<div id="pp-profile-data-groups">'; 
     328        } else  if ( bp_is_current_component( $bp->members->slug ) ) { 
     329                $user_id = bp_get_member_user_id(); 
     330                echo '<div id="pp-profile-data-members">'; 
     331        } else 
     332                return; 
     333 
     334 
     335        $current_fields = get_option( 'pp_profile_data_fields' ); 
     336 
     337 
     338        $hidden_fields = bp_xprofile_get_hidden_fields_for_user( $user_id, $current_user_id = bp_loggedin_user_id() ); 
     339 
     340        if( $current_fields != false ) { 
     341                foreach( $current_fields as $key => $value ) { 
     342 
     343                        if ( !in_array( $value, $hidden_fields ) ) { 
     344 
     345                                $field_data = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$bp->profile->table_name_fields} WHERE id = %d", $value ) ); 
     346 
     347                                $field_value = xprofile_get_field_data( $value, $user_id, $multi_format = 'comma' ); 
     348 
     349                                $field_value = xprofile_filter_format_field_value( $field_value, $field_type = $field_data->type ); 
     350 
     351                                if( '' != $field_value ) 
     352                                        echo '<div id=pp-profile-data-name>' . stripslashes($field_data->name) . ':</div><div id=pp-profile-data-value>' . $field_value . '</div><div style="clear:both"></div>'; 
     353                        } 
     354                } 
     355        } 
     356        echo '</div>'; 
     357} 
     358add_action( 'bp_group_members_list_item', 'bp_show_profile_data_display' ); 
     359add_action( 'bp_directory_members_item', 'bp_show_profile_data_display' ); 
     360?> 
  • plugins/buddypress/bp-fields/css/buddy-profile-data.css

    diff -Naur wp-content-old/plugins/buddypress/bp-fields/css/buddy-profile-data.css wp-content/plugins/buddypress/bp-fields/css/buddy-profile-data.css
    old new  
     1/* 
     2* This file provides default styling for profile field display in BP member lists 
     3* 
     4* Styling is based on twentytwelve theme & is kept as minimal you will need to 
     5* customize to suit your chosen theme. 
     6* 
     7* You can overload this file by moving it as a copy to your theme directory or 
     8* simply add your styles to your themes stylesheets 
     9* 
     10* @package BuddyProfileData 
     11* @version buddyprofiledata 1.0 
     12*/ 
     13 
     14 
     15div#pp-profile-data-members { 
     16        margin-left: 250px;  
     17        margin-top: -50px;  
     18        position: absolute;  
     19        width: 200px;  
     20        font-size: 80%; 
     21} 
     22 
     23div#pp-profile-data-groups { 
     24        margin-left: 250px;  
     25        margin-top: -125px;  
     26        position: absolute;  
     27        width: 200px;  
     28        font-size: 80%; 
     29} 
     30 
     31 
     32div#pp-profile-data-name { 
     33        width: 50%;  
     34        float: left;  
     35        overflow: hidden;  
     36        font-size: 80%; 
     37        font-weight: bold; 
     38} 
     39 
     40div#pp-profile-data-value { 
     41        width: 50%;  
     42        float: left;  
     43        overflow: hidden;  
     44        font-size: 80%; 
     45} 
     46 No newline at end of file 
  • plugins/buddypress/bp-fields/.DS_Store

    diff -Naur wp-content-old/plugins/buddypress/bp-fields/.DS_Store wp-content/plugins/buddypress/bp-fields/.DS_Store
    old new  
     1Bud1        nIlocblobadminIlocblobF(ÿÿÿÿÿÿbp-show-profile-data.phpIlocblobÌ(ÿÿÿÿÿÿcssIlocblobR(ÿÿÿÿÿÿ   languagesIlocblobØ(ÿÿÿÿÿÿ 
     2loader.phpIlocblobF˜ÿÿÿÿÿÿ 
  • plugins/buddypress/bp-fields/languages/bp-profile-data.pot

     @€ @€ @€ @
    E	DSDB `€ @€ @€ @
    \ No newline at end of file
    diff -Naur wp-content-old/plugins/buddypress/bp-fields/languages/bp-profile-data.pot wp-content/plugins/buddypress/bp-fields/languages/bp-profile-data.pot
    old new  
     1msgid "" 
     2msgstr "" 
     3"Project-Id-Version: bp-profile-data\n" 
     4"POT-Creation-Date: 2013-04-23 12:04-0800\n" 
     5"PO-Revision-Date: 2013-04-23 12:04-0800\n" 
     6"Last-Translator: \n" 
     7"Language-Team: philopress\n" 
     8"Language: English\n" 
     9"MIME-Version: 1.0\n" 
     10"Content-Type: text/plain; charset=UTF-8\n" 
     11"Content-Transfer-Encoding: 8bit\n" 
     12"X-Generator: Poedit 1.5.5\n" 
     13"X-Poedit-KeywordsList: _;_e;__\n" 
     14"X-Poedit-Basepath: .\n" 
     15"Plural-Forms: nplurals=2; plural=(n != 1);\n" 
     16"X-Poedit-SearchPath-0: .\n" 
     17"X-Poedit-SearchPath-1: ..\n" 
     18 
     19#: ../bp-show-profile-data.php:75 ../bp-show-profile-data.php:85 
     20msgid "BuddyProfileData" 
     21msgstr "" 
     22 
     23#: ../bp-show-profile-data.php:87 
     24msgid "Profile data is shown in various places in BuddyPress." 
     25msgstr "" 
     26 
     27#: ../bp-show-profile-data.php:89 
     28msgid "" 
     29"This page controls the additional display of the selected profile fields on " 
     30"the selected pages." 
     31msgstr "" 
     32 
     33#: ../bp-show-profile-data.php:108 
     34msgid "Which pages should show profile data?" 
     35msgstr "" 
     36 
     37#: ../bp-show-profile-data.php:136 ../bp-show-profile-data.php:179 
     38msgid "Save Changes" 
     39msgstr "" 
     40 
     41#: ../bp-show-profile-data.php:143 
     42msgid "Which profile fields should be shown?" 
     43msgstr "" 
     44 
     45#: ../bp-show-profile-data.php:147 
     46msgid "Drag checked boxes to set display order." 
     47msgstr "" 
     48 
     49#: ../bp-show-profile-data.php:149 
     50msgid "Visibility settings will be honored." 
     51msgstr "" 
     52 
     53#: ../bp-show-profile-data.php:218 
     54msgid "Pages have been updated." 
     55msgstr "" 
     56 
     57#: ../bp-show-profile-data.php:221 
     58msgid "No changes were detected re Pages." 
     59msgstr "" 
     60 
     61#: ../bp-show-profile-data.php:257 
     62msgid "Fields have been updated." 
     63msgstr "" 
     64 
     65#: ../bp-show-profile-data.php:260 
     66msgid "No changes were detected re Fields." 
     67msgstr "" 
  • plugins/buddypress/bp-fields/loader.php

    diff -Naur wp-content-old/plugins/buddypress/bp-fields/loader.php wp-content/plugins/buddypress/bp-fields/loader.php
    old new  
     1<?php 
     2 
     3if ( !defined( 'ABSPATH' ) ) exit; 
     4 
     5function bp_show_profile_data_include() { 
     6    require( dirname( __FILE__ ) . '/bp-show-profile-data.php' ); 
     7        load_plugin_textdomain( 'bp-show-profile-data', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); 
     8} 
     9add_action( 'bp_include', 'bp_show_profile_data_include' ); 
     10 
     11 
     12?> 
     13 No newline at end of file 
  • plugins/buddypress/bp-loader.php

    diff -Naur wp-content-old/plugins/buddypress/bp-loader.php wp-content/plugins/buddypress/bp-loader.php
    old new  
    494494                require( $this->plugin_dir . 'bp-core/bp-core-loader.php'           ); 
    495495                require( $this->plugin_dir . 'bp-core/bp-core-customizer-email.php' ); 
    496496 
     497 
     498                require( $this->plugin_dir . 'bp-fields/loader.php' ); 
     499 
    497500                // Skip or load deprecated content 
    498501                if ( false !== $this->load_deprecated ) { 
    499502                        require( $this->plugin_dir . 'bp-core/deprecated/1.2.php' ); 
  • plugins/buddypress/.DS_Store

    diff -Naur wp-content-old/plugins/buddypress/.DS_Store wp-content/plugins/buddypress/.DS_Store
    old new  
     1Bud1        ieldsIl   bp-fieldsIlocblobF(ÿÿ  bp-fieldsbwspblobùbplist00Ù       
     2 
    03 
     4 
    15