Dotclear


Ignore:
Timestamp:
02/05/16 16:37:39 (10 years ago)
Author:
franck <carnet.franck.paul@…>
Branch:
default
Message:

Update about:config plugin to cope with array settings, addresses #1833

File:
1 edited

Legend:

Unmodified
Added
Removed
  • plugins/aboutConfig/index.php

    r3091 r3160  
    2727     try 
    2828     { 
    29           foreach ($_POST['s'] as $ns => $s) 
    30           { 
     29          foreach ($_POST['s'] as $ns => $s) { 
    3130               $core->blog->settings->addNamespace($ns); 
    32  
    33                foreach ($s as $k => $v)      { 
     31               foreach ($s as $k => $v) { 
     32                    if ($_POST['s_type'][$ns][$k] == 'array') { 
     33                         $v = json_decode($v,true); 
     34                    } 
    3435                    $core->blog->settings->$ns->put($k,$v); 
    3536               } 
    36  
    3737               $core->blog->triggerBlog(); 
    3838          } 
     
    5252     try 
    5353     { 
    54           foreach ($_POST['gs'] as $ns => $s) 
    55           { 
     54          foreach ($_POST['gs'] as $ns => $s) { 
    5655               $core->blog->settings->addNamespace($ns); 
    57  
    58                foreach ($s as $k => $v)      { 
     56               foreach ($s as $k => $v) { 
     57                    if ($_POST['gs_type'][$ns][$k] == 'array') { 
     58                         $v = json_decode($v,true); 
     59                    } 
    5960                    $core->blog->settings->$ns->put($k,$v,null,null,true,true); 
    6061               } 
    61  
    6262               $core->blog->triggerBlog(); 
    6363          } 
     
    8080          array(__('yes') => 1, __('no') => 0),$s['value'] ? 1 : 0); 
    8181     } else { 
    82           $field = form::field(array($field_name.'['.$ns.']['.$id.']',$field_name.'_'.$ns.'_'.$id),40,null, 
    83           html::escapeHTML($s['value'])); 
    84      } 
     82          if ($s['type'] == 'array') { 
     83               $field = form::field(array($field_name.'['.$ns.']['.$id.']',$field_name.'_'.$ns.'_'.$id),40,null, 
     84               html::escapeHTML(json_encode($s['value']))); 
     85          } else { 
     86               $field = form::field(array($field_name.'['.$ns.']['.$id.']',$field_name.'_'.$ns.'_'.$id),40,null, 
     87               html::escapeHTML($s['value'])); 
     88          } 
     89     } 
     90     $type = form::hidden(array($field_name.'_type'.'['.$ns.']['.$id.']',$field_name.'_'.$ns.'_'.$id.'_type'), 
     91          html::escapeHTML($s['type'])); 
    8592 
    8693     $slabel = $strong_label ? '<strong>%s</strong>' : '%s'; 
     
    9097     '<td scope="row"><label for="'.$field_name.'_'.$ns.'_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></td>'. 
    9198     '<td>'.$field.'</td>'. 
    92      '<td>'.$s['type'].'</td>'. 
     99     '<td>'.$s['type'].$type.'</td>'. 
    93100     '<td>'.html::escapeHTML($s['label']).'</td>'. 
    94101     '</tr>'; 
Note: See TracChangeset for help on using the changeset viewer.

Sites map