568 lines
12 KiB
PHP
568 lines
12 KiB
PHP
|
<?php
|
||
|
# -- BEGIN LICENSE BLOCK ----------------------------------
|
||
|
#
|
||
|
# This file is part of fac, a plugin for Dotclear 2.
|
||
|
#
|
||
|
# Copyright (c) 2009-2013 Jean-Christian Denis and contributors
|
||
|
# contact@jcdenis.fr http://jcd.lv
|
||
|
#
|
||
|
# Licensed under the GPL version 2.0 license.
|
||
|
# A copy of this license is available in LICENSE file or at
|
||
|
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||
|
#
|
||
|
# -- END LICENSE BLOCK ------------------------------------
|
||
|
|
||
|
if (!defined('DC_CONTEXT_MODULE')) {
|
||
|
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
$redir = empty($_REQUEST['redir']) ?
|
||
|
$list->getURL().'#plugins' : $_REQUEST['redir'];
|
||
|
|
||
|
# -- Combos of types of supported public pages --
|
||
|
$types = array(
|
||
|
__('home page') => 'default',
|
||
|
__('post pages') => 'post',
|
||
|
__('tags pages') => 'tag',
|
||
|
__('archives pages') => 'archive',
|
||
|
__('category pages') => 'category',
|
||
|
__('entries feed') => 'feed'
|
||
|
);
|
||
|
if ($core->plugins->moduleExists('muppet')) {
|
||
|
foreach(muppet::getPostTypes() as $k => $v) {
|
||
|
$types[sprintf(
|
||
|
__('"%s" pages from extension muppet'),
|
||
|
$v['name']
|
||
|
)] = $k;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# -- Get settings --
|
||
|
$core->blog->settings->addNamespace('fac');
|
||
|
$s = $core->blog->settings->fac;
|
||
|
|
||
|
$fac_active = (boolean) $s->fac_active;
|
||
|
$fac_defaultfeedtitle = (string) $s->fac_defaultfeedtitle;
|
||
|
$fac_showfeeddesc = (boolean) $s->fac_showfeeddesc;
|
||
|
$fac_public_tpltypes = @unserialize($s->fac_public_tpltypes);
|
||
|
$fac_formats = @unserialize($s->fac_formats);
|
||
|
|
||
|
if (!is_array($fac_public_tpltypes)) {
|
||
|
$fac_public_tpltypes = array();
|
||
|
}
|
||
|
if (!is_array($fac_formats)) {
|
||
|
$fac_formats = array();
|
||
|
}
|
||
|
|
||
|
# -- Set settings --
|
||
|
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();
|
||
|
|
||
|
foreach($_POST['fac_formats'] as $uid => $f) {
|
||
|
if (!empty($f['name'])) {
|
||
|
$fac_formats[$uid] = $f;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$s->put('fac_active', $fac_active);
|
||
|
$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.')
|
||
|
);
|
||
|
http::redirect(
|
||
|
$list->getURL('module=fac&conf=1&redir='.
|
||
|
$list->getRedir())
|
||
|
);
|
||
|
}
|
||
|
catch (Exception $e) {
|
||
|
$core->error->add($e->getMessage());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# -- Display form --
|
||
|
echo '
|
||
|
|
||
|
<div class="fieldset">
|
||
|
<h4>'.__('Activation').'</h4>
|
||
|
|
||
|
<p><label class="classic" for="fac_active">'.
|
||
|
form::checkbox('fac_active', 1, $fac_active).
|
||
|
__('Enable plugin').'</label></p>
|
||
|
|
||
|
<h5>'.__('Show feed after content on:').'</h5>';
|
||
|
|
||
|
foreach($types as $k => $v) {
|
||
|
echo '
|
||
|
<p><label class="classic" for="fac_public_tpltypes'.$k.'">'.
|
||
|
form::checkbox(
|
||
|
array('fac_public_tpltypes[]', 'fac_public_tpltypes'.$k),
|
||
|
$v,
|
||
|
in_array($v,$fac_public_tpltypes)
|
||
|
).__($k).'</label></p>';
|
||
|
}
|
||
|
echo '
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<div class="fieldset">
|
||
|
<h4>'.__('Feed').'</h4>
|
||
|
|
||
|
<p><label for="fac_defaultfeedtitle">'.__('Default title').'</label>'.
|
||
|
form::field('fac_defaultfeedtitle', 65, 255, $fac_defaultfeedtitle).'</p>
|
||
|
<p class="form-note">'.__('Use %T to insert title of feed.').'</p>
|
||
|
|
||
|
<p><label class="classic" for="fac_showfeeddesc">'.
|
||
|
form::checkbox('fac_showfeeddesc', 1, $fac_showfeeddesc).
|
||
|
__('Show description of feed').'</label></p>
|
||
|
|
||
|
</div>';
|
||
|
|
||
|
$i = 1;
|
||
|
foreach($fac_formats as $uid => $f) {
|
||
|
|
||
|
if (empty($f['name'])) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
echo '
|
||
|
<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.'_dateformat">'.
|
||
|
__('Date format:').'</label>'.
|
||
|
form::field(
|
||
|
array(
|
||
|
'fac_formats['.$uid.'][dateformat]',
|
||
|
'fac_formats_'.$uid.'_dateformat'
|
||
|
),
|
||
|
20,
|
||
|
255,
|
||
|
empty($f['dateformat']) ? '' : $f['dateformat'],
|
||
|
'maximal'
|
||
|
).'</p>
|
||
|
<p class="form-note">'.
|
||
|
__('Use date format of Dotclear or leave empty to use default date format of blog.').
|
||
|
'</p>
|
||
|
|
||
|
<p><label for="fac_formats_'.$uid.'_lineslimit">'.
|
||
|
__('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.'_linestitleover">'.
|
||
|
__('Over title format:').'</label>'.
|
||
|
form::field(
|
||
|
array(
|
||
|
'fac_formats['.$uid.'][linestitleover]',
|
||
|
'fac_formats_'.$uid.'_linestitleover'
|
||
|
),
|
||
|
20,
|
||
|
255,
|
||
|
empty($f['linestitleover']) ? '' : $f['linestitleover'],
|
||
|
'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.'_linestitlelength">'.
|
||
|
__('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.'_linesdescriptionnohtml">'.
|
||
|
form::checkbox(
|
||
|
array(
|
||
|
'fac_formats['.$uid.'][linesdescriptionnohtml]',
|
||
|
'fac_formats_'.$uid.'_linesdescriptionnohtml'
|
||
|
),
|
||
|
1,
|
||
|
!empty($f['linesdescriptionnohtml'])
|
||
|
).
|
||
|
__('Remove html of description').'</label></p>
|
||
|
|
||
|
<p><label for="fac_formats_'.$uid.'_linesdescriptionlength">'.
|
||
|
__('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.'_linescontentnohtml">'.
|
||
|
form::checkbox(
|
||
|
array(
|
||
|
'fac_formats['.$uid.'][linescontentnohtml]',
|
||
|
'fac_formats_'.$uid.'_linescontentnohtml'
|
||
|
),
|
||
|
1,
|
||
|
!empty($f['linescontentnohtml'])
|
||
|
).
|
||
|
__('Remove html of content').'</label></p>
|
||
|
|
||
|
<p><label for="fac_formats_'.$uid.'_linescontentlength">'.
|
||
|
__('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>';
|
||
|
|
||
|
$i++;
|
||
|
}
|
||
|
|
||
|
$uid = uniqid();
|
||
|
echo '
|
||
|
<div class="fieldset">
|
||
|
<h4>'.__('New format').'</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,
|
||
|
'',
|
||
|
'maximal'
|
||
|
).'</p>
|
||
|
<p class="form-note">'.
|
||
|
__('In order to remove a format, leave its name empty.').
|
||
|
'</p>
|
||
|
|
||
|
<p><label for="fac_formats_'.$uid.'_dateformat">'.
|
||
|
__('Date format:').'</label>'.
|
||
|
form::field(
|
||
|
array(
|
||
|
'fac_formats['.$uid.'][dateformat]',
|
||
|
'fac_formats_'.$uid.'_dateformat'
|
||
|
),
|
||
|
20,
|
||
|
255,
|
||
|
'',
|
||
|
'maximal'
|
||
|
).'</p>
|
||
|
<p class="form-note">'.
|
||
|
__('Use date format of Dotclear or leave empty to use default date format of blog.').
|
||
|
'</p>
|
||
|
|
||
|
<p><label for="fac_formats_'.$uid.'_lineslimit">'.
|
||
|
__('Entries limit:').'</label>'.
|
||
|
form::field(
|
||
|
array(
|
||
|
'fac_formats['.$uid.'][lineslimit]',
|
||
|
'fac_formats_'.$uid.'_lineslimit'
|
||
|
),
|
||
|
5,
|
||
|
4,
|
||
|
5,
|
||
|
'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,
|
||
|
'%T',
|
||
|
'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.'_linestitleover">'.
|
||
|
__('Over title format:').'</label>'.
|
||
|
form::field(
|
||
|
array(
|
||
|
'fac_formats['.$uid.'][linestitleover]',
|
||
|
'fac_formats_'.$uid.'_linestitleover'
|
||
|
),
|
||
|
20,
|
||
|
255,
|
||
|
'%D',
|
||
|
'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.'_linestitlelength">'.
|
||
|
__('Maximum length of title:').'</label>'.
|
||
|
form::field(
|
||
|
array(
|
||
|
'fac_formats['.$uid.'][linestitlelength]',
|
||
|
'fac_formats_'.$uid.'_linestitlelength'
|
||
|
),
|
||
|
5,
|
||
|
4,
|
||
|
150,
|
||
|
'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,
|
||
|
0
|
||
|
).
|
||
|
__('Show description of entries').'</label></p>
|
||
|
|
||
|
<p><label for="fac_formats_'.$uid.'_linesdescriptionnohtml">'.
|
||
|
form::checkbox(
|
||
|
array(
|
||
|
'fac_formats['.$uid.'][linesdescriptionnohtml]',
|
||
|
'fac_formats_'.$uid.'_linesdescriptionnohtml'
|
||
|
),
|
||
|
1,
|
||
|
1
|
||
|
).
|
||
|
__('Remove html of description').'</label></p>
|
||
|
|
||
|
<p><label for="fac_formats_'.$uid.'_linesdescriptionlength">'.
|
||
|
__('Maximum length of description:').'</label>'.
|
||
|
form::field(
|
||
|
array(
|
||
|
'fac_formats['.$uid.'][linesdescriptionlength]',
|
||
|
'fac_formats_'.$uid.'_linesdescriptionlength'
|
||
|
),
|
||
|
5,
|
||
|
4,
|
||
|
350,
|
||
|
'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,
|
||
|
0
|
||
|
).
|
||
|
__('Show content of entries').'</label></p>
|
||
|
|
||
|
<p><label for="fac_formats_'.$uid.'_linescontentnohtml">'.
|
||
|
form::checkbox(
|
||
|
array(
|
||
|
'fac_formats['.$uid.'][linescontentnohtml]',
|
||
|
'fac_formats_'.$uid.'_linescontentnohtml'
|
||
|
),
|
||
|
1,
|
||
|
1
|
||
|
).
|
||
|
__('Remove html of content').'</label></p>
|
||
|
|
||
|
<p><label for="fac_formats_'.$uid.'_linescontentlength">'.
|
||
|
__('Maximum length of content:').'</label>'.
|
||
|
form::field(
|
||
|
array(
|
||
|
'fac_formats['.$uid.'][linescontentlength]',
|
||
|
'fac_formats_'.$uid.'_linescontentlength'
|
||
|
),
|
||
|
5,
|
||
|
4,
|
||
|
350,
|
||
|
'maximal'
|
||
|
).'</p>
|
||
|
<p class="form-note">'.
|
||
|
__('Leave lengh empty for no limit.').
|
||
|
'</p>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<div class="fieldset">
|
||
|
<h4>'.__('Informations').'</h4>
|
||
|
|
||
|
<div class="two-boxes">
|
||
|
|
||
|
<h5>'.__('Theme').'</h5>
|
||
|
<p>'.
|
||
|
__('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.').
|
||
|
'</p>
|
||
|
|
||
|
</div><div class="two-boxes">
|
||
|
|
||
|
<h5>'.__('Structure').'</h5>
|
||
|
<pre>'.html::escapeHTML('
|
||
|
<div class="post-fac">
|
||
|
<h3>'.__('Title of feed').'</h3>
|
||
|
<p>'.__('Description of feed').'</p>
|
||
|
<dl>
|
||
|
<dt>'.__('Title of entry').'</dt>
|
||
|
<dd>'.__('Description of entry').'</dd>
|
||
|
</dl>
|
||
|
</div>
|
||
|
').'</pre>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
</div>';
|