From aa716b0b246bb9efa678dae48c1e36a315b5e3e4 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger 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 +++++++++++++++++++++++++++++++ series/core/trunk/index.php | 22 +++++ series/core/trunk/install.php | 5 + series/core/trunk/subscription.php | 30 ++++++ series/core/trunk/theme/index.tpl | 7 ++ series/core/trunk/xmlrpc.php | 25 +++++ 8 files changed, 315 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 create mode 100644 series/core/trunk/index.php create mode 100644 series/core/trunk/install.php create mode 100644 series/core/trunk/subscription.php create mode 100644 series/core/trunk/theme/index.tpl create mode 100644 series/core/trunk/xmlrpc.php 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 @@ + 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 @@ + 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 @@ +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('//',$template) == 1) + { + preg_match('//',$template,$mat); + $fname = $mat[1]; + $itmp = new FITemplate($fname); + $template = str_replace('',file_get_contents($itmp->file),$template); + } + if (isset($this->tags)) + { + foreach ($this->tags as $name => $value) + { + $template = str_replace('',$value,$template); + } + } + if (isset($this->blocks)) + { + foreach ($this->blocks as $bname => $block) + { + $this->parseBlock($template, $bname, $block); + } + } + while (preg_match('//',$template) == 1) + { + preg_match('//',$template,$mat); + $bname = $mat[1]; + $start = strpos($template,''); + $end = strpos($template,''); + $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,'') !== FALSE) + { + $start = strpos($template,''); + $end = strpos($template,''); + $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('',$value,$scrcont); + } else { + $this->parseBlock($scrcont, $bname . '.' . $name, $value); + } + } + $blockcont .= $scrcont; + } + } + $template = str_replace(substr($template,$start,$end-$start+strlen($bname)+11),$blockcont,$template); + } + } + +} + +?> diff --git a/series/core/trunk/index.php b/series/core/trunk/index.php new file mode 100644 index 0000000..7d3916c --- /dev/null +++ b/series/core/trunk/index.php @@ -0,0 +1,22 @@ + $value) +{ + if ($value['personal'] == 'false') + { + $template->adds_block('SUBSCRIPTION', array( 'IDENTITY' => $name, + 'TITLE' => $value['title'], + 'CATEGORY' => $value['category'])); + } +} + +$template->display(); + +?> diff --git a/series/core/trunk/install.php b/series/core/trunk/install.php new file mode 100644 index 0000000..3b3f202 --- /dev/null +++ b/series/core/trunk/install.php @@ -0,0 +1,5 @@ + diff --git a/series/core/trunk/subscription.php b/series/core/trunk/subscription.php new file mode 100644 index 0000000..172de32 --- /dev/null +++ b/series/core/trunk/subscription.php @@ -0,0 +1,30 @@ + diff --git a/series/core/trunk/theme/index.tpl b/series/core/trunk/theme/index.tpl new file mode 100644 index 0000000..6c22f3e --- /dev/null +++ b/series/core/trunk/theme/index.tpl @@ -0,0 +1,7 @@ +

Subscriptions Available

+ + diff --git a/series/core/trunk/xmlrpc.php b/series/core/trunk/xmlrpc.php new file mode 100644 index 0000000..60ada6a --- /dev/null +++ b/series/core/trunk/xmlrpc.php @@ -0,0 +1,25 @@ + $sub['url'], + 'category' => $sub['category'] + )); +} + +$s = new xmlrpc_server(array( "InstaDisc.subscriptionInfo" => array('function' => 'subscriptionInfo') + ), 0); +$s->functions_parameters_type = 'phpvals'; +$s->service(); + +?> -- cgit 1.4.1