Files
oav/dotclear._no/plugins/pages/_admin.php
2023-03-20 12:18:38 +01:00

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';