move settings from plugin config to blog pref

This commit is contained in:
Jean-Christian Denis 2021-08-24 22:50:53 +02:00
parent 64e42494ca
commit 1788d0324e
5 changed files with 93 additions and 135 deletions

View file

@ -2,14 +2,14 @@ enhancePostContent xxxx.xx.xx
* Not added priority on filters for replacement order * Not added priority on filters for replacement order
* Not added priority on lists of filters for replacement order * Not added priority on lists of filters for replacement order
* Not added auto-find post title in content * Not added auto-find post title in content
* move settings from plugin to blog
enhancePostContent 2021.08.xx enhancePostContent 2021.08.24
* switch to Dotclear 2.19 * switch to Dotclear 2.19
* switch to php 7.3+ and php 8.0.x * switch to php 7.3+ and php 8.0.x
* switch to Github * switch to Github
* update license * update license
* update php code to PSR-2 and short array * update php code to PSR-2 and short array
* move settings from plugin to blog
enhancePostContent 2013.11.08 enhancePostContent 2013.11.08
* Switch to Dotclear 2.6 (admin styles and settings) * Switch to Dotclear 2.6 (admin styles and settings)

View file

@ -22,8 +22,7 @@ atgs, acronyms, abbreviations, definition, citation, link, etc...
First install enhancePostContent, manualy from a zip package or from First install enhancePostContent, manualy 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 enhancePostContent information then Go to ''blog preference'' => fieldset ''plugin preference', fill in form.
go to ''configure plugin'', fill in form.
Once it's done you can manage filters from menu Once it's done you can manage filters from menu
''Enhance Post Content'' on sidebar or you can add dashboard icon, ''Enhance Post Content'' on sidebar or you can add dashboard icon,

View file

@ -15,6 +15,8 @@ if (!defined('DC_CONTEXT_ADMIN')) {
return null; return null;
} }
$core->blog->settings->addNamespace('enhancePostContent');
require dirname(__FILE__) . '/_widgets.php'; require dirname(__FILE__) . '/_widgets.php';
# Admin menu # Admin menu
@ -33,6 +35,14 @@ $core->addBehavior(
'adminDashboardFavorites', 'adminDashboardFavorites',
['epcAdminBehaviors', 'adminDashboardFavorites'] ['epcAdminBehaviors', 'adminDashboardFavorites']
); );
$core->addBehavior(
'adminBlogPreferencesForm',
['epcAdminBehaviors', 'adminBlogPreferencesForm']
);
$core->addBehavior(
'adminBeforeBlogSettingsUpdate',
['epcAdminBehaviors', 'adminBeforeBlogSettingsUpdate']
);
class epcAdminBehaviors class epcAdminBehaviors
{ {
@ -57,4 +67,83 @@ class epcAdminBehaviors
&& isset($params['p']) && isset($params['p'])
&& $params['p'] == 'enhancePostContent'; && $params['p'] == 'enhancePostContent';
} }
public static function sortbyCombo()
{
return [
__('Date') => 'epc_upddt',
__('Key') => 'epc_key',
__('Value') => 'epc_value',
__('ID') => 'epc_id'
];
}
public static function orderCombo()
{
return [
__('Ascending') => 'asc',
__('Descending') => 'desc'
];
}
public static function adminBlogPreferencesForm(dcCore $core, dcSettings $blog_settings)
{
$active = (boolean) $blog_settings->enhancePostContent->enhancePostContent_active;
$list_sortby = (string) $blog_settings->enhancePostContent->enhancePostContent_list_sortby;
$list_order = (string) $blog_settings->enhancePostContent->enhancePostContent_list_order;
$list_nb = (integer) $blog_settings->enhancePostContent->enhancePostContent_list_nb;
$_filters = libEPC::blogFilters();
$allowedtplvalues = libEPC::blogAllowedTplValues();
$allowedpubpages = libEPC::blogAllowedPubPages();
echo
'<div class="fieldset"><h4 id="fac_params">' . __('Enhance post content') .'</h4>' .
'<div class="two-cols">' .
'<div class="col">' .
'<p><label class="classic">' .
form::checkbox('epc_active', '1', $active) .
__('Enable plugin') . '</label></p>' .
'<p class="form-note">' .
__('This enable public widgets and contents filter.') .
'</p>' .
'<h5>' . __('Record list') . '</h4>' .
'<p class="form-note">' . __('This is the default order of records lists.') . '</p>' .
'<p><label for="epc_list_sortby">' . __('Order by:') . '</label>' .
form::combo('epc_list_sortby', self::sortbyCombo(), $list_sortby) . '</p>' .
'<p><label for="epc_list_order">' . __('Sort:') . '</label>' .
form::combo('epc_list_order', self::orderCombo(), $list_order) . '</p>' .
'<p><label for="list_nb">' . __('Records per page:') . '</label>' .
form::field('epc_list_nb', 3, 3, $list_nb) . '</p>' .
'</div>' .
'<div class="col">' .
'<h5>' . __('Extra') . '</h5>' .
'<p>' . __('This is a special feature to edit list of allowed template values and public pages where this plugin works.') . '</p>' .
'<p><label for="epc_allowedtplvalues">' . __('Allowed DC template values:') . '</label>' .
form::field('epc_allowedtplvalues', 100, 0, libEPC::implode($allowedtplvalues)) . '</p>' .
'<p class="form-note">' . __('Use "readable_name1:template_value1;readable_name2:template_value2;" like "entry content:EntryContent;entry excerpt:EntryExcerpt;".') . '</p>' .
'<p><label for="epc_allowedpubpages">' . __('Allowed public pages:') . '</label>' .
form::field('epc_allowedpubpages', 100, 0, libEPC::implode($allowedpubpages)) . '</p>' .
'<p class="form-note">' . __('Use "readable_name1:template_page1;readable_name2:template_page2;" like "post page:post.html;home page:home.html;".') . '</p>' .
'</div>' .
'</div>' .
'<br class="clear" />' .
'</div>';
}
public static function adminBeforeBlogSettingsUpdate(dcSettings $blog_settings)
{
$active = !empty($_POST['epc_active']);
$list_sortby = in_array($_POST['epc_list_sortby'], self::sortbyCombo()) ? $_POST['epc_list_sortby'] : 'epc_id';
$list_order = in_array($_POST['epc_list_order'], self::orderCombo()) ? $_POST['epc_list_order'] : 'desc';
$list_nb = isset($_POST['epc_list_nb']) && $_POST['epc_list_nb'] > 0 ? $_POST['epc_list_nb'] : 20;
$allowedtplvalues = libEPC::explode($_POST['epc_allowedtplvalues']);
$allowedpubpages = libEPC::explode($_POST['epc_allowedpubpages']);
$blog_settings->enhancePostContent->put('enhancePostContent_active', $active);
$blog_settings->enhancePostContent->put('enhancePostContent_list_sortby', $list_sortby);
$blog_settings->enhancePostContent->put('enhancePostContent_list_order', $list_order);
$blog_settings->enhancePostContent->put('enhancePostContent_list_nb', $list_nb);
$blog_settings->enhancePostContent->put('enhancePostContent_allowedtplvalues', serialize($allowedtplvalues));
$blog_settings->enhancePostContent->put('enhancePostContent_allowedpubpages', serialize($allowedpubpages));
}
} }

View file

@ -1,130 +0,0 @@
<?php
# -- BEGIN LICENSE BLOCK ----------------------------------
#
# This file is part of enhancePostContent, 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;
}
$redir = empty($_REQUEST['redir']) ?
$list->getURL().'#plugins' : $_REQUEST['redir'];
# -- Form combos --
$sortby_combo = array(
__('Date') => 'epc_upddt',
__('Key') => 'epc_key',
__('Value') => 'epc_value',
__('ID') => 'epc_id'
);
$order_combo = array(
__('Ascending') => 'asc',
__('Descending') => 'desc'
);
# -- Get settings --
$core->blog->settings->addNamespace('enhancePostContent');
$s = $core->blog->settings->enhancePostContent;
$active = (boolean) $s->enhancePostContent_active;
$list_sortby = (string) $s->enhancePostContent_list_sortby;
$list_order = (string) $s->enhancePostContent_list_order;
$list_nb = (integer) $s->enhancePostContent_list_nb;
$_filters = libEPC::blogFilters();
$allowedtplvalues = libEPC::blogAllowedTplValues();
$allowedpubpages = libEPC::blogAllowedPubPages();
# -- Set settings --
if (!empty($_POST['save'])) {
try {
$active = !empty($_POST['active']);
$list_sortby = in_array($_POST['list_sortby'], $sortby_combo) ?
$_POST['list_sortby'] : 'epc_id';
$list_order = in_array($_POST['list_order'], $order_combo) ?
$_POST['list_order'] : 'desc';
$list_nb = isset($_POST['list_nb']) && $_POST['list_nb'] > 0 ?
$_POST['list_nb'] : 20;
$s->put('enhancePostContent_active', $active);
$s->put('enhancePostContent_list_sortby', $list_sortby);
$s->put('enhancePostContent_list_order', $list_order);
$s->put('enhancePostContent_list_nb', $list_nb);
$allowedtplvalues = libEPC::explode($_POST['allowedtplvalues']);
$allowedpubpages = libEPC::explode($_POST['allowedpubpages']);
$s->put(
'enhancePostContent_allowedtplvalues',
serialize($allowedtplvalues)
);
$s->put(
'enhancePostContent_allowedpubpages',
serialize($allowedpubpages)
);
$core->blog->triggerBlog();
dcPage::addSuccessNotice(
__('Configuration has been successfully updated.')
);
http::redirect(
$list->getURL('module=enhancePostContent&conf=1&redir='.
$list->getRedir())
);
}
catch (Exception $e) {
$core->error->add($e->getMessage());
}
}
# -- Display form --
echo '
<div class="fieldset">
<h4>'.__('General').'</h4>
<p>'.__('This enable public widgets and contents filter.').'</p>
<p><label class="classic" for="active">'.
form::checkbox('active', 1, $active).
__('Enable plugin').'</label></p>
</div>
<div class="fieldset">
<h4>'.__('Record list').'</h4>
<p>'.__('This is the default order of records lists.').'</p>
<p><label for="list_sortby">'.__('Order by:').'</label>'.
form::combo('list_sortby', $sortby_combo, $list_sortby).'</p>
<p><label for="list_order">'.__('Sort:').'</label>'.
form::combo('list_order', $order_combo, $list_order).'</p>
<p><label for="list_nb">'.__('Records per page:').'</label>'.
form::field('list_nb', 3, 3, $list_nb).'</p>
</div>
<div class="fieldset">
<h4>'.__('Extra').'</h4>
<p>'.__('This is a special feature to edit list of allowed template values and public pages where this plugin works.').'</p>
<p><label for="allowedtplvalues">'.__('Allowed DC template values:').'</label>'.
form::field('allowedtplvalues', 100,0, libEPC::implode($allowedtplvalues)).'</p>
<p class="form-note">'.__('Use "readable_name1:template_value1;readable_name2:template_value2;" like "entry content:EntryContent;entry excerpt:EntryExcerpt;".').'</p>
<p><label for="allowedpubpages">'.__('Allowed public pages:').'</label>'.
form::field('allowedpubpages', 100, 0, libEPC::implode($allowedpubpages)).'</p>
<p class="form-note">'.__('Use "readable_name1:template_page1;readable_name2:template_page2;" like "post page:post.html;home page:home.html;".').'</p>
</div>';

View file

@ -19,7 +19,7 @@ $this->registerModule(
'Enhance post content', 'Enhance post content',
'Add features to words in post content', 'Add features to words in post content',
'Jean-Christian Denis and Contributors', 'Jean-Christian Denis and Contributors',
'2021.08.0', '2021.08.24',
[ [
'permissions' => 'contentadmin', 'permissions' => 'contentadmin',
'type' => 'plugin', 'type' => 'plugin',