From 42c62cb041a2b2b95c9cda0c20fcf70334fd244c Mon Sep 17 00:00:00 2001 From: deva Date: Tue, 1 Nov 2011 09:32:21 +0000 Subject: Rewl og krat... needs cleaning up - after port to GIT. --- utils/refs.php | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 utils/refs.php (limited to 'utils/refs.php') diff --git a/utils/refs.php b/utils/refs.php new file mode 100644 index 0000000..0589cff --- /dev/null +++ b/utils/refs.php @@ -0,0 +1,139 @@ +mod); + if($module && method_exists($module, "showRef")) { + $str .= "
\n"; + $str .= /*"[".$this->mod."] - ".*/$module->showRef($this->id); + $str .= "
\n"; + } + return $str; + } + + function Ref($mod, $id) + { + $this->mod = $mod; + $this->id = $id; + } +} + +class Refs { + public $refs = array(); + + function show() + { + $str = ""; + $str .= "
\n"; + $str .= "
References:
\n"; + foreach($this->refs as $ref) { + $str .= $ref->show(); + } + $str .= "
"; + return $str; + } + + public function write($fp, $indent) + { + if($this->refs) { + fwrite($fp, $indent."\n"); + foreach($this->refs as $ref) { + fwrite($fp, $indent." mod."\" id=\"".$ref->id."\"/>\n"); + } + fwrite($fp, $indent."\n"); + } + } + + public function add($ref) + { + array_push($this->refs, $ref); + } + + public function Refs($refsnode = NULL) + { + if(!$refsnode) return; + + $refs = $refsnode->getElementsByTagName('ref'); + foreach($refs as $r) { + $ref = new Ref($r->getAttribute('mod'), + $r->getAttribute('id')); + $this->add($ref); + } + + } + +} + +function refsAddWidget($form, $refslist) +{ + $form->addWidget(new ListEditor("References:", "refslist", + new LineEdit("ID", "ref_id"), + new LineEdit("Module", "ref_mod"), + $refslist, true)); +} + +function refsAddHiddenWidget($form, $lst) +{ + $vallst = array(); + $vallst["refslist_hidden"] = serialize(refsGetCommaListFromRefs($lst)); + $form->addWidget(new Hidden($vallst)); +} + +function refsGetFromHidden($vals) +{ + $refslist = unserialize($vals["refslist_hidden"]); + return $refslist; +} + +function refsGetCommaListFromRefs($refs) +{ + $lst = array(); + foreach($refs->refs as $ref) { + array_push($lst, $ref->mod.":".$ref->id); + } + return $lst; +} + +function refsGetRefsFromHidden($vals) +{ + $r = refsGetFromHidden($vals); + + $refs = new Refs(); + foreach($r as $k => $val) { + $v = explode(":", $val); + $refmod = $v[0]; + $refid = $v[1]; + $ref = new Ref($refmod, $refid); + $refs->add($ref); + } + + return $refs; +} + +function refsGetRefsFromWidget() +{ + $lst = refsGetValuesFromWidget(); + $refs = new Refs(); + foreach($lst as $val) { + $v = explode(":", $val); + $refmod = $v[0]; + $refid = $v[1]; + $ref = new Ref($refmod, $refid); + $refs->add($ref); + } + return $refs; +} + +function refsGetValuesFromWidget() +{ + global $GLOBALS; + return $GLOBALS["refslist"]; +} +?> \ No newline at end of file -- cgit v1.2.3