clean up code (no real changes)

master
Jean-Christian Paul Denis 2021-09-12 22:35:57 +02:00
parent b57b273d84
commit 68e2a4d1f1
Signed by: JcDenis
GPG Key ID: 1B5B8C5B90B6C951
8 changed files with 266 additions and 309 deletions

View File

@ -2,10 +2,9 @@
- [ ] fix Dotclear 2.19 compatibility
- [ ] fix php7.3+ php8.0 compatibility
- [ ] clean up code
- [ ] fix license
- [x] fix license
- [ ] fix translations
- [ ] remove all SoCialMe feature as this plugin is dead
- [ ] add asynchronous update of for feeds
- [x] remove all SoCialMe feature as this plugin is dead
- [ ] fix disallow self blog feeds
- [ ] add plugin muppet support (request Mathieu M.)
- [ ] add log for errors

23
LICENSE
View File

@ -1,12 +1,12 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@ -56,7 +56,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@ -290,8 +290,8 @@ to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{description}
Copyright (C) {year} {fullname}
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -329,7 +329,7 @@ necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
{signature of Ty Coon}, 1 April 1989
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
@ -337,4 +337,3 @@ proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -1,10 +1,11 @@
# README
[![Release version](https://img.shields.io/github/v/release/JcDenis/zoneclearFeedServer)](https://github.com/JcDenis/zoneclearFeedServer/releases)
[![Release date](https://img.shields.io/github/release-date/JcDenis/zoneclearFeedServer)](https://github.com/JcDenis/zoneclearFeedServer/releases)
[![Issue tracking](https://img.shields.io/github/issues/JcDenis/zoneclearFeedServer)](https://github.com/JcDenis/zoneclearFeedServer/issues)
[![Dotclear version](https://img.shields.io/badge/dotclear-v2.7-blue.svg)](https://fr.dotclear.org/download)
[![License](https://img.shields.io/badge/license-GPL%20v2-blue.svg)](https://github.com/JcDenis/zoneclearFeedServer/blob/master/LICENSE)
[![Release](https://img.shields.io/github/v/release/JcDenis/zoneclearFeedServer)](https://github.com/JcDenis/zoneclearFeedServer/releases)
[![Date](https://img.shields.io/github/release-date/JcDenis/zoneclearFeedServer)](https://github.com/JcDenis/zoneclearFeedServer/releases)
[![Issues](https://img.shields.io/github/issues/JcDenis/zoneclearFeedServer)](https://github.com/JcDenis/zoneclearFeedServer/issues)
[![Dotclear](https://img.shields.io/badge/dotclear-v2.19-blue.svg)](https://fr.dotclear.org/download)
[![Dotaddict](https://img.shields.io/badge/dotaddict-official-green.svg)](https://plugins.dotaddict.org/dc2/details/zoneclearFeedServer)
[![License](https://img.shields.io/github/license/JcDenis/zoneclearFeedServer)](https://github.com/JcDenis/zoneclearFeedServer/blob/master/LICENSE)
## WHAT IS ZONECLEARFEEDSERVER ?

View File

@ -16,7 +16,7 @@ if (!defined('DC_RC_PATH')) {
}
$this->registerModule(
'zoneclearFeedServer',
'Feeds server',
'Mix your blog with a feeds planet',
'Jean-Christian Denis, BG, Pierre Van Glabeke',
'2015.07.19',

View File

@ -28,7 +28,7 @@ $core->url->register(
'zoneclearFeedsPage',
'zcfeeds',
'^zcfeeds(.*?)$',
array('zcfsUrlHandler', 'zcFeedsPage')
['zcfsUrlHandler', 'zcFeedsPage']
);
// Add to report on plugin activityReport

View File

@ -20,57 +20,39 @@ $core->blog->settings->addNamespace('zoneclearFeedServer');
$s = $core->blog->settings->zoneclearFeedServer;
# Widgets
require_once dirname(__FILE__).'/_widgets.php';
require_once dirname(__FILE__) . '/_widgets.php';
$core->addBehavior(
'coreBlogGetPosts',
array('zcfsPublicBehaviors', 'coreBlogGetPosts')
);
$core->addBehavior('coreBlogGetPosts', ['zcfsPublicBehaviors', 'coreBlogGetPosts']);
if (!$s->zoneclearFeedServer_active) {
return null;
}
if (1 == $s->zoneclearFeedServer_bhv_pub_upd) {
$core->addBehavior(
'publicBeforeDocument',
array('zcfsPublicBehaviors', 'publicDocument')
);
}
elseif (2 == $s->zoneclearFeedServer_bhv_pub_upd) {
$core->addBehavior(
'publicAfterDocument',
array('zcfsPublicBehaviors', 'publicAfterDocument')
);
}
elseif (3 == $s->zoneclearFeedServer_bhv_pub_upd) {
$core->addBehavior(
'publicHeadContent',
array('zcfsPublicBehaviors', 'publicHeadContent')
);
$core->addBehavior('publicBeforeDocument', ['zcfsPublicBehaviors', 'publicDocument']);
} elseif (2 == $s->zoneclearFeedServer_bhv_pub_upd) {
$core->addBehavior('publicAfterDocument', ['zcfsPublicBehaviors', 'publicAfterDocument']);
} elseif (3 == $s->zoneclearFeedServer_bhv_pub_upd) {
$core->addBehavior('publicHeadContent', ['zcfsPublicBehaviors', 'publicHeadContent']);
}
# Take care about tweakurls (thanks Mathieu M.)
if (version_compare($core->plugins->moduleInfo('tweakurls', 'version'), '0.8', '>=')) {
$core->addbehavior(
'zoneclearFeedServerAfterPostCreate',
array('zoneclearFeedServer', 'tweakurlsAfterPostCreate')
);
$core->addbehavior('zoneclearFeedServerAfterPostCreate', ['zoneclearFeedServer', 'tweakurlsAfterPostCreate']);
}
# Register tempalte blocks
$tpl_blocks = array(
$tpl_blocks = [
'Feeds',
'FeedsFooter',
'FeedsHeader',
'FeedIf'
);
];
foreach($tpl_blocks as $v) {
$core->tpl->addBlock('zc'.$v, array('zcfsTemplate', $v));
$core->tpl->addBlock('zc' .$v, ['zcfsTemplate', $v]);
}
# Register tempalte values
$tpl_values = array(
$tpl_values = [
'FeedsCount',
'FeedsEntriesCount',
'FeedEntriesCount',
@ -87,9 +69,9 @@ $tpl_values = array(
'FeedDesc',
'FeedSiteURL',
'FeedFeedURL'
);
];
foreach($tpl_values as $v) {
$core->tpl->addValue('zc'.$v, array('zcfsTemplate', $v));
$core->tpl->addValue('zc' . $v, ['zcfsTemplate', $v]);
}
/**
@ -120,8 +102,7 @@ class zcfsPublicBehaviors
{
# Limit feeds update to home page et feed page
# Like publishScheduledEntries
if (!in_array($core->url->type, array('default', 'feed'))) {
if (!in_array($core->url->type, ['default', 'feed'])) {
return null;
}
@ -153,32 +134,25 @@ class zcfsPublicBehaviors
{
# Limit update to home page
if ($core->url->type != 'default') {
return null;
}
$blog_url = html::escapeJS(
$core->blog->url.
$core->url->getBase('zoneclearFeedsPage').
$core->blog->url .
$core->url->getBase('zoneclearFeedsPage') .
'/zcfsupd'
);
$blog_id = html::escapeJS($core->blog->id);
echo
"\n<!-- JS for zoneclearFeedServer --> \n".
"<script type=\"text/javascript\" src=\"".
$core->blog->url.
$core->url->getBase('zoneclearFeedsPage').
'/zcfsupd.js">'.
"</script> \n".
"<script type=\"text/javascript\"> \n".
"//<![CDATA[\n".
" \$(function(){if(!document.getElementById){return;} ".
" $('body').zoneclearFeedServer({blog_url:'".
$blog_url."',blog_id:'".$blog_id."'}); ".
" })\n".
"//]]>\n".
"</script>\n";
"\n<!-- JS for zoneclearFeedServer --> \n" .
dcutils::jsLoad($core->blog->url . $core->url->getBase('zoneclearFeedsPage') . '/zcfsupd.js') .
"<script type=\"text/javascript\"> \n//<![CDATA[\n" .
" \$(function(){if(!document.getElementById){return;} " .
" $('body').zoneclearFeedServer({blog_url:'" .
$blog_url . "',blog_id:'" . $blog_id . "'}); " .
" })\n" .
"//]]>\n</script>\n";
}
}
@ -198,12 +172,11 @@ class zcfsRsExtPosts extends rsExtPost
*/
public static function zcFeed($rs, $info)
{
$p = array(
'post_id' => $rs->post_id,
'meta_type' => 'zoneclearfeed_'.$info,
'limit' => 1
);
$meta = $rs->core->meta->getMetadata($p);
$meta = $rs->core->meta->getMetadata([
'post_id' => $rs->post_id,
'meta_type' => 'zoneclearfeed_' . $info,
'limit' => 1
]);
return $meta->isEmpty() ? null : $meta->meta_id;
}
@ -219,12 +192,10 @@ class zcfsRsExtPosts extends rsExtPost
{
if (!empty($GLOBALS['beforeZcFeedRsExt'][$type])) {
$func = $GLOBALS['beforeZcFeedRsExt'][$type];
}
elseif (is_callable('rsExtPostPublic', $type)) {
$func = array('rsExtPostPublic', $type);
}
else {
$func = array('rsExtPost', $type);
} elseif (is_callable('rsExtPostPublic', $type)) {
$func = ['rsExtPostPublic', $type];
} else {
$func = ['rsExtPost', $type];
}
return call_user_func_array($func, $args);
@ -238,13 +209,13 @@ class zcfsRsExtPosts extends rsExtPost
*/
public static function getAuthorLink($rs)
{
$author = $rs->zcFeed('author');
$site = $rs->zcFeed('site');
$author = $rs->zcFeed('author');
$site = $rs->zcFeed('site');
$sitename = $rs->zcFeed('sitename');
return ($author && $sitename) ?
$author.' (<a href="'.$site.'">'.$sitename.'</a>)' :
self::zcFeedBrother('getAuthorLink', array(&$rs));
return $author && $sitename ?
sprintf('%s (<a href="%s">%s</a>)', $author, $site, $sitename) :
self::zcFeedBrother('getAuthorLink', [&$rs]);
}
/**
@ -258,7 +229,7 @@ class zcfsRsExtPosts extends rsExtPost
$author = $rs->zcFeed('author');
return $author ?
$author :
self::zcFeedBrother('getAuthorCN', array(&$rs));
self::zcFeedBrother('getAuthorCN', [&$rs]);
}
/**
@ -275,7 +246,7 @@ class zcfsRsExtPosts extends rsExtPost
return $url && $full ?
zoneclearFeedServer::absoluteURL($rs->zcFeed('site'), $url) :
self::zcFeedBrother('getURL', array(&$rs));
self::zcFeedBrother('getURL', [&$rs]);
}
/**
@ -284,36 +255,35 @@ class zcfsRsExtPosts extends rsExtPost
* @param record $rs record instance
* @return string Post content
*/
public static function getContent($rs, $absolute_urls=false)
public static function getContent($rs, $absolute_urls = false)
{
$url = $rs->zcFeed('url');
$sitename = $rs->zcFeed('sitename');
$content = self::zcFeedBrother('getContent', array(&$rs,$absolute_urls));
$content = self::zcFeedBrother('getContent', [&$rs, $absolute_urls]);
if ($url && $sitename && $rs->post_type == 'post') {
$types = @unserialize($rs->core->blog->settings->zoneclearFeedServer->zoneclearFeedServer_post_full_tpl);
if (is_array($types) && in_array($rs->core->url->type, $types)) {
return $content .
'<p class="zoneclear-original"><em>'.
sprintf(__('Original post on <a href="%s">%s</a>'), $url, $sitename).
'</em></p>';
}
else {
return $content . sprintf(
'<p class="zoneclear-original"><em>%s</em></p>',
sprintf(__('Original post on <a href="%s">%s</a>'), $url, $sitename)
);
} else {
$content = context::remove_html($content);
$content = context::cut_string($content,350);
$content = context::cut_string($content, 350);
$content = html::escapeHTML($content);
return
'<p>'.$content.'... '.
'<em><a href="'.self::getURL($rs).'" title="'.
__('Read more details about this feed').
'">'.__('Continue reading').'</a></em></p>';
return sprintf(
'<p>%s... <em><a href="%s" title="%s">%s</a></em></p>',
$content,
self::getURL($rs),
__('Read more details about this feed'),
__('Continue reading')
);
}
}
else {
} else {
return $content;
}
}
@ -345,58 +315,57 @@ class zcfsUrlHandler extends dcUrlHandlers
}
# Update feeds (from ajax or other post resquest)
if ($args == '/zcfsupd'
&& 3 == $s->zoneclearFeedServer_bhv_pub_upd
) {
if ($args == '/zcfsupd' && 3 == $s->zoneclearFeedServer_bhv_pub_upd) {
$msg = '';
if (!empty($_POST['blogId'])
&& html::escapeJS($core->blog->id) == $_POST['blogId']
) {
if (!empty($_POST['blogId']) && html::escapeJS($core->blog->id) == $_POST['blogId']) {
try {
$zc = new zoneclearFeedServer($core);
if ($zc->checkFeedsUpdate()) {
$msg = '<status>ok</status><message>'.
'Feeds updated successfully</message>';
$msg = sprintf(
'<status>%s</status><message>s%</message>',
'ok',
'Feeds updated successfully'
);
}
}
catch (Exception $e) {}
}
if (empty($msg)) {
$msg = '<status>failed</status><message>'.
'Failed to update feeds</message>';
$msg = sprintf(
'<status>%s</status><message>s%</message>',
'failed',
'Failed to update feeds'
);
}
header('Content-Type: application/xml; charset=UTF-8');
echo
'<?xml version="1.0" encoding="utf-8"?>'."\n".
'<response><rsp>'."\n".
$msg."\n".
'<?xml version="1.0" encoding="utf-8"?> ' . "\n" .
'<response><rsp>' . "\n" .
$msg . "\n" .
'</rsp></response>';
exit(1);
}
# Server js
elseif ($args == '/zcfsupd.js'
&& 3 == $s->zoneclearFeedServer_bhv_pub_upd
) {
$core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__).'/default-templates');
} elseif ($args == '/zcfsupd.js' && 3 == $s->zoneclearFeedServer_bhv_pub_upd) {
$core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__) . '/default-templates');
self::serveDocument(
'zcfsupd.js',
'text/javascript',
false,
false
);
}
# Server feeds description page
elseif (in_array($args, array('', '/'))
&& $s->zoneclearFeedServer_pub_active
) {
$tplset = $core->themes->moduleInfo($core->blog->settings->system->theme,'tplset');
if (!empty($tplset) && is_dir(dirname(__FILE__).'/default-templates/'.$tplset)) {
$core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__).'/default-templates/'.$tplset);
} else {
$core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__).'/default-templates/'.DC_DEFAULT_TPLSET);
}
} elseif (in_array($args, ['', '/']) && $s->zoneclearFeedServer_pub_active) {
$tplset = $core->themes->moduleInfo($core->blog->settings->system->theme, 'tplset');
$path = dirname(__FILE__) . '/default-templates/';
if (!empty($tplset) && is_dir($path . $tplset)) {
$core->tpl->setPath($core->tpl->getPath(), $path . $tplset);
} else {
$core->tpl->setPath($core->tpl->getPath(), $path . DC_DEFAULT_TPLSET);
}
self::serveDocument('zcfeeds.html');
}
# Unknow
@ -420,120 +389,114 @@ class zcfsTemplate
$lastn = -1;
$p = '';
if (isset($a['lastn'])) {
$lastn = abs((integer) $a['lastn'])+0;
$p .= "\$zcfs_params['limit'] = ".$lastn.";\n";
$lastn = abs((integer) $a['lastn']) +0;
$p .= "\$zcfs_params['limit'] = " . $lastn . ";\n";
}
if (isset($a['cat_id'])) {
$p .= "@\$zcfs_params['sql'] .= 'AND Z.cat_id = ".addslashes($a['cat_id'])." ';\n";
$p .= "@\$zcfs_params['sql'] .= 'AND Z.cat_id = " . addslashes($a['cat_id']) . " ';\n";
}
if (isset($a['no_category'])) {
$p .= "@\$zcfs_params['sql'] .= 'AND Z.cat_id IS NULL ';\n";
}
if (!empty($a['site_url'])) {
$p .= "\$zcfs_params['feed_url'] = '".addslashes($a['site_url'])."';\n";
$p .= "\$zcfs_params['feed_url'] = '" . addslashes($a['site_url']) . "';\n";
}
if (isset($a['feed_status'])) {
$p .= "\$zcfs_params['feed_status'] = ".((integer) $a['feed_status']).";\n";
}
else {
$p .= "\$zcfs_params['feed_status'] = " . ((integer) $a['feed_status']) . ";\n";
} else {
$p .= "\$zcfs_params['feed_status'] = 1;\n";
}
if (!empty($a['feed_url'])) {
$p .= "\$zcfs_params['feed_feed'] = '".addslashes($a['feed_url'])."';\n";
$p .= "\$zcfs_params['feed_feed'] = '" . addslashes($a['feed_url']) . "';\n";
}
if (isset($a['feed_owner'])) {
$p .= "@\$zcfs_params['sql'] .= \"AND Z.feed_owner = '".addslashes($a['author'])."' \";\n";
$p .= "@\$zcfs_params['sql'] .= \"AND Z.feed_owner = '" . addslashes($a['author']) . "' \";\n";
}
$sortby = 'feed_creadt';
$order = 'desc';
if (isset($a['sortby'])) {
switch ($a['sortby']) {
case 'name': $sortby = 'lowername'; break;
case 'owner' : $sortby = 'feed_owner'; break;
case 'date' : $sortby = 'feed_dt'; break;
case 'update' : $sortby = 'feed_upddt'; break;
case 'id' : $sortby = 'feed_id'; break;
case 'name': $sortby = 'lowername'; break;
case 'owner' : $sortby = 'feed_owner'; break;
case 'date' : $sortby = 'feed_dt'; break;
case 'update' : $sortby = 'feed_upddt'; break;
case 'id' : $sortby = 'feed_id'; break;
}
}
if (isset($a['order'])
&& preg_match('/^(desc|asc)$/i', $a['order'])
) {
if (isset($a['order']) && preg_match('/^(desc|asc)$/i', $a['order'])) {
$order = $a['order'];
}
$p .= "\$zcfs_params['order'] = '".$sortby." ".$order."';\n";
$p .= "\$zcfs_params['order'] = '" . $sortby . " " . $order . "';\n";
return
'<?php '.$p.
'$_ctx->feeds_params = $zcfs_params;'."\n".
'$zcfs = new zoneclearFeedServer($core);'."\n".
'$_ctx->feeds = $zcfs->getFeeds($zcfs_params); unset($zcfs_params,$zcfs);'."\n".
"?>\n".
'<?php while ($_ctx->feeds->fetch()) : ?>'.$c.'<?php endwhile; '.
'<?php ' . $p .
'$_ctx->feeds_params = $zcfs_params;' . "\n" .
'$zcfs = new zoneclearFeedServer($core);' . "\n" .
'$_ctx->feeds = $zcfs->getFeeds($zcfs_params); unset($zcfs_params,$zcfs);' . "\n" .
"?>\n" .
'<?php while ($_ctx->feeds->fetch()) : ?>' . $c . '<?php endwhile; ' .
'$_ctx->feeds = null; $_ctx->feeds_params = null; ?>';
}
public static function FeedIf($a,$c)
public static function FeedIf($a, $c)
{
$if = array();
$if = [];
$operator = isset($a['operator']) ? self::getOperator($a['operator']) : '&&';
if (isset($a['type'])) {
$type = trim($a['type']);
$type = !empty($type) ? $type : 'feed';
$if[] = '$_ctx->feeds->feed_type == "'.addslashes($type).'"';
$if[] = '$_ctx->feeds->feed_type == "' . addslashes($type) . '"';
}
if (isset($a['site_url'])) {
$url = trim($a['feed_url']);
if (substr($url, 0, 1) == '!') {
$url = substr($url, 1);
$if[] = '$_ctx->feeds->feed_url != "'.addslashes($url).'"';
}
else {
$if[] = '$_ctx->feeds->feed_url == "'.addslashes($url).'"';
$if[] = '$_ctx->feeds->feed_url != "' . addslashes($url) . '"';
} else {
$if[] = '$_ctx->feeds->feed_url == "' . addslashes($url) . '"';
}
}
if (isset($a['feed_url'])) {
$url = trim($a['feed_feed']);
if (substr($url, 0, 1) == '!') {
$url = substr($url, 1);
$if[] = '$_ctx->feeds->feed_feed != "'.addslashes($url).'"';
}
else {
$if[] = '$_ctx->feeds->feed_feed == "'.addslashes($url).'"';
$if[] = '$_ctx->feeds->feed_feed != "' . addslashes($url) . '"';
} else {
$if[] = '$_ctx->feeds->feed_feed == "' . addslashes($url) . '"';
}
}
if (isset($a['category'])) {
$category = addslashes(trim($a['category']));
if (substr($category, 0, 1) == '!') {
$category = substr($category, 1);
$if[] = '($_ctx->feeds->cat_url != "'.$category.'")';
}
else {
$if[] = '($_ctx->feeds->cat_url == "'.$category.'")';
$if[] = '($_ctx->feeds->cat_url != "' . $category . '")';
} else {
$if[] = '($_ctx->feeds->cat_url == "' . $category . '")';
}
}
if (isset($a['first'])) {
$sign = (boolean) $a['first'] ? '=' : '!';
$if[] = '$_ctx->feeds->index() '.$sign.'= 0';
$if[] = '$_ctx->feeds->index() ' . $sign . '= 0';
}
if (isset($a['odd'])) {
$sign = (boolean) $a['odd'] ? '=' : '!';
$if[] = '($_ctx->feeds->index()+1)%2 '.$sign.'= 1';
$if[] = '($_ctx->feeds->index()+1)%2 ' .$sign. ' = 1';
}
if (isset($a['has_category'])) {
$sign = (boolean) $a['has_category'] ? '' : '!';
$if[] = $sign.'$_ctx->feeds->cat_id';
$if[] = $sign . '$_ctx->feeds->cat_id';
}
if (isset($a['has_description'])) {
$sign = (boolean) $a['has_description'] ? '' : '!';
$if[] = $sign.'$_ctx->feeds->feed_desc';
$if[] = $sign . '$_ctx->feeds->feed_desc';
}
return empty($if) ?
$c :
'<?php if('.implode(' '.$operator.' ',$if).') : ?>'.$c.'<?php endif; ?>';
'<?php if(' . implode(' ' . $operator . ' ', $if) . ') : ?>' . $c . '<?php endif; ?>';
}
public static function FeedIfFirst($a)
@ -542,8 +505,8 @@ class zcfsTemplate
$ret = html::escapeHTML($ret);
return
'<?php if ($_ctx->feeds->index() == 0) { '.
"echo '".addslashes($ret)."'; } ?>";
'<?php if ($_ctx->feeds->index() == 0) { ' .
"echo '" . addslashes($ret) . "'; } ?>";
}
public static function FeedIfOdd($a)
@ -552,8 +515,8 @@ class zcfsTemplate
$ret = html::escapeHTML($ret);
return
'<?php if (($_ctx->feeds->index()+1)%2 == 1) { '.
"echo '".addslashes($ret)."'; } ?>";
'<?php if (($_ctx->feeds->index()+1)%2 == 1) { ' .
"echo '" . addslashes($ret) . "'; } ?>";
}
public static function FeedDesc($a)
@ -596,9 +559,10 @@ class zcfsTemplate
$f = $GLOBALS['core']->tpl->getFilters($a);
return empty($a['full']) ?
'<?php echo '.sprintf($f,'$_ctx->feeds->feed_lang').'; ?>'
:
'<?php $langs = l10n::getISOcodes(); if (isset($langs[$_ctx->feeds->feed_lang])) { echo '.sprintf($f, '$langs[$_ctx->feeds->feed_lang]').'; } else { echo '.sprintf($f, '$_ctx->feeds->feed_lang').'; } unset($langs); ?>';
'<?php echo ' . sprintf($f, '$_ctx->feeds->feed_lang') . '; ?>' :
'<?php $langs = l10n::getISOcodes(); if (isset($langs[$_ctx->feeds->feed_lang])) { echo ' .
sprintf($f, '$langs[$_ctx->feeds->feed_lang]') .'; } else { echo ' .
sprintf($f, '$_ctx->feeds->feed_lang') . '; } unset($langs); ?>';
}
public static function FeedName($a)
@ -618,12 +582,12 @@ class zcfsTemplate
public static function FeedsHeader($a, $c)
{
return "<?php if (\$_ctx->feeds->isStart()) : ?>".$c."<?php endif; ?>";
return "<?php if (\$_ctx->feeds->isStart()) : ?>" . $c . "<?php endif; ?>";
}
public static function FeedsFooter($a, $c)
{
return "<?php if (\$_ctx->feeds->isEnd()) : ?>".$c."<?php endif; ?>";
return "<?php if (\$_ctx->feeds->isEnd()) : ?>" . $c . "<?php endif; ?>";
}
public static function FeedsCount($a)
@ -643,13 +607,13 @@ class zcfsTemplate
}
return
"<?php \$fcount = \$_ctx->feeds->count(); \n".
"if (\$fcount == 0) {\n".
" printf(__('".$none."'),\$fcount);\n".
"} elseif (\$fcount == 1) {\n".
" printf(__('".$one."'),\$fcount);\n".
"} else {\n".
" printf(__('".$more."'),\$fcount);\n".
"<?php \$fcount = \$_ctx->feeds->count(); \n" .
"if (\$fcount == 0) {\n" .
" printf(__('" . $none . "'),\$fcount);\n" .
"} elseif (\$fcount == 1) {\n" .
" printf(__('" . $one . "'),\$fcount);\n" .
"} else {\n" .
" printf(__('" . $more . "'),\$fcount);\n" .
"} unset(\$fcount); ?>";
}
@ -670,18 +634,18 @@ class zcfsTemplate
}
return
"<?php \$fcount = 0; \$allfeeds = \$_ctx->feeds->zc->getFeeds(); \n".
"if (!\$allfeeds->isEmpty()) { \n".
" while (\$allfeeds->fetch()) { ".
" \$fcount += (integer) \$_ctx->feeds->zc->getPostsByFeed(array('feed_id'=>\$allfeeds->feed_id),true)->f(0); ".
" } \n".
"} \n".
"if (\$fcount == 0) {\n".
" printf(__('".$none."'),\$fcount);\n".
"} elseif (\$fcount == 1) {\n".
" printf(__('".$one."'),\$fcount);\n".
"} else {\n".
" printf(__('".$more."'),\$fcount);\n".
"<?php \$fcount = 0; \$allfeeds = \$_ctx->feeds->zc->getFeeds(); \n" .
"if (!\$allfeeds->isEmpty()) { \n" .
" while (\$allfeeds->fetch()) { " .
" \$fcount += (integer) \$_ctx->feeds->zc->getPostsByFeed(array('feed_id'=>\$allfeeds->feed_id),true)->f(0); " .
" } \n" .
"} \n" .
"if (\$fcount == 0) {\n" .
" printf(__('" . $none . "'),\$fcount);\n" .
"} elseif (\$fcount == 1) {\n" .
" printf(__('" . $one . "'),\$fcount);\n" .
"} else {\n" .
" printf(__('" . $more . "'),\$fcount);\n" .
"} unset(\$allfeeds,\$fcount); ?>";
}
@ -703,18 +667,18 @@ class zcfsTemplate
return
"<?php \$fcount = \$_ctx->feeds->zc->getPostsByFeed(array('feed_id'=>\$_ctx->feeds->feed_id),true)->f(0); \n".
"if (\$fcount == 0) {\n".
" printf(__('".$none."'),\$fcount);\n".
"} elseif (\$fcount == 1) {\n".
" printf(__('".$one."'),\$fcount);\n".
"} else {\n".
" printf(__('".$more."'),\$fcount);\n".
"if (\$fcount == 0) {\n" .
" printf(__('" . $none . "'),\$fcount);\n" .
"} elseif (\$fcount == 1) {\n" .
" printf(__('" . $one . "'),\$fcount);\n" .
"} else {\n" .
" printf(__('" . $more . "'),\$fcount);\n" .
"} unset(\$fcount); ?>";
}
protected static function getValue($a,$v)
protected static function getValue($a, $v)
{
return '<?php echo '.sprintf($GLOBALS['core']->tpl->getFilters($a), $v).'; ?>';
return '<?php echo ' . sprintf($GLOBALS['core']->tpl->getFilters($a), $v) . '; ?>';
}
protected static function getOperator($op)
@ -732,11 +696,11 @@ class zcfsTemplate
}
}
$core->addBehavior('publicBreadcrumb',array('extZcfeeds','publicBreadcrumb'));
$core->addBehavior('publicBreadcrumb', ['extZcfeeds', 'publicBreadcrumb']);
class extZcfeeds
{
public static function publicBreadcrumb($context,$separator)
public static function publicBreadcrumb($context, $separator)
{
if ($context == 'zoneclearFeedsPage') {
return __('List of feeds');

View File

@ -15,14 +15,14 @@ class zcfsFeedsActionsPage extends dcActionsPage
{
public $zcfs;
public function __construct(dcCore $core, $uri, $redirect_args=array())
public function __construct(dcCore $core, $uri, $redirect_args = [])
{
$this->zcfs = new zoneclearFeedServer($core);
parent::__construct($core, $uri, $redirect_args);
$this->redirect_fields = array(
$this->redirect_fields = [
'sortby', 'order', 'page', 'nb'
);
];
$this->field_entries = 'feeds';
$this->caller_title = __('Feeds');
$this->loadDefaults();
@ -34,39 +34,39 @@ class zcfsFeedsActionsPage extends dcActionsPage
$this->core->callBehavior('zcfsFeedsActionsPage', $this->core, $this);
}
public function beginPage($breadcrumb='', $head='')
public function beginPage($breadcrumb = '', $head = '')
{
echo
'<html><head><title>'.__('Feeds server').'</title>'.
dcPage::jsLoad('js/_posts_actions.js').
$head.
'</script></head><body>'.
$breadcrumb.
'<p><a class="back" href="'.$this->getRedirection(true).'">'.
__('Back to feeds list').'</a></p>';
'<html><head><title>' . __('Feeds server') . '</title>' .
dcPage::jsLoad('js/_posts_actions.js') .
$head .
'</script></head><body>' .
$breadcrumb .
'<p><a class="back" href="' . $this->getRedirection(true) . '">' .
__('Back to feeds list') . '</a></p>';
}
public function endPage()
{
echo
'</body></html>';
echo '</body></html>';
}
public function error(Exception $e)
{
$this->core->error->add($e->getMessage());
$this->beginPage(dcPage::breadcrumb(array(
html::escapeHTML($this->core->blog->name) => '',
$this->getCallerTitle() => $this->getRedirection(true),
__('Feeds actions') => ''
)));
$this->beginPage(
dcPage::breadcrumb([
html::escapeHTML($this->core->blog->name) => '',
$this->getCallerTitle() => $this->getRedirection(true),
__('Feeds actions') => ''
])
);
$this->endPage();
}
protected function fetchEntries($from)
{
if (!empty($from['feeds'])) {
$params['feed_id'] = $from['feeds'];
$feeds = $this->zcfs->getFeeds($params);
@ -74,11 +74,9 @@ class zcfsFeedsActionsPage extends dcActionsPage
$this->entries[$feeds->feed_id] = $feeds->feed_name;
}
$this->rs = $feeds;
}
else {
} else {
$this->rs = $this->core->con->select(
"SELECT blog_id FROM ".
$this->core->prefix."blog WHERE false"
"SELECT blog_id FROM " . $this->core->prefix . "blog WHERE false"
);
}
}
@ -95,36 +93,36 @@ class zcfsDefaultFeedsActions
public static function zcfsFeedsActionsPage(dcCore $core, zcfsFeedsActionsPage $ap)
{
$ap->addAction(
array(__('Change category') => 'changecat'),
array('zcfsDefaultFeedsActions', 'doChangeCategory')
[__('Change category') => 'changecat'],
['zcfsDefaultFeedsActions', 'doChangeCategory']
);
$ap->addAction(
array(__('Change update interval') => 'changeint'),
array('zcfsDefaultFeedsActions', 'doChangeInterval')
[__('Change update interval') => 'changeint'],
['zcfsDefaultFeedsActions', 'doChangeInterval']
);
$ap->addAction(
array(__('Disable feed update') => 'disablefeed'),
array('zcfsDefaultFeedsActions', 'doEnableFeed')
[__('Disable feed update') => 'disablefeed'],
['zcfsDefaultFeedsActions', 'doEnableFeed']
);
$ap->addAction(
array(__('Enable feed update') => 'enablefeed'),
array('zcfsDefaultFeedsActions', 'doEnableFeed')
[__('Enable feed update') => 'enablefeed'],
['zcfsDefaultFeedsActions', 'doEnableFeed']
);
$ap->addAction(
array(__('Reset last update') => 'resetupdlast'),
array('zcfsDefaultFeedsActions', 'doResetUpdate')
[__('Reset last update') => 'resetupdlast'],
['zcfsDefaultFeedsActions', 'doResetUpdate']
);
$ap->addAction(
array(__('Update (check) feed') => 'updatefeed'),
array('zcfsDefaultFeedsActions', 'doUpdateFeed')
[__('Update (check) feed') => 'updatefeed'],
['zcfsDefaultFeedsActions', 'doUpdateFeed']
);
$ap->addAction(
array(__('Delete related posts') => 'deletepost'),
array('zcfsDefaultFeedsActions', 'doDeletePost')
[__('Delete related posts') => 'deletepost'],
['zcfsDefaultFeedsActions', 'doDeletePost']
);
$ap->addAction(
array(__('Delete feed (without related posts)') => 'deletefeed'),
array('zcfsDefaultFeedsActions', 'doDeleteFeed')
[__('Delete feed (without related posts)') => 'deletefeed'],
['zcfsDefaultFeedsActions', 'doDeleteFeed']
);
}
@ -162,13 +160,13 @@ class zcfsDefaultFeedsActions
public static function doDeletePost(dcCore $core, zcfsFeedsActionsPage $ap, $post)
{
$types = array(
$types = [
'zoneclearfeed_url',
'zoneclearfeed_author',
'zoneclearfeed_site',
'zoneclearfeed_sitename',
'zoneclearfeed_id'
);
];
$ids = $ap->getIDs();
@ -178,17 +176,17 @@ class zcfsDefaultFeedsActions
foreach($ids as $id) {
$posts = $ap->zcfs->getPostsByFeed(array(
$posts = $ap->zcfs->getPostsByFeed([
'feed_id' => $id
));
]);
while($posts->fetch()) {
$core->blog->delPost($posts->post_id);
$core->con->execute(
'DELETE FROM '.$core->prefix.'meta '.
'WHERE post_id = '.$posts->post_id.' '.
'AND meta_type '.$core->con->in($types).' '
'DELETE FROM ' . $core->prefix . 'meta ' .
'WHERE post_id = ' . $posts->post_id . ' ' .
'AND meta_type ' . $core->con->in($types) . ' '
);
}
}
@ -297,31 +295,28 @@ class zcfsDefaultFeedsActions
count($ids)
));
$ap->redirect(true);
}
else {
} else {
$categories_combo = dcAdminCombos::getCategoriesCombo(
$core->blog->getCategories()
);
$ap->beginPage(
dcPage::breadcrumb(
array(
dcPage::breadcrumb([
html::escapeHTML($core->blog->name) => '',
__('Feeds server') => '',
$ap->getCallerTitle() => $ap->getRedirection(true),
__('Change category for this selection') => ''
)));
]));
echo
'<form action="'.$ap->getURI().'" method="post">'.
$ap->getCheckboxes().
'<p><label for="upd_cat_id" class="classic">'.__('Category:').'</label> '.
form::combo(array('upd_cat_id'), $categories_combo, '').
$core->formNonce().
$ap->getHiddenFields().
form::hidden(array('action'), 'changecat').
'<input type="submit" value="'.__('Save').'" /></p>'.
'<form action="' . $ap->getURI() . '" method="post">' .
$ap->getCheckboxes() .
'<p><label for="upd_cat_id" class="classic">' . __('Category:') . '</label> ' .
form::combo(['upd_cat_id'], $categories_combo, '') .
$core->formNonce() .
$ap->getHiddenFields() .
form::hidden(['action'], 'changecat') .
'<input type="submit" value="' . __('Save') . '" /></p>' .
'</form>';
$ap->endPage();
@ -359,22 +354,22 @@ class zcfsDefaultFeedsActions
$ap->beginPage(
dcPage::breadcrumb(
array(
[
html::escapeHTML($core->blog->name) => '',
__('Feeds server') => '',
$ap->getCallerTitle() => $ap->getRedirection(true),
__('Change update frequency for this selection') => ''
)));
]));
echo
'<form action="'.$ap->getURI().'" method="post">'.
$ap->getCheckboxes().
'<p><label for="upd_upd_int" class="classic">'.__('Frequency:').'</label> '.
form::combo(array('upd_upd_int'), $ap->zcfs->getAllUpdateInterval(), '').
$core->formNonce().
$ap->getHiddenFields().
form::hidden(array('action'), 'changeint').
'<input type="submit" value="'.__('Save').'" /></p>'.
'<form action="' . $ap->getURI() . '" method="post">' .
$ap->getCheckboxes() .
'<p><label for="upd_upd_int" class="classic">' . __('Frequency:') . '</label> ' .
form::combo(['upd_upd_int'], $ap->zcfs->getAllUpdateInterval(), '') .
$core->formNonce() .
$ap->getHiddenFields() .
form::hidden(['action'], 'changeint') .
'<input type="submit" value="' . __('Save') . '" /></p>' .
'</form>';
$ap->endPage();

View File

@ -12,7 +12,6 @@
*/
if (!defined('DC_RC_PATH')) {
return null;
}
@ -29,7 +28,7 @@ $core->activityReport->addAction(
__('feed creation'),
__('A new feed named "%s" point to "%s" was added by "%s"'),
'zoneclearFeedServerAfterAddFeed',
array('zoneclearFeedServerActivityReportBehaviors', 'addFeed')
['zoneclearFeedServerActivityReportBehaviors', 'addFeed']
);
# from BEHAVIOR zoneclearFeedServerAfterUpdFeed in in zoneclearFeedServer/inc/class.zoneclear.feed.server.php
$core->activityReport->addAction(
@ -38,7 +37,7 @@ $core->activityReport->addAction(
__('updating feed info'),
__('Feed named "%s" point to "%s" has been updated by "%s"'),
'zoneclearFeedServerAfterUpdFeed',
array('zoneclearFeedServerActivityReportBehaviors', 'updFeedInfo')
['zoneclearFeedServerActivityReportBehaviors', 'updFeedInfo']
);
# from BEHAVIOR zoneclearFeedServerAfterUpdFeed in in zoneclearFeedServer/inc/class.zoneclear.feed.server.php
$core->activityReport->addAction(
@ -47,7 +46,7 @@ $core->activityReport->addAction(
__('updating feed records'),
__('Records of the feed named "%s" have been updated automatically'),
'zoneclearFeedServerAfterUpdFeed',
array('zoneclearFeedServerActivityReportBehaviors', 'updFeedRecord')
['zoneclearFeedServerActivityReportBehaviors', 'updFeedRecord']
);
# from BEHAVIOR zoneclearFeedServerAfterDelFeed in in zoneclearFeedServer/inc/class.zoneclear.feed.server.php
$core->activityReport->addAction(
@ -56,7 +55,7 @@ $core->activityReport->addAction(
__('feed deletion'),
__('Feed named "%s" point to "%s" has been deleted by "%s"'),
'zoneclearFeedServerAfterDelFeed',
array('zoneclearFeedServerActivityReportBehaviors', 'delFeed')
['zoneclearFeedServerActivityReportBehaviors', 'delFeed']
);
# from BEHAVIOR zoneclearFeedServerAfterEnableFeed in in zoneclearFeedServer/inc/class.zoneclear.feed.server.php
$core->activityReport->addAction(
@ -65,7 +64,7 @@ $core->activityReport->addAction(
__('feed status'),
__('Feed named "%s" point to "%s" has been set to "%s"'),
'zoneclearFeedServerAfterEnableFeed',
array('zoneclearFeedServerActivityReportBehaviors', 'enableFeed')
['zoneclearFeedServerActivityReportBehaviors', 'enableFeed']
);
class zoneclearFeedServerActivityReportBehaviors
@ -74,11 +73,11 @@ class zoneclearFeedServerActivityReportBehaviors
{
global $core;
$logs = array(
$logs = [
$cur->feed_name,
$cur->feed_feed,
$core->auth->getInfo('user_cn')
);
];
$core->activityReport->addLog(
'zoneclearFeedServer',
@ -92,13 +91,13 @@ class zoneclearFeedServerActivityReportBehaviors
if (defined('DC_CONTEXT_ADMIN')) {
global $core;
$zc = new zoneclearFeedServer($core);
$rs = $zc->getFeeds(array('feed_id' => $id));
$rs = $zc->getFeeds(['feed_id' => $id]);
$logs = array(
$logs = [
$rs->feed_name,
$rs->feed_feed,
$core->auth->getInfo('user_cn')
);
];
$core->activityReport->addLog(
'zoneclearFeedServer',
@ -113,11 +112,11 @@ class zoneclearFeedServerActivityReportBehaviors
if (!defined('DC_CONTEXT_ADMIN')) {
global $core;
$zc = new zoneclearFeedServer($core);
$rs = $zc->getFeeds(array('feed_id' => $id));
$rs = $zc->getFeeds(['feed_id' => $id]);
$logs = array(
$logs = [
$rs->feed_name
);
];
$core->activityReport->addLog(
'zoneclearFeedServer',
@ -132,13 +131,13 @@ class zoneclearFeedServerActivityReportBehaviors
global $core;
$zc = new zoneclearFeedServer($core);
$rs = $zc->getFeeds(array('feed_id' => $id));
$rs = $zc->getFeeds(['feed_id' => $id]);
$logs = array(
$logs = [
$rs->feed_name,
$rs->feed_feed,
$core->auth->getInfo('user_cn')
);
];
$core->activityReport->addLog(
'zoneclearFeedServer',
@ -152,13 +151,13 @@ class zoneclearFeedServerActivityReportBehaviors
global $core;
$zc = new zoneclearFeedServer($core);
$rs = $zc->getFeeds(array('feed_id' => $id));
$rs = $zc->getFeeds(['feed_id' => $id]);
$logs = array(
$logs = [
$rs->feed_name,
$rs->feed_feed,
$enable ? 'enable' : 'disable'
);
];
$core->activityReport->addLog(
'zoneclearFeedServer',