switch to dotclear 2.24
This commit is contained in:
parent
06d8275d22
commit
0923f870e4
8 changed files with 248 additions and 180 deletions
47
README.md
47
README.md
|
@ -1,3 +1,46 @@
|
||||||
# myUrlHandlers
|
# README
|
||||||
|
|
||||||
Version actualisée de l’extension [myUrlHandlers](https://lab.dotclear.org/wiki/plugin/myUrlHandlers) pour Dotclear afin d’assurer son fonctionnement avec les nouvelles versions de Dotclear et de PHP.
|
[![Release](https://img.shields.io/github/v/release/JcDenis/myUrlHandlers)](https://github.com/JcDenis/myUrlHandlers/releases)
|
||||||
|
[![Date](https://img.shields.io/github/release-date/JcDenis/myUrlHandlers)](https://github.com/JcDenis/myUrlHandlers/releases)
|
||||||
|
[![Issues](https://img.shields.io/github/issues/JcDenis/myUrlHandlers)](https://github.com/JcDenis/myUrlHandlers/issues)
|
||||||
|
[![Dotclear](https://img.shields.io/badge/dotclear-v2.24-blue.svg)](https://fr.dotclear.org/download)
|
||||||
|
[![Dotaddict](https://img.shields.io/badge/dotaddict-official-green.svg)](https://plugins.dotaddict.org/dc2/details/myUrlHandlers)
|
||||||
|
[![License](https://img.shields.io/github/license/JcDenis/myUrlHandlers)](https://github.com/JcDenis/myUrlHandlers/blob/master/LICENSE)
|
||||||
|
|
||||||
|
## WHAT IS MYURLHANLDERS ?
|
||||||
|
|
||||||
|
_myUrlHandlers_ is a plugin for the open-source
|
||||||
|
web publishing software called Dotclear.
|
||||||
|
|
||||||
|
You can change public URL of each Dotclear parts,
|
||||||
|
like post, category, etc and some plugins having public parts.
|
||||||
|
|
||||||
|
## REQUIREMENTS
|
||||||
|
|
||||||
|
_myUrlHandlers_ requires:
|
||||||
|
|
||||||
|
* contentadmin permissions for management
|
||||||
|
* Dotclear 2.24
|
||||||
|
|
||||||
|
## USAGE
|
||||||
|
|
||||||
|
First install _myUrlHandlers_, manualy from a zip package or from
|
||||||
|
Dotaddict repository. (See Dotclear's documentation to know how do this)
|
||||||
|
|
||||||
|
You can manage your URLs from menu ''URL handlers'' on sidebar
|
||||||
|
or you can add dashboard icon.
|
||||||
|
|
||||||
|
## LINKS
|
||||||
|
|
||||||
|
* License : [GNU GPL v2](https://www.gnu.org/licenses/old-licenses/lgpl-2.0.html)
|
||||||
|
* Source & contribution : [GitHub Page](https://github.com/JcDenis/myUrlHandlers)
|
||||||
|
* Packages & details: [Dotaddict Page](https://plugins.dotaddict.org/dc2/details/myUrlHandlers)
|
||||||
|
* Discuss and help : [Dotclear Forum](https://forum.dotclear.org/viewtopic.php?id=40893)
|
||||||
|
|
||||||
|
## CONTRIBUTORS
|
||||||
|
|
||||||
|
* Alex pirine (First author)
|
||||||
|
* te2dy
|
||||||
|
* Jean-Christian Denis
|
||||||
|
|
||||||
|
You are welcome to contribute to this code.
|
60
_admin.php
60
_admin.php
|
@ -1,31 +1,33 @@
|
||||||
<?php
|
<?php
|
||||||
# -- BEGIN LICENSE BLOCK ----------------------------------
|
/**
|
||||||
# This file is part of My URL handlers, a plugin for Dotclear.
|
* @brief myUrlHandlers, a plugin for Dotclear 2
|
||||||
#
|
*
|
||||||
# Copyright (c) 2007-2015 Alex Pirine
|
* @package Dotclear
|
||||||
# <alex pirine.fr>
|
* @subpackage Plugin
|
||||||
#
|
*
|
||||||
# Licensed under the GPL version 2.0 license.
|
* @author Alex Pirine and contributors
|
||||||
# A copy is available in LICENSE file or at
|
*
|
||||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
* @copyright Jean-Christian Denis
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
*/
|
||||||
if (!defined('DC_CONTEXT_ADMIN')) { return; }
|
if (!defined('DC_CONTEXT_ADMIN')) {
|
||||||
|
return;
|
||||||
$_menu['Blog']->addItem(__('URL handlers'),'plugin.php?p=myUrlHandlers',
|
|
||||||
'index.php?pf=myUrlHandlers/icon.png',
|
|
||||||
preg_match('/plugin.php\?p=myUrlHandlers$/',$_SERVER['REQUEST_URI']),
|
|
||||||
dcCore::app()->auth->check('contentadmin',dcCore::app()->blog->id));
|
|
||||||
|
|
||||||
dcCore::app()->addBehavior('adminDashboardFavorites','myUrlHandlersDashboardFavorites');
|
|
||||||
|
|
||||||
function myUrlHandlersDashboardFavorites($core,$favs)
|
|
||||||
{
|
|
||||||
$favs->register('myUrlHandlers', array(
|
|
||||||
'title' => __('URL handlers'),
|
|
||||||
'url' => 'plugin.php?p=myUrlHandlers',
|
|
||||||
'small-icon' => 'index.php?pf=myUrlHandlers/icon.png',
|
|
||||||
'large-icon' => 'index.php?pf=myUrlHandlers/icon-big.png',
|
|
||||||
'permissions' => 'contentadmin'
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dcCore::app()->menu[dcAdmin::MENU_PLUGINS]->addItem(
|
||||||
|
__('URL handlers'),
|
||||||
|
dcCore::app()->adminurl->get('admin.plugin.myUrlHandlers'),
|
||||||
|
dcPage::getPF('myUrlHandlers/icon.png'),
|
||||||
|
preg_match('/' . preg_quote(dcCore::app()->adminurl->get('admin.plugin.myUrlHandlers')) . '(&.*)?$/', $_SERVER['REQUEST_URI']),
|
||||||
|
dcCore::app()->auth->check(dcAuth::PERMISSION_CONTENT_ADMIN, dcCore::app()->blog->id)
|
||||||
|
);
|
||||||
|
|
||||||
|
dcCore::app()->addBehavior('adminDashboardFavoritesV2', function ($favs) {
|
||||||
|
$favs->register('myUrlHandlers', [
|
||||||
|
'title' => __('URL handlers'),
|
||||||
|
'url' => dcCore::app()->adminurl->get('admin.plugin.myUrlHandlers'),
|
||||||
|
'small-icon' => dcPage::getPF('myUrlHandlers/icon.png'),
|
||||||
|
'large-icon' => dcPage::getPF('myUrlHandlers/icon-big.png'),
|
||||||
|
'permissions' => dcAuth::PERMISSION_CONTENT_ADMIN,
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
41
_define.php
41
_define.php
|
@ -1,28 +1,31 @@
|
||||||
<?php
|
<?php
|
||||||
# -- BEGIN LICENSE BLOCK ----------------------------------
|
/**
|
||||||
# This file is part of My URL handlers, a plugin for Dotclear.
|
* @brief myUrlHandlers, a plugin for Dotclear 2
|
||||||
#
|
*
|
||||||
# Copyright (c) 2007-2015 Alex Pirine
|
* @package Dotclear
|
||||||
# <alex pirine.fr>
|
* @subpackage Plugin
|
||||||
#
|
*
|
||||||
# Licensed under the GPL version 2.0 license.
|
* @author Alex Pirine and contributors
|
||||||
# A copy is available in LICENSE file or at
|
*
|
||||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
* @copyright Jean-Christian Denis
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
*/
|
||||||
if (!defined('DC_RC_PATH')) { return; }
|
if (!defined('DC_RC_PATH')) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
$this->registerModule(
|
$this->registerModule(
|
||||||
'My URL handlers', // Name
|
'My URL handlers',
|
||||||
'Change Dotclear URL handlers', // Description
|
'Change Dotclear URL handlers',
|
||||||
'Alex Pirine and contributors', // Author
|
'Alex Pirine and contributors',
|
||||||
'2022.08', // Version
|
'2022.11.26',
|
||||||
[
|
[
|
||||||
'permissions' => 'contentadmin',
|
'requires' => [['core', '2.24']],
|
||||||
|
'permissions' => dcAuth::PERMISSION_CONTENT_ADMIN,
|
||||||
'priority' => 150000,
|
'priority' => 150000,
|
||||||
'type' => 'plugin',
|
'type' => 'plugin',
|
||||||
'dc_min' => '2.7',
|
|
||||||
'support' => 'http://forum.dotclear.org/viewforum.php?id=16',
|
'support' => 'http://forum.dotclear.org/viewforum.php?id=16',
|
||||||
'details' => 'http://plugins.dotaddict.org/dc2/details/myUrlHandlers'
|
'details' => 'http://plugins.dotaddict.org/dc2/details/myUrlHandlers',
|
||||||
|
'repository' => 'https://raw.githubusercontent.com/JcDenis/myUrlHandlers/master/dcstore.xml',
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
54
_install.php
54
_install.php
|
@ -1,28 +1,40 @@
|
||||||
<?php
|
<?php
|
||||||
# -- BEGIN LICENSE BLOCK ----------------------------------
|
/**
|
||||||
# This file is part of My URL handlers, a plugin for Dotclear.
|
* @brief myUrlHandlers, a plugin for Dotclear 2
|
||||||
#
|
*
|
||||||
# Copyright (c) 2007-2015 Alex Pirine
|
* @package Dotclear
|
||||||
# <alex pirine.fr>
|
* @subpackage Plugin
|
||||||
#
|
*
|
||||||
# Licensed under the GPL version 2.0 license.
|
* @author Alex Pirine and contributors
|
||||||
# A copy is available in LICENSE file or at
|
*
|
||||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
* @copyright Jean-Christian Denis
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
*/
|
||||||
|
if (!defined('DC_RC_PATH')) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
if (!defined('DC_CONTEXT_ADMIN')) { return; }
|
$label = basename(__DIR__);
|
||||||
|
$new_version = dcCore::app()->plugins->moduleInfo($label, 'version');
|
||||||
|
|
||||||
$label = basename(dirname(__FILE__));
|
if (version_compare(dcCore::app()->getVersion($label), $new_version, '>=')) {
|
||||||
$m_version = dcCore::app()->plugins->moduleInfo($label,'version');
|
|
||||||
$i_version = dcCore::app()->getVersion($label);
|
|
||||||
|
|
||||||
if (version_compare($i_version,$m_version,'>=')) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
dcCore::app()->blog->settings->addNamespace('myurlhandlers');
|
try {
|
||||||
$s = &dcCore::app()->blog->settings->myurlhandlers;
|
dcCore::app()->blog->settings->addNamespace('myurlhandlers');
|
||||||
$s->put('url_handlers','','string','Personalized URL handlers',false);
|
dcCore::app()->blog->settings->myurlhandlers->put(
|
||||||
|
'url_handlers',
|
||||||
|
'',
|
||||||
|
'string',
|
||||||
|
'Personalized URL handlers',
|
||||||
|
false
|
||||||
|
);
|
||||||
|
dcCore::app()->setVersion($label, $new_version);
|
||||||
|
|
||||||
dcCore::app()->setVersion($label,$m_version);
|
return true;
|
||||||
return true;
|
} catch (Exception $e) {
|
||||||
|
dcCore::app()->error->add($e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
30
_prepend.php
30
_prepend.php
|
@ -1,17 +1,19 @@
|
||||||
<?php
|
<?php
|
||||||
# -- BEGIN LICENSE BLOCK ----------------------------------
|
/**
|
||||||
# This file is part of My URL handlers, a plugin for Dotclear.
|
* @brief myUrlHandlers, a plugin for Dotclear 2
|
||||||
#
|
*
|
||||||
# Copyright (c) 2007-2015 Alex Pirine
|
* @package Dotclear
|
||||||
# <alex pirine.fr>
|
* @subpackage Plugin
|
||||||
#
|
*
|
||||||
# Licensed under the GPL version 2.0 license.
|
* @author Alex Pirine and contributors
|
||||||
# A copy is available in LICENSE file or at
|
*
|
||||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
* @copyright Jean-Christian Denis
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
*/
|
||||||
|
if (!defined('DC_RC_PATH')) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
if (!defined('DC_RC_PATH')) { return; }
|
Clearbricks::lib()->autoload(['myUrlHandlers' => __DIR__ . '/inc/class.myurlhandlers.php']);
|
||||||
|
|
||||||
$__autoload['myUrlHandlers'] = dirname(__FILE__).'/class.myurlhandlers.php';
|
myUrlHandlers::init();
|
||||||
|
|
||||||
myUrlHandlers::init(dcCore::app());
|
|
||||||
|
|
13
dcstore.xml
Normal file
13
dcstore.xml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<modules xmlns:da="http://dotaddict.org/da/">
|
||||||
|
<module id="myUrlHandlers">
|
||||||
|
<name>My URL handlers</name>
|
||||||
|
<version>2022.11.26</version>
|
||||||
|
<author>Alex Pirine and contributors</author>
|
||||||
|
<desc>Change Dotclear URL handlers</desc>
|
||||||
|
<file>https://github.com/JcDenis/myUrlHandlers/releases/download/v2022.11.26/plugin-myUrlHandlers.zip</file>
|
||||||
|
<da:dcmin>2.24</da:dcmin>
|
||||||
|
<da:details>http://plugins.dotaddict.org/dc2/details/myUrlHandlers</da:details>
|
||||||
|
<da:support>http://forum.dotclear.org/viewforum.php?id=16</da:support>
|
||||||
|
</module>
|
||||||
|
</modules>
|
|
@ -1,81 +1,80 @@
|
||||||
<?php
|
<?php
|
||||||
# -- BEGIN LICENSE BLOCK ----------------------------------
|
/**
|
||||||
# This file is part of My URL handlers, a plugin for Dotclear.
|
* @brief myUrlHandlers, a plugin for Dotclear 2
|
||||||
#
|
*
|
||||||
# Copyright (c) 2007-2015 Alex Pirine
|
* @package Dotclear
|
||||||
# <alex pirine.fr>
|
* @subpackage Plugin
|
||||||
#
|
*
|
||||||
# Licensed under the GPL version 2.0 license.
|
* @author Alex Pirine and contributors
|
||||||
# A copy is available in LICENSE file or at
|
*
|
||||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
* @copyright Jean-Christian Denis
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
*/
|
||||||
class myUrlHandlers
|
class myUrlHandlers
|
||||||
{
|
{
|
||||||
private $sets;
|
private $sets;
|
||||||
private $handlers = array();
|
private $handlers = [];
|
||||||
|
|
||||||
private static $defaults = array();
|
private static $defaults = [];
|
||||||
private static $url2post = array();
|
private static $url2post = [];
|
||||||
private static $post_adm_url = array();
|
private static $post_adm_url = [];
|
||||||
|
|
||||||
public static function init($core)
|
public static function init()
|
||||||
{
|
{
|
||||||
# Set defaults
|
# Set defaults
|
||||||
foreach (dcCore::app()->url->getTypes() as $k=>$v)
|
foreach (dcCore::app()->url->getTypes() as $k => $v) {
|
||||||
{
|
|
||||||
if (empty($v['url'])) {
|
if (empty($v['url'])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$p = '/'.preg_quote($v['url'],'/').'/';
|
$p = '/' . preg_quote($v['url'], '/') . '/';
|
||||||
$v['representation'] = str_replace('%','%%',$v['representation']);
|
$v['representation'] = str_replace('%', '%%', $v['representation']);
|
||||||
$v['representation'] = preg_replace($p,'%s',$v['representation'],1,$c);
|
$v['representation'] = preg_replace($p, '%s', $v['representation'], 1, $c);
|
||||||
|
|
||||||
if ($c) {
|
if ($c) {
|
||||||
self::$defaults[$k] = $v;
|
self::$defaults[$k] = $v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (dcCore::app()->getPostTypes() as $k=>$v)
|
foreach (dcCore::app()->getPostTypes() as $k => $v) {
|
||||||
{
|
|
||||||
self::$url2post[$v['public_url']] = $k;
|
self::$url2post[$v['public_url']] = $k;
|
||||||
self::$post_adm_url[$k] = $v['admin_url'];
|
self::$post_adm_url[$k] = $v['admin_url'];
|
||||||
}
|
}
|
||||||
|
|
||||||
# Read user settings
|
# Read user settings
|
||||||
$handlers = (array) @unserialize(dcCore::app()->blog->settings->myurlhandlers->url_handlers);
|
$handlers = (array) @unserialize(dcCore::app()->blog->settings->myurlhandlers->url_handlers);
|
||||||
foreach ($handlers as $name => $url)
|
foreach ($handlers as $name => $url) {
|
||||||
{
|
self::overrideHandler($name, $url);
|
||||||
self::overrideHandler($name,$url);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function overrideHandler($name,$url)
|
public static function overrideHandler($name, $url)
|
||||||
{
|
{
|
||||||
if (!isset(self::$defaults[$name])) {
|
if (!isset(self::$defaults[$name])) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
dcCore::app()->url->register($name,$url,
|
dcCore::app()->url->register(
|
||||||
sprintf(self::$defaults[$name]['representation'],$url),
|
$name,
|
||||||
self::$defaults[$name]['handler']);
|
$url,
|
||||||
|
sprintf(self::$defaults[$name]['representation'], $url),
|
||||||
|
self::$defaults[$name]['handler']
|
||||||
|
);
|
||||||
|
|
||||||
$k = isset(self::$url2post[self::$defaults[$name]['url'].'/%s'])
|
$k = self::$url2post[self::$defaults[$name]['url'] . '/%s'] ?? '';
|
||||||
? self::$url2post[self::$defaults[$name]['url'].'/%s'] : '';
|
|
||||||
|
|
||||||
if ($k) {
|
if ($k) {
|
||||||
dcCore::app()->setPostType($k,self::$post_adm_url[$k],dcCore::app()->url->getBase($name).'/%s');
|
dcCore::app()->setPostType($k, self::$post_adm_url[$k], dcCore::app()->url->getBase($name) . '/%s');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getDefaults()
|
public static function getDefaults()
|
||||||
{
|
{
|
||||||
$res = array();
|
$res = [];
|
||||||
foreach (self::$defaults as $k=>$v)
|
foreach (self::$defaults as $k => $v) {
|
||||||
{
|
|
||||||
$res[$k] = $v['url'];
|
$res[$k] = $v['url'];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
110
index.php
110
index.php
|
@ -1,29 +1,31 @@
|
||||||
<?php
|
<?php
|
||||||
# -- BEGIN LICENSE BLOCK ----------------------------------
|
/**
|
||||||
# This file is part of My URL handlers, a plugin for Dotclear.
|
* @brief myUrlHandlers, a plugin for Dotclear 2
|
||||||
#
|
*
|
||||||
# Copyright (c) 2007-2015 Alex Pirine
|
* @package Dotclear
|
||||||
# <alex pirine.fr>
|
* @subpackage Plugin
|
||||||
#
|
*
|
||||||
# Licensed under the GPL version 2.0 license.
|
* @author Alex Pirine and contributors
|
||||||
# A copy is available in LICENSE file or at
|
*
|
||||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
* @copyright Jean-Christian Denis
|
||||||
# -- END LICENSE BLOCK ------------------------------------
|
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
*/
|
||||||
|
if (!defined('DC_CONTEXT_ADMIN')) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
if (!defined('DC_CONTEXT_ADMIN')) { return; }
|
dcPage::check(dcAuth::PERMISSION_CONTENT_ADMIN);
|
||||||
|
|
||||||
$page_title = __('URL handlers');
|
$page_title = __('URL handlers');
|
||||||
|
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
# Read default handlers
|
# Read default handlers
|
||||||
$handlers = myUrlHandlers::getDefaults();
|
$handlers = myUrlHandlers::getDefaults();
|
||||||
|
|
||||||
# Overwrite with user settings
|
# Overwrite with user settings
|
||||||
$settings = @unserialize(dcCore::app()->blog->settings->myurlhandlers->url_handlers);
|
$settings = @unserialize(dcCore::app()->blog->settings->myurlhandlers->url_handlers);
|
||||||
if (is_array($settings)) {
|
if (is_array($settings)) {
|
||||||
foreach ($settings as $name=>$url)
|
foreach ($settings as $name => $url) {
|
||||||
{
|
|
||||||
if (isset($handlers[$name])) {
|
if (isset($handlers[$name])) {
|
||||||
$handlers[$name] = $url;
|
$handlers[$name] = $url;
|
||||||
}
|
}
|
||||||
|
@ -31,71 +33,66 @@ try
|
||||||
}
|
}
|
||||||
unset($settings);
|
unset($settings);
|
||||||
|
|
||||||
if (!empty($_POST['handlers']) && is_array($_POST['handlers']))
|
if (!empty($_POST['handlers']) && is_array($_POST['handlers'])) {
|
||||||
{
|
foreach ($_POST['handlers'] as $name => $url) {
|
||||||
foreach ($_POST['handlers'] as $name=>$url)
|
|
||||||
{
|
|
||||||
$url = text::tidyURL($url);
|
$url = text::tidyURL($url);
|
||||||
|
|
||||||
if (empty($handlers[$name])) {
|
if (empty($handlers[$name])) {
|
||||||
throw new Exception(sprintf(
|
throw new Exception(sprintf(
|
||||||
__('Handler "%s" doesn\'t exist.'),html::escapeHTML($name)));
|
__('Handler "%s" doesn\'t exist.'),
|
||||||
|
html::escapeHTML($name)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($url)) {
|
if (empty($url)) {
|
||||||
throw new Exception(sprintf(
|
throw new Exception(sprintf(
|
||||||
__('Invalid URL for handler "%s".'),html::escapeHTML($name)));
|
__('Invalid URL for handler "%s".'),
|
||||||
|
html::escapeHTML($name)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
$handlers[$name] = $url;
|
$handlers[$name] = $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get duplicates
|
# Get duplicates
|
||||||
$w = array_unique(array_diff_key($handlers,array_unique($handlers)));
|
$w = array_unique(array_diff_key($handlers, array_unique($handlers)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Error on the line
|
* Error on the line
|
||||||
* array_walk($w,create_function('&$v,$k,$h','$v = array_keys($h,$v);'),$handlers);
|
* array_walk($w,create_function('&$v,$k,$h','$v = array_keys($h,$v);'),$handlers);
|
||||||
*
|
*
|
||||||
* Begin fix
|
* Begin fix
|
||||||
*/
|
*/
|
||||||
|
$v = function (&$v, $k, $h) {
|
||||||
$v = function (&$v,$k,$h) {
|
return array_keys($h, $v);
|
||||||
return array_keys($h,$v);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
array_walk($w,$v,$handlers);
|
array_walk($w, $v, $handlers);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* End fix
|
* End fix
|
||||||
*/
|
*/
|
||||||
|
$w = call_user_func_array('array_merge', $w);
|
||||||
$w = call_user_func_array('array_merge',$w);
|
|
||||||
|
|
||||||
if (!empty($w)) {
|
if (!empty($w)) {
|
||||||
throw new Exception(sprintf(
|
throw new Exception(sprintf(
|
||||||
__('Duplicate URL in handlers "%s".'),implode('", "',$w)));
|
__('Duplicate URL in handlers "%s".'),
|
||||||
|
implode('", "', $w)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($_POST['act_save'])) {
|
||||||
if (isset($_POST['act_save']))
|
dcCore::app()->blog->settings->myurlhandlers->put('url_handlers', serialize($handlers));
|
||||||
{
|
|
||||||
dcCore::app()->blog->settings->myurlhandlers->put('url_handlers',serialize($handlers));
|
|
||||||
dcCore::app()->blog->triggerBlog();
|
dcCore::app()->blog->triggerBlog();
|
||||||
$msg = __('URL handlers have been successfully updated.');
|
dcAdminNotices::addSuccessNotice(__('URL handlers have been successfully updated.'));
|
||||||
}
|
} elseif (isset($_POST['act_restore'])) {
|
||||||
elseif (isset($_POST['act_restore']))
|
dcCore::app()->blog->settings->myurlhandlers->put('url_handlers', serialize([]));
|
||||||
{
|
|
||||||
dcCore::app()->blog->settings->myurlhandlers->put('url_handlers',serialize(array()));
|
|
||||||
dcCore::app()->blog->triggerBlog();
|
dcCore::app()->blog->triggerBlog();
|
||||||
$handlers = myUrlHandlers::getDefaults();
|
$handlers = myUrlHandlers::getDefaults();
|
||||||
$msg = __('URL handlers have been successfully restored.');
|
dcAdminNotices::addSuccessNotice(__('URL handlers have been successfully restored.'));
|
||||||
}
|
}
|
||||||
}
|
} catch (Exception $e) {
|
||||||
catch (Exception $e)
|
|
||||||
{
|
|
||||||
dcCore::app()->error->add($e->getMessage());
|
dcCore::app()->error->add($e->getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,36 +106,33 @@ catch (Exception $e)
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
echo dcPage::breadcrumb(
|
echo dcPage::breadcrumb(
|
||||||
array(
|
[
|
||||||
html::escapeHTML(dcCore::app()->blog->name) => '',
|
html::escapeHTML(dcCore::app()->blog->name) => '',
|
||||||
'<span class="page-title">'.$page_title.'</span>' => ''
|
'<span class="page-title">' . $page_title . '</span>' => '',
|
||||||
)
|
]
|
||||||
);
|
) .
|
||||||
|
dcPage::notices();
|
||||||
|
|
||||||
if (!empty($msg)) {
|
|
||||||
dcPage::success($msg);
|
|
||||||
}
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<?php if (empty($handlers)): ?>
|
<?php if (empty($handlers)): ?>
|
||||||
<p class="message"><?php echo __('No URL handler to configure.'); ?></p>
|
<p class="message"><?php echo __('No URL handler to configure.'); ?></p>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<p><?php echo __('You can write your own URL for each handler of this list.'); ?></p>
|
<p><?php echo __('You can write your own URL for each handler of this list.'); ?></p>
|
||||||
<form action="<?php echo $p_url; ?>" method="post">
|
<form action="<?php echo dcCore::app()->admin->getPageURL(); ?>" method="post">
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr><th>Type</th><th>URL</th></tr>
|
<tr><th>Type</th><th>URL</th></tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<?php
|
<?php
|
||||||
foreach ($handlers as $name=>$url)
|
foreach ($handlers as $name => $url) {
|
||||||
{
|
|
||||||
echo
|
echo
|
||||||
'<tr><td>'.html::escapeHTML($name).'</td><td>'.
|
'<tr><td>' . html::escapeHTML($name) . '</td><td>' .
|
||||||
form::field(array('handlers['.$name.']'),20,255,html::escapeHTML($url)).
|
form::field(['handlers[' . $name . ']'], 20, 255, html::escapeHTML($url)) .
|
||||||
'</td></tr>'."\n";
|
'</td></tr>' . "\n";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p><input type="submit" name="act_save" value="<?php echo __('Save'); ?>" />
|
<p><input type="submit" name="act_save" value="<?php echo __('Save'); ?>" />
|
||||||
|
|
Loading…
Reference in a new issue