move to widget and blog pref. See changelog.
This commit is contained in:
parent
f64f1f6157
commit
d93e3e616f
17 changed files with 956 additions and 912 deletions
|
@ -1,8 +1,12 @@
|
||||||
2021.08.20
|
2021.08.21
|
||||||
* update license
|
* update license
|
||||||
* fix query
|
* fix query
|
||||||
* change template titles to h3
|
|
||||||
* move to PSR-2 coding style and short array
|
* move to PSR-2 coding style and short array
|
||||||
|
* move config to widget
|
||||||
|
* move template to widget
|
||||||
|
* use default template for search
|
||||||
|
* use custom template for 404
|
||||||
|
* fix public translation
|
||||||
|
|
||||||
2013.10.28
|
2013.10.28
|
||||||
* Switch to Dotclear 2.6
|
* Switch to Dotclear 2.6
|
||||||
|
|
|
@ -21,12 +21,12 @@ show related entries to visitor.
|
||||||
First install saba, mannualy from a zip package or from
|
First install saba, mannualy from a zip package or from
|
||||||
Dotaddict repository. (See Dotclear's documentation to know how do this)
|
Dotaddict repository. (See Dotclear's documentation to know how do this)
|
||||||
|
|
||||||
Go to ''plugins manager'', expand saba information then
|
Go to ''Blog preference'', active plugin saba for search and 404,
|
||||||
go to ''configure plugin'', fill in form.
|
go to ''Widgets'', add and configure ''Advanced search'' widget.
|
||||||
|
|
||||||
If you use a custom theme (not Dotclear's default theme)
|
If you use a custom theme (not Dotclear's default theme)
|
||||||
you must create custom templates that match yours.
|
you must create custom templates that match yours.
|
||||||
You can find exemple in saba/default-tempaltes.
|
You can find exemple in plugins/saba/default-tempaltes.
|
||||||
|
|
||||||
## MORE
|
## MORE
|
||||||
|
|
||||||
|
|
56
_admin.php
Normal file
56
_admin.php
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
<?php
|
||||||
|
# -- BEGIN LICENSE BLOCK ----------------------------------
|
||||||
|
#
|
||||||
|
# This file is part of saba, a plugin for Dotclear 2.
|
||||||
|
#
|
||||||
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
|
#
|
||||||
|
# Licensed under the GPL version 2.0 license.
|
||||||
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
#
|
||||||
|
# -- END LICENSE BLOCK ------------------------------------
|
||||||
|
|
||||||
|
if (!defined('DC_CONTEXT_ADMIN')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
# settings namespace
|
||||||
|
$core->blog->settings->addNamespace('saba');
|
||||||
|
|
||||||
|
# behaviors
|
||||||
|
$core->addBehavior(
|
||||||
|
'adminBlogPreferencesForm',
|
||||||
|
['adminSaba', 'adminBlogPreferencesForm']
|
||||||
|
);
|
||||||
|
$core->addBehavior(
|
||||||
|
'adminBeforeBlogSettingsUpdate',
|
||||||
|
['adminSaba', 'adminBeforeBlogSettingsUpdate']
|
||||||
|
);
|
||||||
|
|
||||||
|
# add settings to admin blog pref page
|
||||||
|
class adminSaba
|
||||||
|
{
|
||||||
|
public static function adminBlogPreferencesForm($core, $blog_settings)
|
||||||
|
{
|
||||||
|
echo
|
||||||
|
'<div class="fieldset">' .
|
||||||
|
'<h4 id="saba_params">' . __('Search Across Blog Archive') . '</h4>' .
|
||||||
|
'<p><label class="classic">' .
|
||||||
|
form::checkbox('saba_active', '1', (boolean) $blog_settings->saba->active) .
|
||||||
|
__('Enable advanced search on this blog') . '</label></p>' .
|
||||||
|
'<p><label class="classic">' .
|
||||||
|
form::checkbox('saba_error', '1', (boolean) $blog_settings->saba->error) .
|
||||||
|
__('Enable suggestion for page 404') . '</label></p>' .
|
||||||
|
'<p class="form-note">' .
|
||||||
|
__("This suggests visitors some posts on page 404.") .
|
||||||
|
'</p>' .
|
||||||
|
'</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function adminBeforeBlogSettingsUpdate($blog_settings)
|
||||||
|
{
|
||||||
|
$blog_settings->saba->put('active', !empty($_POST['saba_active']));
|
||||||
|
$blog_settings->saba->put('error', !empty($_POST['saba_error']));
|
||||||
|
}
|
||||||
|
}
|
141
_config.php
141
_config.php
|
@ -1,141 +0,0 @@
|
||||||
<?php
|
|
||||||
# -- BEGIN LICENSE BLOCK ----------------------------------
|
|
||||||
#
|
|
||||||
# This file is part of saba, a plugin for Dotclear 2.
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
|
||||||
#
|
|
||||||
# Licensed under the GPL version 2.0 license.
|
|
||||||
# A copy of this license is available in LICENSE file or at
|
|
||||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
||||||
#
|
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
|
||||||
|
|
||||||
if (!defined('DC_CONTEXT_MODULE')) {
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
# -- Get settings --
|
|
||||||
$core->blog->settings->addNamespace('saba');
|
|
||||||
$s = $core->blog->settings->saba;
|
|
||||||
|
|
||||||
$filters_list = array(
|
|
||||||
'options',
|
|
||||||
'orders',
|
|
||||||
'ages',
|
|
||||||
'categories',
|
|
||||||
'authors',
|
|
||||||
'types'
|
|
||||||
);
|
|
||||||
|
|
||||||
$saba_active = (boolean) $s->active;
|
|
||||||
$saba_filters = (string) $s->filters;
|
|
||||||
|
|
||||||
$saba_filters = @unserialize($saba_filters);
|
|
||||||
if (!is_array($saba_filters)) {
|
|
||||||
$saba_filters = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
# -- Set settings --
|
|
||||||
if (!empty($_POST['save'])) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
$saba_active = !empty($_POST['saba_active']);
|
|
||||||
$saba_filters = array();
|
|
||||||
|
|
||||||
foreach($filters_list as $filter) {
|
|
||||||
if (!empty($_POST['saba_filter_'.$filter])) {
|
|
||||||
$saba_filters[] = $filter;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$s->put(
|
|
||||||
'active',
|
|
||||||
$saba_active,
|
|
||||||
'boolean',
|
|
||||||
'Enable extension'
|
|
||||||
);
|
|
||||||
$s->put(
|
|
||||||
'filters',
|
|
||||||
serialize($saba_filters),
|
|
||||||
'string',
|
|
||||||
'Diabled filters'
|
|
||||||
);
|
|
||||||
|
|
||||||
$core->blog->triggerBlog();
|
|
||||||
|
|
||||||
dcPage::addSuccessNotice(
|
|
||||||
__('Configuration has been successfully updated.')
|
|
||||||
);
|
|
||||||
http::redirect(
|
|
||||||
$list->getURL('module=saba&conf=1&redir='.
|
|
||||||
$list->getRedir())
|
|
||||||
);
|
|
||||||
}
|
|
||||||
catch (Exception $e) {
|
|
||||||
$core->error->add($e->getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# -- Display form --
|
|
||||||
echo '
|
|
||||||
|
|
||||||
<div class="fieldset">
|
|
||||||
<h4>'.__('Activate').'</h4>
|
|
||||||
|
|
||||||
<p><label class="classic" for="saba_active">'.
|
|
||||||
form::checkbox(
|
|
||||||
'saba_active',
|
|
||||||
1,
|
|
||||||
$saba_active
|
|
||||||
).__('Enable extension on this blog').'</label></p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="fieldset">
|
|
||||||
<h4>'.__('Advanced search').'</h4>
|
|
||||||
|
|
||||||
<p><label class="classic" for="saba_filter_options">'.
|
|
||||||
form::checkbox(
|
|
||||||
'saba_filter_options',
|
|
||||||
1,
|
|
||||||
in_array('options', $saba_filters)
|
|
||||||
).__('Disable filter on post options').'</label></p>
|
|
||||||
|
|
||||||
<p><label class="classic" for="saba_filter_orders">'.
|
|
||||||
form::checkbox(
|
|
||||||
'saba_filter_orders',
|
|
||||||
1,
|
|
||||||
in_array('orders', $saba_filters)
|
|
||||||
).__('Disable filter on order').'</label></p>
|
|
||||||
|
|
||||||
<p><label class="classic" for="saba_filter_ages">'.
|
|
||||||
form::checkbox(
|
|
||||||
'saba_filter_ages',
|
|
||||||
1,
|
|
||||||
in_array('ages', $saba_filters)
|
|
||||||
).__('Disable filter on age').'</label></p>
|
|
||||||
|
|
||||||
<p><label class="classic" for="saba_filter_categories">'.
|
|
||||||
form::checkbox(
|
|
||||||
'saba_filter_categories',
|
|
||||||
1,
|
|
||||||
in_array('categories', $saba_filters)
|
|
||||||
).__('Disable filter on categories').'</label></p>
|
|
||||||
|
|
||||||
<p><label class="classic" for="saba_filter_authors">'.
|
|
||||||
form::checkbox(
|
|
||||||
'saba_filter_authors',
|
|
||||||
1,
|
|
||||||
in_array('authors', $saba_filters)
|
|
||||||
).__('Disable filter on authors').'</label></p>
|
|
||||||
|
|
||||||
<p><label class="classic" for="saba_filter_types">'.
|
|
||||||
form::checkbox(
|
|
||||||
'saba_filter_types',
|
|
||||||
1,
|
|
||||||
in_array('types', $saba_filters)
|
|
||||||
).__('Disable filter on post types').'</label></p>
|
|
||||||
|
|
||||||
</div>';
|
|
|
@ -19,11 +19,11 @@ $this->registerModule(
|
||||||
'saba',
|
'saba',
|
||||||
'Search across blog archive',
|
'Search across blog archive',
|
||||||
'Jean-Christian Denis and Contributors',
|
'Jean-Christian Denis and Contributors',
|
||||||
'2021.08.20.5',
|
'2021.08.21',
|
||||||
[
|
[
|
||||||
'permissions' => 'admin',
|
'permissions' => 'admin',
|
||||||
'type' => 'plugin',
|
'type' => 'plugin',
|
||||||
'dc_min' => '2.18',
|
'dc_min' => '2.19',
|
||||||
'support' => 'https://github.com/JcDenis/saba',
|
'support' => 'https://github.com/JcDenis/saba',
|
||||||
'details' => 'https://plugins.dotaddict.org/dc2/details/saba'
|
'details' => 'https://plugins.dotaddict.org/dc2/details/saba'
|
||||||
]
|
]
|
||||||
|
|
431
_public.php
431
_public.php
|
@ -15,77 +15,25 @@ if (!defined('DC_RC_PATH')) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Admin behaviors
|
# setting
|
||||||
$core->blog->settings->addNamespace('saba');
|
$core->blog->settings->addNamespace('saba');
|
||||||
|
|
||||||
if (!$core->blog->settings->saba->active) {
|
if (!$core->blog->settings->saba->active) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Register saba handler
|
# translation
|
||||||
$core->url->register(
|
l10n::set(dirname(__FILE__) . '/locales/' . $_lang . '/public');
|
||||||
'search',
|
|
||||||
'search',
|
|
||||||
'^search(/.+)?$',
|
|
||||||
['urlSaba', 'saba']
|
|
||||||
);
|
|
||||||
|
|
||||||
# Add saba templates path
|
# widget
|
||||||
|
require_once dirname(__FILE__) . '/_widgets.php';
|
||||||
|
|
||||||
|
# template path
|
||||||
$core->tpl->setPath(
|
$core->tpl->setPath(
|
||||||
$core->tpl->getPath(),
|
$core->tpl->getPath(),
|
||||||
dirname(__FILE__) . '/default-templates/'
|
dirname(__FILE__) . '/default-templates/'
|
||||||
);
|
);
|
||||||
|
|
||||||
# templates
|
|
||||||
$core->tpl->addBlock(
|
|
||||||
'SabaIf',
|
|
||||||
['tplSaba', 'SabaIf']
|
|
||||||
);
|
|
||||||
$core->tpl->addBlock(
|
|
||||||
'SabaEntries',
|
|
||||||
['tplSaba', 'SabaEntries']
|
|
||||||
);
|
|
||||||
$core->tpl->addBlock(
|
|
||||||
'SabaFormIf',
|
|
||||||
['tplSaba', 'SabaFormIf']
|
|
||||||
);
|
|
||||||
$core->tpl->addValue(
|
|
||||||
'SabaFormSearch',
|
|
||||||
['tplSaba', 'SabaFormSearch']
|
|
||||||
);
|
|
||||||
$core->tpl->addValue(
|
|
||||||
'SabaFormOptions',
|
|
||||||
['tplSaba', 'SabaFormOptions']
|
|
||||||
);
|
|
||||||
$core->tpl->addValue(
|
|
||||||
'SabaFormCategories',
|
|
||||||
['tplSaba', 'SabaFormCategories']
|
|
||||||
);
|
|
||||||
$core->tpl->addValue(
|
|
||||||
'SabaFormTypes',
|
|
||||||
['tplSaba', 'SabaFormTypes']
|
|
||||||
);
|
|
||||||
$core->tpl->addValue(
|
|
||||||
'SabaFormAges',
|
|
||||||
['tplSaba', 'SabaFormAges']
|
|
||||||
);
|
|
||||||
$core->tpl->addValue(
|
|
||||||
'SabaFormOrders',
|
|
||||||
['tplSaba', 'SabaFormOrders']
|
|
||||||
);
|
|
||||||
$core->tpl->addValue(
|
|
||||||
'SabaFormAuthors',
|
|
||||||
['tplSaba', 'SabaFormAuthors']
|
|
||||||
);
|
|
||||||
$core->tpl->addValue(
|
|
||||||
'SabaPaginationURL',
|
|
||||||
['tplSaba', 'SabaPaginationURL']
|
|
||||||
);
|
|
||||||
$core->tpl->addValue(
|
|
||||||
'SabaURL',
|
|
||||||
['tplSaba', 'SabaURL']
|
|
||||||
);
|
|
||||||
|
|
||||||
# behavior
|
# behavior
|
||||||
$core->addBehavior(
|
$core->addBehavior(
|
||||||
'templateCustomSortByAlias',
|
'templateCustomSortByAlias',
|
||||||
|
@ -96,12 +44,14 @@ $core->addBehavior(
|
||||||
['pubSaba', 'urlHandlerBeforeGetData']
|
['pubSaba', 'urlHandlerBeforeGetData']
|
||||||
);
|
);
|
||||||
$core->addBehavior(
|
$core->addBehavior(
|
||||||
'corePostSearch',
|
'coreBlogBeforeGetPosts',
|
||||||
['pubSaba', 'corePostSearch']
|
['pubSaba', 'coreBlogBeforeGetPosts']
|
||||||
);
|
);
|
||||||
|
|
||||||
# url
|
# url
|
||||||
|
if ($core->blog->settings->saba->error) {
|
||||||
$core->url->registerError(['urlSaba', 'error']);
|
$core->url->registerError(['urlSaba', 'error']);
|
||||||
|
}
|
||||||
|
|
||||||
class pubSaba
|
class pubSaba
|
||||||
{
|
{
|
||||||
|
@ -123,35 +73,53 @@ class pubSaba
|
||||||
{
|
{
|
||||||
global $core;
|
global $core;
|
||||||
|
|
||||||
$options = [
|
$options = tplSaba::getSabaDefaultPostsOptions();
|
||||||
'q'=> '',
|
|
||||||
'q_opt' => [],
|
|
||||||
'q_cat' => [],
|
|
||||||
'q_age' => '0,0',
|
|
||||||
'q_user'=> [],
|
|
||||||
'q_order'=> 'date',
|
|
||||||
'q_rev' => '0',
|
|
||||||
'q_type'=> []
|
|
||||||
];
|
|
||||||
|
|
||||||
if (!empty($_GET['q']) && 1 < strlen($_GET['q'])) {
|
if (!empty($_GET['q']) && 1 < strlen($_GET['q'])) {
|
||||||
# move to saba
|
|
||||||
$_ctx->current_tpl = null;
|
# search string
|
||||||
$_ctx->current_tpl = 'saba_search.html';
|
$params = new ArrayObject(['search' => rawurldecode($_GET['q'])]);
|
||||||
|
|
||||||
|
$options = self::getPostsParams($params);
|
||||||
|
$options['q'] = rawurldecode($_GET['q']);
|
||||||
|
|
||||||
|
# count
|
||||||
|
$GLOBALS['_search'] = rawurldecode($_GET['q']);
|
||||||
|
if ($GLOBALS['_search']) {
|
||||||
|
$GLOBALS['_search_count'] = $core->blog->getPosts($params, true)->f(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
# pagintaion
|
||||||
|
$_page_number = !isset($GLOBALS['_page_number']) ? 1 : $GLOBALS['_page_number'];
|
||||||
|
$params['limit'] = $_ctx->nb_entry_per_page;
|
||||||
|
$params['limit'] = [(($_page_number - 1) * $params['limit']), $params['limit']];
|
||||||
|
|
||||||
|
# get posts
|
||||||
|
$_ctx->post_params = $params;
|
||||||
|
$_ctx->posts = $core->blog->getPosts($params);
|
||||||
|
unset($params);
|
||||||
|
}
|
||||||
|
$_ctx->saba_options = $options;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getPostsParams($params)
|
||||||
|
{
|
||||||
|
global $core;
|
||||||
|
|
||||||
|
if (!isset($params['sql'])) {
|
||||||
|
$params['sql'] = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
$params['post_type'] = [];
|
||||||
|
|
||||||
# retreive _GET
|
# retreive _GET
|
||||||
$qs = $_SERVER['QUERY_STRING'];
|
$qs = $_SERVER['QUERY_STRING'];
|
||||||
$qs = preg_replace('#(^|/)page/([0-9]+)#', '', $qs);
|
$qs = preg_replace('#(^|/)page/([0-9]+)#', '', $qs);
|
||||||
parse_str($qs, $get);
|
parse_str($qs, $get);
|
||||||
|
|
||||||
$params = [
|
|
||||||
'sql'=>'',
|
|
||||||
'post_type' => []
|
|
||||||
];
|
|
||||||
|
|
||||||
# search string
|
# search string
|
||||||
$params['search'] = rawurldecode($_GET['q']);
|
$options = tplSaba::getSabaDefaultPostsOptions();
|
||||||
$options['q'] = rawurldecode($_GET['q']);
|
$options['q'] = $params['search'];
|
||||||
|
|
||||||
# options
|
# options
|
||||||
if (!empty($get['q_opt'])) {
|
if (!empty($get['q_opt'])) {
|
||||||
|
@ -244,33 +212,22 @@ class pubSaba
|
||||||
'post'
|
'post'
|
||||||
); //?! post_type
|
); //?! post_type
|
||||||
}
|
}
|
||||||
|
return $options;
|
||||||
# count
|
|
||||||
$GLOBALS['_search'] = rawurldecode($_GET['q']);
|
|
||||||
if ($GLOBALS['_search']) {
|
|
||||||
$GLOBALS['_search_count'] = $core->blog->getPosts($params, true)->f(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
# pagintaion
|
|
||||||
$_page_number = !isset($GLOBALS['_page_number']) ? 1 : $GLOBALS['_page_number'];
|
|
||||||
$params['limit'] = $_ctx->nb_entry_per_page;
|
|
||||||
$params['limit'] = [(($_page_number - 1) * $params['limit']), $params['limit']];
|
|
||||||
|
|
||||||
# get posts
|
|
||||||
$_ctx->post_params = $params;
|
|
||||||
$_ctx->posts = $core->blog->getPosts($params);
|
|
||||||
unset($params);
|
|
||||||
}
|
|
||||||
$_ctx->saba_options = $options;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Ajouter la condition "ou" à la recherche
|
# Ajouter la condition "ou" à la recherche
|
||||||
public static function corePostSearch($core, $p)
|
public static function coreBlogBeforeGetPosts($p)
|
||||||
{
|
{
|
||||||
$sentences = explode(',', $p[2]['search']);
|
global $core;
|
||||||
|
|
||||||
|
if (empty($p['search'])) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self::getPostsParams($p);
|
||||||
|
|
||||||
$OR = [];
|
$OR = [];
|
||||||
foreach($sentences as $sentence) {
|
foreach(explode(',', $p['search']) as $sentence) {
|
||||||
$AND = [];
|
$AND = [];
|
||||||
$words = text::splitWords($sentence);
|
$words = text::splitWords($sentence);
|
||||||
foreach($words as $word) {
|
foreach($words as $word) {
|
||||||
|
@ -281,8 +238,8 @@ class pubSaba
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($OR)) {
|
if (!empty($OR)) {
|
||||||
$p[0] = '';
|
$p['search'] = '';
|
||||||
$p[2]['sql'] = (isset($p[2]['sql']) ? $p[2]['sql'] : '') . "AND (" . implode (' OR ', $OR) . ") ";
|
$p['sql'] .= "AND (" . implode (' OR ', $OR) . ") ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -307,232 +264,26 @@ class urlSaba extends dcUrlHandlers
|
||||||
$GLOBALS['_from_error'] = true;
|
$GLOBALS['_from_error'] = true;
|
||||||
|
|
||||||
# Serve saba
|
# Serve saba
|
||||||
self::serveDocument('saba_search.html');
|
self::serveDocument('saba_404_default.html');
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function saba($args)
|
|
||||||
{
|
|
||||||
$_ctx =& $GLOBALS['_ctx'];
|
|
||||||
$core =& $GLOBALS['core'];
|
|
||||||
|
|
||||||
self::serveDocument('saba_search.html');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class tplSaba
|
class tplSaba
|
||||||
{
|
{
|
||||||
public static function SabaEntries($a, $c)
|
public static function getSabaDefaultPostsOptions()
|
||||||
{
|
|
||||||
return
|
|
||||||
'<?php if ($_ctx->exists("posts")) : while ($_ctx->posts->fetch()) : ?>'.$c.'<?php endwhile; endif; ?>';
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function SabaFormSearch($a)
|
|
||||||
{
|
|
||||||
return '<?php echo html::escapeHTML($_ctx->saba_options["q"]); ?>';
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function SabaIf($a, $c)
|
|
||||||
{
|
|
||||||
$if = [];
|
|
||||||
|
|
||||||
$operator = isset($a['operator']) ? $GLOBALS['core']->tpl->getOperator($a['operator']) : '&&';
|
|
||||||
|
|
||||||
if (isset($a['has_search'])) {
|
|
||||||
$sign = (boolean) $a['has_search'] ? '' : '!';
|
|
||||||
$if[] = $sign . 'isset($_search_count)';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($a['from_error'])) {
|
|
||||||
$sign = (boolean) $a['from_error'] ? '' : '!';
|
|
||||||
$if[] = $sign . 'isset($_from_error)';
|
|
||||||
}
|
|
||||||
|
|
||||||
return !empty($if) ?
|
|
||||||
'<?php if(' . implode(' ' . $operator . ' ', $if) . ') : ?>' . $c . '<?php endif; ?>'
|
|
||||||
: $c;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function SabaURL($a)
|
|
||||||
{
|
|
||||||
$f = $GLOBALS['core']->tpl->getFilters($a);
|
|
||||||
|
|
||||||
return '<?php echo ' . sprintf($f, '$core->blog->url.$core->url->getBase("search")') . '; ?>';
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function SabaFormIf($a, $c)
|
|
||||||
{
|
|
||||||
$if = [];
|
|
||||||
|
|
||||||
$operator = isset($a['operator']) ? $GLOBALS['core']->tpl->getOperator($a['operator']) : '&&';
|
|
||||||
|
|
||||||
$fl = self::getSabaFormFilters();
|
|
||||||
foreach($fl as $filter) {
|
|
||||||
if (isset($a['filter_' . $filter])) {
|
|
||||||
$sign = (boolean) $a['filter_' . $filter] ? '' : '!';
|
|
||||||
$if[] = $sign . 'tplSaba::isSabaFormFilter(\'' . $filter . '\')';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return !empty($if) ?
|
|
||||||
'<?php if(' . implode(' ' . $operator . ' ', $if) . ') : ?>' . $c . '<?php endif; ?>'
|
|
||||||
: $c;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function SabaFormOptions($a)
|
|
||||||
{
|
|
||||||
$dis = !empty($a['remove']) ? explode(',', $a['remove']) : [];
|
|
||||||
|
|
||||||
$res = '';
|
|
||||||
$li = '<li><label><input name="q_opt[]" type="checkbox" value="%s" %s/> %s</label></li>';
|
|
||||||
|
|
||||||
$rs = self::getSabaFormOptions();
|
|
||||||
foreach($rs as $k => $v) {
|
|
||||||
if (in_array($v, $dis)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$chk = '<?php echo in_array("' . $v . '",$_ctx->saba_options["q_opt"]) ? \'checked="checked" \' : ""; ?>';
|
|
||||||
$res .= sprintf($li, $v, $chk, html::escapeHTML($k));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($res)) {
|
|
||||||
return '<div class="saba_opt_otp"><h3>' . __('Filter options') . '</h3><ul>' . $res . '</ul></div>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function SabaFormOrders($a)
|
|
||||||
{
|
|
||||||
$dis = !empty($a['remove']) ? explode(',',$a['remove']) : [];
|
|
||||||
|
|
||||||
$res = '';
|
|
||||||
$li = '<li><label><input name="q_order" type="radio" value="%s" %s/> %s</label></li>';
|
|
||||||
|
|
||||||
$rs = self::getSabaFormOrders($dis);
|
|
||||||
foreach($rs as $k => $v) {
|
|
||||||
if (in_array($v, $dis)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$chk = '<?php echo "' . $v . '" == $_ctx->saba_options["q_order"] ? \'checked="checked" \' : ""; ?>';
|
|
||||||
$res .= sprintf($li, $v, $chk, html::escapeHTML($k));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($res)) {
|
|
||||||
$chk = '<?php echo !empty($_ctx->saba_options["q_rev"]) ? \'checked="checked" \' : ""; ?>';
|
|
||||||
$res .= '<li><label><input name="q_rev" type="checkbox" value="1" ' . $chk . '/> ' . __('Reverse order') . '</label></li>';
|
|
||||||
|
|
||||||
return '<div class="saba_opt_order"><h3>' . __('Filter order') . '</h3><ul>' . $res . '</ul></div>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function SabaFormCategories($a)
|
|
||||||
{
|
|
||||||
global $core;
|
|
||||||
|
|
||||||
$dis = !empty($a['remove']) ? explode(',', $a['remove']) : [];
|
|
||||||
|
|
||||||
$res = '';
|
|
||||||
$li = '<li><label><input name="q_cat[]" type="checkbox" value="%s" %s/> %s</label></li>';
|
|
||||||
|
|
||||||
$rs = $core->blog->getCategories();
|
|
||||||
while ($rs->fetch()) {
|
|
||||||
if (in_array($rs->cat_id, $dis) || in_array($rs->cat_url, $dis)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$chk = '<?php echo in_array("' . $rs->cat_id . '",$_ctx->saba_options["q_cat"]) ? \'checked="checked" \' : ""; ?>';
|
|
||||||
$res .= sprintf($li, $rs->cat_id, $chk, html::escapeHTML($rs->cat_title));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($res)) {
|
|
||||||
return '<div class="saba_opt_cat"><h3>' . __('Filter by category') . '</h3><ul>' . $res . '</ul></div>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function SabaFormTypes($a)
|
|
||||||
{
|
|
||||||
global $core;
|
|
||||||
|
|
||||||
$dis = !empty($a['remove']) ? explode(',',$a['remove']) : [];
|
|
||||||
|
|
||||||
$res = '';
|
|
||||||
$li = '<li><label><input name="q_type[]" type="checkbox" value="%s" %s/>%s</label></li>';
|
|
||||||
|
|
||||||
$rs = self::getSabaFormTypes();
|
|
||||||
foreach($rs as $k => $v) {
|
|
||||||
if (in_array($v, $dis)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$chk = '<?php echo in_array("' . $v . '",$_ctx->saba_options["q_type"]) ? \'checked="checked" \' : ""; ?>';
|
|
||||||
$res .= sprintf($li, $v, $chk, html::escapeHTML($k));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($res)) {
|
|
||||||
return '<div class="saba_opt_type"><h3>' . __('Filter by type') . '</h3><ul>' . $res . '</ul></div>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function SabaFormAges($a)
|
|
||||||
{
|
|
||||||
$res = '';
|
|
||||||
$li = '<li><label><input name="q_age" type="radio" value="%s" %s/> %s</label></li>';
|
|
||||||
|
|
||||||
$rs = self::getSabaFormAges();
|
|
||||||
foreach($rs as $k => $v) {
|
|
||||||
$chk = '<?php echo "' . $v . '" == $_ctx->saba_options["q_age"] ? \'checked="checked" \' : ""; ?>';
|
|
||||||
$res .= sprintf($li, $v, $chk, html::escapeHTML($k));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($res)) {
|
|
||||||
return '<div class="saba_opt_age"><h3>' . __('Filter by age') . '</h3><ul>' . $res . '</ul></div>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function SabaFormAuthors($a)
|
|
||||||
{
|
|
||||||
global $core;
|
|
||||||
|
|
||||||
$dis = !empty($a['remove']) ? explode(',',$a['remove']) : [];
|
|
||||||
|
|
||||||
$res = '';
|
|
||||||
$li = '<li><label><input name="q_user[]" type="checkbox" value="%s" %s/> %s</label></li>';
|
|
||||||
|
|
||||||
$rs = $core->blog->getPostsUsers();
|
|
||||||
while ($rs->fetch()) {
|
|
||||||
if (in_array($rs->user_id, $dis)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$chk = '<?php echo in_array("' . $rs->user_id . '",$_ctx->saba_options["q_user"]) ? \'checked="checked" \' : ""; ?>';
|
|
||||||
$res .= sprintf($li, $rs->user_id, $chk, html::escapeHTML(dcUtils::getUserCN($rs->user_id, $rs->user_name, $rs->user_firstname, $rs->user_displayname)));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($res)) {
|
|
||||||
return '<div class="saba_opt_user"><h3>' . __('Filter by author') . '</h3><ul>' . $res . '</ul></div>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function SabaPaginationURL($attr)
|
|
||||||
{
|
|
||||||
$offset = 0;
|
|
||||||
if (isset($attr['offset'])) {
|
|
||||||
$offset = (integer) $attr['offset'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$f = $GLOBALS['core']->tpl->getFilters($attr);
|
|
||||||
|
|
||||||
return '<?php echo '.sprintf($f, "ctxSaba::PaginationURL(" . $offset . ")") . '; ?>';
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getSabaFormFilters()
|
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'options',
|
'q'=> '',
|
||||||
'orders',
|
'q_opt' => [],
|
||||||
'ages',
|
'q_cat' => [],
|
||||||
'categories',
|
'q_age' => '0,0',
|
||||||
'authors',
|
'q_user'=> [],
|
||||||
'types'
|
'q_order'=> 'date',
|
||||||
|
'q_rev' => '0',
|
||||||
|
'q_type'=> []
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -591,44 +342,4 @@ class tplSaba
|
||||||
|
|
||||||
return $rs;
|
return $rs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function isSabaFormFilter($f)
|
|
||||||
{
|
|
||||||
$filters = (string) $GLOBALS['core']->blog->settings->saba->filters;
|
|
||||||
$filters = @unserialize($filters);
|
|
||||||
if (!is_array($filters)) {
|
|
||||||
$filters = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
return !in_array($f, $filters);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class ctxSaba extends context
|
|
||||||
{
|
|
||||||
public static function PaginationURL($offset = 0)
|
|
||||||
{
|
|
||||||
$args = $_SERVER['URL_REQUEST_PART'];
|
|
||||||
|
|
||||||
$n = self::PaginationPosition($offset);
|
|
||||||
|
|
||||||
$args = preg_replace('#(^|/)page/([0-9]+)$#', '', $args);
|
|
||||||
|
|
||||||
$url = $GLOBALS['core']->blog->url . $args;
|
|
||||||
|
|
||||||
if ($n > 1) {
|
|
||||||
$url = preg_replace('#/$#', '', $url);
|
|
||||||
$url .= '/page/' . $n;
|
|
||||||
}
|
|
||||||
|
|
||||||
$qs = preg_replace('#(^|/)page/([0-9]+)(&?)#', '', $_SERVER['QUERY_STRING']);
|
|
||||||
|
|
||||||
# If search param
|
|
||||||
if (!empty($_GET['q'])) {
|
|
||||||
$s = strpos($url, '?') !== false ? '&' : '?';
|
|
||||||
$url .= $s . $qs;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $url;
|
|
||||||
}
|
|
||||||
}
|
}
|
233
_widgets.php
Normal file
233
_widgets.php
Normal file
|
@ -0,0 +1,233 @@
|
||||||
|
<?php
|
||||||
|
# -- BEGIN LICENSE BLOCK ----------------------------------
|
||||||
|
#
|
||||||
|
# This file is part of saba, a plugin for Dotclear 2.
|
||||||
|
#
|
||||||
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
|
#
|
||||||
|
# Licensed under the GPL version 2.0 license.
|
||||||
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
#
|
||||||
|
# -- END LICENSE BLOCK ------------------------------------
|
||||||
|
|
||||||
|
if (!defined('DC_RC_PATH')) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$core->addBehavior('initWidgets', ['sabaWidget', 'setWidget']);
|
||||||
|
|
||||||
|
class sabaWidget
|
||||||
|
{
|
||||||
|
public static function setWidget($w)
|
||||||
|
{
|
||||||
|
global $core;
|
||||||
|
|
||||||
|
$w
|
||||||
|
->create(
|
||||||
|
'saba',
|
||||||
|
__('Advanced search'),
|
||||||
|
array('sabaWidget', 'getWidget'),
|
||||||
|
null,
|
||||||
|
__('Add more search options on public side')
|
||||||
|
)
|
||||||
|
->addTitle(__('Search'))
|
||||||
|
->setting(
|
||||||
|
'saba_filter_types',
|
||||||
|
__('Disable filter on post types'),
|
||||||
|
0,
|
||||||
|
'check'
|
||||||
|
)
|
||||||
|
->setting('saba_remove_types', __('Hidden types:'), '')
|
||||||
|
->setting(
|
||||||
|
'saba_filter_options',
|
||||||
|
__('Disable filter on post options'),
|
||||||
|
0,
|
||||||
|
'check'
|
||||||
|
)
|
||||||
|
->setting('saba_remove_options', __('Hidden options:'), '')
|
||||||
|
->setting(
|
||||||
|
'saba_filter_categories',
|
||||||
|
__('Disable filter on categories'),
|
||||||
|
0,
|
||||||
|
'check'
|
||||||
|
)
|
||||||
|
->setting('saba_remove_categories', __('Hidden categories:'), '')
|
||||||
|
->setting(
|
||||||
|
'saba_filter_authors',
|
||||||
|
__('Disable filter on authors'),
|
||||||
|
0,
|
||||||
|
'check'
|
||||||
|
)
|
||||||
|
->setting('saba_remove_authors', __('Hidden authors:'), '')
|
||||||
|
->setting(
|
||||||
|
'saba_filter_orders',
|
||||||
|
__('Disable filter on order'),
|
||||||
|
0,
|
||||||
|
'check'
|
||||||
|
)
|
||||||
|
->setting(
|
||||||
|
'saba_filter_ages',
|
||||||
|
__('Disable filter on age'),
|
||||||
|
0,
|
||||||
|
'check'
|
||||||
|
)
|
||||||
|
->addContentOnly()
|
||||||
|
->addClass()
|
||||||
|
->addOffline();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getWidget($w)
|
||||||
|
{
|
||||||
|
global $core, $_ctx;
|
||||||
|
|
||||||
|
$core->blog->settings->addNamespace('saba');
|
||||||
|
|
||||||
|
if (!$core->blog->settings->saba->active) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$core->blog->settings->saba->error && $core->url->type == '404') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($w->offline) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
# title and search
|
||||||
|
$res =
|
||||||
|
($w->title ? $w->renderTitle('<label for="q">' . html::escapeHTML($w->title) . '</label>') : '') .
|
||||||
|
'<form action="' . $core->blog->url . '" method="get" role="search">' .
|
||||||
|
'<p><input type="text" size="10" maxlength="255" id="q" name="q" value="' .
|
||||||
|
html::escapeHTML($_ctx->saba_options["q"]) . '" ' .
|
||||||
|
($w->placeholder ? 'placeholder="' . html::escapeHTML($w->placeholder) . '"' : '') .
|
||||||
|
' aria-label="' . __('Search') . '"/> ' .
|
||||||
|
'<input type="submit" class="submit" value="ok" title="' . __('Search') . '" /></p>' ;
|
||||||
|
|
||||||
|
# advenced search only on search page
|
||||||
|
if ($core->url->type == 'search') {
|
||||||
|
|
||||||
|
# order
|
||||||
|
if (!$w->saba_filter_orders) {
|
||||||
|
$ct = '';
|
||||||
|
|
||||||
|
foreach(tplSaba::getSabaFormOrders() as $k => $v) {
|
||||||
|
$ct .=
|
||||||
|
'<li><label><input name="q_order" type="radio" value="' .
|
||||||
|
$v . '" ' .
|
||||||
|
($v == $_ctx->saba_options['q_order'] ? 'checked="checked" ' : '') .
|
||||||
|
'/> ' . html::escapeHTML($k) . '</label></li>';
|
||||||
|
}
|
||||||
|
if (!empty($ct)) {
|
||||||
|
$ct .= '<li><label><input name="q_rev" type="checkbox" value="1" ' .
|
||||||
|
(!empty($_ctx->saba_options['q_rev']) ? 'checked="checked" ' : '') .
|
||||||
|
'/> ' . __('Reverse order') . '</label></li>';
|
||||||
|
$res .= $w->renderTitle(__('Filter order')) . sprintf('<ul>%s</ul>', $ct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# options
|
||||||
|
if (!$w->saba_filter_options) {
|
||||||
|
$ct = '';
|
||||||
|
$rm = explode(',', $w->saba_remove_options);
|
||||||
|
|
||||||
|
foreach(tplSaba::getSabaFormOptions() as $k => $v) {
|
||||||
|
if (in_array($v, $rm)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$ct .=
|
||||||
|
'<li><label><input name="q_opt[]" type="checkbox" value="' .
|
||||||
|
$v . '" ' .
|
||||||
|
(in_array($v, $_ctx->saba_options['q_opt']) ? 'checked="checked" ' : '') .
|
||||||
|
'/> ' . html::escapeHTML($k) . '</label></li>';
|
||||||
|
}
|
||||||
|
if (!empty($ct)) {
|
||||||
|
$res .= $w->renderTitle(__('Filter options')) . sprintf('<ul>%s</ul>', $ct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# ages
|
||||||
|
if (!$w->saba_filter_ages) {
|
||||||
|
$ct = '';
|
||||||
|
|
||||||
|
foreach(tplSaba::getSabaFormAges() as $k => $v) {
|
||||||
|
$ct .=
|
||||||
|
'<li><label><input name="q_age" type="radio" value="' .
|
||||||
|
$v . '" ' .
|
||||||
|
($v == $_ctx->saba_options['q_age'] ? 'checked="checked" ' : '') .
|
||||||
|
'/> ' . html::escapeHTML($k) . '</label></li>';
|
||||||
|
}
|
||||||
|
if (!empty($ct)) {
|
||||||
|
$res .= $w->renderTitle(__('Filter by age')) . sprintf('<ul>%s</ul>', $ct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# types
|
||||||
|
if (!$w->saba_filter_types) {
|
||||||
|
$ct = '';
|
||||||
|
$rm = explode(',', $w->saba_remove_types);
|
||||||
|
|
||||||
|
foreach(tplSaba::getSabaFormTypes() as $k => $v) {
|
||||||
|
if (in_array($v, $rm)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$ct .=
|
||||||
|
'<li><label><input name="q_type[]" type="checkbox" value="' .
|
||||||
|
$v . '" ' .
|
||||||
|
(in_array($v, $_ctx->saba_options['q_type']) ? 'checked="checked" ' : '') .
|
||||||
|
'/> ' . html::escapeHTML($k) . '</label></li>';
|
||||||
|
}
|
||||||
|
if (!empty($ct)) {
|
||||||
|
$res .= $w->renderTitle(__('Filter by type')) . sprintf('<ul>%s</ul>', $ct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# categories
|
||||||
|
if (!$w->saba_filter_categories) {
|
||||||
|
$ct = '';
|
||||||
|
$rm = explode(',', $w->saba_remove_categories);
|
||||||
|
$rs = $core->blog->getCategories();
|
||||||
|
|
||||||
|
while ($rs->fetch()) {
|
||||||
|
if (in_array($rs->cat_id, $rm) || in_array($rs->cat_url, $rm)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$ct .=
|
||||||
|
'<li><label><input name="q_cat[]" type="checkbox" value="' .
|
||||||
|
$rs->cat_id . '" ' .
|
||||||
|
(in_array($rs->cat_id, $_ctx->saba_options['q_cat']) ? 'checked="checked" ' : '') .
|
||||||
|
'/> ' . html::escapeHTML($rs->cat_title) . '</label></li>';
|
||||||
|
}
|
||||||
|
if (!empty($ct)) {
|
||||||
|
$res .= $w->renderTitle(__('Filter by category')) . sprintf('<ul>%s</ul>', $ct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# authors
|
||||||
|
if (!$w->saba_filter_authors) {
|
||||||
|
$ct = '';
|
||||||
|
$rm = explode(',', $w->saba_remove_authors);
|
||||||
|
$rs = $core->blog->getPostsUsers();
|
||||||
|
|
||||||
|
while ($rs->fetch()) {
|
||||||
|
if (in_array($rs->user_id, $rm)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$ct .=
|
||||||
|
'<li><label><input name="q_user[]" type="checkbox" value="' .
|
||||||
|
$rs->user_id . '" ' .
|
||||||
|
(in_array($rs->user_id, $_ctx->saba_options['q_user']) ? 'checked="checked" ' : '') .
|
||||||
|
'/> ' . html::escapeHTML(dcUtils::getUserCN($rs->user_id, $rs->user_name, $rs->user_firstname, $rs->user_displayname)) . '</label></li>';
|
||||||
|
}
|
||||||
|
if (!empty($ct)) {
|
||||||
|
$res .= $w->renderTitle(__('Filter by author')) . sprintf('<ul>%s</ul>', $ct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$res .= '</form>';
|
||||||
|
|
||||||
|
return $w->renderDiv($w->content_only, $w->class, 'id="search"', $res);
|
||||||
|
}
|
||||||
|
}
|
40
default-templates/saba_404_currywurst.html
Normal file
40
default-templates/saba_404_currywurst.html
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{{tpl:extends parent="__layout.html"}}
|
||||||
|
<tpl:Block name="head-title">
|
||||||
|
<title>{{tpl:lang Document not found}} - {{tpl:BlogName encode_html="1"}}</title>
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="meta-robots">
|
||||||
|
<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX,NOARCHIVE"}}" />
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="head-linkrel">
|
||||||
|
<link rel="contents" title="{{tpl:lang Archives}}" href="{{tpl:BlogArchiveURL}}" />
|
||||||
|
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="{{tpl:BlogFeedURL type="atom"}}" />
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="body-tag">
|
||||||
|
|
||||||
|
<body class="dc-404">
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="main-content">
|
||||||
|
<div id="content-info">
|
||||||
|
<h2>{{tpl:lang Document not found}}</h2>
|
||||||
|
<p>{{tpl:lang URL you've tried has typos, or the page has been deleted or moved.}}</p>
|
||||||
|
<h3>{{tpl:lang Suggestions:}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="content-inner">
|
||||||
|
<tpl:Entries>
|
||||||
|
{{tpl:include src="_entry-short.html"}}
|
||||||
|
<tpl:EntriesFooter>
|
||||||
|
<tpl:Pagination>
|
||||||
|
<p class="pagination">
|
||||||
|
<tpl:PaginationIf end="0">
|
||||||
|
<a href="{{tpl:PaginationURL offset="+1"}}" class="prev">« {{tpl:lang previous entries}}</a> -
|
||||||
|
</tpl:PaginationIf>
|
||||||
|
{{tpl:lang page}} {{tpl:PaginationCurrent}} {{tpl:lang of}} {{tpl:PaginationCounter}}
|
||||||
|
<tpl:PaginationIf start="0">
|
||||||
|
- <a href="{{tpl:PaginationURL offset="-1"}}" class="next">{{tpl:lang next entries}} »</a>
|
||||||
|
</tpl:PaginationIf>
|
||||||
|
</p>
|
||||||
|
</tpl:Pagination>
|
||||||
|
</tpl:EntriesFooter>
|
||||||
|
</tpl:Entries>
|
||||||
|
</div> <!-- End #content-inner -->
|
||||||
|
</tpl:Block>
|
48
default-templates/saba_404_default.html
Normal file
48
default-templates/saba_404_default.html
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{{tpl:extends parent="__layout.html"}}
|
||||||
|
<tpl:Block name="head-title">
|
||||||
|
<title>{{tpl:lang Document not found}} - {{tpl:BlogName encode_html="1"}}</title>
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="meta-robots">
|
||||||
|
<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX,NOARCHIVE"}}" />
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="head-linkrel">
|
||||||
|
<link rel="contents" title="{{tpl:lang Archives}}" href="{{tpl:BlogArchiveURL}}" />
|
||||||
|
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="{{tpl:BlogFeedURL type="atom"}}" />
|
||||||
|
</tpl:Block>
|
||||||
|
|
||||||
|
<tpl:Block name="body-tag">
|
||||||
|
<body class="dc-404">
|
||||||
|
</tpl:Block>
|
||||||
|
|
||||||
|
<tpl:Block name="main-content">
|
||||||
|
<tpl:Block name="main-content-before"></tpl:Block>
|
||||||
|
<tpl:Block name="content-info-header">
|
||||||
|
<header id="content-info">
|
||||||
|
<tpl:Block name="content-info-header-title">
|
||||||
|
<h2>{{tpl:lang Document not found}}</h2>
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="content-info-header-content">
|
||||||
|
<p>{{tpl:lang URL you've tried has typos, or the page has been deleted or moved.}}</p>
|
||||||
|
</tpl:Block>
|
||||||
|
</header>
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="content-inner">
|
||||||
|
<div class="content-inner">
|
||||||
|
<h3>{{tpl:lang Suggestions:}}</h3>
|
||||||
|
<tpl:Block name="content-inner-entries">
|
||||||
|
<tpl:Entries>
|
||||||
|
<tpl:Block name="content-inner-entry">
|
||||||
|
{{tpl:include src="_entry-short.html"}}
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="content-inner-pagination">
|
||||||
|
<tpl:EntriesFooter>
|
||||||
|
</tpl:EntriesFooter>
|
||||||
|
</tpl:Block>
|
||||||
|
</tpl:Entries>
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="content-inner-footer">
|
||||||
|
</tpl:Block>
|
||||||
|
</div> <!-- # End #content-inner -->
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="main-content-after"></tpl:Block>
|
||||||
|
</tpl:Block>
|
47
default-templates/saba_404_dotty.html
Normal file
47
default-templates/saba_404_dotty.html
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
{{tpl:extends parent="__layout.html"}}
|
||||||
|
<tpl:Block name="head-title">
|
||||||
|
<title>{{tpl:lang Document not found}} - {{tpl:BlogName encode_html="1"}}</title>
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="meta-robots">
|
||||||
|
<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX,NOARCHIVE"}}" />
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="head-linkrel">
|
||||||
|
<link rel="contents" title="{{tpl:lang Archives}}" href="{{tpl:BlogArchiveURL}}" />
|
||||||
|
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="{{tpl:BlogFeedURL type="atom"}}" />
|
||||||
|
</tpl:Block>
|
||||||
|
|
||||||
|
<tpl:Block name="body-tag">
|
||||||
|
<body class="dc-404">
|
||||||
|
</tpl:Block>
|
||||||
|
|
||||||
|
<tpl:Block name="main-content">
|
||||||
|
<tpl:Block name="main-content-before"></tpl:Block>
|
||||||
|
<tpl:Block name="content-info-header">
|
||||||
|
<header id="content-info">
|
||||||
|
<tpl:Block name="content-info-header-title">
|
||||||
|
<h2>{{tpl:lang Document not found}} - {{tpl:lang Suggested items:}}</h2>
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="content-info-header-content">
|
||||||
|
<p>{{tpl:lang URL you've tried has typos, or the page has been deleted or moved.}}</p>
|
||||||
|
</tpl:Block>
|
||||||
|
</header>
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="content-inner">
|
||||||
|
<div class="content-inner">
|
||||||
|
<tpl:Block name="content-inner-entries">
|
||||||
|
<tpl:Entries>
|
||||||
|
<tpl:Block name="content-inner-entry">
|
||||||
|
{{tpl:include src="_entry-short.html"}}
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="content-inner-pagination">
|
||||||
|
<tpl:EntriesFooter>
|
||||||
|
</tpl:EntriesFooter>
|
||||||
|
</tpl:Block>
|
||||||
|
</tpl:Entries>
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="content-inner-footer">
|
||||||
|
</tpl:Block>
|
||||||
|
</div> <!-- # End #content-inner -->
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="main-content-after"></tpl:Block>
|
||||||
|
</tpl:Block>
|
78
default-templates/saba_404_mustek.html
Normal file
78
default-templates/saba_404_mustek.html
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
{{tpl:extends parent="__layout.html"}}
|
||||||
|
<tpl:Block name="head-title">
|
||||||
|
<title>{{tpl:lang Document not found}} - {{tpl:BlogName encode_html="1"}}</title>
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="meta-robots">
|
||||||
|
<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX,NOARCHIVE"}}" />
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="head-linkrel">
|
||||||
|
<link rel="contents" title="{{tpl:lang Archives}}" href="{{tpl:BlogArchiveURL}}" />
|
||||||
|
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="{{tpl:BlogFeedURL type="atom"}}" />
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="body-tag">
|
||||||
|
|
||||||
|
<body class="dc-404">
|
||||||
|
</tpl:Block>
|
||||||
|
<tpl:Block name="main-content">
|
||||||
|
<div id="content-info">
|
||||||
|
<h2>{{tpl:lang Document not found}}</h2>
|
||||||
|
<p>{{tpl:lang The document you are looking for does not exist.}}</p>
|
||||||
|
<h3>{{tpl:lang Suggestions:}}</h3>
|
||||||
|
</div>
|
||||||
|
<tpl:Entries>
|
||||||
|
<div id="p{{tpl:EntryID}}" class="post {{tpl:EntryIfOdd}} {{tpl:EntryIfFirst}}" lang="{{tpl:EntryLang}}" role="article">
|
||||||
|
<!-- # New day date -->
|
||||||
|
<tpl:DateHeader>
|
||||||
|
<p class="day-date">{{tpl:EntryDate}}</p>
|
||||||
|
</tpl:DateHeader>
|
||||||
|
<h2 class="post-title"><a
|
||||||
|
href="{{tpl:EntryURL}}">{{tpl:EntryTitle encode_html="1"}}</a></h2>
|
||||||
|
<p class="post-info">{{tpl:lang By}} {{tpl:EntryAuthorLink}}
|
||||||
|
{{tpl:lang on}} {{tpl:EntryDate}}, {{tpl:EntryTime}}
|
||||||
|
<tpl:EntryIf has_category="1">
|
||||||
|
- <a href="{{tpl:EntryCategoryURL}}">{{tpl:EntryCategory encode_html="1"}}</a>
|
||||||
|
</tpl:EntryIf>
|
||||||
|
</p>
|
||||||
|
<tpl:EntryTags>
|
||||||
|
<tpl:TagsHeader>
|
||||||
|
<ul class="post-tags">
|
||||||
|
</tpl:TagsHeader>
|
||||||
|
<li><a href="{{tpl:TagURL}}">{{tpl:TagID}}</a></li>
|
||||||
|
<tpl:TagsFooter>
|
||||||
|
</ul>
|
||||||
|
</tpl:TagsFooter>
|
||||||
|
</tpl:EntryTags>
|
||||||
|
<!-- # --BEHAVIOR-- publicEntryBeforeContent -->
|
||||||
|
{{tpl:SysBehavior behavior="publicEntryBeforeContent"}}
|
||||||
|
<!-- # Entry with an excerpt -->
|
||||||
|
<tpl:EntryIf extended="1">
|
||||||
|
<div class="post-content">{{tpl:EntryExcerpt}}</div>
|
||||||
|
<p class="read-it"><a href="{{tpl:EntryURL}}"
|
||||||
|
title="{{tpl:lang Continue reading}} {{tpl:EntryTitle encode_html="1"}}">{{tpl:lang Continue
|
||||||
|
reading}}</a><span class="readmore-ellipsis">...</span></p>
|
||||||
|
</tpl:EntryIf>
|
||||||
|
<!-- # Entry without excerpt -->
|
||||||
|
<tpl:EntryIf extended="0">
|
||||||
|
<div class="post-content">{{tpl:EntryContent}}</div>
|
||||||
|
</tpl:EntryIf>
|
||||||
|
<!-- # --BEHAVIOR-- publicEntryAfterContent -->
|
||||||
|
{{tpl:SysBehavior behavior="publicEntryAfterContent"}}
|
||||||
|
<!-- # Number of comments, trackbacks and attachments -->
|
||||||
|
<tpl:EntryIf operator="or" show_comments="1" show_pings="1" has_attachment="1">
|
||||||
|
<p class="post-info-co">
|
||||||
|
</tpl:EntryIf>
|
||||||
|
<tpl:EntryIf show_comments="1">
|
||||||
|
<a href="{{tpl:EntryURL}}#comments" class="comment_count">{{tpl:EntryCommentCount}}</a>
|
||||||
|
</tpl:EntryIf>
|
||||||
|
<tpl:EntryIf show_pings="1">
|
||||||
|
<a href="{{tpl:EntryURL}}#pings" class="ping_count">{{tpl:EntryPingCount}}</a></tpl:EntryIf>
|
||||||
|
<tpl:EntryIf has_attachment="1">
|
||||||
|
<a href="{{tpl:EntryURL}}#attachments" class="attach_count">{{tpl:EntryAttachmentCount}}</a></tpl:EntryIf>
|
||||||
|
<tpl:EntryIf operator="or" show_comments="1" show_pings="1" has_attachment="1">
|
||||||
|
</p>
|
||||||
|
</tpl:EntryIf>
|
||||||
|
</div>
|
||||||
|
<tpl:EntriesFooter>
|
||||||
|
</tpl:EntriesFooter>
|
||||||
|
</tpl:Entries>
|
||||||
|
</tpl:Block>
|
|
@ -1,14 +0,0 @@
|
||||||
<div class="saba-post">
|
|
||||||
<h2 id="p{{tpl:EntryID}}" class="post-title" lang="{{tpl:EntryLang}}" xml:lang="{{tpl:EntryLang}}"><a
|
|
||||||
href="{{tpl:EntryURL}}" title="{{tpl:lang Read}} {{tpl:EntryTitle encode_html="1"}}">{{tpl:EntryTitle encode_html="1"}}</a></h2>
|
|
||||||
|
|
||||||
<p class="post-info">{{tpl:lang By}} {{tpl:EntryAuthorLink}} {{tpl:lang on}} {{tpl:EntryDate}}
|
|
||||||
<tpl:EntryIf show_comments="1">
|
|
||||||
- <a href="{{tpl:EntryURL}}#comments">{{tpl:EntryCommentCount}}</a>
|
|
||||||
</tpl:EntryIf>
|
|
||||||
<tpl:EntryIf show_pings="1">
|
|
||||||
- <a href="{{tpl:EntryURL}}#pings">{{tpl:EntryPingCount}}</a></tpl:EntryIf>
|
|
||||||
<tpl:EntryIf has_attachment="1">
|
|
||||||
- <a href="{{tpl:EntryURL}}#attachments">{{tpl:EntryAttachmentCount}}</a></tpl:EntryIf>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
|
@ -1,133 +0,0 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{tpl:BlogLanguage}}" lang="{{tpl:BlogLanguage}}">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
||||||
<meta name="MSSmartTagsPreventParsing" content="TRUE" />
|
|
||||||
<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX"}}" />
|
|
||||||
|
|
||||||
<title>{{tpl:lang Search}} - {{tpl:SysSearchString encode_html="1"}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf></title>
|
|
||||||
<meta name="copyright" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
|
|
||||||
<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
|
|
||||||
<meta name="date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
|
|
||||||
|
|
||||||
<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
|
|
||||||
<meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Search}} - {{tpl:SysSearchString encode_html="1"}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
|
|
||||||
<meta name="dc.language" content="{{tpl:BlogLanguage}}" />
|
|
||||||
<meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
|
|
||||||
<meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
|
|
||||||
<meta name="dc.date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
|
|
||||||
<meta name="dc.type" content="text" />
|
|
||||||
<meta name="dc.format" content="text/html" />
|
|
||||||
|
|
||||||
<link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
|
|
||||||
<link rel="contents" href="{{tpl:BlogArchiveURL}}" title="{{tpl:lang Archives}}" />
|
|
||||||
|
|
||||||
{{tpl:include src="_head.html"}}
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="dc-search<tpl:SabaIf from_error="1"> dc-404</tpl:SabaIf>">
|
|
||||||
<div id="page">
|
|
||||||
{{tpl:include src="_top.html"}}
|
|
||||||
|
|
||||||
<div id="wrapper">
|
|
||||||
|
|
||||||
<div id="main">
|
|
||||||
<div id="content">
|
|
||||||
|
|
||||||
<div id="content-info">
|
|
||||||
<tpl:SabaIf from_error="1">
|
|
||||||
<h2>{{tpl:lang Document not found}}</h2>
|
|
||||||
<p>{{tpl:lang URL you've tried has typos, or the page has been deleted or moved.}}</p>
|
|
||||||
</tpl:SabaIf>
|
|
||||||
<tpl:SabaIf has_search="1" from_error="0">
|
|
||||||
<h2>{{tpl:lang Search across blog's archive}}</h2>
|
|
||||||
<tpl:SysIf search_count="==0">
|
|
||||||
<p>{{tpl:SysSearchString encode_html="1" string="Your search for <em>%1$s</em> returned no result."}}</p>
|
|
||||||
</tpl:SysIf>
|
|
||||||
<tpl:SysIf search_count="==1">
|
|
||||||
<p>{{tpl:SysSearchString encode_html="1" string="Your search for <em>%1$s</em> returned <strong>%2$s</strong> result."}}</p>
|
|
||||||
</tpl:SysIf>
|
|
||||||
<tpl:SysIf search_count=">1">
|
|
||||||
<p>{{tpl:SysSearchString encode_html="1" string="Your search for <em>%1$s</em> returned <strong>%2$s</strong> results."}}</p>
|
|
||||||
</tpl:SysIf>
|
|
||||||
</tpl:SabaIf>
|
|
||||||
<tpl:SabaIf has_search="0" from_error="0">
|
|
||||||
<form action="{{tpl:BlogURL}}" method="get" id="saba-form">
|
|
||||||
|
|
||||||
<div class="saba-opt-text">
|
|
||||||
<h3><label for="q">{{tpl:lang Advanced search}}</label></h3>
|
|
||||||
<p><input name="q" type="text" size="100" maxlength="255" value="{{tpl:SabaFormSearch}}" />
|
|
||||||
<input type="submit" class="submit" value="ok" /></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<tpl:SabaFormIf filter_options="1">{{tpl:SabaFormOptions}}</tpl:SabaFormIf>
|
|
||||||
<tpl:SabaFormIf filter_orders="1">{{tpl:SabaFormOrders remove="selected"}}</tpl:SabaFormIf>
|
|
||||||
<tpl:SabaFormIf filter_ages="1">{{tpl:SabaFormAges}}</tpl:SabaFormIf>
|
|
||||||
<tpl:SabaFormIf filter_categories="1">{{tpl:SabaFormCategories}}</tpl:SabaFormIf>
|
|
||||||
<tpl:SabaFormIf filter_authors="1">{{tpl:SabaFormAuthors}}</tpl:SabaFormIf>
|
|
||||||
<tpl:SabaFormIf filter_types="1">{{tpl:SabaFormTypes}}</tpl:SabaFormIf>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
</tpl:SabaIf>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="content-inner">
|
|
||||||
<tpl:SabaEntries>
|
|
||||||
<tpl:SabaIf from_error="1">
|
|
||||||
<tpl:EntriesHeader>
|
|
||||||
<h2>{{tpl:lang Suggested items}}</h2>
|
|
||||||
</tpl:EntriesHeader>
|
|
||||||
</tpl:SabaIf>
|
|
||||||
{{tpl:include src="saba_post.html"}}
|
|
||||||
|
|
||||||
<tpl:EntriesFooter>
|
|
||||||
<tpl:Pagination>
|
|
||||||
<p class="pagination"><tpl:PaginationIf end="0"><a href="{{tpl:SabaPaginationURL offset="+1"}}" class="prev">«
|
|
||||||
{{tpl:lang previous entries}}</a> - </tpl:PaginationIf>
|
|
||||||
{{tpl:lang page}} {{tpl:PaginationCurrent}} {{tpl:lang of}} {{tpl:PaginationCounter}}
|
|
||||||
<tpl:PaginationIf start="0"> - <a href="{{tpl:SabaPaginationURL offset="-1"}}" class="next">{{tpl:lang next entries}}
|
|
||||||
»</a></tpl:PaginationIf></p>
|
|
||||||
</tpl:Pagination>
|
|
||||||
</tpl:EntriesFooter>
|
|
||||||
</tpl:SabaEntries>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> <!-- End #main -->
|
|
||||||
|
|
||||||
<div id="sidebar">
|
|
||||||
<div id="blognav">
|
|
||||||
|
|
||||||
<tpl:SabaIf has_search="1" from_error="1" operator="or">
|
|
||||||
|
|
||||||
<form action="{{tpl:BlogURL}}" method="get" id="saba-form">
|
|
||||||
|
|
||||||
<div class="saba-opt-text">
|
|
||||||
<h3><label for="q">{{tpl:lang Advanced search}}</label></h3>
|
|
||||||
<p><input name="q" type="text" size="10" maxlength="255" value="{{tpl:SabaFormSearch}}" />
|
|
||||||
<input type="submit" class="submit" value="ok" /></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<tpl:SabaFormIf filter_options="1">{{tpl:SabaFormOptions}}</tpl:SabaFormIf>
|
|
||||||
<tpl:SabaFormIf filter_orders="1">{{tpl:SabaFormOrders remove="selected"}}</tpl:SabaFormIf>
|
|
||||||
<tpl:SabaFormIf filter_ages="1">{{tpl:SabaFormAges}}</tpl:SabaFormIf>
|
|
||||||
<tpl:SabaFormIf filter_categories="1">{{tpl:SabaFormCategories}}</tpl:SabaFormIf>
|
|
||||||
<tpl:SabaFormIf filter_authors="1">{{tpl:SabaFormAuthors}}</tpl:SabaFormIf>
|
|
||||||
<tpl:SabaFormIf filter_types="1">{{tpl:SabaFormTypes}}</tpl:SabaFormIf>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
</tpl:SabaIf>
|
|
||||||
{{tpl:Widgets type="nav"}}
|
|
||||||
</div> <!-- End #blognav -->
|
|
||||||
|
|
||||||
<div id="blogextra">
|
|
||||||
{{tpl:Widgets type="extra"}}
|
|
||||||
</div> <!-- End #blogextra -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div> <!-- End #wrapper -->
|
|
||||||
|
|
||||||
{{tpl:include src="_footer.html"}}
|
|
||||||
</div> <!-- End #page -->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,94 +1,57 @@
|
||||||
<?php
|
<?php
|
||||||
// Language: Français
|
// Language: Français
|
||||||
// Module: saba - 2013.10.28
|
// Module: saba - 2021.08.21
|
||||||
// Date: 2013-10-29 08:06:52
|
// Date: 2021-08-22 23:22:12
|
||||||
// Translated with dcTranslater - 2013.05.11
|
// Translated with dcTranslater - 2021.08.18
|
||||||
|
|
||||||
#_config.php:70
|
#_admin.php:38
|
||||||
$GLOBALS['__l10n']['Configuration has been successfully updated.'] = 'La configuration a été mise à jour avec succés.';
|
$GLOBALS['__l10n']['Search Across Blog Archive'] = 'Rechercher dans les archives';
|
||||||
|
|
||||||
#_config.php:93
|
#_admin.php:41
|
||||||
$GLOBALS['__l10n']['Enable extension on this blog'] = 'Activer l\'extension sur ce blog';
|
$GLOBALS['__l10n']['Enable advanced search on this blog'] = 'Activer la recherche avancée sur ce blog';
|
||||||
|
|
||||||
#_config.php:98
|
#_admin.php:44
|
||||||
|
$GLOBALS['__l10n']['Enable suggestion for page 404'] = 'Activer la suggestion sur la page 404';
|
||||||
|
|
||||||
|
#_admin.php:46
|
||||||
|
$GLOBALS['__l10n']['This suggests visitors some posts on page 404.'] = 'Ceci suggère au visiteurs des billets sur la page 404.';
|
||||||
|
|
||||||
|
#_widgets.php:18
|
||||||
$GLOBALS['__l10n']['Advanced search'] = 'Recherche avancée';
|
$GLOBALS['__l10n']['Advanced search'] = 'Recherche avancée';
|
||||||
|
|
||||||
#_config.php:105
|
#_widgets.php:21
|
||||||
$GLOBALS['__l10n']['Disable filter on post options'] = 'Désactiver le filtre des options de billet';
|
$GLOBALS['__l10n']['Add more search options on public side'] = 'Ajoute plus d\'options de recherche';
|
||||||
|
|
||||||
#_config.php:112
|
#_widgets.php:26
|
||||||
$GLOBALS['__l10n']['Disable filter on order'] = 'Désactiver le filtre d\'ordre';
|
|
||||||
|
|
||||||
#_config.php:119
|
|
||||||
$GLOBALS['__l10n']['Disable filter on age'] = 'Désactiver le filtre de date';
|
|
||||||
|
|
||||||
#_config.php:126
|
|
||||||
$GLOBALS['__l10n']['Disable filter on categories'] = 'Désactiver le filtre de catégories';
|
|
||||||
|
|
||||||
#_config.php:133
|
|
||||||
$GLOBALS['__l10n']['Disable filter on authors'] = 'Désactiver le filtre d\'auteurs';
|
|
||||||
|
|
||||||
#_config.php:140
|
|
||||||
$GLOBALS['__l10n']['Disable filter on post types'] = 'Désactiver le filtre de type de billets';
|
$GLOBALS['__l10n']['Disable filter on post types'] = 'Désactiver le filtre de type de billets';
|
||||||
|
|
||||||
#_public.php:345
|
#_widgets.php:30
|
||||||
$GLOBALS['__l10n']['Filter options'] = 'Options du filtre';
|
$GLOBALS['__l10n']['Hidden types:'] = 'Billets cachés :';
|
||||||
|
|
||||||
#_public.php:365
|
#_widgets.php:33
|
||||||
$GLOBALS['__l10n']['Reverse order'] = 'Inverser l\'ordre';
|
$GLOBALS['__l10n']['Disable filter on post options'] = 'Désactiver le filtre des options de billet';
|
||||||
|
|
||||||
#_public.php:367
|
#_widgets.php:37
|
||||||
$GLOBALS['__l10n']['Filter order'] = 'Options de tri';
|
$GLOBALS['__l10n']['Hidden options:'] = 'Options cachées :';
|
||||||
|
|
||||||
#_public.php:388
|
#_widgets.php:40
|
||||||
$GLOBALS['__l10n']['Filter by category'] = 'Filter par catégorie';
|
$GLOBALS['__l10n']['Disable filter on categories'] = 'Désactiver le filtre de catégories';
|
||||||
|
|
||||||
#_public.php:409
|
#_widgets.php:44
|
||||||
$GLOBALS['__l10n']['Filter by type'] = 'Filtrer par type';
|
$GLOBALS['__l10n']['Hidden categories:'] = 'Catégories cachées';
|
||||||
|
|
||||||
#_public.php:425
|
#_widgets.php:47
|
||||||
$GLOBALS['__l10n']['Filter by age'] = 'Filtrer par date';
|
$GLOBALS['__l10n']['Disable filter on authors'] = 'Désactiver le filtre d\'auteurs';
|
||||||
|
|
||||||
#_public.php:446
|
#_widgets.php:51
|
||||||
$GLOBALS['__l10n']['Filter by author'] = 'Filtrer par auteur';
|
$GLOBALS['__l10n']['Hidden authors:'] = 'Auteurs cachés';
|
||||||
|
|
||||||
#_public.php:477
|
#_widgets.php:54
|
||||||
$GLOBALS['__l10n']['With comments'] = 'Avec commentaires';
|
$GLOBALS['__l10n']['Disable filter on order'] = 'Désactiver le filtre d\'ordre';
|
||||||
|
|
||||||
#_public.php:478
|
#_widgets.php:60
|
||||||
$GLOBALS['__l10n']['With trackbacks'] = 'Avec rétroliens';
|
$GLOBALS['__l10n']['Disable filter on age'] = 'Désactiver le filtre de date';
|
||||||
|
|
||||||
#_public.php:490
|
#default-templates/saba_404_dotty.html:22
|
||||||
$GLOBALS['__l10n']['Comments count'] = 'Nombre de commentaires';
|
$GLOBALS['__l10n']['Suggested items:'] = 'Articles suggérés :';
|
||||||
|
|
||||||
#_public.php:491
|
|
||||||
$GLOBALS['__l10n']['Trackbacks count'] = 'Nombre de rétroliens';
|
|
||||||
|
|
||||||
#_public.php:498
|
|
||||||
$GLOBALS['__l10n']['All'] = 'Tous';
|
|
||||||
|
|
||||||
#_public.php:499
|
|
||||||
$GLOBALS['__l10n']['Less than a month'] = 'Moins d\'un mois';
|
|
||||||
|
|
||||||
#_public.php:500
|
|
||||||
$GLOBALS['__l10n']['From 1 to 6 month'] = 'De 1 à 6 mois';
|
|
||||||
|
|
||||||
#_public.php:501
|
|
||||||
$GLOBALS['__l10n']['From 6 to 12 month'] = 'De 6 à 12 mois';
|
|
||||||
|
|
||||||
#_public.php:502
|
|
||||||
$GLOBALS['__l10n']['More than a year'] = 'Plus d\'un an';
|
|
||||||
|
|
||||||
#_public.php:511
|
|
||||||
$GLOBALS['__l10n']['Poll'] = 'Sondage';
|
|
||||||
|
|
||||||
#_public.php:512
|
|
||||||
$GLOBALS['__l10n']['Event'] = 'Événement';
|
|
||||||
|
|
||||||
$GLOBALS['__l10n']['Search across blog\'s archive'] = 'Rechercher dans les archives';
|
|
||||||
|
|
||||||
$GLOBALS['__l10n']['Please select a request and options to search on'] = 'Merci de formuler une requête et les options de recherche';
|
|
||||||
|
|
||||||
$GLOBALS['__l10n']['Suggested items'] = 'Articles suggérés';
|
|
||||||
|
|
||||||
?>
|
|
|
@ -1,133 +1,85 @@
|
||||||
# Language: Français
|
# Language: Français
|
||||||
# Module: saba - 2013.10.28
|
# Module: saba - 2021.08.21
|
||||||
# Date: 2013-10-29 08:06:53
|
# Date: 2021-08-22 23:22:12
|
||||||
# Translated with translater 2013.05.11
|
# Translated with translater 2021.08.18
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Project-Id-Version: saba 2013.10.28\n"
|
"Project-Id-Version: saba 2021.08.21\n"
|
||||||
"POT-Creation-Date: \n"
|
"POT-Creation-Date: \n"
|
||||||
"PO-Revision-Date: 2013-10-29T08:06:53+00:00\n"
|
"PO-Revision-Date: 2021-08-22T23:22:12+00:00\n"
|
||||||
"Last-Translator: Jean-Christian Denis\n"
|
"Last-Translator: Jean-Christian Denis\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
#: _config.php:70
|
#: _admin.php:38
|
||||||
msgid "Configuration has been successfully updated."
|
msgid "Search Across Blog Archive"
|
||||||
msgstr "La configuration a été mise à jour avec succés."
|
msgstr "Rechercher dans les archives"
|
||||||
|
|
||||||
#: _config.php:93
|
#: _admin.php:41
|
||||||
msgid "Enable extension on this blog"
|
msgid "Enable advanced search on this blog"
|
||||||
msgstr "Activer l'extension sur ce blog"
|
msgstr "Activer la recherche avancée sur ce blog"
|
||||||
|
|
||||||
#: _config.php:98
|
#: _admin.php:44
|
||||||
|
msgid "Enable suggestion for page 404"
|
||||||
|
msgstr "Activer la suggestion sur la page 404"
|
||||||
|
|
||||||
|
#: _admin.php:46
|
||||||
|
msgid "This suggests visitors some posts on page 404."
|
||||||
|
msgstr "Ceci suggère au visiteurs des billets sur la page 404."
|
||||||
|
|
||||||
|
#: _widgets.php:18
|
||||||
msgid "Advanced search"
|
msgid "Advanced search"
|
||||||
msgstr "Recherche avancée"
|
msgstr "Recherche avancée"
|
||||||
|
|
||||||
#: _config.php:105
|
#: _widgets.php:21
|
||||||
msgid "Disable filter on post options"
|
msgid "Add more search options on public side"
|
||||||
msgstr "Désactiver le filtre des options de billet"
|
msgstr "Ajoute plus d'options de recherche"
|
||||||
|
|
||||||
#: _config.php:112
|
#: _widgets.php:26
|
||||||
msgid "Disable filter on order"
|
|
||||||
msgstr "Désactiver le filtre d'ordre"
|
|
||||||
|
|
||||||
#: _config.php:119
|
|
||||||
msgid "Disable filter on age"
|
|
||||||
msgstr "Désactiver le filtre de date"
|
|
||||||
|
|
||||||
#: _config.php:126
|
|
||||||
msgid "Disable filter on categories"
|
|
||||||
msgstr "Désactiver le filtre de catégories"
|
|
||||||
|
|
||||||
#: _config.php:133
|
|
||||||
msgid "Disable filter on authors"
|
|
||||||
msgstr "Désactiver le filtre d'auteurs"
|
|
||||||
|
|
||||||
#: _config.php:140
|
|
||||||
msgid "Disable filter on post types"
|
msgid "Disable filter on post types"
|
||||||
msgstr "Désactiver le filtre de type de billets"
|
msgstr "Désactiver le filtre de type de billets"
|
||||||
|
|
||||||
#: _public.php:345
|
#: _widgets.php:30
|
||||||
msgid "Filter options"
|
msgid "Hidden types:"
|
||||||
msgstr "Options du filtre"
|
msgstr "Billets cachés :"
|
||||||
|
|
||||||
#: _public.php:365
|
#: _widgets.php:33
|
||||||
msgid "Reverse order"
|
msgid "Disable filter on post options"
|
||||||
msgstr "Inverser l'ordre"
|
msgstr "Désactiver le filtre des options de billet"
|
||||||
|
|
||||||
#: _public.php:367
|
#: _widgets.php:37
|
||||||
msgid "Filter order"
|
msgid "Hidden options:"
|
||||||
msgstr "Options de tri"
|
msgstr "Options cachées :"
|
||||||
|
|
||||||
#: _public.php:388
|
#: _widgets.php:40
|
||||||
msgid "Filter by category"
|
msgid "Disable filter on categories"
|
||||||
msgstr "Filter par catégorie"
|
msgstr "Désactiver le filtre de catégories"
|
||||||
|
|
||||||
#: _public.php:409
|
#: _widgets.php:44
|
||||||
msgid "Filter by type"
|
msgid "Hidden categories:"
|
||||||
msgstr "Filtrer par type"
|
msgstr "Catégories cachées"
|
||||||
|
|
||||||
#: _public.php:425
|
#: _widgets.php:47
|
||||||
msgid "Filter by age"
|
msgid "Disable filter on authors"
|
||||||
msgstr "Filtrer par date"
|
msgstr "Désactiver le filtre d'auteurs"
|
||||||
|
|
||||||
#: _public.php:446
|
#: _widgets.php:51
|
||||||
msgid "Filter by author"
|
msgid "Hidden authors:"
|
||||||
msgstr "Filtrer par auteur"
|
msgstr "Auteurs cachés"
|
||||||
|
|
||||||
#: _public.php:477
|
#: _widgets.php:54
|
||||||
msgid "With comments"
|
msgid "Disable filter on order"
|
||||||
msgstr "Avec commentaires"
|
msgstr "Désactiver le filtre d'ordre"
|
||||||
|
|
||||||
#: _public.php:478
|
#: _widgets.php:60
|
||||||
msgid "With trackbacks"
|
msgid "Disable filter on age"
|
||||||
msgstr "Avec rétroliens"
|
msgstr "Désactiver le filtre de date"
|
||||||
|
|
||||||
#: _public.php:490
|
#: default-templates/saba_404_dotty.html:22
|
||||||
msgid "Comments count"
|
msgid "Suggested items:"
|
||||||
msgstr "Nombre de commentaires"
|
msgstr "Articles suggérés :"
|
||||||
|
|
||||||
#: _public.php:491
|
|
||||||
msgid "Trackbacks count"
|
|
||||||
msgstr "Nombre de rétroliens"
|
|
||||||
|
|
||||||
#: _public.php:498
|
|
||||||
msgid "All"
|
|
||||||
msgstr "Tous"
|
|
||||||
|
|
||||||
#: _public.php:499
|
|
||||||
msgid "Less than a month"
|
|
||||||
msgstr "Moins d'un mois"
|
|
||||||
|
|
||||||
#: _public.php:500
|
|
||||||
msgid "From 1 to 6 month"
|
|
||||||
msgstr "De 1 à 6 mois"
|
|
||||||
|
|
||||||
#: _public.php:501
|
|
||||||
msgid "From 6 to 12 month"
|
|
||||||
msgstr "De 6 à 12 mois"
|
|
||||||
|
|
||||||
#: _public.php:502
|
|
||||||
msgid "More than a year"
|
|
||||||
msgstr "Plus d'un an"
|
|
||||||
|
|
||||||
#: _public.php:511
|
|
||||||
msgid "Poll"
|
|
||||||
msgstr "Sondage"
|
|
||||||
|
|
||||||
#: _public.php:512
|
|
||||||
msgid "Event"
|
|
||||||
msgstr "Événement"
|
|
||||||
|
|
||||||
msgid "Search across blog's archive"
|
|
||||||
msgstr "Rechercher dans les archives"
|
|
||||||
|
|
||||||
msgid "Please select a request and options to search on"
|
|
||||||
msgstr "Merci de formuler une requête et les options de recherche"
|
|
||||||
|
|
||||||
msgid "Suggested items"
|
|
||||||
msgstr "Articles suggérés"
|
|
||||||
|
|
||||||
|
|
82
locales/fr/public.lang.php
Normal file
82
locales/fr/public.lang.php
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
<?php
|
||||||
|
// Language: Français
|
||||||
|
// Module: saba - 2021.08.21
|
||||||
|
// Date: 2021-08-22 23:22:12
|
||||||
|
// Translated with dcTranslater - 2021.08.18
|
||||||
|
|
||||||
|
#_public.php:293
|
||||||
|
#_public.php:303
|
||||||
|
$GLOBALS['__l10n']['Selected entry'] = 'Billet sélectionné';
|
||||||
|
|
||||||
|
#_public.php:294
|
||||||
|
$GLOBALS['__l10n']['With comments'] = 'Avec commentaires';
|
||||||
|
|
||||||
|
#_public.php:295
|
||||||
|
$GLOBALS['__l10n']['With trackbacks'] = 'Avec rétroliens';
|
||||||
|
|
||||||
|
#_public.php:302
|
||||||
|
$GLOBALS['__l10n']['Title'] = 'Titre';
|
||||||
|
|
||||||
|
#_public.php:304
|
||||||
|
$GLOBALS['__l10n']['Author'] = 'Auteur·rice';
|
||||||
|
|
||||||
|
#_public.php:305
|
||||||
|
$GLOBALS['__l10n']['Date'] = 'Date';
|
||||||
|
|
||||||
|
#_public.php:306
|
||||||
|
$GLOBALS['__l10n']['Update'] = 'Mise à jour';
|
||||||
|
|
||||||
|
#_public.php:307
|
||||||
|
$GLOBALS['__l10n']['Comments count'] = 'Nombre de commentaires';
|
||||||
|
|
||||||
|
#_public.php:308
|
||||||
|
$GLOBALS['__l10n']['Trackbacks count'] = 'Nombre de rétroliens';
|
||||||
|
|
||||||
|
#_public.php:315
|
||||||
|
$GLOBALS['__l10n']['All'] = 'Tous';
|
||||||
|
|
||||||
|
#_public.php:316
|
||||||
|
$GLOBALS['__l10n']['Less than a month'] = 'Moins d\'un mois';
|
||||||
|
|
||||||
|
#_public.php:317
|
||||||
|
$GLOBALS['__l10n']['From 1 to 6 month'] = 'De 1 à 6 mois';
|
||||||
|
|
||||||
|
#_public.php:318
|
||||||
|
$GLOBALS['__l10n']['From 6 to 12 month'] = 'De 6 à 12 mois';
|
||||||
|
|
||||||
|
#_public.php:319
|
||||||
|
$GLOBALS['__l10n']['More than a year'] = 'Plus d\'un an';
|
||||||
|
|
||||||
|
#_public.php:326
|
||||||
|
$GLOBALS['__l10n']['Entry'] = 'Publication';
|
||||||
|
|
||||||
|
#_public.php:327
|
||||||
|
$GLOBALS['__l10n']['Page'] = 'Page';
|
||||||
|
|
||||||
|
#_public.php:328
|
||||||
|
$GLOBALS['__l10n']['Poll'] = 'Sondage';
|
||||||
|
|
||||||
|
#_public.php:329
|
||||||
|
$GLOBALS['__l10n']['Event'] = 'Événement';
|
||||||
|
|
||||||
|
#_widgets.php:114
|
||||||
|
$GLOBALS['__l10n']['Reverse order'] = 'Inverser l\'ordre';
|
||||||
|
|
||||||
|
#_widgets.php:115
|
||||||
|
$GLOBALS['__l10n']['Filter order'] = 'Options de tri';
|
||||||
|
|
||||||
|
#_widgets.php:135
|
||||||
|
$GLOBALS['__l10n']['Filter options'] = 'Options du filtre';
|
||||||
|
|
||||||
|
#_widgets.php:151
|
||||||
|
$GLOBALS['__l10n']['Filter by age'] = 'Filtrer par date';
|
||||||
|
|
||||||
|
#_widgets.php:171
|
||||||
|
$GLOBALS['__l10n']['Filter by type'] = 'Filtrer par type';
|
||||||
|
|
||||||
|
#_widgets.php:192
|
||||||
|
$GLOBALS['__l10n']['Filter by category'] = 'Filter par catégorie';
|
||||||
|
|
||||||
|
#_widgets.php:213
|
||||||
|
$GLOBALS['__l10n']['Filter by author'] = 'Filtrer par auteur';
|
||||||
|
|
118
locales/fr/public.po
Normal file
118
locales/fr/public.po
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
# Language: Français
|
||||||
|
# Module: saba - 2021.08.21
|
||||||
|
# Date: 2021-08-22 23:22:12
|
||||||
|
# Translated with translater 2021.08.18
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Project-Id-Version: saba 2021.08.21\n"
|
||||||
|
"POT-Creation-Date: \n"
|
||||||
|
"PO-Revision-Date: 2021-08-22T23:22:12+00:00\n"
|
||||||
|
"Last-Translator: Jean-Christian Denis\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#: _public.php:293
|
||||||
|
#: _public.php:303
|
||||||
|
msgid "Selected entry"
|
||||||
|
msgstr "Billet sélectionné"
|
||||||
|
|
||||||
|
#: _public.php:294
|
||||||
|
msgid "With comments"
|
||||||
|
msgstr "Avec commentaires"
|
||||||
|
|
||||||
|
#: _public.php:295
|
||||||
|
msgid "With trackbacks"
|
||||||
|
msgstr "Avec rétroliens"
|
||||||
|
|
||||||
|
#: _public.php:302
|
||||||
|
msgid "Title"
|
||||||
|
msgstr "Titre"
|
||||||
|
|
||||||
|
#: _public.php:304
|
||||||
|
msgid "Author"
|
||||||
|
msgstr "Auteur·rice"
|
||||||
|
|
||||||
|
#: _public.php:305
|
||||||
|
msgid "Date"
|
||||||
|
msgstr "Date"
|
||||||
|
|
||||||
|
#: _public.php:306
|
||||||
|
msgid "Update"
|
||||||
|
msgstr "Mise à jour"
|
||||||
|
|
||||||
|
#: _public.php:307
|
||||||
|
msgid "Comments count"
|
||||||
|
msgstr "Nombre de commentaires"
|
||||||
|
|
||||||
|
#: _public.php:308
|
||||||
|
msgid "Trackbacks count"
|
||||||
|
msgstr "Nombre de rétroliens"
|
||||||
|
|
||||||
|
#: _public.php:315
|
||||||
|
msgid "All"
|
||||||
|
msgstr "Tous"
|
||||||
|
|
||||||
|
#: _public.php:316
|
||||||
|
msgid "Less than a month"
|
||||||
|
msgstr "Moins d'un mois"
|
||||||
|
|
||||||
|
#: _public.php:317
|
||||||
|
msgid "From 1 to 6 month"
|
||||||
|
msgstr "De 1 à 6 mois"
|
||||||
|
|
||||||
|
#: _public.php:318
|
||||||
|
msgid "From 6 to 12 month"
|
||||||
|
msgstr "De 6 à 12 mois"
|
||||||
|
|
||||||
|
#: _public.php:319
|
||||||
|
msgid "More than a year"
|
||||||
|
msgstr "Plus d'un an"
|
||||||
|
|
||||||
|
#: _public.php:326
|
||||||
|
msgid "Entry"
|
||||||
|
msgstr "Publication"
|
||||||
|
|
||||||
|
#: _public.php:327
|
||||||
|
msgid "Page"
|
||||||
|
msgstr "Page"
|
||||||
|
|
||||||
|
#: _public.php:328
|
||||||
|
msgid "Poll"
|
||||||
|
msgstr "Sondage"
|
||||||
|
|
||||||
|
#: _public.php:329
|
||||||
|
msgid "Event"
|
||||||
|
msgstr "Événement"
|
||||||
|
|
||||||
|
#: _widgets.php:114
|
||||||
|
msgid "Reverse order"
|
||||||
|
msgstr "Inverser l'ordre"
|
||||||
|
|
||||||
|
#: _widgets.php:115
|
||||||
|
msgid "Filter order"
|
||||||
|
msgstr "Options de tri"
|
||||||
|
|
||||||
|
#: _widgets.php:135
|
||||||
|
msgid "Filter options"
|
||||||
|
msgstr "Options du filtre"
|
||||||
|
|
||||||
|
#: _widgets.php:151
|
||||||
|
msgid "Filter by age"
|
||||||
|
msgstr "Filtrer par date"
|
||||||
|
|
||||||
|
#: _widgets.php:171
|
||||||
|
msgid "Filter by type"
|
||||||
|
msgstr "Filtrer par type"
|
||||||
|
|
||||||
|
#: _widgets.php:192
|
||||||
|
msgid "Filter by category"
|
||||||
|
msgstr "Filter par catégorie"
|
||||||
|
|
||||||
|
#: _widgets.php:213
|
||||||
|
msgid "Filter by author"
|
||||||
|
msgstr "Filtrer par auteur"
|
||||||
|
|
Loading…
Reference in a new issue