*/ /* Required class */ GalleryCoreApi::requireOnce('modules/rewrite/classes/RewriteParser.class'); /* Status code used by the PHP Path Info parser */ define('REWRITE_STATUS_NO_PATH_INFO', 21); /** * This URL Rewrite parser provides PHP Path Info support for short URLs. * * @package Rewrite * @subpackage Parsers */ class PathInfoParser extends RewriteParser { function PathInfoParser() { $this->_setParserId('pathinfo'); $this->_setParserType('inGallery'); $this->_setUrlGeneratorId('PathInfoUrlGenerator'); } /** * @see RewriteParser::saveActiveRules */ function saveActiveRules($activeRules=null, $rewriteModule=null) { GalleryCoreApi::requireOnce( 'modules/rewrite/classes/parsers/pathinfo/PathInfoHelper.class'); return PathInfoHelper::saveActiveRules($this, $activeRules, $rewriteModule); } /** * @see RewriteParser::needsConfiguration */ function needsConfiguration() { GalleryCoreApi::requireOnce( 'modules/rewrite/classes/parsers/pathinfo/PathInfoHelper.class'); list ($ret, $code) = PathInfoHelper::checkPathInfo(); if ($ret) { return array($ret->wrap(__FILE__, __LINE__), null); } return array(null, $code != REWRITE_STATUS_OK); } /** * @see RewriteParser::loadTestResultsTemplate */ function loadTestResultsTemplate(&$template, &$form) { GalleryCoreApi::requireOnce( 'modules/rewrite/classes/parsers/pathinfo/PathInfoHelper.class'); return PathInfoHelper::loadTestResultsTemplate($template, $form); } /** * @see RewriteParser::handleTestResultsRequest */ function handleTestResultsRequest($form) { $error = $status = array(); $ret = GalleryCoreApi::assertUserIsSiteAdministrator(); if ($ret) { return array($ret->wrap(__FILE__, __LINE__), null, null); } if (isset($form['force']['test'])) { $ret = GalleryCoreApi::setPluginParameter('module', 'rewrite', 'pathinfo.forced', '1'); if ($ret) { return array($ret->wrap(__FILE__, __LINE__), null, null); } } $status['saved'] = 1; return array(null, $error, $status); } } ?>