a:8:{s:4:"name";s:15:"sgb_url_handler";s:6:"author";s:3:"sgb";s:10:"author_uri";s:23:"http://mighthitgold.net";s:7:"version";s:5:"0.1.4";s:11:"description";s:43:"support all url variations at the same time";s:4:"help";s:3149:"

	<h3>sgb_url_handler</h3>
	<p>TxP 1.0 RC3 introduced a number of (long-awaited) URL options, however there were no options to preserver backwards compatibility with existing links (e.g. off-site links, forums, search engines, etc.). This plugin evolved to filled that gap, allowing authors the option of selecting, newer, cleaner schemes while still supporting existing links. This plugin also introduces the option to add additional link formats. Although manual edits will need to be made to several files for complete support.</p>

	<p>This plugin runs on top of the existing TxP URL parsing code. It parses URLs and adds the values to the super globals <code>$_GET</code>, <code>$_POST</code> and <code>$_REQUEST</code>. Typically TxP will see these requests values and runs as if it were in "messy" mode. If for some reason the plugin is unable to parse the URL it is designed to no alter anything and allow TxP to handle the URL normally.</p>

	<h3>What it Handles</h3>
	<p>As of this version (0.1.4) it handles the following URLs.</p>

	<ul>
		<li>example.com/section/id/title</li>
		<li>example.com/section/title</li>
		<li>example.com/section/category/title</li>
		<li>example.com/section/category</li>
		<li>example.com/section</li>
		<li>example.com/title</li>
		<li>example.com/id/title</li>
		<li>example.com/year/month/day/title</li>
	</ul>

	<p>Additionally, this plugin supports the following trigger words:</p>

	<ul>
		<li>example.com/{section}/Section</li>
		<li>example.com/{category}/Category</li>
		<li>example.com/{author}/Author</li>
		<li>example.com/atom</li>
		<li>example.com/rss</li>
	</ul>

	<p>The plugin supports all these modes with or without a trailing slash. In the event of collisions, the plugin will check the more general term first, e.g. /Section will be checked before /Title.</p>

	<p>Please note, as of TxP 1.0 RC3 (2005-03-05) there appears to be issues with correctly retrieving /Year/Month/Day/Title URLs.</p>

	<p>Also note that this plugin is designed to work with clean URLs on servers without mod_rewrite. You'll need to modify your links and append index.php/ to the beginning, e.g. example.com/index.php/section/id/title.</p>

	<h3>Configuration</h3>
	<p>There are no configuration options for this plugin. Activate and you're ready to go.</p>

	<p>If sgb_error_documents is installed and activated, this plugin will generate 404 Not Found errors for the following situations:</p>

	<ul>
		<li>example.com/validSection/Category/InvalidTitle</li>
		<li>example.com/InvalidSection/Category/ValidTitle</li>
		<li>example.com/validSection/InvalidTitle</li>
		<li>example.com/InvalidSection/ValidTitle</li>
		<li>example.com/AnySection/InvalidID/AnyTitle</li>
		<li>example.com/AnySection/InvalidCategory</li>
	</ul>

	<h3>Changelog</h3>

	<h4>0.1.4</h4>
	<ul>
		<li>Added 404 Not Found support (see documentation for details).</li>
		<li>Resolves articles based on Section &#38; Title whenever possible.</li>
	</ul>

	<h4>0.1.3</h4>
	<ul>
		<li>Fixed /Section/Category/Title parsing.</li>
		<li>Fixed version numbering</li>
	</ul>
	
";s:4:"code";s:5011:"
function sgb_url_checkPath() // void
{
	global $timeoffset;

	if ($_SERVER['PATH_INFO']) {
		$request = trim($_SERVER['PATH_INFO'], '/');
	} else {
		$raw_uri     = trim(array_shift(explode('?', $_SERVER['REQUEST_URI'])), '/');
		$script_path = trim(dirname($_SERVER['SCRIPT_NAME']), '/');
		$request     = trim(substr($raw_uri, strlen($script_path)), '/');
	}

	$parts = explode('/', $request);
	$partsCount = count($parts);

	$triggers = array(
		strtolower(gTxt('section'))  => 'section', 
		strtolower(gTxt('category')) => 'category', 
		strtolower(gTxt('author'))   => 'author', 
		'atom' => 'atom', 
		'rss' => 'rss'
	);

	if (!empty($parts[0])) {
		/*
		** Run against know triggers
		*/
		foreach ($triggers as $trigger) {
			if ($parts[0] == $trigger) {
				sgb_url_doTrigger($trigger, $parts);
				return;
			}
		}

		/*
		** Nothing "tripped" our trigger, so we'll try against one of the URL 
		** cases
		*/

		$trip_404 = function_exists('sgb_error_document');

		// Could be /Title or /Section
		if ($partsCount < 2) {
			// Treat as /Section
			$s = (ckEx('section', $parts[0])) ? $parts[0] : null;

			// Must be /Title
			if (!isset($s)) {
				$rs = lookupByTitle($parts[0]);
				$id = (!empty($rs['ID'])) ? $rs['ID'] : null;
				$s  = (!empty($rs['Section'])) ? $rs['Section'] : null;

				// If an article was not found and were tripping a 404, clear  & 
				if ($trip_404 == 1 && !isset($id)) {
					$s = null;
					$c = null;
				}
			}
		
		// Could be /ID/Title, /Section/Title or /Section/Category
		} else if ($partsCount < 3) {
			// Treat as /ID/Title
			if (is_numeric($parts[0])) {
				$rs = lookupByID($parts[0]);
				$id = (!empty($rs['ID'])) ? $rs['ID'] : null;
				$s  = (!empty($rs['Section'])) ? $rs['Section'] : null;
			
			// Treat as /Section/Title or /Section/Category
			} else {
				// Might be /Section/Category
				$s  = (ckEx('section', $parts[0])) ? $parts[0] : null;
				$c  = (ckEx('category', $parts[1])) ? $parts[1] : null;

				// Must be /Section/Title
				if (!isset($c)) {
					$rs = sgb_lookupBySectionTitle($s, $parts[1]);
					$id = (!empty($rs['ID'])) ? $rs['ID'] : null;
					$s  = (!isset($s)) ? $rs['Section'] : $s;

					// If neither an article nor a category were found clear  & 
					if ($trip_404 == 1 && !isset($id)) {
						$s = null;
						$c = null;
					}
				}
			}
		
		// Could be /Section/ID/Title (Classic URL) or /Section/Category/Title
		} else if ($partsCount < 4) {
			$s  = (ckEx('section', $parts[0])) ? $parts[0] : null;

			// Must be /Section/ID/Title (Classic URL)
			if (is_numeric($parts[1])) {
				$id = (ckExID($parts[1])) ? $parts[1] : null;

			// Must be /Section/Category/Title
			} else {
				$rs = sgb_lookupBySectionTitle($s, $parts[2]);
				$id = (!empty($rs['ID'])) ? $rs['ID'] : null;
				$s  = (!isset($s)) ? $rs['Section'] : $s;
			}

			// If an article was not found and were tripping a 404, clear  & 
			if ($trip_404 == 1 && !isset($id)) {
				$s = null;
				$c = null;
			}
		
		// Could be /Year/Month/Day/Title
		} else if ($partsCount >= 4) {
			$when = date("Y-m-d", strtotime("$parts[0]-$parts[1]-$parts[2]") + $timeoffset);
			$rs = lookupByDateTitle($when, $parts[3]);
			$id = (!empty($rs['ID'])) ? $rs['ID'] : null;
			$s  = (!empty($rs['Section'])) ? $rs['Section'] : null;

			// If an article was not found and were tripping a 404, clear  & 
			if ($trip_404 == 1 && !isset($id)) {
					$s = null;
					$c = null;
			}
		}
	}

	if (isset($id) || (isset($s) || isset($c))) {
		if (empty($_GET['id']) && empty($_POST['id'])) {
			sgb_url_set('id', $id);
		}

		if (empty($_GET['s']) && empty($_POST['s'])) {
			sgb_url_set('s',  $s);
		}

		if (empty($_GET['c']) && empty($_POST['c'])) {
			sgb_url_set('c',  $c);
		}
	} else if ($trip_404 == 1) {
		sgb_error_document('404');
	}

	return;
}

function sgb_url_set($key = null, $value = null) // void
{
	$_GET[$key]     = $value;
	$_POST[$key]    = $value;
	$_REQUEST[$key] = $value;
}

function sgb_url_doTrigger($trigger = 'none', $parts = array()) // void
{
	switch ($trigger)
	{
		case 'atom':
			include txpath.'/publish/atom.php'; exit(atom());

		case 'rss':
			include txpath.'/publish/rss.php'; exit(rss());
		
		case 'section':
			sgb_url_set('s', ((ckEx('section', $parts[1])) ? $parts[1] : 'default'));
		break;
		
		case 'category':
			sgb_url_set('c', ((ckEx('category', $parts[1])) ? $parts[1] : ''));
		break;
		
		case 'author': // right now this can't handle authors so don't do anything and let the regular stuff handle it
		break;
		
		case 'p':
			sgb_url_set('p', ((is_numeric($parts[1])) ? $parts[1] : ''));
		break;
	}
}

function sgb_lookupBySectionTitle($s, $title) // array
{
	return safe_row("ID,Section", 'textpattern', "Section like '".doSlash($s)."' and url_title like '".doSlash($title)."' limit 1", '');
}

sgb_url_checkPath();
";s:3:"md5";s:32:"2c40e8d19a3b765261f9e6562cd16556";}