95 lines
3.2 KiB
PHP
95 lines
3.2 KiB
PHP
<?php
|
|
/**
|
|
* @brief pages, a plugin for Dotclear 2
|
|
*
|
|
* @package Dotclear
|
|
* @subpackage Plugins
|
|
*
|
|
* @copyright Olivier Meunier & Association Dotclear
|
|
* @copyright GPL-2.0-only
|
|
*/
|
|
|
|
if (!defined('DC_CONTEXT_ADMIN')) {return;}
|
|
|
|
$core->addBehavior('adminColumnsLists', ['pagesColumnsLists', 'adminColumnsLists']);
|
|
$core->addBehavior('adminDashboardFavorites', ['pagesDashboard', 'pagesDashboardFavs']);
|
|
$core->addBehavior('adminUsersActionsHeaders', 'pages_users_actions_headers');
|
|
|
|
class pagesColumnsLists
|
|
{
|
|
public static function adminColumnsLists($core, $cols)
|
|
{
|
|
// Set optional columns in pages lists
|
|
$cols['pages'] = [__('Pages'), [
|
|
'date' => [true, __('Date')],
|
|
'author' => [true, __('Author')],
|
|
'comments' => [true, __('Comments')],
|
|
'trackbacks' => [true, __('Trackbacks')]
|
|
]];
|
|
}
|
|
}
|
|
|
|
class pagesDashboard
|
|
{
|
|
public static function pagesDashboardFavs($core, $favs)
|
|
{
|
|
$favs->register('pages', [
|
|
'title' => __('Pages'),
|
|
'url' => $core->adminurl->get('admin.plugin.pages'),
|
|
'small-icon' => dcPage::getPF('pages/icon.png'),
|
|
'large-icon' => dcPage::getPF('pages/icon-big.png'),
|
|
'permissions' => 'contentadmin,pages',
|
|
'dashboard_cb' => ['pagesDashboard', 'pagesDashboardCB'],
|
|
'active_cb' => ['pagesDashboard', 'pagesActiveCB']
|
|
]);
|
|
$favs->register('newpage', [
|
|
'title' => __('New page'),
|
|
'url' => $core->adminurl->get('admin.plugin.pages', ['act' => 'page']),
|
|
'small-icon' => dcPage::getPF('pages/icon-np.png'),
|
|
'large-icon' => dcPage::getPF('pages/icon-np-big.png'),
|
|
'permissions' => 'contentadmin,pages',
|
|
'active_cb' => ['pagesDashboard', 'newPageActiveCB']
|
|
]);
|
|
}
|
|
|
|
public static function pagesDashboardCB($core, $v)
|
|
{
|
|
$params = new ArrayObject();
|
|
$params['post_type'] = 'page';
|
|
$page_count = $core->blog->getPosts($params, true)->f(0);
|
|
if ($page_count > 0) {
|
|
$str_pages = ($page_count > 1) ? __('%d pages') : __('%d page');
|
|
$v['title'] = sprintf($str_pages, $page_count);
|
|
}
|
|
}
|
|
|
|
public static function pagesActiveCB($request, $params)
|
|
{
|
|
return ($request == "plugin.php") &&
|
|
isset($params['p']) && $params['p'] == 'pages'
|
|
&& !(isset($params['act']) && $params['act'] == 'page');
|
|
}
|
|
|
|
public static function newPageActiveCB($request, $params)
|
|
{
|
|
return ($request == "plugin.php") &&
|
|
isset($params['p']) && $params['p'] == 'pages'
|
|
&& isset($params['act']) && $params['act'] == 'page';
|
|
}
|
|
}
|
|
|
|
function pages_users_actions_headers()
|
|
{
|
|
return dcPage::jsLoad('index.php?pf=pages/js/_users_actions.js');
|
|
}
|
|
|
|
$_menu['Blog']->addItem(__('Pages'),
|
|
$core->adminurl->get('admin.plugin.pages'),
|
|
dcPage::getPF('pages/icon.png'),
|
|
preg_match('/plugin.php(.*)$/', $_SERVER['REQUEST_URI']) && !empty($_REQUEST['p']) && $_REQUEST['p'] == 'pages',
|
|
$core->auth->check('contentadmin,pages', $core->blog->id));
|
|
|
|
$core->auth->setPermissionType('pages', __('manage pages'));
|
|
|
|
require dirname(__FILE__) . '/_widgets.php';
|