# # Licensed under the GPL version 2.0 license. # A copy is available in LICENSE file or at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html # -- END LICENSE BLOCK ------------------------------------ if (!defined('DC_CONTEXT_ADMIN')) { return; } $page_title = __('URL handlers'); try { # Read default handlers $handlers = myUrlHandlers::getDefaults(); # Overwrite with user settings $settings = @unserialize(dcCore::app()->blog->settings->myurlhandlers->url_handlers); if (is_array($settings)) { foreach ($settings as $name=>$url) { if (isset($handlers[$name])) { $handlers[$name] = $url; } } } unset($settings); if (!empty($_POST['handlers']) && is_array($_POST['handlers'])) { foreach ($_POST['handlers'] as $name=>$url) { $url = text::tidyURL($url); if (empty($handlers[$name])) { throw new Exception(sprintf( __('Handler "%s" doesn\'t exist.'),html::escapeHTML($name))); } if (empty($url)) { throw new Exception(sprintf( __('Invalid URL for handler "%s".'),html::escapeHTML($name))); } $handlers[$name] = $url; } # Get duplicates $w = array_unique(array_diff_key($handlers,array_unique($handlers))); /** * * Error on the line * array_walk($w,create_function('&$v,$k,$h','$v = array_keys($h,$v);'),$handlers); * * Begin fix */ $v = function (&$v,$k,$h) { return array_keys($h,$v); }; array_walk($w,$v,$handlers); /** * End fix */ $w = call_user_func_array('array_merge',$w); if (!empty($w)) { throw new Exception(sprintf( __('Duplicate URL in handlers "%s".'),implode('", "',$w))); } } if (isset($_POST['act_save'])) { dcCore::app()->blog->settings->myurlhandlers->put('url_handlers',serialize($handlers)); dcCore::app()->blog->triggerBlog(); $msg = __('URL handlers have been successfully updated.'); } elseif (isset($_POST['act_restore'])) { dcCore::app()->blog->settings->myurlhandlers->put('url_handlers',serialize(array())); dcCore::app()->blog->triggerBlog(); $handlers = myUrlHandlers::getDefaults(); $msg = __('URL handlers have been successfully restored.'); } } catch (Exception $e) { dcCore::app()->error->add($e->getMessage()); } /* DISPLAY --------------------------------------------------- */ ?>