User pref columns and filters : part 2 : entries
This commit is contained in:
parent
ca7a47ffe0
commit
4169b0533f
6 changed files with 288 additions and 322 deletions
28
_admin.php
28
_admin.php
|
@ -69,6 +69,17 @@ class zcfsAdminBehaviors
|
|||
];
|
||||
}
|
||||
|
||||
public static function entriesSortbyCombo()
|
||||
{
|
||||
return [
|
||||
__('Date') => 'post_dt',
|
||||
__('Title') => 'post_title',
|
||||
__('Category') => 'cat_title',
|
||||
__('Author') => 'user_id',
|
||||
__('Status') => 'post_status'
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Favorites.
|
||||
*
|
||||
|
@ -141,6 +152,14 @@ class zcfsAdminBehaviors
|
|||
'entries' => [true, __('Entries')]
|
||||
]
|
||||
];
|
||||
$cols['zcfs_entries'] = [
|
||||
__('Feeds server: Entries'),
|
||||
[
|
||||
'date' => [true, __('Date')],
|
||||
'category' => [true, __('Category')],
|
||||
'author' => [true, __('Author')]
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -156,7 +175,14 @@ class zcfsAdminBehaviors
|
|||
self::feedsSortbyCombo(),
|
||||
'lowername',
|
||||
'asc',
|
||||
[__('Links per page'), 30]
|
||||
[__('feeds per page'), 30]
|
||||
];
|
||||
$sorts['zcfs_entries'] = [
|
||||
__('Feeds server: Entries'),
|
||||
self::entriesSortbyCombo(),
|
||||
'post_dt',
|
||||
'desc',
|
||||
[__('entries per page'), 30]
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ $d = dirname(__FILE__).'/inc/';
|
|||
$__autoload['zoneclearFeedServer'] = $d . 'class.zoneclear.feed.server.php';
|
||||
$__autoload['zcfsFeedsList'] = $d . 'lib.zcfs.list.php';
|
||||
$__autoload['zcfsEntriesList'] = $d . 'lib.zcfs.list.php';
|
||||
$__autoload['adminZcfsPostFilter'] = $d . 'lib.zcfs.list.php';
|
||||
$__autoload['zcfsFeedsActionsPage'] = $d . 'class.zcfs.feedsactions.php';
|
||||
$__autoload['zcfsDefaultFeedsActions'] = $d . 'class.zcfs.feedsactions.php';
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ class zcfsFeedsList extends adminGenericList
|
|||
'<table>' .
|
||||
'<caption>' . ($filter ?
|
||||
sprintf(__('List of %s feeds matching the filter.'), $this->rs_count) :
|
||||
sprintf(__('List of entries (%s)'), $this->rs_count)
|
||||
sprintf(__('List of feeds (%s)'), $this->rs_count)
|
||||
) . '</caption>';
|
||||
|
||||
$cols = [
|
||||
|
@ -145,40 +145,63 @@ class zcfsFeedsList extends adminGenericList
|
|||
*/
|
||||
class zcfsEntriesList extends adminGenericList
|
||||
{
|
||||
public function display($page, $nb_per_page, $url, $enclose='')
|
||||
public function display($page, $nb_per_page, $base_url, $enclose_block = '', $filter = false)
|
||||
{
|
||||
if ($this->rs->isEmpty()) {
|
||||
echo '<p><strong>' . ($filter ?
|
||||
__('No entries matches the filter') :
|
||||
__('No entries')
|
||||
) . '</strong></p>';
|
||||
} else {
|
||||
$pager = new dcPager($page, $this->rs_count, $nb_per_page, 10);
|
||||
$pager->base_url = $base_url;
|
||||
|
||||
return '<p><strong>'.__('No entry').'</strong></p>';
|
||||
$entries = [];
|
||||
if (isset($_REQUEST['feeds'])) {
|
||||
foreach ($_REQUEST['feeds'] as $v) {
|
||||
$entries[(integer) $v] = true;
|
||||
}
|
||||
}
|
||||
|
||||
$html_block = '<div class="table-outer clear">' .
|
||||
'<table>' .
|
||||
'<caption>' . ($filter ?
|
||||
sprintf(__('List of %s entries matching the filter.'), $this->rs_count) :
|
||||
sprintf(__('List of entries (%s)'), $this->rs_count)
|
||||
) . '</caption>';
|
||||
|
||||
$cols = [
|
||||
'title' => '<th scope="col" colspan="2" class="first">' . __('Title') . '</th>',
|
||||
'date' => '<th scope="col">' . __('Date') . '</th>',
|
||||
'author' => '<th scope="col">' . __('Author') . '</th>',
|
||||
'category' => '<th scope="col">' . __('Category') . '</th>',
|
||||
'status' => '<th scope="col">' . __('Status') . '</th>'
|
||||
];
|
||||
|
||||
$cols = new ArrayObject($cols);
|
||||
$this->core->callBehavior('adminZcfsPostListHeader', $this->core, $this->rs, $cols);
|
||||
|
||||
$this->userColumns('zcfs_entries', $cols);
|
||||
|
||||
$html_block .= '<tr>' . implode(iterator_to_array($cols)) . '</tr>%s</table></div>';
|
||||
if ($enclose_block) {
|
||||
$html_block = sprintf($enclose_block, $html_block);
|
||||
}
|
||||
|
||||
echo $pager->getLinks();
|
||||
|
||||
$blocks = explode('%s', $html_block);
|
||||
|
||||
echo $blocks[0];
|
||||
|
||||
while ($this->rs->fetch()) {
|
||||
echo $this->postLine(isset($entries[$this->rs->post_id]));
|
||||
}
|
||||
|
||||
echo $blocks[1];
|
||||
|
||||
echo $pager->getLinks();
|
||||
}
|
||||
|
||||
$pager = new dcPager($page, $this->rs_count, $nb_per_page, 10);
|
||||
$pager->base_url = $url;
|
||||
$pager->html_prev = $this->html_prev;
|
||||
$pager->html_next = $this->html_next;
|
||||
$pager->var_page = 'page';
|
||||
|
||||
$html_block =
|
||||
'<div class="table-outer">'.
|
||||
'<table class="clear"><tr>'.
|
||||
'<th colspan="2">'.__('Title').'</th>'.
|
||||
'<th>'.__('Date').'</th>'.
|
||||
'<th>'.__('Category').'</th>'.
|
||||
'<th>'.__('Author').'</th>'.
|
||||
'<th>'.__('Comments').'</th>'.
|
||||
'<th>'.__('Trackbacks').'</th>'.
|
||||
'<th>'.__('Status').'</th>'.
|
||||
'</tr>%s</table></div>';
|
||||
|
||||
$res = '';
|
||||
while ($this->rs->fetch()) {
|
||||
$res .= $this->postLine();
|
||||
}
|
||||
|
||||
return
|
||||
$pager->getLinks().
|
||||
sprintf($enclose, sprintf($html_block, $res)).
|
||||
$pager->getLinks();
|
||||
}
|
||||
|
||||
private function postLine()
|
||||
|
@ -191,36 +214,182 @@ class zcfsEntriesList extends adminGenericList
|
|||
sprintf($cat_link,$this->rs->cat_id, html::escapeHTML($this->rs->cat_title))
|
||||
: __('None');
|
||||
|
||||
$img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />';
|
||||
$img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />';
|
||||
$img_status = '';
|
||||
$sts_class = '';
|
||||
switch ($this->rs->post_status) {
|
||||
case 1:
|
||||
$img_status = sprintf($img, __('published'), 'check-on.png');
|
||||
$img_status = sprintf($img, __('Published'), 'check-on.png');
|
||||
$sts_class = 'sts-online';
|
||||
|
||||
break;
|
||||
case 0:
|
||||
$img_status = sprintf($img, __('unpublished'), 'check-off.png');
|
||||
$img_status = sprintf($img, __('Unpublished'), 'check-off.png');
|
||||
$sts_class = 'sts-offline';
|
||||
|
||||
break;
|
||||
case -1:
|
||||
$img_status = sprintf($img, __('scheduled'), 'scheduled.png');
|
||||
$img_status = sprintf($img, __('Scheduled'), 'scheduled.png');
|
||||
$sts_class = 'sts-scheduled';
|
||||
|
||||
break;
|
||||
case -2:
|
||||
$img_status = sprintf($img, __('pending'), 'check-wrn.png');
|
||||
$img_status = sprintf($img, __('Pending'), 'check-wrn.png');
|
||||
$sts_class = 'sts-pending';
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return
|
||||
'<tr class="line'.($this->rs->post_status != 1 ? ' offline' : '').'"'.
|
||||
' id="p'.$this->rs->post_id.'">'.
|
||||
'<td class="nowrap">'.
|
||||
form::checkbox(array('entries[]'), $this->rs->post_id, '', '', '', !$this->rs->isEditable()).'</td>'.
|
||||
'<td class="maximal"><a href="'.$this->core->getPostAdminURL($this->rs->post_type, $this->rs->post_id).
|
||||
'" title="'.__('Edit entry').'">'.
|
||||
html::escapeHTML($this->rs->post_title).'</a></td>'.
|
||||
'<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'), $this->rs->post_dt).'</td>'.
|
||||
'<td class="nowrap">'.$cat_title.'</td>'.
|
||||
'<td class="nowrap">'.$this->rs->user_id.'</td>'.
|
||||
'<td class="nowrap">'.$this->rs->nb_comment.'</td>'.
|
||||
'<td class="nowrap">'.$this->rs->nb_trackback.'</td>'.
|
||||
'<td class="nowrap status">'.$img_status.'</td>'.
|
||||
'</tr>';
|
||||
$res = '<tr class="line ' . ($this->rs->post_status != 1 ? 'offline ' : '') . $sts_class . '"' .
|
||||
' id="p' . $this->rs->post_id . '">';
|
||||
|
||||
$cols = [
|
||||
'check' => '<td class="nowrap minimal">'.
|
||||
form::checkbox(array('entries[]'), $this->rs->post_id, '', '', '', !$this->rs->isEditable()).'</td>',
|
||||
'title' => '<td scope="row" class="maximal"><a href="' .
|
||||
$this->core->getPostAdminURL($this->rs->post_type, $this->rs->post_id) . '" ' .
|
||||
'title="' . html::escapeHTML($this->rs->getURL()) . '">' .
|
||||
html::escapeHTML(trim(html::clean($this->rs->post_title))) . '</a></td>',
|
||||
'date' => '<td class="nowrap count">' . dt::dt2str(__('%Y-%m-%d %H:%M'), $this->rs->post_dt) . '</td>',
|
||||
'author' => '<td class="nowrap">' . html::escapeHTML($this->rs->user_id) . '</td>',
|
||||
'category' => '<td class="nowrap">'.$cat_title.'</td>',
|
||||
'status' => '<td class="nowrap status">' . $img_status . '</td>'
|
||||
];
|
||||
|
||||
$cols = new ArrayObject($cols);
|
||||
$this->core->callBehavior('adminZcfsPostListValue', $this->core, $this->rs, $cols);
|
||||
|
||||
$this->userColumns('zcfs_entries', $cols);
|
||||
|
||||
$res .= implode(iterator_to_array($cols));
|
||||
$res .= '</tr>';
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class adminZcfsPostFilter extends adminGenericFilter
|
||||
{
|
||||
public function __construct(dcCore $core)
|
||||
{
|
||||
parent::__construct($core, 'zcfs_entries');
|
||||
|
||||
$filters = new arrayObject([
|
||||
dcAdminFilters::getPageFilter(),
|
||||
$this->getPostUserFilter(),
|
||||
$this->getPostCategoriesFilter(),
|
||||
$this->getPostStatusFilter(),
|
||||
$this->getPostMonthFilter()
|
||||
]);
|
||||
|
||||
# --BEHAVIOR-- adminPostFilter
|
||||
$core->callBehavior('adminZcfsPostFilter', $core, $filters);
|
||||
|
||||
$filters = $filters->getArrayCopy();
|
||||
|
||||
$this->add($filters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Posts users select
|
||||
*/
|
||||
public function getPostUserFilter(): ?dcAdminFilter
|
||||
{
|
||||
$users = null;
|
||||
try {
|
||||
$users = $this->core->blog->getPostsUsers();
|
||||
if ($users->isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$this->core->error->add($e->getMessage());
|
||||
return null;
|
||||
}
|
||||
|
||||
$combo = dcAdminCombos::getUsersCombo($users);
|
||||
dcUtils::lexicalKeySort($combo);
|
||||
|
||||
return (new dcAdminFilter('user_id'))
|
||||
->param()
|
||||
->title(__('Author:'))
|
||||
->options(array_merge(
|
||||
['-' => ''],
|
||||
$combo
|
||||
))
|
||||
->prime(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Posts categories select
|
||||
*/
|
||||
public function getPostCategoriesFilter(): ?dcAdminFilter
|
||||
{
|
||||
$categories = null;
|
||||
try {
|
||||
$categories = $this->core->blog->getCategories();
|
||||
if ($categories->isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$this->core->error->add($e->getMessage());
|
||||
return null;
|
||||
}
|
||||
|
||||
$combo = [
|
||||
'-' => '',
|
||||
__('(No cat)') => 'NULL'
|
||||
];
|
||||
while ($categories->fetch()) {
|
||||
$combo[
|
||||
str_repeat(' ', ($categories->level - 1) * 4) .
|
||||
html::escapeHTML($categories->cat_title) . ' (' . $categories->nb_post . ')'
|
||||
] = $categories->cat_id;
|
||||
}
|
||||
|
||||
return (new dcAdminFilter('cat_id'))
|
||||
->param()
|
||||
->title(__('Category:'))
|
||||
->options($combo)
|
||||
->prime(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Posts status select
|
||||
*/
|
||||
public function getPostStatusFilter(): dcAdminFilter
|
||||
{
|
||||
return (new dcAdminFilter('status'))
|
||||
->param('post_status')
|
||||
->title(__('Status:'))
|
||||
->options(array_merge(
|
||||
['-' => ''],
|
||||
dcAdminCombos::getPostStatusesCombo()
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Posts by month select
|
||||
*/
|
||||
public function getPostMonthFilter(): ?dcAdminFilter
|
||||
{
|
||||
$dates = null;
|
||||
try {
|
||||
$dates = $this->core->blog->getDates(['type' => 'month']);
|
||||
if ($dates->isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$this->core->error->add($e->getMessage());
|
||||
return null;
|
||||
}
|
||||
|
||||
return (new dcAdminFilter('month'))
|
||||
->param('post_month', function($f) { return substr($f[0], 4, 2); })
|
||||
->param('post_year', function($f) { return substr($f[0], 0, 4); })
|
||||
->title(__('Month:'))
|
||||
->options(array_merge(
|
||||
['-' => ''],
|
||||
dcAdminCombos::getDatesCombo($dates)
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
277
index.php
277
index.php
|
@ -251,95 +251,16 @@ if (isset($_REQUEST['part']) && $_REQUEST['part'] == 'feed') {
|
|||
|
||||
# Prepared entries list
|
||||
if ($feed_id && $can_view_page) {
|
||||
try {
|
||||
# Getting categories
|
||||
$categories = $core->blog->getCategories(array(
|
||||
'post_type' => 'post'
|
||||
));
|
||||
|
||||
# Getting authors
|
||||
$users = $core->blog->getPostsUsers();
|
||||
|
||||
# Getting dates
|
||||
$dates = $core->blog->getDates(array(
|
||||
'type' => 'month'
|
||||
));
|
||||
|
||||
# Getting langs
|
||||
$langs = $core->blog->getLangs();
|
||||
}
|
||||
catch (Exception $e) {
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
|
||||
# Creating filter combo boxes
|
||||
if (!$core->error->flag()) {
|
||||
|
||||
$users_combo = array_merge(
|
||||
array('-' => ''),
|
||||
dcAdminCombos::getUsersCombo($users)
|
||||
);
|
||||
|
||||
$categories_combo = array_merge(
|
||||
array(
|
||||
new formSelectOption('-', ''),
|
||||
new formSelectOption(__('(No cat)'), 'NULL')
|
||||
),
|
||||
dcAdminCombos::getCategoriesCombo($categories, false)
|
||||
);
|
||||
$categories_values = array();
|
||||
foreach ($categories_combo as $cat) {
|
||||
if (isset($cat->value)) {
|
||||
$categories_values[$cat->value] = true;
|
||||
}
|
||||
}
|
||||
|
||||
$status_combo = array_merge(
|
||||
array('-' => ''),
|
||||
dcAdminCombos::getPostStatusesCombo()
|
||||
);
|
||||
|
||||
$selected_combo = array(
|
||||
'-' => '',
|
||||
__('Selected') => '1',
|
||||
__('Not selected') => '0'
|
||||
);
|
||||
|
||||
$dt_m_combo = array_merge(
|
||||
array('-' => ''),
|
||||
dcAdminCombos::getDatesCombo($dates)
|
||||
);
|
||||
|
||||
$lang_combo = array_merge(
|
||||
array('-' => ''),
|
||||
dcAdminCombos::getLangsCombo($langs,false)
|
||||
);
|
||||
|
||||
$sortby_combo = array(
|
||||
__('Date') => 'post_dt',
|
||||
__('Title') => 'post_title',
|
||||
__('Category') => 'cat_title',
|
||||
__('Author') => 'user_id',
|
||||
__('Status') => 'post_status',
|
||||
__('Selected') => 'post_selected'
|
||||
);
|
||||
|
||||
$order_combo = array(
|
||||
__('Descending') => 'desc',
|
||||
__('Ascending') => 'asc'
|
||||
);
|
||||
}
|
||||
|
||||
# Posts action
|
||||
$posts_actions_page = new dcPostsActionsPage(
|
||||
$core,
|
||||
'plugin.php',
|
||||
array(
|
||||
[
|
||||
'p' => 'zoneclearFeedServer',
|
||||
'part' => 'feed',
|
||||
'feed_id' => $feed_id,
|
||||
'_ANCHOR' => 'entries'
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
if ($posts_actions_page->process()) {
|
||||
|
@ -348,71 +269,29 @@ if (isset($_REQUEST['part']) && $_REQUEST['part'] == 'feed') {
|
|||
|
||||
/* Get posts
|
||||
-------------------------------------------------------- */
|
||||
$user_id = !empty($_GET['user_id']) ? $_GET['user_id'] : '';
|
||||
$cat_id = !empty($_GET['cat_id']) ? $_GET['cat_id'] : '';
|
||||
$status = isset($_GET['status']) ? $_GET['status'] : '';
|
||||
$selected = isset($_GET['selected']) ? $_GET['selected'] : '';
|
||||
$month = !empty($_GET['month']) ? $_GET['month'] : '';
|
||||
$lang = !empty($_GET['lang']) ? $_GET['lang'] : '';
|
||||
$sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'post_dt';
|
||||
$order = !empty($_GET['order']) ? $_GET['order'] : 'desc';
|
||||
$post_filter = new adminZcfsPostFilter($core);
|
||||
$post_filter->add('part', 'feed');
|
||||
$post_filter->add('feed_id', $feed_id);
|
||||
|
||||
$show_filters = false;
|
||||
# get list params
|
||||
$params = $post_filter->params();
|
||||
|
||||
$page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1;
|
||||
$nb_per_page = 30;
|
||||
# lexical sort
|
||||
$sortby_lex = [
|
||||
// key in sorty_combo (see above) => field in SQL request
|
||||
'post_title' => 'post_title',
|
||||
'cat_title' => 'cat_title',
|
||||
'user_id' => 'P.user_id'];
|
||||
|
||||
if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) {
|
||||
if ($nb_per_page != $_GET['nb']) {
|
||||
$show_filters = true;
|
||||
}
|
||||
$nb_per_page = (integer) $_GET['nb'];
|
||||
}
|
||||
# --BEHAVIOR-- adminPostsSortbyLexCombo
|
||||
$core->callBehavior('adminPostsSortbyLexCombo', [& $sortby_lex]);
|
||||
|
||||
$params['order'] = (array_key_exists($post_filter->sortby, $sortby_lex) ?
|
||||
$core->con->lexFields($sortby_lex[$post_filter->sortby]) :
|
||||
$post_filter->sortby) . ' ' . $post_filter->order;
|
||||
|
||||
$params['limit'] = array((($page-1)*$nb_per_page), $nb_per_page);
|
||||
$params['no_content'] = true;
|
||||
|
||||
# - User filter
|
||||
if ($user_id !== '' && in_array($user_id, $users_combo)) {
|
||||
$params['user_id'] = $user_id;
|
||||
$show_filters = true;
|
||||
}
|
||||
# - Categories filter
|
||||
if ($cat_id !== '' && in_array($cat_id, $categories_combo)) {
|
||||
$params['cat_id'] = $cat_id;
|
||||
$show_filters = true;
|
||||
}
|
||||
# - Status filter
|
||||
if ($status !== '' && in_array($status, $status_combo)) {
|
||||
$params['post_status'] = $status;
|
||||
$show_filters = true;
|
||||
}
|
||||
# - Selected filter
|
||||
if ($selected !== '' && in_array($selected, $selected_combo)) {
|
||||
$params['post_selected'] = $selected;
|
||||
$show_filters = true;
|
||||
}
|
||||
# - Month filter
|
||||
if ($month !== '' && in_array($month, $dt_m_combo)) {
|
||||
$params['post_month'] = substr($month, 4, 2);
|
||||
$params['post_year'] = substr($month, 0, 4);
|
||||
$show_filters = true;
|
||||
}
|
||||
# - Lang filter
|
||||
if ($lang !== '' && in_array($lang, $lang_combo)) {
|
||||
$params['post_lang'] = $lang;
|
||||
$show_filters = true;
|
||||
}
|
||||
# - Sortby and order filter
|
||||
if ($sortby !== '' && in_array($sortby, $sortby_combo)) {
|
||||
if ($order !== '' && in_array($order, $order_combo)){
|
||||
$params['order'] = $sortby.' '.$order;
|
||||
}
|
||||
if ($sortby != 'post_dt' || $order != 'desc') {
|
||||
$show_filters = true;
|
||||
}
|
||||
}
|
||||
|
||||
# Get posts
|
||||
try {
|
||||
$params['feed_id'] = $feed_id;
|
||||
|
@ -433,25 +312,8 @@ if (isset($_REQUEST['part']) && $_REQUEST['part'] == 'feed') {
|
|||
echo
|
||||
'<html><head><title>'.__('Feeds server').'</title>'.
|
||||
($feed_id && !$core->error->flag() ?
|
||||
dcPage::jsLoad(
|
||||
'index.php?pf=periodical/js/postsfilter.js'
|
||||
).
|
||||
'<script type="text/javascript">'."\n".
|
||||
"//<![CDATA["."\n".
|
||||
dcPage::jsVar(
|
||||
'dotclear.msg.show_filters',
|
||||
$show_filters ? 'true':'false'
|
||||
)."\n".
|
||||
dcPage::jsVar(
|
||||
'dotclear.msg.filter_posts_list',
|
||||
__('Show filters and display options')
|
||||
)."\n".
|
||||
dcPage::jsVar(
|
||||
'dotclear.msg.cancel_the_filter',
|
||||
__('Cancel filters and display options')
|
||||
)."\n".
|
||||
"//]]>\n".
|
||||
"</script>\n"
|
||||
$post_filter->js($core->adminurl->get('admin.plugin.zoneclearFeedServer', ['part' => 'feed', 'feed_id' => $feed_id], '&').'#entries') .
|
||||
dcPage::jsLoad(dcPage::getPF('zoneclearFeedServer/js/list.js'))
|
||||
: '').
|
||||
dcPage::jsPageTabs().
|
||||
$next_headlink."\n".$prev_headlink.
|
||||
|
@ -582,73 +444,22 @@ if (isset($_REQUEST['part']) && $_REQUEST['part'] == 'feed') {
|
|||
|
||||
# Entries
|
||||
if ($feed_id && $can_view_page && !$core->error->flag()) {
|
||||
echo
|
||||
'<div class="multi-part" title="'.__('Entries').'" id="entries">'.
|
||||
echo '<div class="multi-part" title="'.__('Entries').'" id="entries">';
|
||||
|
||||
'<form action="'.$p_url.'&part=feed#entries" method="get" id="filters-form">'.
|
||||
$post_filter->display(['admin.plugin.zoneclearFeedServer','#entries'],
|
||||
form::hidden('p', 'zoneclearFeedServer') .
|
||||
form::hidden('part', 'feed') .
|
||||
form::hidden('feed_id', $feed_id)
|
||||
);
|
||||
|
||||
'<h3 class="out-of-screen-if-js">'.
|
||||
__('Cancel filters and display options').
|
||||
'</h3>'.
|
||||
|
||||
'<div class="table">'.
|
||||
'<div class="cell">'.
|
||||
'<h4>'.__('Filters').'</h4>'.
|
||||
'<p><label for="user_id" class="ib">'.__('Author:').'</label> '.
|
||||
form::combo('user_id',$users_combo,$user_id).'</p>'.
|
||||
'<p><label for="cat_id" class="ib">'.__('Category:').'</label> '.
|
||||
form::combo('cat_id',$categories_combo,$cat_id).'</p>'.
|
||||
'<p><label for="status" class="ib">'.__('Status:').'</label> ' .
|
||||
form::combo('status',$status_combo,$status).'</p> '.
|
||||
'</div>'.
|
||||
|
||||
'<div class="cell filters-sibling-cell">'.
|
||||
'<p><label for="selected" class="ib">'.__('Selected:').'</label> '.
|
||||
form::combo('selected',$selected_combo,$selected).'</p>'.
|
||||
'<p><label for="month" class="ib">'.__('Month:').'</label> '.
|
||||
form::combo('month',$dt_m_combo,$month).'</p>'.
|
||||
'<p><label for="lang" class="ib">'.__('Lang:').'</label> '.
|
||||
form::combo('lang',$lang_combo,$lang).'</p> '.
|
||||
'</div>'.
|
||||
|
||||
'<div class="cell filters-options">'.
|
||||
'<h4>'.__('Display options').'</h4>'.
|
||||
'<p><label for="sortby" class="ib">'.__('Order by:').'</label> '.
|
||||
form::combo('sortby',$sortby_combo,$sortby).'</p>'.
|
||||
'<p><label for="order" class="ib">'.__('Sort:').'</label> '.
|
||||
form::combo('order',$order_combo,$order).'</p>'.
|
||||
'<p><span class="label ib">'.__('Show').'</span> <label for="nb" class="classic">'.
|
||||
form::field('nb', 3, 3, $nb_per_page).' '.
|
||||
__('entries per page').'</label></p>'.
|
||||
'</div>'.
|
||||
'</div>'.
|
||||
|
||||
'<p><input type="submit" value="'.__('Apply filters and display options').'" />'.
|
||||
form::hidden(array('p'), 'zoneclearFeedServer').
|
||||
form::hidden(array('part'), 'feed').
|
||||
form::hidden(array('feed_id') ,$feed_id).
|
||||
'<br class="clear" />'. //Opera sucks
|
||||
'</p>'.
|
||||
'</form>'.
|
||||
# fix pager url
|
||||
$args = $post_filter->values();
|
||||
unset($args['page']);
|
||||
$args['page'] = '%s';
|
||||
$base_url = $core->adminurl->get('admin.plugin.zoneclearFeedServer', $args, '&').'#entries';
|
||||
|
||||
# Show posts
|
||||
$post_list->display($page, $nb_per_page,
|
||||
|
||||
$p_url.
|
||||
'&part=feed'.
|
||||
'&tab=entries'.
|
||||
'&feed_id='.$feed_id.
|
||||
'&user_id='.$user_id.
|
||||
'&cat_id='.$cat_id.
|
||||
'&status='.$status.
|
||||
'&selected='.$selected.
|
||||
'&month='.$month.
|
||||
'&lang='.$lang.
|
||||
'&sortby='.$sortby.
|
||||
'&order='.$order.
|
||||
'&nb='.$nb_per_page.
|
||||
'&page=%s',
|
||||
|
||||
$post_list->display($post_filter->page, $post_filter->nb, $base_url,
|
||||
'<form action="'.$p_url.'&part=feed#entries" method="post" id="form-entries">'.
|
||||
'%s'.
|
||||
|
||||
|
@ -658,21 +469,12 @@ if (isset($_REQUEST['part']) && $_REQUEST['part'] == 'feed') {
|
|||
'<p class="col right">'.__('Selected entries action:').' '.
|
||||
form::combo('action', $posts_actions_page->getCombo()).
|
||||
'<input type="submit" name="save" value="'.__('ok').'" /></p>'.
|
||||
form::hidden(array('part'), 'feed').
|
||||
form::hidden(array('feed_id'), $feed_id).
|
||||
form::hidden(array('user_id'), $user_id).
|
||||
form::hidden(array('cat_id'), $cat_id).
|
||||
form::hidden(array('status'), $status).
|
||||
form::hidden(array('selected'), $selected).
|
||||
form::hidden(array('month'), $month).
|
||||
form::hidden(array('lang'), $lang).
|
||||
form::hidden(array('sortby'), $sortby).
|
||||
form::hidden(array('order'), $order).
|
||||
form::hidden(array('page'), $page).
|
||||
form::hidden(array('nb'), $nb_per_page).
|
||||
$core->adminurl->getHiddenFormFields('admin.plugin.zoneclearFeedServer', $post_filter->values()) .
|
||||
form::hidden('redir', $core->adminurl->get('admin.plugin.zoneclearFeedServer', $post_filter->values())) .
|
||||
$core->formNonce().
|
||||
'</div>'.
|
||||
'</form>'
|
||||
'</form>',
|
||||
$post_filter->show()
|
||||
);
|
||||
|
||||
echo
|
||||
|
@ -720,9 +522,8 @@ else {
|
|||
# Display
|
||||
echo
|
||||
'<html><head><title>'.__('Feeds server').'</title>'.
|
||||
dcPage::jsVars(['dotclear.filter_reset_url' => $core->adminurl->get('admin.plugin.zoneclearFeedServer', ['part' => 'feeds'])]) .
|
||||
dcPage::jsFilterControl($feeds_filter->show()) .
|
||||
dcPage::jsLoad(dcPage::getPF('zoneclearFeedServer/js/feedsfilter.js')) .
|
||||
$feeds_filter->js($core->adminurl->get('admin.plugin.zoneclearFeedServer', ['part' => 'feeds'], '&')) .
|
||||
dcPage::jsLoad(dcPage::getPF('zoneclearFeedServer/js/list.js')) .
|
||||
dcPage::jsPageTabs().
|
||||
|
||||
# --BEHAVIOR-- packmanAdminHeader
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
$(function(){
|
||||
$('.checkboxes-helpers').each(function(){dotclear.checkboxesHelpers(this);});
|
||||
|
||||
$filtersform = $('#filters-form');
|
||||
$filtersform.before('<p><a id="filter-control" class="form-control" href="plugin.php?p=zoneclearFeedServer&part=feed#entries" style="display:inline">'+dotclear.msg.filter_posts_list+'</a></p>')
|
||||
|
||||
if( dotclear.msg.show_filters == 'false' ) {
|
||||
$filtersform.hide();
|
||||
} else {
|
||||
$('#filter-control')
|
||||
.addClass('open')
|
||||
.text(dotclear.msg.cancel_the_filter);
|
||||
}
|
||||
|
||||
$('#filter-control').click(function() {
|
||||
if( $(this).hasClass('open') ) {
|
||||
if( dotclear.msg.show_filters == 'true' ) {
|
||||
return true;
|
||||
} else {
|
||||
$filtersform.hide();
|
||||
$(this).removeClass('open')
|
||||
.text(dotclear.msg.filter_posts_list);
|
||||
}
|
||||
} else {
|
||||
$filtersform.show();
|
||||
$(this).addClass('open')
|
||||
.text(dotclear.msg.cancel_the_filter);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
});
|
Loading…
Reference in a new issue