Dotclear

Changeset 2736:09dd799a19bd for admin


Ignore:
Timestamp:
08/25/14 09:20:20 (11 years ago)
Author:
Nicolas <nikrou77@…>
Branch:
default
Message:

Addresses #1896
Preferences: one editor for each available formats.

Location:
admin
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • admin/js/_preferences.js

    r2679 r2736  
    2020          return true; 
    2121     }); 
    22  
    23      // choose format depending of editor based on formats_by_editor defined in preferences.php 
    24      if (formats_by_editor !== undefined) { 
    25           var _editors = $.parseJSON(formats_by_editor); 
    26       
    27           $('#user_editor').change(function() { 
    28                if (!_editors[$(this).val()]) {return;} 
    29                 
    30                $('#user_post_format option').remove(); 
    31                for (var format in _editors[$(this).val()]) { 
    32                     $('#user_post_format').append('<option value="'+format+'">'+format+'</option>'); 
    33                } 
    34           }); 
    35      } 
    3622}); 
  • admin/post.php

    r2722 r2736  
    6060$img_status_pattern = '<img class="img_select_option" alt="%1$s" title="%1$s" src="images/%2$s" />'; 
    6161 
    62 # Formaters combo 
    63 $formaters_combo = dcAdminCombos::getFormatersCombo(); 
    64 foreach ($formaters_combo as $editor => $formats) { 
     62# Formats combo 
     63$core_formaters = $core->getFormaters(); 
     64$available_formats = array('' => ''); 
     65foreach ($core_formaters as $editor => $formats) { 
    6566     foreach ($formats as $format) { 
    66           $formaters_combo[$editor][$format] = "$editor:$format"; 
    67      } 
     67        $available_formats[$format] = $format; 
     68    } 
    6869} 
    6970 
     
    7879$TB = new dcTrackback($core); 
    7980$tb_urls = $tb_excerpt = ''; 
    80  
    81 if (count($formaters_combo)==0 || !$core->auth->getOption('editor') || $core->auth->getOption('editor')=='') { 
    82      dcPage::addNotice("message", 
    83                            sprintf(__('Choose an active editor in %s.'), 
    84                                           '<a href="'.$core->adminurl->get("admin.user.preferences").'#user-options">'.__('your preferences').'</a>' 
    85                                           ) 
    86                            ); 
    87 } 
    8881 
    8982# Get entry informations 
     
    195188# Format excerpt and content 
    196189elseif (!empty($_POST) && $can_edit_post) { 
    197     list(, $post_format) = explode(':', $_POST['post_format']); 
     190     $post_format = $_POST['post_format']; 
    198191     $post_excerpt = $_POST['post_excerpt']; 
    199192     $post_content = $_POST['post_content']; 
     
    382375 
    383376$admin_post_behavior = ''; 
    384 if (($core->auth->getOption('editor')==$post_editor) 
    385     && in_array($post_format, $core->getFormaters($core->auth->getOption('editor')))) { 
    386     $admin_post_behavior = $core->callBehavior('adminPostEditor'); 
     377if (!empty($core->auth->getOption('editor')) && !empty($core->auth->getOption('editor')[$post_format])) { 
     378     $admin_post_behavior = $core->callBehavior('adminPostEditor', $core->auth->getOption('editor')[$post_format]); 
    387379} 
    388380 
     
    461453-------------------------------------------------------- */ 
    462454if ($can_edit_post) { 
    463      if (count($formaters_combo)>0 && ($core->auth->getOption('editor') && $core->auth->getOption('editor')!='')) { 
    464         $post_format_field = form::combo('post_format',$formaters_combo,"$post_editor:$post_format",'maximal'); 
    465      } else { 
    466           $post_format_field = sprintf(__('Choose an active editor in %s.'), 
    467           '<a href="'.$core->adminurl->get("admin.user.preferences").'#user-options">'.__('your preferences').'</a>' 
    468           ); 
    469           $post_format_field .= form::hidden('post_format','xhtml'); 
    470      } 
    471  
    472455     $sidebar_items = new ArrayObject(array( 
    473456          'status-box' => array( 
     
    489472                         '<div>'. 
    490473                         '<h5 id="label_format"><label for="post_format" class="classic">'.__('Text formatting').'</label></h5>'. 
    491                          '<p>'.$post_format_field.'</p>'. 
     474                         '<p>'.form::combo('post_format',$available_formats,$post_format,'maximal').'</p>'. 
    492475                         '<p class="format_control control_no_xhtml">'. 
    493476                         '<a id="convert-xhtml" class="button'.($post_id && $post_format != 'wiki' ? ' hide' : '').'" href="'. 
  • admin/preferences.php

    r2720 r2736  
    2727 
    2828$user_options = $core->auth->getOptions(); 
    29 if (empty($user_options['editor'])) { 
    30     $user_options['editor'] = ''; 
     29if (empty($user_options['editor']) || !is_array($user_options['editor'])) { 
     30     $user_options['editor'] = array(); 
    3131} 
    3232 
     
    6565$editors = array_keys($editors_combo); 
    6666 
    67 # Formaters combo 
    68 $formaters_combo = dcAdminCombos::getFormatersCombo(); 
    69 $formaters_combo_editor = array(); 
    70  
    71 if (!empty($user_options['editor']) && !empty($formaters_combo[$user_options['editor']])) { 
    72     $formaters_combo_editor = $formaters_combo[$user_options['editor']]; 
    73 } elseif (count($editors)!=0) { 
    74     $formaters_combo_editor = $formaters_combo[$editors[0]]; 
    75 } else { 
    76     $formaters_combo = array(); 
    77 } 
    78  
     67# Format by editors 
     68$formaters = $core->getFormaters(); 
     69$format_by_editors = array(); 
     70foreach ($formaters as $editor => $formats) { 
     71     foreach ($formats as $format) { 
     72          $format_by_editors[$format][$editor] = $editor; 
     73     } 
     74} 
     75$available_formats = array('' => ''); 
     76foreach (array_keys($format_by_editors) as $format) { 
     77     $available_formats[$format] = $format; 
     78     if (!isset($user_options['editor'][$format])) { 
     79          $user_options['editor'][$format] = ''; 
     80     } 
     81} 
    7982$status_combo = dcAdminCombos::getPostStatusescombo(); 
    8083 
     
    150153 
    151154# Update user options 
    152 if (isset($_POST['user_post_format'])) 
     155if (isset($_POST['user_editor'])) 
    153156{ 
    154157     try 
     
    333336                    sprintf(__('Password strength: %s'),__('strong'))."', '". 
    334337                    sprintf(__('Password strength: %s'),__('very strong'))."']});\n". 
    335           "});\n". 
    336         'var formats_by_editor = \''.json_encode($formaters_combo).'\';'. 
     338          "});". 
    337339          "\n//]]>\n". 
    338340          "</script>\n". 
     
    471473echo 
    472474'<div class="fieldset">'. 
    473 '<h4>'.__('Edition').'</h4>'. 
    474  
    475 '<p class="field"><label for="user_editor">'.__('Preferred editor:').'</label>'. 
    476 form::combo('user_editor',array_merge(array(__('Choose an editor') => ''),$editors_combo),$user_options['editor']).'</p>'. 
    477  
     475'<h4>'.__('Edition').'</h4>'; 
     476 
     477foreach ($format_by_editors as $format => $editors) { 
     478     echo 
     479     '<p class="field"><label for="user_editor">'.sprintf(__('Preferred editor for %s:'),$format).'</label>'. 
     480     form::combo( 
     481          'user_editor['.$format.']', 
     482          array_merge(array(__('Choose an editor') => ''),$editors),$user_options['editor'][$format] 
     483     ).'</p>'; 
     484} 
     485echo 
    478486'<p class="field"><label for="user_post_format">'.__('Preferred format:').'</label>'. 
    479 form::combo('user_post_format',array_merge(array('' => ''), $formaters_combo_editor),$user_options['post_format']).'</p>'. 
    480  
     487form::combo('user_post_format',$available_formats,$user_options['post_format']).'</p>'; 
     488 
     489echo 
    481490'<p class="field"><label for="user_post_status">'.__('Default entry status:').'</label>'. 
    482491form::combo('user_post_status',$status_combo,$user_post_status).'</p>'. 
Note: See TracChangeset for help on using the changeset viewer.

Sites map