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 .= " \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"];
}
?>