Ported Franck & Kozlika updates for user prefs, dedicated branch
|
@ -1,3 +1,9 @@
|
||||||
|
Dotclear 2.2.3 - 2011-04-01
|
||||||
|
===========================================================
|
||||||
|
* Security fix in media manager. Thx to Raphaël
|
||||||
|
* Bugfix : 2.2.2 was preventing manual thumbnail regeneration.
|
||||||
|
* Database handling bugfixes
|
||||||
|
|
||||||
Dotclear 2.2.2 - 2011-01-17
|
Dotclear 2.2.2 - 2011-01-17
|
||||||
===========================================================
|
===========================================================
|
||||||
* Bugfix: 2.2.1 was blocking new installations
|
* Bugfix: 2.2.1 was blocking new installations
|
||||||
|
|
2
README
|
@ -5,7 +5,7 @@ WHAT YOU NEED TO RUN DOTCLEAR
|
||||||
In order to run Dotclear you need:
|
In order to run Dotclear you need:
|
||||||
|
|
||||||
* A web server (Apache, Cheerokee, lightHttpd, etc.)
|
* A web server (Apache, Cheerokee, lightHttpd, etc.)
|
||||||
* PHP 5 with the following modules:
|
* PHP 5.2 with the following modules:
|
||||||
* mbstring
|
* mbstring
|
||||||
* iconv
|
* iconv
|
||||||
* simplexml
|
* simplexml
|
||||||
|
|
|
@ -62,7 +62,7 @@ if (!$core->error->flag())
|
||||||
'<div>'.$core->formNonce().'</div>'.
|
'<div>'.$core->formNonce().'</div>'.
|
||||||
'<p><label>'.__('Your password:').' '.
|
'<p><label>'.__('Your password:').' '.
|
||||||
form::password('pwd',20,255).'</label></p>'.
|
form::password('pwd',20,255).'</label></p>'.
|
||||||
'<p><input type="submit" name="del" value="'.__('Delete this blog').'" />'.
|
'<p><input type="submit" class="delete" name="del" value="'.__('Delete this blog').'" />'.
|
||||||
form::hidden('blog_id',$blog_id).'</p>'.
|
form::hidden('blog_id',$blog_id).'</p>'.
|
||||||
'</form>';
|
'</form>';
|
||||||
}
|
}
|
||||||
|
|
|
@ -458,7 +458,7 @@ if ($blog_id)
|
||||||
{
|
{
|
||||||
echo
|
echo
|
||||||
'<form action="blog_del.php" method="post">'.
|
'<form action="blog_del.php" method="post">'.
|
||||||
'<p><input type="submit" value="'.__('Delete this blog').'" />'.
|
'<p><input type="submit" class="delete" value="'.__('Delete this blog').'" />'.
|
||||||
form::hidden(array('blog_id'),$blog_id).
|
form::hidden(array('blog_id'),$blog_id).
|
||||||
$core->formNonce().'</p>'.
|
$core->formNonce().'</p>'.
|
||||||
'</form>';
|
'</form>';
|
||||||
|
|
|
@ -267,7 +267,7 @@ if (!$theme_conf_mode)
|
||||||
'<p class="col"><input type="submit" name="select" value="'.__('use selected theme').'" /></p>';
|
'<p class="col"><input type="submit" name="select" value="'.__('use selected theme').'" /></p>';
|
||||||
|
|
||||||
if ($can_install) {
|
if ($can_install) {
|
||||||
echo '<p class="col right"><input type="submit" name="remove" value="'.__('delete selected theme').'" /></p>';
|
echo '<p class="col right"><input type="submit" class="delete" name="remove" value="'.__('delete selected theme').'" /></p>';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
@ -279,7 +279,7 @@ if (!$theme_conf_mode)
|
||||||
if ($can_install)
|
if ($can_install)
|
||||||
{
|
{
|
||||||
echo
|
echo
|
||||||
'<div class="multi-part" id="add-theme" title="'.__('Install or upgrade a theme').'">';
|
'<div class="multi-part clear" id="add-theme" title="'.__('Install or upgrade a theme').'">';
|
||||||
|
|
||||||
if ($is_writable)
|
if ($is_writable)
|
||||||
{
|
{
|
||||||
|
|
|
@ -83,7 +83,7 @@ echo '<h2>'.__('List of blogs').'</h2>';
|
||||||
if (!$core->error->flag())
|
if (!$core->error->flag())
|
||||||
{
|
{
|
||||||
if ($core->auth->isSuperAdmin()) {
|
if ($core->auth->isSuperAdmin()) {
|
||||||
echo '<p><strong><a href="blog.php">'.__('Create a new blog').'</a></strong></p>';
|
echo '<p class="top-add"><a class="button add" href="blog.php"><img src="images/add.png" alt="" />'.__('Create a new blog').'</a></strong></p>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$show_filters) {
|
if (!$show_filters) {
|
||||||
|
@ -109,7 +109,7 @@ if (!$core->error->flag())
|
||||||
'</label></p>'.
|
'</label></p>'.
|
||||||
'<p><label class="classic">'. form::field('nb',3,3,$nb_per_page).' '.
|
'<p><label class="classic">'. form::field('nb',3,3,$nb_per_page).' '.
|
||||||
__('Blogs per page').'</label> '.
|
__('Blogs per page').'</label> '.
|
||||||
'<input type="submit" value="'.__('filter').'" /></p>'.
|
'<input type="submit" value="'.__('Apply filters').'" /></p>'.
|
||||||
'</div>'.
|
'</div>'.
|
||||||
|
|
||||||
'<br class="clear" />'. //Opera sucks
|
'<br class="clear" />'. //Opera sucks
|
||||||
|
|
|
@ -225,7 +225,7 @@ if ($comment_id)
|
||||||
'<input type="submit" accesskey="s" name="update" value="'.__('save').'" /> ';
|
'<input type="submit" accesskey="s" name="update" value="'.__('save').'" /> ';
|
||||||
|
|
||||||
if ($can_delete) {
|
if ($can_delete) {
|
||||||
echo '<input type="submit" name="delete" value="'.__('delete').'" />';
|
echo '<input type="submit" class="delete" name="delete" value="'.__('delete').'" />';
|
||||||
}
|
}
|
||||||
echo
|
echo
|
||||||
'</p>'.
|
'</p>'.
|
||||||
|
|
|
@ -184,7 +184,7 @@ if (!$core->error->flag())
|
||||||
'<label>'.__('IP address:').' '.
|
'<label>'.__('IP address:').' '.
|
||||||
form::field('ip',20,39,html::escapeHTML($ip)).
|
form::field('ip',20,39,html::escapeHTML($ip)).
|
||||||
'</label></p>'.
|
'</label></p>'.
|
||||||
'<p><input type="submit" value="'.__('filter').'" /></p>'.
|
'<p><input type="submit" value="'.__('Apply filters').'" /></p>'.
|
||||||
'</div>'.
|
'</div>'.
|
||||||
|
|
||||||
'</div>'.
|
'</div>'.
|
||||||
|
|
After Width: | Height: | Size: 529 B |
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 915 B |
After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 762 B After Width: | Height: | Size: 706 B |
After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 410 B After Width: | Height: | Size: 607 B |
Before Width: | Height: | Size: 700 B After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 571 B |
Before Width: | Height: | Size: 393 B After Width: | Height: | Size: 256 B |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 418 B After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 467 B After Width: | Height: | Size: 525 B |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 738 B After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 564 B After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 738 B |
After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 706 B After Width: | Height: | Size: 635 B |
Before Width: | Height: | Size: 575 B After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 671 B |
After Width: | Height: | Size: 965 B |
|
@ -45,25 +45,46 @@ $plugins_install = $core->plugins->installModules();
|
||||||
# Dashboard icons
|
# Dashboard icons
|
||||||
$__dashboard_icons = new ArrayObject();
|
$__dashboard_icons = new ArrayObject();
|
||||||
|
|
||||||
|
# Dashboard favorites
|
||||||
$post_count = $core->blog->getPosts(array(),true)->f(0);
|
$post_count = $core->blog->getPosts(array(),true)->f(0);
|
||||||
$str_entries = ($post_count > 1) ? __('%d entries') : __('%d entry');
|
$str_entries = ($post_count > 1) ? __('%d entries') : __('%d entry');
|
||||||
|
|
||||||
$comment_count = $core->blog->getComments(array(),true)->f(0);
|
$comment_count = $core->blog->getComments(array(),true)->f(0);
|
||||||
$str_comments = ($comment_count > 1) ? __('%d comments') : __('%d comment');
|
$str_comments = ($comment_count > 1) ? __('%d comments') : __('%d comment');
|
||||||
|
|
||||||
$__dashboard_icons['new_post'] = new ArrayObject(array(__('New entry'),'post.php','images/menu/edit-b.png'));
|
$ws = $core->auth->user_prefs->addWorkspace('favorites');
|
||||||
$__dashboard_icons['posts'] = new ArrayObject(array(sprintf($str_entries,$post_count),'posts.php','images/menu/entries-b.png'));
|
$count = 0;
|
||||||
$__dashboard_icons['comments'] = new ArrayObject(array(sprintf($str_comments,$comment_count),'comments.php','images/menu/comments-b.png'));
|
foreach ($ws->dumpPrefs() as $k => $v) {
|
||||||
$__dashboard_icons['prefs'] = new ArrayObject(array(__('User preferences'),'preferences.php','images/menu/user-pref-b.png'));
|
// User favorites only
|
||||||
|
if (!$v['global']) {
|
||||||
if ($core->auth->check('admin',$core->blog->id))
|
$fav = unserialize($v['value']);
|
||||||
{
|
if (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)) {
|
||||||
$__dashboard_icons['blog_pref'] = new ArrayObject(array(__('Blog settings'),'blog_pref.php','images/menu/blog-pref-b.png'));
|
$count++;
|
||||||
$__dashboard_icons['blog_theme'] = new ArrayObject(array(__('Blog appearance'),'blog_theme.php','images/menu/blog-theme-b.png'));
|
$title = ($fav['name'] == 'posts' ? sprintf($str_entries,$post_count) :
|
||||||
|
($fav['name'] == 'comments' ? sprintf($str_comments,$comment_count) : $fav['title']));
|
||||||
|
$__dashboard_icons[$fav['name']] = new ArrayObject(array($title,$fav['url'],$fav['large-icon']));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$count) {
|
||||||
|
// Global favorites if any
|
||||||
|
foreach ($ws->dumpPrefs() as $k => $v) {
|
||||||
|
$fav = unserialize($v['value']);
|
||||||
|
if (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)) {
|
||||||
|
$count++;
|
||||||
|
$title = ($fav['name'] == 'posts' ? sprintf($str_entries,$post_count) :
|
||||||
|
($fav['name'] == 'comments' ? sprintf($str_comments,$comment_count) : $fav['title']));
|
||||||
|
$__dashboard_icons[$fav['name']] = new ArrayObject(array($title,$fav['url'],$fav['large-icon']));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$count) {
|
||||||
|
// No user or global favorites, add "user pref" and "new entry" fav
|
||||||
|
if ($core->auth->check('usage,contentadmin',$core->blog->id)) {
|
||||||
|
$__dashboard_icons['new_post'] = new ArrayObject(array(__('New entry'),'post.php','images/menu/edit-b.png'));
|
||||||
|
}
|
||||||
|
$__dashboard_icons['prefs'] = new ArrayObject(array(__('My preferences'),'preferences.php','images/menu/user-pref-b.png'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$core->callBehavior('adminDashboardIcons', $core, $__dashboard_icons);
|
|
||||||
|
|
||||||
|
|
||||||
# Latest news for dashboard
|
# Latest news for dashboard
|
||||||
$__dashboard_items = new ArrayObject(array(new ArrayObject,new ArrayObject));
|
$__dashboard_items = new ArrayObject(array(new ArrayObject,new ArrayObject));
|
||||||
|
@ -111,7 +132,7 @@ try
|
||||||
'<dd>'.dt::dt2str('%d %B %Y',$item->pubdate,'Europe/Paris').'</dd>';
|
'<dd>'.dt::dt2str('%d %B %Y',$item->pubdate,'Europe/Paris').'</dd>';
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
if ($i > 7) { break; }
|
if ($i > 3) { break; }
|
||||||
}
|
}
|
||||||
$latest_news .= '</dl>';
|
$latest_news .= '</dl>';
|
||||||
$__dashboard_items[1][] = $latest_news;
|
$__dashboard_items[1][] = $latest_news;
|
||||||
|
|
|
@ -31,6 +31,7 @@ if ($dlang != 'en')
|
||||||
l10n::init();
|
l10n::init();
|
||||||
l10n::set(dirname(__FILE__).'/../../locales/'.$dlang.'/date');
|
l10n::set(dirname(__FILE__).'/../../locales/'.$dlang.'/date');
|
||||||
l10n::set(dirname(__FILE__).'/../../locales/'.$dlang.'/main');
|
l10n::set(dirname(__FILE__).'/../../locales/'.$dlang.'/main');
|
||||||
|
l10n::set(dirname(__FILE__).'/../../locales/'.$dlang.'/plugins');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!defined('DC_MASTER_KEY') || DC_MASTER_KEY == '') {
|
if (!defined('DC_MASTER_KEY') || DC_MASTER_KEY == '') {
|
||||||
|
@ -184,6 +185,45 @@ if ($can_install && !empty($_POST))
|
||||||
$core->plugins->loadModules(DC_PLUGINS_ROOT);
|
$core->plugins->loadModules(DC_PLUGINS_ROOT);
|
||||||
$plugins_install = $core->plugins->installModules();
|
$plugins_install = $core->plugins->installModules();
|
||||||
|
|
||||||
|
# Add default favorites
|
||||||
|
$core->auth->user_prefs->addWorkspace('favorites');
|
||||||
|
|
||||||
|
$init_fav = array();
|
||||||
|
|
||||||
|
$init_fav['new_post'] = array('new_post',__('New entry'),'post.php',
|
||||||
|
'images/menu/edit.png','images/menu/edit-b.png',
|
||||||
|
'usage,contentadmin',null,'menu-new-post');
|
||||||
|
$init_fav['posts'] = array('posts',__('Entries'),'posts.php',
|
||||||
|
'images/menu/entries.png','images/menu/entries-b.png',
|
||||||
|
'usage,contentadmin',null,null);
|
||||||
|
$init_fav['comments'] = array('comments',__('Comments'),'comments.php',
|
||||||
|
'images/menu/comments.png','images/menu/comments-b.png',
|
||||||
|
'usage,contentadmin',null,null);
|
||||||
|
$init_fav['prefs'] = array('prefs',__('My preferences'),'preferences.php',
|
||||||
|
'images/menu/user-pref.png','images/menu/user-pref-b.png',
|
||||||
|
'*',null,null);
|
||||||
|
$init_fav['blog_pref'] = array('blog_pref',__('Blog settings'),'blog_pref.php',
|
||||||
|
'images/menu/blog-pref.png','images/menu/blog-pref-b.png',
|
||||||
|
'admin',null,null);
|
||||||
|
$init_fav['blog_theme'] = array('blog_theme',__('Blog appearance'),'blog_theme.php',
|
||||||
|
'images/menu/themes.png','images/menu/blog-theme-b.png',
|
||||||
|
'admin',null,null);
|
||||||
|
|
||||||
|
$init_fav['pages'] = array('pages',__('Pages'),'plugin.php?p=pages',
|
||||||
|
'index.php?pf=pages/icon.png','index.php?pf=pages/icon-big.png',
|
||||||
|
'contentadmin,pages',null,null);
|
||||||
|
$init_fav['blogroll'] = array('blogroll',__('Blogroll'),'plugin.php?p=blogroll',
|
||||||
|
'index.php?pf=blogroll/icon-small.png','index.php?pf=blogroll/icon.png',
|
||||||
|
'usage,contentadmin',null,null);
|
||||||
|
|
||||||
|
$count = 0;
|
||||||
|
foreach ($init_fav as $k => $f) {
|
||||||
|
$t = array('name' => $f[0],'title' => $f[1],'url' => $f[2], 'small-icon' => $f[3],
|
||||||
|
'large-icon' => $f[4],'permissions' => $f[5],'id' => $f[6],'class' => $f[7]);
|
||||||
|
$core->auth->user_prefs->favorites->put(sprintf("g%03s",$count),serialize($t),'string',null,true,true);
|
||||||
|
$count++;
|
||||||
|
}
|
||||||
|
|
||||||
$step = 1;
|
$step = 1;
|
||||||
}
|
}
|
||||||
catch (Exception $e)
|
catch (Exception $e)
|
||||||
|
|
|
@ -45,7 +45,7 @@ $(function() {
|
||||||
actions.append(select).append(' ');
|
actions.append(select).append(' ');
|
||||||
}
|
}
|
||||||
if (submit_r.length > 0 && $('input:radio',info).attr('id') != 'theme_default') {
|
if (submit_r.length > 0 && $('input:radio',info).attr('id') != 'theme_default') {
|
||||||
var remove = $('<a href="#" class="button">' + dotclear.msg.remove_this_theme + '</a>');
|
var remove = $('<a href="#" class="button delete">' + dotclear.msg.remove_this_theme + '</a>');
|
||||||
remove.click(function() {
|
remove.click(function() {
|
||||||
var t_name = $(this).parents('#theme-box').find('div.theme-info h3:first').text();
|
var t_name = $(this).parents('#theme-box').find('div.theme-info h3:first').text();
|
||||||
t_name = $.trim(t_name);
|
t_name = $.trim(t_name);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $(function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
if ($('input[name=save-publish]',f).length > 0) {
|
if ($('input[name=save-publish]',f).length > 0) {
|
||||||
var btn = $('<input type="submit" class="submit" value="' + $('input[name=save-publish]',f).val() + '" tabindex="3" />');
|
var btn = $('<input type="submit" value="' + $('input[name=save-publish]',f).val() + '" tabindex="3" />');
|
||||||
$('input[name=save-publish]',f).remove();
|
$('input[name=save-publish]',f).remove();
|
||||||
$('input[name=save]',f).after(btn).after(' ');
|
$('input[name=save]',f).after(btn).after(' ');
|
||||||
btn.click(function() {
|
btn.click(function() {
|
||||||
|
|
|
@ -195,7 +195,7 @@ jQuery.fn.helpViewer = function() {
|
||||||
this.find('h3:first').nextAll('*:not(h3)').hide();
|
this.find('h3:first').nextAll('*:not(h3)').hide();
|
||||||
sizeBox();
|
sizeBox();
|
||||||
|
|
||||||
var img = $('<img src="images/help.png" alt="'+dotclear.msg.help+'" title="'+dotclear.msg.help+'" id="help-button" />');
|
var img = $('<span id="help-button">'+dotclear.msg.help+'</span>');
|
||||||
var select = $();
|
var select = $();
|
||||||
img.click(function() { return toggle(); });
|
img.click(function() { return toggle(); });
|
||||||
|
|
||||||
|
@ -338,6 +338,9 @@ $(function() {
|
||||||
$('#plugins-menu h3:first').toggleWithLegend($('#plugins-menu ul:first'),
|
$('#plugins-menu h3:first').toggleWithLegend($('#plugins-menu ul:first'),
|
||||||
$.extend({cookie:'dc_plugins_menu'},menu_settings)
|
$.extend({cookie:'dc_plugins_menu'},menu_settings)
|
||||||
);
|
);
|
||||||
|
$('#favorites-menu h3:first').toggleWithLegend($('#favorites-menu ul:first'),
|
||||||
|
$.extend({cookie:'dc_favorites_menu'},menu_settings)
|
||||||
|
);
|
||||||
|
|
||||||
$('#help').helpViewer();
|
$('#help').helpViewer();
|
||||||
|
|
||||||
|
|
|
@ -448,19 +448,19 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
createControls: function() {
|
createControls: function() {
|
||||||
this.ctrl.btn_browse = $('<a href="#"> </a>').click(function() {
|
this.ctrl.btn_browse = $('<a href="#" class="button"> </a>').click(function() {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
this.ctrl.btn_cancel = $('<a href="#">' + this.locales.cancel + '</a>').click(function() {
|
this.ctrl.btn_cancel = $('<a href="#" class="button">' + this.locales.cancel + '</a>').click(function() {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
this.ctrl.btn_clean = $('<a href="#">' + this.locales.clean + '</a>').click(function() {
|
this.ctrl.btn_clean = $('<a href="#" class="button">' + this.locales.clean + '</a>').click(function() {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
this.ctrl.btn_upload = $('<a href="#">' + this.locales.upload + '</a>').click(function() {
|
this.ctrl.btn_upload = $('<a href="#" class="button">' + this.locales.upload + '</a>').click(function() {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,7 @@ if (!$core->error->flag())
|
||||||
'</label></p>'.
|
'</label></p>'.
|
||||||
'<p><label class="classic">'. form::field('nb',3,3,$nb_per_page).' '.
|
'<p><label class="classic">'. form::field('nb',3,3,$nb_per_page).' '.
|
||||||
__('Entries per page').'</label> '.
|
__('Entries per page').'</label> '.
|
||||||
'<input type="submit" value="'.__('filter').'" />'.
|
'<input type="submit" value="'.__('Apply filters').'" />'.
|
||||||
$hidden_fields.'</p>'.
|
$hidden_fields.'</p>'.
|
||||||
'</div>'.
|
'</div>'.
|
||||||
|
|
||||||
|
|
|
@ -253,7 +253,7 @@ if (!empty($p_available))
|
||||||
'<div>'.
|
'<div>'.
|
||||||
$core->formNonce().
|
$core->formNonce().
|
||||||
form::hidden(array('plugin_id'),html::escapeHTML($k)).
|
form::hidden(array('plugin_id'),html::escapeHTML($k)).
|
||||||
($is_deactivable ? '<input type="submit" class="activate" name="deactivate" value="'.__('Deactivate').'" /> ' : '').
|
($is_deactivable ? '<input type="submit" name="deactivate" value="'.__('Deactivate').'" /> ' : '').
|
||||||
($is_deletable ? '<input type="submit" class="delete" name="delete" value="'.__('Delete').'" /> ' : '').
|
($is_deletable ? '<input type="submit" class="delete" name="delete" value="'.__('Delete').'" /> ' : '').
|
||||||
'</div>'.
|
'</div>'.
|
||||||
'</form>';
|
'</form>';
|
||||||
|
@ -296,7 +296,7 @@ if (!empty($p_disabled))
|
||||||
$core->formNonce().
|
$core->formNonce().
|
||||||
form::hidden(array('plugin_id'),html::escapeHTML($k)).
|
form::hidden(array('plugin_id'),html::escapeHTML($k)).
|
||||||
form::hidden(array('deactivated'),1).
|
form::hidden(array('deactivated'),1).
|
||||||
($is_activable ? '<input type="submit" class="activate" name="activate" value="'.__('Activate').'" /> ' : '').
|
($is_activable ? '<input type="submit" value="'.__('Activate').'" /> ' : '').
|
||||||
($is_deletable ? '<input type="submit" class="delete" name="delete" value="'.__('Delete').'" /> ' : '').
|
($is_deletable ? '<input type="submit" class="delete" name="delete" value="'.__('Delete').'" /> ' : '').
|
||||||
'</div>'.
|
'</div>'.
|
||||||
'</form>';
|
'</form>';
|
||||||
|
|
|
@ -476,7 +476,7 @@ if ($can_edit_post)
|
||||||
($post_id ? form::hidden('id',$post_id) : '').
|
($post_id ? form::hidden('id',$post_id) : '').
|
||||||
'<input type="submit" value="'.__('save').' (s)" tabindex="4" '.
|
'<input type="submit" value="'.__('save').' (s)" tabindex="4" '.
|
||||||
'accesskey="s" name="save" /> '.
|
'accesskey="s" name="save" /> '.
|
||||||
($can_delete ? '<input type="submit" value="'.__('delete').'" name="delete" />' : '').
|
($can_delete ? '<input type="submit" class="delete" value="'.__('delete').'" name="delete" />' : '').
|
||||||
$core->formNonce().
|
$core->formNonce().
|
||||||
'</p>';
|
'</p>';
|
||||||
|
|
||||||
|
|
|
@ -229,7 +229,9 @@ dcPage::open(__('Entries'),$starting_script);
|
||||||
|
|
||||||
if (!$core->error->flag())
|
if (!$core->error->flag())
|
||||||
{
|
{
|
||||||
echo '<h2>'.html::escapeHTML($core->blog->name).' › '.__('Entries').'</h2>';
|
echo
|
||||||
|
'<h2>'.html::escapeHTML($core->blog->name).' › '.__('Entries').'</h2>'.
|
||||||
|
'<p class="top-add"><a class="button add" href="post.php"><img src="images/add.png" alt="" /> '.__('New entry').'</a></p>';
|
||||||
|
|
||||||
if (!$show_filters) {
|
if (!$show_filters) {
|
||||||
echo '<p><a id="filter-control" class="form-control" href="#">'.
|
echo '<p><a id="filter-control" class="form-control" href="#">'.
|
||||||
|
@ -264,8 +266,8 @@ if (!$core->error->flag())
|
||||||
'<label>'.__('Sort:').
|
'<label>'.__('Sort:').
|
||||||
form::combo('order',$order_combo,$order).'</label></p>'.
|
form::combo('order',$order_combo,$order).'</label></p>'.
|
||||||
'<p><label class="classic">'. form::field('nb',3,3,$nb_per_page).' '.
|
'<p><label class="classic">'. form::field('nb',3,3,$nb_per_page).' '.
|
||||||
__('Entries per page').'</label> '.
|
__('Entries per page').'</label></p> '.
|
||||||
'<input type="submit" value="'.__('filter').'" /></p>'.
|
'<p><input type="submit" value="'.__('Apply filters').'" /></p>'.
|
||||||
'</div>'.
|
'</div>'.
|
||||||
'</div>'.
|
'</div>'.
|
||||||
'<br class="clear" />'. //Opera sucks
|
'<br class="clear" />'. //Opera sucks
|
||||||
|
|
|
@ -14,7 +14,7 @@ require dirname(__FILE__).'/../inc/admin/prepend.php';
|
||||||
|
|
||||||
dcPage::check('usage,contentadmin');
|
dcPage::check('usage,contentadmin');
|
||||||
|
|
||||||
$page_title = __('User preferences');
|
$page_title = __('My preferences');
|
||||||
|
|
||||||
$user_name = $core->auth->getInfo('user_name');
|
$user_name = $core->auth->getInfo('user_name');
|
||||||
$user_firstname = $core->auth->getInfo('user_firstname');
|
$user_firstname = $core->auth->getInfo('user_firstname');
|
||||||
|
@ -27,6 +27,12 @@ $user_post_status = $core->auth->getInfo('user_post_status');
|
||||||
|
|
||||||
$user_options = $core->auth->getOptions();
|
$user_options = $core->auth->getOptions();
|
||||||
|
|
||||||
|
$default_tab = 'user-profile';
|
||||||
|
|
||||||
|
if (!empty($_GET['append']) || !empty($_GET['removed']) || !empty($_GET['neworder'])) {
|
||||||
|
$default_tab = 'user-favorites';
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($core->getFormaters() as $v) {
|
foreach ($core->getFormaters() as $v) {
|
||||||
$formaters_combo[$v] = $v;
|
$formaters_combo[$v] = $v;
|
||||||
}
|
}
|
||||||
|
@ -103,11 +109,120 @@ if (isset($_POST['user_name']))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Add selected favorites
|
||||||
|
if (!empty($_POST['appendaction']) && !empty($_POST['append'])) {
|
||||||
|
$ws = $core->auth->user_prefs->addWorkspace('favorites');
|
||||||
|
$user_favs = $ws->DumpLocalPrefs();
|
||||||
|
$count = count($user_favs);
|
||||||
|
foreach ($_POST['append'] as $k => $v)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$found = false;
|
||||||
|
foreach ($user_favs as $f) {
|
||||||
|
$f = unserialize($f['value']);
|
||||||
|
if ($f['name'] == $v) {
|
||||||
|
$found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$found) {
|
||||||
|
$uid = sprintf("u%03s",$count);
|
||||||
|
$fav = array('name' => $_fav[$v][0],'title' => $_fav[$v][1],'url' => $_fav[$v][2],'small-icon' => $_fav[$v][3],
|
||||||
|
'large-icon' => $_fav[$v][4],'permissions' => $_fav[$v][5],'id' => $_fav[$v][6],'class' => $_fav[$v][7]);
|
||||||
|
$core->auth->user_prefs->favorites->put($uid,serialize($fav),'string');
|
||||||
|
$count++;
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$core->error->add($e->getMessage());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$core->error->flag()) {
|
||||||
|
http::redirect('preferences.php?append=1');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Delete selected favorites
|
||||||
|
if (!empty($_POST['removeaction']) && !empty($_POST['remove'])) {
|
||||||
|
$ws = $core->auth->user_prefs->addWorkspace('favorites');
|
||||||
|
foreach ($_POST['remove'] as $k => $v)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$core->auth->user_prefs->favorites->drop($v);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$core->error->add($e->getMessage());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Update pref_id values
|
||||||
|
try {
|
||||||
|
$user_favs = $ws->DumpLocalPrefs();
|
||||||
|
foreach ($user_favs as $k => $v)
|
||||||
|
{
|
||||||
|
$core->auth->user_prefs->favorites->drop($k);
|
||||||
|
}
|
||||||
|
$count = 0;
|
||||||
|
foreach ($user_favs as $k => $v)
|
||||||
|
{
|
||||||
|
$uid = sprintf("u%03s",$count);
|
||||||
|
$f = unserialize($v['value']);
|
||||||
|
$fav = array('name' => $f['name'],'title' => $f['title'],'url' => $f['url'],'small-icon' => $f['small-icon'],
|
||||||
|
'large-icon' => $f['large-icon'],'permissions' => $f['permissions'],'id' => $f['id'],'class' => $f['class']);
|
||||||
|
$core->auth->user_prefs->favorites->put($uid,serialize($fav),'string');
|
||||||
|
$count++;
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$core->error->add($e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$core->error->flag()) {
|
||||||
|
http::redirect('preferences.php?removed=1');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Order favs
|
||||||
|
$order = array();
|
||||||
|
if (empty($_POST['favs_order']) && !empty($_POST['order'])) {
|
||||||
|
$order = $_POST['order'];
|
||||||
|
asort($order);
|
||||||
|
$order = array_keys($order);
|
||||||
|
} elseif (!empty($_POST['favs_order'])) {
|
||||||
|
$order = explode(',',$_POST['favs_order']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($_POST['saveorder']) && !empty($order))
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$user_favs = $ws->DumpLocalPrefs();
|
||||||
|
foreach ($user_favs as $k => $v)
|
||||||
|
{
|
||||||
|
$core->auth->user_prefs->favorites->drop($k);
|
||||||
|
}
|
||||||
|
$count = 0;
|
||||||
|
foreach ($order as $i => $k) {
|
||||||
|
$uid = sprintf("u%03s",$count);
|
||||||
|
$f = unserialize($user_favs[$k]['value']);
|
||||||
|
$fav = array('name' => $f['name'],'title' => $f['title'],'url' => $f['url'],'small-icon' => $f['small-icon'],
|
||||||
|
'large-icon' => $f['large-icon'],'permissions' => $f['permissions'],'id' => $f['id'],'class' => $f['class']);
|
||||||
|
$core->auth->user_prefs->favorites->put($uid,serialize($fav),'string');
|
||||||
|
$count++;
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$core->error->add($e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$core->error->flag()) {
|
||||||
|
http::redirect('preferences.php?&neworder=1');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* DISPLAY
|
/* DISPLAY
|
||||||
-------------------------------------------------------- */
|
-------------------------------------------------------- */
|
||||||
dcPage::open($page_title,
|
dcPage::open($page_title,
|
||||||
dcPage::jsLoad('js/_preferences.js').
|
dcPage::jsLoad('js/_preferences.js').
|
||||||
|
dcPage::jsPageTabs($default_tab).
|
||||||
dcPage::jsConfirmClose('user-form').
|
dcPage::jsConfirmClose('user-form').
|
||||||
|
|
||||||
# --BEHAVIOR-- adminPreferencesHeaders
|
# --BEHAVIOR-- adminPreferencesHeaders
|
||||||
|
@ -120,73 +235,70 @@ if (!empty($_GET['upd'])) {
|
||||||
|
|
||||||
echo '<h2>'.$page_title.'</h2>';
|
echo '<h2>'.$page_title.'</h2>';
|
||||||
|
|
||||||
|
if (!empty($_GET['append'])) {
|
||||||
|
echo '<p class="message">'.__('Favorites have been successfully added.').'</p>';
|
||||||
|
}
|
||||||
|
if (!empty($_GET['neworder'])) {
|
||||||
|
echo '<p class="message">'.__('Favorites has been successfully updated.').'</p>';
|
||||||
|
}
|
||||||
|
if (!empty($_GET['removed'])) {
|
||||||
|
echo '<p class="message">'.__('Favorites have been successfully removed.').'</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
# User profile
|
||||||
|
echo '<div class="multi-part" id="user-profile" title="'.__('My profile').'">';
|
||||||
|
|
||||||
echo
|
echo
|
||||||
'<form action="preferences.php" method="post" id="user-form">'.
|
'<form action="preferences.php" method="post" id="user-form">'.
|
||||||
'<fieldset><legend>'.__('User preferences').'</legend>'.
|
'<fieldset><legend>'.__('My profile').'</legend>'.
|
||||||
'<div class="two-cols">'.
|
'<div class="two-cols">'.
|
||||||
'<div class="col">'.
|
'<div class="col">'.
|
||||||
'<p><label>'.__('Last Name:').
|
'<p><label for"user_name">'.__('Last Name:').
|
||||||
form::field('user_name',20,255,html::escapeHTML($user_name),'',2).'</label></p>'.
|
form::field('user_name',20,255,html::escapeHTML($user_name),'',2).'</label></p>'.
|
||||||
|
|
||||||
'<p><label>'.__('First Name:').
|
'<p><label for="user_firstname">'.__('First Name:').
|
||||||
form::field('user_firstname',20,255,html::escapeHTML($user_firstname),'',3).'</label></p>'.
|
form::field('user_firstname',20,255,html::escapeHTML($user_firstname),'',3).'</label></p>'.
|
||||||
|
|
||||||
'<p><label>'.__('Display name:').
|
'<p><label for="user_displayname">'.__('Display name:').
|
||||||
form::field('user_displayname',20,255,html::escapeHTML($user_displayname),'',4).'</label></p>'.
|
form::field('user_displayname',20,255,html::escapeHTML($user_displayname),'',4).'</label></p>'.
|
||||||
|
|
||||||
'<p><label>'.__('Email:').
|
'<p><label for="user_email">'.__('Email:').
|
||||||
form::field('user_email',20,255,html::escapeHTML($user_email),'',5).'</label></p>'.
|
form::field('user_email',20,255,html::escapeHTML($user_email),'',5).'</label></p>'.
|
||||||
|
|
||||||
'<p><label>'.__('URL:').
|
'<p><label for="user_url">'.__('URL:').
|
||||||
form::field('user_url',30,255,html::escapeHTML($user_url),'',6).'</label></p>'.
|
form::field('user_url',30,255,html::escapeHTML($user_url),'',6).'</label></p>'.
|
||||||
|
|
||||||
'</div>'.
|
'</div>'.
|
||||||
|
|
||||||
'<div class="col">'.
|
'<div class="col">'.
|
||||||
|
|
||||||
'<p><label>'.__('Preferred format:').
|
'<p><label for="user_lang">'.__('User language:').
|
||||||
form::combo('user_post_format',$formaters_combo,$user_options['post_format'],'',7).'</label></p>'.
|
|
||||||
|
|
||||||
'<p><label>'.__('Default entry status:').
|
|
||||||
form::combo('user_post_status',$status_combo,$user_post_status,'',8).'</label></p>'.
|
|
||||||
|
|
||||||
'<p><label>'.__('Entry edit field height:').
|
|
||||||
form::field('user_edit_size',5,4,(integer) $user_options['edit_size'],'',9).'</label></p>'.
|
|
||||||
|
|
||||||
'<p><label>'.__('User language:').
|
|
||||||
form::combo('user_lang',$lang_combo,$user_lang,'l10n',10).'</label></p>'.
|
form::combo('user_lang',$lang_combo,$user_lang,'l10n',10).'</label></p>'.
|
||||||
|
|
||||||
'<p><label>'.__('User timezone:').
|
'<p><label for="user_tz">'.__('User timezone:').
|
||||||
form::combo('user_tz',dt::getZones(true,true),$user_tz,'',11).'</label></p>'.
|
form::combo('user_tz',dt::getZones(true,true),$user_tz,'',11).'</label></p>'.
|
||||||
|
|
||||||
'<p><label class="classic">'.
|
|
||||||
form::checkbox('user_wysiwyg',1,$user_options['enable_wysiwyg'],'',12).' '.
|
|
||||||
__('Enable WYSIWYG mode').'</label></p>'.
|
|
||||||
'</div>'.
|
'</div>'.
|
||||||
'</div>'.
|
'</div>'.
|
||||||
'<br class="clear" />'. //Opera sucks
|
'<br class="clear" />'. //Opera sucks
|
||||||
'</fieldset>';
|
'</fieldset>';
|
||||||
|
|
||||||
# --BEHAVIOR-- adminPreferencesForm
|
|
||||||
$core->callBehavior('adminPreferencesForm',$core);
|
|
||||||
|
|
||||||
if ($core->auth->allowPassChange())
|
if ($core->auth->allowPassChange())
|
||||||
{
|
{
|
||||||
echo
|
echo
|
||||||
'<fieldset>'.
|
'<fieldset>'.
|
||||||
'<legend>'.__('Change your password').'</legend>'.
|
'<legend>'.__('Change your password').'</legend>'.
|
||||||
|
|
||||||
'<p><label>'.__('New password:').
|
'<p><label for="new_pwd">'.__('New password:').
|
||||||
form::password('new_pwd',20,255,'','',30).'</label></p>'.
|
form::password('new_pwd',20,255,'','',30).'</label></p>'.
|
||||||
|
|
||||||
'<p><label>'.__('Confirm password:').
|
'<p><label for="new_pwd_c">'.__('Confirm password:').
|
||||||
form::password('new_pwd_c',20,255,'','',31).'</label></p>'.
|
form::password('new_pwd_c',20,255,'','',31).'</label></p>'.
|
||||||
'</fieldset>'.
|
'</fieldset>'.
|
||||||
|
|
||||||
'<fieldset>'.
|
'<fieldset>'.
|
||||||
'<p>'.__('If you want to change your email or password you must provide your current password.').'</p>'.
|
'<p>'.__('If you want to change your email or password you must provide your current password.').'</p>'.
|
||||||
'<p><label>'.__('Your password:').
|
'<p><label for="cur_pwd">'.__('Your password:').
|
||||||
form::password('cur_pwd',20,255,'','',32).'</label></p>'.
|
form::password('cur_pwd',20,255,'','',32).'</label></p>'.
|
||||||
'</fieldset>';
|
'</fieldset>';
|
||||||
}
|
}
|
||||||
|
@ -197,6 +309,134 @@ $core->formNonce().
|
||||||
'<input type="submit" accesskey="s" value="'.__('Save').'" tabindex="33" /></p>'.
|
'<input type="submit" accesskey="s" value="'.__('Save').'" tabindex="33" /></p>'.
|
||||||
'</form>';
|
'</form>';
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
# User options : some from actual user profile, dashboard modules, ...
|
||||||
|
echo '<div class="multi-part" id="user-options" title="'.__('My options').'">';
|
||||||
|
|
||||||
|
echo
|
||||||
|
'<form action="preferences.php" method="post" id="user-form">'.
|
||||||
|
'<fieldset><legend>'.__('My options').'</legend>'.
|
||||||
|
|
||||||
|
'<p><label for="user_post_format">'.__('Preferred format:').
|
||||||
|
form::combo('user_post_format',$formaters_combo,$user_options['post_format'],'',7).'</label></p>'.
|
||||||
|
|
||||||
|
'<p><label for="user_post_status">'.__('Default entry status:').
|
||||||
|
form::combo('user_post_status',$status_combo,$user_post_status,'',8).'</label></p>'.
|
||||||
|
|
||||||
|
'<p><label for="user_edit_size">'.__('Entry edit field height:').
|
||||||
|
form::field('user_edit_size',5,4,(integer) $user_options['edit_size'],'',9).'</label></p>'.
|
||||||
|
|
||||||
|
'<p><label for="user_wysiwyg" class="classic">'.
|
||||||
|
form::checkbox('user_wysiwyg',1,$user_options['enable_wysiwyg'],'',12).' '.
|
||||||
|
__('Enable WYSIWYG mode').'</label></p>'.
|
||||||
|
'<br class="clear" />'. //Opera sucks
|
||||||
|
'</fieldset>';
|
||||||
|
|
||||||
|
# --BEHAVIOR-- adminPreferencesForm
|
||||||
|
$core->callBehavior('adminPreferencesForm',$core);
|
||||||
|
|
||||||
|
echo
|
||||||
|
'<p class="clear">'.
|
||||||
|
$core->formNonce().
|
||||||
|
'<input type="submit" accesskey="s" value="'.__('Save').'" tabindex="33" /></p>'.
|
||||||
|
'</form>';
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
# User favorites
|
||||||
|
echo '<div class="multi-part" id="user-favorites" title="'.__('My favorites').'">';
|
||||||
|
$ws = $core->auth->user_prefs->addWorkspace('favorites');
|
||||||
|
echo '<form action="preferences.php" method="post" id="favs-form">';
|
||||||
|
echo '<div class="two-cols">';
|
||||||
|
echo '<div class="col70">';
|
||||||
|
echo '<fieldset id="my-favs"><legend>'.__('My favorites').'</legend>';
|
||||||
|
$count = 0;
|
||||||
|
foreach ($ws->dumpPrefs() as $k => $v) {
|
||||||
|
// User favorites only
|
||||||
|
if (!$v['global']) {
|
||||||
|
$fav = unserialize($v['value']);
|
||||||
|
if (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)) {
|
||||||
|
if ($count == 0) echo '<ul>';
|
||||||
|
$count++;
|
||||||
|
echo '<li id="fu-'.$k.'">'.
|
||||||
|
'<img src="'.$fav['large-icon'].'" alt="" /> '.
|
||||||
|
'<span>'.form::field(array('order['.$k.']'),2,3,$count).'</span>'.
|
||||||
|
'<label for="fuk-'.$k.'">'.form::checkbox(array('remove[]','fuk-'.$k),$k).$fav['title'].'</label>'.
|
||||||
|
'</li>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($count > 0) echo '</ul>';
|
||||||
|
if ($count > 0) {
|
||||||
|
echo
|
||||||
|
'<div class="clear">'.
|
||||||
|
'<p class="col">'.form::hidden('favs_order','').
|
||||||
|
$core->formNonce().
|
||||||
|
'<input type="submit" name="saveorder" value="'.__('Save order').'"></p>'.
|
||||||
|
|
||||||
|
'<p class="right"><input type="submit" class="delete" name="removeaction"'.
|
||||||
|
'value="'.__('Delete selected favorites').'" '.
|
||||||
|
'onclick="return window.confirm(\''.html::escapeJS(
|
||||||
|
__('Are you sure you want to remove selected favorites?')).'\');" /></p>'.
|
||||||
|
'</div>';
|
||||||
|
} else {
|
||||||
|
echo
|
||||||
|
'<p>'.__('Currently no personal favorites.').'</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</fieldset>';
|
||||||
|
|
||||||
|
echo '<div id="default-favs"><h3>'.__('Default favorites').'</h3>';
|
||||||
|
echo '<p class="form-note clear">'.__('Those favorites are displayed when My Favorites list is empty.').'</p>';
|
||||||
|
$count = 0;
|
||||||
|
foreach ($ws->dumpPrefs() as $k => $v) {
|
||||||
|
// Global favorites only
|
||||||
|
if ($v['global']) {
|
||||||
|
$fav = unserialize($v['value']);
|
||||||
|
if (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)) {
|
||||||
|
if ($count == 0) echo '<ul class="fav-list">';
|
||||||
|
$count++;
|
||||||
|
echo '<li id="fd-'.$k.'">'.
|
||||||
|
'<img src="'.$fav['small-icon'].'" alt="" /> '.$fav['title'].'</li>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($count > 0) echo '</ul>';
|
||||||
|
echo '</div>';
|
||||||
|
echo '</div>';
|
||||||
|
echo '<div class="col30" id="available-favs">';
|
||||||
|
# Available favorites
|
||||||
|
echo '<fieldset><legend>'.__('Available favorites').'</legend>';
|
||||||
|
$count = 0;
|
||||||
|
$array = $_fav;
|
||||||
|
function cmp($a,$b) {
|
||||||
|
if ($a[1] == $b[1]) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return ($a[1] < $b[1]) ? -1 : 1;
|
||||||
|
}
|
||||||
|
uasort($array,'cmp');
|
||||||
|
foreach ($array as $k => $fav) {
|
||||||
|
if (($fav[5] == '*') || $core->auth->check($fav[5],$core->blog->id)) {
|
||||||
|
if ($count == 0) echo '<ul class="fav-list">';
|
||||||
|
$count++;
|
||||||
|
echo '<li id="fa-'.$fav[0].'">'.'<label for="fak-'.$fav[0].'">'.
|
||||||
|
'<span class="minimal">'.form::checkbox(array('append[]','fak-'.$fav[0]),$k).'</span>'.
|
||||||
|
'<img src="'.$fav[3].'" alt="" /> '.'<span class="zoom"><img src="'.$fav[4].'" alt="" /></span>'.$fav[1].
|
||||||
|
'</label>'.'</li>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($count > 0) echo '</ul>';
|
||||||
|
echo
|
||||||
|
'<p>'.
|
||||||
|
$core->formNonce().
|
||||||
|
'<input type="submit" name="appendaction" value="'.__('Add to my favorites').'"></p>';
|
||||||
|
echo '</div>';
|
||||||
|
echo '</div>'; # Two-cols
|
||||||
|
echo '</form>';
|
||||||
|
echo '</div>'; # user-favorites
|
||||||
|
|
||||||
dcPage::helpBlock('core_user_pref');
|
dcPage::helpBlock('core_user_pref');
|
||||||
dcPage::close();
|
dcPage::close();
|
||||||
?>
|
?>
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
div.cu-ctrl {
|
div.cu-ctrl {
|
||||||
background: #fbfbfb;
|
background: #f5f5f5;
|
||||||
padding: 5px 0 0 0;
|
padding: 5px 0 0 0;
|
||||||
margin: 0 0 1em 0;
|
margin: 0 0 1em 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
@ -8,9 +8,6 @@ div.cu-ctrl {
|
||||||
border-width: 1px 0;
|
border-width: 1px 0;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
}
|
}
|
||||||
div.cu-ctrl a {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.cu-msg {
|
div.cu-msg {
|
||||||
padding: 0 0.5em;
|
padding: 0 0.5em;
|
||||||
|
@ -64,7 +61,7 @@ div.cu-progress div {
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
line-height: 1em;
|
line-height: 1em;
|
||||||
height: 1em;
|
height: 1em;
|
||||||
padding: 2px 0;
|
padding: .2em 0;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
background: green url(loader.png) repeat-x top left;
|
background: green url(loader.png) repeat-x top left;
|
||||||
color: white;
|
color: white;
|
||||||
|
@ -74,31 +71,19 @@ div.cu-progress div {
|
||||||
|
|
||||||
div.cu-btn {
|
div.cu-btn {
|
||||||
padding: 0 0.5em;
|
padding: 0 0.5em;
|
||||||
line-height: 1em;
|
line-height: 1.2em;
|
||||||
height: 1.6em;
|
height: 1.5em;
|
||||||
margin-top: 1em;
|
margin-top: 1em;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
div.cu-btn span {
|
div.cu-btn span {
|
||||||
display: block;
|
display: block;
|
||||||
margin: 0 0 0 5px;
|
margin: 0 0 0 .5em;
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
div.cu-btn span a {
|
div.cu-btn span a {
|
||||||
display: block;
|
display: block;
|
||||||
padding: 2px;
|
padding: .3em 1.5em;
|
||||||
line-height: 127%;
|
|
||||||
background: #e2dfca;
|
|
||||||
color: #333;
|
|
||||||
text-decoration: none;
|
|
||||||
border: 1px solid #e2dfca !important;
|
|
||||||
outline: none;
|
|
||||||
-moz-border-radius: 3px;
|
|
||||||
-webkit-border-radius: 3px;
|
|
||||||
}
|
|
||||||
div.cu-btn span a:hover, div.cu-btn span a:focus {
|
|
||||||
border-color: #ccc;
|
|
||||||
color: #06c;
|
|
||||||
}
|
}
|
||||||
div.cu-btn span.cu-btn-browse {
|
div.cu-btn span.cu-btn-browse {
|
||||||
float: none;
|
float: none;
|
||||||
|
@ -106,15 +91,28 @@ div.cu-btn span.cu-btn-browse {
|
||||||
left: 0.5em;
|
left: 0.5em;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
div.cu-btn span.cu-btn-upload {
|
div.cu-btn span.cu-btn-upload a.button {
|
||||||
font-weight: bold;
|
color: #fff;
|
||||||
|
border: 1px solid #2373A8;
|
||||||
|
background: #2373A8;
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(#2C8FD1), to(#2373A8));
|
||||||
|
background: -moz-linear-gradient(top, #2C8FD1, #2373A8);
|
||||||
|
}
|
||||||
|
div.cu-btn span.cu-btn-upload a.button:hover, div.cu-btn span.cu-btn-upload a.button:focus {
|
||||||
|
color: #fff;
|
||||||
|
border: 1px solid #2C8FD1;
|
||||||
|
background: #2C8FD1;
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(#2373A8), to(#2C8FD1));
|
||||||
|
background: -moz-linear-gradient(top, #2373A8, #2C8FD1);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2373A8', endColorstr='#2C8FD1');
|
||||||
}
|
}
|
||||||
|
|
||||||
div.cu-maxsize {
|
div.cu-maxsize {
|
||||||
clear: both;
|
clear: both;
|
||||||
margin: 3px 0 0 0.5em;
|
margin: .75em 0 0 0.5em;
|
||||||
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.cu-disable {
|
div.cu-disable {
|
||||||
|
margin: 1em 0;
|
||||||
padding: 0 0 0.5em 0.5em;
|
padding: 0 0 0.5em 0.5em;
|
||||||
}
|
}
|
Before Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 131 B |
After Width: | Height: | Size: 825 B |
After Width: | Height: | Size: 839 B |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 3.8 KiB |
|
@ -1,124 +1,124 @@
|
||||||
/*
|
/*
|
||||||
loader.css
|
loader.css
|
||||||
Simple CSS rules for NetInstall
|
Simple CSS rules for NetInstall
|
||||||
|
|
||||||
(c) 2008 - Olivier Meunier & contributors - All rights reserved.
|
(c) 2008 - Olivier Meunier & contributors - All rights reserved.
|
||||||
Please see http://dotclear.net/ for more details.
|
Please see http://dotclear.net/ for more details.
|
||||||
*/
|
*/
|
||||||
body.install {
|
body.install {
|
||||||
font: 0.8em "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
|
font: 0.8em "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
|
||||||
color: #000;
|
color: #000;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
body.install #content {
|
body.install #content {
|
||||||
width:500px;
|
width:500px;
|
||||||
margin:1em auto;
|
margin:1em auto;
|
||||||
}
|
}
|
||||||
body.install #main {
|
body.install #main {
|
||||||
padding:1em 2em;
|
padding:1em 2em;
|
||||||
border:1px #ccc solid;
|
border:1px #ccc solid;
|
||||||
-moz-border-radius:8px;
|
-moz-border-radius:8px;
|
||||||
-webkit-border-radius:8px;
|
-webkit-border-radius:8px;
|
||||||
}
|
}
|
||||||
body.install h1,h2 {
|
body.install h1,h2 {
|
||||||
font-family: Arial,Helvetica,sans-serif;
|
font-family: Helvetica,arial,sans-serif;
|
||||||
}
|
}
|
||||||
body.install h1 {
|
body.install h1 {
|
||||||
background: url(install/w-logo.png) no-repeat top center;
|
background: url(install/w-logo.png) no-repeat top center;
|
||||||
font-size:1.8em;
|
font-size:1.8em;
|
||||||
font-weight:normal;
|
font-weight:normal;
|
||||||
text-align:center;
|
text-align:center;
|
||||||
color: #666;
|
color: #666;
|
||||||
padding-top: 70px;
|
padding-top: 70px;
|
||||||
margin: 0 0 0.75em 0;
|
margin: 0 0 0.75em 0;
|
||||||
}
|
}
|
||||||
body.install h2 {
|
body.install h2 {
|
||||||
color: #f90;
|
color: #C71585;
|
||||||
}
|
}
|
||||||
body.install h3 {
|
body.install h3 {
|
||||||
margin-top:0;
|
margin-top:0;
|
||||||
}
|
}
|
||||||
body.install label {
|
body.install label {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #555;
|
color: #555;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.install .msg {
|
body.install .msg {
|
||||||
padding:10px 10px 10px 42px;
|
padding:10px 10px 10px 42px;
|
||||||
-moz-border-radius:8px;
|
-moz-border-radius:8px;
|
||||||
-webkit-border-radius:8px;
|
-webkit-border-radius:8px;
|
||||||
}
|
}
|
||||||
body.install .warning {
|
body.install .warning {
|
||||||
background: #ffc url(install/important.png) no-repeat 10px 10px;
|
background: #ffc url(install/important.png) no-repeat 10px 10px;
|
||||||
}
|
}
|
||||||
body.install .notice {
|
body.install .notice {
|
||||||
background: #eef url(install/note.png) no-repeat 10px 10px;
|
background: #eef url(install/note.png) no-repeat 10px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.error, p.error, div.message, p.message, div.static-msg, p.static-msg {
|
div.error, p.error, div.message, p.message, div.static-msg, p.static-msg {
|
||||||
padding: 0.5em 0.5em 0.5em 40px;
|
padding: 0.5em 0.5em 0.5em 40px;
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
-moz-border-radius: 8px;
|
-moz-border-radius: 8px;
|
||||||
-webkit-border-radius: 8px;
|
-webkit-border-radius: 8px;
|
||||||
}
|
}
|
||||||
p.error, p.message, p.static-msg {
|
p.error, p.message, p.static-msg {
|
||||||
padding-top: 1em;
|
padding-top: 1em;
|
||||||
padding-bottom: 1em;
|
padding-bottom: 1em;
|
||||||
}
|
}
|
||||||
div.error, p.error {
|
div.error, p.error {
|
||||||
background: #e5bfbf url(msg-error.png) no-repeat 5px 5px;
|
background: #e5bfbf url(msg-error.png) no-repeat 5px 5px;
|
||||||
color: #600;
|
color: #600;
|
||||||
}
|
}
|
||||||
div.message, p.message, div.static-msg, p.static-msg {
|
div.message, p.message, div.static-msg, p.static-msg {
|
||||||
background: #666 url(msg-std.png) no-repeat 5px 5px;
|
background: #666 url(msg-std.png) no-repeat 5px 5px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
div.message a, p.message a, div.static-msg a, p.static-msg a {
|
div.message a, p.message a, div.static-msg a, p.static-msg a {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
label {
|
label {
|
||||||
display : block;
|
display : block;
|
||||||
}
|
}
|
||||||
label input, label select, label span {
|
label input, label select, label span {
|
||||||
display : block;
|
display : block;
|
||||||
}
|
}
|
||||||
|
|
||||||
label.required {
|
label.required {
|
||||||
font-weight : bold;
|
font-weight : bold;
|
||||||
}
|
}
|
||||||
label.required:before {
|
label.required:before {
|
||||||
content : '* ';
|
content : '* ';
|
||||||
color : #c00;
|
color : #c00;
|
||||||
}
|
}
|
||||||
|
|
||||||
form {
|
form {
|
||||||
display : block;
|
display : block;
|
||||||
margin : 0;
|
margin : 0;
|
||||||
padding : 0;
|
padding : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldset {
|
fieldset {
|
||||||
display : block;
|
display : block;
|
||||||
margin : 0 0 1em 0;
|
margin : 0 0 1em 0;
|
||||||
padding : 1em 0.5em;
|
padding : 1em 0.5em;
|
||||||
border-width : 1px 0;
|
border-width : 1px 0;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-color: #ccc;
|
border-color: #ccc;
|
||||||
background: #fbfbfb;
|
background: #f5f5f5;
|
||||||
}
|
}
|
||||||
legend {
|
legend {
|
||||||
font-weight : bold;
|
font-weight : bold;
|
||||||
padding: 0.2em 0.6em;
|
padding: 0.2em 0.6em;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-color: #ccc;
|
border-color: #ccc;
|
||||||
background: #fbfbfb;
|
background: #f5f5f5;
|
||||||
margin-bottom: 0.5em;
|
margin-bottom: 0.5em;
|
||||||
}
|
}
|
||||||
a#obfus {
|
a#obfus {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background-color: #666;
|
background-color: #666;
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
-moz-border-radius: 2px;
|
-moz-border-radius: 2px;
|
||||||
-webkit-border-radius: 2px;
|
-webkit-border-radius: 2px;
|
||||||
}
|
}
|
|
@ -25,7 +25,7 @@
|
||||||
border-width: 1px 1px 0 1px;
|
border-width: 1px 1px 0 1px;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-color: #000 #ccc #ccc #000;
|
border-color: #000 #ccc #ccc #000;
|
||||||
background: #eceade;
|
background: #dfdfdf;
|
||||||
}
|
}
|
||||||
|
|
||||||
.jstElements select, .jstElements button {
|
.jstElements select, .jstElements button {
|
||||||
|
@ -41,14 +41,14 @@
|
||||||
padding: 0;
|
padding: 0;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
border-color: #eceade;
|
border-color: #dfdfdf;
|
||||||
background-color : transparent;
|
background-color : transparent;
|
||||||
background-position : 50% 50%;
|
background-position : 50% 50%;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
}
|
}
|
||||||
.jstElements button:hover {
|
.jstElements button:hover {
|
||||||
border-color : #ccc;
|
border-color : #ccc;
|
||||||
background-color: #dfdbc7;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
.jstElements button span {
|
.jstElements button span {
|
||||||
display : none;
|
display : none;
|
||||||
|
@ -68,7 +68,7 @@
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 0 0 0 -5px;
|
margin: 0 0 0 -5px;
|
||||||
padding: 0 0 5px 0;
|
padding: 0 0 5px 0;
|
||||||
background: #eee;
|
background: #dfdfdf;
|
||||||
border-top: 1px solid #999;
|
border-top: 1px solid #999;
|
||||||
font-size: 90%;
|
font-size: 90%;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|
Before Width: | Height: | Size: 199 B |
Before Width: | Height: | Size: 270 B |
Before Width: | Height: | Size: 377 B |
Before Width: | Height: | Size: 428 B |
Before Width: | Height: | Size: 551 B |
Before Width: | Height: | Size: 411 B |
Before Width: | Height: | Size: 524 B |
|
@ -197,7 +197,7 @@ if (!$step)
|
||||||
'unwanted side-effects. Consider reverting only if you experience strong issues with this new version.').'</strong> '.
|
'unwanted side-effects. Consider reverting only if you experience strong issues with this new version.').'</strong> '.
|
||||||
sprintf(__('You should not revert to version prior to last one (%s).'),end($archives)).
|
sprintf(__('You should not revert to version prior to last one (%s).'),end($archives)).
|
||||||
'</p>'.
|
'</p>'.
|
||||||
'<p><input type="submit" name="b_del" value="'.__('Delete selected file').'" /> '.
|
'<p><input type="submit" class="delete" name="b_del" value="'.__('Delete selected file').'" /> '.
|
||||||
'<input type="submit" name="b_revert" value="'.__('Revert to selected file').'" />'.
|
'<input type="submit" name="b_revert" value="'.__('Revert to selected file').'" />'.
|
||||||
$core->formNonce().'</p>'.
|
$core->formNonce().'</p>'.
|
||||||
'</form>';
|
'</form>';
|
||||||
|
|
|
@ -116,9 +116,9 @@ if (!$core->error->flag())
|
||||||
echo '<p class="message">'.__('User has been successfully removed.').'</p>';
|
echo '<p class="message">'.__('User has been successfully removed.').'</p>';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '<h2>'.__('Users').'</h2>';
|
echo
|
||||||
|
'<h2>'.__('Users').'</h2>'.
|
||||||
echo '<p><strong><a href="user.php">'.__('Create a new user').'</a></strong></p>';
|
'<p class="top-add"><strong><a class="button add" href="user.php"><img src="images/add.png" alt="" />'.__('Create a new user').'</a></strong></p>';
|
||||||
|
|
||||||
if (!$show_filters) {
|
if (!$show_filters) {
|
||||||
echo '<p><a id="filter-control" class="form-control" href="#">'.__('Filters').'</a></p>';
|
echo '<p><a id="filter-control" class="form-control" href="#">'.__('Filters').'</a></p>';
|
||||||
|
@ -143,7 +143,7 @@ if (!$core->error->flag())
|
||||||
'</label></p>'.
|
'</label></p>'.
|
||||||
'<p><label class="classic">'. form::field('nb',3,3,$nb_per_page).' '.
|
'<p><label class="classic">'. form::field('nb',3,3,$nb_per_page).' '.
|
||||||
__('Users per page').'</label> '.
|
__('Users per page').'</label> '.
|
||||||
'<input type="submit" value="'.__('filter').'" /></p>'.
|
'<input type="submit" value="'.__('Apply filters').'" /></p>'.
|
||||||
'</div>'.
|
'</div>'.
|
||||||
|
|
||||||
'<br class="clear" />'. //Opera sucks
|
'<br class="clear" />'. //Opera sucks
|
||||||
|
|
|
@ -24,17 +24,17 @@ class dcMenu
|
||||||
$this->items = array();
|
$this->items = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addItem($title,$url,$img,$active,$show=true,$id=null)
|
public function addItem($title,$url,$img,$active,$show=true,$id=null,$class=null)
|
||||||
{
|
{
|
||||||
if($show) {
|
if($show) {
|
||||||
$this->items[] = $this->itemDef($title,$url,$img,$active,$id);
|
$this->items[] = $this->itemDef($title,$url,$img,$active,$id,$class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function prependItem($title,$url,$img,$active,$show=true,$id=null)
|
public function prependItem($title,$url,$img,$active,$show=true,$id=null,$class=null)
|
||||||
{
|
{
|
||||||
if ($show) {
|
if ($show) {
|
||||||
array_unshift($this->items,$this->itemDef($title,$url,$img,$active,$id));
|
array_unshift($this->items,$this->itemDef($title,$url,$img,$active,$id,$class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ class dcMenu
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function itemDef($title,$url,$img,$active,$id=null)
|
protected function itemDef($title,$url,$img,$active,$id=null,$class=null)
|
||||||
{
|
{
|
||||||
if (is_array($url)) {
|
if (is_array($url)) {
|
||||||
$link = $url[0];
|
$link = $url[0];
|
||||||
|
@ -75,7 +75,7 @@ class dcMenu
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
'<li'.(($active) ? ' class="active"' : '').
|
'<li'.(($active || $class) ? ' class="'.(($active) ? 'active ' : '').(($class) ? $class : '').'"' : '').
|
||||||
(($id) ? ' id="'.$id.'"' : '').
|
(($id) ? ' id="'.$id.'"' : '').
|
||||||
(($img) ? ' style="background-image: url('.$img.');"' : '').
|
(($img) ? ' style="background-image: url('.$img.');"' : '').
|
||||||
'>'.
|
'>'.
|
||||||
|
|
|
@ -117,9 +117,12 @@ class dcPage
|
||||||
'<div id="info-box">'.
|
'<div id="info-box">'.
|
||||||
'<form action="index.php" method="post"><div>'.
|
'<form action="index.php" method="post"><div>'.
|
||||||
$blog_box.
|
$blog_box.
|
||||||
' - <a href="'.$core->blog->url.'" class="button">'.__('View site').'</a>'.
|
'<a href="'.$core->blog->url.'"onclick="window.open(this.href);return false;" title="'.__('Go to site').' ('.__('new window').')'.'">'.__('Go to site').' <img src="images/outgoing.png" alt="" /></a>'.
|
||||||
' - '.__('User:').' <strong>'.$core->auth->userID().'</strong>'.
|
'</div></form>'.
|
||||||
' - <a href="index.php?logout=1" class="logout">'.__('Logout').'</a>'.
|
'</div>'.
|
||||||
|
'<div id="info-box2"><form action="index.php" method="post><div>"'.
|
||||||
|
' '.__('User:').' <strong>'.$core->auth->userID().'</strong>'.
|
||||||
|
' - <a href="index.php?logout=1" class="logout">'.__('Logout').' <img src="images/logout.png" alt="" /></a>'.
|
||||||
'</div></form>'.
|
'</div></form>'.
|
||||||
'</div>';
|
'</div>';
|
||||||
|
|
||||||
|
@ -161,8 +164,9 @@ class dcPage
|
||||||
|
|
||||||
echo
|
echo
|
||||||
'</div>'."\n". // End of #main-menu
|
'</div>'."\n". // End of #main-menu
|
||||||
'<div id="footer"><p><img src="images/dotclear_pw.png" alt="Dotclear" /> '.
|
'<div id="footer"><p>'.
|
||||||
sprintf(__('Thank you for using %s.'),'<a href="http://dotclear.org/">Dotclear</a>').
|
sprintf(__('Thank you for using %s.'),'<a href="http://dotclear.org/">Dotclear '.DC_VERSION.'</a>').
|
||||||
|
' <span class="credit"> (Icons by <a href="http://dryicons.com/">Dryicons</a>)</span>'.
|
||||||
'</p></div>'."\n".
|
'</p></div>'."\n".
|
||||||
"</div>\n"; // End of #wrapper
|
"</div>\n"; // End of #wrapper
|
||||||
|
|
||||||
|
@ -327,7 +331,7 @@ class dcPage
|
||||||
}
|
}
|
||||||
|
|
||||||
echo
|
echo
|
||||||
'<div id="help"><hr /><div class="help-content"><h2>'.__('Help').'</h2>'.
|
'<div id="help"><hr /><div class="help-content clear"><h2>'.__('Help').'</h2>'.
|
||||||
$content.
|
$content.
|
||||||
'</div></div>';
|
'</div></div>';
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,6 +137,15 @@ elseif ($core->auth->sessionExists())
|
||||||
$core->session->destroy();
|
$core->session->destroy();
|
||||||
http::redirect('auth.php');
|
http::redirect('auth.php');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
# Check add to my fav fired
|
||||||
|
if (!empty($_REQUEST['add-favorite'])) {
|
||||||
|
$redir = $_SERVER['REQUEST_URI'];
|
||||||
|
# Extract admin page from URI
|
||||||
|
# TO BE COMPLETED
|
||||||
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($core->auth->userID() && $core->blog !== null)
|
if ($core->auth->userID() && $core->blog !== null)
|
||||||
|
@ -158,22 +167,85 @@ if ($core->auth->userID() && $core->blog !== null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unset($hfiles,$locales_root);
|
unset($hfiles,$locales_root);
|
||||||
|
|
||||||
|
# Standard favorites
|
||||||
|
$_fav = new ArrayObject();
|
||||||
|
|
||||||
|
# [] : Title, URL, small icon, large icon, permissions, id, class
|
||||||
|
# NB : '*' in permissions means any, null means super admin only
|
||||||
|
|
||||||
|
$_fav['prefs'] = new ArrayObject(array('prefs',__('My preferences'),'preferences.php',
|
||||||
|
'images/menu/user-pref.png','images/menu/user-pref-b.png',
|
||||||
|
'*',null,null));
|
||||||
|
|
||||||
|
$_fav['new_post'] = new ArrayObject(array('new_post',__('New entry'),'post.php',
|
||||||
|
'images/menu/edit.png','images/menu/edit-b.png',
|
||||||
|
'usage,contentadmin',null,'menu-new-post'));
|
||||||
|
$_fav['posts'] = new ArrayObject(array('posts',__('Entries'),'posts.php',
|
||||||
|
'images/menu/entries.png','images/menu/entries-b.png',
|
||||||
|
'usage,contentadmin',null,null));
|
||||||
|
$_fav['comments'] = new ArrayObject(array('comments',__('Comments'),'comments.php',
|
||||||
|
'images/menu/comments.png','images/menu/comments-b.png',
|
||||||
|
'usage,contentadmin',null,null));
|
||||||
|
$_fav['search'] = new ArrayObject(array('search',__('Search'),'search.php',
|
||||||
|
'images/menu/search.png','images/menu/search-b.png',
|
||||||
|
'usage,contentadmin',null,null));
|
||||||
|
$_fav['categories'] = new ArrayObject(array('categories',__('Categories'),'categories.php',
|
||||||
|
'images/menu/categories.png','images/menu/categories-b.png',
|
||||||
|
'categories',null,null));
|
||||||
|
$_fav['media'] = new ArrayObject(array('media',__('Media manager'),'media.php',
|
||||||
|
'images/menu/media.png','images/menu/media-b.png',
|
||||||
|
'media,media_admin',null,null));
|
||||||
|
$_fav['blog_pref'] = new ArrayObject(array('blog_pref',__('Blog settings'),'blog_pref.php',
|
||||||
|
'images/menu/blog-pref.png','images/menu/blog-pref-b.png',
|
||||||
|
'admin',null,null));
|
||||||
|
$_fav['blog_theme'] = new ArrayObject(array('blog_theme',__('Blog appearance'),'blog_theme.php',
|
||||||
|
'images/menu/themes.png','images/menu/blog-theme-b.png',
|
||||||
|
'admin',null,null));
|
||||||
|
|
||||||
|
$_fav['blogs'] = new ArrayObject(array('blogs',__('Blogs'),'blogs.php',
|
||||||
|
'images/menu/blogs.png','images/menu/blogs-b.png',
|
||||||
|
'usage,contentadmin',null,null));
|
||||||
|
$_fav['users'] = new ArrayObject(array('users',__('Users'),'users.php',
|
||||||
|
'images/menu/users.png','images/menu/users-b.png',
|
||||||
|
null,null,null));
|
||||||
|
$_fav['plugins'] = new ArrayObject(array('plugins',__('Plugins'),'plugins.php',
|
||||||
|
'images/menu/plugins.png','images/menu/plugins-b.png',
|
||||||
|
null,null,null));
|
||||||
|
$_fav['langs'] = new ArrayObject(array('langs',__('Languages'),'langs.php',
|
||||||
|
'images/menu/langs.png','images/menu/langs-b.png',
|
||||||
|
null,null,null));
|
||||||
|
|
||||||
# Menus creation
|
# Menus creation
|
||||||
$_menu['Dashboard'] = new dcMenu('dashboard-menu',null);
|
$_menu['Dashboard'] = new dcMenu('dashboard-menu',null);
|
||||||
|
$_menu['Favorites'] = new dcMenu('favorites-menu','My favorites');
|
||||||
$_menu['Blog'] = new dcMenu('blog-menu','Blog');
|
$_menu['Blog'] = new dcMenu('blog-menu','Blog');
|
||||||
$_menu['System'] = new dcMenu('system-menu','System');
|
$_menu['System'] = new dcMenu('system-menu','System');
|
||||||
$_menu['Plugins'] = new dcMenu('plugins-menu','Plugins');
|
$_menu['Plugins'] = new dcMenu('plugins-menu','Plugins');
|
||||||
|
|
||||||
# Loading plugins
|
# Loading plugins
|
||||||
$core->plugins->loadModules(DC_PLUGINS_ROOT,'admin',$_lang);
|
$core->plugins->loadModules(DC_PLUGINS_ROOT,'admin',$_lang);
|
||||||
|
|
||||||
|
# Loading favorites info from plugins
|
||||||
|
$core->callBehavior('adminDashboardFavs', $core, $_fav);
|
||||||
|
|
||||||
# Set menu titles
|
# Set menu titles
|
||||||
|
|
||||||
$_menu['System']->title = __('System');
|
$_menu['System']->title = __('System');
|
||||||
$_menu['Blog']->title = __('Blog');
|
$_menu['Blog']->title = __('Blog');
|
||||||
$_menu['Plugins']->title = __('Plugins');
|
$_menu['Plugins']->title = __('Plugins');
|
||||||
|
$_menu['Favorites']->title = __('My favorites');
|
||||||
|
|
||||||
|
/*
|
||||||
|
if (!preg_match('/index.php$/',$_SERVER['REQUEST_URI'])) {
|
||||||
|
# Admin index can't be add in fav's
|
||||||
|
$_menu['Dashboard']->prependItem(__('Add this page to my favorites'),'#','images/menu/add_to_favorites.png',
|
||||||
|
false,$core->auth->check('usage,contentadmin',$core->blog->id),'fav-add');
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
$_menu['Dashboard']->prependItem(__('My preferences'),'preferences.php','images/menu/user-pref.png',
|
||||||
|
preg_match('/preferences.php(\?.*)?$/',$_SERVER['REQUEST_URI']),
|
||||||
|
true);
|
||||||
$_menu['Dashboard']->prependItem(__('Dashboard'),'index.php','images/menu/dashboard.png',
|
$_menu['Dashboard']->prependItem(__('Dashboard'),'index.php','images/menu/dashboard.png',
|
||||||
preg_match('/index.php$/',$_SERVER['REQUEST_URI']),
|
preg_match('/index.php$/',$_SERVER['REQUEST_URI']),
|
||||||
$core->auth->check('usage,contentadmin',$core->blog->id));
|
$core->auth->check('usage,contentadmin',$core->blog->id));
|
||||||
|
@ -181,6 +253,9 @@ if ($core->auth->userID() && $core->blog !== null)
|
||||||
$_menu['Blog']->prependItem(__('Blog appearance'),'blog_theme.php','images/menu/themes.png',
|
$_menu['Blog']->prependItem(__('Blog appearance'),'blog_theme.php','images/menu/themes.png',
|
||||||
preg_match('/blog_theme.php(\?.*)?$/',$_SERVER['REQUEST_URI']),
|
preg_match('/blog_theme.php(\?.*)?$/',$_SERVER['REQUEST_URI']),
|
||||||
$core->auth->check('admin',$core->blog->id));
|
$core->auth->check('admin',$core->blog->id));
|
||||||
|
$_menu['Blog']->prependItem(__('Blog settings'),'blog_pref.php','images/menu/blog-pref.png',
|
||||||
|
preg_match('/blog_pref.php(\?.*)?$/',$_SERVER['REQUEST_URI']),
|
||||||
|
$core->auth->check('admin',$core->blog->id));
|
||||||
$_menu['Blog']->prependItem(__('Media manager'),'media.php','images/menu/media.png',
|
$_menu['Blog']->prependItem(__('Media manager'),'media.php','images/menu/media.png',
|
||||||
preg_match('/media(_item)?.php(\?.*)?$/',$_SERVER['REQUEST_URI']),
|
preg_match('/media(_item)?.php(\?.*)?$/',$_SERVER['REQUEST_URI']),
|
||||||
$core->auth->check('media,media_admin',$core->blog->id));
|
$core->auth->check('media,media_admin',$core->blog->id));
|
||||||
|
@ -216,5 +291,36 @@ if ($core->auth->userID() && $core->blog !== null)
|
||||||
preg_match('/blogs.php$/',$_SERVER['REQUEST_URI']),
|
preg_match('/blogs.php$/',$_SERVER['REQUEST_URI']),
|
||||||
$core->auth->isSuperAdmin() ||
|
$core->auth->isSuperAdmin() ||
|
||||||
$core->auth->check('usage,contentadmin',$core->blog->id) && $core->auth->blog_count > 1);
|
$core->auth->check('usage,contentadmin',$core->blog->id) && $core->auth->blog_count > 1);
|
||||||
|
|
||||||
|
// Set favorites menu
|
||||||
|
$ws = $core->auth->user_prefs->addWorkspace('favorites');
|
||||||
|
$count = 0;
|
||||||
|
foreach ($ws->dumpPrefs() as $k => $v) {
|
||||||
|
// User favorites only
|
||||||
|
if (!$v['global']) {
|
||||||
|
$count++;
|
||||||
|
$fav = unserialize($v['value']);
|
||||||
|
$_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'],
|
||||||
|
preg_match('/'.$fav['url'].'(\?.*)?$/',$_SERVER['REQUEST_URI']),
|
||||||
|
(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$count) {
|
||||||
|
// Global favorites if any
|
||||||
|
foreach ($ws->dumpPrefs() as $k => $v) {
|
||||||
|
$count++;
|
||||||
|
$fav = unserialize($v['value']);
|
||||||
|
$_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'],
|
||||||
|
preg_match('/'.$fav['url'].'(\?.*)?$/',$_SERVER['REQUEST_URI']),
|
||||||
|
(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$count) {
|
||||||
|
// No user or global favorites, add "new entry" fav
|
||||||
|
$_menu['Favorites']->addItem(__('New entry'),'post.php','images/menu/edit.png',
|
||||||
|
preg_match('/post.php$/',$_SERVER['REQUEST_URI']),
|
||||||
|
$core->auth->check('usage,contentadmin',$core->blog->id),'menu-new-post',null);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
|
@ -39,6 +39,8 @@ class dcAuth
|
||||||
|
|
||||||
protected $perm_types; ///< <b>array</b> Permission types
|
protected $perm_types; ///< <b>array</b> Permission types
|
||||||
|
|
||||||
|
public $user_prefs; ///< <b>dcPrefs</b> dcPrefs object
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Class constructor. Takes dcCore object as single argument.
|
Class constructor. Takes dcCore object as single argument.
|
||||||
|
|
||||||
|
@ -135,6 +137,8 @@ class dcAuth
|
||||||
|
|
||||||
$this->user_options = array_merge($this->core->userDefaults(),$rs->options());
|
$this->user_options = array_merge($this->core->userDefaults(),$rs->options());
|
||||||
|
|
||||||
|
$this->user_prefs = new dcPrefs($this->core,$this->user_id);
|
||||||
|
|
||||||
# Get permissions on blogs
|
# Get permissions on blogs
|
||||||
if ($this->findUserBlog() === false) {
|
if ($this->findUserBlog() === false) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -106,6 +106,10 @@ class dcMedia extends filemanager
|
||||||
$this->addFileHandler('image/png','recreate',array($this,'imageThumbCreate'));
|
$this->addFileHandler('image/png','recreate',array($this,'imageThumbCreate'));
|
||||||
$this->addFileHandler('image/gif','recreate',array($this,'imageThumbCreate'));
|
$this->addFileHandler('image/gif','recreate',array($this,'imageThumbCreate'));
|
||||||
|
|
||||||
|
$this->addFileHandler('image/jpeg','recreate',array($this,'imageThumbCreate'));
|
||||||
|
$this->addFileHandler('image/png','recreate',array($this,'imageThumbCreate'));
|
||||||
|
$this->addFileHandler('image/gif','recreate',array($this,'imageThumbCreate'));
|
||||||
|
|
||||||
# Thumbnails sizes
|
# Thumbnails sizes
|
||||||
$this->thumb_sizes['m'][0] = abs($core->blog->settings->system->media_img_m_size);
|
$this->thumb_sizes['m'][0] = abs($core->blog->settings->system->media_img_m_size);
|
||||||
$this->thumb_sizes['s'][0] = abs($core->blog->settings->system->media_img_s_size);
|
$this->thumb_sizes['s'][0] = abs($core->blog->settings->system->media_img_s_size);
|
||||||
|
@ -896,6 +900,17 @@ class dcMedia extends filemanager
|
||||||
/**
|
/**
|
||||||
Calls file handlers registered for recreate event
|
Calls file handlers registered for recreate event
|
||||||
|
|
||||||
|
@param f <b>fileItem</b> fileItem object
|
||||||
|
*/
|
||||||
|
public function mediaFireRecreateEvent($f)
|
||||||
|
{
|
||||||
|
$media_type = files::getMimeType($f->basename);
|
||||||
|
$this->callFileHandler($media_type,'recreate',null,$f->basename); // Args list to be completed as necessary (Franck)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Calls file handlers registered for recreate event
|
||||||
|
|
||||||
@param f <b>fileItem</b> fileItem object
|
@param f <b>fileItem</b> fileItem object
|
||||||
*/
|
*/
|
||||||
public function mediaFireRecreateEvent($f)
|
public function mediaFireRecreateEvent($f)
|
||||||
|
@ -906,7 +921,7 @@ class dcMedia extends filemanager
|
||||||
|
|
||||||
/* Image handlers
|
/* Image handlers
|
||||||
------------------------------------------------------- */
|
------------------------------------------------------- */
|
||||||
public function imageThumbCreate($cur,$f,$media_id,$force=true)
|
public function imageThumbCreate($cur,$f,$force=true)
|
||||||
{
|
{
|
||||||
$file = $this->pwd.'/'.$f;
|
$file = $this->pwd.'/'.$f;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,130 @@
|
||||||
|
<?php
|
||||||
|
# -- BEGIN LICENSE BLOCK ---------------------------------------
|
||||||
|
#
|
||||||
|
# This file is part of Dotclear 2.
|
||||||
|
#
|
||||||
|
# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
|
||||||
|
# Licensed under the GPL version 2.0 license.
|
||||||
|
# See LICENSE file or
|
||||||
|
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
#
|
||||||
|
# -- END LICENSE BLOCK -----------------------------------------
|
||||||
|
if (!defined('DC_RC_PATH')) { return; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
@ingroup DC_CORE
|
||||||
|
@brief User prefs handler
|
||||||
|
|
||||||
|
dcPrefs provides user preferences management. This class instance exists as
|
||||||
|
dcAuth $prefs property. You should create a new prefs instance when
|
||||||
|
updating another user prefs.
|
||||||
|
*/
|
||||||
|
class dcPrefs
|
||||||
|
{
|
||||||
|
protected $con; ///< <b>connection</b> Database connection object
|
||||||
|
protected $table; ///< <b>string</b> Prefs table name
|
||||||
|
protected $user_id; ///< <b>string</b> User ID
|
||||||
|
|
||||||
|
protected $workspaces = array(); ///< <b>array</b> Associative workspaces array
|
||||||
|
|
||||||
|
protected $ws; ///< <b>string</b> Current workspace
|
||||||
|
|
||||||
|
/**
|
||||||
|
Object constructor. Retrieves user prefs and puts them in $workspaces
|
||||||
|
array. Local (user) prefs have a highest priority than global prefs.
|
||||||
|
|
||||||
|
@param core <b>dcCore</b> dcCore object
|
||||||
|
@param user_id <b>string</b> User ID
|
||||||
|
*/
|
||||||
|
public function __construct($core,$user_id)
|
||||||
|
{
|
||||||
|
$this->con =& $core->con;
|
||||||
|
$this->table = $core->prefix.'pref';
|
||||||
|
$this->user_id =& $user_id;
|
||||||
|
$this->loadPrefs();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves all workspaces (and their prefs) from database, with one query.
|
||||||
|
*/
|
||||||
|
private function loadPrefs()
|
||||||
|
{
|
||||||
|
$strReq = 'SELECT user_id, pref_id, pref_value, '.
|
||||||
|
'pref_type, pref_label, pref_ws '.
|
||||||
|
'FROM '.$this->table.' '.
|
||||||
|
"WHERE user_id = '".$this->con->escape($this->user_id)."' ".
|
||||||
|
'OR user_id IS NULL '.
|
||||||
|
'ORDER BY pref_ws ASC, pref_id ASC';
|
||||||
|
try {
|
||||||
|
$rs = $this->con->select($strReq);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
trigger_error(__('Unable to retrieve workspaces:').' '.$this->con->error(), E_USER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Prevent empty tables (install phase, for instance) */
|
||||||
|
if ($rs->isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
do {
|
||||||
|
$ws = trim($rs->f('pref_ws'));
|
||||||
|
if (!$rs->isStart()) {
|
||||||
|
// we have to go up 1 step, since workspaces construction performs a fetch()
|
||||||
|
// at very first time
|
||||||
|
$rs->movePrev();
|
||||||
|
}
|
||||||
|
$this->workspaces[$ws] = new dcWorkspace($GLOBALS['core'], $this->user_id, $ws,$rs);
|
||||||
|
} while(!$rs->isStart());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Create a new workspace. If the workspace already exists, return it without modification.
|
||||||
|
|
||||||
|
@param ws <b>string</b> Workspace name
|
||||||
|
@return <b>dcWorkspace</b> The workspace created
|
||||||
|
*/
|
||||||
|
public function addWorkspace($ws)
|
||||||
|
{
|
||||||
|
if (!array_key_exists($ws, $this->workspaces)) {
|
||||||
|
$this->workspaces[$ws] = new dcWorkspace($GLOBALS['core'], $this->user_id, $ws);
|
||||||
|
}
|
||||||
|
return $this->workspaces[$ws];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns full workspace with all prefs pertaining to it.
|
||||||
|
|
||||||
|
@param ws <b>string</b> Workspace name
|
||||||
|
@return <b>dcWorkspace</b>
|
||||||
|
*/
|
||||||
|
public function get($ws)
|
||||||
|
{
|
||||||
|
if (array_key_exists($ws, $this->workspaces)) {
|
||||||
|
return $this->workspaces[$ws];
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Magic __get method.
|
||||||
|
@copydoc ::get
|
||||||
|
*/
|
||||||
|
public function __get($n)
|
||||||
|
{
|
||||||
|
return $this->get($n);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns $workspaces property content.
|
||||||
|
|
||||||
|
@return <b>array</b>
|
||||||
|
*/
|
||||||
|
public function dumpWorkspaces()
|
||||||
|
{
|
||||||
|
return $this->workspaces;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,325 @@
|
||||||
|
<?php
|
||||||
|
# -- BEGIN LICENSE BLOCK ---------------------------------------
|
||||||
|
#
|
||||||
|
# This file is part of Dotclear 2.
|
||||||
|
#
|
||||||
|
# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
|
||||||
|
# Licensed under the GPL version 2.0 license.
|
||||||
|
# See LICENSE file or
|
||||||
|
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
#
|
||||||
|
# -- END LICENSE BLOCK -----------------------------------------
|
||||||
|
if (!defined('DC_RC_PATH')) { return; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
@ingroup DC_CORE
|
||||||
|
@brief User workspace for preferences handler
|
||||||
|
|
||||||
|
*/
|
||||||
|
class dcWorkspace
|
||||||
|
{
|
||||||
|
protected $con; ///< <b>connection</b> Database connection object
|
||||||
|
protected $table; ///< <b>string</b> Preferences table name
|
||||||
|
protected $user_id; ///< <b>string</b> User ID
|
||||||
|
|
||||||
|
protected $global_prefs = array(); ///< <b>array</b> Global prefs array
|
||||||
|
protected $local_prefs = array(); ///< <b>array</b> Local prefs array
|
||||||
|
protected $prefs = array(); ///< <b>array</b> Associative prefs array
|
||||||
|
protected $ws; ///< <b>string</b> Current workspace
|
||||||
|
|
||||||
|
/**
|
||||||
|
Object constructor. Retrieves user prefs and puts them in $prefs
|
||||||
|
array. Local (user) prefs have a highest priority than global prefs.
|
||||||
|
|
||||||
|
@param name <b>string</b> ID for this workspace
|
||||||
|
*/
|
||||||
|
public function __construct(&$core, $user_id, $name, $rs=null)
|
||||||
|
{
|
||||||
|
if (preg_match('/^[a-zA-Z][a-zA-Z0-9]+$/',$name)) {
|
||||||
|
$this->ws = $name;
|
||||||
|
} else {
|
||||||
|
throw new Exception(sprintf(__('Invalid dcWorkspace: %s'),$name));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->con =& $core->con;
|
||||||
|
$this->table = $core->prefix.'pref';
|
||||||
|
$this->user_id =& $user_id;
|
||||||
|
|
||||||
|
$this->getPrefs($rs);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getPrefs($rs=null)
|
||||||
|
{
|
||||||
|
if ($rs == null) {
|
||||||
|
$strReq = 'SELECT user_id, pref_id, pref_value, '.
|
||||||
|
'pref_type, pref_label, pref_ws '.
|
||||||
|
'FROM '.$this->table.' '.
|
||||||
|
"WHERE (user_id = '".$this->con->escape($this->user_id)."' ".
|
||||||
|
'OR user_id IS NULL) '.
|
||||||
|
"AND pref_ws = '".$this->con->escape($this->ws)."' ".
|
||||||
|
'ORDER BY pref_id ASC ';
|
||||||
|
|
||||||
|
try {
|
||||||
|
$rs = $this->con->select($strReq);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
trigger_error(__('Unable to retrieve prefs:').' '.$this->con->error(), E_USER_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while ($rs->fetch())
|
||||||
|
{
|
||||||
|
if ($rs->f('pref_ws') != $this->ws){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$id = trim($rs->f('pref_id'));
|
||||||
|
$value = $rs->f('pref_value');
|
||||||
|
$type = $rs->f('pref_type');
|
||||||
|
|
||||||
|
if ($type == 'float' || $type == 'double') {
|
||||||
|
$type = 'float';
|
||||||
|
} elseif ($type != 'boolean' && $type != 'integer') {
|
||||||
|
$type = 'string';
|
||||||
|
}
|
||||||
|
|
||||||
|
settype($value,$type);
|
||||||
|
|
||||||
|
$array = $rs->user_id ? 'local' : 'global';
|
||||||
|
|
||||||
|
$this->{$array.'_prefs'}[$id] = array(
|
||||||
|
'ws' => $this->ws,
|
||||||
|
'value' => $value,
|
||||||
|
'type' => $type,
|
||||||
|
'label' => (string) $rs->f('pref_label'),
|
||||||
|
'global' => $rs->user_id == ''
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->prefs = $this->global_prefs;
|
||||||
|
|
||||||
|
foreach ($this->local_prefs as $id => $v) {
|
||||||
|
$this->prefs[$id] = $v;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function prefExists($id,$global=false)
|
||||||
|
{
|
||||||
|
$array = $global ? 'global' : 'local';
|
||||||
|
return isset($this->{$array.'_prefs'}[$id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns pref value if exists.
|
||||||
|
|
||||||
|
@param n <b>string</b> Pref name
|
||||||
|
@return <b>mixed</b>
|
||||||
|
*/
|
||||||
|
public function get($n)
|
||||||
|
{
|
||||||
|
if (isset($this->prefs[$n]['value'])) {
|
||||||
|
return $this->prefs[$n]['value'];
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Magic __get method.
|
||||||
|
@copydoc ::get
|
||||||
|
*/
|
||||||
|
public function __get($n)
|
||||||
|
{
|
||||||
|
return $this->get($n);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Sets a pref in $prefs property. This sets the pref for script
|
||||||
|
execution time only and if pref exists.
|
||||||
|
|
||||||
|
@param n <b>string</b> Pref name
|
||||||
|
@param v <b>mixed</b> Pref value
|
||||||
|
*/
|
||||||
|
public function set($n,$v)
|
||||||
|
{
|
||||||
|
if (isset($this->prefs[$n])) {
|
||||||
|
$this->prefs[$n]['value'] = $v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Magic __set method.
|
||||||
|
@copydoc ::set
|
||||||
|
*/
|
||||||
|
public function __set($n,$v)
|
||||||
|
{
|
||||||
|
$this->set($n,$v);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Creates or updates a pref.
|
||||||
|
|
||||||
|
$type could be 'string', 'integer', 'float', 'boolean' or null. If $type is
|
||||||
|
null and pref exists, it will keep current pref type.
|
||||||
|
|
||||||
|
$value_change allow you to not change pref. Useful if you need to change
|
||||||
|
a pref label or type and don't want to change its value.
|
||||||
|
|
||||||
|
@param id <b>string</b> Pref ID
|
||||||
|
@param value <b>mixed</b> Pref value
|
||||||
|
@param type <b>string</b> Pref type
|
||||||
|
@param label <b>string</b> Pref label
|
||||||
|
@param value_change <b>boolean</b> Change pref value or not
|
||||||
|
@param global <b>boolean</b> Pref is global
|
||||||
|
*/
|
||||||
|
public function put($id,$value,$type=null,$label=null,$value_change=true,$global=false)
|
||||||
|
{
|
||||||
|
if (!preg_match('/^[a-zA-Z][a-zA-Z0-9_]+$/',$id)) {
|
||||||
|
throw new Exception(sprintf(__('%s is not a valid pref id'),$id));
|
||||||
|
}
|
||||||
|
|
||||||
|
# We don't want to change pref value
|
||||||
|
if (!$value_change)
|
||||||
|
{
|
||||||
|
if (!$global && $this->prefExists($id,false)) {
|
||||||
|
$value = $this->local_prefs[$id]['value'];
|
||||||
|
} elseif ($this->prefExists($id,true)) {
|
||||||
|
$value = $this->global_prefs[$id]['value'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Pref type
|
||||||
|
if ($type == 'double')
|
||||||
|
{
|
||||||
|
$type = 'float';
|
||||||
|
}
|
||||||
|
elseif ($type === null)
|
||||||
|
{
|
||||||
|
if (!$global && $this->prefExists($id,false)) {
|
||||||
|
$type = $this->local_prefs[$id]['type'];
|
||||||
|
} elseif ($this->prefExists($id,true)) {
|
||||||
|
$type = $this->global_prefs[$id]['type'];
|
||||||
|
} else {
|
||||||
|
$type = 'string';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif ($type != 'boolean' && $type != 'integer' && $type != 'float')
|
||||||
|
{
|
||||||
|
$type = 'string';
|
||||||
|
}
|
||||||
|
|
||||||
|
# We don't change label
|
||||||
|
if ($label == null)
|
||||||
|
{
|
||||||
|
if (!$global && $this->prefExists($id,false)) {
|
||||||
|
$label = $this->local_prefs[$id]['label'];
|
||||||
|
} elseif ($this->prefExists($id,true)) {
|
||||||
|
$label = $this->global_prefs[$id]['label'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settype($value,$type);
|
||||||
|
|
||||||
|
$cur = $this->con->openCursor($this->table);
|
||||||
|
$cur->pref_value = ($type == 'boolean') ? (string) (integer) $value : (string) $value;
|
||||||
|
$cur->pref_type = $type;
|
||||||
|
$cur->pref_label = $label;
|
||||||
|
|
||||||
|
#If we are local, compare to global value
|
||||||
|
if (!$global && $this->prefExists($id,true))
|
||||||
|
{
|
||||||
|
$g = $this->global_prefs[$id];
|
||||||
|
$same_pref = $g['ws'] == $this->ws && $g['value'] == $value
|
||||||
|
&& $g['type'] == $type && $g['label'] == $label;
|
||||||
|
|
||||||
|
# Drop pref if same value as global
|
||||||
|
if ($same_pref && $this->prefExists($id,false)) {
|
||||||
|
$this->drop($id);
|
||||||
|
} elseif ($same_pref) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->prefExists($id,$global) && $this->ws == $this->prefs[$id]['ws'])
|
||||||
|
{
|
||||||
|
if ($global) {
|
||||||
|
$where = 'WHERE user_id IS NULL ';
|
||||||
|
} else {
|
||||||
|
$where = "WHERE user_id = '".$this->con->escape($this->user_id)."' ";
|
||||||
|
}
|
||||||
|
|
||||||
|
$cur->update($where."AND pref_id = '".$this->con->escape($id)."' AND pref_ws = '".$this->con->escape($this->ws)."' ");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$cur->pref_id = $id;
|
||||||
|
$cur->user_id = $global ? null : $this->user_id;
|
||||||
|
$cur->pref_ws = $this->ws;
|
||||||
|
|
||||||
|
$cur->insert();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Removes an existing pref. Workspace
|
||||||
|
|
||||||
|
@param id <b>string</b> Pref ID
|
||||||
|
*/
|
||||||
|
public function drop($id)
|
||||||
|
{
|
||||||
|
if (!$this->ws) {
|
||||||
|
throw new Exception(__('No workspace specified'));
|
||||||
|
}
|
||||||
|
|
||||||
|
$strReq = 'DELETE FROM '.$this->table.' ';
|
||||||
|
|
||||||
|
if ($this->user_id === null) {
|
||||||
|
$strReq .= 'WHERE user_id IS NULL ';
|
||||||
|
$global = true;
|
||||||
|
} else {
|
||||||
|
$strReq .= "WHERE user_id = '".$this->con->escape($this->user_id)."' ";
|
||||||
|
$global = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$strReq .= "AND pref_id = '".$this->con->escape($id)."' ";
|
||||||
|
$strReq .= "AND pref_ws = '".$this->con->escape($this->ws)."' ";
|
||||||
|
|
||||||
|
$this->con->execute($strReq);
|
||||||
|
|
||||||
|
if ($this->prefExists($id,$global)) {
|
||||||
|
$array = $global ? 'global' : 'local';
|
||||||
|
unset($this->{$array.'_prefs'}[$id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns $prefs property content.
|
||||||
|
|
||||||
|
@return <b>array</b>
|
||||||
|
*/
|
||||||
|
public function dumpPrefs()
|
||||||
|
{
|
||||||
|
return $this->prefs;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns $local_prefs property content.
|
||||||
|
|
||||||
|
@return <b>array</b>
|
||||||
|
*/
|
||||||
|
public function dumpLocalPrefs()
|
||||||
|
{
|
||||||
|
return $this->local_prefs;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns $global_prefs property content.
|
||||||
|
|
||||||
|
@return <b>array</b>
|
||||||
|
*/
|
||||||
|
public function dumpGlobalPrefs()
|
||||||
|
{
|
||||||
|
return $this->global_prefs;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
|
@ -26,7 +26,7 @@ header('Content-Type: text/html; charset=utf-8');
|
||||||
body {
|
body {
|
||||||
font: 62.5%/1.5em "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
|
font: 62.5%/1.5em "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
|
||||||
color : #000;
|
color : #000;
|
||||||
background : #eceade;
|
background : #E5E3DA;
|
||||||
margin : 0;
|
margin : 0;
|
||||||
padding : 0;
|
padding : 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -210,6 +210,17 @@ $_s->meta
|
||||||
->primary('pk_meta','meta_id','meta_type','post_id')
|
->primary('pk_meta','meta_id','meta_type','post_id')
|
||||||
;
|
;
|
||||||
|
|
||||||
|
$_s->pref
|
||||||
|
->pref_id ('varchar', 255, false)
|
||||||
|
->user_id ('varchar', 32, true)
|
||||||
|
->pref_ws ('varchar', 32, false, "'system'")
|
||||||
|
->pref_value ('text', 0, true, null)
|
||||||
|
->pref_type ('varchar', 8, false, "'string'")
|
||||||
|
->pref_label ('text', 0, true)
|
||||||
|
|
||||||
|
->unique('uk_pref','pref_ws','pref_id','user_id')
|
||||||
|
;
|
||||||
|
|
||||||
/* References indexes
|
/* References indexes
|
||||||
-------------------------------------------------------- */
|
-------------------------------------------------------- */
|
||||||
$_s->category->index ('idx_category_blog_id', 'btree', 'blog_id');
|
$_s->category->index ('idx_category_blog_id', 'btree', 'blog_id');
|
||||||
|
@ -227,6 +238,7 @@ $_s->log->index ('idx_log_user_id', 'btree', 'user_id');
|
||||||
$_s->comment->index ('idx_comment_post_id', 'btree', 'post_id');
|
$_s->comment->index ('idx_comment_post_id', 'btree', 'post_id');
|
||||||
$_s->meta->index ('idx_meta_post_id', 'btree','post_id');
|
$_s->meta->index ('idx_meta_post_id', 'btree','post_id');
|
||||||
$_s->meta->index ('idx_meta_meta_type', 'btree','meta_type');
|
$_s->meta->index ('idx_meta_meta_type', 'btree','meta_type');
|
||||||
|
$_s->pref->index ('idx_pref_user_id', 'btree', 'user_id');
|
||||||
|
|
||||||
/* Performance indexes
|
/* Performance indexes
|
||||||
-------------------------------------------------------- */
|
-------------------------------------------------------- */
|
||||||
|
@ -255,6 +267,7 @@ $_s->ping->reference('fk_ping_post','post_id','post','post_id','cascade','cascad
|
||||||
$_s->comment->reference('fk_comment_post','post_id','post','post_id','cascade','cascade');
|
$_s->comment->reference('fk_comment_post','post_id','post','post_id','cascade','cascade');
|
||||||
$_s->log->reference('fk_log_blog','blog_id','blog','blog_id','cascade','set null');
|
$_s->log->reference('fk_log_blog','blog_id','blog','blog_id','cascade','set null');
|
||||||
$_s->meta->reference('fk_meta_post','post_id','post','post_id','cascade','cascade');
|
$_s->meta->reference('fk_meta_post','post_id','post','post_id','cascade','cascade');
|
||||||
|
$_s->pref->reference('fk_pref_user','user_id','user','user_id','cascade','cascade');
|
||||||
|
|
||||||
/* PostgreSQL specific indexes
|
/* PostgreSQL specific indexes
|
||||||
-------------------------------------------------------- */
|
-------------------------------------------------------- */
|
||||||
|
@ -262,5 +275,6 @@ if ($_s->driver() == 'pgsql')
|
||||||
{
|
{
|
||||||
$_s->setting->index ('idx_setting_blog_id_null', 'btree', '(blog_id IS NULL)');
|
$_s->setting->index ('idx_setting_blog_id_null', 'btree', '(blog_id IS NULL)');
|
||||||
$_s->media->index ('idx_media_media_path', 'btree', 'media_path', 'media_dir');
|
$_s->media->index ('idx_media_media_path', 'btree', 'media_path', 'media_dir');
|
||||||
|
$_s->pref->index ('idx_pref_user_id_null', 'btree', '(user_id IS NULL)');
|
||||||
}
|
}
|
||||||
?>
|
?>
|
|
@ -142,6 +142,45 @@ function dotclearUpgrade($core)
|
||||||
$cur->update($sqlstr);
|
$cur->update($sqlstr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (version_compare($version,'2.3','<'))
|
||||||
|
{
|
||||||
|
# Add global favorites
|
||||||
|
$sqlstr = 'INSERT INTO `dc_pref` (`pref_id`, `user_id`, `pref_ws`, `pref_value`, `pref_type`, `pref_label`) VALUES';
|
||||||
|
$sqlstr .= '(\'g000\', NULL, \'favorites\', \'a:8:{s:4:"name";s:8:"new_post";s:5:"title";'.
|
||||||
|
's:'.strlen(__('New entry')).':"'.__('New entry').'";s:3:"url";s:8:"post.php";'.
|
||||||
|
's:10:"small-icon";s:20:"images/menu/edit.png";s:10:"large-icon";s:22:"images/menu/edit-b.png";'.
|
||||||
|
's:11:"permissions";s:18:"usage,contentadmin";s:2:"id";N;s:5:"class";s:13:"menu-new-post";}\', \'string\', NULL)';
|
||||||
|
$sqlstr .= '(\'g001\', NULL, \'favorites\', \'a:8:{s:4:"name";s:5:"posts";s:5:"title";'.
|
||||||
|
's:'.strlen(__('Entries')).':"'.__('Entries').'";s:3:"url";s:9:"posts.php";'.
|
||||||
|
's:10:"small-icon";s:23:"images/menu/entries.png";s:10:"large-icon";s:25:"images/menu/entries-b.png";'.
|
||||||
|
's:11:"permissions";s:18:"usage,contentadmin";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL)';
|
||||||
|
$sqlstr .= '(\'g002\', NULL, \'favorites\', \'a:8:{s:4:"name";s:8:"comments";s:5:"title";'.
|
||||||
|
's:'.strlen(__('Comments')).':"'.__('Comments').'";s:3:"url";s:12:"comments.php";'.
|
||||||
|
's:10:"small-icon";s:24:"images/menu/comments.png";s:10:"large-icon";s:26:"images/menu/comments-b.png";'.
|
||||||
|
's:11:"permissions";s:18:"usage,contentadmin";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL)';
|
||||||
|
$sqlstr .= '(\'g003\', NULL, \'favorites\', \'a:8:{s:4:"name";s:5:"prefs";s:5:"title";'.
|
||||||
|
's:'.strlen(__('My preferences')).':"'.__('My preferences').'";s:3:"url";s:15:"preferences.php";'.
|
||||||
|
's:10:"small-icon";s:25:"images/menu/user-pref.png";s:10:"large-icon";s:27:"images/menu/user-pref-b.png";'.
|
||||||
|
's:11:"permissions";s:1:"*";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL)';
|
||||||
|
$sqlstr .= '(\'g004\', NULL, \'favorites\', \'a:8:{s:4:"name";s:9:"blog_pref";s:5:"title";'.
|
||||||
|
's:'.strlen(__('Blog settings')).':"'.__('Blog settings').'";s:3:"url";s:13:"blog_pref.php";'.
|
||||||
|
's:10:"small-icon";s:25:"images/menu/blog-pref.png";s:10:"large-icon";s:27:"images/menu/blog-pref-b.png";'.
|
||||||
|
's:11:"permissions";s:5:"admin";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL)';
|
||||||
|
$sqlstr .= '(\'g005\', NULL, \'favorites\', \'a:8:{s:4:"name";s:10:"blog_theme";s:5:"title";'.
|
||||||
|
's:'.strlen(__('Blog appearance')).':"'.__('Blog appearance').'";s:3:"url";s:14:"blog_theme.php";'.
|
||||||
|
's:10:"small-icon";s:22:"images/menu/themes.png";s:10:"large-icon";s:28:"images/menu/blog-theme-b.png";'.
|
||||||
|
's:11:"permissions";s:5:"admin";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL)';
|
||||||
|
$sqlstr .= '(\'g006\', NULL, \'favorites\', \'a:8:{s:4:"name";s:5:"pages";s:5:"title";'.
|
||||||
|
's:'.strlen(__('Pages')).':"'.__('Pages').'";s:3:"url";s:18:"plugin.php?p=pages";'.
|
||||||
|
's:10:"small-icon";s:27:"index.php?pf=pages/icon.png";s:10:"large-icon";s:31:"index.php?pf=pages/icon-big.png";'.
|
||||||
|
's:11:"permissions";s:18:"contentadmin,pages";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL)';
|
||||||
|
$sqlstr .= '(\'g007\', NULL, \'favorites\', \'a:8:{s:4:"name";s:8:"blogroll";s:5:"title";'.
|
||||||
|
's:'.strlen(__('Blogroll')).':"'.__('Blogroll').'";s:3:"url";s:21:"plugin.php?p=blogroll";'.
|
||||||
|
's:10:"small-icon";s:36:"index.php?pf=blogroll/icon-small.png";s:10:"large-icon";s:30:"index.php?pf=blogroll/icon.png";'.
|
||||||
|
's:11:"permissions";s:18:"usage,contentadmin";s:2:"id";N;s:5:"class";N;}\', \'string\', NULL);';
|
||||||
|
$core->con->execute($sqlstr);
|
||||||
|
}
|
||||||
|
|
||||||
$core->setVersion('core',DC_VERSION);
|
$core->setVersion('core',DC_VERSION);
|
||||||
$core->blogDefaults();
|
$core->blogDefaults();
|
||||||
|
|
|
@ -6,8 +6,8 @@ msgstr ""
|
||||||
"Project-Id-Version: Dotclear 2\n"
|
"Project-Id-Version: Dotclear 2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-01-15 22:40+0100\n"
|
"POT-Creation-Date: 2011-01-15 22:40+0100\n"
|
||||||
"PO-Revision-Date: 2011-01-16 19:14+0100\n"
|
"PO-Revision-Date: 2011-04-19 13:57+0100\n"
|
||||||
"Last-Translator: xave <xave@dotclear.net>\n"
|
"Last-Translator: Franck Paul <carnet.franck.paul@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: \n"
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -2554,6 +2554,23 @@ msgstr "Impossible d'obtenir les espaces de nommage :"
|
||||||
msgid "Invalid setting namespace: %s"
|
msgid "Invalid setting namespace: %s"
|
||||||
msgstr "Espace de nommage du paramètre invalide : %s"
|
msgstr "Espace de nommage du paramètre invalide : %s"
|
||||||
|
|
||||||
|
msgid "Unable to retrieve workspaces:"
|
||||||
|
msgstr "Impossible d'obtenir les espaces de travail :"
|
||||||
|
|
||||||
|
#, php-format
|
||||||
|
msgid "Invalid dcWorkspace: %s"
|
||||||
|
msgstr "Espace de travail de la préférence invalide : %s"
|
||||||
|
|
||||||
|
msgid "Unable to retrieve prefs:"
|
||||||
|
msgstr "Impossible d'obtenir les préférences :"
|
||||||
|
|
||||||
|
#, php-format
|
||||||
|
msgid "%s is not a valid pref id"
|
||||||
|
msgstr "%s n'est pas un identifiant de préférence valide"
|
||||||
|
|
||||||
|
msgid "No workspace specified"
|
||||||
|
msgstr "Aucun espace de travail spécifié"
|
||||||
|
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%s has still been pinged"
|
msgid "%s has still been pinged"
|
||||||
msgstr "Un rétrolien vers %s a déjà été fait"
|
msgstr "Un rétrolien vers %s a déjà été fait"
|
||||||
|
@ -2629,3 +2646,57 @@ msgstr "L'erreur suivante a été rencontrée lors de la tentative d'accès à l
|
||||||
|
|
||||||
#~ msgid "Name"
|
#~ msgid "Name"
|
||||||
#~ msgstr "Nom"
|
#~ msgstr "Nom"
|
||||||
|
|
||||||
|
msgid "My favorites"
|
||||||
|
msgstr "Mes favoris"
|
||||||
|
|
||||||
|
msgid "Add this page to my favorites"
|
||||||
|
msgstr "Ajouter cette page à mes favoris"
|
||||||
|
|
||||||
|
msgid "My profile"
|
||||||
|
msgstr "Mon profil"
|
||||||
|
|
||||||
|
msgid "My options"
|
||||||
|
msgstr "Mes options"
|
||||||
|
|
||||||
|
msgid "Default favorites"
|
||||||
|
msgstr "Favoris par défaut"
|
||||||
|
|
||||||
|
msgid "My preferences"
|
||||||
|
msgstr "Mes préférences"
|
||||||
|
|
||||||
|
msgid "Apply filters"
|
||||||
|
msgstr "Appliquer les filtres"
|
||||||
|
|
||||||
|
msgid "Go to site"
|
||||||
|
msgstr "Aller sur le site"
|
||||||
|
|
||||||
|
msgid "new window"
|
||||||
|
msgstr "nouvelle fenêtre"
|
||||||
|
|
||||||
|
msgid "Those favorites are displayed when My Favorites list is empty."
|
||||||
|
msgstr "Favoris affichés quand la liste Mes Favoris est vide."
|
||||||
|
|
||||||
|
msgid "Favorites have been successfully added."
|
||||||
|
msgstr "Les favoris ont été ajoutés avec succès."
|
||||||
|
|
||||||
|
msgid "Delete selected favorites"
|
||||||
|
msgstr "Retirer les favoris sélectionnés"
|
||||||
|
|
||||||
|
msgid "Add to my favorites"
|
||||||
|
msgstr "Ajouter à mes favoris"
|
||||||
|
|
||||||
|
msgid "Available favorites"
|
||||||
|
msgstr "Favoris disponibles"
|
||||||
|
|
||||||
|
msgid "Currently no personal favorites."
|
||||||
|
msgstr "La liste de vos favoris est vide pour le moment."
|
||||||
|
|
||||||
|
msgid "Are you sure you want to remove selected favorites?"
|
||||||
|
msgstr "Êtes-vous sûr de vouloir retirer les favoris sélectionnés ?"
|
||||||
|
|
||||||
|
msgid "Favorites have been successfully removed."
|
||||||
|
msgstr "Les favoris ont été retirés avec succès."
|
||||||
|
|
||||||
|
msgid "Favorites has been successfully updated."
|
||||||
|
msgstr "Les favoris ont été mis à jour avec succès."
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgstr ""
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2011-01-14 22:01+0100\n"
|
"POT-Creation-Date: 2011-01-14 22:01+0100\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: \n"
|
||||||
"Last-Translator: xave <xave@dotclear.net>\n"
|
"Last-Translator: Franck Paul <carnet.franck.paul@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: \n"
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -1382,6 +1382,18 @@ msgstr "ordre"
|
||||||
msgid "Remove widget"
|
msgid "Remove widget"
|
||||||
msgstr "Supprimer le widget"
|
msgstr "Supprimer le widget"
|
||||||
|
|
||||||
|
msgid "Preferences successfully updated"
|
||||||
|
msgstr "Préférences mises à jour avec succès"
|
||||||
|
|
||||||
|
msgid "Preferences definition successfully updated"
|
||||||
|
msgstr "Définition des préférences mise à jour avec succès"
|
||||||
|
|
||||||
|
msgid "user preferences"
|
||||||
|
msgstr "préférences utilisateur"
|
||||||
|
|
||||||
|
msgid "global preferences"
|
||||||
|
msgstr "préférences globales"
|
||||||
|
|
||||||
#~ msgid "External media"
|
#~ msgid "External media"
|
||||||
#~ msgstr "Média externe"
|
#~ msgstr "Média externe"
|
||||||
|
|
||||||
|
|
|
@ -1,134 +0,0 @@
|
||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# This file is put in the public domain.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
||||||
#
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: Dotclear 2\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2008-04-15 16:27+0200\n"
|
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
||||||
"Language: \n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
|
|
||||||
msgid "%Y-%m-%d %H:%M"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Jan"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Feb"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Mar"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Apr"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_May"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Jun"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Jul"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Aug"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Sep"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Oct"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Nov"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Dec"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "January"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "February"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "March"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "April"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "May"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "June"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "July"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "August"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "September"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "October"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "November"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "December"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Mon"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Tue"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Wed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Thu"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Fri"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Sat"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "_Sun"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Monday"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Tuesday"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Wednesday"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Thursday"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Friday"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Saturday"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Sunday"
|
|
||||||
msgstr ""
|
|
|
@ -1,55 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Blowup theme configuration</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<p>Modifying Blowup theme configuration allows you to customize your theme very easily. To do so, simply fill in the configuration fields or choose a predefined style.</p>
|
|
||||||
|
|
||||||
<h3>Colors</h3>
|
|
||||||
|
|
||||||
<p>When you have to enter a color value, you should use the hexadecimal format. For example: "#FF0000" will give you red. You may also use the color picker located next to every color field.</p>
|
|
||||||
<p>If you lack inspiration, try and visit the following pages:</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://en.wikipedia.org/wiki/List_of_colors">Color code list</a> (Wikipedia)</li>
|
|
||||||
<li><a href="http://kuler.adobe.com/">Adobe Kuler</a></li>
|
|
||||||
<li><a href="http://colorblender.com/">ColorBlender</a></li>
|
|
||||||
<li><a href="http://www.colorcombos.com/">ColorCombos</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Measurement units</h3>
|
|
||||||
|
|
||||||
<p>When you have to indicate a size, it must be followed by a measurement unit. For example: "1em". If you do not include the unit, pixels will be used as default measurement unit.</p>
|
|
||||||
<p>The following measurement units are available:</p>
|
|
||||||
<ul>
|
|
||||||
<li>px</li>
|
|
||||||
<li>em</li>
|
|
||||||
<li>ex</li>
|
|
||||||
<li>pt</li>
|
|
||||||
<li>%</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Header images</h3>
|
|
||||||
|
|
||||||
<p>You can choose a header image among the list to use in place of the default one.</p>
|
|
||||||
|
|
||||||
<p>When you choose "Custom..." in the image list, you will be able to upload your own image. <strong>The image file must be in JPG or PNG format and must be precisely 800px wide.</strong>
|
|
||||||
|
|
||||||
<p>If you upload a JPG image, a border will be added to the image, which is not the case with PNG images (the transparency of which will also be kept).</p>
|
|
||||||
|
|
||||||
<h3>Predefined styles</h3>
|
|
||||||
|
|
||||||
<p>You can choose a predefined style in the "Predefinite styles" drop-down list.
|
|
||||||
Once you have chosen the style, you have to submit the form to apply the modifications.</p>
|
|
||||||
|
|
||||||
<p>You may then modify the predefined style according to your taste and needs.</p>
|
|
||||||
|
|
||||||
<h3>Configuration import / export</h3>
|
|
||||||
|
|
||||||
<p>At the end of Blowup options, you can display an area names "Configuration import/export". This text area contains the configuration you are currently using. You can copy it to share it with others.</p>
|
|
||||||
|
|
||||||
<p>To apply (import) a configuration, you simply need to replace the content of the text area with the configuration you want to use. Don't forget to click on "apply code".</p>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,148 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Blog settings</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h3>Blog details</h3>
|
|
||||||
<dl>
|
|
||||||
<dt>Blog ID</dt>
|
|
||||||
<dd>Unique ID of the blog. Mandatory, can only be modified by a super administrator.</dd>
|
|
||||||
|
|
||||||
<dt>Blog name</dt>
|
|
||||||
<dd>Name of the blog, mandatory.</dd>
|
|
||||||
|
|
||||||
<dt>Blog URL</dt>
|
|
||||||
<dd>Complete blog URL. Mandatory, can only be modified by a super administrator.</dd>
|
|
||||||
|
|
||||||
<dt>Blog status</dt>
|
|
||||||
<dd>
|
|
||||||
<ul>
|
|
||||||
<li><strong>online</strong>: blog open to visitors</li>
|
|
||||||
<li><strong>offline</strong>: blog closed to visitors
|
|
||||||
but open to writers.</li>
|
|
||||||
<li><strong>removed</strong>: blog closed to both visitors and writers.</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>Blog description</dt>
|
|
||||||
<dd>Here you can put any description you want for your blog. This is a
|
|
||||||
simple text, without formatting.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3>Blog configuration</h3>
|
|
||||||
<dl>
|
|
||||||
<dt>Blog editor's name</dt>
|
|
||||||
<dd>Name of the person responsible for the blog. It may be the owner or the
|
|
||||||
publisher if he exists.</dd>
|
|
||||||
|
|
||||||
<dt>Copyright notice</dt>
|
|
||||||
<dd>Note about the reproduction rights for the blog.</dd>
|
|
||||||
|
|
||||||
<dt>Default language</dt>
|
|
||||||
<dd>Language of the blog interface. Either this language is among the avalaible ones,
|
|
||||||
and the interface will be translated, or it is not, and the interface will then
|
|
||||||
default to English.</dd>
|
|
||||||
|
|
||||||
<dt>Blog timezone</dt>
|
|
||||||
<dd>Defines the timezone that will be used for comments and trackbacks.</dd>
|
|
||||||
|
|
||||||
<dt>Date formats</dt>
|
|
||||||
<dd>The date format of the blog posts. See the date and time
|
|
||||||
format reference section below for further details.</dd>
|
|
||||||
|
|
||||||
<dt>Time format</dt>
|
|
||||||
<dd>The time format of the blog posts. See the date and time
|
|
||||||
format reference section below for further details.</dd>
|
|
||||||
|
|
||||||
<dt>Display .. entries per page</dt>
|
|
||||||
<dd>The number will be used as the limit for the number of entries
|
|
||||||
on the homepage, the first page of each category and the rss feeds.</dd>
|
|
||||||
|
|
||||||
<dt>Leave comments open for .. days</dt>
|
|
||||||
<dd>The number of days during wich comments and trackbacks will be open
|
|
||||||
after the post publication. When empty, the comments will be kept open
|
|
||||||
indefinitly.</dd>
|
|
||||||
|
|
||||||
<dt>Display smilies on entries and comments </dt>
|
|
||||||
<dd>Display sequences of characters as :-) or ;-) as images.</dd>
|
|
||||||
|
|
||||||
<dt>Accept comments</dt>
|
|
||||||
<dd>Globally accepts comments on the blog. Takes precedence over the
|
|
||||||
per post setting.</dd>
|
|
||||||
|
|
||||||
<dt>Accept trackbacks</dt>
|
|
||||||
<dd>Globally accepts trackbacks on the blog. Takes precedence over the
|
|
||||||
per post setting.</dd>
|
|
||||||
|
|
||||||
<dt>Moderate comments and trackbacks</dt>
|
|
||||||
<dd>With such an option, comments and trackbacks will be published after
|
|
||||||
editor agreement.</dd>
|
|
||||||
|
|
||||||
<dt>Add "nofollow" relation on comments and trackbacks links</dt>
|
|
||||||
<dd>Adds an attribut on the links in comments and trackbacks, instructing the
|
|
||||||
search bots not to follow those links. This antispam features has yet to
|
|
||||||
prove its value.</dd>
|
|
||||||
|
|
||||||
<dt>Wiki syntax for comments </dt>
|
|
||||||
<dd>Allows a subset of the wiki syntax to be used in comments.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3>Format reference</h3>
|
|
||||||
<p>Some fields can be configured to format the date and time to your needs.
|
|
||||||
Here is a reference:</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><strong>%a</strong>: abreviated week day (local).</li>
|
|
||||||
<li><strong>%A</strong>: complete week day (local).</li>
|
|
||||||
<li><strong>%b</strong>: abbreviated month name (local).</li>
|
|
||||||
<li><strong>%B</strong>: complete month name (local).</li>
|
|
||||||
<li><strong>%c</strong>: default local date and time display.</li>
|
|
||||||
<li><strong>%C</strong>: century (the year, divided by 100 and
|
|
||||||
round up beetween 00 and 99)</li>
|
|
||||||
<li><strong>%d</strong>: numeric month day (from 01 to 31)</li>
|
|
||||||
<li><strong>%D</strong>: identical to %m/%d/%y</li>
|
|
||||||
<li><strong>%e</strong>: numeric month day (from 1 to 31)</li>
|
|
||||||
<li><strong>%g</strong>: identical to %G, 2 digits.</li>
|
|
||||||
<li><strong>%G</strong>: The year on 4 digits, according to the week number
|
|
||||||
(cf. %V). Format and value identical to %Y, except that if the number of the
|
|
||||||
week belongs to the preceding or following year, the current year
|
|
||||||
will be used instead.</li>
|
|
||||||
<li><strong>%h</strong>: identical to %b</li>
|
|
||||||
<li><strong>%H</strong>: digital hour of the day, 24H mode
|
|
||||||
(from 00 to 23)</li>
|
|
||||||
<li><strong>%I</strong>: digital hour of the day, 12H mode
|
|
||||||
(from 01 to 12)</li>
|
|
||||||
<li><strong>%j</strong>: day of the year, digital (from 001 to 366)</li>
|
|
||||||
<li><strong>%m</strong>: month, digital (from 1 à 12)</li>
|
|
||||||
<li><strong>%M</strong>: minute, digital</li>
|
|
||||||
<li><strong>%n</strong>: newline character</li>
|
|
||||||
<li><strong>%p</strong>: either `am' or `pm', according to the absolute time,
|
|
||||||
or depending of the local settings.</li>
|
|
||||||
<li><strong>%r</strong>: the hour, a.m. and p.m. format</li>
|
|
||||||
<li><strong>%R</strong>: the hour, 24h format</li>
|
|
||||||
<li><strong>%S</strong>: seconds, digital</li>
|
|
||||||
<li><strong>%t</strong>: tab character</li>
|
|
||||||
<li><strong>%T</strong>: the current time (identical to %H:%M:%S)</li>
|
|
||||||
<li><strong>%u</strong>: day week, digit, from 1 to 7. (1 stands for monday)</li>
|
|
||||||
<li><strong>%U</strong>: week number, the first sundqy of the year being the
|
|
||||||
first day of the first week.</li>
|
|
||||||
<li><strong>%V</strong>: the week numpber as defined in ISO
|
|
||||||
8601:1988, digital, from 01 to 53. The week 1 is the first week
|
|
||||||
with more than 4 days in the current year, whose monday is the first day.
|
|
||||||
(Use %G or %g for the year elements corresponding to the number of the
|
|
||||||
week for the considered timestamp.)</li>
|
|
||||||
<li><strong>%W</strong>: number of the week in the year, the first monday of
|
|
||||||
the year being the start of the first week</li>
|
|
||||||
<li><strong>%w</strong>: day of the week, digital, 0 stands for sunday</li>
|
|
||||||
<li><strong>%x</strong>: prefered format for the date without the time</li>
|
|
||||||
<li><strong>%X</strong>: prefered format for the time without the date</li>
|
|
||||||
<li><strong>%y</strong>: the year, two digits (from 00 to 99)</li>
|
|
||||||
<li><strong>%Y</strong>: the year, four digits</li>
|
|
||||||
<li><strong>%Z ou %z</strong>: timezone, name or abbreviation</li>
|
|
||||||
<li><strong>%%</strong>: a litteral `%' character</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,41 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Categories</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<h3>Categories list</h3>
|
|
||||||
<dl>
|
|
||||||
<dt>Create a new category</dt>
|
|
||||||
<dd>Choose the name you wish to use for your new category
|
|
||||||
then click on Save to validate its creation. To modify it,
|
|
||||||
click on its name in the list.</dd>
|
|
||||||
|
|
||||||
<dt>Change category order</dt>
|
|
||||||
<dd>To change the category order, drag and drop the categories by using
|
|
||||||
the arrow shaped images then click on <strong>save order</strong>.
|
|
||||||
If you do not see the arrows, use the numbered fields
|
|
||||||
beside each category.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3>Modifying a category</h3>
|
|
||||||
<dl>
|
|
||||||
<dt>Title</dt>
|
|
||||||
<dd>Choose the name you wish to give to your category
|
|
||||||
the click on Save to validate.</dd>
|
|
||||||
|
|
||||||
<dt>URL</dt>
|
|
||||||
<dd>DotClear creates a default url for the category, making it reachable
|
|
||||||
with a path similar to this one :
|
|
||||||
<strong>http://monblog.tld/category/My-category</strong>. You can click
|
|
||||||
on the small lock on the right to modify it according to your needs.</dd>
|
|
||||||
|
|
||||||
<dt>Description</dt>
|
|
||||||
<dd>What's inside the description field will be shown when selecting
|
|
||||||
one of the blog's categories. You can fill it with any kind of content
|
|
||||||
(paragraphs, lists, etc.) The format used for this field is HTML.</dd>
|
|
||||||
<!-- question : tous medias acceptés ? -->
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,58 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Comments</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<h3>Filters for comment list</h3>
|
|
||||||
<dl>
|
|
||||||
<dt>Type:</dt>
|
|
||||||
<dd>None, comments or trackbacks.</dd>
|
|
||||||
|
|
||||||
<dt>Status:</dt>
|
|
||||||
<dd><ul>
|
|
||||||
<li><strong>junk</strong>: <!-- Pour spampl' ? --></li>
|
|
||||||
<li><strong>pending</strong>: <!-- Modération ? --></li>
|
|
||||||
<li><strong>unpublished</strong>: offline ;</li>
|
|
||||||
<li><strong>published</strong>: online.</li>
|
|
||||||
</ul></dd>
|
|
||||||
|
|
||||||
<dt>Order by:</dt>
|
|
||||||
<dd>Choose: date, entry title, author or status, then
|
|
||||||
choose the sort order.</dd>
|
|
||||||
|
|
||||||
<dt>Sort</dt>
|
|
||||||
<dd>Choose whether the list will be sorted in ascending or descending order.</dd>
|
|
||||||
|
|
||||||
<dt>Comment author.</dt>
|
|
||||||
<dd>The search is not case sensitive. If you want to search only a part of
|
|
||||||
the name, you can use the <strong>*</strong> generic character.</dd>
|
|
||||||
|
|
||||||
<dt>Comments per page :</dt>
|
|
||||||
<dd>Allows you to choose the number of comments on each page of this list.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3>Modify or add a comment</h3>
|
|
||||||
<dl>
|
|
||||||
<dt>Author:</dt>
|
|
||||||
<dd>Author name. This field is mandatory.</dd>
|
|
||||||
|
|
||||||
<dt>Email:</dt>
|
|
||||||
<dd>Author's email address.</dd>
|
|
||||||
|
|
||||||
<dt>Web site:</dt>
|
|
||||||
<dd>URL of the comment author's blog or website.</dd>
|
|
||||||
|
|
||||||
<dt>Status:</dt>
|
|
||||||
<dd><ul>
|
|
||||||
<li><strong>junk</strong>: <!-- Pour spampl' ? --></li>
|
|
||||||
<li><strong>pending</strong>: <!-- Modération ? --></li>
|
|
||||||
<li><strong>unpublished</strong>: offline</li>
|
|
||||||
<li><strong>published</strong>: online</li>
|
|
||||||
</ul></dd>
|
|
||||||
|
|
||||||
<dt>Comment:</dt>
|
|
||||||
<dd>Comment's content. This field is html formated.</dd>
|
|
||||||
</dl>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,89 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Media manager</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h3>Media list</h3>
|
|
||||||
<p>The media manager's main page displays a list of available files (medias)
|
|
||||||
for the currently selected blog.</p>
|
|
||||||
|
|
||||||
<p>You can click the icons or names of the medias in the folder or any
|
|
||||||
subfolder to display them.</p>
|
|
||||||
|
|
||||||
<p>Selecting a MP3 sound file displays a player to immediately play
|
|
||||||
the file. The Flash plugin must be installed on your browser for
|
|
||||||
this player to operate.</p>
|
|
||||||
|
|
||||||
<p>The images are displayed with a thumbnail when possible.</p>
|
|
||||||
|
|
||||||
<h3>Add files</h3>
|
|
||||||
<dl>
|
|
||||||
<dt>Choose a file</dt>
|
|
||||||
<dd>Here you can select one of your local files to send it on your
|
|
||||||
blog. Should the file be bigger than the maximum size, it will not be sent.</dd>
|
|
||||||
|
|
||||||
<dt>Title</dt>
|
|
||||||
<dd>Optional title for the file you want to send.</dd>
|
|
||||||
|
|
||||||
<dt>Private</dt>
|
|
||||||
<dd>Check this if you want the file to be private, i.e. accessible only by
|
|
||||||
its owner and not accessible from the blog.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3>New folder</h3>
|
|
||||||
<p>This form allows you to create an new subfolder in the currently displayed
|
|
||||||
folder. Just choose a name for it as you would do on your own computer.</p>
|
|
||||||
|
|
||||||
<h3>Media details</h3>
|
|
||||||
<p>This page displays a set of informations about the currently selected
|
|
||||||
file and allows you to perform a few operations.</p>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt>File name</dt>
|
|
||||||
<dd>Change the file name of the current file.</dd>
|
|
||||||
|
|
||||||
<dt>File title</dt>
|
|
||||||
<dd>Give a title to the file, or change the current one.</dd>
|
|
||||||
|
|
||||||
<dt>File date</dt>
|
|
||||||
<dd>Change the file date.</dd>
|
|
||||||
|
|
||||||
<dt>Private</dt>
|
|
||||||
<dd>Specify that the file will be hidden to anyone but its owner in the media manager.</dd>
|
|
||||||
|
|
||||||
<dt>New directory</dt>
|
|
||||||
<dd>Allows you to move the file in another folder.</dd>
|
|
||||||
|
|
||||||
<dt>Change file</dt>
|
|
||||||
<dd>With this form, you can replace the file while keeping all the attributes
|
|
||||||
(name, title...). As always, you have to respect the maximum file size.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3>A specific treatment for images</h3>
|
|
||||||
<p>When you add an image, depending of its size, up to four versions will be made available:</p>
|
|
||||||
<ul>
|
|
||||||
<li><strong>square</strong>: a 48x48 pixels square thumbnail,</li>
|
|
||||||
<li><strong>thumbnail</strong>: the image reduced to 100 pixels on its longest side.</li>
|
|
||||||
<li><strong>small</strong>: the longuest side is reduced to 240 pixels.</li>
|
|
||||||
<li><strong>medium</strong>: the longuest side is reduced to 500 pixels.</li>
|
|
||||||
<li><strong>originale</strong>: the original, unchanged image.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Add a file to an entry</h3>
|
|
||||||
<p>You can easily attach a file to one of your posts. First, create a new post
|
|
||||||
and save it. Then click on "Add files to this entry" to open the media manager.</p>
|
|
||||||
|
|
||||||
<p>Just click on the [+] icon (Attach this file to entry). The file will then
|
|
||||||
be attached to the post.</p>
|
|
||||||
|
|
||||||
<p>The attached files will be shown on the post page, as a list beside the post content.
|
|
||||||
The MP3 files will be made available through the Flash player, so that they can easily by read by visitors.</p>
|
|
||||||
|
|
||||||
<h3>Podcast and broadcasting of music files</h3>
|
|
||||||
<p>All attached files will be included in your RSS feeds, allowing for easy
|
|
||||||
podcasting of any type of file.</p>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,125 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Editing an entry</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h3>Editing an entry</h3>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt>Entry title</dt>
|
|
||||||
<dd>Type in the entry title. This field is mandatory.</dd>
|
|
||||||
|
|
||||||
<dt>Excerpt</dt>
|
|
||||||
<dd>The content of this field will be shown in pages showing entries as
|
|
||||||
a list, such as the homepage or categories pages, followed by a "continue reading"
|
|
||||||
link. It will also be visible at the begining of the page showing the
|
|
||||||
whole post. Should you leave it blank, the <em>content</em> field will be shown
|
|
||||||
on the homepage and other entry list pages.</dd>
|
|
||||||
|
|
||||||
<dt>Content</dt>
|
|
||||||
<dd>The content of your entry. This field is mandatory.</dd>
|
|
||||||
|
|
||||||
<dt>Notes</dt>
|
|
||||||
<dd>This text area is for personal use, for notes or memos. What you enter here
|
|
||||||
will never be displayed on the blog..</dd>
|
|
||||||
|
|
||||||
<dt>Category</dt>
|
|
||||||
<dd>Your entry's category. To create a new category, please see the
|
|
||||||
"categories" section. You can choose to leave
|
|
||||||
you entry without a category by selecting the blank line.</dd>
|
|
||||||
|
|
||||||
<dt>Entry status</dt>
|
|
||||||
<dd>Allows you to choose your post's status:
|
|
||||||
<ul>
|
|
||||||
<li><strong>pending:</strong> the publication status has not yet been decided.</li>
|
|
||||||
<li><strong>scheduled:</strong> the post will be set online at the time and date
|
|
||||||
set in the <em>Published on</em> field.</li>
|
|
||||||
<li><strong>unpublished:</strong> the post is offline.</li>
|
|
||||||
<li><strong>published:</strong> the post is online.</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>Published on</dt>
|
|
||||||
<dd>Here you can change the post's publication date and time. If the post's
|
|
||||||
status is <em>scheduled</em>, it will come online at the said date and time.</dd>
|
|
||||||
|
|
||||||
<dt>Text formating</dt>
|
|
||||||
<dd>To choose the post syntax. Wiki is a simplified syntax
|
|
||||||
and will be converted to valid xhtml ; Unless you have a perfect
|
|
||||||
understanding of html, we advise you to choose the wiki syntax.
|
|
||||||
See the Wiki syntax reference for more information.</dd>
|
|
||||||
|
|
||||||
<dt>Accept comments</dt>
|
|
||||||
<dd>Select this box to allow your visitors to comment the entry. The corresponding
|
|
||||||
global setting is to be found in the blog settings.</dd>
|
|
||||||
|
|
||||||
<dt>Accept trackbacks</dt>
|
|
||||||
<dd>A trackback is a way to let a portion of your entry as a comment on
|
|
||||||
another blog. Select this box to allow others to trackback your entry. The
|
|
||||||
corresponding global setting is to be found in the blog settings.</dd>
|
|
||||||
|
|
||||||
<dt>Selected entry</dt>
|
|
||||||
<dd>The selected entries will be listed on your blog menu, under the title "Best
|
|
||||||
of me".</dd>
|
|
||||||
|
|
||||||
<dt>Entry password</dt>
|
|
||||||
<dd>You can enter a password for your entry. A password protected entry will
|
|
||||||
not be displayed on your blog, it will only be reachable to those you will
|
|
||||||
give the entry url (see the <em>view entry</em> link) and password.</dd>
|
|
||||||
|
|
||||||
<dt>Basename</dt>
|
|
||||||
<dd>By clicking on its lock, you can unprotect this field and and choose another
|
|
||||||
URL for your entry. If the URL you're trying to use is already used by another
|
|
||||||
entry, a number will be added to it.</dd>
|
|
||||||
|
|
||||||
<dt>Entry lang.</dt>
|
|
||||||
<dd>The two character language code of your entry. It defaults to your (as a
|
|
||||||
user) language but you can change it to whatever language code you want, ie.
|
|
||||||
"en" or "fr-qc". This code is used for the entry's display, no chack is made
|
|
||||||
on it.</dd>
|
|
||||||
|
|
||||||
<dt>Attachments</dt>
|
|
||||||
<dd>The attachments are all the medias you joined to the entry. The link <em>add
|
|
||||||
file to this entry</em> allows you to attach other files to the entry. Remember
|
|
||||||
to save your changes before clicking on this link. For further information,
|
|
||||||
see the media manager help.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3>Comments</h3>
|
|
||||||
<dl>
|
|
||||||
<dt>Comment list</dt>
|
|
||||||
<dd>On the <em>Comments</em> tab, you can read and change the status of
|
|
||||||
your entry's comments. If you're allowed to by the blog administrator,
|
|
||||||
you will be able to set your comments online or offline, to delete them or
|
|
||||||
to mark them as junk.</dd>
|
|
||||||
|
|
||||||
<dt>Add a comment</dt>
|
|
||||||
<dd>On the <em>Add a comment</em> tab, you can reply to one of your entry's
|
|
||||||
comments without leaving your blog's backend. The syntax to be used here is
|
|
||||||
plain, unlimited, xhtml. Use the fields as if you were modifying a comment.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3>Trackback</h3>
|
|
||||||
<p>To make a trackback, click on the <em>Ping blogs</em> link.
|
|
||||||
You will not see this link if your entry's status is not <em>published</em>.</p>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt>URLs to ping</dt>
|
|
||||||
<dd>Paste here the trackback URLs you found in the posts you want to ping.</dd>
|
|
||||||
|
|
||||||
|
|
||||||
<dt>Send excerpt</dt>
|
|
||||||
<dd>This field defaults to your entry's first few sentences. That's wht will be
|
|
||||||
sent to the blog you're pinging, along with a link to your post. You can modify
|
|
||||||
the excerpt by editing this field.</dd>
|
|
||||||
|
|
||||||
|
|
||||||
<dt>Auto discover ping URLs</dt>
|
|
||||||
<dd>If your entries links specific posts and if the blog carrying those posts
|
|
||||||
is set to allow it, this tool will find the URLs to ping for you.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,65 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Managing entries</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h3>Filters for the entry list</h3>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt>Author</dt>
|
|
||||||
<dd>Allows you to filter by author.</dd>
|
|
||||||
|
|
||||||
<dt>Category</dt>
|
|
||||||
<dd>Filter by category.</dd>
|
|
||||||
|
|
||||||
<dt>Status</dt>
|
|
||||||
<dd><ul>
|
|
||||||
<li><strong>pending:</strong> posts whose publication status has not yet
|
|
||||||
been decided.</li>
|
|
||||||
<li><strong>scheduled:</strong> post to be set online automatically.</li>
|
|
||||||
<li><strong>unpublished:</strong> offline posts.</li>
|
|
||||||
<li><strong>published:</strong> online posts.</li>
|
|
||||||
</ul></dd>
|
|
||||||
|
|
||||||
<dt>Selected</dt>
|
|
||||||
<dd>Only the selected posts, or the non selected ones.</dd>
|
|
||||||
|
|
||||||
<dt>Month</dt>
|
|
||||||
<dd>Filter on a specific month and year.</dd>
|
|
||||||
|
|
||||||
<dt>Language</dt>
|
|
||||||
<dd>Filter on the different languages used on the blog.</dd>
|
|
||||||
|
|
||||||
<dt>Order by</dt>
|
|
||||||
<dd>Defines the list order, either on the date, the title, the author,
|
|
||||||
the status or the selected status.</dd>
|
|
||||||
|
|
||||||
<dt>Sort</dt>
|
|
||||||
<dd>Choose whether the list will be sorted in ascending or descending order.</dd>
|
|
||||||
|
|
||||||
<dt>Entries per page</dt>
|
|
||||||
<dd>Number of entries that will be displayed on each page of the resulting
|
|
||||||
set.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3>Selected entry actions</h3>
|
|
||||||
<p>If your user permission level allows it, you can perform batch operations on the
|
|
||||||
entries you select in the list.</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><strong>Publish</strong>: set the entries online.</li>
|
|
||||||
<li><strong>Unpublish</strong>: set the entries offline.</li>
|
|
||||||
<li><strong>Schedule</strong>: schedule the entries to be set online at their
|
|
||||||
publication date.</li>
|
|
||||||
<li><strong>Mark as pending</strong>: erase other publication status.</li>
|
|
||||||
<li><strong>Change category</strong>: directs you to the category list to choose a
|
|
||||||
new one for the entries.</li>
|
|
||||||
<li><strong>Change author</strong>: allows you to change the posts' author by
|
|
||||||
entering the new author's ID.</li>
|
|
||||||
<li><strong>Delete</strong>: suppress the posts (this operation cannot be undone).</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,61 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>User preferences</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h3>User preferences</h3>
|
|
||||||
<dl>
|
|
||||||
<dt>Name, First name</dt>
|
|
||||||
<dd>If the display name is empty, the author's name will be displayed
|
|
||||||
as his Firstname and Name as set here.</dd>
|
|
||||||
|
|
||||||
<dt>Display name</dt>
|
|
||||||
<dd>You can choose here how your name will be displayed under your posts.</dd>
|
|
||||||
|
|
||||||
<dt>Email</dt>
|
|
||||||
<dd>Address where will be sent the new comment notifications.</dd>
|
|
||||||
|
|
||||||
<dt>URL</dt>
|
|
||||||
<dd>The user's web site. If set, the author name will be displayed as
|
|
||||||
a link to the said site.</dd>
|
|
||||||
|
|
||||||
<dt>Preferred format</dt>
|
|
||||||
<dd>To choose the prefered post syntax. Wiki is a simplified syntax
|
|
||||||
and will be converted to valid xhtml ; Unless you have a perfect
|
|
||||||
understanding of html, we advise you to choose the wiki syntax.</dd>
|
|
||||||
|
|
||||||
<dt>Default entry status</dt>
|
|
||||||
<dd>The default entry status can be set to:
|
|
||||||
<ul>
|
|
||||||
<li><strong>pending:</strong> the publication status has not yet been decided.</li>
|
|
||||||
<li><strong>scheduled:</strong> the post will be set online at the time and date
|
|
||||||
set in the <em>Published on</em> field.</li>
|
|
||||||
<li><strong>unpublished:</strong> the post is offline.</li>
|
|
||||||
<li><strong>published:</strong> the post is online.</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>Entry edit field height</dt>
|
|
||||||
<dd>The height of the Entry edit field. Defaults to 24.</dd>
|
|
||||||
|
|
||||||
<dt>User language</dt>
|
|
||||||
<dd>The language in wich one publishes his posts. If the translation exists,
|
|
||||||
the interface will also be displayed in that language.</dd>
|
|
||||||
|
|
||||||
<dt>User timezone</dt>
|
|
||||||
<dd>That choice will define the time displayed on post publication.</dd>
|
|
||||||
|
|
||||||
<dt>Enable WYSIWYG mode</dt>
|
|
||||||
<dd>Allow the use of the WYSIWYG editor for the posts and description fields.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3>Change your password</h3>
|
|
||||||
<p>To change your password, write down twice your password in the fields
|
|
||||||
<em>New password</em> and <em>Confirm password</em>. The minimal password
|
|
||||||
lenght is 6 characters.</p>
|
|
||||||
<p>If no new password is provided, the current one is kept.</p>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,85 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Wiki syntax reference</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h3>Wiki syntax reference</h3>
|
|
||||||
|
|
||||||
<p>The wiki syntax is a way to enhance your text with a minimal set
|
|
||||||
of tags, studied to cover the basic needs (titles, paragraphs, quotes,
|
|
||||||
lists...)</p>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt>Block elements</dt>
|
|
||||||
<dd>
|
|
||||||
<ul>
|
|
||||||
<li>Leave an empty line between two similar blocks.</li>
|
|
||||||
<li><strong>Paragraph</strong>: free text, ended by an empty line if
|
|
||||||
another paragraph is to follow.</li>
|
|
||||||
<li><strong>Title</strong>: <code>!!! title</code>, <code>!! title</code>
|
|
||||||
or <code>! title</code>, allowing you to use three different levels of
|
|
||||||
heading.</li>
|
|
||||||
<li><strong>Horizontal line</strong>: <code>----</code></li>
|
|
||||||
<li><strong>Lists</strong>: Start each line with
|
|
||||||
<code>*</code> or <code>#</code> for unnumbered or numbered lists respectively.
|
|
||||||
List imbrication is done by mixing list markers this way:
|
|
||||||
<pre>
|
|
||||||
* item 1
|
|
||||||
** item 1.1
|
|
||||||
* item 2
|
|
||||||
*# item 2.1
|
|
||||||
...
|
|
||||||
</pre>
|
|
||||||
</li>
|
|
||||||
<li><strong>Preformatted text</strong>: each line must start with a space.</li>
|
|
||||||
<li><strong>Block quote</strong>: each line must start with a semicolon (<code>></code>).</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>Formatting tags</dt>
|
|
||||||
<dd>
|
|
||||||
<ul>
|
|
||||||
<li><strong>Emphasis</strong>: two quotes <code>''text''</code></li>
|
|
||||||
<li><strong>Strong emphasis</strong>: two underscore <code>__text__</code></li>
|
|
||||||
<li><strong>New line</strong>: <code>%%%</code></li>
|
|
||||||
<li><strong>Insertion</strong>: two plusses <code>++text++</code></li>
|
|
||||||
<li><strong>Deletion</strong>: two minuses <code>--text--</code></li>
|
|
||||||
<li><strong>Link</strong>: <code>[url]</code>, <code>[name|url]</code>,
|
|
||||||
<code>[name|url|language]</code> or <code>[name|url|languagee|title]</code></li>
|
|
||||||
<li><strong>Image</strong>:
|
|
||||||
<code>((url|alternative text))</code>,
|
|
||||||
<code>((url|alternative text|position))</code> or
|
|
||||||
<code>((url|alternative text|position|long description))</code>.
|
|
||||||
<br />The position can be either L or G (left), R or D (right) or C (centered).</li>
|
|
||||||
<li><strong>Anchor</strong>: <code>~anchor~</code></li>
|
|
||||||
<li><strong>Acronym</strong>: <code>??acronym|title??</code></li>
|
|
||||||
<li><strong>Inline HTML</strong>: two backquotes <code>``html code``</code></li>
|
|
||||||
<li><strong>Inline quote</strong>: <code>{{quote}}</code>,
|
|
||||||
<code>{{quote|language}}</code> or <code>{{quote|language|url}}</code></li>
|
|
||||||
<li><strong>Code</strong>: <code>@@code@@</code></li>
|
|
||||||
<li><strong>Footnotes</strong>: <code>$$footnote$$</code></li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>Unformatted text</dt>
|
|
||||||
<dd>If you don't want one formatting character to be interpreted as such, add a
|
|
||||||
<code>\</code> just before it. This way:
|
|
||||||
<code>\[text in brackets without being a link\]</code>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>HTML Code</dt>
|
|
||||||
<dd>Even if you chose the wiki syntax, you may sometimes need a more
|
|
||||||
powerful formatting, i.e. HTML syntax. Do it the following way:
|
|
||||||
<pre>
|
|
||||||
///html
|
|
||||||
<p style="color:red">my text in red</p>
|
|
||||||
///
|
|
||||||
</pre>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,28 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Theme Editor</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<p>The Theme Editor lets you modify the template files, the stylesheets and the JavaScript files of the theme you are currently using..</p>
|
|
||||||
|
|
||||||
<p>The file list is divided in three sections :</p>
|
|
||||||
<ul>
|
|
||||||
<li>Template files : the templates</li>
|
|
||||||
<li>CSS files : the stylesheets</li>
|
|
||||||
<li>JavaScript files</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>The yellow bullet in front of the name of a file indicates that this file is part of the theme. The red bullet means it is a part of the parent theme. The black bullet means it is a part of the "default" theme.</p>
|
|
||||||
|
|
||||||
<p>If you modify a file belonging to the "default" theme, it will be copied into the theme you are currently using.</p>
|
|
||||||
|
|
||||||
<p>To edit a file, click on its name to display its content in the edition area. If the file can be written, you will be able to save your modifications by ckicking on "save".</p>
|
|
||||||
|
|
||||||
<p>The modifications are applied immediately after saving, so be careful.</p>
|
|
||||||
|
|
||||||
<p>To help modify your templates, you may consult the <a href="http://doc.dotclear.net/2.0/resources/templates">template tag list</a>.</p>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
2589
locales/hr/main.po
|
@ -1,240 +0,0 @@
|
||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# This file is put in the public domain.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
||||||
#
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: Dotclear 2\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2008-10-13 05:22+0200\n"
|
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
||||||
"Language: \n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
|
|
||||||
# Not found strings
|
|
||||||
msgid "To content"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To menu"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "To search"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "By"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "by"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "on"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "On"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Continue reading"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "no comment"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "one comment"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "%d comments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "no trackback"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "one trackback"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "%d trackbacks"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "no attachment"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "one attachment"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "%d attachments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "previous entries"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "page"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "of"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "next entries"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Search"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Your search for <em>%1$s</em> returned no result."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Your search for <em>%1$s</em> returned <strong>%2$s</strong> result."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Your search for <em>%1$s</em> returned <strong>%2$s</strong> results."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Home"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "All keywords"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Best of me"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Languages"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Categories"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Subcategories"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Archives"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Links"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Subscribe"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Entries feed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Comments feed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "This blog's comments Atom feed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "This category's entries Atom feed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "This category's comments Atom feed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "This post's comments feed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "This post's comments Atom feed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Attachments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Permalink"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Comments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Your comment"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Your comment has been published."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Your comment has been submitted and will be reviewed for publication."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Add a comment"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Name or nickname"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Email address"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Website"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "optional"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Comment"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "HTML code is displayed as text and web addresses are automatically converted."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Remember me on this blog"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "preview"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "send"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "They posted on the same topic"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Trackback URL"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "You must provide an author name"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "You must provide a comment"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Email address is not valid"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Document not found"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "The document you are looking for does not exist."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Powered by %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Subscribe to"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "What is an RSS feed?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "RSS feed is a free blog summary. It provides content (either posts or comments) or summaries of content, together with links to the full versions, and other metadata. The last published items may then be read by your favorite RSS <a href=\"http://en.wikipedia.org/wiki/Aggregator\">aggregator</a>."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Simply copy the following URL into your aggregator:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Password needed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "You must give a password to access this area."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Password:"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "You must provide a valid email address."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Read"
|
|
||||||
msgstr ""
|
|