update php code to PSR-2 and short array

master
Jean-Christian Paul Denis 2021-08-24 22:05:23 +02:00
parent 450ada59a1
commit 64e42494ca
14 changed files with 1668 additions and 1740 deletions

View File

@ -2,12 +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.xx
* 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
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

@ -12,11 +12,10 @@
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_CONTEXT_ADMIN')) { if (!defined('DC_CONTEXT_ADMIN')) {
return null; return null;
} }
require dirname(__FILE__).'/_widgets.php'; require dirname(__FILE__) . '/_widgets.php';
# Admin menu # Admin menu
$_menu['Blog']->addItem( $_menu['Blog']->addItem(
@ -32,24 +31,24 @@ $_menu['Blog']->addItem(
$core->addBehavior( $core->addBehavior(
'adminDashboardFavorites', 'adminDashboardFavorites',
array('epcAdminBehaviors', 'adminDashboardFavorites') ['epcAdminBehaviors', 'adminDashboardFavorites']
); );
class epcAdminBehaviors class epcAdminBehaviors
{ {
public static function adminDashboardFavorites($core, $favs) public static function adminDashboardFavorites($core, $favs)
{ {
$favs->register('enhancePostContent', array( $favs->register('enhancePostContent', [
'title' => __('Enhance post content'), 'title' => __('Enhance post content'),
'url' => 'plugin.php?p=enhancePostContent', 'url' => 'plugin.php?p=enhancePostContent',
'small-icon' => 'index.php?pf=enhancePostContent/icon.png', 'small-icon' => 'index.php?pf=enhancePostContent/icon.png',
'large-icon' => 'index.php?pf=enhancePostContent/icon-big.png', 'large-icon' => 'index.php?pf=enhancePostContent/icon-big.png',
'permissions' => $core->auth->check('contentadmin', $core->blog->id), 'permissions' => $core->auth->check('contentadmin', $core->blog->id),
'active_cb' => array( 'active_cb' => [
'epcAdminBehaviors', 'epcAdminBehaviors',
'adminDashboardFavoritesActive' 'adminDashboardFavoritesActive'
) ]
)); ]);
} }
public static function adminDashboardFavoritesActive($request, $params) public static function adminDashboardFavoritesActive($request, $params)

View File

@ -12,24 +12,19 @@
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_RC_PATH')) { if (!defined('DC_RC_PATH')) {
return null; return null;
} }
$this->registerModule( $this->registerModule(
/* Name */ 'Enhance post content',
"Enhance post content", 'Add features to words in post content',
/* Description*/ 'Jean-Christian Denis and Contributors',
"Add features to words in post content", '2021.08.0',
/* Author */ [
"Jean-Christian Denis",
/* Version */
'2013.11.08',
array(
'permissions' => 'contentadmin', 'permissions' => 'contentadmin',
'type' => 'plugin', 'type' => 'plugin',
'dc_min' => '2.6', 'dc_min' => '2.18',
'support' => 'http://jcd.lv/q=enhancePostContent', 'support' => 'https://github.com/JcDenis/enhancePostContent',
'details' => 'http://plugins.dotaddict.org/dc2/details/enhancePostContent' 'details' => 'https://plugins.dotaddict.org/dc2/details/enhancePostContent'
) ]
); );

View File

@ -12,22 +12,19 @@
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_CONTEXT_ADMIN')) { if (!defined('DC_CONTEXT_ADMIN')) {
return null; return null;
} }
$dc_min = '2.6'; $dc_min = '2.18';
$mod_id = 'enhancePostContent'; $mod_id = 'enhancePostContent';
$new_version = $core->plugins->moduleInfo($mod_id, 'version'); $new_version = $core->plugins->moduleInfo($mod_id, 'version');
$old_version = $core->getVersion($mod_id); $old_version = $core->getVersion($mod_id);
if (version_compare($old_version, $new_version, '>=')) { if (version_compare($old_version, $new_version, '>=')) {
return null; return null;
} }
try try {
{
# Check Dotclear version # Check Dotclear version
if (!method_exists('dcUtils', 'versionsCompare') if (!method_exists('dcUtils', 'versionsCompare')
|| dcUtils::versionsCompare(DC_VERSION, $dc_min, '<', false)) { || dcUtils::versionsCompare(DC_VERSION, $dc_min, '<', false)) {
@ -72,32 +69,31 @@ try
$filters = libEPC::defaultFilters(); $filters = libEPC::defaultFilters();
foreach($filters as $name => $filter) { foreach($filters as $name => $filter) {
# Only editable options # Only editable options
$opt = array( $opt = [
'nocase' => $filter['nocase'], 'nocase' => $filter['nocase'],
'plural' => $filter['plural'], 'plural' => $filter['plural'],
'style' => $filter['style'], 'style' => $filter['style'],
'notag' => $filter['notag'], 'notag' => $filter['notag'],
'tplValues' => $filter['tplValues'], 'tplValues' => $filter['tplValues'],
'pubPages' => $filter['pubPages'] 'pubPages' => $filter['pubPages']
); ];
$s->put('enhancePostContent_'.$name, serialize($opt), 'string', 'Settings for '.$name, false, true); $s->put('enhancePostContent_' . $name, serialize($opt), 'string', 'Settings for ' . $name, false, true);
# only tables # only tables
if (isset($filter['list'])) { if (isset($filter['list'])) {
$s->put('enhancePostContent_'.$name.'List', serialize($filter['list']), 'string', 'List for '.$name, false, true); $s->put('enhancePostContent_' . $name . 'List', serialize($filter['list']), 'string', 'List for ' . $name, false, true);
} }
} }
# Move old filters lists from settings to database # Move old filters lists from settings to database
if ($old_version && version_compare('0.6.6', $old_version, '>=')) { if ($old_version && version_compare('0.6.6', $old_version, '>=')) {
include_once dirname(__FILE__).'/inc/lib.epc.update.php'; include_once dirname(__FILE__) . '/inc/lib.epc.update.php';
} }
# Version # Version
$core->setVersion($mod_id, $new_version); $core->setVersion($mod_id, $new_version);
return true; return true;
} } catch (Exception $e) {
catch (Exception $e) {
$core->error->add($e->getMessage()); $core->error->add($e->getMessage());
} }

View File

@ -12,11 +12,10 @@
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_RC_PATH')) { if (!defined('DC_RC_PATH')) {
return null; return null;
} }
$d = dirname(__FILE__).'/inc/'; $d = dirname(__FILE__) . '/inc/';
$__autoload['libEPC'] = $d.'lib.epc.php'; $__autoload['libEPC'] = $d . 'lib.epc.php';
$__autoload['epcRecords'] = $d.'lib.epc.records.php'; $__autoload['epcRecords'] = $d . 'lib.epc.records.php';

View File

@ -12,11 +12,10 @@
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_RC_PATH')) { if (!defined('DC_RC_PATH')) {
return null; return null;
} }
require dirname(__FILE__).'/_widgets.php'; require dirname(__FILE__) . '/_widgets.php';
$core->blog->settings->addNamespace('enhancePostContent'); $core->blog->settings->addNamespace('enhancePostContent');
@ -24,11 +23,11 @@ if ($core->blog->settings->enhancePostContent->enhancePostContent_active) {
$core->addBehavior( $core->addBehavior(
'publicHeadContent', 'publicHeadContent',
array('publicEnhancePostContent', 'publicHeadContent') ['publicEnhancePostContent', 'publicHeadContent']
); );
$core->addBehavior( $core->addBehavior(
'publicBeforeContentFilter', 'publicBeforeContentFilter',
array('publicEnhancePostContent', 'publicContentFilter') ['publicEnhancePostContent', 'publicContentFilter']
); );
} }
@ -51,8 +50,7 @@ class publicEnhancePostContent
foreach($filters as $name => $filter) { foreach($filters as $name => $filter) {
if (empty($filter['class']) if (empty($filter['class'])
|| empty($filter['style']) || empty($filter['style'])) {
) {
continue; continue;
} }
@ -60,14 +58,14 @@ class publicEnhancePostContent
foreach($filter['class'] as $k => $class) { foreach($filter['class'] as $k => $class) {
$style = html::escapeHTML(trim($filter['style'][$k])); $style = html::escapeHTML(trim($filter['style'][$k]));
if ('' != $style) { if ('' != $style) {
$res .= $class." {".$style."} "; $res .= $class . " {" . $style . "} ";
} }
} }
if (!empty($res)) { if (!empty($res)) {
echo echo
"\n<!-- CSS for enhancePostContent ".$name." --> \n". "\n<!-- CSS for enhancePostContent " . $name . " --> \n" .
"<style type=\"text/css\"> ".$res."</style> \n"; "<style type=\"text/css\"> " . $res . "</style> \n";
} }
} }
} }
@ -88,8 +86,7 @@ class publicEnhancePostContent
if (!isset($filter['publicContentFilter']) if (!isset($filter['publicContentFilter'])
|| !is_callable($filter['publicContentFilter']) || !is_callable($filter['publicContentFilter'])
|| !libEPC::testContext($tag,$args,$filter) || !libEPC::testContext($tag,$args,$filter)) {
) {
continue; continue;
} }
@ -104,7 +101,7 @@ class publicEnhancePostContent
call_user_func_array( call_user_func_array(
$filter['publicContentFilter'], $filter['publicContentFilter'],
array($core, $filter, $tag, $args) [$core, $filter, $tag, $args]
); );
} }
} }

View File

@ -11,7 +11,9 @@
# #
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_CONTEXT_ADMIN')){return;} if (!defined('DC_CONTEXT_ADMIN')){
return;
}
$this->addUserAction( $this->addUserAction(
/* type */ 'settings', /* type */ 'settings',
@ -34,25 +36,23 @@ $this->addUserAction(
/* description */ __('delete the version number') /* description */ __('delete the version number')
); );
$this->addDirectAction( $this->addDirectAction(
/* type */ 'settings', /* type */ 'settings',
/* action */ 'delete_all', /* action */ 'delete_all',
/* ns */ 'enhancePostContent', /* ns */ 'enhancePostContent',
/* description */ sprintf(__('delete all %s settings'),'enhancePostContent') /* description */ sprintf(__('delete all %s settings'), 'enhancePostContent')
); );
$this->addDirectAction( $this->addDirectAction(
/* type */ 'plugins', /* type */ 'plugins',
/* action */ 'delete', /* action */ 'delete',
/* ns */ 'enhancePostContent', /* ns */ 'enhancePostContent',
/* description */ sprintf(__('delete %s plugin files'),'enhancePostContent') /* description */ sprintf(__('delete %s plugin files'), 'enhancePostContent')
); );
$this->addDirectAction( $this->addDirectAction(
/* type */ 'versions', /* type */ 'versions',
/* action */ 'delete', /* action */ 'delete',
/* ns */ 'enhancePostContent', /* ns */ 'enhancePostContent',
/* description */ sprintf(__('delete %s version number'),'enhancePostContent') /* description */ sprintf(__('delete %s version number'), 'enhancePostContent')
); );
?>

View File

@ -12,13 +12,12 @@
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_RC_PATH')) { if (!defined('DC_RC_PATH')) {
return null; return null;
} }
$core->addBehavior( $core->addBehavior(
'initWidgets', 'initWidgets',
array('enhancePostContentWidget', 'adminContentList') ['enhancePostContentWidget', 'adminContentList']
); );
/** /**
@ -40,7 +39,7 @@ class enhancePostContentWidget
$w->create( $w->create(
'epclist', 'epclist',
__('Enhance post content'), __('Enhance post content'),
array('enhancePostContentWidget', 'publicContentList'), ['enhancePostContentWidget', 'publicContentList'],
null, null,
__('List filtered contents.') __('List filtered contents.')
); );
@ -60,12 +59,10 @@ class enhancePostContentWidget
); );
# Type # Type
$filters = libEPC::blogFilters(); $filters = libEPC::blogFilters();
$types = array(); $types = [];
foreach($filters as $name => $filter) foreach($filters as $name => $filter) {
{
if (!isset($filter['widgetListFilter']) if (!isset($filter['widgetListFilter'])
|| !is_callable($filter['widgetListFilter']) || !is_callable($filter['widgetListFilter'])) {
) {
continue; continue;
} }
@ -82,7 +79,7 @@ class enhancePostContentWidget
$contents = libEPC::defaultAllowedWidgetValues(); $contents = libEPC::defaultAllowedWidgetValues();
foreach($contents as $k => $v) { foreach($contents as $k => $v) {
$w->epclist->setting( $w->epclist->setting(
'content'.$v['id'], 'content' . $v['id'],
sprintf(__('Enable filter on %s'), __($k)), sprintf(__('Enable filter on %s'), __($k)),
1, 1,
'check' 'check'
@ -137,8 +134,7 @@ class enhancePostContentWidget
# Page # Page
if (!$core->blog->settings->enhancePostContent->enhancePostContent_active if (!$core->blog->settings->enhancePostContent->enhancePostContent_active
|| !in_array($_ctx->current_tpl,array('post.html','page.html')) || !in_array($_ctx->current_tpl, ['post.html', 'page.html'])) {
) {
return null; return null;
} }
@ -147,47 +143,44 @@ class enhancePostContentWidget
$allowedwidgetvalues = libEPC::defaultAllowedWidgetValues(); $allowedwidgetvalues = libEPC::defaultAllowedWidgetValues();
foreach($allowedwidgetvalues as $k => $v) { foreach($allowedwidgetvalues as $k => $v) {
$ns = 'content'.$v['id']; $ns = 'content' . $v['id'];
if ($w->$ns && is_callable($v['callback'])) { if ($w->$ns && is_callable($v['callback'])) {
$content .= call_user_func_array( $content .= call_user_func_array(
$v['callback'], $v['callback'],
array($core,$w) [$core, $w]
); );
} }
} }
if (empty($content)) { if (empty($content)) {
return null; return null;
} }
# Filter # Filter
$list = array(); $list = [];
$filters = libEPC::blogFilters(); $filters = libEPC::blogFilters();
if (isset($filters[$w->type]) if (isset($filters[$w->type])
&& isset($filters[$w->type]['widgetListFilter']) && isset($filters[$w->type]['widgetListFilter'])
&& is_callable($filters[$w->type]['widgetListFilter']) && is_callable($filters[$w->type]['widgetListFilter'])) {
) {
$filters[$w->type]['nocase'] = $w->nocase; $filters[$w->type]['nocase'] = $w->nocase;
$filters[$w->type]['plural'] = $w->plural; $filters[$w->type]['plural'] = $w->plural;
if ($filters[$w->type]['has_list']) { if ($filters[$w->type]['has_list']) {
$records = new epcRecords($core); $records = new epcRecords($core);
$filters[$w->type]['list'] = $records->getRecords( $filters[$w->type]['list'] = $records->getRecords(
array('epc_filter' => $w->type) ['epc_filter' => $w->type]
); );
} }
call_user_func_array( call_user_func_array(
$filters[$w->type]['widgetListFilter'], $filters[$w->type]['widgetListFilter'],
array($core, $filters[$w->type], $content, $w, &$list) [$core, $filters[$w->type], $content, $w, &$list]
); );
} }
if (empty($list)) { if (empty($list)) {
return null; return null;
} }
@ -199,22 +192,21 @@ class enhancePostContentWidget
} }
$res .= $res .=
'<li>'.$line['matches'][0]['match']. '<li>' . $line['matches'][0]['match'] .
($w->show_total ? ' ('.$line['total'].')' : ''). ($w->show_total ? ' (' . $line['total'] .')' : '') .
'</li>'; '</li>';
} }
if (empty($res)) { if (empty($res)) {
return null; return null;
} }
return return
($w->content_only ? '' : '<div class="epc-widgetlist'. ($w->content_only ? '' : '<div class="epc-widgetlist' .
($w->class ? ' '.html::escapeHTML($w->class) : '').'"">'). ($w->class ? ' ' . html::escapeHTML($w->class) : '') . '"">') .
($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : ''). ($w->title ? '<h2>' . html::escapeHTML($w->title) . '</h2>' : '') .
($w->text ? '<p>'.html::escapeHTML($w->text).'</p>' : ''). ($w->text ? '<p>' . html::escapeHTML($w->text) . '</p>' : '') .
'<ul>'.$res.'</ul>'. '<ul>' . $res . '</ul>' .
($w->content_only ? '' : '</div>'); ($w->content_only ? '' : '</div>');
} }
} }

View File

@ -26,11 +26,11 @@ class libEPC
public static function defaultAllowedTplValues() public static function defaultAllowedTplValues()
{ {
return array( return [
'entry excerpt' => 'EntryExcerpt', 'entry excerpt' => 'EntryExcerpt',
'entry content' => 'EntryContent', 'entry content' => 'EntryContent',
'comment content' => 'CommentContent', 'comment content' => 'CommentContent',
); ];
} }
public static function blogAllowedTplValues() public static function blogAllowedTplValues()
@ -46,36 +46,36 @@ class libEPC
{ {
global $core; global $core;
$rs = array( $rs = [
'entry excerpt' => array( 'entry excerpt' => [
'id' => 'entryexcerpt', 'id' => 'entryexcerpt',
'callback' => array('libEPC','widgetContentEntryExcerpt') 'callback' => ['libEPC','widgetContentEntryExcerpt']
), ],
'entry content' => array( 'entry content' => [
'id' => 'entrycontent', 'id' => 'entrycontent',
'callback' => array('libEPC','widgetContentEntryContent') 'callback' => ['libEPC','widgetContentEntryContent']
), ],
'comment content' => array( 'comment content' => [
'id' => 'commentcontent', 'id' => 'commentcontent',
'callback' => array('libEPC','widgetContentCommentContent') 'callback' => ['libEPC','widgetContentCommentContent']
) ]
); ];
$core->callBehavior('enhancePostContentAllowedWidgetValues',$rs); $core->callBehavior('enhancePostContentAllowedWidgetValues', $rs);
return $rs; return $rs;
} }
public static function defaultAllowedPubPages() public static function defaultAllowedPubPages()
{ {
return array( return [
'home page' => 'home.html', 'home page' => 'home.html',
'post page' => 'post.html', 'post page' => 'post.html',
'category page' => 'category.html', 'category page' => 'category.html',
'search results page' => 'search.html', 'search results page' => 'search.html',
'atom feeds' => 'atom.xml', 'atom feeds' => 'atom.xml',
'RSS feeds' => 'rss2.xml' 'RSS feeds' => 'rss2.xml'
); ];
} }
public static function blogAllowedPubPages() public static function blogAllowedPubPages()
@ -91,258 +91,249 @@ class libEPC
{ {
global $core; global $core;
$filters = array( $filters = [
'Tag' => array( 'Tag' => [
'id' => 'tag', 'id' => 'tag',
'publicContentFilter' => array('libEPC','publicContentFilterTag'), 'publicContentFilter' => ['libEPC', 'publicContentFilterTag'],
'widgetListFilter' => array('libEPC','widgetListTag'), 'widgetListFilter' => ['libEPC', 'widgetListTag'],
'help' => __('Highlight tags of your blog.'), 'help' => __('Highlight tags of your blog.'),
'has_list' => false, 'has_list' => false,
'htmltag' => 'a', 'htmltag' => 'a',
'class' => array('a.epc-tag'), 'class' => ['a.epc-tag'],
'replace' => '<a class="epc-tag" href="%s" title="'.__('Tag').'">%s</a>', 'replace' => '<a class="epc-tag" href="%s" title="' . __('Tag') . '">%s</a>',
'widget' => '<a href="%s" title="'.__('Tag').'">%s</a>', 'widget' => '<a href="%s" title="' . __('Tag') . '">%s</a>',
'nocase' => false, 'nocase' => false,
'plural' => false, 'plural' => false,
'limit' => 0, 'limit' => 0,
'style' => array('text-decoration: none; border-bottom: 3px double #CCCCCC;'), 'style' => ['text-decoration: none; border-bottom: 3px double #CCCCCC;'],
'notag' => 'a,h1,h2,h3', 'notag' => 'a,h1,h2,h3',
'tplValues' => array('EntryContent'), 'tplValues' => ['EntryContent'],
'pubPages' => array('post.html') 'pubPages' => ['post.html']
), ],
'Search' => array( 'Search' => [
'id' => 'search', 'id' => 'search',
'publicContentFilter' => array('libEPC','publicContentFilterSearch'), 'publicContentFilter' => ['libEPC', 'publicContentFilterSearch'],
'help' => __('Highlight searched words.'), 'help' => __('Highlight searched words.'),
'has_list' => false, 'has_list' => false,
'htmltag' => '', 'htmltag' => '',
'class' => array('span.epc-search'), 'class' => ['span.epc-search'],
'replace' => '<span class="epc-search" title="'.__('Search').'">%s</span>', 'replace' => '<span class="epc-search" title="' . __('Search') . '">%s</span>',
'nocase' => true, 'nocase' => true,
'plural' => true, 'plural' => true,
'limit' => 0, 'limit' => 0,
'style' => array('color: #FFCC66;'), 'style' => ['color: #FFCC66;'],
'notag' => 'h1,h2,h3', 'notag' => 'h1,h2,h3',
'tplValues' => array('EntryContent'), 'tplValues' => ['EntryContent'],
'pubPages' => array('search.html') 'pubPages' => ['search.html']
), ],
'Acronym' => array( 'Acronym' => [
'id' => 'acronym', 'id' => 'acronym',
'publicContentFilter' => array('libEPC','publicContentFilterAcronym'), 'publicContentFilter' => ['libEPC', 'publicContentFilterAcronym'],
'widgetListFilter' => array('libEPC','widgetListAcronym'), 'widgetListFilter' => ['libEPC', 'widgetListAcronym'],
'help' => __('Explain some acronyms. First term of the list is the acornym and second term the explanation.'), 'help' => __('Explain some acronyms. First term of the list is the acornym and second term the explanation.'),
'has_list' => true, 'has_list' => true,
'htmltag' => 'acronym', 'htmltag' => 'acronym',
'class' => array('acronym.epc-acronym'), 'class' => ['acronym.epc-acronym'],
'replace' => '<acronym class="epc-acronym" title="%s">%s</acronym>', 'replace' => '<acronym class="epc-acronym" title="%s">%s</acronym>',
'widget' => '<acronym title="%s">%s</acronym>', 'widget' => '<acronym title="%s">%s</acronym>',
'nocase' => false, 'nocase' => false,
'plural' => false, 'plural' => false,
'limit' => 0, 'limit' => 0,
'style' => array('font-weight: bold;'), 'style' => ['font-weight: bold;'],
'notag' => 'a,acronym,abbr,dfn,h1,h2,h3', 'notag' => 'a,acronym,abbr,dfn,h1,h2,h3',
'tplValues' => array('EntryContent'), 'tplValues' => ['EntryContent'],
'pubPages' => array('post.html'), 'pubPages' => ['post.html'],
), ],
'Abbreviation' => array( 'Abbreviation' => [
'id' => 'abbreviation', 'id' => 'abbreviation',
'publicContentFilter' => array('libEPC','publicContentFilterAbbreviation'), 'publicContentFilter' => ['libEPC', 'publicContentFilterAbbreviation'],
'widgetListFilter' => array('libEPC','widgetListAbbreviation'), 'widgetListFilter' => ['libEPC', 'widgetListAbbreviation'],
'help' => __('Explain some abbreviation. First term of the list is the abbreviation and second term the explanation.'), 'help' => __('Explain some abbreviation. First term of the list is the abbreviation and second term the explanation.'),
'has_list' => true, 'has_list' => true,
'htmltag' => 'a', 'htmltag' => 'a',
'class' => array('abbr.epc-abbr'), 'class' => ['abbr.epc-abbr'],
'replace' => '<abbr class="epc-abbr" title="%s">%s</abbr>', 'replace' => '<abbr class="epc-abbr" title="%s">%s</abbr>',
'widget' => '<abbr title="%s">%s</abbr>', 'widget' => '<abbr title="%s">%s</abbr>',
'nocase' => false, 'nocase' => false,
'plural' => false, 'plural' => false,
'limit' => 0, 'limit' => 0,
'style' => array('font-weight: bold;'), 'style' => ['font-weight: bold;'],
'notag' => 'a,acronym,abbr,dfn,h1,h2,h3', 'notag' => 'a,acronym,abbr,dfn,h1,h2,h3',
'tplValues' => array('EntryContent'), 'tplValues' => ['EntryContent'],
'pubPages' => array('post.html'), 'pubPages' => ['post.html'],
), ],
'Definition' => array( 'Definition' => [
'id' => 'definition', 'id' => 'definition',
'publicContentFilter' => array('libEPC','publicContentFilterDefinition'), 'publicContentFilter' => ['libEPC', 'publicContentFilterDefinition'],
'widgetListFilter' => array('libEPC','widgetListDefinition'), 'widgetListFilter' => ['libEPC', 'widgetListDefinition'],
'help' => __('Explain some definition. First term of the list is the sample to define and second term the explanation.'), 'help' => __('Explain some definition. First term of the list is the sample to define and second term the explanation.'),
'has_list' => true, 'has_list' => true,
'htmltag' => 'dfn', 'htmltag' => 'dfn',
'class' => array('dfn.epc-dfn'), 'class' => ['dfn.epc-dfn'],
'replace' => '<dfn class="epc-dfn" title="%s">%s</dfn>', 'replace' => '<dfn class="epc-dfn" title="%s">%s</dfn>',
'widget' => '<dfn class="epc-dfn" title="%s">%s</dfn>', 'widget' => '<dfn class="epc-dfn" title="%s">%s</dfn>',
'nocase' => false, 'nocase' => false,
'plural' => false, 'plural' => false,
'limit' => 0, 'limit' => 0,
'style' => array('font-weight: bold;'), 'style' => ['font-weight: bold;'],
'notag' => 'a,acronym,abbr,dfn,h1,h2,h3', 'notag' => 'a,acronym,abbr,dfn,h1,h2,h3',
'tplValues' => array('EntryContent'), 'tplValues' => ['EntryContent'],
'pubPages' => array('post.html'), 'pubPages' => ['post.html'],
), ],
'Citation' => array( 'Citation' => [
'id' => 'citation', 'id' => 'citation',
'publicContentFilter' => array('libEPC','publicContentFilterCitation'), 'publicContentFilter' => ['libEPC', 'publicContentFilterCitation'],
'widgetListFilter' => array('libEPC','widgetListCitation'), 'widgetListFilter' => ['libEPC', 'widgetListCitation'],
'help' => __('Highlight citation of people. First term of the list is the citation and second term the author.'), 'help' => __('Highlight citation of people. First term of the list is the citation and second term the author.'),
'has_list' => true, 'has_list' => true,
'htmltag' => 'cite', 'htmltag' => 'cite',
'class' => array('cite.epc-cite'), 'class' => ['cite.epc-cite'],
'replace' => '<cite class="epc-cite" title="%s">%s</cite>', 'replace' => '<cite class="epc-cite" title="%s">%s</cite>',
'widget' => '<cite title="%s">%s</cite>', 'widget' => '<cite title="%s">%s</cite>',
'nocase' => true, 'nocase' => true,
'plural' => false, 'plural' => false,
'limit' => 0, 'limit' => 0,
'style' => array('font-style: italic;'), 'style' => ['font-style: italic;'],
'notag' => 'a,h1,h2,h3', 'notag' => 'a,h1,h2,h3',
'tplValues' => array('EntryContent'), 'tplValues' => ['EntryContent'],
'pubPages' => array('post.html'), 'pubPages' => ['post.html'],
), ],
'Link' => array( 'Link' => [
'id' => 'link', 'id' => 'link',
'publicContentFilter' => array('libEPC','publicContentFilterLink'), 'publicContentFilter' => ['libEPC', 'publicContentFilterLink'],
'widgetListFilter' => array('libEPC','widgetListLink'), 'widgetListFilter' => ['libEPC', 'widgetListLink'],
'help' => __('Link some words. First term of the list is the term to link and second term the link.'), 'help' => __('Link some words. First term of the list is the term to link and second term the link.'),
'has_list' => true, 'has_list' => true,
'htmltag' => 'a', 'htmltag' => 'a',
'class' => array('a.epc-link'), 'class' => ['a.epc-link'],
'replace' => '<a class="epc-link" title="%s" href="%s">%s</a>', 'replace' => '<a class="epc-link" title="%s" href="%s">%s</a>',
'widget' => '<a title="%s" href="%s">%s</a>', 'widget' => '<a title="%s" href="%s">%s</a>',
'nocase' => false, 'nocase' => false,
'plural' => false, 'plural' => false,
'limit' => 0, 'limit' => 0,
'style' => array('text-decoration: none; font-style: italic; color: #0000FF;'), 'style' => ['text-decoration: none; font-style: italic; color: #0000FF;'],
'notag' => 'a,h1,h2,h3', 'notag' => 'a,h1,h2,h3',
'tplValues' => array('EntryContent'), 'tplValues' => ['EntryContent'],
'pubPages' => array('post.html'), 'pubPages' => ['post.html'],
), ],
'Replace' => array( 'Replace' => [
'id' => 'replace', 'id' => 'replace',
'publicContentFilter' => array('libEPC','publicContentFilterReplace'), 'publicContentFilter' => ['libEPC', 'publicContentFilterReplace'],
'help' => __('Replace some text. First term of the list is the text to replace and second term the replacement.'), 'help' => __('Replace some text. First term of the list is the text to replace and second term the replacement.'),
'has_list' => true, 'has_list' => true,
'htmltag' => '', 'htmltag' => '',
'class' => array('span.epc-replace'), 'class' => ['span.epc-replace'],
'replace' => '<span class="epc-replace">%s</span>', 'replace' => '<span class="epc-replace">%s</span>',
'nocase' => true, 'nocase' => true,
'plural' => true, 'plural' => true,
'limit' => 0, 'limit' => 0,
'style' => array('font-style: italic;'), 'style' => ['font-style: italic;'],
'notag' => 'h1,h2,h3', 'notag' => 'h1,h2,h3',
'tplValues' => array('EntryContent'), 'tplValues' => ['EntryContent'],
'pubPages' => array('post.html'), 'pubPages' => ['post.html'],
), ],
'Update' => array( 'Update' => [
'id' => 'update', 'id' => 'update',
'publicContentFilter' => array('libEPC','publicContentFilterUpdate'), 'publicContentFilter' => ['libEPC', 'publicContentFilterUpdate'],
'help' => __('Update and show terms. First term of the list is the term to update and second term the new term.'), 'help' => __('Update and show terms. First term of the list is the term to update and second term the new term.'),
'has_list' => true, 'has_list' => true,
'htmltag' => 'del,ins', 'htmltag' => 'del,ins',
'class' => array('del.epc-update','ins.epc-update'), 'class' => ['del.epc-update', 'ins.epc-update'],
'replace' => '<del class="epc-update">%s</del> <ins class="epc-update">%s</ins>', 'replace' => '<del class="epc-update">%s</del> <ins class="epc-update">%s</ins>',
'nocase' => true, 'nocase' => true,
'plural' => true, 'plural' => true,
'limit' => 0, 'limit' => 0,
'style' => array('text-decoration: line-through;','font-style: italic;'), 'style' => ['text-decoration: line-through;', 'font-style: italic;'],
'notag' => 'h1,h2,h3', 'notag' => 'h1,h2,h3',
'tplValues' => array('EntryContent'), 'tplValues' => ['EntryContent'],
'pubPages' => array('post.html'), 'pubPages' => ['post.html'],
), ],
'Twitter' => array( 'Twitter' => [
'id' => 'twitter', 'id' => 'twitter',
'publicContentFilter' => array('libEPC','publicContentFilterTwitter'), 'publicContentFilter' => ['libEPC', 'publicContentFilterTwitter'],
'help' => __('Add link to twitter user page. Every word started with "@" will be considered as twitter user.'), 'help' => __('Add link to twitter user page. Every word started with "@" will be considered as twitter user.'),
'has_list' => false, 'has_list' => false,
'htmltag' => 'a', 'htmltag' => 'a',
'class' => array('a.epc-twitter'), 'class' => ['a.epc-twitter'],
'replace' => '<a class="epc-twitter" title="'.__("View this user's twitter page").'" href="%s">%s</a>', 'replace' => '<a class="epc-twitter" title="' . __("View this user's twitter page") . '" href="%s">%s</a>',
'nocase' => false, 'nocase' => false,
'plural' => false, 'plural' => false,
'limit' => 0, 'limit' => 0,
'style' => array('text-decoration: none; font-weight: bold; font-style: italic; color: #0000FF;'), 'style' => ['text-decoration: none; font-weight: bold; font-style: italic; color: #0000FF;'],
'notag' => 'a,h1,h2,h3', 'notag' => 'a,h1,h2,h3',
'tplValues' => array('EntryContent'), 'tplValues' => ['EntryContent'],
'pubPages' => array('post.html') 'pubPages' => ['post.html']
) ]
); ];
$core->callBehavior('enhancePostContentDefaultFilters',$filters); $core->callBehavior('enhancePostContentDefaultFilters', $filters);
return $filters; return $filters;
} }
public static function blogFilters($one=null) public static function blogFilters($one = null)
{ {
global $core; global $core;
$core->blog->settings->addNamespace('enhancePostContent'); $core->blog->settings->addNamespace('enhancePostContent');
$filters = self::defaultFilters(); $filters = self::defaultFilters();
foreach($filters as $name => $filter) foreach($filters as $name => $filter) {
{
# Parse filters options # Parse filters options
$ns = 'enhancePostContent_'.$name; $ns = 'enhancePostContent_' . $name;
$opt[$name] = @unserialize($core->blog->settings->enhancePostContent->$ns); $opt[$name] = @unserialize($core->blog->settings->enhancePostContent->$ns);
if (!is_array($opt[$name])) if (!is_array($opt[$name])) {
{ $opt[$name] = [];
$opt[$name] = array();
} }
if (isset($opt[$name]['nocase'])) if (isset($opt[$name]['nocase'])) {
{
$filters[$name]['nocase'] = (boolean) $opt[$name]['nocase']; $filters[$name]['nocase'] = (boolean) $opt[$name]['nocase'];
} }
if (isset($opt[$name]['plural'])) if (isset($opt[$name]['plural'])) {
{
$filters[$name]['plural'] = (boolean) $opt[$name]['plural']; $filters[$name]['plural'] = (boolean) $opt[$name]['plural'];
} }
if (isset($opt[$name]['limit'])) if (isset($opt[$name]['limit'])) {
{
$filters[$name]['limit'] = abs((integer) $opt[$name]['limit']); $filters[$name]['limit'] = abs((integer) $opt[$name]['limit']);
} }
if (isset($opt[$name]['style']) && is_array($opt[$name]['style'])) if (isset($opt[$name]['style']) && is_array($opt[$name]['style'])) {
{
$filters[$name]['style'] = (array) $opt[$name]['style']; $filters[$name]['style'] = (array) $opt[$name]['style'];
} }
if (isset($opt[$name]['notag'])) if (isset($opt[$name]['notag'])) {
{
$filters[$name]['notag'] = (string) $opt[$name]['notag']; $filters[$name]['notag'] = (string) $opt[$name]['notag'];
} }
if (isset($opt[$name]['tplValues'])) if (isset($opt[$name]['tplValues'])) {
{
$filters[$name]['tplValues'] = (array) $opt[$name]['tplValues']; $filters[$name]['tplValues'] = (array) $opt[$name]['tplValues'];
} }
if (isset($opt[$name]['pubPages'])) if (isset($opt[$name]['pubPages'])) {
{
$filters[$name]['pubPages'] = (array) $opt[$name]['pubPages']; $filters[$name]['pubPages'] = (array) $opt[$name]['pubPages'];
} }
} }
$core->callBehavior('enhancePostContentBlogFilters',$filters); $core->callBehavior('enhancePostContentBlogFilters', $filters);
return $filters; return $filters;
} }
public static function testContext($tag,$args,$opt) public static function testContext($tag, $args, $opt)
{ {
return return
isset($opt['pubPages']) isset($opt['pubPages'])
@ -350,122 +341,136 @@ class libEPC
&& in_array($GLOBALS['_ctx']->current_tpl,$opt['pubPages']) && in_array($GLOBALS['_ctx']->current_tpl,$opt['pubPages'])
&& isset($opt['tplValues']) && isset($opt['tplValues'])
&& is_array($opt['tplValues']) && is_array($opt['tplValues'])
&& in_array($tag,$opt['tplValues']) && in_array($tag, $opt['tplValues'])
&& $args[0] != '' //content && $args[0] != '' //content
&& !$args[2] // remove html && !$args[2] // remove html
; ;
} }
public static function replaceString($p,$r,$s,$filter,$before='\b',$after='\b') public static function replaceString($p, $r, $s, $filter, $before = '\b', $after = '\b')
{ {
# Limit # Limit
if ($filter['limit'] > 0) if ($filter['limit'] > 0) {
{
$l = isset($GLOBALS['epcFilterLimit'][$filter['id']][$p]) ? $GLOBALS['epcFilterLimit'][$filter['id']][$p] : $filter['limit']; $l = isset($GLOBALS['epcFilterLimit'][$filter['id']][$p]) ? $GLOBALS['epcFilterLimit'][$filter['id']][$p] : $filter['limit'];
if ($l < 1) return $s; if ($l < 1) {
return $s;
}
} else { } else {
$l = -1; $l = -1;
} }
# Case sensitive # Case sensitive
$i = $filter['nocase'] ? 'i' : ''; $i = $filter['nocase'] ? 'i' : '';
# Plural # Plural
$x = $filter['plural'] ? $p.'s|'.$p : $p; $x = $filter['plural'] ? $p . 's|' . $p : $p;
# Mark words # Mark words
$s = preg_replace('#('.$before.')('.$x.')('.$after.')#s'.$i,'$1ççççç$2ççççç$3',$s,-1,$count); $s = preg_replace('#(' . $before . ')(' . $x . ')(' . $after . ')#s' . $i, '$1ççççç$2ççççç$3', $s, -1, $count);
# Nothing to parse # Nothing to parse
if (!$count) return $s; if (!$count) {
return $s;
}
# Remove words that are into unwanted html tags # Remove words that are into unwanted html tags
$tags = ''; $tags = '';
$ignore_tags = array_merge(self::decodeTags($filter['htmltag']),self::decodeTags($filter['notag'])); $ignore_tags = array_merge(self::decodeTags($filter['htmltag']), self::decodeTags($filter['notag']));
if (is_array($ignore_tags) && !empty($ignore_tags)) if (is_array($ignore_tags) && !empty($ignore_tags)) {
{ $tags = implode('|', $ignore_tags);
$tags = implode('|',$ignore_tags);
} }
if (!empty($tags)) if (!empty($tags)) {
{ $s = preg_replace_callback('#(<(' . $tags . ')[^>]*?>)(.*?)(</\\2>)#s', ['libEPC', 'removeTags'], $s);
$s = preg_replace_callback('#(<('.$tags.')[^>]*?>)(.*?)(</\\2>)#s',array('libEPC','removeTags'),$s);
} }
# Remove words inside html tag (class, title, alt, href, ...) # Remove words inside html tag (class, title, alt, href, ...)
$s = preg_replace('#(ççççç('.$p.'(s|))ççççç)(?=[^<]+>)#s'.$i,'$2$4',$s); $s = preg_replace('#(ççççç(' . $p . '(s|))ççççç)(?=[^<]+>)#s' . $i, '$2$4', $s);
# Replace words by what you want (with limit) # Replace words by what you want (with limit)
$s = preg_replace('#ççççç('.$p.'(s|))ççççç#s'.$i,$r,$s,$l,$count); $s = preg_replace('#ççççç(' . $p . '(s|))ççççç#s' . $i, $r, $s, $l, $count);
# update limit # update limit
$GLOBALS['epcFilterLimit'][$filter['id']][$p] = $l - $count; $GLOBALS['epcFilterLimit'][$filter['id']][$p] = $l - $count;
# Clean rest # Clean rest
return $s = preg_replace('#ççççç(.*?)ççççç#s','$1',$s); return $s = preg_replace('#ççççç(.*?)ççççç#s', '$1', $s);
} }
public static function matchString($p,$r,$s,$filter,$before='\b',$after='\b') public static function matchString($p, $r, $s, $filter, $before = '\b', $after = '\b')
{ {
# Case sensitive # Case sensitive
$i = $filter['nocase'] ? 'i' : ''; $i = $filter['nocase'] ? 'i' : '';
# Plural # Plural
$x = $filter['plural'] ? $p.'s|'.$p : $p; $x = $filter['plural'] ? $p . 's|' . $p : $p;
# Mark words # Mark words
$t = preg_match_all('#'.$before.'('.$x.')'.$after.'#s'.$i,$s,$matches); $t = preg_match_all('#' . $before . '(' . $x . ')' . $after . '#s' . $i, $s, $matches);
# Nothing to parse # Nothing to parse
if (!$t) return array('total'=>0,'matches'=>array()); if (!$t) {
return ['total' => 0, 'matches' => []];
}
# Build array # Build array
$m = array(); $m = [];
$loop=0; $loop = 0;
foreach($matches[1] as $match) foreach($matches[1] as $match) {
{
$m[$loop]['key'] = $match; $m[$loop]['key'] = $match;
$m[$loop]['match'] = preg_replace('#('.$p.'(s|))#s'.$i,$r,$match,-1,$count); $m[$loop]['match'] = preg_replace('#(' . $p . '(s|))#s' . $i, $r, $match, -1, $count);
$m[$loop]['num'] = $count; $m[$loop]['num'] = $count;
$loop++; $loop++;
} }
return array('total'=>$t,'matches'=>$m); return ['total' => $t, 'matches' => $m];
} }
public static function quote($s) public static function quote($s)
{ {
return preg_quote($s,'#'); return preg_quote($s, '#');
} }
public static function removeTags($m) public static function removeTags($m)
{ {
return $m[1].preg_replace('#ççççç(?!ççççç)#s','$1',$m[3]).$m[4]; return $m[1] . preg_replace('#ççççç(?!ççççç)#s', '$1', $m[3]) . $m[4];
} }
public static function decodeTags($t) public static function decodeTags($t)
{ {
return preg_match_all('#([A-Za-z0-9]+)#',(string) $t, $m) ? $m[1] : array(); return preg_match_all('#([A-Za-z0-9]+)#', (string) $t, $m) ? $m[1] : [];
} }
public static function implode($a) public static function implode($a)
{ {
if (is_string($a)) return $a; if (is_string($a)) {
if (!is_array($a)) return array(); return $a;
}
if (!is_array($a)) {
return [];
}
$r = ''; $r = '';
foreach($a as $k => $v) foreach($a as $k => $v) {
{ $r .= $k . ':' . $v . ';';
$r .= $k.':'.$v.';';
} }
return $r; return $r;
} }
public static function explode($s) public static function explode($s)
{ {
if (is_array($s)) return $s; if (is_array($s)) {
if (!is_string($s)) return ''; return $s;
}
if (!is_string($s)) {
return '';
}
$r = array(); $r = [];
$s = explode(';',(string) $s); $s = explode(';', (string) $s);
if (!is_array($s)) return array(); if (!is_array($s)) {
return [];
}
foreach($s as $cpl) foreach($s as $cpl) {
{ $cur = explode(':', $cpl);
$cur = explode(':',$cpl);
if (!is_array($cur) || !isset($cur[1])) continue; if (!is_array($cur) || !isset($cur[1])) {
continue;
}
$key = html::escapeHTML(trim($cur[0])); $key = html::escapeHTML(trim($cur[0]));
$val = html::escapeHTML(trim($cur[1])); $val = html::escapeHTML(trim($cur[1]));
if (empty($key) || empty($val)) continue; if (empty($key) || empty($val)) {
continue;
}
$r[$key] = $val; $r[$key] = $val;
} }
@ -476,14 +481,15 @@ class libEPC
# Widgets # Widgets
# #
public static function widgetContentEntryExcerpt($core,$w) public static function widgetContentEntryExcerpt($core, $w)
{ {
global $_ctx; global $_ctx;
if (!$_ctx->exists('posts')) return; if (!$_ctx->exists('posts')) {
return;
}
$res = ''; $res = '';
while ($_ctx->posts->fetch()) while ($_ctx->posts->fetch()) {
{
$res .= $_ctx->posts->post_excerpt; $res .= $_ctx->posts->post_excerpt;
} }
return $res; return $res;
@ -492,11 +498,12 @@ class libEPC
public static function widgetContentEntryContent() public static function widgetContentEntryContent()
{ {
global $_ctx; global $_ctx;
if (!$_ctx->exists('posts')) return; if (!$_ctx->exists('posts')) {
return;
}
$res = ''; $res = '';
while ($_ctx->posts->fetch()) while ($_ctx->posts->fetch()) {
{
$res .= $_ctx->posts->post_content; $res .= $_ctx->posts->post_content;
} }
return $res; return $res;
@ -505,15 +512,15 @@ class libEPC
public static function widgetContentCommentContent() public static function widgetContentCommentContent()
{ {
global $core, $_ctx; global $core, $_ctx;
if (!$_ctx->exists('posts')) return; if (!$_ctx->exists('posts')) {
return;
}
$res = ''; $res = '';
$post_ids = array(); $post_ids = [];
while ($_ctx->posts->fetch()) while ($_ctx->posts->fetch()) {
{ $comments = $core->blog->getComments(['post_id' => $_ctx->posts->post_id]);
$comments = $core->blog->getComments(array('post_id'=>$_ctx->posts->post_id)); while ($comments->fetch()) {
while ($comments->fetch())
{
$res .= $comments->getContent(); $res .= $comments->getContent();
} }
} }
@ -524,18 +531,19 @@ class libEPC
# Filters # Filters
# #
public static function publicContentFilterTag($core,$filter,$tag,$args) public static function publicContentFilterTag($core, $filter, $tag, $args)
{ {
if (!$core->plugins->moduleExists('tags')) return; if (!$core->plugins->moduleExists('tags')) {
return;
}
$metas = $core->meta->getMetadata(array('meta_type'=>'tag')); $metas = $core->meta->getMetadata(['meta_type' => 'tag']);
while($metas->fetch()) while($metas->fetch()) {
{
$k = $metas->meta_id; $k = $metas->meta_id;
$args[0] = self::replaceString( $args[0] = self::replaceString(
$k, $k,
sprintf($filter['replace'],$core->blog->url.$core->url->getBase('tag').'/'.$k,'\\1'), sprintf($filter['replace'], $core->blog->url . $core->url->getBase('tag') . '/' . $k, '\\1'),
$args[0], $args[0],
$filter $filter
); );
@ -543,18 +551,19 @@ class libEPC
return; return;
} }
public static function widgetListTag($core,$filter,$content,$w,&$list) public static function widgetListTag($core, $filter, $content, $w, &$list)
{ {
if (!$core->plugins->moduleExists('tags')) return; if (!$core->plugins->moduleExists('tags')) {
return;
}
$metas = $core->meta->getMetadata(array('meta_type'=>'tag')); $metas = $core->meta->getMetadata(['meta_type' => 'tag']);
while($metas->fetch()) while($metas->fetch()) {
{
$k = $metas->meta_id; $k = $metas->meta_id;
$list[] = self::matchString( $list[] = self::matchString(
$k, $k,
sprintf($filter['widget'],$core->blog->url.$core->url->getBase('tag').'/'.$k,'\\1'), sprintf($filter['widget'], $core->blog->url . $core->url->getBase('tag') . '/' . $k, '\\1'),
$content, $content,
$filter $filter
); );
@ -562,17 +571,18 @@ class libEPC
return; return;
} }
public static function publicContentFilterSearch($core,$filter,$tag,$args) public static function publicContentFilterSearch($core, $filter, $tag, $args)
{ {
if (!isset($GLOBALS['_search'])) return; if (!isset($GLOBALS['_search'])) {
return;
}
$searchs = explode(' ',$GLOBALS['_search']); $searchs = explode(' ', $GLOBALS['_search']);
foreach($searchs as $k => $v) foreach($searchs as $k => $v) {
{
$args[0] = self::replaceString( $args[0] = self::replaceString(
$v, $v,
sprintf($filter['replace'],'\\1'), sprintf($filter['replace'], '\\1'),
$args[0], $args[0],
$filter $filter
); );
@ -580,16 +590,15 @@ class libEPC
return; return;
} }
public static function publicContentFilterAcronym($core,$filter,$tag,$args) public static function publicContentFilterAcronym($core, $filter, $tag, $args)
{
while($filter['list']->fetch())
{ {
while($filter['list']->fetch()) {
$k = $filter['list']->epc_key; $k = $filter['list']->epc_key;
$v = $filter['list']->epc_value; $v = $filter['list']->epc_value;
$args[0] = self::replaceString( $args[0] = self::replaceString(
$k, $k,
sprintf($filter['replace'],__($v),'\\1'), sprintf($filter['replace'], __($v), '\\1'),
$args[0], $args[0],
$filter $filter
); );
@ -597,16 +606,15 @@ class libEPC
return; return;
} }
public static function widgetListAcronym($core,$filter,$content,$w,&$list) public static function widgetListAcronym($core, $filter, $content, $w, &$list)
{
while($filter['list']->fetch())
{ {
while($filter['list']->fetch()) {
$k = $filter['list']->epc_key; $k = $filter['list']->epc_key;
$v = $filter['list']->epc_value; $v = $filter['list']->epc_value;
$list[] = self::matchString( $list[] = self::matchString(
$k, $k,
sprintf($filter['widget'],__($v),'\\1'), sprintf($filter['widget'], __($v), '\\1'),
$content, $content,
$filter $filter
); );
@ -614,16 +622,15 @@ class libEPC
return; return;
} }
public static function publicContentFilterAbbreviation($core,$filter,$tag,$args) public static function publicContentFilterAbbreviation($core, $filter, $tag, $args)
{
while($filter['list']->fetch())
{ {
while($filter['list']->fetch()) {
$k = $filter['list']->epc_key; $k = $filter['list']->epc_key;
$v = $filter['list']->epc_value; $v = $filter['list']->epc_value;
$args[0] = self::replaceString( $args[0] = self::replaceString(
$k, $k,
sprintf($filter['replace'],__($v),'\\1'), sprintf($filter['replace'], __($v), '\\1'),
$args[0], $args[0],
$filter $filter
); );
@ -631,16 +638,15 @@ class libEPC
return; return;
} }
public static function widgetListAbbreviation($core,$filter,$content,$w,&$list) public static function widgetListAbbreviation($core, $filter, $content, $w, &$list)
{
while($filter['list']->fetch())
{ {
while($filter['list']->fetch()) {
$k = $filter['list']->epc_key; $k = $filter['list']->epc_key;
$v = $filter['list']->epc_value; $v = $filter['list']->epc_value;
$list[] = self::matchString( $list[] = self::matchString(
$k, $k,
sprintf($filter['widget'],__($v),'\\1'), sprintf($filter['widget'], __($v), '\\1'),
$content, $content,
$filter $filter
); );
@ -648,16 +654,15 @@ class libEPC
return; return;
} }
public static function publicContentFilterDefinition($core,$filter,$tag,$args) public static function publicContentFilterDefinition($core, $filter, $tag, $args)
{
while($filter['list']->fetch())
{ {
while($filter['list']->fetch()) {
$k = $filter['list']->epc_key; $k = $filter['list']->epc_key;
$v = $filter['list']->epc_value; $v = $filter['list']->epc_value;
$args[0] = self::replaceString( $args[0] = self::replaceString(
$k, $k,
sprintf($filter['replace'],__($v),'\\1'), sprintf($filter['replace'], __($v), '\\1'),
$args[0], $args[0],
$filter $filter
); );
@ -665,16 +670,15 @@ class libEPC
return; return;
} }
public static function widgetListDefinition($core,$filter,$content,$w,&$list) public static function widgetListDefinition($core, $filter, $content, $w, &$list)
{
while($filter['list']->fetch())
{ {
while($filter['list']->fetch()) {
$k = $filter['list']->epc_key; $k = $filter['list']->epc_key;
$v = $filter['list']->epc_value; $v = $filter['list']->epc_value;
$list[] = self::matchString( $list[] = self::matchString(
$k, $k,
sprintf($filter['widget'],__($v),'\\1'), sprintf($filter['widget'], __($v), '\\1'),
$content, $content,
$filter $filter
); );
@ -682,16 +686,15 @@ class libEPC
return; return;
} }
public static function publicContentFilterCitation($core,$filter,$tag,$args) public static function publicContentFilterCitation($core, $filter, $tag, $args)
{
while($filter['list']->fetch())
{ {
while($filter['list']->fetch()) {
$k = $filter['list']->epc_key; $k = $filter['list']->epc_key;
$v = $filter['list']->epc_value; $v = $filter['list']->epc_value;
$args[0] = self::replaceString( $args[0] = self::replaceString(
$k, $k,
sprintf($filter['replace'],__($v),'\\1'), sprintf($filter['replace'], __($v), '\\1'),
$args[0], $args[0],
$filter $filter
); );
@ -699,16 +702,15 @@ class libEPC
return; return;
} }
public static function widgetListCitation($core,$filter,$content,$w,&$list) public static function widgetListCitation($core, $filter, $content, $w, &$list)
{
while($filter['list']->fetch())
{ {
while($filter['list']->fetch()) {
$k = $filter['list']->epc_key; $k = $filter['list']->epc_key;
$v = $filter['list']->epc_value; $v = $filter['list']->epc_value;
$list[] = self::matchString( $list[] = self::matchString(
$k, $k,
sprintf($filter['widget'],__($v),'\\1'), sprintf($filter['widget'], __($v), '\\1'),
$content, $content,
$filter $filter
); );
@ -716,16 +718,15 @@ class libEPC
return; return;
} }
public static function publicContentFilterLink($core,$filter,$tag,$args) public static function publicContentFilterLink($core, $filter, $tag, $args)
{
while($filter['list']->fetch())
{ {
while($filter['list']->fetch()) {
$k = $filter['list']->epc_key; $k = $filter['list']->epc_key;
$v = $filter['list']->epc_value; $v = $filter['list']->epc_value;
$args[0] = self::replaceString( $args[0] = self::replaceString(
$k, $k,
sprintf($filter['replace'],'\\1',$v,'\\1'), sprintf($filter['replace'], '\\1', $v, '\\1'),
$args[0], $args[0],
$filter $filter
); );
@ -733,16 +734,15 @@ class libEPC
return; return;
} }
public static function widgetListLink($core,$filter,$content,$w,&$list) public static function widgetListLink($core, $filter, $content, $w, &$list)
{
while($filter['list']->fetch())
{ {
while($filter['list']->fetch()) {
$k = $filter['list']->epc_key; $k = $filter['list']->epc_key;
$v = $filter['list']->epc_value; $v = $filter['list']->epc_value;
$list[] = self::matchString( $list[] = self::matchString(
$k, $k,
sprintf($filter['widget'],$v,$v,'\\1'), sprintf($filter['widget'], $v, $v, '\\1'),
$content, $content,
$filter $filter
); );
@ -750,16 +750,15 @@ class libEPC
return; return;
} }
public static function publicContentFilterReplace($core,$filter,$tag,$args) public static function publicContentFilterReplace($core, $filter, $tag, $args)
{
while($filter['list']->fetch())
{ {
while($filter['list']->fetch()) {
$k = $filter['list']->epc_key; $k = $filter['list']->epc_key;
$v = $filter['list']->epc_value; $v = $filter['list']->epc_value;
$args[0] = self::replaceString( $args[0] = self::replaceString(
$k, $k,
sprintf($filter['replace'],$v,'\\2'), sprintf($filter['replace'], $v, '\\2'),
$args[0], $args[0],
$filter $filter
); );
@ -767,16 +766,15 @@ class libEPC
return; return;
} }
public static function publicContentFilterUpdate($core,$filter,$tag,$args) public static function publicContentFilterUpdate($core, $filter, $tag, $args)
{
while($filter['list']->fetch())
{ {
while($filter['list']->fetch()) {
$k = $filter['list']->epc_key; $k = $filter['list']->epc_key;
$v = $filter['list']->epc_value; $v = $filter['list']->epc_value;
$args[0] = self::replaceString( $args[0] = self::replaceString(
$k, $k,
sprintf($filter['replace'],'\\1',$v), sprintf($filter['replace'], '\\1', $v),
$args[0], $args[0],
$filter $filter
); );
@ -784,16 +782,16 @@ class libEPC
return; return;
} }
public static function publicContentFilterTwitter($core,$filter,$tag,$args) public static function publicContentFilterTwitter($core, $filter, $tag, $args)
{ {
$args[0] = self::replaceString( $args[0] = self::replaceString(
'[A-Za-z0-9_]{2,}', '[A-Za-z0-9_]{2,}',
sprintf($filter['replace'],'http://twitter.com/\\1','\\1'), sprintf($filter['replace'], 'http://twitter.com/\\1', '\\1'),
$args[0], $args[0],
$filter, $filter,
'[^@]@','\b' '[^@]@',
'\b'
); );
return; return;
} }
} }
?>

View File

@ -22,99 +22,74 @@ class epcRecords
{ {
$this->core = $core; $this->core = $core;
$this->con = $core->con; $this->con = $core->con;
$this->table = $core->prefix.'epc'; $this->table = $core->prefix . 'epc';
$this->blog = $core->con->escape($core->blog->id); $this->blog = $core->con->escape($core->blog->id);
} }
public function getRecords($params,$count_only=false) public function getRecords($params, $count_only = false)
{
if ($count_only)
{ {
if ($count_only) {
$strReq = 'SELECT count(E.epc_id) '; $strReq = 'SELECT count(E.epc_id) ';
} } else {
else
{
$content_req = ''; $content_req = '';
if (!empty($params['columns']) && is_array($params['columns'])) if (!empty($params['columns']) && is_array($params['columns'])) {
{ $content_req .= implode(', ', $params['columns']) . ', ';
$content_req .= implode(', ',$params['columns']).', ';
} }
$strReq = $strReq =
'SELECT E.epc_id, E.blog_id, E.epc_type, E.epc_upddt, '. 'SELECT E.epc_id, E.blog_id, E.epc_type, E.epc_upddt, ' .
$content_req. $content_req .
'E.epc_filter, E.epc_key, E.epc_value '; 'E.epc_filter, E.epc_key, E.epc_value ';
} }
$strReq .= $strReq .=
'FROM '.$this->table.' E '; 'FROM ' . $this->table . ' E ';
if (!empty($params['from'])) if (!empty($params['from'])) {
{ $strReq .= $params['from'] . ' ';
$strReq .= $params['from'].' ';
} }
$strReq .= "WHERE E.blog_id = '".$this->blog."' "; $strReq .= "WHERE E.blog_id = '" . $this->blog . "' ";
if (isset($params['epc_type'])) if (isset($params['epc_type'])) {
{ if (is_array($params['epc_type']) && !empty($params['epc_type'])) {
if (is_array($params['epc_type']) && !empty($params['epc_type'])) $strReq .= 'AND E.epc_type ' . $this->con->in($params['epc_type']);
{ } elseif ($params['epc_type'] != '') {
$strReq .= 'AND E.epc_type '.$this->con->in($params['epc_type']); $strReq .= "AND E.epc_type = '" . $this->con->escape($params['epc_type']) . "' ";
} }
elseif ($params['epc_type'] != '') } else {
{
$strReq .= "AND E.epc_type = '".$this->con->escape($params['epc_type'])."' ";
}
}
else
{
$strReq .= "AND E.epc_type = 'epc' "; $strReq .= "AND E.epc_type = 'epc' ";
} }
if (isset($params['epc_filter'])) if (isset($params['epc_filter'])) {
{ if (is_array($params['epc_filter']) && !empty($params['epc_filter'])) {
if (is_array($params['epc_filter']) && !empty($params['epc_filter'])) $strReq .= 'AND E.epc_filter ' . $this->con->in($params['epc_filter']);
{ } elseif ($params['epc_filter'] != '') {
$strReq .= 'AND E.epc_filter '.$this->con->in($params['epc_filter']); $strReq .= "AND E.epc_filter = '" . $this->con->escape($params['epc_filter']) . "' ";
}
elseif ($params['epc_filter'] != '')
{
$strReq .= "AND E.epc_filter = '".$this->con->escape($params['epc_filter'])."' ";
} }
} }
if (!empty($params['epc_id'])) if (!empty($params['epc_id'])) {
{ if (is_array($params['epc_id'])) {
if (is_array($params['epc_id'])) array_walk($params['epc_id'], create_function('&$v,$k', 'if($v!==null){$v=(integer)$v;}'));
{ } else {
array_walk($params['epc_id'],create_function('&$v,$k','if($v!==null){$v=(integer)$v;}')); $params['epc_id'] = [(integer) $params['epc_id']];
} }
else $strReq .= 'AND E.epc_id ' . $this->con->in($params['epc_id']);
{
$params['epc_id'] = array((integer) $params['epc_id']);
}
$strReq .= 'AND E.epc_id '.$this->con->in($params['epc_id']);
} }
if (!empty($params['sql'])) if (!empty($params['sql'])) {
{ $strReq .= $params['sql'] . ' ';
$strReq .= $params['sql'].' ';
} }
if (!$count_only) if (!$count_only) {
{ if (!empty($params['order'])) {
if (!empty($params['order'])) $strReq .= 'ORDER BY ' . $this->con->escape($params['order']) . ' ';
{ } else {
$strReq .= 'ORDER BY '.$this->con->escape($params['order']).' ';
}
else
{
$strReq .= 'ORDER BY E.epc_key ASC '; $strReq .= 'ORDER BY E.epc_key ASC ';
} }
} }
if (!$count_only && !empty($params['limit'])) if (!$count_only && !empty($params['limit'])) {
{
$strReq .= $this->con->limit($params['limit']); $strReq .= $this->con->limit($params['limit']);
} }
@ -125,8 +100,7 @@ class epcRecords
{ {
$this->con->writeLock($this->table); $this->con->writeLock($this->table);
try try {
{
$cur->epc_id = $this->getNextId(); $cur->epc_id = $this->getNextId();
$cur->blog_id = $this->blog; $cur->blog_id = $this->blog;
$cur->epc_upddt = date('Y-m-d H:i:s'); $cur->epc_upddt = date('Y-m-d H:i:s');
@ -135,36 +109,33 @@ class epcRecords
$cur->insert(); $cur->insert();
$this->con->unlock(); $this->con->unlock();
} } catch (Exception $e) {
catch (Exception $e)
{
$this->con->unlock(); $this->con->unlock();
throw $e; throw $e;
} }
$this->trigger(); $this->trigger();
# --BEHAVIOR-- enhancePostContentAfterAddRecord # --BEHAVIOR-- enhancePostContentAfterAddRecord
$this->core->callBehavior('enhancePostContentAfterAddRecord',$cur); $this->core->callBehavior('enhancePostContentAfterAddRecord', $cur);
return $cur->epc_id; return $cur->epc_id;
} }
public function updRecord($id,$cur) public function updRecord($id, $cur)
{ {
$id = (integer) $id; $id = (integer) $id;
if (empty($id)) if (empty($id)) {
{
throw new Exception(__('No such record ID')); throw new Exception(__('No such record ID'));
} }
$cur->epc_upddt = date('Y-m-d H:i:s'); $cur->epc_upddt = date('Y-m-d H:i:s');
$cur->update("WHERE epc_id = ".$id." AND blog_id = '".$this->blog."' "); $cur->update("WHERE epc_id = " . $id . " AND blog_id = '" . $this->blog . "' ");
$this->trigger(); $this->trigger();
# --BEHAVIOR-- enhancePostContentAfterUpdRecord # --BEHAVIOR-- enhancePostContentAfterUpdRecord
$this->core->callBehavior('enhancePostContentAfterUpdRecord',$cur,$id); $this->core->callBehavior('enhancePostContentAfterUpdRecord', $cur, $id);
} }
public function delRecord($id) public function delRecord($id)
@ -176,12 +147,12 @@ class epcRecords
} }
# --BEHAVIOR-- enhancePostContentBeforeDelRecord # --BEHAVIOR-- enhancePostContentBeforeDelRecord
$this->core->callBehavior('enhancePostContentbeforeDelRecord',$id); $this->core->callBehavior('enhancePostContentbeforeDelRecord', $id);
$this->con->execute( $this->con->execute(
'DELETE FROM '.$this->table.' '. 'DELETE FROM ' . $this->table . ' ' .
'WHERE epc_id = '.$id.' '. 'WHERE epc_id = ' . $id .' ' .
"AND blog_id = '".$this->blog."' " "AND blog_id = '" . $this->blog . "' "
); );
$this->trigger(); $this->trigger();
@ -190,7 +161,7 @@ class epcRecords
private function getNextId() private function getNextId()
{ {
return $this->con->select( return $this->con->select(
'SELECT MAX(epc_id) FROM '.$this->table.' ' 'SELECT MAX(epc_id) FROM ' . $this->table . ' '
)->f(0) + 1; )->f(0) + 1;
} }
@ -199,18 +170,15 @@ class epcRecords
return $this->con->openCursor($this->table); return $this->con->openCursor($this->table);
} }
private function getCursor($cur,$epc_id=null) private function getCursor($cur, $epc_id = null)
{
if ($cur->epc_key == '')
{ {
if ($cur->epc_key == '') {
throw new Exception(__('No record key')); throw new Exception(__('No record key'));
} }
if ($cur->epc_value == '') if ($cur->epc_value == '') {
{
throw new Exception(__('No record value')); throw new Exception(__('No record value'));
} }
if ($cur->epc_filter == '') if ($cur->epc_filter == '') {
{
throw new Exception(__('No record filter')); throw new Exception(__('No record filter'));
} }
$epc_id = is_int($epc_id) ? $epc_id : $cur->epc_id; $epc_id = is_int($epc_id) ? $epc_id : $cur->epc_id;
@ -221,4 +189,3 @@ class epcRecords
$this->core->blog->triggerBlog(); $this->core->blog->triggerBlog();
} }
} }
?>

View File

@ -13,21 +13,17 @@
# This file only update old filters lists from settings to database # This file only update old filters lists from settings to database
$f = $core->con->select("SELECT * FROM ".$core->prefix."setting WHERE setting_ns='enhancePostContent' AND blog_id IS NOT NULL "); $f = $core->con->select("SELECT * FROM " . $core->prefix . "setting WHERE setting_ns='enhancePostContent' AND blog_id IS NOT NULL ");
while ($f->fetch()) while ($f->fetch()) {
{ if (preg_match('#enhancePostContent_(.*?)List#', $f->setting_id, $m)) {
if (preg_match('#enhancePostContent_(.*?)List#',$f->setting_id,$m))
{
$curlist = @unserialize($f->setting_value); $curlist = @unserialize($f->setting_value);
if (is_array($curlist)) if (is_array($curlist)) {
{ foreach($curlist as $k => $v) {
foreach($curlist as $k => $v) $cur = $core->con->openCursor($core->prefix . 'epc');
{ $core->con->writeLock($core->prefix . 'epc');
$cur = $core->con->openCursor($core->prefix.'epc');
$core->con->writeLock($core->prefix.'epc');
$cur->epc_id = $core->con->select('SELECT MAX(epc_id) FROM '.$core->prefix.'epc'.' ')->f(0) + 1; $cur->epc_id = $core->con->select('SELECT MAX(epc_id) FROM ' . $core->prefix . 'epc' . ' ')->f(0) + 1;
$cur->blog_id = $f->blog_id; $cur->blog_id = $f->blog_id;
$cur->epc_filter = $m[1]; $cur->epc_filter = $m[1];
$cur->epc_key = $k; $cur->epc_key = $k;
@ -37,7 +33,6 @@ while ($f->fetch())
$core->con->unlock(); $core->con->unlock();
} }
} }
$core->con->execute("DELETE FROM ".$core->prefix."setting WHERE setting_id='".$f->setting_id."' AND setting_ns='enhancePostContent' AND blog_id='".$f->blog_id."' "); $core->con->execute("DELETE FROM " . $core->prefix . "setting WHERE setting_id='" . $f->setting_id . "' AND setting_ns='enhancePostContent' AND blog_id='" . $f->blog_id . "' ");
} }
} }
?>

268
index.php
View File

@ -12,7 +12,6 @@
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_CONTEXT_ADMIN')) { if (!defined('DC_CONTEXT_ADMIN')) {
return null; return null;
} }
@ -38,18 +37,16 @@ $records = new epcRecords($core);
if (!empty($action)) { if (!empty($action)) {
# --BEHAVIOR-- enhancePostContentAdminSave # --BEHAVIOR-- enhancePostContentAdminSave
$core->callBehavior('enhancePostContentAdminSave',$core); $core->callBehavior('enhancePostContentAdminSave', $core);
} }
try try {
{
# Update filter settings # Update filter settings
if ($action == 'savefiltersetting' if ($action == 'savefiltersetting'
&& isset($filters_id[$default_part]) && isset($filters_id[$default_part])) {
) {
# Parse filters options # Parse filters options
$name = $filters_id[$default_part]; $name = $filters_id[$default_part];
$f = array( $f = [
'nocase' => !empty($_POST['filter_nocase']), 'nocase' => !empty($_POST['filter_nocase']),
'plural' => !empty($_POST['filter_plural']), 'plural' => !empty($_POST['filter_plural']),
'limit' => abs((integer) $_POST['filter_limit']), 'limit' => abs((integer) $_POST['filter_limit']),
@ -57,9 +54,9 @@ try
'notag' => (string) $_POST['filter_notag'], 'notag' => (string) $_POST['filter_notag'],
'tplValues' => (array) $_POST['filter_tplValues'], 'tplValues' => (array) $_POST['filter_tplValues'],
'pubPages' => (array) $_POST['filter_pubPages'] 'pubPages' => (array) $_POST['filter_pubPages']
); ];
$s->put('enhancePostContent_'.$name, serialize($f)); $s->put('enhancePostContent_' . $name, serialize($f));
$core->blog->triggerBlog(); $core->blog->triggerBlog();
@ -67,7 +64,7 @@ try
__('Filter successfully updated.') __('Filter successfully updated.')
); );
http::redirect( http::redirect(
$p_url.'part='.$default_part.'#setting' $p_url . 'part=' . $default_part . '#setting'
); );
} }
@ -75,8 +72,7 @@ try
if ($action == 'savenewrecord' if ($action == 'savenewrecord'
&& isset($filters_id[$default_part]) && isset($filters_id[$default_part])
&& !empty($_POST['new_key']) && !empty($_POST['new_key'])
&& !empty($_POST['new_value']) && !empty($_POST['new_value'])) {
) {
$cur = $records->openCursor(); $cur = $records->openCursor();
$cur->epc_filter = $filters_id[$default_part]; $cur->epc_filter = $filters_id[$default_part];
$cur->epc_key = html::escapeHTML($_POST['new_key']); $cur->epc_key = html::escapeHTML($_POST['new_key']);
@ -89,33 +85,29 @@ try
__('Filter successfully updated.') __('Filter successfully updated.')
); );
http::redirect( http::redirect(
$p_url.'&part='.$default_part.'#record' $p_url . '&part=' . $default_part . '#record'
); );
} }
# Update filter records # Update filter records
if ($action == 'saveupdaterecords' if ($action == 'saveupdaterecords'
&& isset($filters_id[$default_part]) && isset($filters_id[$default_part])
&& $_filters[$filters_id[$default_part]]['has_list'] && $_filters[$filters_id[$default_part]]['has_list']) {
) {
foreach($_POST['epc_id'] as $k => $id) { foreach($_POST['epc_id'] as $k => $id) {
$k = abs((integer) $k); $k = abs((integer) $k);
$id = abs((integer) $id); $id = abs((integer) $id);
if (empty($_POST['epc_key'][$k]) if (empty($_POST['epc_key'][$k])
|| empty($_POST['epc_value'][$k]) || empty($_POST['epc_value'][$k])) {
) {
$records->delRecord($id); $records->delRecord($id);
} } elseif ($_POST['epc_key'][$k] != $_POST['epc_old_key'][$k]
elseif ($_POST['epc_key'][$k] != $_POST['epc_old_key'][$k] || $_POST['epc_value'][$k] != $_POST['epc_old_value'][$k]) {
|| $_POST['epc_value'][$k] != $_POST['epc_old_value'][$k]
) {
$cur = $records->openCursor(); $cur = $records->openCursor();
$cur->epc_filter = $filters_id[$default_part]; $cur->epc_filter = $filters_id[$default_part];
$cur->epc_key = html::escapeHTML($_POST['epc_key'][$k]); $cur->epc_key = html::escapeHTML($_POST['epc_key'][$k]);
$cur->epc_value = html::escapeHTML($_POST['epc_value'][$k]); $cur->epc_value = html::escapeHTML($_POST['epc_value'][$k]);
$records->updRecord($id,$cur); $records->updRecord($id, $cur);
} }
} }
@ -123,7 +115,7 @@ try
$redir = !empty($_REQUEST['redir']) ? $redir = !empty($_REQUEST['redir']) ?
$_REQUEST['redir'] : $_REQUEST['redir'] :
$p_url.'&part='.$default_part.'#record'; $p_url . '&part=' . $default_part . '#record';
dcPage::addSuccessNotice( dcPage::addSuccessNotice(
__('Filter successfully updated.') __('Filter successfully updated.')
@ -132,18 +124,17 @@ try
$redir $redir
); );
} }
} } catch(Exception $e) {
catch(Exception $e) {
$core->error->add($e->getMessage()); $core->error->add($e->getMessage());
} }
# -- Prepare page -- # -- Prepare page --
$breadcrumb = array( $breadcrumb = [
html::escapeHTML($core->blog->name) => '', html::escapeHTML($core->blog->name) => '',
__('Enhance post content') => $p_url __('Enhance post content') => $p_url
); ];
$top_menu = array(); $top_menu = [];
foreach($filters_id as $id => $name) { foreach($filters_id as $id => $name) {
@ -154,30 +145,30 @@ foreach($filters_id as $id => $name) {
} }
$top_menu[] = $top_menu[] =
'<a'.$active.' href="'.$p_url.'&amp;part='.$id.'">'.__($name).'</a>'; '<a' . $active . ' href="' . $p_url . '&amp;part=' . $id . '">' . __($name) . '</a>';
} }
# -- Display page -- # -- Display page --
# Headers # Headers
echo ' echo '
<html><head><title>'.__('Enhance post content').'</title>'. <html><head><title>' . __('Enhance post content') . '</title>' .
dcPage::jsLoad('js/_posts_list.js'). dcPage::jsLoad('js/_posts_list.js') .
dcPage::jsToolbar(). dcPage::jsToolbar() .
dcPage::jsPageTabs(). dcPage::jsPageTabs() .
# --BEHAVIOR-- enhancePostContentAdminHeader # --BEHAVIOR-- enhancePostContentAdminHeader
$core->callBehavior('enhancePostContentAdminHeader',$core).' $core->callBehavior('enhancePostContentAdminHeader', $core) . '
</head><body>'. </head><body>' .
# Title # Title
dcPage::breadcrumb($breadcrumb). dcPage::breadcrumb($breadcrumb) .
dcPage::notices(). dcPage::notices() .
# Filters list # Filters list
'<ul class="pseudo-tabs">'. '<ul class="pseudo-tabs">' .
'<li>'.implode('</li><li>', $top_menu).'</li>'. '<li>' . implode('</li><li>', $top_menu) . '</li>' .
'</ul>'; '</ul>';
# Filter content # Filter content
@ -188,27 +179,27 @@ if (isset($filters_id[$default_part])) {
# Filter title and description # Filter title and description
echo ' echo '
<h3>'.__($filters_id[$default_part]).'</h3> <h3>' . __($filters_id[$default_part]) . '</h3>
<p>'.$filter['help'].'</p>'; <p>' . $filter['help'] . '</p>';
# Filter settings # Filter settings
echo ' echo '
<div class="multi-part" id="setting" title="'.__('Settings').'"> <div class="multi-part" id="setting" title="' . __('Settings') . '">
<form method="post" action="'.$p_url.'&amp;part='.$default_part.'&amp;tab=setting"><div>'; <form method="post" action="' . $p_url . '&amp;part=' . $default_part . '&amp;tab=setting"><div>';
echo echo
'<div class="two-boxes odd"> '<div class="two-boxes odd">
<h4>'.__('Pages to be filtered').'</h4>'; <h4>' . __('Pages to be filtered') . '</h4>';
foreach(libEPC::blogAllowedPubPages() as $k => $v) { foreach(libEPC::blogAllowedPubPages() as $k => $v) {
echo ' echo '
<p><label for="filter_pubPages'.$v.'">'. <p><label for="filter_pubPages' . $v . '">' .
form::checkbox( form::checkbox(
array('filter_pubPages[]', 'filter_pubPages'.$v), ['filter_pubPages[]', 'filter_pubPages' . $v],
$v, $v,
in_array($v,$filter['pubPages']) in_array($v, $filter['pubPages'])
). ) .
__($k).'</label></p>'; __($k) . '</label></p>';
} }
echo echo
@ -216,37 +207,37 @@ if (isset($filters_id[$default_part])) {
echo echo
'<div class="two-boxes even"> '<div class="two-boxes even">
<h4>'.__('Filtering').'</h4> <h4>' . __('Filtering') . '</h4>
<p><label for="filter_nocase">'. <p><label for="filter_nocase">' .
form::checkbox('filter_nocase', '1', $filter['nocase']). form::checkbox('filter_nocase', '1', $filter['nocase']) .
__('Case insensitive').'</label></p> __('Case insensitive') . '</label></p>
<p><label for="filter_plural">'. <p><label for="filter_plural">' .
form::checkbox('filter_plural', '1', $filter['plural']). form::checkbox('filter_plural', '1', $filter['plural']) .
__('Also use the plural').'</label></p> __('Also use the plural') . '</label></p>
<p><label for="filter_limit">'. <p><label for="filter_limit">' .
__('Limit the number of replacement to:').'</label>'. __('Limit the number of replacement to:') . '</label>' .
form::field('filter_limit', 4, 10, html::escapeHTML($filter['limit'])).' form::field('filter_limit', 4, 10, html::escapeHTML($filter['limit'])) . '
</p> </p>
<p class="form-note">'.__('Leave it blank or set it to 0 for no limit').'</p> <p class="form-note">' . __('Leave it blank or set it to 0 for no limit') . '</p>
</div>'; </div>';
echo echo
'<div class="two-boxes odd"> '<div class="two-boxes odd">
<h4>'.__('Contents to be filtered').'</h4>'; <h4>' . __('Contents to be filtered') . '</h4>';
foreach(libEPC::blogAllowedTplValues() as $k => $v) { foreach(libEPC::blogAllowedTplValues() as $k => $v) {
echo ' echo '
<p><label for="filter_tplValues'.$v.'">'. <p><label for="filter_tplValues' . $v . '">' .
form::checkbox( form::checkbox(
array('filter_tplValues[]', 'filter_tplValues'.$v), ['filter_tplValues[]', 'filter_tplValues' . $v],
$v, $v,
in_array($v,$filter['tplValues']) in_array($v, $filter['tplValues'])
). ) .
__($k).'</label></p>'; __($k) . '</label></p>';
} }
echo echo
@ -254,38 +245,38 @@ if (isset($filters_id[$default_part])) {
echo echo
'<div class="two-boxes even"> '<div class="two-boxes even">
<h4>'.__('Style').'</h4>'; <h4>' . __('Style') . '</h4>';
foreach($filter['class'] as $k => $v) { foreach($filter['class'] as $k => $v) {
echo ' echo '
<p><label for="filter_style'.$k.'">'. <p><label for="filter_style' . $k . '">' .
sprintf(__('Class "%s":'),$v).'</label>'. sprintf(__('Class "%s":'), $v) . '</label>' .
form::field( form::field(
array('filter_style[]', 'filter_style'.$k), ['filter_style[]', 'filter_style'.$k],
60, 60,
255, 255,
html::escapeHTML($filter['style'][$k]) html::escapeHTML($filter['style'][$k])
). ) .
'</p>'; '</p>';
} }
echo ' echo '
<p class="form-note">'.sprintf(__('The inserted HTML tag looks like: %s'), html::escapeHTML(str_replace('%s', '...', $filter['replace']))).'</p> <p class="form-note">' . sprintf(__('The inserted HTML tag looks like: %s'), html::escapeHTML(str_replace('%s', '...', $filter['replace']))) . '</p>
<p><label for="filter_notag">'.__('Ignore HTML tags:').'</label>'. <p><label for="filter_notag">' . __('Ignore HTML tags:') . '</label>' .
form::field('filter_notag', 60, 255, html::escapeHTML($filter['notag'])).' form::field('filter_notag', 60, 255, html::escapeHTML($filter['notag'])) . '
</p> </p>
<p class="form-note">'.__('This is the list of HTML tags where content will be ignored.').' '. <p class="form-note">' . __('This is the list of HTML tags where content will be ignored.') . ' ' .
(empty($filter['htmltag']) ? '' : sprintf(__('Tag "%s" always be ignored.'), $filter['htmltag'])).'</p> (empty($filter['htmltag']) ? '' : sprintf(__('Tag "%s" always be ignored.'), $filter['htmltag'])) . '</p>
</div>'; </div>';
echo '</div> echo '</div>
<div class="clear"> <div class="clear">
<p>'. <p>' .
$core->formNonce(). $core->formNonce() .
form::hidden(array('action'), 'savefiltersetting').' form::hidden(['action'], 'savefiltersetting') . '
<input type="submit" name="save" value="'.__('Save').'" /> <input type="submit" name="save" value="' . __('Save') . '" />
</p> </p>
</div> </div>
@ -295,103 +286,101 @@ if (isset($filters_id[$default_part])) {
# Filter records list # Filter records list
if ($filter['has_list']) { if ($filter['has_list']) {
$sortby_combo = array( $sortby_combo = [
'epc_upddt', 'epc_upddt',
'epc_key', 'epc_key',
'epc_value', 'epc_value',
'epc_id' 'epc_id'
); ];
$order_combo = array( $order_combo = [
'asc', 'asc',
'desc' 'desc'
); ];
$sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : (string) $s->enhancePostContent_list_sortby; $sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : (string) $s->enhancePostContent_list_sortby;
$order = !empty($_GET['order']) ? $_GET['order'] : (string) $s->enhancePostContent_list_order; $order = !empty($_GET['order']) ? $_GET['order'] : (string) $s->enhancePostContent_list_order;
$page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1;
$nb = !empty($_GET['nb']) && (integer) $_GET['nb'] > 0 ? (integer) $_GET['nb'] : (integer) $s->enhancePostContent_list_nb; $nb = !empty($_GET['nb']) && (integer) $_GET['nb'] > 0 ? (integer) $_GET['nb'] : (integer) $s->enhancePostContent_list_nb;
$params = array(); $params = [];
$params['epc_filter'] = $name; $params['epc_filter'] = $name;
$params['limit'] = array((($page-1)*$nb), $nb); $params['limit'] = [(($page - 1) * $nb), $nb];
if ($sortby !== '' && in_array($sortby, $sortby_combo)) { if ($sortby !== '' && in_array($sortby, $sortby_combo)) {
if ($order !== '' && in_array($order, $order_combo)) { if ($order !== '' && in_array($order, $order_combo)) {
$params['order'] = $sortby.' '.$order; $params['order'] = $sortby . ' ' . $order;
} }
} }
try { try {
$list = $records->getRecords($params); $list = $records->getRecords($params);
$counter = $records->getRecords($params, true); $counter = $records->getRecords($params, true);
} } catch (Exception $e) {
catch (Exception $e) {
$core->error->add($e->getMessage()); $core->error->add($e->getMessage());
} }
$pager_url = $p_url. $pager_url = $p_url .
'&amp;nb='.$nb. '&amp;nb=' . $nb .
'&amp;sortby=%s'. '&amp;sortby=%s' .
'&amp;order='.($order == 'desc' ? 'desc' : 'asc'). '&amp;order=' . ($order == 'desc' ? 'desc' : 'asc') .
'&amp;page=%s'. '&amp;page=%s' .
'&amp;part='.$default_part. '&amp;part=' . $default_part .
'#record'; '#record';
$pager = new pager($page, $counter->f(0), $nb, 10); $pager = new pager($page, $counter->f(0), $nb, 10);
$pager->html_prev = __('&#171;prev.'); $pager->html_prev = __('&#171;prev.');
$pager->html_next = __('next&#187;'); $pager->html_next = __('next&#187;');
$pager->base_url = sprintf($pager_url, $sortby,'%s'); $pager->base_url = sprintf($pager_url, $sortby, '%s');
$pager->var_page = 'page'; $pager->var_page = 'page';
echo ' echo '
<div class="multi-part" id="record" title="'.__('Records').'">'; <div class="multi-part" id="record" title="' . __('Records') . '">';
if ($core->error->flag() || $list->isEmpty()) { if ($core->error->flag() || $list->isEmpty()) {
echo '<p>'.__('No record').'</p>'; echo '<p>' . __('No record') . '</p>';
} } else {
else {
echo ' echo '
<form action="'.$pager_url.'" method="post"> <form action="' . $pager_url . '" method="post">
<p>'.__('Page(s)').' : '.$pager->getLinks().'</p> <p>' . __('Page(s)') . ' : ' . $pager->getLinks() . '</p>
<table> <table>
<thead><tr> <thead><tr>
<th><a href="'.sprintf($pager_url, 'epc_key', $page).'">' <th><a href="' . sprintf($pager_url, 'epc_key', $page) . '">' .
.__('Key').'</a></th> __('Key') . '</a></th>
<th><a href="'.sprintf($pager_url, 'epc_value', $page).'">'. <th><a href="' . sprintf($pager_url, 'epc_value', $page) . '">' .
__('Value').'</a></th> __('Value') . '</a></th>
<th><a href="'.sprintf($pager_url, 'epc_upddt', $page).'">'. <th><a href="' . sprintf($pager_url, 'epc_upddt', $page) . '">' .
__('Date').'</a></th> __('Date') . '</a></th>
</tr></thead> </tr></thead>
<tbody>'; <tbody>';
while($list->fetch()) { while($list->fetch()) {
echo ' echo '
<tr class="line"> <tr class="line">
<td class="nowrap">'. <td class="nowrap">' .
form::hidden(array('epc_id[]'), $list->epc_id). form::hidden(['epc_id[]'], $list->epc_id) .
form::hidden(array('epc_old_key[]'), html::escapeHTML($list->epc_key)). form::hidden(['epc_old_key[]'], html::escapeHTML($list->epc_key)) .
form::hidden(array('epc_old_value[]'), html::escapeHTML($list->epc_value)). form::hidden(['epc_old_value[]'], html::escapeHTML($list->epc_value)) .
form::field(array('epc_key[]'), 30, 225, html::escapeHTML($list->epc_key), '').'</td> form::field(['epc_key[]'], 30, 225, html::escapeHTML($list->epc_key), '') . '</td>
<td class="maximal">'. <td class="maximal">' .
form::field(array('epc_value[]'), 90, 225, html::escapeHTML($list->epc_value), 'maximal').'</td> form::field(['epc_value[]'], 90, 225, html::escapeHTML($list->epc_value), 'maximal') . '</td>
<td class="nowrap">'. <td class="nowrap">' .
dt::dt2str(__('%Y-%m-%d %H:%M'), $list->epc_upddt,$core->auth->getInfo('user_tz')).'</td> dt::dt2str(__('%Y-%m-%d %H:%M'), $list->epc_upddt,$core->auth->getInfo('user_tz')) . '</td>
</tr>'; </tr>';
} }
echo ' echo '
</tbody> </tbody>
</table> </table>
<p class="form-note">'.__('In order to remove a record, leave empty its key or value.').'</p> <p class="form-note">' . __('In order to remove a record, leave empty its key or value.') . '</p>
<p>'.__('Page(s)').' : '.$pager->getLinks().'</p> <p>' . __('Page(s)') . ' : ' . $pager->getLinks() . '</p>
<div class="clear"> <div class="clear">
<p>'. <p>' .
$core->formNonce(). $core->formNonce() .
form::hidden(array('redir'), sprintf($pager_url, $sortby, $page)). form::hidden(['redir'], sprintf($pager_url, $sortby, $page)) .
form::hidden(array('action'), 'saveupdaterecords').' form::hidden(['action'], 'saveupdaterecords') . '
<input type="submit" name="save" value="'.__('Save').'" /> <input type="submit" name="save" value="' . __('Save') . '" />
</p> </p>
</div> </div>
@ -402,21 +391,21 @@ if (isset($filters_id[$default_part])) {
# New record # New record
echo ' echo '
<div class="multi-part" id="newrecord" title="'.__('New record').'"> <div class="multi-part" id="newrecord" title="' . __('New record') . '">
<form action="'.$p_url.'&amp;part='.$default_part.'&amp;tab=setting" method="post">'. <form action="' . $p_url . '&amp;part=' . $default_part . '&amp;tab=setting" method="post">' .
'<p><label for="new_key">'.__('Key:').'</label>'. '<p><label for="new_key">' . __('Key:') . '</label>' .
form::field('new_key', 60, 255). form::field('new_key', 60, 255) .
'</p>'. '</p>' .
'<p><label for="new_value">'.__('Value:').'</label>'. '<p><label for="new_value">' . __('Value:') . '</label>' .
form::field('new_value', 60, 255). form::field('new_value', 60, 255) .
'</p> '</p>
<p class="clear">'. <p class="clear">' .
form::hidden(array('action'), 'savenewrecord'). form::hidden(['action'], 'savenewrecord') .
$core->formNonce().' $core->formNonce() . '
<input type="submit" name="save" value="'.__('Save').'" /> <input type="submit" name="save" value="' . __('Save') . '" />
</p> </p>
</form> </form>
</div>'; </div>';
@ -424,17 +413,14 @@ if (isset($filters_id[$default_part])) {
} }
# --BEHAVIOR-- enhancePostContentAdminPage # --BEHAVIOR-- enhancePostContentAdminPage
$core->callBehavior('enhancePostContentAdminPage',$core); $core->callBehavior('enhancePostContentAdminPage', $core);
dcPage::helpBlock('enhancePostContent'); dcPage::helpBlock('enhancePostContent');
# Footers # Footers
echo echo
'<hr class="clear"/><p class="right modules"> '<hr class="clear"/><p class="right modules">
<a class="module-config" '. enhancePostContent - ' . $core->plugins->moduleInfo('enhancePostContent', 'version') . '&nbsp;
'href="plugins.php?module=enhancePostContent&amp;conf=1&amp;redir='. <img alt="' . __('enhancePostContent') . '" src="index.php?pf=enhancePostContent/icon.png" />
urlencode('plugin.php?p=enhancePostContent').'">'.__('Configuration').'</a> -
enhancePostContent - '.$core->plugins->moduleInfo('enhancePostContent', 'version').'&nbsp;
<img alt="'.__('enhancePostContent').'" src="index.php?pf=enhancePostContent/icon.png" />
</p> </p>
</body></html>'; </body></html>';

View File

@ -11,7 +11,8 @@
# #
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_RC_PATH')) { return; } if (!defined('DC_RC_PATH')) {
return;
}
$__resources['help']['enhancePostContent'] = dirname(__FILE__).'/help/help.html'; $__resources['help']['enhancePostContent'] = dirname(__FILE__) . '/help/help.html';
?>

View File

@ -11,7 +11,8 @@
# #
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_RC_PATH')) { return; } if (!defined('DC_RC_PATH')) {
return;
}
$__resources['help']['enhancePostContent'] = dirname(__FILE__).'/help/help.html'; $__resources['help']['enhancePostContent'] = dirname(__FILE__) . '/help/help.html';
?>