Changes in [1750:5dac57fee3c4:1751:ee2ab5a303c8]
- Files:
-
- 10 added
- 11 deleted
- 41 edited
Legend:
- Unmodified
- Added
- Removed
-
.hgsubstate
r1709 r1742 1 7f6890267d808320431acd04f4dae19dcb027a80inc/libs/clearbricks1 33139a996922b7a21b658961f8052c869bea60a1 inc/libs/clearbricks -
README.md
r1578 r1743 50 50 * iconv 51 51 * simplexml 52 * mysql, postgresql or sqlite52 * mysql, mysqli, postgresql or sqlite 53 53 * A database server (MySQL or PostgreSQL) or SQLite. 54 54 -
admin/blog_del.php
r1399 r1733 61 61 { 62 62 echo 63 '< p class="message">'.__('Warning').'</p>'.63 '<div class="warning-msg"><p><strong>'.__('Warning').'</strong></p>'. 64 64 '<p>'.sprintf(__('You are about to delete the blog %s. Every entry, comment and category will be deleted.'), 65 '<strong>'.$blog_id.' ('.$blog_name.')</strong>').'</p> '.65 '<strong>'.$blog_id.' ('.$blog_name.')</strong>').'</p></div>'. 66 66 '<p>'.__('Please give your password to confirm the blog deletion.').'</p>'; 67 67 -
admin/blog_pref.php
r1698 r1746 60 60 61 61 # Language codes 62 $langs = l10n::getISOcodes(1,1); 63 foreach ($langs as $k => $v) { 64 $lang_avail = $v == 'en' || is_dir(DC_L10N_ROOT.'/'.$v); 65 $lang_combo[] = new formSelectOption($k,$v,$lang_avail ? 'avail10n' : ''); 66 } 62 $lang_combo = dcAdminCombos::getAdminLangsCombo(); 67 63 68 64 # Status combo 69 foreach ($core->getAllBlogStatus() as $k => $v) { 70 $status_combo[$v] = (string) $k; 71 } 65 $status_combo = dcAdminCombos::getBlogStatusescombo(); 72 66 73 67 # URL scan modes … … 327 321 echo 328 322 '<p><label for="blog_url" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Blog URL:').'</label>'. 329 form::field('blog_url', 30,255,html::escapeHTML($blog_url)).'</p>'.323 form::field('blog_url',50,255,html::escapeHTML($blog_url)).'</p>'. 330 324 331 325 '<p><label for="url_scan">'.__('URL scan method:').'</label>'. 332 form::combo('url_scan',$url_scan_combo,$blog_settings->system->url_scan).'</p>'. 333 326 form::combo('url_scan',$url_scan_combo,$blog_settings->system->url_scan).'</p>'; 327 328 # Test URL of blog by testing it's ATOM feed 329 $file = $blog_url.$core->url->getURLFor('feed','atom'); 330 $path = ''; 331 $status = '404'; 332 $content = ''; 333 $client = netHttp::initClient($file,$path); 334 if ($client !== false) { 335 $client->setTimeout(4); 336 $client->setUserAgent($_SERVER['HTTP_USER_AGENT']); 337 $client->get($path); 338 $status = $client->getStatus(); 339 $content = $client->getContent(); 340 } 341 if ($status != '200') { 342 // Might be 404 (URL not found), 670 (blog not online), ... 343 echo 344 '<p class="form-note warn">'. 345 sprintf(__('The URL of blog or the URL scan method might not be well set (<code>%s</code> return a <strong>%s</strong> status).'), 346 $file,$status). 347 '</p>'; 348 } else { 349 if (substr($content,0,6) != '<?xml ') { 350 // Not well formed XML feed 351 echo 352 '<p class="form-note warn">'. 353 sprintf(__('The URL of blog or the URL scan method might not be well set (<code>%s</code> does not return an ATOM feed).'), 354 $file). 355 '</p>'; 356 } 357 } 358 359 echo 334 360 '<p><label for="blog_status">'.__('Blog status:').'</label>'. 335 361 form::combo('blog_status',$status_combo,$blog_status).'</p>'; -
admin/categories.php
r1662 r1741 114 114 dcPage::success(__('Categories have been successfully reordered.')); 115 115 } 116 117 $categories_combo = array(); 118 if (!$rs->isEmpty()) 119 { 120 while ($rs->fetch()) { 121 $catparents_combo[] = $categories_combo[] = new formSelectOption( 122 str_repeat(' ',$rs->level-1).($rs->level-1 == 0 ? '' : '• ').html::escapeHTML($rs->cat_title), 123 $rs->cat_id 124 ); 125 } 126 } 116 $categories_combo = dcAdminCombos::getCategoriesCombo($rs); 127 117 128 118 echo … … 139 129 echo 140 130 '<form action="categories.php" method="post" id="form-categories">'. 141 '<h3>'.__('List of blog\'s categories').'</h3>'.142 131 '<div id="categories">'; 143 132 … … 180 169 '<p class="col right" id="mov-cat">'. 181 170 '<label for="mov_cat" class="classic">'.__('Category which will receive entries of deleted categories:').'</label> '. 182 form::combo('mov_cat', array_merge(array(__('(No cat)') => ''),$categories_combo),'','').171 form::combo('mov_cat',$categories_combo,'',''). 183 172 '</p>'. 184 173 '<p class="right">'. -
admin/comment.php
r1553 r1719 26 26 $comment_spam_status = ''; 27 27 28 28 29 # Status combo 29 foreach ($core->blog->getAllCommentStatus() as $k => $v) { 30 $status_combo[$v] = (string) $k; 31 } 30 $status_combo = dcAdminCombos::getCommentStatusescombo(); 32 31 33 32 # Adding comment -
admin/comments.php
r1528 r1719 28 28 # Creating filter combo boxes 29 29 # Filter form we'll put in html_block 30 $status_combo = array( 31 '-' => '' 32 ); 33 foreach ($core->blog->getAllCommentStatus() as $k => $v) { 34 $status_combo[$v] = (string) $k; 35 } 30 $status_combo = array_merge( 31 array('-' => ''), 32 dcAdminCombos::getCommentStatusescombo() 33 ); 34 36 35 37 36 $type_combo = array( -
admin/index.php
r1699 r1741 144 144 if ($feed) 145 145 { 146 $latest_news = '<h3>'.__(' Latestnews').'</h3><dl id="news">';146 $latest_news = '<h3>'.__('Dotclear news').'</h3><dl id="news">'; 147 147 $i = 1; 148 148 foreach ($feed->items as $item) 149 149 { 150 $dt = isset($item->link) ? '<a href="'.$item->link.'" title="'.$item->title.' '.__('(external link)').'">'.151 $item->title.' </a>' : $item->title;150 $dt = isset($item->link) ? '<a href="'.$item->link.'" title="'.$item->title.' ('.__('new window').')">'. 151 $item->title.' <img src="images/outgoing-blue.png" alt="" /></a>' : $item->title; 152 152 153 153 if ($i < 3) { … … 179 179 180 180 foreach ($__resources['doc'] as $k => $v) { 181 $doc_links .= '<li><a href="'.$v.'" title="'.$k.' '.__('(external link)').'">'.$k.'</a></li>'; 181 $doc_links .= '<li><a href="'.$v.'" title="'.$k.' ('.__('new window').')">'.$k. 182 ' <img src="images/outgoing-blue.png" alt="" /></a></li>'; 182 183 } 183 184 … … 222 223 '<a href="update.php?hide_msg=1">'.__('Remind me later').'</a>'. 223 224 ($version_info ? ' </p>'. 224 '<p><a href="'.$version_info.'" class=" info">'.__('information about this version').'</a>' : '').'</p>'.225 '<p><a href="'.$version_info.'" class="updt-info">'.__('information about this version').'</a>' : '').'</p>'. 225 226 '</div>'; 226 227 } … … 257 258 258 259 # Check cache directory 259 if (!is_dir(DC_TPL_CACHE)) { 260 $err[] = '<p>'.sprintf(__('Cache directory %s does not exist.'),DC_TPL_CACHE).'</p>'; 261 } else if (!is_writable(DC_TPL_CACHE)) { 262 $err[] = '<p>'.sprintf(__('Cache directory %s is not writable.'),DC_TPL_CACHE).'</p>'; 260 if ( $core->auth->isSuperAdmin() ) { 261 if (!is_dir(DC_TPL_CACHE) || !is_writable(DC_TPL_CACHE)) { 262 $err[] = '<p>'.__("The cache directory does not exist or is not writable. You must create this directory with sufficient rights and affect this location to \"DC_TPL_CACHE\" in inc/config.php file.").'</p>'; 263 } 264 } else { 265 if (!is_dir(DC_TPL_CACHE) || !is_writable(DC_TPL_CACHE)) { 266 $err[] = '<p>'.__("The cache directory does not exist or is not writable. You should contact your administrator.").'</p>'; 267 } 263 268 } 264 269 265 270 # Check public directory 266 if (!is_dir($core->blog->public_path)) { 267 $err[] = '<p>'.sprintf(__('Directory %s does not exist.'),$core->blog->public_path).'</p>'; 268 } else if (!is_writable($core->blog->public_path)) { 269 $err[] = '<p>'.sprintf(__('Directory %s is not writable.'),$core->blog->public_path).'</p>'; 271 if ( $core->auth->isSuperAdmin() ) { 272 if (!is_dir($core->blog->public_path) || !is_writable($core->blog->public_path)) { 273 $err[] = '<p>'.__("There is no writable directory /public/ at the location set in about:config \"public_path\". You must create this directory with sufficient rights (or change this setting).").'</p>'; 274 } 275 } else { 276 if (!is_dir($core->blog->public_path) || !is_writable($core->blog->public_path)) { 277 $err[] = '<p>'.__("There is no writable root directory for the media manager. You should contact your administrator.").'</p>'; 278 } 270 279 } 271 280 … … 293 302 echo '</ul></div>'; 294 303 } 295 296 # Dashboard columns (processed first, as we need to know the result before displaying the icons.)297 $dashboardItems = '';298 299 # Dotclear updates notifications300 if ($core->auth->isSuperAdmin() && is_readable(DC_DIGESTS))301 {302 $updater = new dcUpdate(DC_UPDATE_URL,'dotclear',DC_UPDATE_VERSION,DC_TPL_CACHE.'/versions');303 $new_v = $updater->check(DC_VERSION);304 $version_info = $new_v ? $updater->getInfoURL() : '';305 306 if ($updater->getNotify() && $new_v) {307 $dashboardItems .=308 '<div id="upg-notify" class="static-msg"><p>'.sprintf(__('Dotclear %s is available!'),$new_v).'</p> '.309 '<ul><li><strong><a href="update.php">'.sprintf(__('Upgrade now'),$new_v).'</a></strong>'.310 '</li><li><a href="update.php?hide_msg=1">'.__('Remind me later').'</a>'.311 ($version_info ? ' </li><li>'.sprintf(__('<a href=\"%s\">Information about this version</a>.'),$version_info) : '').312 '</li></ul></div>';313 }314 }315 316 304 # Errors modules notifications 317 305 if ($core->auth->isSuperAdmin()) … … 323 311 324 312 if (count($list) > 0) { 325 $dashboardItems .=326 '<div id="module-errors" class="error"><p>'.__('Some plugins are installed twice:').'</p> '.313 echo 314 '<div class="error" id="module-errors" class="error"><p>'.__('Some plugins are installed twice:').'</p> '. 327 315 '<ul>'.implode("\n",$list).'</ul></div>'; 328 316 } 329 330 } 317 } 318 319 # Dashboard columns (processed first, as we need to know the result before displaying the icons.) 320 $dashboardItems = ''; 331 321 332 322 foreach ($__dashboard_items as $i) … … 334 324 if ($i->count() > 0) 335 325 { 336 $dashboardItems .= '<div class=" db-item">';326 $dashboardItems .= '<div class="box">'; 337 327 foreach ($i as $v) { 338 328 $dashboardItems .= $v; … … 343 333 344 334 # Dashboard icons 345 echo '<div id="dashboard-main" '.($dashboardItems ? '' : ' class="fullwidth"').'><div id="icons">';335 echo '<div id="dashboard-main"><div id="icons">'; 346 336 foreach ($__dashboard_icons as $i) 347 337 { … … 356 346 { 357 347 # Getting categories 358 $categories_combo = array(__('(No cat)') => ''); 359 try { 360 $categories = $core->blog->getCategories(array('post_type'=>'post')); 361 if (!$categories->isEmpty()) { 362 while ($categories->fetch()) { 363 $catparents_combo[] = $categories_combo[] = new formSelectOption( 364 str_repeat(' ',$categories->level-1).($categories->level-1 == 0 ? '' : '• ').html::escapeHTML($categories->cat_title), 365 $categories->cat_id 366 ); 367 } 368 } 369 } catch (Exception $e) { } 348 $categories_combo = dcAdminCombos::getCategoriesCombo( 349 $core->blog->getCategories(array('post_type'=>'post')) 350 ); 370 351 371 352 echo … … 414 395 if ($i->count() > 0) 415 396 { 416 $dashboardContents .= '<div >';397 $dashboardContents .= '<div class="box">'; 417 398 foreach ($i as $v) { 418 399 $dashboardContents .= $v; … … 421 402 } 422 403 } 423 echo ($dashboardContents ? '<div id="dashboard-contents">'.$dashboardContents.'</div>' : ''); 404 405 $class = ' '.(($dashboardItems != '') && ($dashboardContents != '') ? 'two-boxes' : 'one-box'); 406 407 if ($dashboardContents != '' || $dashboardItems != '') { 408 echo 409 '<hr />'. 410 '<div id="dashboard-boxes">'; 411 echo ($dashboardContents ? '<div class="db-contents'.$class.'">'.$dashboardContents.'</div>' : ''); 412 echo ($dashboardItems ? '<div class="db-items'.$class.'">'.$dashboardItems.'</div>' : ''); 413 echo 414 '</div>'; 415 } 424 416 425 417 echo '</div>'; 426 427 echo ($dashboardItems ? '<div id="dashboard-items">'.$dashboardItems.'</div>' : '');428 418 429 419 dcPage::close(); -
admin/install/check.php
r1179 r1743 49 49 } 50 50 51 if ($con->driver() == 'mysql' )51 if ($con->driver() == 'mysql' || $con->driver() == 'mysqli') 52 52 { 53 53 if (version_compare($con->version(),'4.1','<')) -
admin/install/wizard.php
r1399 r1744 55 55 } 56 56 57 $DBDRIVER = !empty($_POST['DBDRIVER']) ? $_POST['DBDRIVER'] : 'mysql';57 $DBDRIVER = !empty($_POST['DBDRIVER']) ? $_POST['DBDRIVER'] : (function_exists('mysqli_connect') ? 'mysqli' : 'mysql'); 58 58 $DBHOST = !empty($_POST['DBHOST']) ? $_POST['DBHOST'] : ''; 59 59 $DBNAME = !empty($_POST['DBNAME']) ? $_POST['DBNAME'] : ''; … … 179 179 '<form action="wizard.php" method="post">'. 180 180 '<p><label class="required" for="DBDRIVER"><abbr title="'.__('Required field').'">*</abbr> '.__('Database type:').'</label> '. 181 form::combo('DBDRIVER',array( 'MySQL'=>'mysql','PostgreSQL'=>'pgsql'),$DBDRIVER).'</p>'.181 form::combo('DBDRIVER',array(__('MySQL (deprecated)')=>'mysql',__('MySQLi')=>'mysqli',__('PostgreSQL')=>'pgsql'),$DBDRIVER).'</p>'. 182 182 '<p><label for="DBHOST">'.__('Database Host Name:').'</label> '. 183 183 form::field('DBHOST',30,255,html::escapeHTML($DBHOST)).'</p>'. -
admin/js/_media.js
r1461 r1724 1 (function($) { 2 $.fn.enhancedUploader = function() { 3 return this.each(function() { 4 var me = $(this); 5 6 function enableButton(button) { 7 button.prop('disabled',false).removeClass('disabled'); 8 } 9 10 function disableButton(button) { 11 button.prop('disabled',true).addClass('disabled'); 12 } 13 14 function displayMessageInQueue(n) { 15 var msg = ''; 16 if (n==1) { 17 msg = dotclear.jsUpload.msg.file_in_queue; 18 } else if (n>1) { 19 msg = dotclear.jsUpload.msg.files_in_queue; 20 msg = msg.replace(/%d/,n); 21 } else { 22 msg = dotclear.jsUpload.msg.no_file_in_queue; 23 } 24 $('.queue-message',me).html(msg); 25 } 26 27 $('.button.add').click(function(e) { 28 // Use the native click() of the file input. 29 $('#upfile').click(); 30 e.preventDefault(); 31 }); 32 33 $('.button.cancel', '#fileupload .fileupload-buttonbar').click(function(e) { 34 $('.button.cancel','#fileupload .fileupload-buttonbar').hide(); 35 disableButton($('.button.start','#fileupload .fileupload-buttonbar')); 36 displayMessageInQueue(0); 37 }); 38 39 $('.cancel').live('click', function(e) { 40 if ($('.fileupload-ctrl .files .template-upload', me).length==0) { 41 $('.button.cancel','#fileupload .fileupload-buttonbar').hide(); 42 disableButton($('.button.start','#fileupload .fileupload-buttonbar')); 43 } 44 displayMessageInQueue($('.files .template-upload',me).length); 45 }); 46 47 $('.button.clean', me).click(function(e) { 48 $('.fileupload-ctrl .files .template-download', me).slideUp(500, function() { 49 $(this).remove(); 50 }); 51 $(this).hide(); 52 e.preventDefault(); 53 }); 54 55 $(me).fileupload({ 56 url: $(me).attr('action'), 57 autoUpload: false, 58 sequentialUploads: true, 59 uploadTemplateId: null, 60 downloadTemplateId: null, 61 uploadTemplate: template_upload, 62 downloadTemplate: template_download 63 }).bind('fileuploadadd', function(e, data) { 64 $('.button.cancel','#fileupload .fileupload-buttonbar').show(); 65 enableButton($('.button.start','#fileupload .fileupload-buttonbar')); 66 }).bind('fileuploadadded', function(e, data) { 67 displayMessageInQueue($('.files .template-upload',me).length); 68 }).bind('fileuploaddone', function(e, data) { 69 if (data.result.files[0].html !==undefined) { 70 $('.media-list p.clear').before(data.result.files[0].html); 71 } 72 $('.button.clean',me).show(); 73 }).bind('fileuploadalways', function(e, data) { 74 displayMessageInQueue($('.files .template-upload',me).length); 75 if ($('.fileupload-ctrl .files .template-upload',me).length==0) { 76 $('.button.cancel','#fileupload .fileupload-buttonbar').hide(); 77 disableButton($('.button.start','#fileupload .fileupload-buttonbar')); 78 } 79 }); 80 81 var $container = $(me).parent(); 82 var $msg,label; 83 84 if ($container.hasClass('enhanced_uploader')) { 85 $msg = dotclear.msg.enhanced_uploader_disable; 86 label = dotclear.jsUpload.msg.choose_files; 87 $(me).fileupload({disabled:false}); 88 displayMessageInQueue(0); 89 disableButton($('.button.start','#fileupload .fileupload-buttonbar')); 90 } else { 91 $msg = dotclear.msg.enhanced_uploader_activate; 92 label = dotclear.jsUpload.msg.choose_file; 93 } 94 95 $('<p class="clear"><a class="enhanced-toggle" href="#">' + $msg + '</a></p>').click(function() { 96 if ($container.hasClass('enhanced_uploader')) { 97 $msg = dotclear.msg.enhanced_uploader_activate; 98 label = dotclear.jsUpload.msg.choose_file; 99 $('#upfile').attr('multiple', false); 100 enableButton($('.button.start','#fileupload .fileupload-buttonbar')); 101 102 // when a user has clicked enhanced_uploader, and has added files 103 // We must remove files in table 104 $('.files .upload-file', me).remove(); 105 $('.button.cancel,.button.clean','#fileupload .fileupload-buttonbar').hide(); 106 $(me).fileupload({disabled:true}); 107 $('.queue-message',me).html('').hide(); 108 } else { 109 $msg = dotclear.msg.enhanced_uploader_disable; 110 label = dotclear.jsUpload.msg.choose_files; 111 $('#upfile').attr('multiple', true); 112 var startButton = $('.button.start','#fileupload .fileupload-buttonbar'); 113 disableButton(startButton); 114 startButton.show(); 115 $(me).fileupload({disabled:false}); 116 $('.queue-message',me).show(); 117 displayMessageInQueue(0); 118 } 119 $(this).find('a').text($msg); 120 $('.add-label', me).text(label); 121 122 $container.toggleClass('enhanced_uploader'); 123 }).appendTo(me); 124 }); 125 }; 126 })(jQuery); 127 128 1 129 $(function() { 2 if ($('#fileupload').length==0) { 3 return; 4 } 5 6 function enableButton(button) { 7 button.prop('disabled',false).removeClass('disabled'); 8 } 9 10 function disableButton(button) { 11 button.prop('disabled',true).addClass('disabled'); 12 } 13 14 function displayMessageInQueue(n) { 15 var msg = ''; 16 if (n==1) { 17 msg = dotclear.jsUpload.msg.file_in_queue; 18 } else if (n>1) { 19 msg = dotclear.jsUpload.msg.files_in_queue; 20 msg = msg.replace(/%d/,n); 21 } else { 22 msg = dotclear.jsUpload.msg.no_file_in_queue; 23 } 24 $('.queue-message','#fileupload').html(msg); 25 } 26 27 $('.button.add').click(function(e) { 28 // Use the native click() of the file input. 29 $('#upfile').click(); 30 e.preventDefault(); 31 }); 32 33 $('.button.cancel', '#fileupload .fileupload-buttonbar').click(function(e) { 34 $('.button.cancel','#fileupload .fileupload-buttonbar').hide(); 35 disableButton($('.button.start','#fileupload .fileupload-buttonbar')); 36 displayMessageInQueue(0); 37 }); 38 39 $('.cancel').live('click', function(e) { 40 if ($('.fileupload-ctrl .files .template-upload', '#fileupload').length==0) { 41 $('.button.cancel','#fileupload .fileupload-buttonbar').hide(); 42 disableButton($('.button.start','#fileupload .fileupload-buttonbar')); 43 } 44 displayMessageInQueue($('.files .template-upload','#fileupload').length); 45 }); 46 47 $('.button.clean', '#fileupload').click(function(e) { 48 $('.fileupload-ctrl .files .template-download', '#fileupload').slideUp(500, function() { 49 $(this).remove(); 50 }); 51 $(this).hide(); 52 e.preventDefault(); 53 }); 54 55 $('#fileupload').fileupload({ 56 url: $('#fileupload').attr('action'), 57 autoUpload: false, 58 sequentialUploads: true, 59 uploadTemplateId: null, 60 downloadTemplateId: null, 61 uploadTemplate: template_upload, 62 downloadTemplate: template_download 63 }).bind('fileuploadadd', function(e, data) { 64 $('.button.cancel','#fileupload .fileupload-buttonbar').show(); 65 enableButton($('.button.start','#fileupload .fileupload-buttonbar')); 66 }).bind('fileuploadadded', function(e, data) { 67 displayMessageInQueue($('.files .template-upload','#fileupload').length); 68 }).bind('fileuploaddone', function(e, data) { 69 if (data.result.files[0].html !==undefined) { 70 $('.media-list p.clear').before(data.result.files[0].html); 71 } 72 $('.button.clean','#fileupload').show(); 73 }).bind('fileuploadalways', function(e, data) { 74 displayMessageInQueue($('.files .template-upload','#fileupload').length); 75 if ($('.fileupload-ctrl .files .template-upload','#fileupload').length==0) { 76 $('.button.cancel','#fileupload .fileupload-buttonbar').hide(); 77 disableButton($('.button.start','#fileupload .fileupload-buttonbar')); 78 } 79 }); 80 81 var $container = $('#fileupload').parent().parent(); 82 var $msg,label; 83 84 if ($container.hasClass('enhanced_uploader')) { 85 $msg = dotclear.msg.enhanced_uploader_disable; 86 label = dotclear.jsUpload.msg.choose_files; 87 $('#fileupload').fileupload({disabled:false}); 88 displayMessageInQueue(0); 89 disableButton($('.button.start','#fileupload .fileupload-buttonbar')); 90 } else { 91 $msg = dotclear.msg.enhanced_uploader_activate; 92 label = dotclear.jsUpload.msg.choose_file; 93 } 94 95 $('<p class="clear"><a class="enhanced-toggle" href="#">' + $msg + '</a></p>').click( function() { 96 if ($container.hasClass('enhanced_uploader')) { 97 $msg = dotclear.msg.enhanced_uploader_activate; 98 label = dotclear.jsUpload.msg.choose_file; 99 $('#upfile').attr('multiple', false); 100 101 // when a user has clicked enhanced_uploader, and has added files 102 // We must remove files in table 103 $('.files .upload-file', '#fileupload').remove(); 104 $('.button.cancel,.button.clean','#fileupload .fileupload-buttonbar').hide(); 105 $('#fileupload').fileupload({disabled:true}); 106 $('.queue-message','#fileupload').html('').hide(); 107 } else { 108 $msg = dotclear.msg.enhanced_uploader_disable; 109 label = dotclear.jsUpload.msg.choose_files; 110 $('#upfile').attr('multiple', true); 111 var startButton = $('.button.start','#fileupload .fileupload-buttonbar'); 112 disableButton(startButton); 113 startButton.show(); 114 $('#fileupload').fileupload({disabled:false}); 115 $('.queue-message','#fileupload').show(); 116 displayMessageInQueue(0); 117 } 118 $(this).find('a').text($msg); 119 $('.add-label', '#fileupload').text(label); 120 121 $container.toggleClass('enhanced_uploader'); 122 }).appendTo($('#fileupload')); 130 $('#fileupload').enhancedUploader(); 123 131 124 132 // Replace remove links by a POST on hidden form -
admin/js/jquery/jquery.pageTabs.js
r1280 r1737 9 9 breakerClassName: 'clear' 10 10 }; 11 11 12 12 var index = start_tab ? start_tab : 0; 13 13 var hash = document.location.hash.split('#').join(''); 14 if( hash != '' ) { 15 var index = hash; 16 } 17 14 18 this.params = jQuery.extend(defaults,settings); 15 19 this.divs = jQuery('div.'+this.params.className); 16 20 this.createList(); 17 21 this.showDiv(index); 22 var pageTabs = this; 23 24 window.onhashchange = function (event) { 25 pageTabs.showDiv(document.location.hash.split('#').join('')); 26 } 18 27 }; 19 28 … … 39 48 li = document.createElement('li'); 40 49 a = document.createElement('a'); 41 a.appendChild(document.createTextNode(this.title));50 $(a).html(this.title); 42 51 this.title = ''; 43 a.href = '#';44 52 a.fn = This.showDiv; 45 53 a.index = this.id || i; 54 a.href = '#'+a.index; 55 li.id = "part-tabs-"+a.index; 46 56 a.obj = This; 47 jQuery(a).click(function() { this.fn.call(this.obj,this.index); return false; });48 57 li.appendChild(a); 49 58 This.list.appendChild(li); -
admin/js/meta-editor.js
r175 r1741 28 28 this.target.empty(); 29 29 30 this.meta_dialog = $('<input type="text" />');30 this.meta_dialog = $('<input type="text" class="ib" />'); 31 31 this.meta_dialog.attr('title',this.text_add_meta.replace(/%s/,this.meta_type)); 32 32 this.meta_dialog.attr('id','post_meta_input'); … … 42 42 var This = this; 43 43 44 this.submit_button = $('<input type="button" value="ok" />');44 this.submit_button = $('<input type="button" value="ok" class="ib" />'); 45 45 this.submit_button.click(function() { 46 46 var v = This.meta_dialog.val(); -
admin/media.php
r1681 r1725 91 91 $dir =& $core->media->dir; 92 92 if (!$core_media_writable) { 93 throw new Exception('you do not have sufficient permissions to write to this folder: ');93 // throw new Exception('you do not have sufficient permissions to write to this folder: '); 94 94 } 95 95 } catch (Exception $e) { … … 262 262 ); 263 263 264 if (!$core_media_writable) { 265 dcPage::warning(__('You do not have sufficient permissions to write to this folder.')); 266 } 267 264 268 if (!empty($_GET['mkdok'])) { 265 269 dcPage::success(__('Directory has been successfully created.')); … … 343 347 { 344 348 echo 345 '<h3 >'.sprintf(__('In %s:'),($d == '' ? '“'.__('Media manager').'”' : '“'.$d.'”')).'</h3>'.349 '<h3 class="hidden">'.sprintf(__('In %s:'),($d == '' ? '“'.__('Media manager').'”' : '“'.$d.'”')).'</h3>'. 346 350 '<div class="media-action-box">'; 347 351 … … 393 397 '</div>'. 394 398 '</div>'; 395 396 echo 397 '<div class="media-action-box">'. 398 '<form action="'.html::escapeURL($page_url).'" method="post">'. 399 '<div id="new-dir-f">'. 400 '<h4>'.__('Create new directory').'</h4>'. 401 $core->formNonce(). 402 '<p><label for="newdir">'.__('Directory Name:').'</label>'. 403 form::field(array('newdir','newdir'),35,255).'</p>'. 404 '<p><input type="submit" value="'.__('Create').'" />'. 405 form::hidden(array('d'),html::escapeHTML($d)).'</p>'. 406 '</div>'. 407 '</form>'. 408 '</div>'; 409 } 399 } 400 401 $core_media_archivable = $core->auth->check('media_admin',$core->blog->id) && 402 !(count($items) == 0 || (count($items) == 1 && $items[0]->parent)); 403 404 if ($core_media_writable || $core_media_archivable) { 405 406 echo '<div class="media-action-box">'; 407 408 # Create directory 409 if ($core_media_writable) 410 { 411 echo 412 '<form action="'.html::escapeURL($page_url).'" method="post">'. 413 '<div id="new-dir-f">'. 414 '<h4>'.__('Create new directory').'</h4>'. 415 $core->formNonce(). 416 '<p><label for="newdir">'.__('Directory Name:').'</label>'. 417 form::field(array('newdir','newdir'),35,255).'</p>'. 418 '<p><input type="submit" value="'.__('Create').'" />'. 419 form::hidden(array('d'),html::escapeHTML($d)).'</p>'. 420 '</div>'. 421 '</form>'; 422 } 423 424 # Get zip directory 425 if ($core_media_archivable) 426 { 427 echo 428 '<h4>'.__('Backup content').'</h4>'. 429 '<p>'.__('Compress this directory with its content as a zip file and download it.').'</p>'. 430 '<p><a class="submit" href="'.html::escapeURL($page_url).'&zipdl=1">'. 431 __('Download').'</a></p>'; 432 } 433 434 echo '</div>'; 435 } 410 436 411 437 # Empty remove form (for javascript actions) … … 419 445 '</form>'; 420 446 421 # Get zip directory422 if ($core->auth->check('media_admin',$core->blog->id) &&423 !(count($items) == 0 || (count($items) == 1 && $items[0]->parent)))424 {425 echo426 '<div class="media-action-box">'.427 '<h4>'.__('Backup content').'</h4>'.428 '<p>'.__('Compress this directory with its content as a zip file and download it.').'</p>'.429 '<p><a class="submit" href="'.html::escapeURL($page_url).'&zipdl=1">'.430 __('Download').'</a></p>'.431 '</div>';432 }433 434 447 call_user_func($close_f); 435 448 -
admin/popup_link.php
r1399 r1719 25 25 # Languages combo 26 26 $rs = $core->blog->getLangs(array('order'=>'asc')); 27 $all_langs = l10n::getISOcodes(0,1); 28 $lang_combo = array('' => '', __('Most used') => array(), __('Available') => l10n::getISOcodes(1,1)); 29 while ($rs->fetch()) { 30 if (isset($all_langs[$rs->post_lang])) { 31 $lang_combo[__('Most used')][$all_langs[$rs->post_lang]] = $rs->post_lang; 32 unset($lang_combo[__('Available')][$all_langs[$rs->post_lang]]); 33 } else { 34 $lang_combo[__('Most used')][$rs->post_lang] = $rs->post_lang; 35 } 36 } 37 unset($all_langs); 38 unset($rs); 27 $lang_combo = dcAdminCombos::getLangsCombo($rs,true); 39 28 40 29 echo -
admin/post.php
r1714 r1741 51 51 52 52 # Getting categories 53 $categories_combo = array(' ' => ''); 54 try { 55 $categories = $core->blog->getCategories(array('post_type'=>'post')); 56 while ($categories->fetch()) { 57 $categories_combo[] = new formSelectOption( 58 str_repeat(' ',$categories->level-1).($categories->level-1 == 0 ? '' : '• ').html::escapeHTML($categories->cat_title), 59 $categories->cat_id 60 ); 61 } 62 } catch (Exception $e) { } 63 64 # Status combo 65 foreach ($core->blog->getAllPostStatus() as $k => $v) { 66 $status_combo[$v] = (string) $k; 67 } 53 $categories_combo = dcAdminCombos::getCategoriesCombo( 54 $core->blog->getCategories(array('post_type'=>'post')) 55 ); 56 57 $status_combo = dcAdminCombos::getPostStatusesCombo(); 58 68 59 $img_status_pattern = '<img class="img_select_option" alt="%1$s" title="%1$s" src="images/%2$s" />'; 69 60 70 61 # Formaters combo 71 foreach ($core->getFormaters() as $v) { 72 $formaters_combo[$v] = $v; 73 } 62 $formaters_combo = dcAdminCombos::getFormatersCombo(); 74 63 75 64 # Languages combo 76 65 $rs = $core->blog->getLangs(array('order'=>'asc')); 77 $all_langs = l10n::getISOcodes(0,1); 78 $lang_combo = array('' => '', __('Most used') => array(), __('Available') => l10n::getISOcodes(1,1)); 79 while ($rs->fetch()) { 80 if (isset($all_langs[$rs->post_lang])) { 81 $lang_combo[__('Most used')][$all_langs[$rs->post_lang]] = $rs->post_lang; 82 unset($lang_combo[__('Available')][$all_langs[$rs->post_lang]]); 83 } else { 84 $lang_combo[__('Most used')][$rs->post_lang] = $rs->post_lang; 85 } 86 } 87 unset($all_langs); 88 unset($rs); 66 $lang_combo = dcAdminCombos::getLangsCombo($rs,true); 89 67 90 68 # Validation flag … … 305 283 306 284 # Getting categories 307 $categories_combo = array(__('(No cat)') => ''); 308 try { 309 $categories = $core->blog->getCategories(array('post_type'=>'post')); 310 if (!$categories->isEmpty()) { 311 while ($categories->fetch()) { 312 $catparents_combo[] = $categories_combo[] = new formSelectOption( 313 str_repeat(' ',$categories->level-1).($categories->level-1 == 0 ? '' : '• ').html::escapeHTML($categories->cat_title), 314 $categories->cat_id 315 ); 316 } 317 } 318 } catch (Exception $e) { } 319 285 $categories_combo = dcAdminCombos::getCategoriesCombo( 286 $core->blog->getCategories(array('post_type'=>'post')) 287 ); 320 288 /* DISPLAY 321 289 -------------------------------------------------------- */ … … 446 414 '</p>'. 447 415 '<p>'.($post_id && $post_format != 'xhtml' ? 448 '<a id="convert-xhtml" class="button maximal" href="post.php?id='.$post_id.'&xconv=1">'.416 '<a id="convert-xhtml" class="button" href="post.php?id='.$post_id.'&xconv=1">'. 449 417 __('Convert to XHTML').'</a>' : '').'</p></div>')), 450 418 'metas-box' => array( … … 517 485 518 486 "post_excerpt" => 519 '<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').' <span class="form-note">'.487 '<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').' <span class="form-note">'. 520 488 __('Introduction to the post.').'</span></label> '. 521 489 form::textarea('post_excerpt',50,5,html::escapeHTML($post_excerpt)). … … 529 497 530 498 "post_notes" => 531 '<p class="area" id="notes-area"><label for="post_notes">'.__('Personal notes:').' <span class="form-note">'.499 '<p class="area" id="notes-area"><label for="post_notes">'.__('Personal notes:').' <span class="form-note">'. 532 500 __('Unpublished notes.').'</span></label>'. 533 501 form::textarea('post_notes',50,5,html::escapeHTML($post_notes)). … … 580 548 581 549 foreach ($sidebar_items as $id => $c) { 582 echo '<div id="'.$id.'" class=" box">'.550 echo '<div id="'.$id.'" class="sb-box">'. 583 551 '<h4>'.$c['title'].'</h4>'; 584 552 foreach ($c['items'] as $e_name=>$e_content) { … … 633 601 634 602 echo 635 '<div id="comments" class=" multi-part" title="'.__('Comments').'">';603 '<div id="comments" class="clear multi-part" title="'.__('Comments').'">'; 636 604 637 605 # --BEHAVIOR-- adminCommentsActionsCombo … … 640 608 $has_action = !empty($combo_action) && (!$trackbacks->isEmpty() || !$comments->isEmpty()); 641 609 echo 642 '<p class="top-add"><a class="button add onblog_link" href="#comment-form">'.__('Add a comment').'</a></p>';610 '<p class="top-add"><a class="button add" href="#comment-form">'.__('Add a comment').'</a></p>'; 643 611 644 612 if ($has_action) { -
admin/posts.php
r1596 r1719 47 47 { 48 48 # Filter form we'll put in html_block 49 $users_combo = $categories_combo = array(); 50 $users_combo['-'] = $categories_combo['-'] = ''; 51 while ($users->fetch()) 52 { 53 $user_cn = dcUtils::getUserCN($users->user_id,$users->user_name, 54 $users->user_firstname,$users->user_displayname); 55 56 if ($user_cn != $users->user_id) { 57 $user_cn .= ' ('.$users->user_id.')'; 58 } 59 60 $users_combo[$user_cn] = $users->user_id; 61 } 62 49 $users_combo = array_merge( 50 array('-' => ''), 51 dcAdminCombos::getUsersCombo($users) 52 ); 53 54 $categories_combo = array_merge( 55 array('-' => ''), 56 dcAdminCombos::getCategoriesCombo($categories) 57 ); 63 58 $categories_combo[__('(No cat)')] = 'NULL'; 64 while ($categories->fetch()) { 65 $categories_combo[str_repeat(' ',$categories->level-1).($categories->level-1 == 0 ? '' : '• '). 66 html::escapeHTML($categories->cat_title). 67 ' ('.$categories->nb_post.')'] = $categories->cat_id; 68 } 69 70 $status_combo = array( 71 '-' => '' 72 ); 73 foreach ($core->blog->getAllPostStatus() as $k => $v) { 74 $status_combo[$v] = (string) $k; 75 } 59 60 $status_combo = array_merge( 61 array('-' => ''), 62 dcAdminCombos::getPostStatusesCombo() 63 ); 76 64 77 65 $selected_combo = array( … … 82 70 83 71 # Months array 84 $dt_m_combo ['-'] = '';85 while ($dates->fetch()) {86 $dt_m_combo[dt::str('%B %Y',$dates->ts())] = $dates->year().$dates->month();87 }88 89 $lang_combo ['-'] = '';90 while ($langs->fetch()) {91 $lang_combo[$langs->post_lang] = $langs->post_lang;92 }72 $dt_m_combo = array_merge( 73 array('-' => ''), 74 dcAdminCombos::getDatesCombo($dates) 75 ); 76 77 $lang_combo = array_merge( 78 array('-' => ''), 79 dcAdminCombos::getLangsCombo($langs,false) 80 ); 93 81 94 82 $sortby_combo = array( -
admin/posts_actions.php
r1637 r1719 414 414 # categories list 415 415 # Getting categories 416 $categories_combo = array(__('(No cat)') => ''); 417 try { 418 $categories = $core->blog->getCategories(array('post_type'=>'post')); 419 if (!$categories->isEmpty()) { 420 while ($categories->fetch()) { 421 $catparents_combo[] = $categories_combo[] = new formSelectOption( 422 str_repeat(' ',$categories->level-1).($categories->level-1 == 0 ? '' : '• ').html::escapeHTML($categories->cat_title), 423 $categories->cat_id 424 ); 425 } 426 } 427 } catch (Exception $e) { } 416 $categories_combo = dcAdminCombos::getCategoriesCombo( 417 $core->blog->getCategories(array('post_type'=>'post')) 418 ); 428 419 429 420 echo … … 465 456 # Languages combo 466 457 $rs = $core->blog->getLangs(array('order'=>'asc')); 467 $all_langs = l10n::getISOcodes(0,1); 468 $lang_combo = array('' => '', __('Most used') => array(), __('Available') => l10n::getISOcodes(1,1)); 469 while ($rs->fetch()) { 470 if (isset($all_langs[$rs->post_lang])) { 471 $lang_combo[__('Most used')][$all_langs[$rs->post_lang]] = $rs->post_lang; 472 unset($lang_combo[__('Available')][$all_langs[$rs->post_lang]]); 473 } else { 474 $lang_combo[__('Most used')][$rs->post_lang] = $rs->post_lang; 475 } 476 } 477 unset($all_langs); 478 unset($rs); 458 $lang_combo = dcAdminCombos::getLangsCombo($rs,true); 479 459 480 460 echo -
admin/preferences.php
r1609 r1726 56 56 } 57 57 58 foreach ($core->getFormaters() as $v) { 59 $formaters_combo[$v] = $v; 60 } 61 62 foreach ($core->blog->getAllPostStatus() as $k => $v) { 63 $status_combo[$v] = $k; 64 } 58 # Formaters combo 59 $formaters_combo = dcAdminCombos::getFormatersCombo(); 60 61 $status_combo = dcAdminCombos::getPostStatusescombo(); 65 62 66 63 $iconsets_combo = array(__('Default') => ''); … … 77 74 78 75 # Language codes 79 $langs = l10n::getISOcodes(1,1); 80 foreach ($langs as $k => $v) { 81 $lang_avail = $v == 'en' || is_dir(DC_L10N_ROOT.'/'.$v); 82 $lang_combo[] = new formSelectOption($k,$v,$lang_avail ? 'avail10n' : ''); 83 } 76 $lang_combo = dcAdminCombos::getAdminLangsCombo(); 84 77 85 78 # Add or update user … … 409 402 410 403 '<p><label for="user_url">'.__('URL:').'</label>'. 411 form::field('user_url',30,255,html::escapeHTML($user_url)).'</p>'; 404 form::field('user_url',30,255,html::escapeHTML($user_url)).'</p>'. 405 406 '<p><label for="user_lang">'.__('Language for my interface:').'</label>'. 407 form::combo('user_lang',$lang_combo,$user_lang,'l10n').'</p>'. 408 409 '<p><label for="user_tz">'.__('My timezone:').'</label>'. 410 form::combo('user_tz',dt::getZones(true,true),$user_tz).'</p>'; 411 412 412 413 413 if ($core->auth->allowPassChange()) … … 456 456 '<h4>'.__('Interface').'</h4>'. 457 457 458 '<p><label for="user_lang">'.__('Language for my interface:').'</label>'.459 form::combo('user_lang',$lang_combo,$user_lang,'l10n').'</p>'.460 461 '<p><label for="user_tz">'.__('My timezone:').'</label>'.462 form::combo('user_tz',dt::getZones(true,true),$user_tz).'</p>'.463 464 458 '<p><label for="user_ui_enhanceduploader" class="classic">'. 465 459 form::checkbox('user_ui_enhanceduploader',1,$user_ui_enhanceduploader).' '. -
admin/style/default.css
r1698 r1748 1 1 /* 2 # -- BEGIN LICENSE BLOCK --------------------------------------- 3 # 2 # -- BEGIN LICENSE BLOCK -------------------------------------------------- 4 3 # This file is part of Dotclear 2. 5 #6 4 # Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear 7 5 # Licensed under the GPL version 2.0 license. 8 # See LICENSE file or 9 # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 10 # 11 # -- END LICENSE BLOCK ----------------------------------------- 6 # See LICENSE file or http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 7 # -- END LICENSE BLOCK ---------------------------------------------------- 8 LAYOUTS 9 HTML TAGS 10 FORMULAIRES 11 BOUTONS 12 MESSAGES 13 ELEMENTS PRINCIPAUX 14 REGLES SPECIFIQUES 15 MEDIA QUERIES 12 16 */ 13 14 /* ------------------------------------------------------------------ html */ 15 html { 16 font-size: 62.5%; 17 } 18 body { 19 font-size: 12px; /* ie < 9 sucks */ 20 font-size: 1.2rem; 21 line-height: 1.5; 22 font-family: Arial,Helvetica,sans-serif; 23 color: #333; 24 background: #fff; 25 margin: 0; 26 padding: 0; 27 } 28 29 a, a:link, a:visited { 30 color: #2373A8; 31 text-decoration: none; 32 border-bottom: 1px dotted #f90; 33 } 34 a:hover, a:active, a:focus { 35 text-decoration: underline; 36 } 37 a img, a:link img, a:visited img { 38 border:none; 39 } 40 h1, h2, h3, .as_h3, h4, h5, h6, p { 41 margin-top: 0; 42 margin-bottom: 1em; 43 } 44 h2 { 45 color: #666; 46 font-size: 18px; /* ie < 9 sucks */ 47 font-size: 1.8rem; 48 padding: 0 0 1.5em; 49 font-weight: normal; 50 } 51 h2 a:link, h2 a:visited { 52 color: #666; 53 border-color: #000; 54 } 55 .page-title { 56 color: #d30e60; 57 } 58 .page-title img { 59 padding-left: .5em; 60 vertical-align: middle; 61 } 62 #content > h2 { 63 padding: 0 18px 6px; /* ie < 9 sucks */ 64 padding: 0 1.8rem .6rem; 65 margin: 0 -18px .5em; /* ie < 9 sucks */ 66 margin: 0 -1.8rem 1rem; 67 background: #fff url(bg_h2.png) repeat-x center bottom; 68 } 69 h3, .as_h3 { 70 color: #575859; 71 font-size: 16px; /* ie < 9 sucks */ 72 font-size: 1.6rem; 73 } 74 h4 { 75 font-size: 14px; /* ie < 9 sucks */ 76 font-size: 1.4rem; 77 color: #575859; 78 } 79 h5 { 80 font-size: 12px; /* ie < 9 sucks */ 81 font-size: 1.2rem; 82 color: #575859; 83 } 84 #entry-sidebar h5 { 85 font-weight: normal; 86 color: #333; 87 } 88 .entry-status img.img_select_option { 89 padding-left: 4px; 90 vertical-align: text-top; 91 } 92 p, div.p { 93 margin: 0 0 1em 0; 94 } 95 hr { 96 height: 1px; 97 border-width: 1px 0 0; 98 border-color: #999; 99 border-style: solid; 100 } 101 pre, code { 102 font: 100% "Andale Mono","Courier New",monospace; 103 } 104 pre { 105 white-space: pre; 106 white-space: -moz-pre-wrap; 107 white-space: -hp-pre-wrap; 108 white-space: -o-pre-wrap; 109 white-space: -pre-wrap; 110 white-space: pre-wrap; 111 white-space: pre-line; 112 word-wrap: break-word; 113 } 114 abbr { 115 cursor: help; 116 } 117 118 /* LAYOUT 119 -------------------------------------------------------- */ 120 /* header */ 17 /* --------------------------------------------------------------------------- 18 LAYOUTS 19 ---------------------------------------------------------------------------- */ 121 20 #header { 122 background: # 575859;21 background: #676e78; 123 22 position: relative; 124 23 border-bottom: 4px solid #A2CBE9; 125 24 width: 100%; 126 } 127 #prelude { 128 line-height: 1.5; 129 margin: 0; 130 padding: 0; 131 overflow: hidden; 132 position: absolute; 133 top: 3em; 134 left: 0; 135 background: #A2CBE9; 136 width: 100%; 137 } 138 #prelude li { 139 list-style-type: none; 140 margin: 0; 141 background:transparent; 142 display: inline; 143 } 144 #prelude li a { 145 padding: 3px 16px 3px 8px; /* ie < 9 sucks */ 146 padding: 3px 1.6rem 3px .8rem; 147 background: #A2CBE9; 148 color: #000; 149 border-bottom-color: #A2CBE9; 150 } 151 #top { 152 margin: 0; 153 padding: 0; 154 width: 14.5em; 155 float: left; 156 } 157 #top h1 { 158 padding: 0; 159 margin: 0; 160 height: 36px; 161 text-indent: -1000px; 162 } 163 #top h1 a { 164 position: absolute; 165 top: 0; 166 left: 0; 167 width: 174px; /* ie < 9 sucks */ 168 width: 17.4rem; 169 height: 36px; /* ie < 9 sucks */ 170 height: 3.6rem; 171 border: none; 172 color: #fff; 173 } 174 #top h1 a:link { 175 background: transparent url(dc_logos/b-dotclear120.png) no-repeat 0 6px; 176 } 177 #top h1 a:hover, #top h1 a:focus { 178 background: transparent url(dc_logos/b-dotclear120.png) no-repeat 0 -94px; 179 } 180 #info-boxes { 181 font-size: 12px; /* ie < 9 sucks */ 182 font-size: 1.2rem; 183 line-height: 3em; 184 } 185 #info-box1 { 186 margin: 0; 187 padding: 0 3px 0 18px; 188 color: #fff; 189 display: inline-block; 190 } 191 #info-box2 { 192 margin: 0; 193 padding: 0 18px 0 0; 194 color: #fff; 195 float: right; 196 text-align: right; 197 } 198 #info-box1 p { 199 margin: 0; 200 display: inline; 201 } 202 #info-box1 select { 203 width: 145px; /* ie < 9 sucks */ 204 width: 14.5em; 205 } 206 #info-box1 a img, #info-box2 a img { 207 vertical-align: middle; 208 padding-left: .3em; 209 } 210 #info-boxes a { 211 font-weight: bold; 212 color: #fff; 213 border-bottom-color: #ccc; 214 margin-left: .3em; 215 margin-right: .3em; 216 white-space: nowrap; 217 font-weight: normal; 218 } 219 #info-boxes .logout { 220 margin-right: 0; 221 } 222 #info-box1 a { 223 margin-left: 1.33em; 224 } 225 #info-box2 a.active { 226 border-bottom-color: #fff; 227 margin: 0; 228 padding: 1.2em .5em; 229 background-color: #fff; 230 color: #333; 231 font-weight: bold; 232 } 233 #info-box2 span { 234 color: #999; 235 } 236 /* main blocks */ 25 } 237 26 #wrapper { 238 27 width: 100%; 239 28 padding-top: 1em; 240 }29 } 241 30 #main { 242 31 width: 100%; … … 245 34 margin-top: 0; 246 35 background: #fff url(bg_menu.png); 247 }36 } 248 37 #content { 249 38 margin: 0 0 0 14.5em; … … 251 40 padding: .9rem 1.8rem 1.8rem; 252 41 background: #fff; 253 } 254 /* Micro clearfix thx to Nicolas Gallagher */ 255 #content:before, #content:after {content:"";display:table;} 256 #content:after {clear:both;} 257 /* -------------------------------------------------- layout - multipart */ 258 .three-cols { 259 } 260 .three-cols .col { 261 width: 32.3%; 262 float: left; 263 margin-left: 1%; 264 } 265 .three-cols .col:first-child { 266 width: 33.3%; 267 margin-left: 0; 268 } 269 .two-cols { 270 position: static; 271 } 272 .two-cols .col { 273 width: 48%; 274 margin-left: 2%; 275 float: left; 276 } 277 .two-cols .col70{ 278 width: 68%; 279 margin-left: 0; 280 float: left; 281 } 282 .col30 { 283 width: 28%; 284 margin-left: 2%; 285 float: left; 286 } 287 .two-cols .col:first-child, 288 .two-cols .col30.first-col { 289 margin-left: 0; 290 margin-right: 2%; 291 } 292 .two-cols .col:last-child, 293 .two-cols .col70.last-col { 294 margin-left: 2%; 295 margin-right: 0; 296 } 297 /* -------------------------------------------------------------- layout - onglets */ 298 .part-tabs ul { 299 padding: .5em 0 .3em 1em; 300 border-bottom: 1px solid #ddd; 301 } 302 .part-tabs li { 303 list-style: none; 304 margin: 0; 305 display: inline; 306 } 307 .part-tabs li a { 308 padding: .5em 2em; 309 margin-right: -1px; 310 border: 1px solid #aaa; 311 border-bottom: none; 312 text-decoration: none; 313 color: #333; 314 background-color:#E4E0EC; 315 } 316 .part-tabs li a:hover, .part-tabs li a:focus { 317 color: #000; 318 background: #fff; 319 border-bottom-color: #fff; 320 } 321 .part-tabs li.part-tabs-active a { 322 background: #fff; 323 font-weight: bold; 324 border-bottom-color: #fff; 325 padding-bottom: 7px; /* ie < 9 sucks */ 326 padding-bottom: .7rem; 327 } 328 /* ------------------------------------------------------------------ main-menu */ 42 } 329 43 #main-menu { 330 44 width: 14.5em; … … 334 48 padding-bottom: 1em; 335 49 background: #f7f7f7; 336 } 337 #main-menu h3 { 338 margin: 0; 339 padding: 10px 0 10px 8px; 340 color: #666; 341 font-size: 14px; /* ie < 9 sucks */ 342 font-size: 1.4rem; 343 } 344 #main-menu h3 img[alt="cacher"] { 345 vertical-align: top; 346 } 347 #main-menu ul { 348 margin: 0 0 1.5em 0; 349 padding: 0; 350 list-style: none; 351 } 352 #main-menu li { 353 display: block; 354 margin: 0.5em 0 0; 355 padding: 3px 0 0 30px; 356 background-repeat: no-repeat; 357 background-position: 8px .3em; 358 } 359 #main-menu ul li:first-child { 360 margin-top: 0; 361 } 362 #main-menu li.active { 363 background-color: #fff; 364 } 365 #main-menu a { 366 color: #333; 367 border-bottom-color: #ccc; 368 } 369 #main-menu .active a { 370 border-bottom: none; 371 color: #d30e60; 372 } 373 #main-menu .active { 374 font-weight: bold; 375 } 376 #search-menu { 377 padding: 4px 5px 0; 378 font-size: 100% 379 } 380 #search-menu * { 381 height: 22px; /* ie < 9 sucks */ 382 height: 2.2rem; 383 display: inline-block; 384 vertical-align: top; 385 line-height: 22px; 386 } 387 #search-menu p { 388 border: 1px solid #999; 389 border-radius: .3em; 390 position: relative; 391 overflow: hidden; 392 } 393 #qx { 394 width: 124px; /* ie < 9 sucks */ 395 width: 12.4rem; 396 border-bottom-left-radius: .3em; 397 border-top-left-radius: .3em; 398 background: transparent url(search.png) no-repeat 4px center; 399 text-indent: 18px; 400 padding: 0; 401 border: none; 402 height: 22px; 403 height: 2.2rem; 404 } 405 #qx:focus { 406 border: 2px solid #bee74b; 407 } 408 #search-menu input[type="submit"] { 409 padding: 0 3px; 410 padding: 0 .3rem; 411 margin-left: -4px; 412 background: #dfdfdf; 413 border-color: #999; 414 color: #444; 415 border-bottom-right-radius: .3em; 416 border-top-right-radius: .3em; 417 border-top-left-radius: 0; 418 border-bottom-left-radius: 0; 419 text-shadow: none; 420 border: none; 421 border-left: 1px solid #aaa; 422 font-size: 10px; /* ie < 9 sucks */ 423 font-size: 1rem; 424 } 425 #search-menu input[type="submit"]:hover, 426 #search-menu input[type="submit"]:focus { 427 background: #575859; 428 color: #fff; 429 } 430 #favorites-menu, #blog-menu, #system-menu, #plugins-menu { 431 border-bottom: 1px dashed #A2CBE9; 432 } 433 #favorites-menu h3 { 434 color: #000; 435 font-variant: small-caps; 436 padding-top: .2em; 437 } 438 /* ------------------------------------------------------------------ footer */ 50 } 439 51 #footer { 440 52 clear: both; … … 442 54 text-align: right; 443 55 border-top: 1px solid #ccc; 444 } 445 #footer p { 446 margin: 0; 447 padding: 0 1em; 448 font-size: 1em; 449 } 450 #footer p span.credit { 451 font-size: 1em; 452 font-weight: normal; 453 } 454 /* ---------------------------------------------------------------------------- auth.php */ 455 #login-screen { 456 display: block; 457 width: 20em; 458 margin: 1.5em auto 0; 459 font-size: 14px; /* ie < 9 sucks */ 460 font-size: 1.4rem; 461 } 462 #login-screen h1 { 463 text-indent: -2000px; 464 background: transparent url(dc_logos/w-dotclear240.png) no-repeat top left; 465 height: 66px; 466 margin-bottom: .5em; 467 margin-left: 0; 468 } 469 #login-screen .fieldset { 470 border: 1px solid #A8DC26; 471 padding: 1em 1em 0 1em; 472 border-radius: 3px; 473 background: #fff; 474 } 475 #login-screen input[type=text], #login-screen input[type=password], #login-screen input[type=submit] { 56 } 57 /* -------------------------------------------------------------- layout: two-cols */ 58 .two-cols { 59 position: static; 60 } 61 .two-cols .col { 62 width: 48%; 63 margin-left: 2%; 64 float: left; 65 } 66 .two-cols .col70 { 67 width: 68%; 68 margin-left: 0; 69 float: left; 70 } 71 .col30 { 72 width: 28%; 73 margin-left: 2%; 74 float: left; 75 } 76 .two-cols .col:first-child, 77 .two-cols .col30.first-col { 78 margin-left: 0; 79 margin-right: 2%; 80 } 81 .two-cols .col:last-child, 82 .two-cols .col70.last-col { 83 margin-left: 2%; 84 margin-right: 0; 85 } 86 /* ------------------------------------------------- layout: optionnal one/two-boxes */ 87 .one-box { 88 text-align: center; 476 89 width: 100%; 477 } 478 #login-screen input.login { 479 padding-top: 6px; 480 padding-bottom: 6px; 481 font-size: 1em; 482 } 483 #login-screen #issue { 484 margin-left: 1.33em; 485 font-size: 12px; /* ie < 9 sucks */ 486 font-size: 1.2rem; 487 } 488 #login-screen #issue strong { 489 font-weight: normal; 490 } 491 /* ------------------------------------------------------------------ dashboard */ 492 #dashboard-main { 493 padding: 1em 0; 494 } 495 #icons { 496 overflow: hidden; 497 padding-bottom: 1em; 498 text-align: center; 499 } 500 #icons p { 501 width: 210px; 502 text-align: center; 503 margin: 1em 0 2em; 504 padding: 1em 0; 505 display:inline-block; 506 vertical-align: top; 507 } 508 #icons a, 509 #icons a:link, 510 #icons a:visited, 511 #icons a:hover, 512 #icons a:focus { 513 border-bottom-width: 0px; 514 text-decoration: none; 515 } 516 #icons a span { 517 border-bottom: 1px dotted #f90; 518 color: #333; 519 } 520 #icons a img { 521 padding: 2em; 522 -moz-box-shadow: 0px 1px 0px 0px #ffffff; 523 -webkit-box-shadow: 0px 1px 0px 0px #ffffff; 524 box-shadow: 0px 1px 0px 0px #ffffff; 525 background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #f9f9f9), color-stop(1, #e9e9e9) ); 526 background:-moz-linear-gradient( center top, #f9f9f9 5%, #e9e9e9 100% ); 527 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e9e9e9'); 528 background-color:#f9f9f9; 529 -moz-border-radius:1em; 530 -webkit-border-radius:1em; 531 border-radius:1em; 532 border:1px solid #dcdcdc; 533 display:inline-block; 534 } 535 #icons a:focus img, #icons a:hover img { 536 background: #bee74b; 537 } 538 #icons a:focus span, #icons a:hover span { 539 text-decoration: underline; 540 } 541 #quick { 542 margin-top: 2em; 543 } 544 #quick h3 { 545 margin-bottom: 0.2em; 546 font-size: 1.2em; 547 } 548 #quick p.qinfo { 549 margin: -.7em -1em 1em; 550 background: #f3f3ff url(info.png) no-repeat .2em .2em; 551 border: 1px solid #99f; 552 padding: .2em 1em .1em 24px; 553 color: #666; 554 } 555 #quick #new_cat, .q-cat, .q-cat label { 90 } 91 .one-box .box { 92 display: inline-block; 93 vertical-align: top; 94 padding-right: 3%; 95 text-align: left; 96 } 97 .two-boxes { 98 width: 47%; 556 99 display: inline-block; 557 100 vertical-align: top; 558 margin-right: 1em; 559 margin-top: 0; 560 } 561 .q-cat label { 562 margin-right: .3em; 563 } 564 #quick #new_cat { 565 margin-bottom: 2em; 566 } 567 #dashboard-items { 568 margin: 3em auto; 569 display: table; 570 width: 100%; 571 border-collapse: collapse; 572 } 573 .db-item { 574 display: table-cell; 575 padding: 1em 3em; 576 vertical-align: top; 577 border: 1px solid #ddd; 578 border-collapse: collapse; 579 } 580 .db-item h3 { 581 font-weight: normal; 582 } 583 #dashboard-items img { 584 vertical-align: middle; 585 } 586 #dashboard-items ul { 587 display: block; 588 padding-left: 1.5em; 589 list-style: square; 590 } 591 #dashboard-items li { 592 margin: 0.25em 0 0 0; 593 color: #666; 594 } 595 #news dt { 596 font-weight: bold; 597 margin: 0 0 0.4em 0; 598 } 599 #news dd { 600 margin: 0 0 1em 0; 601 } 602 #news dd p { 603 margin: 0.2em 0 0 0; 604 } 605 606 #upg-notify { 607 } 608 #upg-notify ul { 609 padding-left: 1.5em; 610 } 611 #upg-notify li { 612 color: #fff; 613 } 614 /* ------------------------------------------------------------------ post */ 615 #entry-wrapper { 616 float: left; 617 width: 100%; 618 margin-right: -18em; 619 } 620 #entry-content { 621 margin-right: 19em; 622 margin-left: 0; 623 } 624 .multi-part { 625 padding-left: 1em; 626 } 627 #entry-content label { 628 text-transform: uppercase; 629 font-weight: bold; 630 margin-top: 2em; 631 } 632 #entry-sidebar { 633 width: 17em; 634 float: right; 635 } 636 #entry-sidebar select { 637 width: 100%; 638 } 639 #entry-sidebar input#post_position { 640 width: 4em; 641 } 642 .box { 643 border-bottom: 1px solid #ddd; 644 margin-bottom: 1em; 645 } 646 #comments { 647 clear: both; 648 } 649 #trackback-form textarea { 650 width: 98%; 651 } 652 /* ------------------------------------------------------------------ categories */ 653 #categories { 654 margin: 1em 0; 655 } 656 #categories ul { 657 list-style: none; 658 margin: 0; 659 padding: 0; 660 } 661 #categories li { 662 margin: .5em 0; 663 padding: .5em 1.2em; 664 border: 1px solid #ccc; 665 border-left: 8px solid #E5E3DA; 666 border-radius: 3px; 667 } 668 #categories input[type="checkbox"] { 669 margin-right: .8em; 670 } 671 #categories h4 { 672 margin: 0; 673 } 674 #categories label a { 675 font-weight: bold; 676 } 677 #categories h4 span { 678 font-weight: normal; 679 } 680 #categories li p { 681 margin: 0; 682 display: inline-block; 683 } 684 .cat-url { 685 padding-left: 1em; 686 } 687 .cat-actions { 688 line-height: 2; 689 } 690 select#del_cat { 691 width: 100%; 692 } 693 #new_cat { 694 font-weight: bold; 695 margin-top: 2em; 696 } 697 #categories .placeholder { 698 outline: 1px dashed #4183C4; 699 min-height: 2.5em; 700 } 701 #categories input.cat-rank { 702 float: right; 703 margin-left: 30px; 704 } 705 #save-set-order.disabled { 706 text-shadow: none; 707 color: #666; 708 background: #F5F5F5; 709 border: 1px solid #CCCCCC; 710 } 711 #save-set-order.disabled:hover { 712 color: #666; 713 background: #DFDFDF; 714 border: 1px solid #CCCCCC; 715 } 716 /* ------------------------------------------------------------------ media */ 717 #media-icon { 718 float: left; 719 } 720 #media-details { 721 } 722 .near-icon { 723 margin-left: 70px; 724 margin-bottom: 3em; 725 } 726 #media-details ul { 727 display: block; 728 margin-left: 0; 729 padding: 0; 730 } 731 #media-details li { 732 list-style: square inside; 733 margin: 0; 734 padding: 0; 735 } 736 #media-original-image { 737 overflow: auto; 738 } 739 #media-original-image.overheight { 740 height: 500px; 741 } 742 #add-file-f { 743 position: relative; 744 } 745 #add-file-f .more-file { 746 position:absolute; 747 right: 0.5em; 748 background: #999; 749 color: #fff; 750 border: none; 751 } 752 .media-list { 753 position: static; 754 } 755 /*.media-col-0 { 756 clear: left; 757 } 758 .media-item { 759 position: relative; 760 border-top: 1px solid #ccc; 761 margin-bottom: 1em; 762 padding: 5px 0; 763 } 764 div.media-list .media-item { 765 width: 49%; 766 float: left; 767 margin-right: 1%; 768 } 769 a.media-icon { 770 display: block; 771 border-bottom: none; 772 float: left; 773 } 774 .media-icon img { 775 display: block; 776 } 777 .media-item ul { 778 display: block; 779 list-style: none; 780 margin: 0 0 0 60px; 781 padding: 0; 782 }*/ 783 li.media-action { 784 display: block; 785 position: absolute; 786 top: 5px; 787 right: 5px; 788 height: 16px; 789 } 790 li.media-action a { 791 border: none; 792 } 793 li.media-action form { 794 display: inline; 795 } 796 li.media-action input { 797 border: none; 798 } 799 .media-item, .media-action-box { 800 position: relative; 801 border: 1px solid #ccc; 802 margin: 1em; 803 padding: 1em; 804 width: 300px; 101 } 102 .two-boxes:first-child, .two-boxes.odd, .two-boxes.odd:last-child { 103 margin-right: 3%; 104 } 105 .two-boxes.even:last-child, .two-boxes.even { 106 margin-left: 3%; 107 } 108 .three-boxes { 109 width: 30%; 805 110 display: inline-block; 806 111 vertical-align: top; 807 min-height: 120px 808 } 809 a.media-icon { 810 display: block; 811 border-bottom: none; 812 margin: 0 auto; 813 } 814 .media-icon img { 815 display: block; 816 } 817 .media-item ul { 818 display: block; 819 list-style: none; 820 margin: 0; 821 padding: 0; 822 } 823 /* ------------------------------------------------------------------ preferences */ 824 #my-favs { 825 border: 1px solid #A8DC26; 826 padding: 1em 2em 827 } 828 #my-favs ul { 829 list-style-type: none; 830 margin-left: 0; 831 padding-left: 0; 832 line-height: 1.2; 833 } 834 #my-favs li { 835 display: block; 836 float: left; 837 width: 164px; 838 margin-top: 1em; 839 margin-bottom: 1.5em; 840 } 841 #my-favs label {height: 2.5em;width:140px;margin-top:.3em;} 842 #my-favs label input {display:inline;} 843 #my-favs img { 844 display: block; 845 } 846 #my-favs input.position { 847 margin: 0 0 .4em .2em; 848 } 849 #available-favs input, #available-favs label, #available-favs label span { 850 white-space: normal; 851 display: inline; 852 } 853 #default-favs h3 { 854 margin-top: 2em; 855 margin-bottom: 1em; 856 } 857 .fav-list { 858 list-style-type: none; 859 margin-left: 0; 860 padding-left: 0; 861 } 862 .fav-list li { 863 line-height: 2; 864 margin-left: 0; 865 padding-left: 0; 866 position: relative; 867 } 868 .fav-list img { 869 vertical-align: middle; 870 margin-right: .2em; 871 } 872 #available-favs label span.zoom { 873 display: none; 874 } 875 #available-favs li:hover label span.zoom { 876 display: block; 877 position: absolute; 878 bottom: 0; 879 left: 10em; 880 background-color: #f5f5f5; 881 border: 1px solid #ddd; 882 padding: .2em; 883 border-radius: .5em; 884 } 885 #user-options label.ib { 886 display: inline-block; 887 width: 14em; 888 padding-right: 1em; 889 } 890 .blog-perm { 891 margin-top: 2em; 892 font-weight: bold; 893 } 894 .ul-perm { 895 list-style-type: square; 896 margin-left: 0; 897 padding-left: 3.5em; 898 margin-bottom: 0 899 } 900 .add-perm { 901 padding-top: .5em; 902 padding-left: 2.5em; 903 margin-left: 0; 904 } 905 /* in blog_pref */ 906 .user-perm { 907 margin: 2em 0px; 908 background: transparent url(user.png) no-repeat left top; 909 width: 320px; 910 display: inline-block; 911 vertical-align: top; 912 } 913 .user-perm h4, .user-perm h5, .user-perm p, .user-perm ul, .user-perm li { 914 margin: .5em 0 .33em; 915 padding: 0; 916 } 917 .user-perm h4 { 918 padding-left: 28px; 919 } 920 .user-perm ul { 921 list-style-type: inside; 922 } 923 .user-perm li { 924 margin-left: 1em; 925 padding-left: 0; 926 } 927 .user-perm h5 { 928 margin: 1em 0 0 0; 929 } 930 li.user_super, li.user_admin { 931 margin-left: 0; 932 padding-left: 1em; 933 list-style: none; 934 background: transparent url(../images/superadmin.png) no-repeat -2px 2px; 935 } 936 li.user_admin { 937 background-image: url(../images/admin.png); 938 } 939 940 /* -------------------------------------------------------------------- Themes */ 941 #themes { 942 margin: 0; 943 width: 100%; 944 padding: 0; 945 } 946 #themes h3 { 947 } 948 #themes div.theme-details { 949 border-top: 1px solid #ccc; 950 padding: 12px; 951 display: inline-block; 952 vertical-align: top; 953 width: 284px; 954 } 955 .current-theme { 956 background: #eef; 957 } 958 #themes div.theme-details:hover { 959 background: #f0f0f0; 960 } 961 #themes div.theme-details div.theme-shot { 962 } 963 #themes div.theme-details div.theme-shot img { 964 display: block; 965 border: 1px solid #ccc; 966 margin-bottom: 1.5em; 967 } 968 #themes div.theme-details div.theme-info { 969 } 970 #themes div.theme-details div.theme-info span.theme-desc { 971 display: block; 972 } 973 #themes div.theme-details div.theme-info span.theme-version { 974 color: #666; 975 } 976 #themes div.theme-details div.theme-actions { 977 } 978 #themes-actions { 979 border-bottom: 1px solid #999; 980 margin-bottom: 3em; 981 } 982 .theme-css { 983 display: block; 984 } 985 /* Themes list, JS version */ 986 #themes-wrapper { 987 display: table; 988 } 989 #themes-wrapper #themes { 990 display: table-cell; 991 vertical-align: top; 992 padding-left: 1em; 993 } 994 #theme-box { 995 display: table-cell; 996 vertical-align: top; 997 padding: 0; 998 width: 312px; 999 border: 1px solid #ccc; 1000 border-radius: 3px; 1001 } 1002 #theme-box .theme-shot, 1003 #theme-box .theme-info, 1004 #theme-box .theme-actions { 1005 background: #eef; 1006 padding: 1em 16px; 1007 margin: 0; 1008 } 1009 #theme-box .theme-shot img { 1010 display: block; 1011 width: 280px; 1012 height: 245px; 1013 border: 1px solid #ccc; 1014 } 1015 #theme-box h4 { 1016 color: #000; 1017 background: #eef; 1018 } 1019 #theme-box span.theme-version { 1020 color: #666; 1021 } 1022 #theme-box span.theme-parent-ok { 1023 color: #666; 1024 } 1025 #theme-box span.theme-parent-missing { 1026 color: #c00; 1027 font-weight:bold; 1028 } 1029 #theme-box .theme-actions { 1030 border-bottom: 1px solid #ccc; 1031 } 1032 #themes .theme-details-js { 1033 float: left; 1034 width: 120px; 1035 height: 150px; 1036 margin: 0 12px 24px; 1037 padding: 12px 12px 0; 1038 text-align: center; 1039 background: #f3f3f3; 1040 border: 1px solid #ddd; 1041 cursor: pointer; 1042 border-radius: 4px; 1043 } 1044 #themes .theme-details-js label { 1045 cursor: pointer; 1046 } 1047 #themes .theme-details-js.theme-selected { 1048 background: #ddd; 1049 border: 1px solid #999; 1050 } 1051 #themes .theme-details-js .theme-shot img { 1052 width: 120px; 1053 height: 105px; 1054 border: 1px solid #fff; 1055 } 1056 #themes a:focus div, #themes a:hover div, 1057 #themes a:focus div.current-theme, #themes a:hover div.current-theme { 1058 background: #bee74b; 1059 } 1060 /* ---------------------------------------------------------- Plugins list */ 1061 #plugins td.action { 1062 vertical-align: middle; 1063 } 1064 select.l10n option { 1065 padding-left: 16px; 1066 } 1067 option.avail10n { 1068 background: transparent url(../images/check-on.png) no-repeat 0 50%; 1069 } 1070 /* ------------------------------------------------------------------ contextual help */ 1071 #help { 1072 margin-top: 4em; 1073 background: #f5f5f5; 1074 z-index: 100; 1075 clear: both; 1076 padding: 0 1em; 1077 } 1078 #help-button { 1079 background: transparent url(../images/page_help.png) no-repeat 6px center; 1080 position: absolute; 1081 top: 36px; /* ie < 9 sucks */ 1082 top: 3.6rem; 1083 right: 0px; 1084 padding: 0 1.5em 0 30px; 1085 cursor: pointer; 1086 color: #2373A8; 1087 line-height: 42px; /* ie < 9 sucks */ 1088 line-height: 4.2rem; 1089 } 1090 #help-button span { 1091 padding: .5em 0 .1em 0; 1092 border-bottom: 1px solid #2373A8; 1093 } 1094 .help-box { 1095 display: none; 1096 } 1097 .help-box ul { 1098 padding-left: 20px; 1099 margin-left: 0; 1100 } 1101 #content.with-help #help-button { 1102 right: 282px; /* ie < 9 sucks */ 1103 right: 28.2rem; 1104 background-color: #f5f5f5; 1105 position: fixed; 1106 border-top: 2px solid #FFD478; 1107 border-left: 2px solid #FFD478; 1108 border-bottom: 2px solid #FFD478; 1109 border-bottom-left-radius: 1em; 1110 border-top-left-radius: 1em; 1111 } 1112 #content.with-help #help { 1113 display: block; 1114 position: absolute; 1115 top: 36px; /* ie < 9 sucks */ 1116 top: 3.6rem; 1117 right: 0; 1118 width: 280px; /* ie < 9 sucks */ 1119 width: 28rem; 1120 border-left: 2px solid #FFD478; 1121 border-top: 2px solid #FFD478; 1122 margin-top: 0; 1123 padding: .5em 0 0 0; 1124 overflow: auto; 1125 } 1126 #content.with-help .help-content { 1127 padding: 0 .5em 1em; 1128 } 1129 .help-content dt { 1130 font-weight: bold; 1131 color: #626262; 1132 margin: 0; 1133 } 1134 .help-content dd { 1135 margin: 0.3em 0 1.5em 0; 1136 } 1137 /* ------------------------------------------------------------------ popups */ 112 margin-left: 2.5%; 113 margin-right: 2.5%; 114 } 115 .three-boxes:first-child { 116 margin-left: 0; 117 } 118 .three-boxes:last-child { 119 margin-right: 0; 120 } 121 /* boîtes intérieures */ 122 .box { 123 margin-bottom: 2em; 124 } 125 /* ---------------------------------------------------------------- layout: popups */ 1138 126 body.popup #wrapper, body.popup #top { 1139 127 width: 100%; … … 1150 138 font-weight: normal; 1151 139 color: #fff; 1152 background: # 575859;140 background: #676e78; 1153 141 font-size: 1.5em; 1154 142 text-indent: .5em; … … 1168 156 border: none; 1169 157 } 1170 /* ------------------------------------------------------------------ messages */ 1171 .error, .message, .static-msg, .static-msg, .success { 1172 padding: 1em 0.5em 0.5em 48px; 1173 margin-bottom: 1em; 1174 border-radius: 8px; 1175 } 1176 p.error, p.message, p.static-msg, p.success { 1177 padding-top: 1em; 1178 padding-bottom: 1em; 1179 } 1180 .error { 1181 background: #FFBABA url(msg-error.png) no-repeat .7em .7em; 1182 color: #000; 1183 } 1184 .message, .static-msg { 1185 background: #666 url(msg-std.png) no-repeat .7em .7em; 1186 color: #fff; 1187 } 1188 .success { 1189 background: #bee74b url(msg-success.png) no-repeat .7em .7em; 1190 color: #000; 1191 } 1192 .message a, .static-msg a { 1193 color: #fff; 1194 } 1195 .success a { 1196 color: #666; 1197 } 1198 .dc-update { 1199 padding: 1em 48px 0.5em 48px; 1200 margin-bottom: 1em; 1201 border-radius: 8px; 1202 background: #A2CBE9 url(msg-success.png) no-repeat .7em .7em; 1203 } 1204 .dc-update a { 1205 color: #000; 1206 border-color: #000; 1207 margin-right: 1em; 1208 } 1209 a.info { 1210 margin-left: 2em; 1211 font-weight: bold; 1212 } 1213 /* ------------------------------------------------------------------ navigation */ 1214 .anchor-nav { 1215 background: #575859; 1216 color: #fff; 1217 padding: 4px 1em; 1218 float: right; 1219 } 1220 .nav_prevnext { 1221 margin-bottom: 2em; 1222 color: #fff; 1223 } 1224 .nav_prevnext a, a.back { 1225 border: 1px solid #ddd; 1226 padding: 2px 1.5em; 1227 border-radius: .75em; 1228 background-color: #f0f0f0; 1229 } 1230 a.back:before { 1231 content: "\ab\a0"; 1232 } 1233 a.onblog_link { 1234 color: #333; 1235 float: right; 1236 border: 1px solid #eee; 1237 padding: 2px 1.5em; 1238 border-radius: .75em; 1239 background-color: #ffe; 1240 } 1241 /* ------------------------------------------------------------------ debug */ 1242 #debug { 1243 position: absolute; 1244 top: 0; 1245 width: 100%; 1246 height: 4px; 1247 background: #d99; 1248 } 1249 #debug div { 1250 display: none; 1251 padding: 3px 0.5em 2px; 1252 } 1253 #debug p { 1254 margin: 0.5em 0; 1255 } 1256 #debug:hover { 1257 height: auto; 1258 } 1259 #debug:hover div { 1260 display: block; 1261 } 1262 /* -------------------------------------------------------------------- CLASSES COMMUNES */ 1263 .no-margin, #entry-content label.no-margin { 158 /* ------------------------------------------------------------- layout: compléments */ 159 .constrained { 1264 160 margin: 0; 1265 } 1266 .vertical-separator { 1267 margin-top: 2em; 1268 } 1269 p.clear.vertical-separator { 1270 padding-top: 2em; 1271 } 1272 .border-top { 1273 border-top: 1px solid #999; 1274 padding-top: 1em; 1275 margin-top: 1em; 1276 } 1277 .fieldset { 1278 background: #fff; 1279 border: 1px solid #aaa; 1280 border-radius: 6px; 1281 padding: 1em .7em .5em; 1282 margin-bottom: 1em; 1283 } 1284 .fieldset h3 { 1285 color: #333; 1286 } 161 padding: 0; 162 border: none; 163 background: transparent; 164 } 1287 165 .table { 1288 166 display: table; 1289 }167 } 1290 168 .cell { 1291 169 display: table-cell; 1292 } 1293 /* paragraphe pour bouton Nouveau bidule */ 1294 p.top-add { 1295 text-align: right; 1296 margin: 0; 1297 } 1298 p.top-add a { 1299 padding: .3em 1em .3em .5em; 1300 font-weight: bold; 1301 } 1302 p.top-add a img { 1303 padding-right: .3em; 1304 vertical-align: middle; 1305 } 1306 170 vertical-align: top; 171 } 1307 172 .clear { 1308 173 clear: both; 1309 }174 } 1310 175 .lclear { 1311 176 clear: left; 1312 }1313 div.clearer {177 } 178 .clearer { 1314 179 height: 1px; 1315 180 font-size: 1px; 1316 } 1317 .right { 1318 text-align: right; 1319 } 1320 .txt-center { 1321 text-align: center; 1322 } 181 } 182 /* Micro clearfix thx to Nicolas Gallagher */ 183 .clearfix:before, .clearfix:after { 184 content: " "; 185 display: table; 186 } 187 .clearfix:after { 188 clear: both; 189 } 1323 190 .frame-shrink { 1324 191 border: 1px solid #666; … … 1327 194 height: 120px; 1328 195 overflow: auto; 1329 } 1330 .grid { 1331 background: transparent repeat url('grid.png') 0 0; 1332 } 1333 .line p { 196 } 197 /* --------------------------------------------------------------------------- 198 HTML TAGS 199 ---------------------------------------------------------------------------- */ 200 html { 201 font-size: 62.5%; 202 } 203 body { 204 font-size: 12px; /* ie < 9 sucks */ 205 font-size: 1.2rem; 206 line-height: 1.5; 207 font-family: Arial,Helvetica,sans-serif; 208 color: #333; 209 background: #fff; 1334 210 margin: 0; 1335 } 1336 .offline { 211 padding: 0; 212 } 213 /* ------------------------------------------------------------------ titres */ 214 h1, h2, h3, .as_h3, h4, .as_h4, h5, h6 { 215 margin-top: 0; 216 margin-bottom: 1em; 217 } 218 h2 { 1337 219 color: #666; 1338 } 1339 ul.nice { 1340 margin: 1em 0; 1341 padding: 0 0 0 2em; 1342 list-style: square; 1343 } 1344 ul.nice li { 1345 margin:0; 1346 padding: 0; 1347 } 1348 .zip-dl { 1349 background: transparent url(package.png) no-repeat 0 50%; 1350 padding: 5px 0 5px 20px; 1351 } 1352 .distrib img { 1353 display: block; 1354 float: right; 1355 margin-top: -1em; 1356 } 1357 1358 /* TABLES 1359 -------------------------------------------------------- */ 220 font-size: 18px; /* ie < 9 sucks */ 221 font-size: 1.8rem; 222 padding: 0 0 1.5em; 223 font-weight: normal; 224 } 225 /* titre de page */ 226 #content > h2 { 227 padding: 0 18px 6px; /* ie < 9 sucks */ 228 padding: 0 1.8rem .6rem; 229 margin: 0 -18px .5em; /* ie < 9 sucks */ 230 margin: 0 -1.8rem 1rem; 231 background: #fff url(bg_h2.png) repeat-x center bottom; 232 } 233 h2 a:link, h2 a:visited { 234 color: #676e78; 235 border-color: #000; 236 } 237 .page-title { 238 color: #d30e60; 239 } 240 .page-title img { 241 padding-left: .5em; 242 vertical-align: middle; 243 } 244 h3, .as_h3 { 245 margin-top: 1em; 246 color: #676e78; 247 font-size: 16px; /* ie < 9 sucks */ 248 font-size: 1.6rem; 249 } 250 h4, as_h4 { 251 font-size: 14px; /* ie < 9 sucks */ 252 font-size: 1.4rem; 253 color: #676e78; 254 } 255 .smart-title, .box h3, .media-action-box h4 { /* pour les h3 ou les h4 titres de boîtes */ 256 font-size: 1em; 257 text-transform: uppercase; 258 font-weight: bold; 259 color: #333; 260 text-shadow: 0 1px 0 rgba(200, 200, 200, 0.6) 261 } 262 h5 { 263 font-size: 12px; /* ie < 9 sucks */ 264 font-size: 1.2rem; 265 color: #676e78; 266 } 267 #entry-sidebar h5 { 268 font-weight: normal; 269 color: #333; 270 } 271 .entry-status img.img_select_option { 272 padding-left: 4px; 273 vertical-align: text-top; 274 } 275 /* ---------------------------------------------------------------- tableaux */ 1360 276 table { 1361 277 font-size: 12px; /* ie < 9 sucks */ … … 1363 279 border-collapse: collapse; 1364 280 margin: 0 0 1em 0; 1365 } 1366 table.posts-list { 1367 min-width: 50%; 1368 } 1369 tr.line:hover { 1370 background: #f3f3f3; 1371 } 281 } 1372 282 caption { 1373 283 color: #333; … … 1375 285 text-align: left; 1376 286 margin-bottom: .5em; 1377 } 1378 287 } 288 th { 289 border-width: 1px 0 1px 0; 290 border-style: solid; 291 border-color: #ddd; 292 background: #f3f3ff; 293 padding: .4em 1em .4em .5em; 294 vertical-align: top; 295 text-align: left; 296 text-transform: uppercase; 297 font-size: 10px; 298 font-size: 1rem; 299 } 1379 300 td { 1380 301 border-width: 0 0 1px 0; 1381 302 border-style: solid; 1382 303 border-color: #e3e3e3; 1383 padding: . 3em 1em .3em .5em;304 padding: .4em 1em .4em .5em; 1384 305 vertical-align: top; 1385 } 1386 th { 1387 border-width: 1px 0 1px 0; 306 } 307 308 /* ---------------------------------------------------------- autres balises */ 309 p { 310 margin: 0 0 1em 0; 311 } 312 hr { 313 height: 1px; 314 border-width: 1px 0 0; 315 border-color: #ddd; 316 background: #ddd; 1388 317 border-style: solid; 1389 border-color: #ccc; 1390 background: #f3f3ff; 1391 padding: .3em 1em .3em .5em; 1392 vertical-align: top; 1393 text-align: left; 1394 } 1395 th.first img { 1396 padding-right: 24px; 1397 } 1398 .noborder td, td.noborder, .noborder th, th.noborder { 1399 border-width: 0 0 1px 0; 1400 border-color: #ddd; 1401 line-height: 2em; 1402 padding-bottom: 0; 1403 } 1404 .noborder p { 1405 margin-bottom: 0; 1406 } 1407 table .maximal, table.maximal { 1408 width: 100%; 1409 } 1410 table .minimal { 1411 width: 1px; 1412 } 1413 table .nowrap { 1414 white-space: nowrap; 1415 vertical-align: top; 1416 } 1417 table .count { 1418 text-align: right; 1419 padding-right: 1.5em; 1420 } 1421 table.settings, table.prefs { 1422 width: 80%; 1423 border: 1px solid #999; 1424 margin-bottom: 3em; 1425 } 1426 table.settings th, table.prefs th { 1427 background: #f3f3ff; 1428 } 1429 table.settings th:first-child, table.prefs th:first-child { 1430 width: 20%; 1431 } 1432 table.settings th + th, table.prefs th + th { 1433 width: 30%; 1434 } 1435 table.settings th + th + th, table.prefs th + th + th { 1436 width: 10%; 1437 } 1438 table.settings th:last-child, table.prefs th:last-child { 1439 width: 40%; 1440 } 1441 td.status { 1442 vertical-align: middle; 1443 } 1444 td.status img { 1445 margin-bottom: -2px; 1446 } 1447 td.status a { 1448 border: none; 1449 } 1450 tr.line img.expand, th img.expand { 1451 margin-right: 6px; 1452 margin-bottom: -2px; 1453 } 1454 tr.line input { 1455 vertical-align: middle; 1456 } 1457 tr.expand td { 1458 border-bottom: none; 1459 } 1460 td.expand { 1461 padding: 1em; 1462 } 1463 1464 .dragable { 1465 border-collapse: separate; 1466 } 1467 .dragable tbody td { 1468 1469 } 1470 .handle { 1471 padding: 0; 1472 } 1473 .handler { 1474 cursor: move; 1475 background: transparent url(drag.png) no-repeat 0 50%; 1476 padding-left: 15px; 1477 } 1478 /* ----------------------------------------------------------------- FORMS */ 318 } 319 hr.clearer { 320 clear: both; 321 } 322 pre, code { 323 font: 100% "Andale Mono","Courier New",monospace; 324 } 325 pre { 326 white-space: pre; 327 white-space: -moz-pre-wrap; 328 white-space: -hp-pre-wrap; 329 white-space: -o-pre-wrap; 330 white-space: -pre-wrap; 331 white-space: pre-wrap; 332 white-space: pre-line; 333 word-wrap: break-word; 334 } 335 abbr { 336 cursor: help; 337 } 338 /* ------------------------------------------------------------------ liens */ 339 a, a:link, a:visited { 340 color: #2373A8; 341 text-decoration: none; 342 border-bottom: 1px dotted #999; 343 } 344 a:hover, a:active, a:focus { 345 text-decoration: underline; 346 } 347 a img, a:link img, a:visited img { 348 border:none; 349 } 350 /* ---------------------------------------------------------------------------- 351 FORMULAIRES 352 ---------------------------------------------------------------------------- */ 1479 353 form { 1480 354 display: block; 1481 355 margin: 0; 1482 356 padding: 0; 1483 }357 } 1484 358 fieldset { 1485 359 display: block; … … 1489 363 border-style: solid; 1490 364 border-color: #ccc; 1491 background: #f5f5f5; 1492 } 365 background: #f7f7f7; 366 } 367 input, textarea, select, option, optgroup, legend { 368 font: 100% "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif; 369 } 1493 370 legend { 1494 371 font-weight: bold; … … 1500 377 margin-bottom: 0.5em; 1501 378 border-radius: 3px; 1502 } 379 } 380 label .maximal, textarea.maximal, input.maximal { 381 width: 99%; 382 } 383 input[type=text], input[type=password], textarea, select { 384 background: #fbfbfb; 385 color: #000; 386 border-width: 1px; 387 border-style: solid; 388 border-color: #ddd; 389 border-radius: 3px; 390 box-shadow: 1px 1px 2px #F1F1F1 inset; 391 padding: 3px; 392 } 393 input:focus, textarea:focus, select:focus { 394 -webkit-box-sizing: border-box; 395 -moz-box-sizing: border-box; 396 box-sizing: border-box; 397 border-color: #bee74b; 398 } 399 textarea { 400 padding: 2px 0; 401 } 402 textarea.maximal { 403 resize: vertical; 404 } 405 .area textarea { 406 display: block; 407 width: 100%; 408 resize: vertical; 409 } 410 select { 411 padding: 2px 0; 412 } 413 select.l10n option { 414 padding-left: 16px; 415 } 416 option.avail10n { 417 background: transparent url(../images/check-on.png) no-repeat 0 50%; 418 } 419 input.invalid, textarea.invalid, select.invalid { 420 border: 1px solid red; 421 background: #FFBABA; 422 color: red; 423 box-shadow: 0 0 0 3px rgba(218, 62, 90, 0.3); 424 } 425 input[type=text], input[type=password], textarea { 426 margin-right: .3em; 427 } 428 input[type=checkbox], input[type=radio], input[type=file] { 429 border: none; 430 margin: 0; 431 padding: 0; 432 background: transparent; 433 } 434 input[type=file] { 435 margin-top: .3em; 436 margin-bottom: .3em; 437 } 1503 438 optgroup { 1504 439 font-weight: bold; 1505 440 font-style: normal; 1506 }441 } 1507 442 option { 1508 443 font-weight: normal; 1509 } 1510 input, textarea, select { 1511 background: #f9f9f9; 444 } 445 label, label span { 446 display: block; 447 } 448 label.ib, input.ib { 449 display: inline-block; 450 } 451 label.classic { 452 display: inline; 453 } 454 label.classic input, label span input, label.classic select, label span select { 455 display: inline; 456 } 457 label.required { 458 font-weight: bold; 459 } 460 label.required abbr { 461 color: #dd0000; 462 font-size: 1.3em; 463 } 464 label.area, p.area { 465 width: inherit !important; 466 } 467 p.field { 468 position: relative; 469 } 470 p.field label { 471 display: block; 472 width: 14em; 473 } 474 p.field input, p.field select { 475 display: inline; 476 position: absolute; 477 left: 14.5em; 478 top: 0; 479 } 480 a.form-control { 481 display: none; 482 background: url(../images/expand.png) no-repeat 4px center; 483 padding-left: 20px; 1512 484 color: #000; 1513 border-width: 2px; 1514 border-style: solid; 1515 border-color: #ccc #ddd #ddd #ccc; 1516 } 1517 select { 1518 border-right: 2px solid #fff; 1519 } 1520 input.invalid, textarea.invalid, select.invalid { 1521 border: 1px solid red; 1522 background: #fff; 1523 color: red; 1524 box-shadow: 0 0 0 1px rgba(218, 62, 90, 0.3) 1525 } 1526 input, textarea, select, option { 1527 font: 100% "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif; 1528 } 1529 input[type=text], input[type=password], textarea { 1530 padding: 2px 0; 1531 margin-right: .3em; 1532 } 1533 textarea { 1534 padding: 2px 0; 1535 } 1536 input[type=checkbox], input[type=radio], input[type=file] { 1537 border: none; 1538 margin: 0; 1539 padding: 0; 1540 background: transparent; 1541 } 1542 input[type=file] { 1543 margin-top: .3em; 1544 margin-bottom: .3em; 1545 } 1546 label { 1547 display: block; 1548 } 1549 label input, label select, label span { 1550 display: block; 1551 } 1552 p.form-note { 1553 font-style:italic; 1554 margin-top: -.7em; 485 } 486 .form-note { 487 font-style: italic; 488 font-weight: normal; 1555 489 color: #666; 1556 } 1557 span.form-note { 1558 font-style:italic; 490 } 491 p.form-note { 492 margin-top: -.7em; 493 } 494 span.form-note { 495 text-transform: none; 496 } 497 /* ---------------------------------------------------------------------------- 498 BOUTONS 499 ---------------------------------------------------------------------------- */ 500 /* commun */ 501 input[type=submit], input[type=reset], input[type=button], input[type=delete], 502 input.submit, input.reset, input.button, input.delete, 503 a.button, a.submit, a.delete, a.reset { 504 display: inline-block; 505 cursor: pointer; 506 text-align: center; 507 text-decoration: none; 508 padding: 2px 6px 2px; 509 border-radius: 3px; 510 font-size: 12px; /* ie < 9 sucks */ 511 font-size: 1.2rem; 512 line-height: 1.5em; 513 } 514 a.button, a.submit, a.reset { 515 padding-bottom: 1px; 516 } 517 /* validation */ 518 input[type=submit], a.submit { 519 color: #fff; 520 text-shadow: 0 -1px 0 rgba(100, 100, 100, 0.6); 521 background:#25A6E1; 522 background:-moz-linear-gradient(top,#25A6E1 0%,#188BC0 100%); 523 background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#25A6E1),color-stop(100%,#188BC0)); 524 background:linear-gradient(top,#25A6E1 0%,#188BC0 100%); 525 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#25A6E1',endColorstr='#188BC0',GradientType=0); 526 border: 1px solid #2C8FD1; 527 padding-bottom: 1px; 528 } 529 input[type=submit]:hover, input[type=submit]:focus, 530 a.submit:hover, a.submit:focus { 531 background:#188BC0; 532 background:-moz-linear-gradient(top,#188BC0 0%,#25A6E1 100%); 533 background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#188BC0),color-stop(100%,#25A6E1)); 534 background:linear-gradient(top,#188BC0 0%,#25A6E1 100%); 535 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#25A6E1',endColorstr='#25A6E1',GradientType=0); 536 } 537 /* suppression, reset, "neutres" */ 538 input[type=reset], input[type=delete], input[type=button], 539 input.delete, input.reset, input.button, 540 a.delete, a.reset, a.button { 541 border: 1px solid #ccc; 542 background: #f5f5f5; 543 color: #000; 544 background: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#dfdfdf)); 545 background: -moz-linear-gradient(top, #f5f5f5, #dfdfdf); 546 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); 547 } 548 input[type=reset]:hover, input[type=delete]:hover, input[type=button]:hover, 549 input.delete:hover, input.reset:hover, input.button:hover, 550 a.delete:hover, a.reset:hover, a.button:hover, 551 input[type=reset]:focus, input[type=delete]:focus, input[type=button]:focus, 552 input.delete:focus, input.reset:focus, input.button:focus, 553 a.delete:focus, a.reset:focus, a.button:focus { 554 background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #e9e9e9), color-stop(1, #f9f9f9) ); 555 background:-moz-linear-gradient( center top, #e9e9e9 5%, #f9f9f9 100% ); 556 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e9e9e9', endColorstr='#f9f9f9'); 557 background-color:#e9e9e9; 558 } 559 a.delete, input[type=delete], input.delete { 560 color: #c00; 561 margin-left: 1em; 562 padding-bottom: 2px; 563 } 564 a.delete:hover, input[type=delete]:hover, input.delete:hover, 565 a.delete:focus, input[type=delete]:focus, input.delete:focus { 566 border-color: #c00; 567 } 568 a.button {padding-bottom: 1px} 569 #info-box a.button { 570 padding: 0 .5em; 571 margin-left: 2em; 572 } 573 .button.add { 574 background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #bee74b), color-stop(1, #9BCA1C) ); 575 background:-moz-linear-gradient( center top, #bee74b 5%, #9BCA1C 100% ); 576 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bee74b', endColorstr='#9BCA1C'); 577 background-color:#bee74b; 578 border:1px solid #B2D742; 579 padding:.33em 1.33em; 580 color: #000; 581 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); 1559 582 font-weight: normal; 1560 text-transform: none; 1561 color: #666; 1562 } 1563 p.form-note.warn, p.form-note.info, p.warning { 583 font-size: 14px; /* ie < 9 sucks */ 584 font-size: 1.4rem; 585 } 586 .button.add:hover, .button.add:active, .button.add:focus { 587 background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #9BCA1C), color-stop(1, #bee74b) ); 588 background:-moz-linear-gradient( center top, #9BCA1C 5%, #bee74b 100% ); 589 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9BCA1C', endColorstr='#bee74b'); 590 background-color:#9BCA1C; 591 } 592 .button-add:focus { 593 outline: dotted 1px; 594 } 595 /* paragraphe pour bouton Nouveau bidule */ 596 p.top-add { 597 text-align: right; 598 margin: 0; 599 } 600 601 /* disabled */ 602 input.disabled { 603 text-shadow: none; 604 color: #666; 605 background: #F5F5F5; 606 border: 1px solid #CCC; 607 } 608 input.disabled:hover { 609 color: #666; 610 background: #DFDFDF; 611 border: 1px solid #CCC; 612 } 613 /* ---------------------------------------------------------------------------- 614 MESSAGES 615 ---------------------------------------------------------------------------- */ 616 .warn, .warning, .info { 1564 617 font-style: normal; 1565 618 padding: .2em .66em .2em; … … 1568 621 display: inline-block; 1569 622 line-height: 1.5em; 1570 } 1571 p.form-note.warn, p.warning { 1572 background: #ffd url(msg-warning.png) no-repeat .3em .3em; 1573 border: 1px solid #f0c020; 1574 } 1575 p.form-note.info { 1576 background: #f5eaff url(msg-info.png) no-repeat .3em .3em; 1577 border: 1px solid #c484ff; 1578 } 1579 .form-note a {border-bottom: 1px solid #ddbaff;} 1580 1581 label.ib { 1582 display: inline-block; 1583 } 1584 label.classic { 1585 display: inline; 1586 } 1587 label.classic input, label span input, label.classic select, label span select { 1588 display: inline; 1589 } 1590 1591 label.area, p.area { 1592 width: inherit !important; 1593 } 1594 .area textarea { 1595 display: block; 1596 width: 100%; 1597 resize: vertical; 1598 } 1599 label.required { 1600 font-weight: bold; 1601 } 1602 label.required abbr { 1603 color: #dd0000; 1604 font-size: 1.3em; 1605 } 1606 label.inline { 1607 display: inline; 1608 } 1609 p.field { 1610 position: relative; 1611 1612 } 1613 p.field label { 1614 display: block; 1615 width: 14em; 1616 } 1617 p.field input, p.field select { 1618 display: inline; 1619 position: absolute; 1620 left: 14.5em; 1621 top: 0; 1622 } 1623 label .maximal, textarea.maximal, input.maximal { 1624 width: 100%; 1625 } 1626 textarea.maximal { 1627 resize: vertical; 1628 } 1629 1630 a.form-control { 1631 display: none; 1632 background: url(../images/expand.png) no-repeat 4px center; 1633 padding-left: 20px; 1634 color: #000; 1635 } 1636 .constrained { 623 border-radius: 3px; 624 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) 625 } 626 .warn, .warning { 627 background: #FEFACD url(msg-warning.png) no-repeat .3em .3em; 628 border: 1px solid #F7E07E; 629 } 630 .info { 631 background: #D9EDF7 url(msg-info.png) no-repeat .3em .3em; 632 border: 1px solid #BCE8F1; 633 } 634 .error, .message, .static-msg, .success, .warning-msg { 635 padding: 1em 0.5em 0.5em 48px; 636 margin-bottom: 1em; 637 border-radius: 8px; 638 } 639 p.error, p.message, p.static-msg, p.success, p.warning-msg { 640 padding-top: 1em; 641 padding-bottom: 1em; 642 } 643 .error { 644 background: #FFBABA url(msg-error.png) no-repeat .7em .7em; 645 color: #000; 646 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); 647 } 648 .message, .static-msg { 649 background: #676e78 url(msg-std.png) no-repeat .7em .7em; 650 color: #fff; 651 } 652 .message a, .static-msg a { 653 color: #fff; 654 } 655 .success, .warning-msg { 656 color: #000; 657 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) 658 } 659 .success { 660 background: #bee74b url(msg-success.png) no-repeat .7em .7em; 661 } 662 .warning-msg { 663 background: #F7E07E url(msg-warning.png) no-repeat .7em .7em; 664 border: 1px solid #F7E07E; 665 } 666 .success a, .warning-msg a { 667 color: #333; 668 } 669 .dc-update { 670 padding: 1em 48px 0.5em 48px; 671 margin-bottom: 1em; 672 border-radius: 8px; 673 background: #A2CBE9 url(msg-success.png) no-repeat .7em .7em; 674 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); 675 color: #34495e; 676 } 677 .dc-update h3 { 678 margin-top: 0; 679 color: #34495e; 680 } 681 .dc-update a { 682 color: #34495e; 683 border-color: #000; 684 margin-right: 1em; 685 } 686 a.updt-info { 687 margin-left: 2em; 688 font-weight: bold; 689 } 690 .dc-update a.button { 691 border-color: #ccc; 692 font-weight: bold; 693 padding: .5em 1em; 694 } 695 /* --------------------------------------------------------------------------------- 696 ELEMENTS PRINCIPAUX 697 --------------------------------------------------------------------------------- */ 698 /* -------------------------------------------------------------- HEADER ELEMENTS */ 699 /* prelude */ 700 #prelude { 701 line-height: 1.5; 1637 702 margin: 0; 1638 703 padding: 0; 1639 border: none; 1640 background: transparent; 1641 } 1642 input:focus, textarea:focus, select:focus { 1643 -webkit-box-sizing: border-box; 1644 -moz-box-sizing: border-box; 1645 box-sizing: border-box; 1646 border: 2px solid #bee74b; 1647 } 1648 /* --------------------------------------------------------------- buttons */ 1649 /* commun */ 1650 input[type=submit], 1651 input[type=reset], 1652 input[type=button], 1653 a.button, 1654 a.submit { 1655 display: inline-block; 1656 cursor: pointer; 1657 text-align: center; 1658 text-decoration: none; 1659 padding: .1em .5em; 1660 border-radius: .2em; 1661 margin-bottom: .1em; 704 overflow: hidden; 705 position: absolute; 706 top: 3em; 707 left: 0; 708 background: #A2CBE9; 709 width: 100%; 710 } 711 #prelude li { 712 list-style-type: none; 713 margin: 0; 714 background:transparent; 715 display: inline; 716 } 717 #prelude li a { 718 padding: 3px 16px 3px 8px; /* ie < 9 sucks */ 719 padding: 3px 1.6rem 3px .8rem; 720 background: #A2CBE9; 721 color: #000; 722 border-bottom-color: #A2CBE9; 723 } 724 /* top (h1) */ 725 #top { 726 margin: 0; 727 padding: 0; 728 width: 14.5em; 729 float: left; 730 } 731 h1 { 732 padding: 0; 733 margin: 0; 734 height: 36px; 735 text-indent: -1000px; 736 } 737 h1 a { 738 position: absolute; 739 top: 0; 740 left: 0; 741 width: 174px; /* ie < 9 sucks */ 742 width: 17.4rem; 743 height: 36px; /* ie < 9 sucks */ 744 height: 3.6rem; 745 border: none; 746 color: #fff; 747 background: transparent url(dc_logos/b-dotclear120.png) no-repeat 0 6px; 748 } 749 h1 a:hover, h1 a:focus { 750 background-position: 0 -94px; 751 } 752 /* info-boxes */ 753 #info-boxes { 1662 754 font-size: 12px; /* ie < 9 sucks */ 1663 755 font-size: 1.2rem; 1664 } 1665 h4 a.button {font-weight: normal;} 1666 1667 /* validation */ 1668 input[type=submit], 1669 input[type=button], 1670 a.submit { 1671 color: #fff; 1672 text-shadow: 0 -1px 1px #1A87B9; 1673 background:#25A6E1; 1674 background:-moz-linear-gradient(top,#25A6E1 0%,#188BC0 100%); 1675 background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#25A6E1),color-stop(100%,#188BC0)); 1676 background:linear-gradient(top,#25A6E1 0%,#188BC0 100%); 1677 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#25A6E1',endColorstr='#188BC0',GradientType=0); 1678 border:1px solid #2C8FD1; 1679 1680 } 1681 input[type=submit]:hover, 1682 input[type=button]:hover, 1683 a.submit:hover, 1684 input[type=submit]:focus, 1685 input[type=button]:focus, 1686 a.submit:focus { 1687 background:#188BC0; 1688 background:-moz-linear-gradient(top,#188BC0 0%,#25A6E1 100%); 1689 background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#188BC0),color-stop(100%,#25A6E1)); 1690 background:linear-gradient(top,#188BC0 0%,#25A6E1 100%); 1691 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#25A6E1',endColorstr='#25A6E1',GradientType=0); 1692 } 1693 /* suppression et reset */ 1694 a.button, 1695 input[type=submit].reset, 1696 input[type=submit].delete { 1697 border: 1px solid #ccc; 1698 background: #f5f5f5; 1699 color: #000; 1700 background: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#dfdfdf)); 1701 background: -moz-linear-gradient(top, #f5f5f5, #dfdfdf); 1702 text-shadow:1px 1px 0px #fff; 1703 } 1704 a.button:hover, 1705 input[type=reset]:hover, 1706 input[type=submit].reset:hover, 1707 input[type=submit].delete:hover, 1708 a.button:focus, 1709 input[type=reset]:focus, 1710 input[type=submit].reset:focus, 1711 input[type=submit].delete:focus { 1712 background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #e9e9e9), color-stop(1, #f9f9f9) ); 1713 background:-moz-linear-gradient( center top, #e9e9e9 5%, #f9f9f9 100% ); 1714 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e9e9e9', endColorstr='#f9f9f9'); 1715 background-color:#e9e9e9; 1716 } 1717 a.delete, 1718 input.delete, 1719 input[type=submit].delete { 1720 color: #c00; 1721 padding-bottom: 2px; 1722 } 1723 #entry-content .delete { 1724 margin-left: 1em; 1725 } 1726 a.delete:hover, 1727 input.delete:hover, 1728 input[type=submit].delete:hover, 1729 a.delete:focus, 1730 input.delete:focus, 1731 input[type=submit].delete:focus { 1732 border-color: #c00; 1733 } 1734 /* finasseries */ 1735 input[type=button] { 1736 padding: .1em; 1737 } 1738 #info-box a.button { 1739 padding: 0 .5em; 1740 margin-left: 2em; 1741 } 1742 .button.add { 1743 background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #bee74b), color-stop(1, #9BCA1C) ); 1744 background:-moz-linear-gradient( center top, #bee74b 5%, #9BCA1C 100% ); 1745 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bee74b', endColorstr='#9BCA1C'); 1746 background-color:#bee74b; 1747 border:1px solid #B2D742; 1748 padding:.5em 1.5em; 1749 color: #000; 1750 text-shadow:1px 1px 0px #98cf40; 1751 font-weight: normal; 756 line-height: 3em; 757 } 758 #info-boxes a { 759 font-weight: bold; 760 color: #fff; 761 border-bottom-color: #ccc; 762 margin-left: .3em; 763 margin-right: .3em; 764 white-space: nowrap; 765 font-weight: normal; 766 } 767 #info-boxes a img { 768 vertical-align: middle; 769 padding-left: .3em; 770 } 771 #info-box1 { 772 margin: 0; 773 padding: 0 3px 0 18px; 774 color: #fff; 775 display: inline-block; 776 } 777 #info-box1 p { 778 margin: 0; 779 display: inline; 780 } 781 #info-box1 select { 782 width: 145px; /* ie < 9 sucks */ 783 width: 14.5em; 784 } 785 #info-box1 a { 786 margin-left: 1.33em; 787 } 788 #info-box2 { 789 margin: 0; 790 padding: 0 18px 0 0; 791 color: #fff; 792 float: right; 793 text-align: right; 794 } 795 #info-box2 span { 796 color: #999; 797 } 798 #info-box2 .logout { 799 margin-right: 0; 800 } 801 #info-box2 a.active { 802 border-bottom-color: #fff; 803 margin: 0; 804 padding: 1.2em .5em; 805 background-color: #fff; 806 color: #333; 807 font-weight: bold; 808 } 809 /* ---------------------------------------------------------- MAIN-MENU ELEMENTS */ 810 #favorites-menu, #blog-menu, #system-menu, #plugins-menu { 811 border-bottom: 1px dashed #A2CBE9; 812 } 813 #main-menu h3 { 814 margin: 0; 815 padding: 10px 0 10px 8px; 816 color: #666; 1752 817 font-size: 14px; /* ie < 9 sucks */ 1753 818 font-size: 1.4rem; 1754 } 1755 .button.add:hover, .button.add:active, .button.add:focus { 1756 background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #9BCA1C), color-stop(1, #bee74b) ); 1757 background:-moz-linear-gradient( center top, #9BCA1C 5%, #bee74b 100% ); 1758 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9BCA1C', endColorstr='#bee74b'); 1759 background-color:#9BCA1C; 1760 } 1761 .button-add:focus { 1762 outline: dotted 1px; 1763 } 819 } 820 #favorites-menu h3 { 821 color: #000; 822 font-variant: small-caps; 823 padding-top: .2em; 824 } 825 #main-menu a { 826 color: #333; 827 border-bottom-color: #ccc; 828 } 829 #main-menu ul { 830 margin: 0 0 1.5em 0; 831 padding: 0; 832 list-style: none; 833 } 834 #main-menu li { 835 display: block; 836 margin: 0.5em 0 0; 837 padding: 4px 0 1px 32px; 838 background-repeat: no-repeat; 839 background-position: 8px .3em; 840 } 841 #main-menu ul li:first-child { 842 margin-top: 0; 843 } 844 #main-menu li.active { 845 background-color: #fff; 846 font-weight: bold; 847 } 848 #favorites-menu li.active { 849 background-color: transparent; 850 } 851 #main-menu .active a { 852 border-bottom: none; 853 color: #d30e60; 854 } 855 #favorites-menu .active a { 856 color: #000; 857 } 858 #search-menu { 859 padding: 4px 5px 0; 860 font-size: 100% 861 } 862 #search-menu * { 863 height: 22px; /* ie < 9 sucks */ 864 height: 2.2rem; 865 display: inline-block; 866 vertical-align: top; 867 line-height: 22px; 868 } 869 #search-menu p { 870 border: 1px solid #999; 871 border-radius: .3em; 872 position: relative; 873 overflow: hidden; 874 } 875 #qx { 876 width: 124px; /* ie < 9 sucks */ 877 width: 12.4rem; 878 border-bottom-left-radius: .3em; 879 border-top-left-radius: .3em; 880 background: transparent url(search.png) no-repeat 4px center; 881 text-indent: 18px; 882 padding: 0; 883 border: none; 884 height: 22px; 885 height: 2.2rem; 886 } 887 #qx:focus { 888 border-color: #bee74b; 889 } 890 #search-menu input[type="submit"] { 891 padding: 0 3px; 892 padding: 0 .3rem; 893 margin-left: -4px; 894 background: #dfdfdf; 895 border-color: #999; 896 color: #444; 897 border-bottom-right-radius: .3em; 898 border-top-right-radius: .3em; 899 border-top-left-radius: 0; 900 border-bottom-left-radius: 0; 901 text-shadow: none; 902 border: none; 903 border-left: 1px solid #aaa; 904 font-size: 10px; /* ie < 9 sucks */ 905 font-size: 1rem; 906 } 907 #search-menu input[type="submit"]:hover, 908 #search-menu input[type="submit"]:focus { 909 background: #676e78; 910 color: #fff; 911 } 912 /* ----------------------------------------------------------------- CONTENT ELEMENTS */ 913 .part-tabs ul { 914 padding: .5em 0 .3em 1em; 915 border-bottom: 1px solid #ddd; 916 } 917 .part-tabs li { 918 list-style: none; 919 margin: 0; 920 display: inline; 921 } 922 .part-tabs li a { 923 padding: .5em 2em; 924 margin-right: -1px; 925 border: 1px solid #ccc; 926 border-bottom: none; 927 text-decoration: none; 928 color: #333; 929 background-color: #ecf0f1; 930 } 931 .part-tabs li a:hover, .part-tabs li a:focus { 932 color: #000; 933 background: #fff; 934 border-bottom-color: #fff; 935 } 936 .part-tabs li.part-tabs-active a { 937 background: #fff; 938 font-weight: bold; 939 border-bottom-color: #fff; 940 padding-bottom: 7px; /* ie < 9 sucks */ 941 padding-bottom: .7rem; 942 } 943 .multi-part { 944 padding-left: 1em; 945 } 946 /* contextual help */ 947 #help { 948 margin-top: 4em; 949 background: #f5f5f5; 950 z-index: 100; 951 clear: both; 952 padding: 0 1em; 953 } 954 #content.with-help #help { 955 display: block; 956 position: absolute; 957 top: 36px; /* ie < 9 sucks */ 958 top: 3.6rem; 959 right: 0; 960 width: 280px; /* ie < 9 sucks */ 961 width: 28rem; 962 border-left: 2px solid #FFD478; 963 border-top: 2px solid #FFD478; 964 margin-top: 0; 965 padding: .5em 0 0 0; 966 overflow: auto; 967 } 968 #help-button { 969 background: transparent url(../images/page_help.png) no-repeat 6px center; 970 position: absolute; 971 top: 36px; /* ie < 9 sucks */ 972 top: 3.6rem; 973 right: 0px; 974 padding: 0 1.5em 0 30px; 975 cursor: pointer; 976 color: #2373A8; 977 line-height: 42px; /* ie < 9 sucks */ 978 line-height: 4.2rem; 979 } 980 #help-button span { 981 padding: .5em 0 .1em 0; 982 border-bottom: 1px solid #2373A8; 983 } 984 #content.with-help #help-button { 985 right: 282px; /* ie < 9 sucks */ 986 right: 28.2rem; 987 background-color: #f5f5f5; 988 position: fixed; 989 border-top: 2px solid #FFD478; 990 border-left: 2px solid #FFD478; 991 border-bottom: 2px solid #FFD478; 992 border-bottom-left-radius: 1em; 993 border-top-left-radius: 1em; 994 } 995 .help-box { 996 display: none; 997 } 998 .help-box ul { 999 padding-left: 20px; 1000 margin-left: 0; 1001 } 1002 #content.with-help .help-content { 1003 padding: 0 .5em 1em; 1004 } 1005 .help-content dt { 1006 font-weight: bold; 1007 color: #626262; 1008 margin: 0; 1009 } 1010 .help-content dd { 1011 margin: 0.3em 0 1.5em 0; 1012 } 1013 /* ------------------------------------------------------------------ FOOTER ELEMENTS */ 1014 #footer p { 1015 margin: 0; 1016 padding: 0 1em; 1017 font-size: 1em; 1018 } 1019 span.credit { 1020 font-size: 1em; 1021 font-weight: normal; 1022 } 1023 /* --------------------------------------------------------------------------------------- 1024 RÈGLES SPÉCIFIQUES 1025 ---------------------------------------------------------------------------------------- */ 1026 /* ---------------------------------------------------------------- LISTES TABLEAUX */ 1027 table .maximal, table.maximal { 1028 width: 100%; 1029 } 1030 table .minimal { 1031 width: 1px; 1032 } 1033 table .nowrap { 1034 white-space: nowrap; 1035 vertical-align: top; 1036 } 1037 table .count { 1038 text-align: right; 1039 padding-right: 1.5em; 1040 } 1041 th.first img { 1042 padding-right: 24px; 1043 } 1044 tr.line img.expand, th img.expand { 1045 margin-right: 6px; 1046 margin-bottom: -2px; 1047 } 1048 tr.line p { 1049 margin: 0; 1050 } 1051 tr.line input { 1052 vertical-align: middle; 1053 } 1054 tr.line:hover { 1055 background: #f3f3f3; 1056 } 1057 td.status { 1058 vertical-align: middle; 1059 } 1060 td.status img { 1061 margin-bottom: -2px; 1062 } 1063 td.status a { 1064 border: none; 1065 } 1066 .noborder td, td.noborder, .noborder th, th.noborder { 1067 border-width: 0 0 1px 0; 1068 border-color: #ddd; 1069 line-height: 2em; 1070 padding-bottom: 0; 1071 } 1072 .noborder p { 1073 margin-bottom: 0; 1074 } 1075 table.posts-list { 1076 min-width: 50%; 1077 } 1078 table.settings, table.prefs { 1079 width: 80%; 1080 border: 1px solid #ccc; 1081 margin-bottom: 3em; 1082 } 1083 table.settings th, table.prefs th { 1084 background: #f3f3ff; 1085 } 1086 table.settings th:first-child, table.prefs th:first-child { 1087 width: 20%; 1088 } 1089 table.settings th + th, table.prefs th + th { 1090 width: 30%; 1091 } 1092 table.settings th + th + th, table.prefs th + th + th { 1093 width: 10%; 1094 } 1095 table.settings th:last-child, table.prefs th:last-child { 1096 width: 40%; 1097 } 1098 /* js */ 1099 td.expand { 1100 padding: 1em; 1101 } 1102 tr.expand td { 1103 border-bottom: none; 1104 } 1105 .dragable { 1106 border-collapse: separate; 1107 } 1108 .handle { 1109 padding: 0; 1110 } 1111 .handler { 1112 cursor: move; 1113 background: transparent url(drag.png) no-repeat 0 50%; 1114 padding-left: 15px; 1115 } 1116 /* ----------------------------------------------------------- BOITES À FILTRES */ 1117 #filters-form { 1118 border: 1px dashed #999; 1119 border-radius: .5em; 1120 margin-bottom: 2em; 1121 padding: .5em 1em 0; 1122 } 1123 #filters-form .table { 1124 width: 100%; 1125 padding: 0; 1126 margin-bottom: 1em; 1127 margin-top: .5em; 1128 } 1129 #filters-form .cell { 1130 padding: 0 2em 0 0; 1131 } 1132 #filters-form .filters-sibling-cell { 1133 padding-top: 3.8em; 1134 } 1135 #filters-form .filters-options { 1136 padding-left: 2em; 1137 border-left: 1px solid #ccc; 1138 } 1139 #filters-form label.ib, span.ib { 1140 width:7em; 1141 } 1142 #filters-form label.ibw, span.ibw { 1143 width: 9em; 1144 display: inline-block; 1145 } 1146 #filters-form select { 1147 width: 14em; 1148 } 1149 #filters-form h4 { 1150 margin-top: 0; 1151 margin-bottom: 2em; 1152 } 1153 /* ---------------------------------------------------------------------------- SPEC PAGES */ 1154 /* ---------------------------------------------------------------------------- auth.php */ 1155 #login-screen { 1156 display: block; 1157 width: 20em; 1158 margin: 1.5em auto 0; 1159 font-size: 14px; /* ie < 9 sucks */ 1160 font-size: 1.4rem; 1161 } 1162 #login-screen h1 { 1163 text-indent: -2000px; 1164 background: transparent url(dc_logos/w-dotclear240.png) no-repeat top left; 1165 height: 66px; 1166 margin-bottom: .5em; 1167 margin-left: 0; 1168 } 1169 #login-screen .fieldset { 1170 border: 1px solid #A8DC26; 1171 padding: 1em 1em 0 1em; 1172 border-radius: 3px; 1173 background: #fff; 1174 } 1175 #login-screen input[type=text], #login-screen input[type=password], #login-screen input[type=submit] { 1176 width: 100%; 1177 } 1178 #login-screen input.login { 1179 padding-top: 6px; 1180 padding-bottom: 6px; 1181 font-size: 1em; 1182 } 1183 #login-screen #issue { 1184 margin-left: 1.33em; 1185 font-size: 12px; /* ie < 9 sucks */ 1186 font-size: 1.2rem; 1187 } 1188 #login-screen #issue strong { 1189 font-weight: normal; 1190 } 1191 /* ------------------------------------------------------------------------- index.php */ 1192 #dashboard-main { 1193 padding: 1em 0; 1194 } 1195 /* raccourcis */ 1196 #icons { 1197 overflow: hidden; 1198 padding-bottom: 1em; 1199 text-align: center; 1200 } 1201 #icons p { 1202 width: 210px; 1203 text-align: center; 1204 margin: 1em 0 2em; 1205 padding: 1em 0; 1206 display:inline-block; 1207 vertical-align: top; 1208 } 1209 #icons a, 1210 #icons a:link, 1211 #icons a:visited, 1212 #icons a:hover, 1213 #icons a:focus { 1214 border-bottom-width: 0px; 1215 text-decoration: none; 1216 } 1217 #icons a span { 1218 border-bottom: 1px dotted #f90; 1219 color: #333; 1220 } 1221 #icons a img { 1222 padding: 2em; 1223 -moz-box-shadow: 0px 1px 0px 0px #ffffff; 1224 -webkit-box-shadow: 0px 1px 0px 0px #ffffff; 1225 box-shadow: 0px 1px 0px 0px #ffffff; 1226 background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #f9f9f9), color-stop(1, #e9e9e9) ); 1227 background:-moz-linear-gradient( center top, #f9f9f9 5%, #e9e9e9 100% ); 1228 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e9e9e9'); 1229 background-color:#f9f9f9; 1230 -moz-border-radius:1em; 1231 -webkit-border-radius:1em; 1232 border-radius:1em; 1233 border:1px solid #dcdcdc; 1234 display:inline-block; 1235 } 1236 #icons a:focus img, #icons a:hover img { 1237 background: #bee74b; 1238 } 1239 #icons a:focus span, #icons a:hover span { 1240 text-decoration: underline; 1241 } 1242 /* billet rapide */ 1243 #quick { 1244 margin-top: 1em; 1245 padding-top: 1em; 1246 } 1247 #quick h3 { 1248 margin-bottom: 0.2em; 1249 font-size: 1.2em; 1250 } 1251 #quick p.qinfo { 1252 margin: -.7em -1em 1em; 1253 background: #f3f3ff url(info.png) no-repeat .2em .2em; 1254 border: 1px solid #99f; 1255 padding: .2em 1em .1em 24px; 1256 color: #666; 1257 } 1258 #quick #new_cat, .q-cat, .q-cat label { 1259 display: inline-block; 1260 vertical-align: top; 1261 margin-right: 1em; 1262 margin-top: 0; 1263 } 1264 .q-cat label { 1265 margin-right: .3em; 1266 } 1267 #quick #new_cat { 1268 margin-bottom: 2em; 1269 } 1270 /* modules additionnels */ 1271 #dashboard-boxes { 1272 margin: 2em auto 1em; 1273 padding-top: 2em; 1274 } 1275 .db-items img, .db-contents img { 1276 vertical-align: middle; 1277 } 1278 .db-items ul, .db-contents ul { 1279 display: block; 1280 padding-left: 1.5em; 1281 list-style: square; 1282 } 1283 .db-items li, .db-contents li { 1284 margin: 0.25em 0 0 0; 1285 color: #666; 1286 } 1287 #news dt { 1288 font-weight: bold; 1289 margin: 0 0 0.4em 0; 1290 } 1291 #news dd { 1292 margin: 0 0 1em 0; 1293 } 1294 #news dd p { 1295 margin: 0.2em 0 0 0; 1296 } 1297 /* message de mise à jour */ 1298 #upg-notify ul { 1299 padding-left: 1.5em; 1300 } 1301 #upg-notify li { 1302 color: #fff; 1303 } 1304 /* ------------------------------------------------------------------- blog_pref.php */ 1305 .user-perm { 1306 margin: 2em 0px; 1307 background: transparent url(user.png) no-repeat left top; 1308 width: 320px; 1309 display: inline-block; 1310 vertical-align: top; 1311 } 1312 .user-perm h4, .user-perm h5, .user-perm p, .user-perm ul, .user-perm li { 1313 margin: .5em 0 .33em; 1314 padding: 0; 1315 } 1316 .user-perm h4 { 1317 padding-left: 28px; 1318 } 1319 .user-perm h5 { 1320 margin: 1em 0 0 0; 1321 } 1322 .user-perm ul { 1323 list-style-type: inside; 1324 } 1325 .user-perm li { 1326 margin-left: 1em; 1327 padding-left: 0; 1328 } 1329 li.user_super, li.user_admin { 1330 margin-left: 0; 1331 padding-left: 1em; 1332 list-style: none; 1333 background: transparent url(../images/superadmin.png) no-repeat -2px 2px; 1334 } 1335 li.user_admin { 1336 background-image: url(../images/admin.png); 1337 } 1338 /* ------------------------------------------------------------------- blog_theme.php */ 1339 #themes { 1340 margin: 0; 1341 width: 100%; 1342 padding: 0; 1343 } 1344 .theme-details { 1345 border-top: 1px solid #ccc; 1346 padding: 12px; 1347 display: inline-block; 1348 vertical-align: top; 1349 width: 284px; 1350 } 1351 .theme-details.current-theme { 1352 background: #eef; 1353 } 1354 .theme-details:hover { 1355 background: #f3f3f3; 1356 } 1357 .theme-shot img { 1358 display: block; 1359 border: 1px solid #ccc; 1360 margin-bottom: 1.5em; 1361 } 1362 span.theme-desc { 1363 display: block; 1364 } 1365 span.theme-version { 1366 color: #666; 1367 } 1368 .theme-css { 1369 display: block; 1370 } 1371 #themes-actions { 1372 border-bottom: 1px solid #999; 1373 margin-bottom: 3em; 1374 } 1375 /* Themes list, JS version */ 1376 #themes-wrapper { 1377 display: table; 1378 } 1379 #themes-wrapper #themes { 1380 display: table-cell; 1381 vertical-align: top; 1382 padding-left: 1em; 1383 } 1384 #theme-box { 1385 display: table-cell; 1386 vertical-align: top; 1387 padding: 0; 1388 width: 312px; 1389 border: 1px solid #ccc; 1390 border-radius: 3px; 1391 } 1392 #theme-box .theme-shot, 1393 #theme-box .theme-info, 1394 #theme-box .theme-actions { 1395 background: #eef; 1396 padding: 1em 16px; 1397 margin: 0; 1398 } 1399 #theme-box .theme-shot img { 1400 display: block; 1401 width: 280px; 1402 height: 245px; 1403 border: 1px solid #ccc; 1404 } 1405 #theme-box h4 { 1406 color: #000; 1407 background: #eef; 1408 } 1409 #theme-box span.theme-version { 1410 color: #666; 1411 } 1412 #theme-box span.theme-parent-ok { 1413 color: #666; 1414 } 1415 #theme-box span.theme-parent-missing { 1416 color: #c00; 1417 font-weight:bold; 1418 } 1419 #theme-box .theme-actions { 1420 border-bottom: 1px solid #ccc; 1421 } 1422 #themes .theme-details-js { 1423 float: left; 1424 width: 120px; 1425 height: 150px; 1426 margin: 0 12px 24px; 1427 padding: 12px 12px 0; 1428 text-align: center; 1429 background: #f3f3f3; 1430 border: 1px solid #ddd; 1431 cursor: pointer; 1432 border-radius: 4px; 1433 } 1434 #themes .theme-details-js label { 1435 cursor: pointer; 1436 } 1437 #themes .theme-details-js.theme-selected { 1438 background: #e7e7e7; 1439 border: 1px solid #999; 1440 } 1441 #themes .theme-details-js .theme-shot img { 1442 width: 120px; 1443 height: 105px; 1444 border: 1px solid #fff; 1445 } 1446 #themes a:focus div, #themes a:hover div, 1447 #themes a:focus div.current-theme, #themes a:hover div.current-theme { 1448 background: #bee74b; 1449 } 1450 /* ------------------------------------------------------------------ categories.php */ 1451 #categories { 1452 margin: 1em 0; 1453 } 1454 #categories ul { 1455 list-style: none; 1456 margin: 0; 1457 padding: 0; 1458 } 1459 #categories li { 1460 margin: .5em 0; 1461 padding: .5em 1.2em; 1462 border: 1px solid #ccc; 1463 border-left: 8px solid #E5E3DA; 1464 border-radius: 3px; 1465 } 1466 #categories label a { 1467 font-weight: bold; 1468 } 1469 #categories li p { 1470 margin: 0; 1471 display: inline-block; 1472 } 1473 #categories input[type="checkbox"] { 1474 margin-right: .8em; 1475 } 1476 .cat-url { 1477 padding-left: 1em; 1478 } 1479 #categories .placeholder { 1480 outline: 1px dashed #4183C4; 1481 min-height: 2.5em; 1482 } 1483 #categories input.cat-rank { 1484 float: right; 1485 margin-left: 30px; 1486 } 1487 #categories h4 { 1488 margin: 0; 1489 } 1490 #categories h4 span { 1491 font-weight: normal; 1492 } 1493 .cat-actions { 1494 line-height: 2; 1495 } 1496 #del_cat { 1497 width: 100%; 1498 } 1499 /* ------------------------------------------------------------------ media.php */ 1500 .media-list { 1501 position: static; 1502 } 1503 .media-item { 1504 position: relative; 1505 border: 1px solid #ccc; 1506 margin: 1em; 1507 padding: 1em; 1508 width: 300px; 1509 display: inline-block; 1510 vertical-align: top; 1511 min-height: 120px 1512 } 1513 .media-item ul { 1514 display: block; 1515 list-style: none; 1516 margin: 0; 1517 padding: 0; 1518 } 1519 a.media-icon { 1520 display: block; 1521 border-bottom: none; 1522 margin: 0 auto; 1523 } 1524 .media-icon img { 1525 display: block; 1526 } 1527 .media-action-box { 1528 position: relative; 1529 margin: 3em 3em 1em 1em; 1530 display: inline-block; 1531 vertical-align: top; 1532 } 1533 li.media-action { 1534 display: block; 1535 position: absolute; 1536 top: 5px; 1537 right: 5px; 1538 height: 16px; 1539 } 1540 li.media-action a { 1541 border: none; 1542 } 1543 li.media-action form { 1544 display: inline; 1545 } 1546 li.media-action input { 1547 border: none; 1548 } 1549 .zip-dl { 1550 background: transparent url(package.png) no-repeat 0 50%; 1551 padding: 5px 0 5px 20px; 1552 } 1553 /* --------------------------------------------------------------- media-item.php */ 1554 #media-icon { 1555 float: left; 1556 } 1557 .near-icon { 1558 margin-left: 70px; 1559 margin-bottom: 3em; 1560 } 1561 #media-details ul { 1562 display: block; 1563 margin-left: 0; 1564 padding: 0; 1565 } 1566 #media-details li { 1567 list-style: square inside; 1568 margin: 0; 1569 padding: 0; 1570 } 1571 #media-original-image { 1572 overflow: auto; 1573 } 1574 #media-original-image.overheight { 1575 height: 500px; 1576 } 1577 /* -------------------------------------------------------------------- plugins.php */ 1578 #plugins td.action { 1579 vertical-align: middle; 1580 } 1581 .distrib img { 1582 display: block; 1583 float: right; 1584 margin-top: -1em; 1585 } 1586 /* ---------------------------------------------------------- post.php, page.php */ 1587 #entry-wrapper { 1588 float: left; 1589 width: 100%; 1590 margin-right: -18em; 1591 } 1592 #entry-content { 1593 margin-right: 20em; 1594 margin-left: 0; 1595 } 1596 #entry-content label { 1597 text-transform: uppercase; 1598 font-weight: bold; 1599 margin-top: 2em; 1600 } 1601 #entry-content label:first-child { 1602 margin-top: 0; 1603 } 1604 #entry-sidebar { 1605 width: 18em; 1606 float: right; 1607 } 1608 #entry-sidebar select { 1609 width: 100%; 1610 } 1611 #entry-sidebar input#post_position { 1612 width: 4em; 1613 } 1614 .sb-box { 1615 border-bottom: 1px solid #ddd; 1616 margin-bottom: 1em; 1617 } 1618 /* ---------------------------------------------------------- preferences.php */ 1619 #my-favs { 1620 border: 1px solid #A8DC26; 1621 padding: 1em 2em 1622 } 1623 #my-favs ul { 1624 list-style-type: none; 1625 margin-left: 0; 1626 padding-left: 0; 1627 line-height: 1.2; 1628 } 1629 #my-favs li { 1630 display: block; 1631 float: left; 1632 width: 164px; 1633 margin-top: 1em; 1634 margin-bottom: 1.5em; 1635 } 1636 #my-favs label { 1637 height: 2.5em; 1638 width:140px; 1639 margin-top:.3em; 1640 } 1641 #my-favs label input { 1642 display:inline; 1643 } 1644 #my-favs img { 1645 display: block; 1646 } 1647 #my-favs input.position { 1648 margin: 0 0 .4em .2em; 1649 } 1650 #available-favs input, #available-favs label, #available-favs label span { 1651 white-space: normal; 1652 display: inline; 1653 } 1654 #default-favs h3 { 1655 margin-top: 2em; 1656 margin-bottom: 1em; 1657 } 1658 .fav-list { 1659 list-style-type: none; 1660 margin-left: 0; 1661 padding-left: 0; 1662 } 1663 .fav-list li { 1664 line-height: 2; 1665 margin-left: 0; 1666 padding-left: 0; 1667 position: relative; 1668 } 1669 .fav-list img { 1670 vertical-align: middle; 1671 margin-right: .2em; 1672 } 1673 #available-favs label span.zoom { 1674 display: none; 1675 } 1676 #available-favs li:hover label span.zoom { 1677 display: block; 1678 position: absolute; 1679 bottom: 0; 1680 left: 10em; 1681 background-color: #f7f7f7; 1682 border: 1px solid #ddd; 1683 padding: .2em; 1684 border-radius: .5em; 1685 } 1686 #user-options label.ib { 1687 display: inline-block; 1688 width: 14em; 1689 padding-right: 1em; 1690 } 1691 /* --------------------------------------------------------------------- user.php */ 1692 .blog-perm { 1693 margin-top: 2em; 1694 font-weight: bold; 1695 } 1696 .ul-perm { 1697 list-style-type: square; 1698 margin-left: 0; 1699 padding-left: 3.5em; 1700 margin-bottom: 0 1701 } 1702 .add-perm { 1703 padding-top: .5em; 1704 padding-left: 2.5em; 1705 margin-left: 0; 1706 } 1764 1707 1708 /* ------------------------------------------------------------------------------------ 1709 CLASSES 1710 ------------------------------------------------------------------------------------ */ 1765 1711 /* jQuery Autocomplete plugin */ 1766 1712 .ac_results { … … 1770 1716 overflow: hidden; 1771 1717 z-index: 99999; 1772 }1718 } 1773 1719 .ac_results ul { 1774 1720 width: 100%; … … 1777 1723 padding: 0; 1778 1724 margin: 0; 1779 }1780 .ac_results li {1781 margin: 0px;1782 padding: 2px 5px;1783 cursor: default;1784 display: block;1785 font: menu;1786 font-size: 1em;1787 line-height: 16px;1788 overflow: hidden;1789 }1725 } 1726 .ac_results li { 1727 margin: 0px; 1728 padding: 2px 5px; 1729 cursor: default; 1730 display: block; 1731 font: menu; 1732 font-size: 1em; 1733 line-height: 16px; 1734 overflow: hidden; 1735 } 1790 1736 .ac_loading { 1791 1737 background: transparent url('loader.gif') right center no-repeat; 1792 }1738 } 1793 1739 .ac_over { 1794 1740 background-color: #06c; 1795 1741 color: white; 1796 } 1797 1798 /* ------------------------------------------------------- Filters */ 1799 #filters-form { 1800 border: 1px dashed #999; 1801 border-radius: .5em; 1742 } 1743 /* password indicator */ 1744 .pw-table { 1745 display: table; 1746 margin-bottom: 1em; 1747 } 1748 .pw-cell { 1749 display: table-cell; 1750 margin-bottom: 1em; 1751 } 1752 #pwindicator { 1753 display: table-cell; 1754 vertical-align: bottom; 1755 padding-left: 1.5em; 1756 height: 3.8em; 1757 } 1758 #pwindicator .bar { 1759 height: 6px; 1760 margin-bottom: 4px; 1761 } 1762 .pw-very-weak .bar { 1763 background: #900; 1764 width: 30px; 1765 } 1766 .pw-weak .bar { 1767 background: #c00; 1768 width: 60px; 1769 } 1770 .pw-mediocre .bar { 1771 background: #f60; 1772 width: 90px; 1773 } 1774 .pw-strong .bar { 1775 background: #060; 1776 width: 120px; 1777 } 1778 .pw-very-strong .bar { 1779 background: #0c0; 1780 width: 150px; 1781 } 1782 /* ------------------------------------------------------------------ navigation */ 1783 /* selects accès rapide */ 1784 .anchor-nav { 1785 background: #ecf0f1; 1786 color: #000; 1787 padding: 4px 1em; 1788 } 1789 /* nav links */ 1790 .nav_prevnext { 1802 1791 margin-bottom: 2em; 1803 padding: .5em 1em 0; 1804 } 1805 #filters-form .table { 1806 display: table; 1807 width: 100%; 1808 padding: 0; 1809 margin-bottom: 1em; 1810 margin-top: .5em; 1811 } 1812 #filters-form .cell { 1813 padding: 0 2em 0 0; 1814 display: table-cell; 1815 vertical-align: top; 1816 } 1817 #filters-form .filters-sibling-cell { 1818 padding-top: 3.8em; 1819 } 1820 #filters-form .filters-options { 1821 padding-left: 2em; 1822 border-left: 1px solid #ccc; 1823 } 1824 #filters-form label.ib, span.ib { 1825 width:7em; 1826 display: inline-block; 1827 } 1828 #filters-form label.ibw, span.ibw { 1829 width: 9em; 1830 display: inline-block; 1831 } 1832 #filters-form select { 1833 width: 14em; 1834 } 1835 #filters-form h4 { 1836 margin-top: 0; 1837 margin-bottom: 2em; 1838 } 1839 1840 /* ---------------------------------------------------- Pagination */ 1792 color: #fff; 1793 } 1794 .nav_prevnext a, a.back { 1795 border: 1px solid #ddd; 1796 padding: 2px 1.5em; 1797 border-radius: .75em; 1798 background-color: #f0f0f0; 1799 } 1800 a.back:before { 1801 content: "\ab\a0"; 1802 } 1803 a.onblog_link { 1804 color: #333; 1805 float: right; 1806 border: 1px solid #eee; 1807 padding: 2px 1.5em; 1808 border-radius: .75em; 1809 background-color: #ffe; 1810 } 1811 /* Pagination */ 1841 1812 .pagination { 1842 1813 height: 22px; … … 1844 1815 line-height: 22px; 1845 1816 padding: 0 .75em; 1846 border: 1px solid # ddd;1817 border: 1px solid #e7e7e7; 1847 1818 overflow: hidden; 1848 background: #e1e1e1; 1849 background: -moz-linear-gradient(center top , #f2f2f2, #e1e1e1); 1850 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f2f2f2), color-stop(100%,#e1e1e1)); 1851 -moz-border-radius: 4px; 1852 -webkit-border-radius: 4px; 1853 border-radius: 4px; 1819 background: #f3f3f3; 1820 -moz-border-radius: 3px; 1821 -webkit-border-radius: 3px; 1822 border-radius: 3px; 1854 1823 clear: left; 1855 } 1856 .pagination a, .pagination strong { 1857 height: 20px; 1858 border: none; 1859 padding: 2px 6px; 1860 background-color : transparent; 1861 background-position : 50% 50%; 1862 background-repeat: no-repeat; 1863 } 1864 .pagination a:hover, .pagination strong { 1865 border-color : #ccc; 1866 background-color: #fff; 1867 } 1868 1869 /* --------------------------------------------------------------- password indcator */ 1870 .pw-table { 1871 display: table; 1824 } 1825 .pagination a, .pagination strong { 1826 height: 20px; 1827 border: none; 1828 padding: 2px 6px; 1829 background-color : transparent; 1830 background-position : 50% 50%; 1831 background-repeat: no-repeat; 1832 } 1833 .pagination a:hover, .pagination strong { 1834 border-color : #ccc; 1835 background-color: #fff; 1836 } 1837 /* Etapes */ 1838 .step { 1839 display: inline-block; 1840 float: left; 1841 margin: 3px 10px 2px 0; 1842 padding: 5px .5em; 1843 background: #ecf0f1; 1844 border-radius: 3px; 1845 font-weight: bold; 1846 border: 1px solid #bdc3c7; 1847 color: #738182; 1848 } 1849 /* ---------------------------------------------------------------- utilisables partout */ 1850 .fieldset { 1851 background: #fff; 1852 border: 1px solid #bbb; 1853 border-radius: 3px; 1854 padding: 1em .7em .5em; 1872 1855 margin-bottom: 1em; 1873 } 1874 .pw-cell { 1875 display: table-cell; 1876 margin-bottom: 1em; 1877 } 1878 #pwindicator { 1879 display: table-cell; 1880 vertical-align: bottom; 1881 padding-left: 1.5em; 1882 height: 3.8em; 1883 } 1884 #pwindicator .bar { 1885 height: 6px; 1886 margin-bottom: 4px; 1887 } 1888 .pw-very-weak .bar { 1889 background: #900; 1890 width: 30px; 1891 } 1892 .pw-weak .bar { 1893 background: #c00; 1894 width: 60px; 1895 } 1896 .pw-mediocre .bar { 1897 background: #f60; 1898 width: 90px; 1899 } 1900 .pw-strong .bar { 1901 background: #060; 1902 width: 120px; 1903 } 1904 .pw-very-strong .bar { 1905 background: #0c0; 1906 width: 150px; 1907 } 1908 /* ------------------------------------------------------------- cachotteries */ 1856 } 1857 .fieldset h3 { 1858 color: #333; 1859 } 1860 .right { 1861 text-align: right; 1862 } 1863 .txt-center { 1864 text-align: center; 1865 } 1866 .no-margin, label.no-margin { 1867 margin-top: 0; 1868 margin-bottom: 0; 1869 } 1870 .vertical-separator { 1871 margin-top: 2em; 1872 } 1873 p.clear.vertical-separator { 1874 padding-top: 2em; 1875 } 1876 .border-top { 1877 border-top: 1px solid #999; 1878 padding-top: 1em; 1879 margin-top: 1em; 1880 } 1881 .grid { 1882 background: transparent repeat url('grid.png') 0 0; 1883 } 1884 ul.nice { 1885 margin: 1em 0; 1886 padding: 0 0 0 2em; 1887 list-style: square; 1888 } 1889 ul.nice li { 1890 margin:0; 1891 padding: 0; 1892 } 1893 .offline { 1894 color: #666; 1895 } 1909 1896 /* caché pour tout le monde */ 1910 1897 .hide { 1911 1898 display: none; 1912 }1899 } 1913 1900 /* Caché sauf pour les revues d'écran */ 1914 1901 .hidden { … … 1925 1912 .no-js .hidden-if-no-js { 1926 1913 display: none; 1927 }1914 } 1928 1915 /* montré si js est inactif */ 1929 1916 .no-js .hidden-if-js { 1930 1917 display: block; 1931 }1918 } 1932 1919 /* caché si js est actif */ 1933 1920 .hidden-if-js { 1934 1921 display: none; 1935 } 1936 1937 /* --------------------------------------------------------------------------- 1938 Media queries vite fait en attendant la reprise complète du layout 1939 ---------------------------------------------------------------------------- */ 1922 } 1923 /* ------------------------------------------------------------------------------------ 1924 UTILS 1925 ------------------------------------------------------------------------------------ */ 1926 /* debug */ 1927 #debug { 1928 position: absolute; 1929 top: 0; 1930 width: 100%; 1931 height: 4px; 1932 background: #d99; 1933 } 1934 #debug div { 1935 display: none; 1936 padding: 3px 0.5em 2px; 1937 } 1938 #debug p { 1939 margin: 0.5em 0; 1940 } 1941 #debug:hover { 1942 height: auto; 1943 } 1944 #debug:hover div { 1945 display: block; 1946 } 1947 /* ------------------------------------------------------------------------------------ 1948 UN POIL DE MEDIA QUERIES 1949 ------------------------------------------------------------------------------------ */ 1940 1950 @media screen and (max-width: 920px) { 1941 #top, #top h1 a {width: 42px !important; height:100%; overflow: hidden; 1942 } 1943 #top h1 a:link { 1944 background: transparent url(dc_logos/b-dotclear120.png) no-repeat -180px 6px; 1945 border-right: 1px solid #ccc; 1946 } 1947 #top h1 a:hover, #top h1 a:focus { 1948 background: url(dc_logos/b-dotclear120.png) no-repeat -180px -94px; 1949 border-right: 1px solid #A2CBE9; 1950 } 1951 } 1951 #top, #top h1 a { 1952 width: 42px !important; 1953 height:100%; 1954 overflow: hidden; 1955 } 1956 #top h1 a:link { 1957 background: transparent url(dc_logos/b-dotclear120.png) no-repeat -180px 6px; 1958 border-right: 1px solid #ccc; 1959 } 1960 #top h1 a:hover, #top h1 a:focus { 1961 background: url(dc_logos/b-dotclear120.png) no-repeat -180px -94px; 1962 border-right: 1px solid #A2CBE9; 1963 } 1964 } 1952 1965 @media screen and (max-width: 800px) { 1953 1966 #top, #info-boxes, #info-box1, #info-box2 { … … 1956 1969 margin:0; 1957 1970 padding:0; 1958 line-height: 32px; /* ie < 9 sucks */1959 line-height: 3.2rem;1960 }1961 #info-box1 {margin-left: .75em;}1962 # info-box1 select {width: 140px; width: 14rem;}1963 #main-menu, #main, #content, #content h2, #entry-wrapper, #entry-sidebar, #entry-content, .two-cols .col, .two-cols .col:first-child{1964 display:block;1971 line-height: 32px; line-height: 3.2rem; 1972 } 1973 #info-box1 { margin-left: .75em; } 1974 #info-box1 select { width: 140px; width: 14rem; } 1975 #main-menu, #main, #content, #content h2, #entry-wrapper, #entry-sidebar, #entry-content, 1976 .two-cols .col, .two-cols .col:first-child, .boxes { 1977 display:block !important; 1965 1978 width: 98%; 1966 1979 margin:0 auto; … … 1969 1982 text-align: left; 1970 1983 clear: both; 1971 1984 } 1972 1985 #content { 1973 1974 1975 }1976 }1986 width: 100%; 1987 padding-top: .5em; 1988 } 1989 } 1977 1990 @media screen and (max-width: 720px) { 1978 .smallscreen {display: none;} 1979 #help-button {width:20px; overflow: hidden;} 1980 #info-box2 {float:none;} 1981 #dashboard-items div {display: block;margin-bottom: 1em; padding: 0 1em;} 1982 #help-button {height:26px; width:26px; background-color: #A2CBE9; padding: 0; margin:0;font-size:10px; font-size: 1rem;line-height: 68px} 1983 } 1991 .smallscreen { display: none; } 1992 #info-box2 { float:none; } 1993 #help-button { 1994 height:26px; 1995 width:26px; 1996 background-color: #A2CBE9; 1997 padding: 0; 1998 margin: 0; 1999 font-size: 10px; font-size: 1rem; 2000 line-height: 68px; 2001 overflow: hidden; 2002 } 2003 } 1984 2004 @media screen and (max-width: 492px) { 1985 #header {height: 36px; height: 3.6rem;} 1986 #wrapper {font-size: 16px; font-size: 1.6rem;} 1987 .page-title, #info-boxes, .media-item {display: inline-block;} 1988 div.media-list .media-item {width: 90%; float: none} 1989 #info-box1 select {width: 120px; width: 12rem; margin-right: .6rem;} 1990 #info-box1 p.nomobile, label.nomobile {display: none;} 1991 } 2005 #header { height: 36px; height: 3.6rem; } 2006 #wrapper { font-size: 16px; font-size: 1.6rem; } 2007 .page-title, #info-boxes { display: inline-block; } 2008 #info-box1 select { 2009 width: 120px; width: 12rem; 2010 margin-right: .6rem; 2011 } 2012 #info-box1 p.nomobile, label.nomobile { display: none; } 2013 } -
admin/style/jsToolBar/jsToolBar.css
r1697 r1741 2 2 border-width : 0 1px 1px 1px; 3 3 border-style : solid; 4 border-color : # ccc;5 background : #f 9f9f9;4 border-color : #ddd; 5 background : #f7f7f7; 6 6 } 7 7 .jstEditor textarea, .jstEditor iframe { … … 10 10 box-sizing: border-box; 11 11 margin: 0; 12 border: 2px solid #f9f9f9;12 border: 1px solid #fbfbfb; 13 13 width: 100%; 14 14 padding: .5em 0 0 0; … … 24 24 } 25 25 .jstEditor textarea:focus, .jstEditor iframe:focus { 26 border : 2px solid#bee74b;26 border-color: #bee74b; 27 27 } 28 28 .jstElements { 29 29 height: 28px; 30 30 padding: 0 1rem; 31 border: 1px solid # ccc;31 border: 1px solid #dfdfdf; 32 32 overflow: hidden; 33 background: #e1e1e1; 34 background: -moz-linear-gradient(center top , #f2f2f2, #e1e1e1); 35 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f2f2f2), color-stop(100%,#e1e1e1)); 33 background: #f5f5f5; 36 34 -moz-border-radius: 4px 4px 0 0; 37 35 -webkit-border-radius: 4px 4px 0 0; 38 36 border-radius: 4px 4px 0 0; 39 -webkit-box-shadow: 0 1px 0 #FFF inset;40 -moz-box-shadow: 0 1px 0 #FFF inset;41 box-shadow: 0 1px 0 #FFF inset;42 37 } 43 38 … … 48 43 width: 12em; 49 44 margin-right: .6rem; 50 border: 1px solid # ccc;45 border: 1px solid #ddd; 51 46 } 52 47 .jstElements button { 53 48 width : 30px; 54 49 height: 28px; 55 border-style: groove;50 border-style: solid; 56 51 border-width: 0 1px 0 0; 57 border-color: # 666;58 background-color : transparent;52 border-color: #e7e7e7; 53 background-color : #f7f7f7; 59 54 background-position : 50% 50%; 60 55 background-repeat: no-repeat; 61 56 } 62 57 .jstElements button:hover { 63 border-color : # ccc;58 border-color : #ddd; 64 59 background-color: #fff; 65 60 } … … 70 65 display : inline-block; 71 66 vertical-align: top; 72 background: # dfdfdf;67 background: #e5e5e5; 73 68 } 74 69 span.jstSpacer { … … 76 71 height: 28px; 77 72 margin-right: 0; 78 border-style: groove;79 border-width: 0 1px 0 0;80 border-color: #666;81 73 } 82 74 … … 96 88 .jstSwitcher li.jstSwitcherCurrent { 97 89 color: #fff; 98 background: # 575859;90 background: #677374; 99 91 border-radius: 0 0 2px 2px; 100 92 } -
admin/user.php
r1621 r1719 32 32 $user_options = $core->userDefaults(); 33 33 34 foreach ($core->getFormaters() as $v) { 35 $formaters_combo[$v] = $v; 36 } 37 38 foreach ($core->blog->getAllPostStatus() as $k => $v) { 39 $status_combo[$v] = $k; 40 } 34 # Formaters combo 35 $formaters_combo = dcAdminCombos::getFormatersCombo(); 36 37 $status_combo = dcAdminCombos::getPostStatusesCombo(); 41 38 42 39 # Language codes 43 $langs = l10n::getISOcodes(1,1); 44 foreach ($langs as $k => $v) { 45 $lang_avail = $v == 'en' || is_dir(DC_L10N_ROOT.'/'.$v); 46 $lang_combo[] = new formSelectOption($k,$v,$lang_avail ? 'avail10n' : ''); 47 } 40 $lang_combo = dcAdminCombos::getAdminLangsCombo(); 48 41 49 42 # Get user if we have an ID -
debian/control
r0 r1743 8 8 Package: dotclear 9 9 Architecture: all 10 Depends: ${misc:Depends}, apache2 | httpd | apache, libclearbricks, php5-pgsql | php5-sqlite | php5-mysql , php5-gd10 Depends: ${misc:Depends}, apache2 | httpd | apache, libclearbricks, php5-pgsql | php5-sqlite | php5-mysql | php5-mysqli, php5-gd 11 11 Suggests: php5-tidy 12 12 Description: DotClear 2 -
inc/admin/lib.dc.page.php
r1699 r1741 150 150 151 151 echo 152 '<div id="wrapper" >'."\n".152 '<div id="wrapper" class="clearfix">'."\n". 153 153 '<div id="main">'."\n". 154 '<div id="content" >'."\n";154 '<div id="content" class="clearfix">'."\n"; 155 155 156 156 # Safe mode … … 330 330 { 331 331 self::message($msg,$timestamp,$div,$echo,"success"); 332 } 333 334 public static function warning($msg,$timestamp=true,$div=false,$echo=true) 335 { 336 self::message($msg,$timestamp,$div,$echo,"warning-msg"); 332 337 } 333 338 … … 613 618 "//<![CDATA[\n". 614 619 "\$(function() {\n". 615 " \$.pageTabs(".$default.");\n".620 " pagetabs = \$.pageTabs(".$default.");\n". 616 621 "});\n". 617 622 "\n//]]>\n". 618 "</script>\n"; 623 "</script>\n". 624 "<!--[if lt IE 8]>\n". 625 self::jsLoad('js/ie7/ie7-hashchange.js'). 626 '<script type="text/javascript">'."\n". 627 "//<![CDATA[\n". 628 "\$(function() {". 629 "\$(window).hashchange( function(){". 630 "pagetabs.showDiv(document.location.hash.split('#').join(''));". 631 "});". 632 "});". 633 "\n//]]>\n". 634 "</script>\n". 635 "<![endif]-->\n"; 619 636 } 620 637 -
inc/config.php.in
r1535 r1743 12 12 if (!defined('DC_RC_PATH')) { return; } 13 13 14 // Database driver (mysql, pgsql, sqlite)14 // Database driver (mysql, mysqli, pgsql, sqlite) 15 15 define('DC_DBDRIVER',''); 16 16 -
inc/core/class.dc.blog.php
r1689 r1743 658 658 if (!$rs->isEmpty()) 659 659 { 660 if ($this->con->driver() == 'mysql' ) {660 if ($this->con->driver() == 'mysql' || $this->con->driver() == 'mysqli') { 661 661 $clause = "REGEXP '^".$this->con->escape($url)."[0-9]+$'"; 662 662 } elseif ($this->con->driver() == 'pgsql') { … … 1828 1828 if (!$rs->isEmpty()) 1829 1829 { 1830 if ($this->con->driver() == 'mysql' ) {1830 if ($this->con->driver() == 'mysql' || $this->con->driver() == 'mysqli') { 1831 1831 $clause = "REGEXP '^".$this->con->escape($url)."[0-9]+$'"; 1832 1832 } elseif ($this->con->driver() == 'pgsql') { … … 2187 2187 2188 2188 # mySQL uses "JOIN" synthax 2189 if ($this->con->driver() == 'mysql' ) {2189 if ($this->con->driver() == 'mysql' || $this->con->driver() == 'mysqli') { 2190 2190 $strReq .= 2191 2191 'JOIN '.$this->prefix.'post tp ON tc.post_id = tp.post_id '; … … 2196 2196 2197 2197 # pgSQL uses "FROM" synthax 2198 if ($this->con->driver() != 'mysql' ) {2198 if ($this->con->driver() != 'mysql' || $this->con->driver() == 'mysqli') { 2199 2199 $strReq .= 2200 2200 'FROM '.$this->prefix.'post tp '; … … 2206 2206 2207 2207 # add pgSQL "WHERE" clause 2208 if ($this->con->driver() != 'mysql' ) {2208 if ($this->con->driver() != 'mysql' || $this->con->driver() == 'mysqli') { 2209 2209 $strReq .= 2210 2210 'AND tc.post_id = tp.post_id '; … … 2265 2265 2266 2266 # mySQL uses "INNER JOIN" synthax 2267 if ($this->con->driver() == 'mysql' ) {2267 if ($this->con->driver() == 'mysql' || $this->con->driver() == 'mysqli') { 2268 2268 $strReq = 2269 2269 'DELETE FROM tc '. … … 2302 2302 2303 2303 # mySQL uses "INNER JOIN" synthax 2304 if ($this->con->driver() == 'mysql' ) {2304 if ($this->con->driver() == 'mysql' || $this->con->driver() == 'mysqli') { 2305 2305 $strReq = 2306 2306 'DELETE FROM tc '. -
inc/core/class.dc.core.php
r1698 r1743 64 64 if ($this->con instanceof mysqlConnection) { 65 65 mysqlConnection::$weak_locks = true; 66 } elseif ($this->con instanceof mysqliConnection) { 67 mysqliConnection::$weak_locks = true; 66 68 } 67 69 -
inc/core/class.dc.media.php
r1468 r1718 74 74 75 75 if (!is_dir($root)) { 76 throw new Exception(sprintf(__('Directory %s does not exist.'),$root)); 76 # Check public directory 77 if ( $core->auth->isSuperAdmin() ) { 78 throw new Exception(__("There is no writable directory /public/ at the location set in about:config \"public_path\". You must create this directory with sufficient rights (or change this setting).")); 79 } else { 80 throw new Exception(__("There is no writable root directory for the media manager. You should contact your administrator.")); 81 } 77 82 } 78 83 … … 299 304 $f->media_thumb = array(); 300 305 $p = path::info($f->relname); 306 301 307 $alpha = ($p['extension'] == 'png') || ($p['extension'] == 'PNG'); 308 302 309 $thumb = sprintf(($alpha ? $this->thumb_tp_alpha : $this->thumb_tp),$this->root.'/'.$p['dirname'],$p['base'],'%s'); 303 310 $thumb_url = sprintf(($alpha ? $this->thumb_tp_alpha : $this->thumb_tp),$this->root_url.$p['dirname'],$p['base'],'%s'); … … 306 313 $thumb_url = preg_replace('#\./#','/',$thumb_url); 307 314 $thumb_url = preg_replace('#(?<!:)/+#','/',$thumb_url); 315 316 if ($alpha) { 317 $thumb_alt = sprintf($this->thumb_tp,$this->root.'/'.$p['dirname'],$p['base'],'%s'); 318 $thumb_url_alt = sprintf($this->thumb_tp,$this->root_url.$p['dirname'],$p['base'],'%s'); 319 # Cleaner URLs 320 $thumb_url_alt = preg_replace('#\./#','/',$thumb_url_alt); 321 $thumb_url_alt = preg_replace('#(?<!:)/+#','/',$thumb_url_alt); 322 } 308 323 309 324 foreach ($this->thumb_sizes as $suffix => $s) { 310 325 if (file_exists(sprintf($thumb,$suffix))) { 311 326 $f->media_thumb[$suffix] = sprintf($thumb_url,$suffix); 327 } elseif ($alpha && file_exists(sprintf($thumb_alt,$suffix))) { 328 $f->media_thumb[$suffix] = sprintf($thumb_url_alt,$suffix); 312 329 } 313 330 } -
inc/prepend.php
r1694 r1719 59 59 $__autoload['adminCommentList'] = dirname(__FILE__).'/admin/lib.pager.php'; 60 60 $__autoload['adminUserList'] = dirname(__FILE__).'/admin/lib.pager.php'; 61 $__autoload['dcAdminCombos'] = dirname(__FILE__).'/admin/lib.admincombos.php'; 61 62 62 63 $__autoload['dcTemplate'] = dirname(__FILE__).'/public/class.dc.template.php'; -
locales/fr/main.po
r1697 r1745 3312 3312 msgid "%1$s: %2$s" 3313 3313 msgstr "%1$s : %2$s" 3314 3315 msgid "Dotclear news" 3316 msgstr "Actualité de Dotclear" 3317 3318 msgid "The cache directory does not exist or is not writable. You must create this directory with sufficient rights and affect this location to \"DC_TPL_CACHE\" in inc/config.php file." 3319 msgstr "Le répertoire de cache n'existe pas ou n'est pas accessible en écriture. Vous devez créer ce répertoire avec les droits suffisants et affecter celui-ci à \"DC_TPL_CACHE\" dans le fichier inc/config.php." 3320 3321 msgid "The cache directory does not exist or is not writable. You should contact your administrator." 3322 msgstr "Le répertoire de cache n'existe pas ou n'est pas accessible en écriture. Vous devriez contacter votre administrateur." 3323 3324 msgid "There is no writable directory /public/ at the location set in about:config \"public_path\". You must create this directory with sufficient rights (or change this setting)." 3325 msgstr "Il n'existe pas de répertoire /public/ à l'endroit spécifié pour le réglage \"public_path\" dans about:config. Vous devez créer ce répertoire avec les droits suffisants (ou changer ce réglage)." 3326 3327 msgid "There is no writable root directory for the media manager. You should contact your administrator." 3328 msgstr "Il n'existe pas de répertoire principal accessible en écriture pour la médiathèque. Vous devriez contacter votre administrateur." 3329 3330 msgid "You do not have sufficient permissions to write to this folder." 3331 msgstr "Vous n'avez pas les droits suffisants pour écrire dans ce répertoire." 3332 3333 msgid "MySQL (deprecated)" 3334 msgstr "MySQL (obsolète)" 3335 3336 msgid "The URL of blog or the URL scan method might not be well set (<code>%s</code> return a <strong>%s</strong> status)." 3337 msgstr "L'URL du blog ou la méthode de lecture de l'URL ne semblent pas être bien réglées (<code>%s</code> retourne un statut <strong>%s</strong>)" 3338 3339 msgid "The URL of blog or the URL scan method might not be well set (<code>%s</code> does not return an ATOM feed)." 3340 msgstr "L'URL du blog ou la méthode de lecture de l'URL ne semblent pas être bien réglées (<code>%s</code> ne retourne pas un flux ATOM)" -
plugins/importExport/inc/class.dc.import.wp.php
r1622 r1719 80 80 $this->post_limit = $this->vars['post_limit']; 81 81 } 82 83 foreach ($this->core->getFormaters() as $v) { 84 $this->formaters[$v] = $v; 85 } 82 83 $this->formaters = dcAdminCombos::getFormatersCombo(); 86 84 } 87 85 -
plugins/importExport/inc/flat/class.flat.import.php
r1093 r1743 160 160 if (in_array($last_line_name,$constrained)) { 161 161 # UNDEFER 162 if ($this->con->driver() == 'mysql' ) $this->con->execute('SET foreign_key_checks = 1');162 if ($this->con->driver() == 'mysql' || $this->con->driver() == 'mysqli') $this->con->execute('SET foreign_key_checks = 1'); 163 163 if ($this->con->driver() == 'pgsql') $this->con->execute('SET CONSTRAINTS ALL DEFERRED'); 164 164 } … … 166 166 if (in_array($line->__name,$constrained)) { 167 167 # DEFER 168 if ($this->con->driver() == 'mysql' ) $this->con->execute('SET foreign_key_checks = 0');168 if ($this->con->driver() == 'mysql' || $this->con->driver() == 'mysqli') $this->con->execute('SET foreign_key_checks = 0'); 169 169 if ($this->con->driver() == 'pgsql') $this->con->execute('SET CONSTRAINTS ALL IMMEDIATE'); 170 170 } … … 205 205 } 206 206 207 if ($this->con->driver() == 'mysql' ) $this->con->execute('SET foreign_key_checks = 1');207 if ($this->con->driver() == 'mysql' || $this->con->driver() == 'mysqli') $this->con->execute('SET foreign_key_checks = 1'); 208 208 if ($this->con->driver() == 'pgsql') $this->con->execute('SET CONSTRAINTS ALL DEFERRED'); 209 209 } -
plugins/pages/page.php
r1713 r1741 53 53 54 54 # Status combo 55 foreach ($core->blog->getAllPostStatus() as $k => $v) { 56 $status_combo[$v] = (string) $k; 57 } 55 $status_combo = dcAdminCombos::getPostStatusesCombo(); 56 58 57 $img_status_pattern = '<img class="img_select_option" alt="%1$s" title="%1$s" src="images/%2$s" />'; 59 58 60 59 # Formaters combo 61 foreach ($core->getFormaters() as $v) { 62 $formaters_combo[$v] = $v; 63 } 60 $formaters_combo = dcAdminCombos::getFormatersCombo(); 64 61 65 62 # Languages combo 66 63 $rs = $core->blog->getLangs(array('order'=>'asc')); 67 $all_langs = l10n::getISOcodes(0,1); 68 $lang_combo = array('' => '', __('Most used') => array(), __('Available') => l10n::getISOcodes(1,1)); 69 while ($rs->fetch()) { 70 if (isset($all_langs[$rs->post_lang])) { 71 $lang_combo[__('Most used')][$all_langs[$rs->post_lang]] = $rs->post_lang; 72 unset($lang_combo[__('Available')][$all_langs[$rs->post_lang]]); 73 } else { 74 $lang_combo[__('Most used')][$rs->post_lang] = $rs->post_lang; 75 } 76 } 77 unset($all_langs); 78 unset($rs); 64 $lang_combo = dcAdminCombos::getLangsCombo($rs,true); 65 79 66 80 67 # Validation flag … … 480 467 481 468 "post_excerpt" => 482 '<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').' <span class="form-note">'.483 __(' Add an introduction to the post.').'</span></label> '.469 '<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').' <span class="form-note">'. 470 __('Introduction to the post.').'</span></label> '. 484 471 form::textarea('post_excerpt',50,5,html::escapeHTML($post_excerpt)). 485 472 '</p>', … … 492 479 493 480 "post_notes" => 494 '<p class="area" id="notes-area"><label for="post_notes">'.__('Personal notes:').' <span class="form-note">'.495 __(' Add unpublished notes.').'</span></label>'.481 '<p class="area" id="notes-area"><label for="post_notes">'.__('Personal notes:').' <span class="form-note">'. 482 __('Unpublished notes.').'</span></label>'. 496 483 form::textarea('post_notes',50,5,html::escapeHTML($post_notes)). 497 484 '</p>' … … 545 532 546 533 foreach ($sidebar_items as $id => $c) { 547 echo '<div id="'.$id.'" class=" box">'.534 echo '<div id="'.$id.'" class="sb-box">'. 548 535 '<h4>'.$c['title'].'</h4>'; 549 536 foreach ($c['items'] as $e_name=>$e_content) { … … 603 590 604 591 echo 605 '<p class="top-add"><a class="button add onblog_link" href="#comment-form">'.__('Add a comment').'</a></p>';592 '<p class="top-add"><a class="button add" href="#comment-form">'.__('Add a comment').'</a></p>'; 606 593 607 594 if ($has_action) { -
plugins/simpleMenu/index.php
r1636 r1722 23 23 24 24 # Liste des catégories 25 $categories_combo = array();26 25 $categories_label = array(); 27 try { 28 $rs = $core->blog->getCategories(array('post_type'=>'post')); 29 while ($rs->fetch()) { 30 $categories_combo[] = new formSelectOption( 31 str_repeat(' ',$rs->level-1).($rs->level-1 == 0 ? '' : '• ').html::escapeHTML($rs->cat_title), 32 $rs->cat_url 33 ); 34 $categories_label[$rs->cat_url] = html::escapeHTML($rs->cat_title); 35 } 36 } catch (Exception $e) { } 37 26 $rs = $core->blog->getCategories(array('post_type'=>'post')); 27 $categories_combo = dcAdminCombos::getCategoriesCombo($rs); 28 unset($categories_combo[__('(No cat)')]); 29 $rs->moveStart(); 30 while ($rs->fetch()) { 31 $categories_label[$rs->cat_id] = html::escapeHTML($rs->cat_title); 32 } 38 33 # Liste des langues utilisées 39 $langs_combo = array(); 40 try { 41 $rs = $core->blog->getLangs(array('order'=>'asc')); 42 if ($rs->count() > 1) 43 { 44 $all_langs = l10n::getISOcodes(0,1); 45 while ($rs->fetch()) { 46 $lang_name = isset($all_langs[$rs->post_lang]) ? $all_langs[$rs->post_lang] : $rs->post_lang; 47 $langs_combo[$lang_name] = $rs->post_lang; 48 } 49 unset($all_langs); 50 } 51 unset($rs); 52 } catch (Exception $e) { } 34 $langs_combo = dcAdminCombos::getLangscombo( 35 $core->blog->getLangs(array('order'=>'asc')) 36 ); 53 37 54 38 # Liste des mois d'archive 55 $ months_combo = array();56 try { 57 $rs = $core->blog->getDates(array('type'=>'month'));58 $months_combo[__('All months')] = '-';59 $first_year = $last_year = 0;60 while ($rs->fetch()) { 61 $months_combo[dt::str('%B %Y',$rs->ts())] = $rs->year().$rs->month();62 if (($first_year == 0) || ($rs->year() < $first_year)) $first_year = $rs->year(); 63 if (($last_year == 0) || ($rs->year() > $last_year)) $last_year = $rs->year();64 }65 unset($rs); 66 } catch (Exception $e) { } 39 $rs = $core->blog->getDates(array('type'=>'month')); 40 $months_combo = array_merge( 41 array(__('All months') => '-'), 42 dcAdmincombos::getDatesCombo($rs) 43 ); 44 45 $first_year = $last_year = 0; 46 while ($rs->fetch()) { 47 if (($first_year == 0) || ($rs->year() < $first_year)) $first_year = $rs->year(); 48 if (($last_year == 0) || ($rs->year() > $last_year)) $last_year = $rs->year(); 49 } 50 unset($rs); 67 51 68 52 # Liste des pages -- Doit être pris en charge plus tard par le plugin ? … … 395 379 dcPage::success(__('Menu items have been successfully updated.')); 396 380 } 397 398 381 if ($step) 399 382 { -
tests/functional/index.html
r1703 r1737 7 7 <script type="text/javascript" src="lib/jasmine.js"></script> 8 8 <script type="text/javascript" src="lib/jasmine-html.js"></script> 9 <script type="text/javascript" src="lib/jquery.js"></script> 9 <!-- use same jquery --> 10 <script type="text/javascript" src="../../admin/js/jquery/jquery.js"></script> 10 11 <script type="text/javascript" src="lib/jasmine-jquery.js"></script> 11 12 <script type="text/javascript" src="lib/jasmine-jquery-bootstrap.js"></script> … … 13 14 <script type="text/javascript" src="../../admin/js/_users_actions.js"></script> 14 15 <script type="text/javascript" src="../../admin/js/common.js"></script> 16 15 17 <script type="text/javascript" src="js/fix_include.js"></script> 16 18 17 <script type="text/javascript" src="spec/users_actions.js"></script> 19 <!-- jsUpload --> 20 <script type="text/javascript" src="../../admin/js/jsUpload/vendor/jquery.ui.widget.js"></script> 21 <script type="text/javascript" src="../../admin/js/jsUpload/tmpl.js"></script> 22 <script type="text/javascript" src="../../admin/js/jsUpload/template-upload.js"></script> 23 <script type="text/javascript" src="../../admin/js/jsUpload/template-download.js"></script> 24 <script type="text/javascript" src="../../admin/js/jsUpload/load-image.js"></script> 25 <script type="text/javascript" src="../../admin/js/jsUpload/jquery.iframe-transport.js"></script> 26 <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload.js"></script> 27 <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload-process.js"></script> 28 <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload-resize.js"></script> 29 <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload-ui.js"></script> 30 <script type="text/javascript" src="../../admin/js/_media.js"></script> 31 32 <!-- <script type="text/javascript" src="spec/users_actions.js"></script> --> 18 33 <script type="text/javascript" src="spec/toggle_with_legend.js"></script> 19 20 34 <script type="text/javascript" src="spec/common.js"></script> 35 <script type="text/javascript" src="spec/media_manager.js"></script> 36 37 <!-- page tabs --> 38 <script type="text/javascript" src="spec/page_tabs.js"></script> 39 21 40 </head> 22 41 <body> -
tests/functional/js/fix_include.js
r1703 r1724 10 10 dotclear.msg.confirm_delete_posts = 'confirm %s delete'; 11 11 dotclear.msg.confirm_delete_comments = 'confirm %s delete'; 12 13 dotclear.jsUpload = {msg:{}}; 14 dotclear.jsUpload.msg.cancel = 'cancel'; 15 dotclear.jsUpload.msg.send = 'send'; 16 dotclear.jsUpload.msg.error = 'error'; 17 dotclear.jsUpload.msg.file_successfully_uploaded = 'file succesfully uploaded'; 18 19 dotclear.msg.enhanced_uploader_activate = 'Temporarily activate enhanced uploader'; 20 dotclear.msg.enhanced_uploader_disable = 'Temporarily disable enhanced uploader'; 21 -
tests/functional/lib/jasmine-jquery-bootstrap.js
r1602 r1724 1 1 (function() { 2 jasmine.getFixtures().fixturesPath = 'fixtures'; 2 jasmine.getFixtures().fixturesPath = 'fixtures'; 3 jasmine.getStyleFixtures().fixturesPath = '../../admin/style'; 3 4 4 5 5 var jasmineEnv = jasmine.getEnv(); 6 jasmineEnv.updateInterval = 1000; 6 7 7 8 var htmlReporter = new jasmine.HtmlReporter(); 8 9 9 10 jasmineEnv.addReporter(htmlReporter); 10 11 11 12 return htmlReporter.specFilter(spec);13 12 jasmineEnv.specFilter = function(spec) { 13 return htmlReporter.specFilter(spec); 14 }; 14 15 15 16 var currentWindowOnload = window.onload; 16 17 17 window.onload = function() { 18 if (currentWindowOnload) { 19 currentWindowOnload(); 18 window.onload = function() { 19 if (currentWindowOnload) { 20 currentWindowOnload(); 21 } 22 execJasmine(); 23 }; 24 25 function execJasmine() { 26 jasmineEnv.execute(); 20 27 } 21 execJasmine();22 };23 24 function execJasmine() {25 jasmineEnv.execute();26 }27 28 28 29 })(); -
tests/functional/spec/common.js
r1703 r1724 1 1 describe("Others common methods (admin/js/common.js)", function() { 2 3 it("A confirm popup must appear if action is \"delete\" and at least on checkbox is checked", function() {4 5 6 7 8 9 2 describe("postsActionsHelper", function() { 3 it("A confirm popup must appear if action is \"delete\" and at least on checkbox is checked", function() { 4 loadFixtures('posts_list.html'); 5 dotclear.postsActionsHelper(); 6 7 spyOn(window, 'confirm').andReturn(false); 8 var submitCallback = jasmine.createSpy().andReturn(false); 9 $('#form-entries').submit(submitCallback); 10 10 11 12 11 $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 12 $('input[type="checkbox"][name="entries[]"][value="2"]').attr('checked', 'checked'); 13 13 14 $('#form-entries').trigger('submit'); 15 expect(window.confirm).toHaveBeenCalled(); 14 $('#form-entries').trigger('submit'); 15 expect(window.confirm).toHaveBeenCalled(); 16 }); 17 it("Confirm popup doesn't appear if action is \"delete\" but no checkbox is checked", function() { 18 loadFixtures('posts_list.html'); 19 dotclear.postsActionsHelper(); 20 21 spyOn(window, 'confirm').andReturn(false); 22 var submitCallback = jasmine.createSpy().andReturn(false); 23 $('#form-entries').submit(submitCallback); 24 25 $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 26 $('#form-entries').trigger('submit'); 27 expect(window.confirm).not.toHaveBeenCalled(); 28 }); 29 it("Others actions don't show confirm popup", function() { 30 loadFixtures('posts_list.html'); 31 dotclear.postsActionsHelper(); 32 33 spyOn(window, 'confirm').andReturn(false); 34 var submitCallback = jasmine.createSpy().andReturn(false); 35 $('#form-entries').submit(submitCallback); 36 37 $('select[name="action"] option[value="publish"]').attr('selected', 'selected'); 38 $('#form-entries').trigger('submit'); 39 expect(window.confirm).not.toHaveBeenCalled(); 40 }); 16 41 }); 17 it("Confirm popup doesn't appear if action is \"delete\" but no checkbox is checked", function() {18 loadFixtures('posts_list.html');19 dotclear.postsActionsHelper();20 21 spyOn(window, 'confirm').andReturn(false);22 var submitCallback = jasmine.createSpy().andReturn(false);23 $('#form-entries').submit(submitCallback);24 42 25 $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 26 $('#form-entries').trigger('submit'); 27 expect(window.confirm).not.toHaveBeenCalled(); 43 describe("commentsActionsHelper", function() { 44 it("A confirm popup must appear if action is \"delete\" and at least on checkbox is checked", function() { 45 loadFixtures('comments_list.html'); 46 dotclear.commentsActionsHelper(); 47 48 spyOn(window, 'confirm').andReturn(false); 49 var submitCallback = jasmine.createSpy().andReturn(false); 50 $('#form-comments').submit(submitCallback); 51 52 $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 53 $('input[type="checkbox"][name="comments[]"][value="2"]').attr('checked', 'checked'); 54 55 $('#form-comments').trigger('submit'); 56 expect(window.confirm).toHaveBeenCalled(); 57 }); 58 it("Confirm popup doesn't appear if action is \"delete\" but no checkbox is checked", function() { 59 loadFixtures('comments_list.html'); 60 dotclear.commentsActionsHelper(); 61 62 spyOn(window, 'confirm').andReturn(false); 63 var submitCallback = jasmine.createSpy().andReturn(false); 64 $('#form-comments').submit(submitCallback); 65 66 $('select[name="action"] option[value="delete"]').attr('selected', 'selected'); 67 $('#form-comments').trigger('submit'); 68 expect(window.confirm).not.toHaveBeenCalled(); 69 }); 70 it("Others actions don't show confirm popup", function() { 71 loadFixtures('comments_list.html'); 72 dotclear.commentsActionsHelper(); 73 74 spyOn(window, 'confirm').andReturn(false); 75 var submitCallback = jasmine.createSpy().andReturn(false); 76 $('#form-comments').submit(submitCallback); 77 78 $('select[name="action"] option[value="publish"]').attr('selected', 'selected'); 79 $('#form-comments').trigger('submit'); 80 expect(window.confirm).not.toHaveBeenCalled(); 81 }); 28 82 }); 29 it("Others actions don't show confirm popup", function() {30 loadFixtures('posts_list.html');31 dotclear.postsActionsHelper();32 33 spyOn(window, 'confirm').andReturn(false);34 var submitCallback = jasmine.createSpy().andReturn(false);35 $('#form-entries').submit(submitCallback);36 37 $('select[name="action"] option[value="publish"]').attr('selected', 'selected');38 $('#form-entries').trigger('submit');39 expect(window.confirm).not.toHaveBeenCalled();40 });41 });42 43 describe("commentsActionsHelper", function() {44 it("A confirm popup must appear if action is \"delete\" and at least on checkbox is checked", function() {45 loadFixtures('comments_list.html');46 dotclear.commentsActionsHelper();47 48 spyOn(window, 'confirm').andReturn(false);49 var submitCallback = jasmine.createSpy().andReturn(false);50 $('#form-comments').submit(submitCallback);51 52 $('select[name="action"] option[value="delete"]').attr('selected', 'selected');53 $('input[type="checkbox"][name="comments[]"][value="2"]').attr('checked', 'checked');54 55 $('#form-comments').trigger('submit');56 expect(window.confirm).toHaveBeenCalled();57 });58 it("Confirm popup doesn't appear if action is \"delete\" but no checkbox is checked", function() {59 loadFixtures('comments_list.html');60 dotclear.commentsActionsHelper();61 62 spyOn(window, 'confirm').andReturn(false);63 var submitCallback = jasmine.createSpy().andReturn(false);64 $('#form-comments').submit(submitCallback);65 66 $('select[name="action"] option[value="delete"]').attr('selected', 'selected');67 $('#form-comments').trigger('submit');68 expect(window.confirm).not.toHaveBeenCalled();69 });70 it("Others actions don't show confirm popup", function() {71 loadFixtures('comments_list.html');72 dotclear.commentsActionsHelper();73 74 spyOn(window, 'confirm').andReturn(false);75 var submitCallback = jasmine.createSpy().andReturn(false);76 $('#form-comments').submit(submitCallback);77 78 $('select[name="action"] option[value="publish"]').attr('selected', 'selected');79 $('#form-comments').trigger('submit');80 expect(window.confirm).not.toHaveBeenCalled();81 });82 });83 83 }); -
tests/functional/spec/toggle_with_legend.js
r1703 r1724 1 1 describe("toggleWithLegend method (admin/js/common.js)", function() { 2 3 loadFixtures('menu.html');4 $('#post_status').parent().toggleWithLegend($('#post_status'),{ });2 it("Click arrow must make target visible", function() { 3 loadFixtures('menu.html'); 4 $('#post_status').parent().toggleWithLegend($('#post_status'),{ }); 5 5 6 var $arrow = $('#post_status').parent().find('img');7 $arrow.click();8 expect($('#post_status')).toBeVisible();9 10 11 loadFixtures('menu.html');12 $('#post_status').parent().toggleWithLegend($('#post_status'),{ });6 var $arrow = $('#post_status').parent().find('img'); 7 $arrow.click(); 8 expect($('#post_status')).toBeVisible(); 9 }); 10 it("Click arrow twice,must make target visible and after second click hidden", function() { 11 loadFixtures('menu.html'); 12 $('#post_status').parent().toggleWithLegend($('#post_status'),{ }); 13 13 14 var $arrow = $('#post_status').parent().find('img');15 $arrow.click();16 expect($('#post_status')).toBeVisible();14 var $arrow = $('#post_status').parent().find('img'); 15 $arrow.click(); 16 expect($('#post_status')).toBeVisible(); 17 17 18 $arrow.click();19 expect($('#post_status')).toBeHidden();20 21 22 loadFixtures('menu.html');23 $('#post_status').parent().toggleWithLegend($('#post_status'),{ });18 $arrow.click(); 19 expect($('#post_status')).toBeHidden(); 20 }); 21 it("Chick target must not hide target", function() { 22 loadFixtures('menu.html'); 23 $('#post_status').parent().toggleWithLegend($('#post_status'),{ }); 24 24 25 var $arrow = $('#post_status').parent().find('img');26 $arrow.click();27 expect($('#post_status')).toBeVisible();25 var $arrow = $('#post_status').parent().find('img'); 26 $arrow.click(); 27 expect($('#post_status')).toBeVisible(); 28 28 29 $('#post_status option[value="-2"]').attr('selected', 'selected');30 expect($('#post_status')).toBeVisible();31 32 33 loadFixtures('menu.html');34 var $label = $('#post_status').parent().children('label');35 $label.toggleWithLegend($('#post_status'),{'legend_click':true, a_container:false});29 $('#post_status option[value="-2"]').attr('selected', 'selected'); 30 expect($('#post_status')).toBeVisible(); 31 }); 32 it("Chick target must not hide target, when legend_click is true", function() { 33 loadFixtures('menu.html'); 34 var $label = $('#post_status').parent().children('label'); 35 $label.toggleWithLegend($('#post_status'),{'legend_click':true, a_container:false}); 36 36 37 $label.click();38 expect($('#post_status')).toBeVisible();37 $label.click(); 38 expect($('#post_status')).toBeVisible(); 39 39 40 var $arrow = $('#post_status').parent().find('img');41 $arrow.click();42 expect($('#post_status')).toBeVisible();40 var $arrow = $('#post_status').parent().find('img'); 41 $arrow.click(); 42 expect($('#post_status')).toBeVisible(); 43 43 44 $('#post_status').val(-2).trigger('change');45 expect($('#post_status')).toBeVisible();46 44 $('#post_status').val(-2).trigger('change'); 45 expect($('#post_status')).toBeVisible(); 46 }); 47 47 }); -
tests/functional/spec/users_actions.js
r1703 r1724 1 1 describe("updatePermissionsForm method (admin/js/_users_actions.js)", function() { 2 3 loadFixtures('normal.html');4 $('#permissions-form').updatePermissionsForm();5 var permissions = ['usage','publish','delete','contentadmin','categories'];2 it("Click admin persmission must checked all associated permissions", function() { 3 loadFixtures('normal.html'); 4 $('#permissions-form').updatePermissionsForm(); 5 var permissions = ['usage','publish','delete','contentadmin','categories']; 6 6 7 $('input[name="perm[default][admin]"]').click();8 for (var _i=0,_len=permissions.length;_i<_len;_i++) {9 expect($('input[name="perm[default]['+permissions[_i]+']"]')).toBeChecked();10 expect($('input[name="perm[default]['+permissions[_i]+']"]')).toBeDisabled();11 }12 7 $('input[name="perm[default][admin]"]').click(); 8 for (var _i=0,_len=permissions.length;_i<_len;_i++) { 9 expect($('input[name="perm\\[default\\]\\['+permissions[_i]+'\\]"]')).toBeChecked(); 10 expect($('input[name="perm\\[default\\]\\['+permissions[_i]+'\\]"]')).toBeDisabled(); 11 } 12 }); 13 13 14 15 loadFixtures('normal.html');16 $('#permissions-form').updatePermissionsForm();17 var permissions = ['usage','publish','delete'];14 it("Click contentadmin persmission must checked all associated permissions", function() { 15 loadFixtures('normal.html'); 16 $('#permissions-form').updatePermissionsForm(); 17 var permissions = ['usage','publish','delete']; 18 18 19 $('input[name="perm[default][contentadmin]"]').click();20 for (var _i=0,_len=permissions.length;_i<_len;_i++) {21 22 23 }24 19 $('input[name="perm[default][contentadmin]"]').click(); 20 for (var _i=0,_len=permissions.length;_i<_len;_i++) { 21 expect($('input[name="perm[default]['+permissions[_i]+']"]')).toBeChecked(); 22 expect($('input[name="perm[default]['+permissions[_i]+']"]')).toBeDisabled(); 23 } 24 }); 25 25 });
Note: See TracChangeset
for help on using the changeset viewer.