Show
Ignore:
Timestamp:
03/20/06 21:12:49 (3 years ago)
Author:
mbonetti
Message:

OPML import fixes

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/rss/admin/config.php

    r1347 r1388  
    3232    ."<div id=\"admin_config\" class=\"trigger\">\n"; 
    3333 
    34     config_table_header(); 
    35      
     34    config_table_header(); 
     35 
    3636    $sql = "select * from " .getTable("config") ." where key_ like 
    3737           'rss.%' order by key_ asc"; 
     
    4040    $cntr = 0; 
    4141    while ($row = rss_fetch_assoc($res)) { 
    42         // Don't show old/moved config keys in the main config list 
    43         if ($row['key_'] == 'rss.config.plugins' or  
    44         $row['key_'] == 'rss.output.theme' or  
    45         $row['key_'] == 'rss.output.barefrontpage' or  
    46         $row['key_'] == 'rss.output.noreaditems' or  
    47         $row['key_'] == 'rss.output.cachedir' or 
    48         $row['key_'] == 'rss.config.showdevloglink' or 
    49         $row['key_'] == 'rss.output.numitemsonpage') { 
    50             continue; 
    51         } 
    52          
     42        // Don't show old/moved config keys in the main config list 
     43        if ($row['key_'] == 'rss.config.plugins' or 
     44                $row['key_'] == 'rss.output.theme' or 
     45                $row['key_'] == 'rss.output.barefrontpage' or 
     46                $row['key_'] == 'rss.output.noreaditems' or 
     47                $row['key_'] == 'rss.output.cachedir' or 
     48                $row['key_'] == 'rss.config.showdevloglink' or 
     49                $row['key_'] == 'rss.output.numitemsonpage') { 
     50            continue; 
     51        } 
     52 
    5353        $class_ = (($cntr++ % 2 == 0)?"even":"odd"); 
    54         config_table_row($row, $class_, CST_ADMIN_DOMAIN_CONFIG); 
    55     } 
    56      
    57     config_table_footer(); 
     54        config_table_row($row, $class_, CST_ADMIN_DOMAIN_CONFIG); 
     55    } 
     56 
     57    config_table_footer(); 
    5858    echo "</div>\n"; 
    5959} 
     
    6161function config_table_header($caption=null) { 
    6262    echo "<table id=\"configtable\">\n"; 
    63     if ($caption !== null) { 
    64         echo "<caption>$caption</caption>\n"; 
    65     } 
     63    if ($caption !== null) { 
     64        echo "<caption>$caption</caption>\n"; 
     65    } 
    6666    echo "<tr>\n" 
    6767    ."\t<th>". LBL_ADMIN_CHANNELS_HEADING_KEY ."</th>\n" 
     
    7777 
    7878function config_table_row($row, $class_, $adminDomain, $extraLinkText='') { 
    79     $value =  real_strip_slashes($row['value_']); 
    80  
    81     echo "<tr class=\"$class_\">\n" 
    82     ."\t<td>".$row['key_']."</td>\n"; 
    83  
    84     echo "\t<td>"; 
    85  
    86     switch($row['key_']) { 
    87  
    88         //specific handling per key 
    89     case 'rss.config.dateformat': 
    90         echo $value 
    91         . " (" 
    92         . preg_replace('/ /','&nbsp;',date($value)) 
    93         .")"; 
    94         break; 
    95     case 'rss.input.allowed': 
    96  
    97         $arr = unserialize($value); 
    98         echo admin_kses_to_html($arr); 
    99  
    100         break; 
    101     case 'rss.config.plugins': 
    102     case 'rss.output.theme': 
    103         continue; 
    104         break; 
    105  
    106     case 'rss.output.lang': 
    107         $arr = getLanguages(); 
    108         echo $arr[getConfig('rss.output.lang')]; 
    109         break; 
    110     case 'rss.config.tzoffset': 
    111         echo $value 
    112         . " (your local time: " 
    113         . preg_replace('/ /','&nbsp;',date("g:i A",mktime()+$value*3600)) 
    114         .")"; 
    115         break; 
    116     default: 
    117  
    118         // generic handling per type: 
    119         switch ($row['type_']) { 
    120         case 'string': 
    121         case 'num': 
    122         case 'boolean': 
    123         default: 
    124             echo $value; 
    125             break; 
    126         case 'enum': 
    127             $arr = explode(',',$value); 
    128             echo admin_enum_to_html($arr); 
    129  
    130             break; 
    131         case 'array': 
    132             $arr = unserialize($value); 
    133             echo "<ul>\n"; 
    134             foreach($arr as $av) { 
    135                 echo "\t<li>$av</li>\n"; 
    136             } 
    137             echo "</ul>\n"; 
    138         } 
    139         break; 
    140     } 
    141  
    142     echo "</td>\n"; 
    143  
    144     echo "\t<td>" . 
    145     // source: http://ch2.php.net/manual/en/function.preg-replace.php 
    146     preg_replace('/\s(\w+:\/\/)(\S+)/', 
    147                  ' <a href="\\1\\2">\\1\\2</a>', 
    148                  $row['desc_']) 
    149     . "</td>\n"; 
    150  
    151     echo "\t<td class=\"cntr\">" 
    152     ."<a href=\"".$_SERVER['PHP_SELF']. "?".CST_ADMIN_DOMAIN."=". $adminDomain 
    153     ."&amp;action=". CST_ADMIN_EDIT_ACTION. "&amp;key=".$row['key_'] 
    154     ."&amp;".CST_ADMIN_VIEW."=". $adminDomain 
    155     ."$extraLinkText\">" . LBL_ADMIN_EDIT 
    156     ."</a>"; 
    157  
    158     if ($row['value_'] != $row['default_'] && $row['key_'] != 'rss.config.plugins') { 
    159         echo "|" 
    160  
    161         ."<a href=\"".$_SERVER['PHP_SELF']. "?".CST_ADMIN_DOMAIN."=". $adminDomain 
    162         ."&amp;action=". CST_ADMIN_DEFAULT_ACTION. "&amp;key=".$row['key_']."$extraLinkText\">" . LBL_ADMIN_DEFAULT 
    163         ."</a>"; 
    164     } 
    165  
    166     echo "</td>\n" 
    167     ."</tr>\n"; 
     79    $value =  real_strip_slashes($row['value_']); 
     80 
     81    echo "<tr class=\"$class_\">\n" 
     82    ."\t<td>".$row['key_']."</td>\n"; 
     83 
     84    echo "\t<td>"; 
     85 
     86    switch($row['key_']) { 
     87 
     88        //specific handling per key 
     89    case 'rss.config.dateformat': 
     90        echo $value 
     91        . " (" 
     92        . preg_replace('/ /','&nbsp;',date($value)) 
     93        .")"; 
     94        break; 
     95    case 'rss.input.allowed': 
     96 
     97        $arr = unserialize($value); 
     98        echo admin_kses_to_html($arr); 
     99 
     100        break; 
     101    case 'rss.config.plugins': 
     102    case 'rss.output.theme': 
     103        continue; 
     104        break; 
     105 
     106    case 'rss.output.lang': 
     107        $arr = getLanguages(); 
     108        echo $arr[getConfig('rss.output.lang')]; 
     109        break; 
     110    case 'rss.config.tzoffset': 
     111        echo $value 
     112        . " (your local time: " 
     113        . preg_replace('/ /','&nbsp;',date("g:i A",mktime()+$value*3600)) 
     114        .")"; 
     115        break; 
     116    default: 
     117 
     118        // generic handling per type: 
     119        switch ($row['type_']) { 
     120        case 'string': 
     121        case 'num': 
     122        case 'boolean': 
     123        default: 
     124            echo $value; 
     125            break; 
     126        case 'enum': 
     127            $arr = explode(',',$value); 
     128 
     129            echo admin_enum_to_html($arr); 
     130 
     131            break; 
     132        case 'array': 
     133            $arr = unserialize($value); 
     134            echo "<ul>\n"; 
     135            foreach($arr as $av) { 
     136                echo "\t<li>$av</li>\n"; 
     137            } 
     138            echo "</ul>\n"; 
     139        } 
     140        break; 
     141    } 
     142 
     143    echo "</td>\n"; 
     144 
     145    echo "\t<td>" . 
     146    // source: http://ch2.php.net/manual/en/function.preg-replace.php 
     147    preg_replace('/\s(\w+:\/\/)(\S+)/', 
     148                 ' <a href="\\1\\2">\\1\\2</a>', 
     149                 $row['desc_']) 
     150    . "</td>\n"; 
     151 
     152    echo "\t<td class=\"cntr\">" 
     153    ."<a href=\"".$_SERVER['PHP_SELF']. "?".CST_ADMIN_DOMAIN."=". $adminDomain 
     154    ."&amp;action=". CST_ADMIN_EDIT_ACTION. "&amp;key=".$row['key_'] 
     155    ."&amp;".CST_ADMIN_VIEW."=". $adminDomain 
     156    ."$extraLinkText\">" . LBL_ADMIN_EDIT 
     157    ."</a>"; 
     158 
     159    if ($row['value_'] != $row['default_'] && $row['key_'] != 'rss.config.plugins') { 
     160        echo "|" 
     161 
     162        ."<a href=\"".$_SERVER['PHP_SELF']. "?".CST_ADMIN_DOMAIN."=". $adminDomain 
     163        ."&amp;action=". CST_ADMIN_DEFAULT_ACTION. "&amp;key=".$row['key_']."$extraLinkText\">" . LBL_ADMIN_DEFAULT 
     164        ."</a>"; 
     165    } 
     166 
     167    echo "</td>\n" 
     168    ."</tr>\n"; 
    168169} 
    169170 
     
    206207        else { 
    207208            echo "<form class=\"box\" method=\"post\" action=\"" .$_SERVER['PHP_SELF'] ."\">\n"; 
    208             config_default_form($key, $type, $default, CST_ADMIN_DOMAIN_CONFIG); 
    209             echo "</form>\n"; 
     209            config_default_form($key, $type, $default, CST_ADMIN_DOMAIN_CONFIG); 
     210            echo "</form>\n"; 
    210211 
    211212            $ret =  CST_ADMIN_DOMAIN_NONE; 
     
    219220        list($key,$value,$default,$type,$desc,$export) =  rss_fetch_row($res); 
    220221 
    221         echo "<div>\n"; 
    222         echo "\n\n<h2>Edit '$key'</h2>\n"; 
    223         echo "<form style=\"display:inline\" id=\"cfg\" method=\"post\" action=\"" .$_SERVER['PHP_SELF'] ."\">\n"; 
    224          
    225         $onclickaction = null; 
    226         config_edit_form($key,$value,$default,$type,$desc,$export,$onclickaction); 
    227  
    228         echo "<p style=\"display:inline\">\n"; 
    229         echo (isset($preview)?"<input type=\"submit\" name=\"action\" value=\"". LBL_ADMIN_PREVIEW_CHANGES ."\"" 
    230       .($onclickaction?" onclick=\"$onclickaction\"":"") ." />\n":""); 
    231         echo "<input type=\"hidden\" name=\"".CST_ADMIN_METAACTION."\" value=\"LBL_ADMIN_SUBMIT_CHANGES\" />"; 
    232      
    233         echo "<input type=\"submit\" name=\"action\" value=\"". LBL_ADMIN_SUBMIT_CHANGES ."\"" 
    234         .($onclickaction?" onclick=\"$onclickaction\"":"") 
    235         ." /><input type=\"hidden\" name=\"".CST_ADMIN_DOMAIN."\" value=\"". CST_ADMIN_DOMAIN_CONFIG ."\"/>\n</p></form>\n"; 
    236      
    237      
    238         echo "<form style=\"display:inline\" method=\"post\" action=\"" .$_SERVER['PHP_SELF'] ."\">\n" 
    239         ."<p style=\"display:inline\">\n<input type=\"hidden\" name=\"".CST_ADMIN_DOMAIN."\" value=\"". CST_ADMIN_DOMAIN_CONFIG ."\"/>\n" 
    240         ."<input type=\"hidden\" name=\"".CST_ADMIN_METAACTION."\" value=\"LBL_ADMIN_SUBMIT_CANCEL\" />" 
    241         ."<input type=\"submit\" name=\"action\" value=\"". LBL_ADMIN_CANCEL ."\"/></p></form>\n" 
    242         ."\n\n</div>\n"; 
    243          
     222        echo "<div>\n"; 
     223        echo "\n\n<h2>Edit '$key'</h2>\n"; 
     224        echo "<form style=\"display:inline\" id=\"cfg\" method=\"post\" action=\"" .$_SERVER['PHP_SELF'] ."\">\n"; 
     225 
     226        $onclickaction = null; 
     227        config_edit_form($key,$value,$default,$type,$desc,$export,$onclickaction); 
     228 
     229        echo "<p style=\"display:inline\">\n"; 
     230        echo (isset($preview)?"<input type=\"submit\" name=\"action\" value=\"". LBL_ADMIN_PREVIEW_CHANGES ."\"" 
     231      .($onclickaction?" onclick=\"$onclickaction\"":"") ." />\n":""); 
     232        echo "<input type=\"hidden\" name=\"".CST_ADMIN_METAACTION."\" value=\"LBL_ADMIN_SUBMIT_CHANGES\" />"; 
     233 
     234        echo "<input type=\"submit\" name=\"action\" value=\"". LBL_ADMIN_SUBMIT_CHANGES ."\"" 
     235        .($onclickaction?" onclick=\"$onclickaction\"":"") 
     236        ." /><input type=\"hidden\" name=\"".CST_ADMIN_DOMAIN."\" value=\"". CST_ADMIN_DOMAIN_CONFIG ."\"/>\n</p></form>\n"; 
     237 
     238 
     239        echo "<form style=\"display:inline\" method=\"post\" action=\"" .$_SERVER['PHP_SELF'] ."\">\n" 
     240        ."<p style=\"display:inline\">\n<input type=\"hidden\" name=\"".CST_ADMIN_DOMAIN."\" value=\"". CST_ADMIN_DOMAIN_CONFIG ."\"/>\n" 
     241        ."<input type=\"hidden\" name=\"".CST_ADMIN_METAACTION."\" value=\"LBL_ADMIN_SUBMIT_CANCEL\" />" 
     242        ."<input type=\"submit\" name=\"action\" value=\"". LBL_ADMIN_CANCEL ."\"/></p></form>\n" 
     243        ."\n\n</div>\n"; 
     244 
    244245        $ret__ = CST_ADMIN_DOMAIN_NONE; 
    245246        break; 
     
    252253    case LBL_ADMIN_SUBMIT_CHANGES: 
    253254    case 'LBL_ADMIN_SUBMIT_CHANGES': 
    254                  
     255 
    255256        $key = sanitize($_POST['key'],RSS_SANITIZER_NO_SPACES|RSS_SANITIZER_SIMPLE_SQL); 
    256257        $type = sanitize($_POST['type'],RSS_SANITIZER_CHARACTERS); 
    257258        $value = sanitize($_POST['value'], RSS_SANITIZER_SIMPLE_SQL); 
    258259 
    259                 // sanitizine routines for values 
    260                 switch ($key) { 
    261                     case 'rss.output.title': 
    262                     $value = strip_tags($value); 
    263                     break; 
    264                      
    265                     case 'rss.config.robotsmeta': 
    266                     $value = preg_replace('#[^a-zA-Z,\s]#','',$value); 
    267                     break; 
    268                 } 
    269                  
    270                  
     260        // sanitizine routines for values 
     261        switch ($key) { 
     262        case 'rss.output.title': 
     263            $value = strip_tags($value); 
     264            break; 
     265 
     266        case 'rss.config.robotsmeta': 
     267            $value = preg_replace('#[^a-zA-Z,\s]#','',$value); 
     268            break; 
     269        } 
     270 
     271 
    271272        switch ($key) { 
    272273 
     
    378379 
    379380function config_edit_form($key,$value,$default,$type,$desc,$export, & $onclickaction) { 
    380     $value = real_strip_slashes($value); 
    381  
    382     echo "<p>\n" 
    383     ."<input type=\"hidden\" name=\"key\" value=\"$key\"/>\n" 
    384     ."<input type=\"hidden\" name=\"type\" value=\"$type\"/>\n" 
    385  
    386     .preg_replace('/\s(\w+:\/\/)(\S+)/', 
    387                   ' <a href="\\1\\2">\\1\\2</a>', 
    388                   $desc) 
    389  
    390     ."\n</p>\n"; 
    391     echo "<p>\n"; 
    392  
    393     switch($key) { 
    394  
    395     case 'rss.input.allowed': 
    396  
    397         $arr = unserialize($value); 
    398  
    399         echo "</p>\n" 
    400         ."<fieldset class=\"tags\">\n" 
    401         ."<legend>Tags</legend>\n" 
    402         ."<select size=\"8\" name=\"first\" onchange=\"populate2()\">\n" 
    403         ."<option>Your browser doesn't support javascript</option>\n" 
    404         ."</select>\n" 
    405         ."<input type=\"text\" name=\"newtag\" id=\"newtag\" />\n" 
    406         ."<input type=\"button\" onclick=\"add1(); return false;\" value=\"add tag\" />\n" 
    407         ."<input type=\"button\" onclick=\"delete1(); return false;\" value=\"delete tag\" />\n" 
    408         ."</fieldset><fieldset class=\"tags\">\n" 
    409         ."<legend>Attributes</legend>\n" 
    410         ."<select size=\"8\" name=\"second\">\n" 
    411         ."<option>Your browser doesn't support javascript</option>\n" 
    412         ."</select>\n" 
    413         ."<input type=\"text\" name=\"newattr\" id=\"newattr\" />\n" 
    414         ."<input type=\"button\" onclick=\"add2(); return false;\" value=\"add attr\" />" 
    415         . "<input type=\"button\" onclick=\"delete2(); return false;\" value=\"delete attr\" />" 
    416         ."</fieldset>\n" 
    417         ."<p><input type=\"hidden\" name=\"value\" id=\"packed\" value=\"\" />\n" 
    418         ; 
    419  
    420         $onclickaction = "pack(); return true"; 
    421         //$preview = true; 
    422  
    423         echo "<script type=\"text/javascript\">\n" 
    424         ."<!--\n"; 
    425         jsCode($arr); 
    426         echo "\n// -->\n"; 
    427         echo "</script>\n"; 
    428  
    429         break; 
    430  
    431  
    432     case 'rss.output.lang': 
    433         $active_lang = getConfig('rss.output.lang'); 
    434  
    435  
    436         echo "<label for=\"c_value\">". LBL_ADMIN_CONFIG_VALUE ." $key:</label>\n" 
    437         ."\t\t<select name=\"value\" id=\"c_value\">\n"; 
    438         $cntr = 0; 
    439         $value = ""; 
    440         $langs = getLanguages(); 
    441         foreach ($langs as $code => $name) { 
    442             echo "<option value=\"$code\""; 
    443             if ($code == $active_lang)   { 
    444                 echo " selected=\"selected\""; 
    445             } 
    446             echo ">".$langs[$code]."</option>\n"; 
    447         } 
    448         echo "</select>\n"; 
    449         break; 
    450     default: 
    451  
    452         // generic handling per type: 
    453         switch ($type) { 
    454         case 'string': 
    455         case 'num': 
    456             echo "<label for=\"c_value\">". LBL_ADMIN_CONFIG_VALUE ." $key:</label>\n" 
    457             ."<input type=\"text\" id=\"c_value\" name=\"value\" value=\"$value\"/>"; 
    458             break; 
    459         case 'boolean': 
    460             echo LBL_ADMIN_CONFIG_VALUE ." $key:</p><p>"; 
    461             echo "<input type=\"radio\" id=\"c_value_true\" name=\"value\"" 
    462             .($value == 'true' ? " checked=\"checked\"":"") ."" 
    463             ." value=\"".LBL_ADMIN_TRUE."\" " 
    464             ."/>\n" 
    465             ."<label for=\"c_value_true\">" . LBL_ADMIN_TRUE . "</label>\n"; 
    466  
    467             echo "<input type=\"radio\" id=\"c_value_false\" name=\"value\"" 
    468             .($value != 'true' ? " checked=\"checked\"":"") ."" 
    469             ." value=\"".LBL_ADMIN_FALSE."\" " 
    470             ."/>\n" 
    471             ."<label for=\"c_value_false\">" . LBL_ADMIN_FALSE . "</label>\n"; 
    472             break; 
    473         case 'enum': 
    474             echo "<label for=\"c_value\">". LBL_ADMIN_CONFIG_VALUE ." $key:</label>\n" 
    475             ."\t\t<select name=\"value\" id=\"c_value\">\n"; 
    476             $arr = explode(',',$value); 
    477             $idx = array_pop($arr); 
    478             foreach ($arr as $i => $val) { 
    479                 echo "<option value=\"$val\""; 
    480                 if ($i == $idx) 
    481                     echo " selected=\"selected\""; 
    482                 echo ">$val</option>\n"; 
    483             } 
    484             echo "</select>\n"; 
    485             break; 
    486         } 
    487     } 
    488  
    489     echo "</p>\n"; 
     381    $value = real_strip_slashes($value); 
     382 
     383    echo "<p>\n" 
     384    ."<input type=\"hidden\" name=\"key\" value=\"$key\"/>\n" 
     385    ."<input type=\"hidden\" name=\"type\" value=\"$type\"/>\n" 
     386 
     387    .preg_replace('/\s(\w+:\/\/)(\S+)/', 
     388                  ' <a href="\\1\\2">\\1\\2</a>', 
     389                  $desc) 
     390 
     391    ."\n</p>\n"; 
     392    echo "<p>\n"; 
     393 
     394    switch($key) { 
     395 
     396    case 'rss.input.allowed': 
     397 
     398        $arr = unserialize($value); 
     399 
     400        echo "</p>\n" 
     401        ."<fieldset class=\"tags\">\n" 
     402        ."<legend>Tags</legend>\n" 
     403        ."<select size=\"8\" name=\"first\" onchange=\"populate2()\">\n" 
     404        ."<option>Your browser doesn't support javascript</option>\n" 
     405        ."</select>\n" 
     406        ."<input type=\"text\" name=\"newtag\" id=\"newtag\" />\n" 
     407        ."<input type=\"button\" onclick=\"add1(); return false;\" value=\"add tag\" />\n" 
     408        ."<input type=\"button\" onclick=\"delete1(); return false;\" value=\"delete tag\" />\n" 
     409        ."</fieldset><fieldset class=\"tags\">\n" 
     410        ."<legend>Attributes</legend>\n" 
     411        ."<select size=\"8\" name=\"second\">\n" 
     412        ."<option>Your browser doesn't support javascript</option>\n" 
     413        ."</select>\n" 
     414        ."<input type=\"text\" name=\"newattr\" id=\"newattr\" />\n" 
     415        ."<input type=\"button\" onclick=\"add2(); return false;\" value=\"add attr\" />" 
     416        . "<input type=\"button\" onclick=\"delete2(); return false;\" value=\"delete attr\" />" 
     417        ."</fieldset>\n" 
     418        ."<p><input type=\"hidden\" name=\"value\" id=\"packed\" value=\"\" />\n" 
     419        ; 
     420 
     421        $onclickaction = "pack(); return true"; 
     422        //$preview = true; 
     423 
     424        echo "<script type=\"text/javascript\">\n" 
     425        ."<!--\n"; 
     426        jsCode($arr); 
     427        echo "\n// -->\n"; 
     428        echo "</script>\n"; 
     429 
     430        break; 
     431 
     432 
     433    case 'rss.output.lang': 
     434        $active_lang = getConfig('rss.output.lang'); 
     435 
     436 
     437        echo "<label for=\"c_value\">". LBL_ADMIN_CONFIG_VALUE ." $key:</label>\n" 
     438        ."\t\t<select name=\"value\" id=\"c_value\">\n"; 
     439        $cntr = 0; 
     440        $value = ""; 
     441        $langs = getLanguages(); 
     442        foreach ($langs as $code => $name) { 
     443            echo "<option value=\"$code\""; 
     444            if ($code == $active_lang)   { 
     445                echo " selected=\"selected\""; 
     446            } 
     447            echo ">".$langs[$code]."</option>\n"; 
     448        } 
     449        echo "</select>\n"; 
     450        break; 
     451    default: 
     452 
     453        // generic handling per type: 
     454        switch ($type) { 
     455        case 'string': 
     456        case 'num': 
     457            echo "<label for=\"c_value\">". LBL_ADMIN_CONFIG_VALUE ." $key:</label>\n" 
     458            ."<input type=\"text\" id=\"c_value\" name=\"value\" value=\"$value\"/>"; 
     459            break; 
     460        case 'boolean': 
     461            echo LBL_ADMIN_CONFIG_VALUE ." $key:</p><p>"; 
     462            echo "<input type=\"radio\" id=\"c_value_true\" name=\"value\"" 
     463            .($value == 'true' ? " checked=\"checked\"":"") ."" 
     464            ." value=\"".LBL_ADMIN_TRUE."\" " 
     465            ."/>\n" 
     466            ."<label for=\"c_value_true\">" . LBL_ADMIN_TRUE . "</label>\n"; 
     467 
     468            echo "<input type=\"radio\" id=\"c_value_false\" name=\"value\"" 
     469            .($value != 'true' ? " checked=\"checked\"":"") ."" 
     470            ." value=\"".LBL_ADMIN_FALSE."\" " 
     471            ."/>\n" 
     472            ."<label for=\"c_value_false\">" . LBL_ADMIN_FALSE . "</label>\n"; 
     473            break; 
     474        case 'enum': 
     475            echo "<label for=\"c_value\">". LBL_ADMIN_CONFIG_VALUE ." $key:</label>\n" 
     476            ."\t\t<select name=\"value\" id=\"c_value\">\n"; 
     477            $arr = explode(',',$value); 
     478            $idx = array_pop($arr); 
     479            foreach ($arr as $i => $val) { 
     480                echo "<option value=\"$val\""; 
     481                if ($i == $idx) 
     482                    echo " selected=\"selected\""; 
     483                echo ">$val</option>\n"; 
     484            } 
     485            echo "</select>\n"; 
     486            break; 
     487        } 
     488    } 
     489 
     490    echo "</p>\n"; 
    490491} 
    491492 
    492493function config_default_form($key, $type, $default, $adminDomain) { 
    493     switch ($type) { 
    494     case 'enum': 
    495         $html_default = admin_enum_to_html(explode(',',$default)); 
    496         break; 
    497     case 'array': 
    498         $html_default = admin_kses_to_html(unserialize($default)); 
    499         break; 
    500     default: 
    501         $html_default = $default; 
    502         break; 
    503     } 
    504      
    505     echo "<p class=\"error\">"; 
    506     printf(LBL_ADMIN_ARE_YOU_SURE_DEFAULT,$key,$html_default); 
    507     echo "</p>\n" 
    508     ."<p><input type=\"submit\" name=\"".CST_ADMIN_CONFIRMED."\" value=\"". LBL_ADMIN_NO ."\"/>\n" 
    509     ."<input type=\"submit\" name=\"".CST_ADMIN_CONFIRMED."\" value=\"". LBL_ADMIN_YES ."\"/>\n" 
    510     ."<input type=\"hidden\" name=\"key\" value=\"$key\"/>\n" 
    511     ."<input type=\"hidden\" name=\"".CST_ADMIN_DOMAIN."\" value=\"".$adminDomain."\"/>\n" 
    512     ."<input type=\"hidden\" name=\"action\" value=\"". CST_ADMIN_DEFAULT_ACTION ."\"/>\n" 
    513     ."</p>\n"; 
     494    switch ($type) { 
     495    case 'enum': 
     496        $html_default = admin_enum_to_html(explode(',',$default)); 
     497        break; 
     498    case 'array': 
     499        $html_default = admin_kses_to_html(unserialize($default)); 
     500        break; 
     501    default: 
     502        $html_default = $default; 
     503        break; 
     504    } 
     505 
     506    echo "<p class=\"error\">"; 
     507    printf(LBL_ADMIN_ARE_YOU_SURE_DEFAULT,$key,$html_default); 
     508    echo "</p>\n" 
     509    ."<p><input type=\"submit\" name=\"".CST_ADMIN_CONFIRMED."\" value=\"". LBL_ADMIN_NO ."\"/>\n" 
     510    ."<input type=\"submit\" name=\"".CST_ADMIN_CONFIRMED."\" value=\"". LBL_ADMIN_YES ."\"/>\n" 
     511    ."<input type=\"hidden\" name=\"key\" value=\"$key\"/>\n" 
     512    ."<input type=\"hidden\" name=\"".CST_ADMIN_DOMAIN."\" value=\"".$adminDomain."\"/>\n" 
     513    ."<input type=\"hidden\" name=\"action\" value=\"". CST_ADMIN_DEFAULT_ACTION ."\"/>\n" 
     514    ."</p>\n"; 
    514515} 
    515516