CategoriesPage/_widgets.php

71 lines
2.0 KiB
PHP

<?php
/* -- BEGIN LICENSE BLOCK ----------------------------------
#
# This file is part of Categories Page, a plugin for Dotclear 2.
#
# Copyright (c) 2013 Pierre Van Glabeke, Bernard Le Roux
# Licensed under the GPL version 2.0 license.
# See LICENSE file or
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- END LICENSE BLOCK ------------------------------------ */
if (!defined('DC_RC_PATH')) {
return;
}
widgetsCategoriesPage::main();
class widgetsCategoriesPage {
/*
* initialisation du context widget
*/
public static function main() {
require_once __DIR__.'/ConstCategoriesPage.php';
$core = $GLOBALS['core'];
$core->addBehavior('initWidgets', array('widgetsCategoriesPage', 'initWidgets'));
}
// Widget function
public static function categoriesPageWidgets($widget) {
$core = $GLOBALS['core'];
$url = $core->url;
if ($widget->offline)
return;
if (($widget->homeonly == 1 && $url->type !== 'default') ||
($widget->homeonly == 2 && $url->type === 'default')) {
return;
}
$res =
($widget->title ? $widget->renderTitle(html::escapeHTML($widget->title)) : '').
'<p><a href="'.$core->blog->url.$core->url->getBase('categories').'">'.
($widget->link_title ? html::escapeHTML($widget->link_title) : __('All categories')).
'</a></p>';
return $widget->renderDiv($widget->content_only,'categories '.$widget->class,'',$res);
}
public static function initWidgets($widget) {
$text = __('Categories Page');
$widget->create('CategoriesPage', $text, array('widgetsCategoriesPage', 'categoriesPageWidgets'));
$categoriesPage = $widget->CategoriesPage;
$categoriesPage->setting('title', __('Title:'), $text, 'text');
$categoriesPage->setting('homeonly', __('Display on:'), 0, 'combo', array(
__('All pages') => 0,
__('Home page only') => 1,
__('Except on home page') => 2
)
);
$categoriesPage->setting('content_only', __('Content only'), 0, 'check');
$categoriesPage->setting('class', __('CSS class:'), '');
$categoriesPage->setting('offline',__('Offline'),0,'check');
}
}