196 lines
5.7 KiB
PHP
196 lines
5.7 KiB
PHP
<?php
|
|
define('NSPACE', 'lse');
|
|
|
|
header("Content-type: text/plain");
|
|
require_once('DB.php');
|
|
require_once("XML/Util.php");
|
|
require_once("XML/Beautifier.php");
|
|
require_once(dirname(__FILE__)."/../application/configs/conf.php");
|
|
require_once(dirname(__FILE__)."/../application/models/BasicStor.php");
|
|
require_once(dirname(__FILE__)."/../application/models/Prefs.php");
|
|
|
|
PEAR::setErrorHandling(PEAR_ERROR_RETURN);
|
|
$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE);
|
|
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
|
|
$bs = new BasicStor();
|
|
|
|
$stid = $bs->storId;
|
|
#var_dump($stid); exit;
|
|
#$farr = $bs->bsListFolder($stid); var_dump($farr); exit;
|
|
|
|
function admDumpFolder(&$bs, $fid, $ind='')
|
|
{
|
|
// NOTE: need to fix this, removed due to tree removal
|
|
// $name = M2tree::GetObjName($fid);
|
|
// if (PEAR::isError($name)) {
|
|
// echo $name->getMessage();
|
|
// exit;
|
|
// }
|
|
$media = StoredFile::Recall($fid);
|
|
$type = $media->getType();
|
|
$gunid = $media->getGunid();
|
|
$pars = array();
|
|
if ($gunid) {
|
|
$pars['id']="$gunid";
|
|
}
|
|
$pars['name'] = "$name";
|
|
switch ($type) {
|
|
case "audioclip":
|
|
return XML_Util::createTagFromArray(array(
|
|
'namespace' => NSPACE,
|
|
'localPart' => 'audioClip',
|
|
'attributes'=> $pars,
|
|
));
|
|
break;
|
|
case "webstream":
|
|
return XML_Util::createTagFromArray(array(
|
|
'namespace' => NSPACE,
|
|
'localPart' => 'webstream',
|
|
'attributes'=> $pars,
|
|
));
|
|
break;
|
|
case "playlist":
|
|
return XML_Util::createTagFromArray(array(
|
|
'namespace' => NSPACE,
|
|
'localPart' => 'playlist',
|
|
'attributes'=> $pars,
|
|
));
|
|
break;
|
|
default:
|
|
return "";
|
|
}
|
|
}
|
|
|
|
function admDumpGroup(&$bs, $gid, $ind='')
|
|
{
|
|
$name = Subjects::GetSubjName($gid);
|
|
if (PEAR::isError($name)) {
|
|
echo $name->getMessage();
|
|
exit;
|
|
}
|
|
$isGr = Subjects::IsGroup($gid);
|
|
if (PEAR::isError($isGr)) {
|
|
echo $isGr->getMessage();
|
|
exit;
|
|
}
|
|
$pars = array('name'=>"$name");
|
|
$pars['id'] = $gid;
|
|
if (!$isGr) {
|
|
return XML_Util::createTagFromArray(array(
|
|
'namespace' => NSPACE,
|
|
'localPart' => 'member',
|
|
'attributes'=> $pars,
|
|
));
|
|
}
|
|
$garr = Subjects::ListGroup($gid);
|
|
if (PEAR::isError($garr)) {
|
|
echo $garr->getMessage();
|
|
exit;
|
|
}
|
|
$res = '';
|
|
foreach ($garr as $i => $member) {
|
|
$fid2 = $member['id'];
|
|
$res .= admDumpGroup($bs, $fid2, "$ind ");
|
|
}
|
|
$tagarr = array(
|
|
'namespace' => NSPACE,
|
|
'localPart' => 'group',
|
|
'attributes'=> $pars,
|
|
);
|
|
$prefs = admDumpPrefs($bs, $gid);
|
|
if (!is_null($prefs)) {
|
|
$res .= $prefs;
|
|
}
|
|
if ($res) {
|
|
$tagarr['content'] = $res;
|
|
}
|
|
return XML_Util::createTagFromArray($tagarr, $res === '');
|
|
// if (!$res) {
|
|
// } else {
|
|
// return XML_Util::createTagFromArray(array(
|
|
// 'namespace' => NSPACE,
|
|
// 'localPart' => 'group',
|
|
// 'attributes'=> $pars,
|
|
// 'content' => $res,
|
|
// ), FALSE);
|
|
// }
|
|
|
|
}
|
|
function admDumpSubjects(&$bs, $ind='')
|
|
{
|
|
$res ='';
|
|
$subjs = Subjects::GetSubjects('id, login, pass, type');
|
|
foreach ($subjs as $i => $member) {
|
|
switch ($member['type']) {
|
|
case "U":
|
|
$prefs = admDumpPrefs($bs, $member['id']);
|
|
$pars = array('login'=>"{$member['login']}", 'pass'=>"{$member['pass']}");
|
|
$pars['id'] = $member['id'];
|
|
$tagarr = array(
|
|
'namespace' => NSPACE,
|
|
'localPart' => 'user',
|
|
'attributes'=> $pars,
|
|
);
|
|
if (!is_null($prefs)) {
|
|
$tagarr['content'] = $prefs;
|
|
}
|
|
$res .= XML_Util::createTagFromArray($tagarr , FALSE);
|
|
break;
|
|
case "G":
|
|
$res .= admDumpGroup($bs, $member['id'], "$ind ");
|
|
break;
|
|
}
|
|
}
|
|
# return "$ind<subjects>\n$res$ind</subjects>\n";
|
|
return XML_Util::createTagFromArray(array(
|
|
'namespace' => NSPACE,
|
|
'localPart' => 'subjects',
|
|
'content'=> $res,
|
|
), FALSE);
|
|
}
|
|
|
|
function admDumpPrefs(&$bs, $subjid)
|
|
{
|
|
$res ='';
|
|
$pr = new Prefs($bs);
|
|
$prefkeys = $pr->readKeys($subjid);
|
|
# var_dump($subjid); var_dump($prefkeys); #exit;
|
|
foreach ($prefkeys as $i => $prefk) {
|
|
$keystr = $prefk['keystr'];
|
|
$prefval = $pr->readVal($subjid, $keystr);
|
|
$pars = array('name'=>"$keystr", 'val'=>"$prefval");
|
|
$res .= XML_Util::createTagFromArray(array(
|
|
'namespace' => NSPACE,
|
|
'localPart' => 'pref',
|
|
'attributes'=> $pars,
|
|
));
|
|
}
|
|
if (!$res) {
|
|
return NULL;
|
|
}
|
|
return XML_Util::createTagFromArray(array(
|
|
'namespace' => NSPACE,
|
|
'localPart' => 'preferences',
|
|
'content'=> $res,
|
|
), FALSE);
|
|
}
|
|
|
|
$subjects = admDumpSubjects($bs, ' ');
|
|
$tree = admDumpFolder($bs, $stid, ' ');
|
|
|
|
$res = XML_Util::getXMLDeclaration("1.0", "UTF-8")."\n";
|
|
$node = XML_Util::createTagFromArray(array(
|
|
'namespace' => NSPACE,
|
|
'localPart' => 'storageServer',
|
|
'content' => "$subjects$tree",
|
|
), FALSE);
|
|
$res .= $node;
|
|
|
|
$fmt = new XML_Beautifier();
|
|
$res = $fmt->formatString($res);
|
|
|
|
#var_export($res);
|
|
#var_dump($res);
|
|
echo "$res";
|
|
|
|
?>
|