PSR2 and license
This commit is contained in:
parent
b38ca38b09
commit
a5d4f0d467
10 changed files with 1008 additions and 1069 deletions
|
@ -1,41 +1,36 @@
|
||||||
|
fac 0.8 - 2021-08-19
|
||||||
|
* update license
|
||||||
|
* fixed PSR2 coding style
|
||||||
|
|
||||||
fac 0.7 - 2013-11-11
|
fac 0.7 - 2013-11-11
|
||||||
===========================================================
|
|
||||||
* Switch to Dotclear 2.6
|
* Switch to Dotclear 2.6
|
||||||
* Fix missing feed description
|
* Fix missing feed description
|
||||||
|
|
||||||
fac 0.6.1 - 2010-11-12
|
fac 0.6.1 - 2010-11-12
|
||||||
===========================================================
|
|
||||||
* Fixed install on nightly build
|
* Fixed install on nightly build
|
||||||
|
|
||||||
fac 0.6 - 2010-08-16
|
fac 0.6 - 2010-08-16
|
||||||
===========================================================
|
|
||||||
* Added compatibility with plugin muppet
|
* Added compatibility with plugin muppet
|
||||||
|
|
||||||
fac 0.5 - 2010-06-05
|
fac 0.5 - 2010-06-05
|
||||||
===========================================================
|
|
||||||
* Switched to DC 2.2
|
* Switched to DC 2.2
|
||||||
* Added predefined format (thx to Jean-Michel) (closes #459)
|
* Added predefined format (thx to Jean-Michel) (closes #459)
|
||||||
|
|
||||||
fac 0.4.1 - 2010-04-10
|
fac 0.4.1 - 2010-04-10
|
||||||
===========================================================
|
|
||||||
* Fixed typo (thx to Jean-Michel) (closes #458)
|
* Fixed typo (thx to Jean-Michel) (closes #458)
|
||||||
|
|
||||||
fac 0.4 - 2010-05-25
|
fac 0.4 - 2010-05-25
|
||||||
===========================================================
|
|
||||||
* Fixed Timeout error
|
* Fixed Timeout error
|
||||||
* Fixed DC 2.1.7
|
* Fixed DC 2.1.7
|
||||||
|
|
||||||
fac 0.3 - 2010-04-10
|
fac 0.3 - 2010-04-10
|
||||||
===========================================================
|
|
||||||
* Added options to format feed
|
* Added options to format feed
|
||||||
* Added DC 2.2 compatibility
|
* Added DC 2.2 compatibility
|
||||||
* Removed class and used metadata
|
* Removed class and used metadata
|
||||||
* Changed admin page design
|
* Changed admin page design
|
||||||
|
|
||||||
fac 0.2 - 2010-02-17
|
fac 0.2 - 2010-02-17
|
||||||
===========================================================
|
|
||||||
* Fixed some fields in admin
|
* Fixed some fields in admin
|
||||||
|
|
||||||
fac 0.1 - 2010-02-16
|
fac 0.1 - 2010-02-16
|
||||||
===========================================================
|
|
||||||
* First lab release
|
* First lab release
|
549
_admin.php
549
_admin.php
|
@ -3,8 +3,7 @@
|
||||||
#
|
#
|
||||||
# This file is part of fac, a plugin for Dotclear 2.
|
# This file is part of fac, a plugin for Dotclear 2.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2013 Jean-Christian Denis and contributors
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
# contact@jcdenis.fr http://jcd.lv
|
|
||||||
#
|
#
|
||||||
# Licensed under the GPL version 2.0 license.
|
# Licensed under the GPL version 2.0 license.
|
||||||
# A copy of this license is available in LICENSE file or at
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
@ -13,43 +12,23 @@
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
# -- END LICENSE BLOCK ------------------------------------
|
||||||
|
|
||||||
if (!defined('DC_CONTEXT_ADMIN')) {
|
if (!defined('DC_CONTEXT_ADMIN')) {
|
||||||
|
return null;
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$core->blog->settings->addNamespace('fac');
|
$core->blog->settings->addNamespace('fac');
|
||||||
|
|
||||||
# Not active
|
# Not active
|
||||||
if (!$core->blog->settings->fac->fac_active) {
|
if (!$core->blog->settings->fac->fac_active) {
|
||||||
|
return null;
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Admin behaviors
|
# Admin behaviors
|
||||||
$core->addBehavior(
|
$core->addBehavior('adminPostHeaders', ['facAdmin', 'adminPostHeaders']);
|
||||||
'adminPostHeaders',
|
$core->addBehavior('adminPostFormItems', ['facAdmin', 'adminPostFormItems']);
|
||||||
array('facAdmin', 'adminPostHeaders')
|
$core->addBehavior('adminAfterPostCreate', ['facAdmin', 'adminAfterPostSave']);
|
||||||
);
|
$core->addBehavior('adminAfterPostUpdate', ['facAdmin', 'adminAfterPostSave']);
|
||||||
$core->addBehavior(
|
$core->addBehavior('adminBeforePostDelete', ['facAdmin', 'adminBeforePostDelete']);
|
||||||
'adminPostFormItems',
|
$core->addBehavior('adminPostsActionsPage', ['facAdmin', 'adminPostsActionsPage']);
|
||||||
array('facAdmin', 'adminPostFormItems')
|
|
||||||
);
|
|
||||||
$core->addBehavior(
|
|
||||||
'adminAfterPostCreate',
|
|
||||||
array('facAdmin', 'adminAfterPostSave')
|
|
||||||
);
|
|
||||||
$core->addBehavior(
|
|
||||||
'adminAfterPostUpdate',
|
|
||||||
array('facAdmin', 'adminAfterPostSave')
|
|
||||||
);
|
|
||||||
$core->addBehavior(
|
|
||||||
'adminBeforePostDelete',
|
|
||||||
array('facAdmin', 'adminBeforePostDelete')
|
|
||||||
);
|
|
||||||
$core->addBehavior(
|
|
||||||
'adminPostsActionsPage',
|
|
||||||
array('facAdmin', 'adminPostsActionsPage')
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup DC_PLUGIN_FAC
|
* @ingroup DC_PLUGIN_FAC
|
||||||
|
@ -58,294 +37,288 @@ $core->addBehavior(
|
||||||
*/
|
*/
|
||||||
class facAdmin
|
class facAdmin
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Add javascript (toggle)
|
* Add javascript (toggle)
|
||||||
*
|
*
|
||||||
* @return string HTML head
|
* @return string HTML head
|
||||||
*/
|
*/
|
||||||
public static function adminPostHeaders()
|
public static function adminPostHeaders()
|
||||||
{
|
{
|
||||||
return dcPage::jsLoad('index.php?pf=fac/js/admin.js');
|
return dcPage::jsLoad('index.php?pf=fac/js/admin.js');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add form to post sidebar
|
* Add form to post sidebar
|
||||||
*
|
*
|
||||||
* @param ArrayObject $main_items Main items
|
* @param ArrayObject $main_items Main items
|
||||||
* @param ArrayObject $sidebar_items Sidebar items
|
* @param ArrayObject $sidebar_items Sidebar items
|
||||||
* @param record $post Post record or null
|
* @param record $post Post record or null
|
||||||
*/
|
*/
|
||||||
public static function adminPostFormItems(ArrayObject $main_items, ArrayObject $sidebar_items, $post)
|
public static function adminPostFormItems(ArrayObject $main_items, ArrayObject $sidebar_items, $post)
|
||||||
{
|
{
|
||||||
global $core;
|
global $core;
|
||||||
|
|
||||||
# Get existing linked feed
|
# Get existing linked feed
|
||||||
$fac_url = $fac_format = '';
|
$fac_url = $fac_format = '';
|
||||||
if ($post) {
|
if ($post) {
|
||||||
|
|
||||||
$rs = $core->meta->getMetadata(array(
|
$rs = $core->meta->getMetadata(array(
|
||||||
'meta_type' => 'fac',
|
'meta_type' => 'fac',
|
||||||
'post_id' => $post->post_id,
|
'post_id' => $post->post_id,
|
||||||
'limit' => 1
|
'limit' => 1
|
||||||
));
|
));
|
||||||
$fac_url = $rs->isEmpty() ? '' : $rs->meta_id;
|
$fac_url = $rs->isEmpty() ? '' : $rs->meta_id;
|
||||||
|
|
||||||
$rs = $core->meta->getMetadata(array(
|
$rs = $core->meta->getMetadata(array(
|
||||||
'meta_type' => 'facformat',
|
'meta_type' => 'facformat',
|
||||||
'post_id' => $post->post_id,
|
'post_id' => $post->post_id,
|
||||||
'limit' => 1
|
'limit' => 1
|
||||||
));
|
));
|
||||||
$fac_format = $rs->isEmpty() ? '' : $rs->meta_id;
|
$fac_format = $rs->isEmpty() ? '' : $rs->meta_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set linked feed form items
|
# Set linked feed form items
|
||||||
$sidebar_items['options-box']['items']['fac'] =
|
$sidebar_items['options-box']['items']['fac'] =
|
||||||
self::formFeed($core, $fac_url, $fac_format);
|
self::formFeed($core, $fac_url, $fac_format);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save linked feed
|
* Save linked feed
|
||||||
*
|
*
|
||||||
* @param cursor $cur Current post cursor
|
* @param cursor $cur Current post cursor
|
||||||
* @param integer $post_id Post id
|
* @param integer $post_id Post id
|
||||||
*/
|
*/
|
||||||
public static function adminAfterPostSave(cursor $cur, $post_id)
|
public static function adminAfterPostSave(cursor $cur, $post_id)
|
||||||
{
|
{
|
||||||
global $core;
|
global $core;
|
||||||
|
|
||||||
if (!isset($_POST['fac_url'])
|
if (!isset($_POST['fac_url'])
|
||||||
|| !isset($_POST['fac_format'])
|
|| !isset($_POST['fac_format'])) {
|
||||||
) {
|
return null;
|
||||||
return null;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
# Delete old linked feed
|
# Delete old linked feed
|
||||||
self::delFeed($core, $post_id);
|
self::delFeed($core, $post_id);
|
||||||
|
|
||||||
# Add new linked feed
|
# Add new linked feed
|
||||||
self::addFeed($core, $post_id, $_POST);
|
self::addFeed($core, $post_id, $_POST);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete linked feed on post edition
|
* Delete linked feed on post edition
|
||||||
*
|
*
|
||||||
* @param integer $post_id Post id
|
* @param integer $post_id Post id
|
||||||
*/
|
*/
|
||||||
public static function adminBeforePostDelete($post_id)
|
public static function adminBeforePostDelete($post_id)
|
||||||
{
|
{
|
||||||
self::delFeed($GLOBALS['core'], $post_id);
|
self::delFeed($GLOBALS['core'], $post_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add actions to posts page combo
|
* Add actions to posts page combo
|
||||||
*
|
*
|
||||||
* @param dcCore $core dcCore instance
|
* @param dcCore $core dcCore instance
|
||||||
* @param dcPostsActionsPage $ap dcPostsActionsPage instance
|
* @param dcPostsActionsPage $ap dcPostsActionsPage instance
|
||||||
*/
|
*/
|
||||||
public static function adminPostsActionsPage(dcCore $core, dcPostsActionsPage $pa)
|
public static function adminPostsActionsPage(dcCore $core, dcPostsActionsPage $pa)
|
||||||
{
|
{
|
||||||
$pa->addAction(
|
$pa->addAction(
|
||||||
array(
|
array(
|
||||||
__('Linked feed') => array(
|
__('Linked feed') => array(
|
||||||
__('Add feed') => 'fac_add'
|
__('Add feed') => 'fac_add'
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
array('facAdmin', 'callbackAdd')
|
array('facAdmin', 'callbackAdd')
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!$core->auth->check('delete,contentadmin', $core->blog->id)) {
|
if (!$core->auth->check('delete,contentadmin', $core->blog->id)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
$pa->addAction(
|
||||||
|
array(
|
||||||
|
__('Linked feed') => array(
|
||||||
|
__('Remove feed') => 'fac_remove'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
array('facAdmin', 'callbackRemove')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
/**
|
||||||
}
|
* Posts actions callback to remove linked feed
|
||||||
$pa->addAction(
|
*
|
||||||
array(
|
* @param dcCore $core dcCore instance
|
||||||
__('Linked feed') => array(
|
* @param dcPostsActionsPage $pa dcPostsActionsPage instance
|
||||||
__('Remove feed') => 'fac_remove'
|
* @param ArrayObject $post _POST actions
|
||||||
)
|
*/
|
||||||
),
|
public static function callbackRemove(dcCore $core, dcPostsActionsPage $pa, ArrayObject $post)
|
||||||
array('facAdmin', 'callbackRemove')
|
{
|
||||||
);
|
# No entry
|
||||||
}
|
$posts_ids = $pa->getIDs();
|
||||||
|
if (empty($posts_ids)) {
|
||||||
|
throw new Exception(__('No entry selected'));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
# No right
|
||||||
* Posts actions callback to remove linked feed
|
if (!$core->auth->check('delete,contentadmin',$core->blog->id)) {
|
||||||
*
|
throw new Exception(__('No enough right'));
|
||||||
* @param dcCore $core dcCore instance
|
}
|
||||||
* @param dcPostsActionsPage $pa dcPostsActionsPage instance
|
|
||||||
* @param ArrayObject $post _POST actions
|
|
||||||
*/
|
|
||||||
public static function callbackRemove(dcCore $core, dcPostsActionsPage $pa, ArrayObject $post)
|
|
||||||
{
|
|
||||||
# No entry
|
|
||||||
$posts_ids = $pa->getIDs();
|
|
||||||
if (empty($posts_ids)) {
|
|
||||||
throw new Exception(__('No entry selected'));
|
|
||||||
}
|
|
||||||
|
|
||||||
# No right
|
# Delete expired date
|
||||||
if (!$core->auth->check('delete,contentadmin',$core->blog->id)) {
|
foreach($posts_ids as $post_id) {
|
||||||
throw new Exception(__('No enough right'));
|
self::delFeed($core, $post_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
# Delete expired date
|
dcPage::addSuccessNotice(__('Linked feed deleted.'));
|
||||||
foreach($posts_ids as $post_id) {
|
$pa->redirect(true);
|
||||||
self::delFeed($core, $post_id);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
dcPage::addSuccessNotice(__('Linked feed deleted.'));
|
/**
|
||||||
$pa->redirect(true);
|
* Posts actions callback to add linked feed
|
||||||
}
|
*
|
||||||
|
* @param dcCore $core dcCore instance
|
||||||
|
* @param dcPostsActionsPage $pa dcPostsActionsPage instance
|
||||||
|
* @param ArrayObject $post _POST actions
|
||||||
|
*/
|
||||||
|
public static function callbackAdd(dcCore $core, dcPostsActionsPage $pa, ArrayObject $post)
|
||||||
|
{
|
||||||
|
# No entry
|
||||||
|
$posts_ids = $pa->getIDs();
|
||||||
|
if (empty($posts_ids)) {
|
||||||
|
throw new Exception(__('No entry selected'));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
# Save action
|
||||||
* Posts actions callback to add linked feed
|
if (!empty($post['fac_url'])
|
||||||
*
|
&& !empty($post['fac_format'])) {
|
||||||
* @param dcCore $core dcCore instance
|
foreach($posts_ids as $post_id) {
|
||||||
* @param dcPostsActionsPage $pa dcPostsActionsPage instance
|
self::delFeed($core, $post_id);
|
||||||
* @param ArrayObject $post _POST actions
|
self::addFeed($core, $post_id, $post);
|
||||||
*/
|
}
|
||||||
public static function callbackAdd(dcCore $core, dcPostsActionsPage $pa, ArrayObject $post)
|
|
||||||
{
|
|
||||||
# No entry
|
|
||||||
$posts_ids = $pa->getIDs();
|
|
||||||
if (empty($posts_ids)) {
|
|
||||||
throw new Exception(__('No entry selected'));
|
|
||||||
}
|
|
||||||
|
|
||||||
# Save action
|
dcPage::addSuccessNotice(__('Linked feed added.'));
|
||||||
if (!empty($post['fac_url'])
|
$pa->redirect(true);
|
||||||
&& !empty($post['fac_format'])
|
|
||||||
) {
|
|
||||||
foreach($posts_ids as $post_id) {
|
|
||||||
self::delFeed($core, $post_id);
|
|
||||||
self::addFeed($core, $post_id, $post);
|
|
||||||
}
|
|
||||||
|
|
||||||
dcPage::addSuccessNotice(__('Linked feed added.'));
|
# Display form
|
||||||
$pa->redirect(true);
|
} else {
|
||||||
}
|
$pa->beginPage(
|
||||||
|
dcPage::breadcrumb(array(
|
||||||
|
html::escapeHTML($core->blog->name) => '',
|
||||||
|
$pa->getCallerTitle() => $pa->getRedirection(true),
|
||||||
|
__('Linked feed to this selection') => ''
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
# Display form
|
echo
|
||||||
else {
|
'<form action="' . $pa->getURI() . '" method="post">' .
|
||||||
$pa->beginPage(
|
$pa->getCheckboxes() .
|
||||||
dcPage::breadcrumb(array(
|
|
||||||
html::escapeHTML($core->blog->name) => '',
|
|
||||||
$pa->getCallerTitle() => $pa->getRedirection(true),
|
|
||||||
__('Linked feed to this selection') => ''
|
|
||||||
))
|
|
||||||
);
|
|
||||||
|
|
||||||
echo
|
self::formFeed($core) .
|
||||||
'<form action="'.$pa->getURI().'" method="post">'.
|
|
||||||
$pa->getCheckboxes().
|
|
||||||
|
|
||||||
self::formFeed($core).
|
'<p>' .
|
||||||
|
$core->formNonce() .
|
||||||
|
$pa->getHiddenFields() .
|
||||||
|
form::hidden(array('action'), 'fac_add') .
|
||||||
|
'<input type="submit" value="' . __('Save') . '" /></p>' .
|
||||||
|
'</form>';
|
||||||
|
|
||||||
'<p>'.
|
$pa->endPage();
|
||||||
$core->formNonce().
|
}
|
||||||
$pa->getHiddenFields().
|
}
|
||||||
form::hidden(array('action'), 'fac_add').
|
|
||||||
'<input type="submit" value="'.__('Save').'" /></p>'.
|
|
||||||
'</form>';
|
|
||||||
|
|
||||||
$pa->endPage();
|
/**
|
||||||
}
|
* Linked feed form field
|
||||||
}
|
*
|
||||||
|
* @param dcCore $core dcCore instance
|
||||||
|
* @param string $url Feed URL
|
||||||
|
* @param string $format Feed format
|
||||||
|
* @return string Feed form content
|
||||||
|
*/
|
||||||
|
protected static function formFeed(dcCore $core, $url = '', $format = '')
|
||||||
|
{
|
||||||
|
return
|
||||||
|
'<div id="fac">' .
|
||||||
|
'<h5>' . __('Linked feed') . '</h5>' .
|
||||||
|
'<p><label for="fac_url">' .
|
||||||
|
__('Feed URL:') . '</label>' .
|
||||||
|
form::field(
|
||||||
|
'fac_url',
|
||||||
|
60,
|
||||||
|
255,
|
||||||
|
$url,
|
||||||
|
'maximal'
|
||||||
|
) . '</p>' .
|
||||||
|
'<p><label for="fac_format">' .
|
||||||
|
__('Format:') . '</label>' .
|
||||||
|
form::combo(
|
||||||
|
'fac_format',
|
||||||
|
self::comboFac($core),
|
||||||
|
$format,
|
||||||
|
'maximal'
|
||||||
|
) . '</p>' .
|
||||||
|
($url ? '<p><a href="' . $url . '" title="' . $url . '">' . __('view feed') . '</a></p>' : '') .
|
||||||
|
'</div>';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Linked feed form field
|
* List of fac formats
|
||||||
*
|
*
|
||||||
* @param dcCore $core dcCore instance
|
* @param dcCore $core dcCore instance
|
||||||
* @param string $url Feed URL
|
* @return array List of fac formats
|
||||||
* @param string $format Feed format
|
*/
|
||||||
* @return string Feed form content
|
protected static function comboFac(dcCore $core)
|
||||||
*/
|
{
|
||||||
protected static function formFeed(dcCore $core, $url='', $format='')
|
$formats = @unserialize($core->blog->settings->fac->fac_formats);
|
||||||
{
|
if (!is_array($formats) || empty($formats)) {
|
||||||
return
|
return array();
|
||||||
'<div id="fac">'.
|
}
|
||||||
'<h5>'.__('Linked feed').'</h5>'.
|
|
||||||
'<p><label for="fac_url">'.
|
|
||||||
__('Feed URL:').'</label>'.
|
|
||||||
form::field(
|
|
||||||
'fac_url',
|
|
||||||
60,
|
|
||||||
255,
|
|
||||||
$url,
|
|
||||||
'maximal'
|
|
||||||
).'</p>'.
|
|
||||||
'<p><label for="fac_format">'.
|
|
||||||
__('Format:').'</label>'.
|
|
||||||
form::combo(
|
|
||||||
'fac_format',
|
|
||||||
self::comboFac($core),
|
|
||||||
$format,
|
|
||||||
'maximal'
|
|
||||||
).'</p>'.
|
|
||||||
($url ? '<p><a href="'.$url.'" title="'.$url.'">'.__('view feed').'</a></p>' : '').
|
|
||||||
'</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
$res = array();
|
||||||
* List of fac formats
|
foreach($formats as $uid => $f) {
|
||||||
*
|
$res[$f['name']] = $uid;
|
||||||
* @param dcCore $core dcCore instance
|
}
|
||||||
* @return array List of fac formats
|
|
||||||
*/
|
|
||||||
protected static function comboFac(dcCore $core)
|
|
||||||
{
|
|
||||||
$formats = @unserialize($core->blog->settings->fac->fac_formats);
|
|
||||||
if (!is_array($formats) || empty($formats)) {
|
|
||||||
|
|
||||||
return array();
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
$res = array();
|
/**
|
||||||
foreach($formats as $uid => $f) {
|
* Delete linked feed
|
||||||
$res[$f['name']] = $uid;
|
*
|
||||||
}
|
* @param dcCore $core dcCore instance
|
||||||
|
* @param integer $post_id Post id
|
||||||
|
*/
|
||||||
|
protected static function delFeed(dcCore $core, $post_id)
|
||||||
|
{
|
||||||
|
$post_id = (integer) $post_id;
|
||||||
|
$core->meta->delPostMeta($post_id, 'fac');
|
||||||
|
$core->meta->delPostMeta($post_id, 'facformat');
|
||||||
|
}
|
||||||
|
|
||||||
return $res;
|
/**
|
||||||
}
|
* Add linked feed
|
||||||
|
*
|
||||||
|
* @param dcCore $core dcCore instance
|
||||||
|
* @param integer $post_id Post id
|
||||||
|
* @param array $options Feed options
|
||||||
|
*/
|
||||||
|
protected static function addFeed($core, $post_id, $options)
|
||||||
|
{
|
||||||
|
if (empty($options['fac_url'])
|
||||||
|
|| empty($options['fac_format'])) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
$post_id = (integer) $post_id;
|
||||||
* Delete linked feed
|
|
||||||
*
|
|
||||||
* @param dcCore $core dcCore instance
|
|
||||||
* @param integer $post_id Post id
|
|
||||||
*/
|
|
||||||
protected static function delFeed(dcCore $core, $post_id)
|
|
||||||
{
|
|
||||||
$post_id = (integer) $post_id;
|
|
||||||
$core->meta->delPostMeta($post_id, 'fac');
|
|
||||||
$core->meta->delPostMeta($post_id, 'facformat');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
$core->meta->setPostMeta(
|
||||||
* Add linked feed
|
$post_id,
|
||||||
*
|
'fac',
|
||||||
* @param dcCore $core dcCore instance
|
$options['fac_url']
|
||||||
* @param integer $post_id Post id
|
);
|
||||||
* @param array $options Feed options
|
$core->meta->setPostMeta(
|
||||||
*/
|
$post_id,
|
||||||
protected static function addFeed($core, $post_id, $options)
|
'facformat',
|
||||||
{
|
$options['fac_format']
|
||||||
if (empty($options['fac_url'])
|
);
|
||||||
|| empty($options['fac_format'])
|
}
|
||||||
) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$post_id = (integer) $post_id;
|
|
||||||
|
|
||||||
$core->meta->setPostMeta(
|
|
||||||
$post_id,
|
|
||||||
'fac',
|
|
||||||
$options['fac_url']
|
|
||||||
);
|
|
||||||
$core->meta->setPostMeta(
|
|
||||||
$post_id,
|
|
||||||
'facformat',
|
|
||||||
$options['fac_format']
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
845
_config.php
845
_config.php
|
@ -3,8 +3,7 @@
|
||||||
#
|
#
|
||||||
# This file is part of fac, a plugin for Dotclear 2.
|
# This file is part of fac, a plugin for Dotclear 2.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2013 Jean-Christian Denis and contributors
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
# contact@jcdenis.fr http://jcd.lv
|
|
||||||
#
|
#
|
||||||
# Licensed under the GPL version 2.0 license.
|
# Licensed under the GPL version 2.0 license.
|
||||||
# A copy of this license is available in LICENSE file or at
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
@ -13,524 +12,518 @@
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
# -- END LICENSE BLOCK ------------------------------------
|
||||||
|
|
||||||
if (!defined('DC_CONTEXT_MODULE')) {
|
if (!defined('DC_CONTEXT_MODULE')) {
|
||||||
|
return null;
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$redir = empty($_REQUEST['redir']) ?
|
$redir = empty($_REQUEST['redir']) ?
|
||||||
$list->getURL().'#plugins' : $_REQUEST['redir'];
|
$list->getURL() . '#plugins' : $_REQUEST['redir'];
|
||||||
|
|
||||||
# -- Combos of types of supported public pages --
|
# -- Combos of types of supported public pages --
|
||||||
$types = array(
|
$types = [
|
||||||
__('home page') => 'default',
|
__('home page') => 'default',
|
||||||
__('post pages') => 'post',
|
__('post pages') => 'post',
|
||||||
__('tags pages') => 'tag',
|
__('tags pages') => 'tag',
|
||||||
__('archives pages') => 'archive',
|
__('archives pages') => 'archive',
|
||||||
__('category pages') => 'category',
|
__('category pages') => 'category',
|
||||||
__('entries feed') => 'feed'
|
__('entries feed') => 'feed'
|
||||||
);
|
];
|
||||||
if ($core->plugins->moduleExists('muppet')) {
|
if ($core->plugins->moduleExists('muppet')) {
|
||||||
foreach(muppet::getPostTypes() as $k => $v) {
|
foreach(muppet::getPostTypes() as $k => $v) {
|
||||||
$types[sprintf(
|
$types[sprintf(
|
||||||
__('"%s" pages from extension muppet'),
|
__('"%s" pages from extension muppet'),
|
||||||
$v['name']
|
$v['name']
|
||||||
)] = $k;
|
)] = $k;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# -- Get settings --
|
# -- Get settings --
|
||||||
$core->blog->settings->addNamespace('fac');
|
$core->blog->settings->addNamespace('fac');
|
||||||
$s = $core->blog->settings->fac;
|
$s = $core->blog->settings->fac;
|
||||||
|
|
||||||
$fac_active = (boolean) $s->fac_active;
|
$fac_active = (boolean) $s->fac_active;
|
||||||
$fac_defaultfeedtitle = (string) $s->fac_defaultfeedtitle;
|
$fac_defaultfeedtitle = (string) $s->fac_defaultfeedtitle;
|
||||||
$fac_showfeeddesc = (boolean) $s->fac_showfeeddesc;
|
$fac_showfeeddesc = (boolean) $s->fac_showfeeddesc;
|
||||||
$fac_public_tpltypes = @unserialize($s->fac_public_tpltypes);
|
$fac_public_tpltypes = @unserialize($s->fac_public_tpltypes);
|
||||||
$fac_formats = @unserialize($s->fac_formats);
|
$fac_formats = @unserialize($s->fac_formats);
|
||||||
|
|
||||||
if (!is_array($fac_public_tpltypes)) {
|
if (!is_array($fac_public_tpltypes)) {
|
||||||
$fac_public_tpltypes = array();
|
$fac_public_tpltypes = array();
|
||||||
}
|
}
|
||||||
if (!is_array($fac_formats)) {
|
if (!is_array($fac_formats)) {
|
||||||
$fac_formats = array();
|
$fac_formats = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
# -- Set settings --
|
# -- Set settings --
|
||||||
if (!empty($_POST['save'])) {
|
if (!empty($_POST['save'])) {
|
||||||
|
try {
|
||||||
|
$fac_active = !empty($_POST['fac_active']);
|
||||||
|
$fac_defaultfeedtitle = (string) $_POST['fac_defaultfeedtitle'];
|
||||||
|
$fac_showfeeddesc = !empty($_POST['fac_showfeeddesc']);
|
||||||
|
$fac_public_tpltypes = $_POST['fac_public_tpltypes'];
|
||||||
|
$fac_formats = array();
|
||||||
|
|
||||||
try {
|
foreach($_POST['fac_formats'] as $uid => $f) {
|
||||||
$fac_active = !empty($_POST['fac_active']);
|
if (!empty($f['name'])) {
|
||||||
$fac_defaultfeedtitle = (string) $_POST['fac_defaultfeedtitle'];
|
$fac_formats[$uid] = $f;
|
||||||
$fac_showfeeddesc = !empty($_POST['fac_showfeeddesc']);
|
}
|
||||||
$fac_public_tpltypes = $_POST['fac_public_tpltypes'];
|
}
|
||||||
$fac_formats = array();
|
|
||||||
|
|
||||||
foreach($_POST['fac_formats'] as $uid => $f) {
|
$s->put('fac_active', $fac_active);
|
||||||
if (!empty($f['name'])) {
|
$s->put('fac_defaultfeedtitle', $fac_defaultfeedtitle);
|
||||||
$fac_formats[$uid] = $f;
|
$s->put('fac_showfeeddesc', $fac_showfeeddesc);
|
||||||
}
|
$s->put('fac_public_tpltypes', serialize($fac_public_tpltypes));
|
||||||
}
|
$s->put('fac_formats', serialize($fac_formats));
|
||||||
|
|
||||||
$s->put('fac_active', $fac_active);
|
$core->blog->triggerBlog();
|
||||||
$s->put('fac_defaultfeedtitle', $fac_defaultfeedtitle);
|
|
||||||
$s->put('fac_showfeeddesc', $fac_showfeeddesc);
|
|
||||||
$s->put('fac_public_tpltypes', serialize($fac_public_tpltypes));
|
|
||||||
$s->put('fac_formats', serialize($fac_formats));
|
|
||||||
|
|
||||||
$core->blog->triggerBlog();
|
dcPage::addSuccessNotice(
|
||||||
|
__('Configuration has been successfully updated.')
|
||||||
dcPage::addSuccessNotice(
|
);
|
||||||
__('Configuration has been successfully updated.')
|
http::redirect(
|
||||||
);
|
$list->getURL('module=fac&conf=1&redir=' . $list->getRedir())
|
||||||
http::redirect(
|
);
|
||||||
$list->getURL('module=fac&conf=1&redir='.
|
}
|
||||||
$list->getRedir())
|
catch (Exception $e) {
|
||||||
);
|
$core->error->add($e->getMessage());
|
||||||
}
|
}
|
||||||
catch (Exception $e) {
|
|
||||||
$core->error->add($e->getMessage());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# -- Display form --
|
# -- Display form --
|
||||||
echo '
|
echo '
|
||||||
|
|
||||||
<div class="fieldset">
|
<div class="fieldset">
|
||||||
<h4>'.__('Activation').'</h4>
|
<h4>' . __('Activation') . '</h4>
|
||||||
|
|
||||||
<p><label class="classic" for="fac_active">'.
|
<p><label class="classic" for="fac_active">' .
|
||||||
form::checkbox('fac_active', 1, $fac_active).
|
form::checkbox('fac_active', 1, $fac_active) .
|
||||||
__('Enable plugin').'</label></p>
|
__('Enable plugin') . '</label></p>
|
||||||
|
|
||||||
<h5>'.__('Show feed after content on:').'</h5>';
|
<h5>' . __('Show feed after content on:') . '</h5>';
|
||||||
|
|
||||||
foreach($types as $k => $v) {
|
foreach($types as $k => $v) {
|
||||||
echo '
|
echo '
|
||||||
<p><label class="classic" for="fac_public_tpltypes'.$k.'">'.
|
<p><label class="classic" for="fac_public_tpltypes' . $k . '">' .
|
||||||
form::checkbox(
|
form::checkbox(
|
||||||
array('fac_public_tpltypes[]', 'fac_public_tpltypes'.$k),
|
array('fac_public_tpltypes[]', 'fac_public_tpltypes' . $k),
|
||||||
$v,
|
$v,
|
||||||
in_array($v,$fac_public_tpltypes)
|
in_array($v, $fac_public_tpltypes)
|
||||||
).__($k).'</label></p>';
|
) . __($k) . '</label></p>';
|
||||||
}
|
}
|
||||||
echo '
|
echo '
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="fieldset">
|
<div class="fieldset">
|
||||||
<h4>'.__('Feed').'</h4>
|
<h4>' . __('Feed') . '</h4>
|
||||||
|
|
||||||
<p><label for="fac_defaultfeedtitle">'.__('Default title').'</label>'.
|
<p><label for="fac_defaultfeedtitle">' . __('Default title') . '</label>' .
|
||||||
form::field('fac_defaultfeedtitle', 65, 255, $fac_defaultfeedtitle).'</p>
|
form::field('fac_defaultfeedtitle', 65, 255, $fac_defaultfeedtitle) . '</p>
|
||||||
<p class="form-note">'.__('Use %T to insert title of feed.').'</p>
|
<p class="form-note">' . __('Use %T to insert title of feed.') . '</p>
|
||||||
|
|
||||||
<p><label class="classic" for="fac_showfeeddesc">'.
|
<p><label class="classic" for="fac_showfeeddesc">' .
|
||||||
form::checkbox('fac_showfeeddesc', 1, $fac_showfeeddesc).
|
form::checkbox('fac_showfeeddesc', 1, $fac_showfeeddesc) .
|
||||||
__('Show description of feed').'</label></p>
|
__('Show description of feed') . '</label></p>
|
||||||
|
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
$i = 1;
|
$i = 1;
|
||||||
foreach($fac_formats as $uid => $f) {
|
foreach($fac_formats as $uid => $f) {
|
||||||
|
if (empty($f['name'])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($f['name'])) {
|
echo '
|
||||||
continue;
|
<div class="fieldset">
|
||||||
}
|
<h4>' . sprintf(__('Format %s'), $i) . '</h4>
|
||||||
|
|
||||||
echo '
|
<div class="two-boxes"><h5>' . __('General') . '</h5>
|
||||||
<div class="fieldset">
|
|
||||||
<h4>'.sprintf(__('Format %s'), $i).'</h4>
|
|
||||||
|
|
||||||
<div class="two-boxes"><h5>'.__('General').'</h5>
|
<p><label for="fac_formats_' . $uid . '_name">' .
|
||||||
|
__('Name:') . '</label>' .
|
||||||
|
form::field(
|
||||||
|
array(
|
||||||
|
'fac_formats[' . $uid . '][name]',
|
||||||
|
'fac_formats_' . $uid . '_name'
|
||||||
|
),
|
||||||
|
20,
|
||||||
|
255,
|
||||||
|
empty($f['name']) ? '' : $f['name'],
|
||||||
|
'maximal'
|
||||||
|
) . '</p>
|
||||||
|
<p class="form-note">' .
|
||||||
|
__('In order to remove a format, leave its name empty.') .
|
||||||
|
'</p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_name">'.
|
<p><label for="fac_formats_' . $uid . '_dateformat">' .
|
||||||
__('Name:').'</label>'.
|
__('Date format:') . '</label>' .
|
||||||
form::field(
|
form::field(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][name]',
|
'fac_formats[' . $uid . '][dateformat]',
|
||||||
'fac_formats_'.$uid.'_name'
|
'fac_formats_' . $uid . '_dateformat'
|
||||||
),
|
),
|
||||||
20,
|
20,
|
||||||
255,
|
255,
|
||||||
empty($f['name']) ? '' : $f['name'],
|
empty($f['dateformat']) ? '' : $f['dateformat'],
|
||||||
'maximal'
|
'maximal'
|
||||||
).'</p>
|
) . '</p>
|
||||||
<p class="form-note">'.
|
<p class="form-note">' .
|
||||||
__('In order to remove a format, leave its name empty.').
|
__('Use date format of Dotclear or leave empty to use default date format of blog.') .
|
||||||
'</p>
|
'</p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_dateformat">'.
|
<p><label for="fac_formats_' . $uid . '_lineslimit">' .
|
||||||
__('Date format:').'</label>'.
|
__('Entries limit:') . '</label>' .
|
||||||
form::field(
|
form::field(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][dateformat]',
|
'fac_formats[' . $uid . '][lineslimit]',
|
||||||
'fac_formats_'.$uid.'_dateformat'
|
'fac_formats_' . $uid . '_lineslimit'
|
||||||
),
|
),
|
||||||
20,
|
5,
|
||||||
255,
|
4,
|
||||||
empty($f['dateformat']) ? '' : $f['dateformat'],
|
empty($f['lineslimit']) ? '' : $f['lineslimit'],
|
||||||
'maximal'
|
'maximal'
|
||||||
).'</p>
|
) . '</p>
|
||||||
<p class="form-note">'.
|
<p class="form-note">' .
|
||||||
__('Use date format of Dotclear or leave empty to use default date format of blog.').
|
__('Leave lengh empty for no limit.') .
|
||||||
'</p>
|
'</p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_lineslimit">'.
|
</div><div class="two-boxes"><h5>' . __('Title') . '</h5>
|
||||||
__('Entries limit:').'</label>'.
|
|
||||||
form::field(
|
|
||||||
array(
|
|
||||||
'fac_formats['.$uid.'][lineslimit]',
|
|
||||||
'fac_formats_'.$uid.'_lineslimit'
|
|
||||||
),
|
|
||||||
5,
|
|
||||||
4,
|
|
||||||
empty($f['lineslimit']) ? '' : $f['lineslimit'],
|
|
||||||
'maximal'
|
|
||||||
).'</p>
|
|
||||||
<p class="form-note">'.
|
|
||||||
__('Leave lengh empty for no limit.').
|
|
||||||
'</p>
|
|
||||||
|
|
||||||
</div><div class="two-boxes"><h5>'.__('Title').'</h5>
|
<p><label for="fac_formats_' . $uid . '_linestitletext">' .
|
||||||
|
__('Title format:') . '</label>' .
|
||||||
|
form::field(
|
||||||
|
array(
|
||||||
|
'fac_formats[' . $uid . '][linestitletext]',
|
||||||
|
'fac_formats_' . $uid . '_linestitletext'
|
||||||
|
),
|
||||||
|
20,
|
||||||
|
255,
|
||||||
|
empty($f['linestitletext']) ? '' : $f['linestitletext'],
|
||||||
|
'maximal'
|
||||||
|
) . '</p>
|
||||||
|
<p class="form-note">' .
|
||||||
|
__('Format can be:') .
|
||||||
|
'%D : ' . __('Date') .
|
||||||
|
', %T : ' . __('Title') .
|
||||||
|
', %A : ' . __('Author') .
|
||||||
|
', %E : ' . __('Description') .
|
||||||
|
', %C : ' . __('Content') .
|
||||||
|
'</p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linestitletext">'.
|
<p><label for="fac_formats_' . $uid . '_linestitleover">' .
|
||||||
__('Title format:').'</label>'.
|
__('Over title format:') . '</label>' .
|
||||||
form::field(
|
form::field(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][linestitletext]',
|
'fac_formats[' . $uid . '][linestitleover]',
|
||||||
'fac_formats_'.$uid.'_linestitletext'
|
'fac_formats_' . $uid . '_linestitleover'
|
||||||
),
|
),
|
||||||
20,
|
20,
|
||||||
255,
|
255,
|
||||||
empty($f['linestitletext']) ? '' : $f['linestitletext'],
|
empty($f['linestitleover']) ? '' : $f['linestitleover'],
|
||||||
'maximal'
|
'maximal'
|
||||||
).'</p>
|
) . '</p>
|
||||||
<p class="form-note">'.
|
<p class="form-note">' .
|
||||||
__('Format can be:').
|
__('Format can be:') .
|
||||||
'%D : '.__('Date').
|
'%D : ' . __('Date') .
|
||||||
', %T : '.__('Title').
|
', %T : ' . __('Title') .
|
||||||
', %A : '.__('Author').
|
', %A : ' . __('Author') .
|
||||||
', %E : '.__('Description').
|
', %E : ' . __('Description') .
|
||||||
', %C : '.__('Content').
|
', %C : ' . __('Content') .
|
||||||
'</p>
|
'</p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linestitleover">'.
|
<p><label for="fac_formats_' . $uid . '_linestitlelength">' .
|
||||||
__('Over title format:').'</label>'.
|
__('Maximum length of title:') . '</label>' .
|
||||||
form::field(
|
form::field(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][linestitleover]',
|
'fac_formats[' . $uid . '][linestitlelength]',
|
||||||
'fac_formats_'.$uid.'_linestitleover'
|
'fac_formats_' . $uid . '_linestitlelength'
|
||||||
),
|
),
|
||||||
20,
|
5,
|
||||||
255,
|
4,
|
||||||
empty($f['linestitleover']) ? '' : $f['linestitleover'],
|
empty($f['linestitlelength']) ? '' : $f['linestitlelength'],
|
||||||
'maximal'
|
'maximal'
|
||||||
).'</p>
|
) . '</p>
|
||||||
<p class="form-note">'.
|
<p class="form-note">' .
|
||||||
__('Format can be:').
|
__('Leave lengh empty for no limit.') .
|
||||||
'%D : '.__('Date').
|
'</p>
|
||||||
', %T : '.__('Title').
|
|
||||||
', %A : '.__('Author').
|
|
||||||
', %E : '.__('Description').
|
|
||||||
', %C : '.__('Content').
|
|
||||||
'</p>
|
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linestitlelength">'.
|
</div><div class="two-boxes"><h5>' . __('Description') . '</h5>
|
||||||
__('Maximum length of title:').'</label>'.
|
|
||||||
form::field(
|
|
||||||
array(
|
|
||||||
'fac_formats['.$uid.'][linestitlelength]',
|
|
||||||
'fac_formats_'.$uid.'_linestitlelength'
|
|
||||||
),
|
|
||||||
5,
|
|
||||||
4,
|
|
||||||
empty($f['linestitlelength']) ? '' : $f['linestitlelength'],
|
|
||||||
'maximal'
|
|
||||||
).'</p>
|
|
||||||
<p class="form-note">'.
|
|
||||||
__('Leave lengh empty for no limit.').
|
|
||||||
'</p>
|
|
||||||
|
|
||||||
</div><div class="two-boxes"><h5>'.__('Description').'</h5>
|
<p><label for="fac_formats_' . $uid . '_showlinesdescription">' .
|
||||||
|
form::checkbox(
|
||||||
|
array(
|
||||||
|
'fac_formats[' . $uid . '][showlinesdescription]',
|
||||||
|
'fac_formats_' . $uid . '_showlinesdescription'
|
||||||
|
),
|
||||||
|
1,
|
||||||
|
!empty($f['showlinesdescription'])
|
||||||
|
) .
|
||||||
|
__('Show description of entries') . '</label></p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_showlinesdescription">'.
|
<p><label for="fac_formats_' . $uid . '_linesdescriptionnohtml">' .
|
||||||
form::checkbox(
|
form::checkbox(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][showlinesdescription]',
|
'fac_formats[' . $uid . '][linesdescriptionnohtml]',
|
||||||
'fac_formats_'.$uid.'_showlinesdescription'
|
'fac_formats_' . $uid . '_linesdescriptionnohtml'
|
||||||
),
|
),
|
||||||
1,
|
1,
|
||||||
!empty($f['showlinesdescription'])
|
!empty($f['linesdescriptionnohtml'])
|
||||||
).
|
).
|
||||||
__('Show description of entries').'</label></p>
|
__('Remove html of description') . '</label></p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linesdescriptionnohtml">'.
|
<p><label for="fac_formats_' . $uid . '_linesdescriptionlength">' .
|
||||||
form::checkbox(
|
__('Maximum length of description:') . '</label>' .
|
||||||
array(
|
form::field(
|
||||||
'fac_formats['.$uid.'][linesdescriptionnohtml]',
|
array(
|
||||||
'fac_formats_'.$uid.'_linesdescriptionnohtml'
|
'fac_formats[' . $uid . '][linesdescriptionlength]',
|
||||||
),
|
'fac_formats_' . $uid . '_linesdescriptionlength'
|
||||||
1,
|
),
|
||||||
!empty($f['linesdescriptionnohtml'])
|
5,
|
||||||
).
|
4,
|
||||||
__('Remove html of description').'</label></p>
|
empty($f['linesdescriptionlength']) ? '' : $f['linesdescriptionlength'],
|
||||||
|
'maximal'
|
||||||
|
) . '</p>
|
||||||
|
<p class="form-note">' .
|
||||||
|
__('Leave lengh empty for no limit.') .
|
||||||
|
'</p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linesdescriptionlength">'.
|
</div><div class="two-boxes"><h5>' . __('Content') . '</h5>
|
||||||
__('Maximum length of description:').'</label>'.
|
|
||||||
form::field(
|
|
||||||
array(
|
|
||||||
'fac_formats['.$uid.'][linesdescriptionlength]',
|
|
||||||
'fac_formats_'.$uid.'_linesdescriptionlength'
|
|
||||||
),
|
|
||||||
5,
|
|
||||||
4,
|
|
||||||
empty($f['linesdescriptionlength']) ? '' : $f['linesdescriptionlength'],
|
|
||||||
'maximal'
|
|
||||||
).'</p>
|
|
||||||
<p class="form-note">'.
|
|
||||||
__('Leave lengh empty for no limit.').
|
|
||||||
'</p>
|
|
||||||
|
|
||||||
</div><div class="two-boxes"><h5>'.__('Content').'</h5>
|
<p><label for="fac_formats_' . $uid . '_showlinescontent">' .
|
||||||
|
form::checkbox(
|
||||||
|
array(
|
||||||
|
'fac_formats[' . $uid . '][showlinescontent]',
|
||||||
|
'fac_formats_' . $uid . '_showlinescontent'
|
||||||
|
),
|
||||||
|
1,
|
||||||
|
!empty($f['showlinescontent'])
|
||||||
|
) .
|
||||||
|
__('Show content of entries') . '</label></p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_showlinescontent">'.
|
<p><label for="fac_formats_' . $uid . '_linescontentnohtml">' .
|
||||||
form::checkbox(
|
form::checkbox(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][showlinescontent]',
|
'fac_formats[' . $uid . '][linescontentnohtml]',
|
||||||
'fac_formats_'.$uid.'_showlinescontent'
|
'fac_formats_' . $uid . '_linescontentnohtml'
|
||||||
),
|
),
|
||||||
1,
|
1,
|
||||||
!empty($f['showlinescontent'])
|
!empty($f['linescontentnohtml'])
|
||||||
).
|
) .
|
||||||
__('Show content of entries').'</label></p>
|
__('Remove html of content') . '</label></p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linescontentnohtml">'.
|
<p><label for="fac_formats_' . $uid . '_linescontentlength">' .
|
||||||
form::checkbox(
|
__('Maximum length of content:') . '</label>' .
|
||||||
array(
|
form::field(
|
||||||
'fac_formats['.$uid.'][linescontentnohtml]',
|
array(
|
||||||
'fac_formats_'.$uid.'_linescontentnohtml'
|
'fac_formats[' . $uid . '][linescontentlength]',
|
||||||
),
|
'fac_formats_' . $uid . '_linescontentlength'
|
||||||
1,
|
),
|
||||||
!empty($f['linescontentnohtml'])
|
5,
|
||||||
).
|
4,
|
||||||
__('Remove html of content').'</label></p>
|
empty($f['linescontentlength']) ? '' : $f['linescontentlength'],
|
||||||
|
'maximal'
|
||||||
|
) . '</p>
|
||||||
|
<p class="form-note">' .
|
||||||
|
__('Leave lengh empty for no limit.') .
|
||||||
|
'</p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linescontentlength">'.
|
</div>
|
||||||
__('Maximum length of content:').'</label>'.
|
|
||||||
form::field(
|
|
||||||
array(
|
|
||||||
'fac_formats['.$uid.'][linescontentlength]',
|
|
||||||
'fac_formats_'.$uid.'_linescontentlength'
|
|
||||||
),
|
|
||||||
5,
|
|
||||||
4,
|
|
||||||
empty($f['linescontentlength']) ? '' : $f['linescontentlength'],
|
|
||||||
'maximal'
|
|
||||||
).'</p>
|
|
||||||
<p class="form-note">'.
|
|
||||||
__('Leave lengh empty for no limit.').
|
|
||||||
'</p>
|
|
||||||
|
|
||||||
</div>
|
</div>';
|
||||||
|
|
||||||
</div>';
|
$i++;
|
||||||
|
|
||||||
$i++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$uid = uniqid();
|
$uid = uniqid();
|
||||||
echo '
|
echo '
|
||||||
<div class="fieldset">
|
<div class="fieldset">
|
||||||
<h4>'.__('New format').'</h4>
|
<h4>' . __('New format') . '</h4>
|
||||||
|
|
||||||
<div class="two-boxes"><h5>'.__('General').'</h5>
|
<div class="two-boxes"><h5>' . __('General') . '</h5>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_name">'.
|
<p><label for="fac_formats_' . $uid . '_name">' .
|
||||||
__('Name:').'</label>'.
|
__('Name:') . '</label>' .
|
||||||
form::field(
|
form::field(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][name]',
|
'fac_formats[' . $uid . '][name]',
|
||||||
'fac_formats_'.$uid.'_name'
|
'fac_formats_' . $uid . '_name'
|
||||||
),
|
),
|
||||||
20,
|
20,
|
||||||
255,
|
255,
|
||||||
'',
|
'',
|
||||||
'maximal'
|
'maximal'
|
||||||
).'</p>
|
) . '</p>
|
||||||
<p class="form-note">'.
|
<p class="form-note">'.
|
||||||
__('In order to remove a format, leave its name empty.').
|
__('In order to remove a format, leave its name empty.') .
|
||||||
'</p>
|
'</p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_dateformat">'.
|
<p><label for="fac_formats_' . $uid . '_dateformat">' .
|
||||||
__('Date format:').'</label>'.
|
__('Date format:') . '</label>' .
|
||||||
form::field(
|
form::field(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][dateformat]',
|
'fac_formats[' . $uid . '][dateformat]',
|
||||||
'fac_formats_'.$uid.'_dateformat'
|
'fac_formats_' . $uid . '_dateformat'
|
||||||
),
|
),
|
||||||
20,
|
20,
|
||||||
255,
|
255,
|
||||||
'',
|
'',
|
||||||
'maximal'
|
'maximal'
|
||||||
).'</p>
|
) . '</p>
|
||||||
<p class="form-note">'.
|
<p class="form-note">' .
|
||||||
__('Use date format of Dotclear or leave empty to use default date format of blog.').
|
__('Use date format of Dotclear or leave empty to use default date format of blog.') .
|
||||||
'</p>
|
'</p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_lineslimit">'.
|
<p><label for="fac_formats_' . $uid . '_lineslimit">' .
|
||||||
__('Entries limit:').'</label>'.
|
__('Entries limit:') . '</label>' .
|
||||||
form::field(
|
form::field(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][lineslimit]',
|
'fac_formats[' . $uid . '][lineslimit]',
|
||||||
'fac_formats_'.$uid.'_lineslimit'
|
'fac_formats_' . $uid . '_lineslimit'
|
||||||
),
|
),
|
||||||
5,
|
5,
|
||||||
4,
|
4,
|
||||||
5,
|
5,
|
||||||
'maximal'
|
'maximal'
|
||||||
).'</p>
|
) . '</p>
|
||||||
<p class="form-note">'.
|
<p class="form-note">' .
|
||||||
__('Leave lengh empty for no limit.').
|
__('Leave lengh empty for no limit.') .
|
||||||
'</p>
|
'</p>
|
||||||
|
|
||||||
</div><div class="two-boxes"><h5>'.__('Title').'</h5>
|
</div><div class="two-boxes"><h5>' . __('Title') . '</h5>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linestitletext">'.
|
<p><label for="fac_formats_' . $uid . '_linestitletext">' .
|
||||||
__('Title format:').'</label>'.
|
__('Title format:') . '</label>' .
|
||||||
form::field(
|
form::field(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][linestitletext]',
|
'fac_formats[' . $uid . '][linestitletext]',
|
||||||
'fac_formats_'.$uid.'_linestitletext'
|
'fac_formats_' . $uid . '_linestitletext'
|
||||||
),
|
),
|
||||||
20,
|
20,
|
||||||
255,
|
255,
|
||||||
'%T',
|
'%T',
|
||||||
'maximal'
|
'maximal'
|
||||||
).'</p>
|
) . '</p>
|
||||||
<p class="form-note">'.
|
<p class="form-note">' .
|
||||||
__('Format can be:').
|
__('Format can be:') .
|
||||||
'%D : '.__('Date').
|
'%D : ' . __('Date') .
|
||||||
', %T : '.__('Title').
|
', %T : ' . __('Title') .
|
||||||
', %A : '.__('Author').
|
', %A : ' . __('Author') .
|
||||||
', %E : '.__('Description').
|
', %E : ' . __('Description') .
|
||||||
', %C : '.__('Content').
|
', %C : ' . __('Content') .
|
||||||
'</p>
|
'</p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linestitleover">'.
|
<p><label for="fac_formats_' . $uid . '_linestitleover">' .
|
||||||
__('Over title format:').'</label>'.
|
__('Over title format:') . '</label>' .
|
||||||
form::field(
|
form::field(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][linestitleover]',
|
'fac_formats[' . $uid . '][linestitleover]',
|
||||||
'fac_formats_'.$uid.'_linestitleover'
|
'fac_formats_' . $uid . '_linestitleover'
|
||||||
),
|
),
|
||||||
20,
|
20,
|
||||||
255,
|
255,
|
||||||
'%D',
|
'%D',
|
||||||
'maximal'
|
'maximal'
|
||||||
).'</p>
|
) . '</p>
|
||||||
<p class="form-note">'.
|
<p class="form-note">' .
|
||||||
__('Format can be:').
|
__('Format can be:') .
|
||||||
'%D : '.__('Date').
|
'%D : ' . __('Date') .
|
||||||
', %T : '.__('Title').
|
', %T : ' . __('Title') .
|
||||||
', %A : '.__('Author').
|
', %A : ' . __('Author') .
|
||||||
', %E : '.__('Description').
|
', %E : ' . __('Description') .
|
||||||
', %C : '.__('Content').
|
', %C : ' . __('Content') .
|
||||||
'</p>
|
'</p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linestitlelength">'.
|
<p><label for="fac_formats_' . $uid . '_linestitlelength">' .
|
||||||
__('Maximum length of title:').'</label>'.
|
__('Maximum length of title:') . '</label>' .
|
||||||
form::field(
|
form::field(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][linestitlelength]',
|
'fac_formats[' . $uid . '][linestitlelength]',
|
||||||
'fac_formats_'.$uid.'_linestitlelength'
|
'fac_formats_' . $uid . '_linestitlelength'
|
||||||
),
|
),
|
||||||
5,
|
5,
|
||||||
4,
|
4,
|
||||||
150,
|
150,
|
||||||
'maximal'
|
'maximal'
|
||||||
).'</p>
|
) . '</p>
|
||||||
<p class="form-note">'.
|
<p class="form-note">' .
|
||||||
__('Leave lengh empty for no limit.').
|
__('Leave lengh empty for no limit.') .
|
||||||
'</p>
|
'</p>
|
||||||
|
|
||||||
</div><div class="two-boxes"><h5>'.__('Description').'</h5>
|
</div><div class="two-boxes"><h5>' . __('Description') . '</h5>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_showlinesdescription">'.
|
<p><label for="fac_formats_' . $uid . '_showlinesdescription">' .
|
||||||
form::checkbox(
|
form::checkbox(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][showlinesdescription]',
|
'fac_formats[' . $uid . '][showlinesdescription]',
|
||||||
'fac_formats_'.$uid.'_showlinesdescription'
|
'fac_formats_' . $uid . '_showlinesdescription'
|
||||||
),
|
),
|
||||||
1,
|
1,
|
||||||
0
|
0
|
||||||
).
|
) .
|
||||||
__('Show description of entries').'</label></p>
|
__('Show description of entries') . '</label></p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linesdescriptionnohtml">'.
|
<p><label for="fac_formats_' . $uid . '_linesdescriptionnohtml">' .
|
||||||
form::checkbox(
|
form::checkbox(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][linesdescriptionnohtml]',
|
'fac_formats[' . $uid . '][linesdescriptionnohtml]',
|
||||||
'fac_formats_'.$uid.'_linesdescriptionnohtml'
|
'fac_formats_' . $uid . '_linesdescriptionnohtml'
|
||||||
),
|
),
|
||||||
1,
|
1,
|
||||||
1
|
1
|
||||||
).
|
) .
|
||||||
__('Remove html of description').'</label></p>
|
__('Remove html of description') . '</label></p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linesdescriptionlength">'.
|
<p><label for="fac_formats_' . $uid . '_linesdescriptionlength">' .
|
||||||
__('Maximum length of description:').'</label>'.
|
__('Maximum length of description:') . '</label>' .
|
||||||
form::field(
|
form::field(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][linesdescriptionlength]',
|
'fac_formats[' . $uid . '][linesdescriptionlength]',
|
||||||
'fac_formats_'.$uid.'_linesdescriptionlength'
|
'fac_formats_' . $uid . '_linesdescriptionlength'
|
||||||
),
|
),
|
||||||
5,
|
5,
|
||||||
4,
|
4,
|
||||||
350,
|
350,
|
||||||
'maximal'
|
'maximal'
|
||||||
).'</p>
|
) . '</p>
|
||||||
<p class="form-note">'.
|
<p class="form-note">' .
|
||||||
__('Leave lengh empty for no limit.').
|
__('Leave lengh empty for no limit.') .
|
||||||
'</p>
|
'</p>
|
||||||
|
|
||||||
</div><div class="two-boxes"><h5>'.__('Content').'</h5>
|
</div><div class="two-boxes"><h5>' . __('Content') . '</h5>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_showlinescontent">'.
|
<p><label for="fac_formats_' . $uid . '_showlinescontent">' .
|
||||||
form::checkbox(
|
form::checkbox(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][showlinescontent]',
|
'fac_formats[' . $uid . '][showlinescontent]',
|
||||||
'fac_formats_'.$uid.'_showlinescontent'
|
'fac_formats_' . $uid . '_showlinescontent'
|
||||||
),
|
),
|
||||||
1,
|
1,
|
||||||
0
|
0
|
||||||
).
|
) .
|
||||||
__('Show content of entries').'</label></p>
|
__('Show content of entries') . '</label></p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linescontentnohtml">'.
|
<p><label for="fac_formats_' . $uid . '_linescontentnohtml">' .
|
||||||
form::checkbox(
|
form::checkbox(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][linescontentnohtml]',
|
'fac_formats[' . $uid . '][linescontentnohtml]',
|
||||||
'fac_formats_'.$uid.'_linescontentnohtml'
|
'fac_formats_' . $uid . '_linescontentnohtml'
|
||||||
),
|
),
|
||||||
1,
|
1,
|
||||||
1
|
1
|
||||||
).
|
) .
|
||||||
__('Remove html of content').'</label></p>
|
__('Remove html of content') . '</label></p>
|
||||||
|
|
||||||
<p><label for="fac_formats_'.$uid.'_linescontentlength">'.
|
<p><label for="fac_formats_' . $uid . '_linescontentlength">' .
|
||||||
__('Maximum length of content:').'</label>'.
|
__('Maximum length of content:') . '</label>' .
|
||||||
form::field(
|
form::field(
|
||||||
array(
|
array(
|
||||||
'fac_formats['.$uid.'][linescontentlength]',
|
'fac_formats[' . $uid . '][linescontentlength]',
|
||||||
'fac_formats_'.$uid.'_linescontentlength'
|
'fac_formats_' . $uid . '_linescontentlength'
|
||||||
),
|
),
|
||||||
5,
|
5,
|
||||||
4,
|
4,
|
||||||
350,
|
350,
|
||||||
'maximal'
|
'maximal'
|
||||||
).'</p>
|
) . '</p>
|
||||||
<p class="form-note">'.
|
<p class="form-note">' .
|
||||||
__('Leave lengh empty for no limit.').
|
__('Leave lengh empty for no limit.') .
|
||||||
'</p>
|
'</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -538,29 +531,29 @@ __('Leave lengh empty for no limit.').
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="fieldset">
|
<div class="fieldset">
|
||||||
<h4>'.__('Informations').'</h4>
|
<h4>' . __('Informations') . '</h4>
|
||||||
|
|
||||||
<div class="two-boxes">
|
<div class="two-boxes">
|
||||||
|
|
||||||
<h5>'.__('Theme').'</h5>
|
<h5>' . __('Theme') . '</h5>
|
||||||
<p>'.
|
<p>' .
|
||||||
__('Theme must have behavoir publicEntryAfterContent.').' '.
|
__('Theme must have behavoir publicEntryAfterContent.') . ' ' .
|
||||||
__('To add feed to an entry edit this entry and put in sidebar the url of the feed and select a format.').
|
__('To add feed to an entry edit this entry and put in sidebar the url of the feed and select a format.') .
|
||||||
'</p>
|
'</p>
|
||||||
|
|
||||||
</div><div class="two-boxes">
|
</div><div class="two-boxes">
|
||||||
|
|
||||||
<h5>'.__('Structure').'</h5>
|
<h5>' . __('Structure') . '</h5>
|
||||||
<pre>'.html::escapeHTML('
|
<pre>' . html::escapeHTML('
|
||||||
<div class="post-fac">
|
<div class="post-fac">
|
||||||
<h3>'.__('Title of feed').'</h3>
|
<h3>' . __('Title of feed') . '</h3>
|
||||||
<p>'.__('Description of feed').'</p>
|
<p>' . __('Description of feed') . '</p>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>'.__('Title of entry').'</dt>
|
<dt>' . __('Title of entry') . '</dt>
|
||||||
<dd>'.__('Description of entry').'</dd>
|
<dd>' . __('Description of entry') . '</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
').'</pre>
|
') . '</pre>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
33
_define.php
33
_define.php
|
@ -3,8 +3,7 @@
|
||||||
#
|
#
|
||||||
# This file is part of fac, a plugin for Dotclear 2.
|
# This file is part of fac, a plugin for Dotclear 2.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2013 Jean-Christian Denis and contributors
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
# contact@jcdenis.fr http://jcd.lv
|
|
||||||
#
|
#
|
||||||
# Licensed under the GPL version 2.0 license.
|
# Licensed under the GPL version 2.0 license.
|
||||||
# A copy of this license is available in LICENSE file or at
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
@ -13,25 +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 */
|
'fac',
|
||||||
"fac",
|
'Add RSS/Atom feeds after entries content',
|
||||||
/* Description*/
|
'Jean-Christian Denis and Contributors',
|
||||||
"Add RSS/Atom feeds after entries content",
|
'0.8',
|
||||||
/* Author */
|
[
|
||||||
"Jean-Christian Denis",
|
'permissions' => 'usage,contentadmin',
|
||||||
/* Version */
|
'type' => 'plugin',
|
||||||
'0.7',
|
'dc_min' => '2.18',
|
||||||
/* Properies */
|
'support' => 'https://github.com/JcDenis/fac',
|
||||||
array(
|
'details' => 'https://plugins.dotaddict.org/dc2/details/fac'
|
||||||
'permissions' => 'usage,contentadmin',
|
]
|
||||||
'type' => 'plugin',
|
|
||||||
'dc_min' => '2.6',
|
|
||||||
'support' => 'http://jcd.lv/q=fac',
|
|
||||||
'details' => 'http://plugins.dotaddict.org/dc2/details/fac'
|
|
||||||
)
|
|
||||||
);
|
);
|
184
_install.php
184
_install.php
|
@ -3,8 +3,7 @@
|
||||||
#
|
#
|
||||||
# This file is part of fac, a plugin for Dotclear 2.
|
# This file is part of fac, a plugin for Dotclear 2.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2013 Jean-Christian Denis and contributors
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
# contact@jcdenis.fr http://jcd.lv
|
|
||||||
#
|
#
|
||||||
# Licensed under the GPL version 2.0 license.
|
# Licensed under the GPL version 2.0 license.
|
||||||
# A copy of this license is available in LICENSE file or at
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
@ -13,8 +12,7 @@
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
# -- END LICENSE BLOCK ------------------------------------
|
||||||
|
|
||||||
if (!defined('DC_CONTEXT_ADMIN')) {
|
if (!defined('DC_CONTEXT_ADMIN')) {
|
||||||
|
return null;
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# -- Module specs --
|
# -- Module specs --
|
||||||
|
@ -22,107 +20,107 @@ if (!defined('DC_CONTEXT_ADMIN')) {
|
||||||
$dc_min = '2.6';
|
$dc_min = '2.6';
|
||||||
$mod_id = 'fac';
|
$mod_id = 'fac';
|
||||||
$mod_conf = array(
|
$mod_conf = array(
|
||||||
array(
|
array(
|
||||||
'fac_active',
|
'fac_active',
|
||||||
'Enabled fac plugin',
|
'Enabled fac plugin',
|
||||||
false,
|
false,
|
||||||
'boolean'
|
'boolean'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'fac_public_tpltypes',
|
'fac_public_tpltypes',
|
||||||
'List of templates types which used fac',
|
'List of templates types which used fac',
|
||||||
serialize(array('post', 'tag', 'archive')),
|
serialize(array('post', 'tag', 'archive')),
|
||||||
'string'
|
'string'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'fac_formats',
|
'fac_formats',
|
||||||
'Formats of feeds contents',
|
'Formats of feeds contents',
|
||||||
serialize(array(
|
serialize(array(
|
||||||
uniqid() => array(
|
uniqid() => array(
|
||||||
'name' => 'default',
|
'name' => 'default',
|
||||||
'dateformat' => '',
|
'dateformat' => '',
|
||||||
'lineslimit' => '5',
|
'lineslimit' => '5',
|
||||||
'linestitletext' => '%T',
|
'linestitletext' => '%T',
|
||||||
'linestitleover' => '%D',
|
'linestitleover' => '%D',
|
||||||
'linestitlelength' => '150',
|
'linestitlelength' => '150',
|
||||||
'showlinesdescription' => '0',
|
'showlinesdescription' => '0',
|
||||||
'linesdescriptionlength' => '350',
|
'linesdescriptionlength' => '350',
|
||||||
'linesdescriptionnohtml' => '1',
|
'linesdescriptionnohtml' => '1',
|
||||||
'showlinescontent' => '0',
|
'showlinescontent' => '0',
|
||||||
'linescontentlength' => '350',
|
'linescontentlength' => '350',
|
||||||
'linescontentnohtml' => '1'
|
'linescontentnohtml' => '1'
|
||||||
),
|
),
|
||||||
uniqid() => array(
|
uniqid() => array(
|
||||||
'name' => 'full',
|
'name' => 'full',
|
||||||
'dateformat' => '',
|
'dateformat' => '',
|
||||||
'lineslimit' => '20',
|
'lineslimit' => '20',
|
||||||
'linestitletext' => '%T',
|
'linestitletext' => '%T',
|
||||||
'linestitleover' => '%D - %E',
|
'linestitleover' => '%D - %E',
|
||||||
'linestitlelength' => '',
|
'linestitlelength' => '',
|
||||||
'showlinesdescription' => '1',
|
'showlinesdescription' => '1',
|
||||||
'linesdescriptionlength' => '',
|
'linesdescriptionlength' => '',
|
||||||
'linesdescriptionnohtml' => '1',
|
'linesdescriptionnohtml' => '1',
|
||||||
'showlinescontent' => '1',
|
'showlinescontent' => '1',
|
||||||
'linescontentlength' => '',
|
'linescontentlength' => '',
|
||||||
'linescontentnohtml' => '1'
|
'linescontentnohtml' => '1'
|
||||||
)
|
)
|
||||||
)),
|
)),
|
||||||
'string'
|
'string'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'fac_defaultfeedtitle',
|
'fac_defaultfeedtitle',
|
||||||
'Default title of feed',
|
'Default title of feed',
|
||||||
'%T',
|
'%T',
|
||||||
'string'
|
'string'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'fac_showfeeddesc',
|
'fac_showfeeddesc',
|
||||||
'Show description of feed',
|
'Show description of feed',
|
||||||
1,
|
1,
|
||||||
'boolean'
|
'boolean'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
# -- Nothing to change below --
|
# -- Nothing to change below --
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
# Check module version
|
# Check module version
|
||||||
if (version_compare(
|
if (version_compare(
|
||||||
$core->getVersion($mod_id),
|
$core->getVersion($mod_id),
|
||||||
$core->plugins->moduleInfo($mod_id, 'version'),
|
$core->plugins->moduleInfo($mod_id, 'version'),
|
||||||
'>='
|
'>='
|
||||||
)) {
|
)) {
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
# 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)) {
|
||||||
throw new Exception(sprintf(
|
throw new Exception(sprintf(
|
||||||
'%s requires Dotclear %s', $mod_id, $dc_min
|
'%s requires Dotclear %s', $mod_id, $dc_min
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set module settings
|
# Set module settings
|
||||||
$core->blog->settings->addNamespace($mod_id);
|
$core->blog->settings->addNamespace($mod_id);
|
||||||
foreach($mod_conf as $v) {
|
foreach($mod_conf as $v) {
|
||||||
$core->blog->settings->{$mod_id}->put(
|
$core->blog->settings->{$mod_id}->put(
|
||||||
$v[0], $v[2], $v[3], $v[1], false, true
|
$v[0], $v[2], $v[3], $v[1], false, true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set module version
|
# Set module version
|
||||||
$core->setVersion(
|
$core->setVersion(
|
||||||
$mod_id,
|
$mod_id,
|
||||||
$core->plugins->moduleInfo($mod_id, 'version')
|
$core->plugins->moduleInfo($mod_id, 'version')
|
||||||
);
|
);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch (Exception $e) {
|
catch (Exception $e) {
|
||||||
$core->error->add($e->getMessage());
|
$core->error->add($e->getMessage());
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
423
_public.php
423
_public.php
|
@ -3,8 +3,7 @@
|
||||||
#
|
#
|
||||||
# This file is part of fac, a plugin for Dotclear 2.
|
# This file is part of fac, a plugin for Dotclear 2.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2013 Jean-Christian Denis and contributors
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
# contact@jcdenis.fr http://jcd.lv
|
|
||||||
#
|
#
|
||||||
# Licensed under the GPL version 2.0 license.
|
# Licensed under the GPL version 2.0 license.
|
||||||
# A copy of this license is available in LICENSE file or at
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
@ -13,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(
|
||||||
'publicEntryAfterContent',
|
'publicEntryAfterContent',
|
||||||
array('facPublic', 'publicEntryAfterContent')
|
array('facPublic', 'publicEntryAfterContent')
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -29,237 +27,226 @@ $core->addBehavior(
|
||||||
*/
|
*/
|
||||||
class facPublic
|
class facPublic
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Add feed after entry
|
* Add feed after entry
|
||||||
*
|
*
|
||||||
* @param dcCore $core dcCore instance
|
* @param dcCore $core dcCore instance
|
||||||
* @param context $_ctx context instance
|
* @param context $_ctx context instance
|
||||||
*/
|
*/
|
||||||
public static function publicEntryAfterContent(dcCore $core, context $_ctx)
|
public static function publicEntryAfterContent(dcCore $core, context $_ctx)
|
||||||
{
|
{
|
||||||
$core->blog->settings->addNamespace('fac');
|
$core->blog->settings->addNamespace('fac');
|
||||||
|
|
||||||
# Not active or not a post
|
# Not active or not a post
|
||||||
if (!$core->blog->settings->fac->fac_active
|
if (!$core->blog->settings->fac->fac_active
|
||||||
|| !$_ctx->exists('posts')
|
|| !$_ctx->exists('posts')) {
|
||||||
) {
|
return null;
|
||||||
return null;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
# Not in page to show
|
# Not in page to show
|
||||||
$types = @unserialize($core->blog->settings->fac->fac_public_tpltypes);
|
$types = @unserialize($core->blog->settings->fac->fac_public_tpltypes);
|
||||||
if (!is_array($types)
|
if (!is_array($types)
|
||||||
|| !in_array($core->url->type,$types)
|
|| !in_array($core->url->type,$types)) {
|
||||||
) {
|
return null;
|
||||||
return null;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
# Get related feed
|
# Get related feed
|
||||||
$fac_url = $core->meta->getMetadata(array(
|
$fac_url = $core->meta->getMetadata([
|
||||||
'meta_type' => 'fac',
|
'meta_type' => 'fac',
|
||||||
'post_id' => $_ctx->posts->post_id,
|
'post_id' => $_ctx->posts->post_id,
|
||||||
'limit' => 1
|
'limit' => 1
|
||||||
));
|
]);
|
||||||
if ($fac_url->isEmpty()) {
|
if ($fac_url->isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
# Get related format
|
||||||
}
|
$fac_format = $core->meta->getMetadata([
|
||||||
|
'meta_type' => 'facformat',
|
||||||
|
'post_id' => $_ctx->posts->post_id,
|
||||||
|
'limit' => 1
|
||||||
|
]);
|
||||||
|
if ($fac_format->isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
# Get related format
|
# Get format info
|
||||||
$fac_format = $core->meta->getMetadata(array(
|
$default_format = array(
|
||||||
'meta_type' => 'facformat',
|
'name' => 'default',
|
||||||
'post_id' => $_ctx->posts->post_id,
|
'dateformat' => '',
|
||||||
'limit' => 1
|
'lineslimit' => '5',
|
||||||
));
|
'linestitletext' => '%T',
|
||||||
if ($fac_format->isEmpty()) {
|
'linestitleover' => '%D',
|
||||||
|
'linestitlelength' => '150',
|
||||||
|
'showlinesdescription' => '0',
|
||||||
|
'linesdescriptionlength' => '350',
|
||||||
|
'linesdescriptionnohtml' => '1',
|
||||||
|
'showlinescontent' => '0',
|
||||||
|
'linescontentlength' => '350',
|
||||||
|
'linescontentnohtml' => '1'
|
||||||
|
);
|
||||||
|
|
||||||
return null;
|
$formats = @unserialize($core->blog->settings->fac->fac_formats);
|
||||||
}
|
if (empty($formats)
|
||||||
|
|| !is_array($formats)
|
||||||
|
|| !isset($formats[$fac_format->meta_id])) {
|
||||||
|
$format = $default_format;
|
||||||
|
} else {
|
||||||
|
$format = array_merge(
|
||||||
|
$default_format,
|
||||||
|
$formats[$fac_format->meta_id]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
# Get format info
|
# Read feed url
|
||||||
$default_format = array(
|
$cache = is_dir(DC_TPL_CACHE . '/fac') ? DC_TPL_CACHE . '/fac' : null;
|
||||||
'name' => 'default',
|
try {
|
||||||
'dateformat' => '',
|
$feed = feedReader::quickParse($fac_url->meta_id, $cache);
|
||||||
'lineslimit' => '5',
|
} catch (Exception $e) {
|
||||||
'linestitletext' => '%T',
|
$feed = null;
|
||||||
'linestitleover' => '%D',
|
}
|
||||||
'linestitlelength' => '150',
|
|
||||||
'showlinesdescription' => '0',
|
|
||||||
'linesdescriptionlength' => '350',
|
|
||||||
'linesdescriptionnohtml' => '1',
|
|
||||||
'showlinescontent' => '0',
|
|
||||||
'linescontentlength' => '350',
|
|
||||||
'linescontentnohtml' => '1'
|
|
||||||
);
|
|
||||||
|
|
||||||
$formats = @unserialize($core->blog->settings->fac->fac_formats);
|
# No entries
|
||||||
if (empty($formats)
|
if (!$feed) {
|
||||||
|| !is_array($formats)
|
return null;
|
||||||
|| !isset($formats[$fac_format->meta_id])
|
}
|
||||||
) {
|
|
||||||
$format = $default_format;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$format = array_merge(
|
|
||||||
$default_format,
|
|
||||||
$formats[$fac_format->meta_id]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
# Read feed url
|
# Feed title
|
||||||
$cache = is_dir(DC_TPL_CACHE.'/fac') ? DC_TPL_CACHE.'/fac' : null;
|
$feedtitle = '';
|
||||||
try {
|
if ('' != $core->blog->settings->fac->fac_defaultfeedtitle) {
|
||||||
$feed = feedReader::quickParse($fac_url->meta_id,$cache);
|
$feedtitle = '<h3>' . html::escapeHTML(empty($feed->title) ?
|
||||||
}
|
str_replace(
|
||||||
catch (Exception $e) {
|
'%T',
|
||||||
$feed = null;
|
__('a related feed'),
|
||||||
}
|
$core->blog->settings->fac->fac_defaultfeedtitle
|
||||||
|
) :
|
||||||
|
str_replace(
|
||||||
|
'%T',
|
||||||
|
$feed->title,
|
||||||
|
$core->blog->settings->fac->fac_defaultfeedtitle
|
||||||
|
)
|
||||||
|
) . '</h3>';
|
||||||
|
}
|
||||||
|
|
||||||
# No entries
|
# Feed desc
|
||||||
if (!$feed) {
|
$feeddesc = '';
|
||||||
|
if ($core->blog->settings->fac->fac_showfeeddesc
|
||||||
|
&& '' != $feed->description) {
|
||||||
|
$feeddesc =
|
||||||
|
'<p>' . context::global_filter($feed->description, 1, 1, 0, 0, 0) . '</p>';
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
# Date format
|
||||||
}
|
$dateformat = '' != $format['dateformat'] ?
|
||||||
|
$format['dateformat'] :
|
||||||
|
$core->blog->settings->system->date_format . ',' . $core->blog->settings->system->time_format;
|
||||||
|
|
||||||
# Feed title
|
# Enrties limit
|
||||||
$feedtitle = '';
|
$entrieslimit = abs((integer) $format['lineslimit']);
|
||||||
if ('' != $core->blog->settings->fac->fac_defaultfeedtitle) {
|
$uselimit = $entrieslimit > 0 ? true : false;
|
||||||
$feedtitle = '<h3>'.html::escapeHTML(empty($feed->title) ?
|
|
||||||
str_replace(
|
|
||||||
'%T',
|
|
||||||
__('a related feed'),
|
|
||||||
$core->blog->settings->fac->fac_defaultfeedtitle
|
|
||||||
) :
|
|
||||||
str_replace(
|
|
||||||
'%T',
|
|
||||||
$feed->title,
|
|
||||||
$core->blog->settings->fac->fac_defaultfeedtitle
|
|
||||||
)
|
|
||||||
).'</h3>';
|
|
||||||
}
|
|
||||||
|
|
||||||
# Feed desc
|
echo
|
||||||
$feeddesc = '';
|
'<div class="post-fac">' .
|
||||||
if ($core->blog->settings->fac->fac_showfeeddesc
|
$feedtitle . $feeddesc .
|
||||||
&& '' != $feed->description
|
'<dl>';
|
||||||
) {
|
|
||||||
$feeddesc =
|
|
||||||
'<p>'.context::global_filter($feed->description,1,1,0,0,0).'</p>';
|
|
||||||
}
|
|
||||||
|
|
||||||
# Date format
|
$i = 0;
|
||||||
$dateformat = '' != $format['dateformat'] ?
|
foreach ($feed->items as $item) {
|
||||||
$format['dateformat'] :
|
|
||||||
$core->blog->settings->system->date_format.','.$core->blog->settings->system->time_format;
|
|
||||||
|
|
||||||
# Enrties limit
|
# Format date
|
||||||
$entrieslimit = abs((integer) $format['lineslimit']);
|
$date = dt::dt2str($dateformat, $item->pubdate);
|
||||||
$uselimit = $entrieslimit > 0 ? true : false;
|
|
||||||
|
|
||||||
echo
|
# Entries title
|
||||||
'<div class="post-fac">'.
|
$title = context::global_filter(
|
||||||
$feedtitle.$feeddesc.
|
str_replace(
|
||||||
'<dl>';
|
array(
|
||||||
|
'%D',
|
||||||
|
'%T',
|
||||||
|
'%A',
|
||||||
|
'%E',
|
||||||
|
'%C'
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
$date,
|
||||||
|
$item->title,
|
||||||
|
$item->creator,
|
||||||
|
$item->description,
|
||||||
|
$item->content
|
||||||
|
),
|
||||||
|
$format['linestitletext']
|
||||||
|
),
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
abs((integer) $format['linestitlelength']),
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
$i = 0;
|
# Entries over title
|
||||||
foreach ($feed->items as $item) {
|
$overtitle = context::global_filter(
|
||||||
|
str_replace(
|
||||||
|
array(
|
||||||
|
'%D',
|
||||||
|
'%T',
|
||||||
|
'%A',
|
||||||
|
'%E',
|
||||||
|
'%C'
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
$date,
|
||||||
|
$item->title,
|
||||||
|
$item->creator,
|
||||||
|
$item->description,
|
||||||
|
$item->content
|
||||||
|
),
|
||||||
|
$format['linestitleover']
|
||||||
|
),
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
350,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
# Format date
|
# Entries description
|
||||||
$date = dt::dt2str($dateformat, $item->pubdate);
|
$description = '';
|
||||||
|
if ($format['showlinesdescription']
|
||||||
|
&& '' != $item->description) {
|
||||||
|
$description = '<dd>' .
|
||||||
|
context::global_filter(
|
||||||
|
$item->description,
|
||||||
|
0,
|
||||||
|
(integer) $format['linesdescriptionnohtml'],
|
||||||
|
abs((integer) $format['linesdescriptionlength']),
|
||||||
|
0,0
|
||||||
|
) . '</dd>';
|
||||||
|
}
|
||||||
|
|
||||||
# Entries title
|
# Entries content
|
||||||
$title = context::global_filter(
|
$content = '';
|
||||||
str_replace(
|
if ($format['showlinescontent']
|
||||||
array(
|
&& '' != $item->content) {
|
||||||
'%D',
|
$content = '<dd>'.
|
||||||
'%T',
|
context::global_filter(
|
||||||
'%A',
|
$item->content,
|
||||||
'%E',
|
0,
|
||||||
'%C'
|
(integer) $format['linescontentnohtml'],
|
||||||
),
|
abs((integer) $format['linescontentlength']),
|
||||||
array(
|
0,
|
||||||
$date,
|
0
|
||||||
$item->title,
|
) . '</dd>';
|
||||||
$item->creator,
|
}
|
||||||
$item->description,
|
|
||||||
$item->content
|
|
||||||
),
|
|
||||||
$format['linestitletext']
|
|
||||||
),
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
abs((integer) $format['linestitlelength']),
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
);
|
|
||||||
|
|
||||||
# Entries over title
|
echo
|
||||||
$overtitle = context::global_filter(
|
'<dt><a href="' . $item->link . '" ' .
|
||||||
str_replace(
|
'title="' . $overtitle . '">' . $title . '</a></dt>' .
|
||||||
array(
|
$description . $content;
|
||||||
'%D',
|
|
||||||
'%T',
|
|
||||||
'%A',
|
|
||||||
'%E',
|
|
||||||
'%C'
|
|
||||||
),
|
|
||||||
array(
|
|
||||||
$date,
|
|
||||||
$item->title,
|
|
||||||
$item->creator,
|
|
||||||
$item->description,
|
|
||||||
$item->content
|
|
||||||
),
|
|
||||||
$format['linestitleover']
|
|
||||||
),
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
350,
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
);
|
|
||||||
|
|
||||||
# Entries description
|
$i++;
|
||||||
$description = '';
|
if ($uselimit && $i == $entrieslimit) {
|
||||||
if ($format['showlinesdescription']
|
break;
|
||||||
&& '' != $item->description
|
}
|
||||||
) {
|
}
|
||||||
$description = '<dd>'.
|
echo '</dl></div>';
|
||||||
context::global_filter(
|
}
|
||||||
$item->description,
|
|
||||||
0,
|
|
||||||
(integer) $format['linesdescriptionnohtml'],
|
|
||||||
abs((integer) $format['linesdescriptionlength']),
|
|
||||||
0,0
|
|
||||||
).'</dd>';
|
|
||||||
}
|
|
||||||
|
|
||||||
# Entries content
|
|
||||||
$content = '';
|
|
||||||
if ($format['showlinescontent']
|
|
||||||
&& '' != $item->content
|
|
||||||
) {
|
|
||||||
$content = '<dd>'.
|
|
||||||
context::global_filter(
|
|
||||||
$item->content,
|
|
||||||
0,
|
|
||||||
(integer) $format['linescontentnohtml'],
|
|
||||||
abs((integer) $format['linescontentlength']),
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
).'</dd>';
|
|
||||||
}
|
|
||||||
|
|
||||||
echo
|
|
||||||
'<dt><a href="'.$item->link.'" '.
|
|
||||||
'title="'.$overtitle.'">'.$title.'</a></dt>'.
|
|
||||||
$description.$content;
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
if ($uselimit && $i == $entrieslimit) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
echo '</dl></div>';
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -3,8 +3,7 @@
|
||||||
#
|
#
|
||||||
# This file is part of fac, a plugin for Dotclear 2.
|
# This file is part of fac, a plugin for Dotclear 2.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2013 Jean-Christian Denis and contributors
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
# contact@jcdenis.fr http://jcd.lv
|
|
||||||
#
|
#
|
||||||
# Licensed under the GPL version 2.0 license.
|
# Licensed under the GPL version 2.0 license.
|
||||||
# A copy of this license is available in LICENSE file or at
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
@ -12,7 +11,8 @@
|
||||||
#
|
#
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
# -- END LICENSE BLOCK ------------------------------------
|
||||||
|
|
||||||
if (!defined('DC_RC_PATH')) { return; }
|
if (!defined('DC_RC_PATH')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$__resources['help']['fac'] = dirname(__FILE__).'/help/help.html';
|
$__resources['help']['fac'] = dirname(__FILE__) . '/help/fac.html';
|
||||||
?>
|
|
|
@ -3,8 +3,7 @@
|
||||||
#
|
#
|
||||||
# This file is part of fac, a plugin for Dotclear 2.
|
# This file is part of fac, a plugin for Dotclear 2.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009-2013 Jean-Christian Denis and contributors
|
# Copyright (c) 2009-2021 Jean-Christian Denis and contributors
|
||||||
# contact@jcdenis.fr http://jcd.lv
|
|
||||||
#
|
#
|
||||||
# Licensed under the GPL version 2.0 license.
|
# Licensed under the GPL version 2.0 license.
|
||||||
# A copy of this license is available in LICENSE file or at
|
# A copy of this license is available in LICENSE file or at
|
||||||
|
@ -12,7 +11,8 @@
|
||||||
#
|
#
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
# -- END LICENSE BLOCK ------------------------------------
|
||||||
|
|
||||||
if (!defined('DC_RC_PATH')) { return; }
|
if (!defined('DC_RC_PATH')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$__resources['help']['fac'] = dirname(__FILE__).'/help/help.html';
|
$__resources['help']['fac'] = dirname(__FILE__) . '/help/fac.html';
|
||||||
?>
|
|
Loading…
Reference in a new issue