<?
/* 
Plugin Name:  SaveTrigger
Description:  Do something after a record is saved
Version: 1.00 
Requires at least: 2.04 
*/

// CMS load viewer library
@include_once('/home/linley5/public_html/cms_builder/lib/viewer_functions.php');
if (!function_exists('getRecords')) { die("Couldn't load viewer library, check filepath in sourcecode."); }

addAction('record_postsave', '_save_trigger_post', null, 4);

function _save_trigger_post($tablename, $isNewRecord, $oldRecord, $recordNum) 
{ 
	if ($tablename=="tags" || $tablename=='events' || $tablename=='reports')
	{
		//Update redirects in .htaccess
		$web_path="/home/linley5/public_html";
		$short_url=array();
		$redirect=array();
		
		//Newsletters
		list($tagsRecords, $tagsMetaData) = getRecords(array(
			'tableName'   => 'tags',
			'loadUploads' => '0',
			'loadCreatedBy' => 'false', 
			'allowSearch' => false,  
			));
		$i=0;
		foreach ($tagsRecords as $record)
		{
			if ($record["short_url"]!="")
			{
				$short_url[]=$record["short_url"];
				$redirect[]="newsletters/home.php?tag=".$record["num"];
				//echo $short_url[$i]."=".$redirect[$i++]."<BR>";
			}
		}
		
		//Events
		list($eventsRecords, $eventsMetaData) = getRecords(array(
			'tableName'   => 'events',
			'loadUploads' => '0',
			'loadCreatedBy' => 'false', 
			'allowSearch' => false,  
			'where' => 'publish=1 and short_url IS NOT NULL',
			));
		foreach ($eventsRecords as $record)
		{
			if ($record["short_url"]!="")
			{
				$short_url[]=$record["short_url"];
				$redirect[]="events/event.php?num=".$record["num"];
				//echo $short_url[$i]."=".$redirect[$i++]."<BR>";
			}
		}
		
		//Reports
		list($reportsRecords, $reportsMetaData) = getRecords(array(
			'tableName'   => 'reports',
			'loadUploads' => '0',
			'loadCreatedBy' => 'false', 
			'allowSearch' => false,  
			'where' => 'publish=1 and short_url IS NOT NULL',
			));
		foreach ($reportsRecords as $record)
		{
			if ($record["short_url"]!="")
			{
				$short_url[]=$record["short_url"];
				$redirect[]="report_detail.php?num=".$record["num"];
				//echo $short_url[$i]."=".$redirect[$i++]."<BR>";
			}
		}
		
		//get content of .htaccess
		$ht=file_get_contents($web_path."/.htaccess");
		//echo $ht."<BR>";
		
		//Replace list of Redirects and write .htaccess
		$p=strpos($ht, "#SHORT-URL REDIRECTS");
		if ($p!==false)
		{
			$p2=strpos($ht, "#SHORT-URL END", $p);  
			if ($p2!==false)
			{
				//rewrite beginning of .htaccess
				$new_ht=substr($ht,0,$p)
					."#SHORT-URL REDIRECTS\n";
				
				//Write Bots List in blocks of 50 IP addresses
				$i=0;
				foreach ($short_url as $url)
				{
					$new_ht.="\nRewriteCond %{REQUEST_URI} ^/".$url."$\n"
						."RewriteRule (.*) http://www.linleygroup.com/".$redirect[$i]." [L]\n";
					$i++;
				}
						
				//re-write end of .htaccess
				$new_ht.="\n".substr($ht,$p2); 
				//echo "<PRE>".$new_ht."</PRE><BR>";
	
				//rewrite .htaccess file
				file_put_contents($web_path."/.htaccess", $new_ht);
			}
		}
	}
}
?>