code review
This commit is contained in:
parent
b1f644a8f3
commit
ff2e09e743
19 changed files with 68 additions and 106 deletions
|
@ -1,3 +1,9 @@
|
|||
enhancePostContent 2023.10.16
|
||||
===========================================================
|
||||
* Require Dotclear 2.28
|
||||
* Require PHP 8.1
|
||||
* Code review
|
||||
|
||||
enhancePostContent 2023.10.13
|
||||
===========================================================
|
||||
* Require Dotclear 2.28
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# README
|
||||
|
||||
[![Release](https://img.shields.io/badge/release-2023.10.13-a2cbe9.svg)](https://git.dotclear.watch/JcDenis/enhancePostContent/releases)
|
||||
![Date](https://img.shields.io/badge/date-2023.10.13-c44d58.svg)
|
||||
[![Release](https://img.shields.io/badge/release-2023.10.16-a2cbe9.svg)](https://git.dotclear.watch/JcDenis/enhancePostContent/releases)
|
||||
![Date](https://img.shields.io/badge/date-2023.10.16-c44d58.svg)
|
||||
[![Dotclear](https://img.shields.io/badge/dotclear-v2.28-137bbb.svg)](https://fr.dotclear.org/download)
|
||||
[![Dotaddict](https://img.shields.io/badge/dotaddict-official-9ac123.svg)](https://plugins.dotaddict.org/dc2/details/enhancePostContent)
|
||||
[![License](https://img.shields.io/badge/license-GPL--2.0-ececec.svg)](https://git.dotclear.watch/JcDenis/enhancePostContent/src/branch/master/LICENSE)
|
||||
|
@ -14,10 +14,10 @@ _enhancePostContent_ is a plugin for the open-source web publishing software cal
|
|||
|
||||
## REQUIREMENTS
|
||||
|
||||
* admin permissions to set up plugin
|
||||
* content admin permissions to manage fitlers
|
||||
* Dotclear 2.28
|
||||
* PHP 8.1+
|
||||
* Dotclear admin permissions to set up plugin
|
||||
* Dotclear content admin permissions to manage fitlers
|
||||
|
||||
## USAGE
|
||||
|
||||
|
|
|
@ -9,14 +9,13 @@
|
|||
* Add features to words in post content.
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
$this->registerModule(
|
||||
'Enhance post content',
|
||||
'Add features to words in post content',
|
||||
'Jean-Christian Denis and Contributors',
|
||||
'2023.10.13',
|
||||
'2023.10.16',
|
||||
[
|
||||
'type' => 'plugin',
|
||||
'requires' => [['core', '2.28']],
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
<modules xmlns:da="http://dotaddict.org/da/">
|
||||
<module id="enhancePostContent">
|
||||
<name>Enhance post content</name>
|
||||
<version>2023.10.13</version>
|
||||
<version>2023.10.16</version>
|
||||
<author>Jean-Christian Denis and Contributors</author>
|
||||
<desc>Add features to words in post content</desc>
|
||||
<file>https://git.dotclear.watch/JcDenis/enhancePostContent/releases/download/v2023.10.13/plugin-enhancePostContent.zip</file>
|
||||
<file>https://git.dotclear.watch/JcDenis/enhancePostContent/releases/download/v2023.10.16/plugin-enhancePostContent.zip</file>
|
||||
<da:dcmin>2.28</da:dcmin>
|
||||
<da:details>https://git.dotclear.watch/JcDenis/enhancePostContent/src/branch/master/README.md</da:details>
|
||||
<da:support>https://git.dotclear.watch/JcDenis/enhancePostContent/issues</da:support>
|
||||
|
|
|
@ -1,17 +1,10 @@
|
|||
<?php
|
||||
/**
|
||||
* @brief enhancePostContent, a plugin for Dotclear 2
|
||||
* @file
|
||||
* @brief The plugin enhancePostContent resources
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @package Dotclear
|
||||
* @subpackage Plugin
|
||||
*
|
||||
* @author Jean-Christian Denis and Contributors
|
||||
*
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
if (!defined('DC_RC_PATH')) {
|
||||
return;
|
||||
}
|
||||
|
||||
dcCore::app()->resources['help']['enhancePostContent'] = __DIR__ . '/help/help.html';
|
||||
\Dotclear\App::backend()->resources()->set('help', 'enhancePostContent', __DIR__ . '/help/help.html');
|
||||
|
|
|
@ -1,17 +1,10 @@
|
|||
<?php
|
||||
/**
|
||||
* @brief enhancePostContent, a plugin for Dotclear 2
|
||||
* @file
|
||||
* @brief The plugin enhancePostContent resources
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @package Dotclear
|
||||
* @subpackage Plugin
|
||||
*
|
||||
* @author Jean-Christian Denis and Contributors
|
||||
*
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
if (!defined('DC_RC_PATH')) {
|
||||
return;
|
||||
}
|
||||
|
||||
dcCore::app()->resources['help']['enhancePostContent'] = __DIR__ . '/help/help.html';
|
||||
\Dotclear\App::backend()->resources()->set('help', 'enhancePostContent', __DIR__ . '/help/help.html');
|
||||
|
|
|
@ -7,7 +7,6 @@ namespace Dotclear\Plugin\enhancePostContent;
|
|||
use ArrayObject;
|
||||
use Dotclear\App;
|
||||
use Dotclear\Core\Backend\Favorites;
|
||||
use Dotclear\Core\BlogSettings;
|
||||
use Dotclear\Core\Process;
|
||||
use Dotclear\Helper\Html\Form\{
|
||||
Checkbox,
|
||||
|
@ -19,13 +18,13 @@ use Dotclear\Helper\Html\Form\{
|
|||
Para,
|
||||
Text
|
||||
};
|
||||
use Dotclear\Interface\Core\BlogSettingsInterface;
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent backend class.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent backend class.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
class Backend extends Process
|
||||
|
@ -55,7 +54,7 @@ class Backend extends Process
|
|||
]);
|
||||
},
|
||||
// backend user preference form
|
||||
'adminBlogPreferencesFormV2' => function (BlogSettings $blog_settings): void {
|
||||
'adminBlogPreferencesFormV2' => function (BlogSettingsInterface $blog_settings): void {
|
||||
$active = (bool) $blog_settings->get(My::id())->get('active');
|
||||
$allowedtplvalues = Epc::blogAllowedTemplateValue();
|
||||
$allowedpubpages = Epc::blogAllowedTemplatePage();
|
||||
|
@ -121,7 +120,7 @@ class Backend extends Process
|
|||
->render();
|
||||
},
|
||||
// backend user preference save
|
||||
'adminBeforeBlogSettingsUpdate' => function (BlogSettings $blog_settings): void {
|
||||
'adminBeforeBlogSettingsUpdate' => function (BlogSettingsInterface $blog_settings): void {
|
||||
$active = !empty($_POST['epc_active']);
|
||||
$allowedtplvalues = Epc::decodeMulti($_POST['epc_allowedtplvalues']);
|
||||
$allowedpubpages = Epc::decodeMulti($_POST['epc_allowedpubpages']);
|
||||
|
@ -146,7 +145,7 @@ class Backend extends Process
|
|||
];
|
||||
},
|
||||
// widgets registration
|
||||
'initWidgets' => [Widgets::class, 'initWidgets'],
|
||||
'initWidgets' => Widgets::initWidgets(...),
|
||||
]);
|
||||
|
||||
return true;
|
||||
|
|
|
@ -14,11 +14,10 @@ use Dotclear\Helper\Html\Form\Checkbox;
|
|||
use Dotclear\Helper\Html\Html;
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent filters list class.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent filters list class.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
class BackendList extends Listing
|
||||
|
|
23
src/Epc.php
23
src/Epc.php
|
@ -1,15 +1,5 @@
|
|||
<?php
|
||||
/**
|
||||
* @brief enhancePostContent, a plugin for Dotclear 2
|
||||
*
|
||||
* @package Dotclear
|
||||
* @subpackage Plugin
|
||||
*
|
||||
* @author Jean-Christian Denis and Contributors
|
||||
*
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dotclear\Plugin\enhancePostContent;
|
||||
|
@ -32,11 +22,10 @@ __('atom feeds');
|
|||
__('RSS feeds');
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent main class.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent main class.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
class Epc
|
||||
|
@ -128,15 +117,15 @@ class Epc
|
|||
$list = new ArrayObject([
|
||||
'entry excerpt' => [
|
||||
'id' => 'entryexcerpt',
|
||||
'cb' => [self::class, 'widgetContentEntryExcerpt'],
|
||||
'cb' => self::widgetContentEntryExcerpt(...),
|
||||
],
|
||||
'entry content' => [
|
||||
'id' => 'entrycontent',
|
||||
'cb' => [self::class, 'widgetContentEntryContent'],
|
||||
'cb' => self::widgetContentEntryContent(...),
|
||||
],
|
||||
'comment content' => [
|
||||
'id' => 'commentcontent',
|
||||
'cb' => [self::class, 'widgetContentCommentContent'],
|
||||
'cb' => self::widgetContentCommentContent(...),
|
||||
],
|
||||
]);
|
||||
|
||||
|
|
|
@ -10,13 +10,12 @@ use Dotclear\Plugin\widgets\WidgetsElement;
|
|||
use Exception;
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent abstract filter class.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent abstract filter class.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* All filter must extends this class.
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
abstract class EpcFilter
|
||||
|
|
|
@ -5,18 +5,21 @@ declare(strict_types=1);
|
|||
namespace Dotclear\Plugin\enhancePostContent;
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent filters stack.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent filters stack.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* Use Epc::getFilters() to get loaded stack
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
class EpcFilters
|
||||
{
|
||||
/** @var array<int,EpcFilter> $satck The filters stack */
|
||||
/**
|
||||
* The filters stack.
|
||||
*
|
||||
* @var array<int, EpcFilter> $stack
|
||||
*/
|
||||
private array $stack = [];
|
||||
|
||||
/**
|
||||
|
|
|
@ -12,11 +12,10 @@ use Dotclear\Database\{
|
|||
use Exception;
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent filters records.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent filters records.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
class EpcRecord
|
||||
|
|
|
@ -8,11 +8,10 @@ use Dotclear\App;
|
|||
use Dotclear\Core\Process;
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent frontend class.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent frontend class.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
class Frontend extends Process
|
||||
|
@ -50,7 +49,7 @@ class Frontend extends Process
|
|||
}
|
||||
},
|
||||
// Widgets
|
||||
'initWidgets' => [Widgets::class, 'initWidgets'],
|
||||
'initWidgets' => Widgets::initWidgets(...),
|
||||
]);
|
||||
|
||||
return true;
|
||||
|
|
|
@ -10,11 +10,10 @@ use Dotclear\Database\Structure;
|
|||
use Exception;
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent installation class.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent installation class.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
class Install extends Process
|
||||
|
|
|
@ -1,15 +1,5 @@
|
|||
<?php
|
||||
/**
|
||||
* @brief enhancePostContent, a plugin for Dotclear 2
|
||||
*
|
||||
* @package Dotclear
|
||||
* @subpackage Plugin
|
||||
*
|
||||
* @author Jean-Christian Denis and Contributors
|
||||
*
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Dotclear\Plugin\enhancePostContent;
|
||||
|
@ -43,11 +33,10 @@ use Dotclear\Helper\Network\Http;
|
|||
use Exception;
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent manage class.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent manage class.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
class Manage extends Process
|
||||
|
|
|
@ -8,11 +8,10 @@ use Dotclear\App;
|
|||
use Dotclear\Module\MyPlugin;
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent My helper.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent My helper.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
class My extends MyPlugin
|
||||
|
|
|
@ -9,11 +9,10 @@ use Dotclear\Core\Process;
|
|||
use Dotclear\Helper\Html\Html;
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent prepend class.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent prepend class.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
class Prepend extends Process
|
||||
|
@ -30,7 +29,7 @@ class Prepend extends Process
|
|||
}
|
||||
|
||||
// register epc filters
|
||||
app::behavior()->addBehavior('enhancePostContentFilters', function (EpcFilters $stack): void {
|
||||
App::behavior()->addBehavior('enhancePostContentFilters', function (EpcFilters $stack): void {
|
||||
foreach (Epc::DEFAULT_FILTERS as $class) {
|
||||
$stack->add(new $class());
|
||||
}
|
||||
|
|
|
@ -8,11 +8,10 @@ use Dotclear\Core\Process;
|
|||
use Dotclear\Plugin\Uninstaller\Uninstaller;
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent uninstall class.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent uninstall class.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
class Uninstall extends Process
|
||||
|
|
|
@ -11,11 +11,10 @@ use Dotclear\Plugin\widgets\WidgetsStack;
|
|||
use Dotclear\Plugin\widgets\WidgetsElement;
|
||||
|
||||
/**
|
||||
* @brief enhancePostContent widgets class.
|
||||
* @ingroup enhancePostContent
|
||||
* @brief enhancePostContent widgets class.
|
||||
* @ingroup enhancePostContent
|
||||
*
|
||||
* @author Jean-Christian Denis
|
||||
* @copyright Jean-Christian Denis
|
||||
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||
*/
|
||||
class Widgets
|
||||
|
@ -30,7 +29,7 @@ class Widgets
|
|||
$w->create(
|
||||
'epclist',
|
||||
My::name(),
|
||||
[self::class, 'parseWidget'],
|
||||
self::parseWidget(...),
|
||||
null,
|
||||
__('List filtered contents.')
|
||||
);
|
||||
|
|
Loading…
Reference in a new issue