From aa716b0b246bb9efa678dae48c1e36a315b5e3e4 Mon Sep 17 00:00:00 2001
From: Kelly Rauchenberger <fefferburbia@gmail.com>
Date: Sat, 6 Sep 2008 21:14:00 +0000
Subject: Series: Started work on Series Control

Refs #28
---
 series/core/trunk/includes/db.php        |  23 +++++
 series/core/trunk/includes/instadisc.php |  43 +++++++++
 series/core/trunk/includes/template.php  | 160 +++++++++++++++++++++++++++++++
 3 files changed, 226 insertions(+)
 create mode 100644 series/core/trunk/includes/db.php
 create mode 100644 series/core/trunk/includes/instadisc.php
 create mode 100644 series/core/trunk/includes/template.php

(limited to 'series/core/trunk/includes')

diff --git a/series/core/trunk/includes/db.php b/series/core/trunk/includes/db.php
new file mode 100644
index 0000000..6c08708
--- /dev/null
+++ b/series/core/trunk/includes/db.php
@@ -0,0 +1,23 @@
+<?php
+
+/* InstaDisc Series - A Four Island Project */
+
+if (!file_exists('includes/config.php'))
+{
+        header('Location: install.php');
+        exit;
+}
+
+if (file_exists('install.php'))
+{
+        die('Excuse me, but you need to delete install.php before you can use this as leaving install.php there is a biiiig security hole.');
+}
+
+session_start();
+
+include('includes/config.php');
+
+mysql_connect($dbhost, $dbuser, $dbpass);
+mysql_select_db($dbname);
+
+?>
diff --git a/series/core/trunk/includes/instadisc.php b/series/core/trunk/includes/instadisc.php
new file mode 100644
index 0000000..f67ce44
--- /dev/null
+++ b/series/core/trunk/includes/instadisc.php
@@ -0,0 +1,43 @@
+<?php
+
+/* InstaDisc Series - A Four Island Project */
+
+include('includes/db.php');
+include('includes/template.php');
+
+function instaDisc_subscriptionExists($id)
+{
+	$getsub = "SELECT * FROM subscriptions WHERE identity = \"" . mysql_real_escape_string($id) . "\"";
+	$getsub2 = mysql_query($getsub);
+	$getsub3 = mysql_fetch_array($getsub2);
+	if ($getsub3['identity'] != $id)
+	{
+		return 'false';
+	} else {
+		return 'true';
+	}
+}
+
+function instaDisc_getSubscription($id)
+{
+	$getsub = "SELECT * FROM subscriptions WHERE identity = \"" . mysql_real_escape_string($id) . "\"";
+	$getsub2 = mysql_query($getsub);
+	$getsub3 = mysql_fetch_array($getsub2);
+
+	return $getsub3;
+}
+
+function instaDisc_getAllSubscriptions()
+{
+	$getsubs = "SELECT * FROM subscriptions";
+	$getsubs2 = mysql_query($getsubs);
+	$i=0;
+	while ($getsubs3[$i] = mysql_fetch_array($getsubs2))
+	{
+		$i++;
+	}
+
+	return $getsubs3;
+}
+
+?>
diff --git a/series/core/trunk/includes/template.php b/series/core/trunk/includes/template.php
new file mode 100644
index 0000000..b4ec16b
--- /dev/null
+++ b/series/core/trunk/includes/template.php
@@ -0,0 +1,160 @@
+<?php
+/*
+       444444444  
+      4::::::::4  
+     4:::::::::4  
+    4::::44::::4  
+   4::::4 4::::4   Four Island
+  4::::4  4::::4  
+ 4::::4   4::::4   Written and maintained by Starla Insigna
+4::::444444::::444
+4::::::::::::::::4  includes/template.php
+4444444444:::::444
+          4::::4   Please do not use, reproduce or steal the
+          4::::4   contents of this file without explicit
+          4::::4   permission from Hatkirby.
+        44::::::44
+        4::::::::4
+        4444444444
+*/
+
+class FITemplate
+{
+
+	var $file;
+	var $tags;
+	var $blocks;
+	var $refs;
+
+	function FITemplate($filename)
+	{
+		$tfn = 'theme/' . $filename . '.tpl';
+		if (file_exists($tfn))
+		{
+			$this->file = $tfn;
+		} else {
+			throw new Exception($tfn . ' does not exist');
+		}
+	}
+
+	function add($name, $value)
+	{
+		$this->tags[$name] = $value;
+	}
+
+	function adds($tagarr)
+	{
+		foreach ($tagarr as $name => $value)
+		{
+			$this->add($name,$value);
+		}
+	}
+
+	function adds_block($block, $tagarr)
+	{
+		if (!isset($this->blocks[$block]))
+		{
+			$this->blocks[$block] = array('count' => 1);
+		}
+		foreach ($tagarr as $name => $value)
+		{
+			$this->blocks[$block][$this->blocks[$block]['count']][$name] = $value;
+		}
+		$this->blocks[$block]['count']++;
+	}
+
+	function add_ref($id, $block, $tagarr)
+	{
+		$this->adds_block($block,$tagarr);
+		$this->refs[$id] = &$this->blocks[$block][$this->blocks[$block]['count']-1];//'$this->blocks[\'' . $block . '\'][' . ($this->blocks[$block]['count']-1) . ']';
+	}
+
+	function adds_ref($id, $tagarr)
+	{
+		foreach ($tagarr as $name => $value)
+		{
+			$this->refs[$id][$name] = $value;
+		}
+	}
+
+	function adds_ref_sub($id, $block, $tagarr)
+	{
+		if (!isset($this->refs[$id][$block]))
+		{
+			$this->refs[$id][$block] = array('count' => 1);
+		}
+		foreach ($tagarr as $name => $value)
+		{
+			$this->refs[$id][$block][$this->refs[$id][$block]['count']][$name] = $value;
+		}
+		$this->refs[$id][$block]['count']++;
+	}
+
+	function display()
+	{
+		$template = file_get_contents($this->file);
+		while (preg_match('/<!--INCLUDE ([^>]*)-->/',$template) == 1)
+		{
+			preg_match('/<!--INCLUDE ([^>]*)-->/',$template,$mat);
+			$fname = $mat[1];
+			$itmp = new FITemplate($fname);
+			$template = str_replace('<!--INCLUDE ' . $fname . '-->',file_get_contents($itmp->file),$template);
+		}
+		if (isset($this->tags))
+		{
+			foreach ($this->tags as $name => $value)
+			{
+				$template = str_replace('<!--' . $name . '-->',$value,$template);
+			}
+		}
+		if (isset($this->blocks))
+		{
+			foreach ($this->blocks as $bname => $block)
+			{
+				$this->parseBlock($template, $bname, $block);
+			}
+		}
+		while (preg_match('/<!--BEGIN ([^>]*)-->/',$template) == 1)
+		{
+			preg_match('/<!--BEGIN ([^>]*)-->/',$template,$mat);
+			$bname = $mat[1];
+			$start = strpos($template,'<!--BEGIN ' . $bname . '-->');
+			$end = strpos($template,'<!--END ' . $bname . '-->');
+			$template = str_replace(substr($template,$start,$end-$start+strlen($bname)+11),'',$template);
+		}
+		$template = preg_replace('/<!--([^>]*)-->/','',$template);
+		echo($template);
+	}
+
+	function parseBlock(&$template, $bname, $block)
+	{
+		while (strpos($template,'<!--BEGIN ' . $bname . '-->') !== FALSE)
+		{
+			$start = strpos($template,'<!--BEGIN ' . $bname . '-->');
+			$end = strpos($template,'<!--END ' . $bname . '-->');
+			$gencont = substr($template,$start+strlen($bname)+13,$end-$start-strlen($bname)-13);
+			$blockcont = '';
+			foreach ($block as $lname => $blocktags)
+			{
+				if ($lname != 'count')
+				{
+					$scrcont = $gencont;
+					foreach ($blocktags as $name => $value)
+					{
+						if (!is_array($value))
+						{
+							$scrcont = str_replace('<!--' . $bname . '.' . $name . '-->',$value,$scrcont);
+						} else {
+							$this->parseBlock($scrcont, $bname . '.' . $name, $value);
+						}
+					}
+					$blockcont .= $scrcont;
+				}
+			}
+			$template = str_replace(substr($template,$start,$end-$start+strlen($bname)+11),$blockcont,$template);
+		}
+	}
+
+}
+
+?>
-- 
cgit 1.4.1