a:8:{s:4:"name";s:9:"ob1_title";s:7:"version";s:3:"2.1";s:6:"author";s:19:"Henrik J&ouml;nsson";s:10:"author_uri";s:25:"http://rise.lewander.com/";s:11:"description";s:53:"An enhancement for txp:page_title with more features.";s:4:"help";s:4584:"
	<p><div style="background-color:#ffc;padding:10px;border-left:1px solid #ffe;border-top:1px solid #ffe;border-right:1px solid #ddb;border-bottom:1px solid #ddb;line-height:1.4em;"></p>

	<h1 style="font-weight:bold;font-size:1.5em;;">ob1-title</h1>

	<ul>
	<li><a href="#pluginSummary">Summary</a></li>
		<li><a href="#pluginAttributes">Attributes</a>
	<ul>
	<li><a href="#pluginOrder">order</a></li>
		<li><a href="#pluginSeparator">separator</a></li>
		<li><a href="#pluginSearchCriteria">searchcriteria</a></li>
		<li><a href="":#pluginSearchWord">searchword</a></li>
	</ul>
	</li>
		<li><a href="#pluginExamples">Examples</a></li>
		<li><a href="#pluginChangeLog">Changelog</a></li>
		<li><a href="http://rise.lewander.com">Author URL [external]</a></li>
		<li><a href="http://forum.textpattern.com/viewtopic.php?id=3358">TXP forum thread [external]</a></li>
	</ul>

	<h2 style="font-weight:bold;;" id="pluginSummary">Summary</h2>

	<p>My first <acronym title="Textpattern">TXP</acronym> plugin. It is an enhancement to the <code>&lt;txp:page_title /&gt;</code> tag giving the developer right to choose some specific ways of writing out the title, such as with separators, in what order, etc. Read the documentation below for full features.</p>

	<h2 style="font-weight:bold;;" id="pluginAttributes">Attributes</h2>

	<h3 style="font-weight:bold;;" id="pluginOrder">order</h3>

	<p>Here you type up the order you wish the different parts to display. It uses a comma-separated list where the values alowed are <code>%sitename</code>, <code>%section</code>, <code>%category</code>, <code>%article</code>.<br />
<em>%sitename,%article</em> is the default value.</p>

	<h3 style="font-weight:bold;;" id="pluginSeparator">separator</h3>

	<p>What to separate the different parts with.<br />
 &#8211; is the default value.</p>

	<h3 style="font-weight:bold;;" id="pluginSearchCriteria">searchcriteria</h3>

	<p>Do you want the searchcriteria display in the title or not?<br />
<em>1</em> &#8211; Display it (default).<br />
<em>0</em> &#8211; Don&#8217;t display it.</p>

	<h3 style="font-weight:bold;;" id="pluginSearchWord">searchword</h3>

	<p>What word (if any) should be included after the &#8220;Search results&#8221;.<br />
<em>for</em> is the default value.</p>

	<h2 style="font-weight:bold;;" id="pluginExamples">Examples</h2>

	<p><span style="padding: 10px; border: 1px solid #999; background: #eee; display: block; margin: 10px 0 0 0; text-indent: 0; text-align: left; color: #600;width:600px;"><code>&lt;txp:ob1_title order="%article,%sitename" /&gt;</code></span><br />
This will output <strong>Articlename | Sitename</strong></p>

	<p><span style="padding: 10px; border: 1px solid #999; background: #eee; display: block; margin: 10px 0 0 0; text-indent: 0; text-align: left; color: #600;width:600px;"><code>&lt;txp:ob1_title order="%article,%category,%section,%sitename" separator=" :: " /&gt;</code></span><br />
This will output <strong>Articlename :: Category1 :: Category2 :: Section :: Sitename</strong></p>

	<h2 style="font-weight:bold;;" id="pluginChangeLog">Changelog</h2>

	<ul>
	<li>v2.1 &#8211; Rewrote the syntax some to work better.</li>
		<li>v2.0 &#8211; Mayor update, total re-write of the code for instance.</li>
		<li>v1.4 &#8211; Bugfixes, some codecleaning and added attribute <code>showsitename</code>.</li>
		<li>v1.32 &#8211; Small bugfix regarding same as v1.31.</li>
		<li>v1.31 &#8211; Fixed the bug that output &#8220;default&#8221; on the default page.</li>
		<li>v1.3 &#8211; Added support for the <code>spc_section_alias</code> plugin.</li>
		<li>v1.2 &#8211; Fixed the bug that did not display categories. All code was in place just forgot to use it. Doh! Thanks for the people that spotted this.</li>
		<li>v1.1 &#8211; Added support for the <code>casereplace</code> attribute to save server CPU for you non europeans.</li>
		<li>v1.0 &#8211; Added new setting for <code>changecase</code>, <code>ucwords</code>. Moved out the <code>ob1_changecase</code> function into a separate plugin.</li>
		<li>v0.7 &#8211; Added new attributes: searchcriteria, searchword and showcategory.</li>
		<li>v0.41 &#8211; Changed from seperator to correct spelling separator. Thanks for the info Kevin Ashworth.</li>
		<li>v0.4 &#8211; Added casewhere attribute so you can choose what parts of the section to change the case of.</li>
		<li>v0.3 &#8211; Added changecase to be able to change the case of the title output.</li>
		<li>v0.21 &#8211; Release candidate 1.</li>
		<li>v0.1 &#8211; First beta, not released. Many bugs included.<br />
</div>



 ";s:4:"code";s:4272:"	/*
		Plugin: ob1_title
		URL: http://rise.lewander.com/textpattern/68/ob1-title
		Released under the Creative Common License, http://creativecommons.org/licenses/by-nc-nd/2.0/
	*/

	function ob1_title($atts="")
	{
		global $sitename, $id, $c, $q, $parentid, $pg, $s;
		$ob1PatternSite = "/%sitename/i";
		$ob1PatternSection = "/%section/i";
		$ob1PatternCategory = "/%category/i";
		$ob1PatternArticle = "/%article/i";

		// Get ArticleID (if any)
		$fetchID = "";

		if ( !$parentid && $id ) {
			$fetchID = $id;
		} else if ( $parentid ) {
			$fetchID = $parentid;
		}

		extract(lAtts(array(
			"order"=>"%sitename,%article",
			"separator"=>" - ",
			"searchcriteria"=>"1",
			"searchword"=>" for ",
		),$atts));

		if($q){
			return gTxt("search_results").$searchword." &quot;".$q."&quot;".$separator.$sitename;
		}else{
			// check what the order attribute contains
			preg_match($ob1PatternSite,$order,$ob1MatchSite,PREG_OFFSET_CAPTURE);
			preg_match($ob1PatternSection,$order,$ob1MatchSection,PREG_OFFSET_CAPTURE);
			preg_match($ob1PatternCategory,$order,$ob1MatchCategory,PREG_OFFSET_CAPTURE);
			preg_match($ob1PatternArticle,$order,$ob1MatchArticle,PREG_OFFSET_CAPTURE);

			// if $order contains sitename, replace it
			if(count($ob1MatchSite[0])>0){
				$order = preg_replace($ob1PatternSite,$sitename,$order);
				unset($ob1PatternSite);
				unset($ob1MatchSite);
			}

			// if $order contains section, replace it
			if(count($ob1MatchSection[0])>0){
				if(empty($s)||$s=="default"){
					$ob1SectionName = ""; // set to empty since there is no section name available
				}else{
					// check for section title
					$rs = safe_row("title","txp_section","name = '$s' limit 1");
					$ob1SectionName = (empty($rs["title"])) ? $s : $rs["title"];
				}
				$order = preg_replace($ob1PatternSection,$ob1SectionName,$order);
				unset($ob1SectionName);
				unset($ob1PatternSection);
				unset($ob1MatchSection);
			}

			// if $order contains category, replace it
			if(count($ob1MatchCategory[0])>0){
				// get the category name(s)
				if(!empty($c)){
					$rs = safe_row("title","txp_category","name = '$c' limit 1");
					$ob1CategoryName = (empty($rs["title"])) ? $c : $rs["title"];
				}else{
					if(!empty($fetchID)){
						$rs = safe_row("category1, category2","textpattern","id = '$fetchID' limit 1");
						$ob1CategoryOne = $rs["category1"];
						$ob1CategoryTwo = $rs["category2"];
						unset($rs);
						if(!empty($ob1CategoryOne)){
							$rs = safe_row("title","txp_category","name = '$ob1CategoryOne' limit 1");
							$ob1CategoryOne = $rs["title"];
							unset($rs);
						}
						if(!empty($ob1CategoryTwo)){
							$rs = safe_row("title","txp_category","name = '$ob1CategoryTwo' limit 1");
							$ob1CategoryTwo = $rs["title"];
							unset($rs);
						}
						$ob1CategoryName = (empty($ob1CategoryOne)) ? "" : $ob1CategoryOne;
						if(!empty($ob1CategoryTwo)){
							$ob1CategoryName = (empty($ob1CategoryOne)) ? $ob1CategoryTwo : $ob1CategoryName.", ".$ob1CategoryTwo;
						}
					}else{
						$rs = safe_row("title","txp_category","name = '$c' limit 1");
						$ob1CategoryName = (empty($rs["title"])) ? $c : $rs["title"];
					}
				}
				$order = preg_replace($ob1PatternCategory,$ob1CategoryName,$order);
				unset($ob1CategoryName);
				unset($ob1PatternCategory);
				unset($ob1MatchCategory);
			}

			// if $order contains article, replace it
			if(count($ob1MatchArticle[0])>0){
				// get the article name
				if(!empty($fetchID)){
					$rs = safe_row("title","textpattern","id = '$fetchID' limit 1");
					$ob1ArticleName = (empty($rs["title"])) ? "" : $rs["title"];
				}else{
					$ob1ArticleName = "";
				}
				$order = preg_replace($ob1PatternArticle,$ob1ArticleName,$order);
				unset($ob1ArticleName);
				unset($ob1PatternArticle);
				unset($ob1MatchArticle);
			}
			unset($fetchID);
			$arrOb1Order = explode(",",$order);
			unset($order);
			for($i=0;$i<count($arrOb1Order);$i++){
				if(!empty($arrOb1Order[$i])) $arrOb1OrderNew[] = $arrOb1Order[$i];
			}
			unset($arrOb1Order);
			for($i=0;$i<count($arrOb1OrderNew);$i++){
				if($i==0){
					$out[] = $arrOb1OrderNew[$i];
				}else{
					$out[] = $separator.$arrOb1OrderNew[$i];
				}
			}
			unset($arrOb1OrderNew);
			return join("", $out);
		}
	}
";s:3:"md5";s:32:"8d9864ad8bcfd798dcd2ed391836a6e0";}