Dotclear

Changeset 3159:a7553434ee4c


Ignore:
Timestamp:
02/05/16 15:12:03 (9 years ago)
Author:
franck <carnet.franck.paul@…>
Branch:
default
Message:

Use new setting type 'array' for some settings, addresses #1833

Files:
13 edited

Legend:

Unmodified
Added
Removed
  • admin/blog_pref.php

    r3138 r3159  
    6767# Date format combo 
    6868$now = time(); 
    69 $date_formats = unserialize($blog_settings->system->date_formats); 
    70 $time_formats = unserialize($blog_settings->system->time_formats); 
     69$date_formats = $blog_settings->system->date_formats; 
     70$time_formats = $blog_settings->system->time_formats; 
    7171$date_formats_combo = array('' => ''); 
    7272foreach ($date_formats as $format) { 
  • admin/install/index.php

    r3036 r3159  
    163163          } 
    164164          $blog_settings->system->put('date_format',$formatDate); 
    165           $blog_settings->system->put('date_formats',serialize($date_formats),'string','Date formats examples',true,true); 
    166           $blog_settings->system->put('time_formats',serialize($time_formats),'string','Time formats examples',true,true); 
     165          $blog_settings->system->put('date_formats',$date_formats,'array','Date formats examples',true,true); 
     166          $blog_settings->system->put('time_formats',$time_formats,'array','Time formats examples',true,true); 
    167167 
    168168          # Add repository URL for themes and plugins 
  • inc/admin/actions/class.dcactioncomments.php

    r3047 r3159  
    143143          $ip_filter_active = true; 
    144144          if ($core->blog->settings->antispam->antispam_filters !== null) { 
    145                $filters_opt = @unserialize($core->blog->settings->antispam->antispam_filters); 
     145               $filters_opt = $core->blog->settings->antispam->antispam_filters; 
    146146               if (is_array($filters_opt)) { 
    147147                    $ip_filter_active = isset($filters_opt['dcFilterIP']) && is_array($filters_opt['dcFilterIP']) && $filters_opt['dcFilterIP'][0]==1; 
  • inc/core/class.dc.namespace.php

    r3158 r3159  
    7676 
    7777               if ($type == 'array') { 
    78                     $value = @json_decode($value); 
     78                    $value = @json_decode($value,true); 
    7979               } else { 
    8080                    if ($type == 'float' || $type == 'double') { 
  • inc/core/class.dc.workspace.php

    r3158 r3159  
    8080 
    8181               if ($type == 'array') { 
    82                     $value = @json_decode($value); 
     82                    $value = @json_decode($value,true); 
    8383               } else { 
    8484                    if ($type == 'float' || $type == 'double') { 
  • inc/dbschema/upgrade.php

    r3138 r3159  
    479479                    $core->con->execute( 
    480480                         sprintf($strReq,'media_flash_fallback','1','boolean','Flash player fallback for audio and video media')); 
     481 
     482                    # Some settings and prefs should be moved from string to array 
     483                    settings2array('system','date_formats'); 
     484                    settings2array('system','time_formats'); 
     485                    settings2array('antispam','antispam_filters'); 
     486                    settings2array('pings','pings_uris'); 
     487                    settings2array('system','simpleMenu'); 
    481488               } 
    482489 
     
    506513     return false; 
    507514} 
     515 
     516/** 
     517 * Convert old-fashion serialized array setting to new-fashion json encoded array 
     518 * @param  $ns      namespace 
     519 * @param  $setting setting name (id) 
     520 */ 
     521function settings2array($ns,$setting) 
     522{ 
     523     global $core; 
     524 
     525     $strReqSelect = 
     526          "SELECT setting_id,blog_id,setting_ns,setting_type,setting_value FROM ".$core->prefix."setting ". 
     527          "WHERE setting_id = '%s' ". 
     528          "AND setting_ns = '%s' ". 
     529          "AND setting_type = 'string'"; 
     530     $rs = $core->con->select(sprintf($strReqSelect,$setting,$ns)); 
     531     while ($rs->fetch()) { 
     532          $value = json_encode(unserialize($rs->setting_value)); 
     533          $rs2 = "UPDATE ".$core->prefix."setting ". 
     534               "SET setting_type='array', setting_value = '".$core->con->escape($value)."' ". 
     535               "WHERE setting_id='".$core->con->escape($rs->setting_id)."' ". 
     536               "AND setting_ns='".$core->con->escape($rs->setting_ns)."' "; 
     537          if ($rs->blog_id == '') { 
     538               $rs2 .= "AND blog_id IS null"; 
     539          } else { 
     540               $rs2 .= "AND blog_id = '".$core->con->escape($rs->blog_id)."'"; 
     541          } 
     542          $core->con->execute($rs2); 
     543     } 
     544} 
     545 
     546/** 
     547 * Convert old-fashion serialized array pref to new-fashion json encoded array 
     548 * @param  $ws      workspace 
     549 * @param  $pref    pref name (id) 
     550 */ 
     551function prefs2array($ws,$pref) 
     552{ 
     553     global $core; 
     554 
     555     $strReqSelect = 
     556          "SELECT pref_id,user_id,pref_ws,pref_type,pref_value FROM ".$core->prefix."pref ". 
     557          "WHERE pref_id = '%s' ". 
     558          "AND pref_ws = '%s' ". 
     559          "AND pref_type = 'string'"; 
     560     $rs = $core->con->select(sprintf($strReqSelect,$pref,$ns)); 
     561     while ($rs->fetch()) { 
     562          $value = json_encode(unserialize($rs->pref_value)); 
     563          $rs2 = "UPDATE ".$core->prefix."pref ". 
     564               "SET pref_type='array', pref_value = '".$core->con->escape($value)."' ". 
     565               "WHERE pref_id='".$core->con->escape($rs->pref_id)."' ". 
     566               "AND pref_ws='".$core->con->escape($rs->pref_ws)."' "; 
     567          if ($rs->user_id == '') { 
     568               $rs2 .= "AND user_id IS null"; 
     569          } else { 
     570               $rs2 .= "AND user_id = '".$core->con->escape($rs->user_id)."'"; 
     571          } 
     572          $core->con->execute($rs2); 
     573     } 
     574} 
  • plugins/antispam/inc/class.dc.spamfilters.php

    r2566 r3159  
    128128               $this->core->blog->settings->antispam->drop('antispam_filters'); 
    129129          } 
    130           $this->core->blog->settings->antispam->put('antispam_filters',serialize($opts),'string','Antispam Filters',true,$global); 
     130          $this->core->blog->settings->antispam->put('antispam_filters',$opts,'array','Antispam Filters',true,$global); 
    131131     } 
    132132 
     
    134134     { 
    135135          if ($this->core->blog->settings->antispam->antispam_filters !== null) { 
    136                $this->filters_opt = @unserialize($this->core->blog->settings->antispam->antispam_filters); 
     136               $this->filters_opt = $this->core->blog->settings->antispam->antispam_filters; 
    137137          } 
    138138 
  • plugins/pings/_admin.php

    r2849 r3159  
    3131     $core->blog->settings->addNamespace('pings'); 
    3232     $core->blog->settings->pings->put('pings_active',1,'boolean','Activate pings plugin',true,true); 
    33      $core->blog->settings->pings->put('pings_uris',serialize($default_pings_uris),'string','Pings services URIs',true,true); 
     33     $core->blog->settings->pings->put('pings_uris',$default_pings_uris,'array','Pings services URIs',true,true); 
    3434} 
    3535 
  • plugins/pings/index.php

    r2566 r3159  
    1616try 
    1717{ 
    18      $pings_uris = @unserialize($core->blog->settings->pings->pings_uris); 
     18     $pings_uris = $core->blog->settings->pings->pings_uris; 
    1919     if (!$pings_uris) { 
    2020          $pings_uris = array(); 
     
    3535          $core->blog->settings->addNamespace('pings'); 
    3636          $core->blog->settings->pings->put('pings_active',!empty($_POST['pings_active']),null,null,true,true); 
    37           $core->blog->settings->pings->put('pings_uris',serialize($pings_uris),null,null,true,true); 
     37          $core->blog->settings->pings->put('pings_uris',$pings_uris,null,null,true,true); 
    3838          dcPage::addSuccessNotice(__('Settings have been successfully updated.')); 
    3939          http::redirect($p_url); 
  • plugins/pings/lib.pings.php

    r2849 r3159  
    5050          } 
    5151 
    52           $pings_uris = @unserialize($core->blog->settings->pings->pings_uris); 
     52          $pings_uris = $core->blog->settings->pings->pings_uris; 
    5353          if (empty($pings_uris) || !is_array($pings_uris)) { 
    5454               return; 
     
    8686          } 
    8787 
    88           $pings_uris = @unserialize($core->blog->settings->pings->pings_uris); 
     88          $pings_uris = $core->blog->settings->pings->pings_uris; 
    8989          if (empty($pings_uris) || !is_array($pings_uris)) { 
    9090               return; 
  • plugins/simpleMenu/_install.php

    r2773 r3159  
    2323     array('label' => 'Archives', 'descr' => '', 'url' => $blog_url.$core->url->getURLFor('archive')) 
    2424); 
    25 $core->blog->settings->system->put('simpleMenu',serialize($menu_default),'string','simpleMenu default menu',false,true); 
     25$core->blog->settings->system->put('simpleMenu',$menu_default,'array','simpleMenu default menu',false,true); 
    2626$core->blog->settings->system->put('simpleMenu_active',true,'boolean','Active',false,true); 
    2727 
  • plugins/simpleMenu/_public.php

    r3019 r3159  
    8282               return $ret; 
    8383 
    84           $menu = $GLOBALS['core']->blog->settings->system->get('simpleMenu'); 
    85           $menu = @unserialize($menu); 
    86  
     84          $menu = $core->blog->settings->system->simpleMenu; 
    8785          if (is_array($menu)) 
    8886          { 
     
    9290 
    9391               // Home recognition var 
    94                $home_url = html::stripHostURL($GLOBALS['core']->blog->url); 
     92               $home_url = html::stripHostURL($core->blog->url); 
    9593               $home_directory = dirname($home_url); 
    9694               if ($home_directory != '/') 
  • plugins/simpleMenu/index.php

    r2849 r3159  
    106106# Lecture menu existant 
    107107$menu = $core->blog->settings->system->get('simpleMenu'); 
    108 $menu = @unserialize($menu); 
    109108if (!is_array($menu)) { 
    110109     $menu = array(); 
     
    233232                              ); 
    234233                              // Save menu in blog settings 
    235                               $core->blog->settings->system->put('simpleMenu',serialize($menu)); 
     234                              $core->blog->settings->system->put('simpleMenu',$menu); 
    236235                              $core->blog->triggerBlog(); 
    237236 
     
    271270                         $menu = $newmenu; 
    272271                         // Save menu in blog settings 
    273                          $core->blog->settings->system->put('simpleMenu',serialize($menu)); 
     272                         $core->blog->settings->system->put('simpleMenu',$menu); 
    274273                         $core->blog->triggerBlog(); 
    275274 
     
    306305                    $menu = $newmenu; 
    307306                    // Save menu in blog settings 
    308                     $core->blog->settings->system->put('simpleMenu',serialize($menu)); 
     307                    $core->blog->settings->system->put('simpleMenu',$menu); 
    309308                    $core->blog->triggerBlog(); 
    310309 
     
    344343                    $menu = $newmenu; 
    345344                    // Save menu in blog settings 
    346                     $core->blog->settings->system->put('simpleMenu',serialize($menu)); 
     345                    $core->blog->settings->system->put('simpleMenu',$menu); 
    347346                    $core->blog->triggerBlog(); 
    348347 
Note: See TracChangeset for help on using the changeset viewer.

Sites map