function exec($args, $stdin, &$stdout, &$stderr, &$system) { if (!empty($args)) { $path = $args; if ($path{0} != "/") $path = $_SESSION['murrix']['path']."/$path"; $node_id = getNode($path); if ($node_id > 0) { $stderr = ucf(i18n("object already exists")); return true; } $parent = new mObject(getNode($_SESSION['murrix']['path'])); if (!(isAdmin() || $parent->hasRight("create"))) { $stderr = ucf(i18n("not enough rights to create folder")); return true; } $object = new mObject(); $object->setClassName("folder"); $object->loadVars(); $object->name = basename($path); $object->language = $_SESSION['murrix']['language']; $object->rights = $parent->getMeta("initial_rights", "rwcrwc---"); $object->group_id = $parent->getMeta("initial_group", $parent->getGroupId()); if (!$object->save()) { $stderr = "Operation unsuccessfull.\n"; $stderr .= "Error output:\n"; $stderr .= $object->getLastError(); return true; } clearNodeFileCache($parent->getNodeId()); $object->linkWithNode($parent->getNodeId()); $stdout = ucf(i18n("created folder successfully")); } else { $stdout = "Usage: oadd [name]\n"; $stdout .= "Example: oadd newfolder"; } return true; }
function execute(&$system, $args) { if ($args['action'] == "meta") { $node_id = $this->getNodeId($args); if ($node_id > 0) { $object = new mObject($node_id); if ($object->hasRight("write")) { $object->setMeta("children_show_num_per_page", $args['children_show_num_per_page']); $object->setMeta("show_comments", $args['show_comments'] == "on" ? 1 : ""); $object->setMeta("comment_show_num_per_page", $args['comment_show_num_per_page']); $object->setMeta("show_versionstab", $args['show_versionstab'] == "on" ? 1 : ""); $object->setMeta("show_linkstab", $args['show_linkstab'] == "on" ? 1 : ""); $object->setMeta("view", $args['view']); $object->setMeta("default_class_name", $args['default_class_name']); if ($args['sort_by'] == "custom") $object->setMeta("sort_by", $args['sort_by_custom']); else $object->setMeta("sort_by", $args['sort_by']); $object->setMeta("sort_direction", $args['sort_direction']); $object->setMeta("initial_rights", $args['initial_rights']); $_SESSION['murrix']['querycache'] = array(); clearNodeFileCache($object->getNodeId()); $versions = fetch("FETCH object WHERE property:node_id='".$object->getNodeId()."' NODESORTBY property:version,property:name"); foreach ($versions as $version) delObjectFromCache($version->getId()); $args['message'] = ucf(i18n("saved settings successfully")); } } } $this->draw($system, $args); }
function exec($args, $stdin, &$stdout, &$stderr, &$system) { $object = new mObject(getNode($_SESSION['murrix']['path'])); $user = $object->getUser(); $stdout .= "<table cellspacing=\"0\">"; $stdout .= "<tr><td class=\"titlename\">Name</td><td>".cmd($object->getName(), "exec=show'&node_id=".$object->getNodeId())."</td></tr>"; $stdout .= "<tr><td class=\"titlename\">Icon</td><td>".img(geticon($object->getIcon(), 16))."</td></tr>"; $stdout .= "<tr><td class=\"titlename\">Id</td><td>".$object->getNodeId()."</td></tr>"; $stdout .= "<tr><td class=\"titlename\">Revision</td><td>".$object->getVersion()."</td></tr>"; $stdout .= "<tr><td class=\"titlename\">Language</td><td>".$object->getLanguage()."</td></tr>"; $stdout .= "<tr><td class=\"titlename\">Class</td><td>".$object->getClassName()."</td></tr>"; $stdout .= "<tr><td class=\"titlename\">Rights</td><td>".$object->getRights()."</td></tr>"; $stdout .= "<tr><td class=\"titlename\">User</td><td>".$user->username."</td></tr>"; $stdout .= "<tr><td class=\"titlename\">Time</td><td>".$object->getCreated()."</td></tr>"; $stdout .= "</table>"; return true; }
function exec($args, $stdin, &$stdout, &$stderr, &$system) { $object = new mObject(getNode($_SESSION['murrix']['path'])); $links = $object->getLinks(); if ($args == "-l") { $stdout .= "total ".count($links)."\n"; if (count($links) > 0) { $stdout .= "<table cellspacing=\"0\">"; $stdout .= "<tr class=\"table_title\">"; $stdout .= "<td>Id</td>"; $stdout .= "<td>Type</td>"; $stdout .= "<td>Remote node</td>"; $stdout .= "<td>Remote node is on...</td>"; $stdout .= "</tr>"; foreach ($links as $link) { if ($link['remote_id'] <= 0) $remote = ucf(i18n("unknown")); else { $remote_obj = new mObject($link['remote_id']); $remote = cmd(img(geticon($remote_obj->getIcon()))." ".$remote_obj->getName(), "exec=show&node_id=".$remote_obj->getNodeId()); } $stdout .= "<tr>"; $stdout .= "<td>".$link['id']."</td>"; $stdout .= "<td>".$link['type']."</td>"; $stdout .= "<td>".$remote."</td>"; $stdout .= "<td>".ucf(i18n($link['direction']))."</td>"; $stdout .= "</tr>"; } $stdout .= "</table>"; } } else { foreach ($links as $link) { if ($link['remote_id'] > 0) { $remote_obj = new mObject($link['remote_id']); $stdout .= cmd($remote_obj->getName(), "exec=show&node_id=".$remote_obj->getNodeId())." "; } } } return true; }
function execute(&$system, $args) { if (isset($args['action']) && $args['action'] == "deleteversion") { $object = new mObject(); $object->loadByObjectId($args['object_id']); if ($object->hasRight("write")) $object->deleteCurrentVersion(); $args['node_id'] = $object->getNodeId(); clearNodeFileCache($object->getNodeId()); $links = $object->getLinks(); foreach ($links as $link) { if ($link['type'] == "sub") clearNodeFileCache($link['remote_id']); } } $system->triggerEventIntern("newlocation", $args); }
function exec($args, $stdin, &$stdout, &$stderr, &$system) { $group = new mGroup(); $groups = $group->getList(); if ($args == "-l") { $stdout .= "total ".count($groups)."\n"; if (count($groups) > 0) { $stdout .= "<table cellspacing=\"0\">"; $stdout .= "<tr class=\"table_title\">"; $stdout .= "<td>Id</td>"; $stdout .= "<td>Name</td>"; $stdout .= "<td>Home</td>"; $stdout .= "<td>Created</td>"; $stdout .= "<td>Description</td>"; $stdout .= "</tr>"; foreach ($groups as $group) { $stdout .= "<tr>"; $stdout .= "<td>".$group->id."</td>"; $stdout .= "<td>".$group->name."</td>"; if ($group->home_id > 0) { $home = new mObject($group->home_id); $stdout .= "<td>".cmd($home->getPath(), "exec=show&node_id=".$home->getNodeId())."</td>"; } else $stdout .= "<td></td>"; $stdout .= "<td>".$group->created."</td>"; $stdout .= "<td>".$group->description."</td>"; $stdout .= "</tr>"; } $stdout .= "</table>"; } } else { foreach ($groups as $group) $stdout .= $group->name." "; } return true; }
function exec($args, $stdin, &$stdout, &$stderr, &$system) { $object = new mObject(getNode($_SESSION['murrix']['path'])); $children = fetch("FETCH node WHERE link:node_top='".$object->getNodeId()."' AND link:type='sub' NODESORTBY property:version SORTBY ".$object->getMeta("sort_by", "property:name")); if ($args == "-l") { $stdout .= "total ".count($children)."\n"; if (count($children) > 0) { $stdout .= "<table cellspacing=\"0\">"; $stdout .= "<tr class=\"table_title\">"; $stdout .= "<td>Id</td>"; $stdout .= "<td>Rev.</td>"; $stdout .= "<td>Lang.</td>"; $stdout .= "<td>Class</td>"; $stdout .= "<td>Rights</td>"; $stdout .= "<td>User</td>"; $stdout .= "<td>Time</td>"; $stdout .= "<td>Name</td>"; $stdout .= "</tr>"; foreach ($children as $child) { $user = $child->getUser(); $stdout .= "<tr>"; $stdout .= "<td>".$child->getNodeId()."</td>"; $stdout .= "<td>".$child->getVersion()."</td>"; $stdout .= "<td>".$child->getLanguage()."</td>"; $stdout .= "<td>".$child->getClassName()."</td>"; $stdout .= "<td>".$child->getRights()."</td>"; $stdout .= "<td>".$user->username."</td>"; $stdout .= "<td>".$child->getCreated()."</td>"; $stdout .= "<td>".cmd(img(geticon($child->getIcon(), 16))." ".$child->getName(), "exec=show&node_id=".$child->getNodeId())."</td>"; $stdout .= "</tr>"; } $stdout .= "</table>"; } } else { foreach ($children as $child) $stdout .= $child->getName()." "; } return true; }
function draw(&$system, $args) { $object = new mObject($this->getNodeId($args)); $data = ""; if ($object->getNodeId() > 0) { if ($object->hasRight("write")) $data = compiletpl("scripts/delete", array(), $object); else $data = compiletpl("message", array("title"=>ucf(i18n("error")), "message"=>ucf(i18n("not enough rights")))); } else $data = compiletpl("message", array("title"=>ucf(i18n("error")), "message"=>ucf(i18n("the specified path is invalid")))); $system->setZoneData($this->zone, utf8e($data)); }
function exec($args, $stdin, &$stdout, &$stderr, &$system) { if (!empty($args)) { $object = new mObject(getNode($_SESSION['murrix']['path'])); if (!$object->hasRight("write")) { $stderr = ucf(i18n("not enough rights")); return true; } $links = $object->getLinks(); $link_matched = false; foreach ($links as $link) { if ($link['id'] == $args) { $link_matched = $link; break; } } if ($matched === false) { $stderr = ucf(i18n("unknown link specified")); return true; } $object->deleteLink($args); clearNodeFileCache($object->getNodeId()); clearNodeFileCache($link_matched['remote_id']); $_SESSION['murrix']['path'] = $object->getPathInTree(); $system->TriggerEventIntern($response, "newlocation", array()); $stdout = ucf(i18n("removed link successfully")); } else { $stdout = "Usage: ldel [linkid]\n"; $stdout .= "Example: ldel 1"; } return true; }
function exec($args, $stdin, &$stdout, &$stderr, &$system) { $object = new mObject(getNode($_SESSION['murrix']['path'])); $versions = fetch("FETCH object WHERE property:node_id='".$object->getNodeId()."' NODESORTBY property:language,property:version,property:name"); $stdout .= "total ".count($versions)."\n"; if (count($versions) > 0) { $stdout .= "<table cellspacing=\"0\">"; $stdout .= "<tr class=\"table_title\">"; $stdout .= "<td>Id</td>"; $stdout .= "<td>Rev.</td>"; $stdout .= "<td>Lang.</td>"; $stdout .= "<td>Class</td>"; $stdout .= "<td>Rights</td>"; $stdout .= "<td>User</td>"; $stdout .= "<td>Group</td>"; $stdout .= "<td>Time</td>"; $stdout .= "<td>Name</td>"; $stdout .= "</tr>"; foreach ($versions as $version) { $user = $version->getUser(); $group = $version->getGroup(); $stdout .= "<tr>"; $stdout .= "<td>".$version->getId()."</td>"; $stdout .= "<td>".$version->getVersion()."</td>"; $stdout .= "<td>".$version->getLanguage()."</td>"; $stdout .= "<td>".$version->getClassName()."</td>"; $stdout .= "<td>".$version->getRights()."</td>"; $stdout .= "<td>".$user->username."</td>"; $stdout .= "<td>".$group->name."</td>"; $stdout .= "<td>".$version->getCreated()."</td>"; $stdout .= "<td>".img(geticon($version->getIcon(), 16))." ".$version->getName()."</td>"; $stdout .= "</tr>"; } $stdout .= "</table>"; } return true; }
function exec($args, $stdin, &$stdout, &$stderr, &$system) { if (!empty($args)) { $path = $args; if ($path{0} != "/") $path = $_SESSION['murrix']['path']."/$path"; $node_id = getNode($path); if ($node_id <= 0) { $stderr = ucf(i18n("no such path")); return true; } else $object = new mObject($node_id); if (!(isAdmin() || $object->hasRight("write"))) { $stderr = ucf(i18n("not enough rights to delete")); return true; } clearNodeFileCache($object->getNodeId()); $object->deleteNode(); $stdout = ucf(i18n("deleted node successfully")); } else { $stdout = "Usage: odel [name]\n"; $stdout .= "Example: odel oldfolder"; } return true; }
function execute(&$system, $args) { if (!is_array($args)) $args = array(); // This should be checked and possibly moved to the settingsscript if (isset($args['meta']) || isset($args['rebuild_thumb'])) { $node_id = $this->getNodeId($args); if ($node_id > 0) { $object = new mObject($node_id); if ($object->hasRight("write")) { if (isset($args['meta'])) $object->setMeta($args['meta'], $args['value']); // Special case for files if (isset($args['rebuild_thumb'])) delThumbnails($args['rebuild_thumb']); clearNodeFileCache($object->getNodeId()); } } } $node_id = $this->getNodeId($args); if ($node_id > 0) { $object = new mObject($node_id); $_SESSION['murrix']['path'] = $object->getPathInTree(); } $system->triggerEventIntern("newlocation", $args); }
function exec($args, $stdin, &$stdout, &$stderr, &$system) { if (!empty($args)) { $args_split = splitArgs($args); if (count($args_split) >= 2) { $source = $args_split[0]; $target = $args_split[1]; if ($source{0} != "/") $source = $_SESSION['murrix']['path']."/$source"; $source_node_id = getNode($source); if ($source_node_id <= 0) { $stderr = ucf(i18n("no such path")).": $source"; return true; } else $source = new mObject($source_node_id); if (!(isAdmin() || $source->hasRight("write"))) { $stderr = ucf(i18n("not enough rights on source")); return true; } if ($target{0} != "/") $target = $_SESSION['murrix']['path']."/$target"; $target_node_id = getNode($target); if ($target_node_id <= 0) { $stderr = ucf(i18n("no such path")).": $target"; return true; } else $target = new mObject($target_node_id); if (!(isAdmin() || $target->hasRight("write"))) { $stderr = ucf(i18n("not enough rights on target")); return true; } $parent_node_id = getNode($_SESSION['murrix']['path']); $source->linkWithNode($target->getNodeId(), "sub"); $source->unlinkWithNode($parent_node_id, "sub", "bottom"); clearNodeFileCache($source->getNodeId()); clearNodeFileCache($target->getNodeId()); clearNodeFileCache(getNode($_SESSION['murrix']['path'])); $stdout = ucf(i18n("moved node successfully")); } } else { $stdout = "Usage: omove [sourcepath] [targetpath]\n"; $stdout .= "Example: omove \"/root/home\" \"/root/public\""; } return true; }
$name = trim($paths['basename']); // replace '\\' with '/' $name = str_replace("\\", "", $name); $name = str_replace("/", "", $name); $name = str_replace("+", "", $name); $object->name = $name; $object->language = $_SESSION['murrix']['language']; $object->rights = $parent_new->getMeta("initial_rights", $parent_new->getRights()); $object->setVarValue("file", trim($paths['basename']).":".$tempName); if ($object->save()) { guessObjectType($object); $object->linkWithNode($parent_new->getNodeId()); clearNodeFileCache($parent_new->getNodeId()); printToLog("Created file". $object->getPath()."<br/>"); $count++; $size += $file['size']; } else { printToLog("Failed to create file ". $object->getPath()."<br/>"); } } printToLog("<br/>Successfully processed files<br/>"); printToLog("$count of ".count($_FILES)." files<br/>"); printToLog(DownloadSize($size)." total<br/>");
function fetch($query, $debug = false) { if (isset($_SESSION['murrix']['querycache'][$query]) && !$debug) return $_SESSION['murrix']['querycache'][$query]; $query2 = $query; $commands = array("FETCH", "WHERE", "NODESORTBY", "SORTBY"); $cmdstr = implode("|", $commands); $links = false; $vars = 0; $return = "object"; $sort = array(); $vars_array = array(); $nodesortby = ""; foreach ($commands as $ord) { if (preg_match("/^[ ]*($ord) (.+?)( ($cmdstr|$)|$)/", $query, $matches)) { switch ($matches[1]) { case "FETCH": switch (trim($matches[2])) { case "count": $select = "SELECT count(objects.id) AS count "; $return = "count"; break; case "node": $select = "SELECT objects.id AS id, objects.node_id AS node_id, objects.language AS language, objects.version AS version "; $return = "node"; break; case "object": default: $select = "SELECT objects.id AS id "; $return = "object"; break; } break; case "WHERE": $org_where = trim($matches[2]); if (preg_match_all("/[ ]*(.+?)( AND| OR|$)/", $org_where, $wmatches)) { $wmatches = $wmatches[1]; //PrintPre($wmatches); foreach ($wmatches AS $match) { $match = trim($match); if ($match{0} == "(") $match = substr($match, 1, strlen($match)-1); $parts = explode(":", $match, 2); $invert = ""; if ($parts[0]{0} == "!") { $invert = "!"; $parts[0] = substr($parts[0], 1, strlen($parts[0])-1); } switch ($parts[0]) { case "property": $org_where = str_replace($match, "$invert(objects.".$parts[1].")", $org_where); break; case "var": $parts2 = explode("=", $parts[1]); if (!isset($vars_array[$parts2[0]])) { $vars++; $vars_array[$parts2[0]] = $vars; } $num = $vars_array[$parts2[0]]; $org_where = str_replace($match, "values$num.data$invert=".$parts2[1], $org_where); break; case "link": $parts2 = explode("=", $parts[1]); switch ($parts2[0]) { case "node_top": $org_where = str_replace($match, "$invert(links.node_top=".$parts2[1]." AND links.node_bottom=objects.node_id)", $org_where); break; case "node_bottom": $org_where = str_replace($match, "$invert(links.node_bottom=".$parts2[1]." AND links.node_top=objects.node_id)", $org_where); break; case "type": $org_where = str_replace($match, "$invert(links.type=".$parts2[1].")", $org_where); break; case "node_id": default: $org_where = str_replace($match, "$invert((links.node_bottom=".$parts2[1]." AND links.node_top=objects.node_id) OR (links.node_top=".$parts2[1]." AND links.node_bottom=objects.node_id))", $org_where); break; } $links = true; break; } } } $where_more = ""; foreach ($vars_array as $key => $value) { $where_more .= "(values$value.object_id=objects.id AND values$value.var_id=vars$value.id AND vars$value.name='$key') AND "; } $where = "WHERE $where_more ($org_where)"; break; case "NODESORTBY": $org_sort = trim($matches[2]); if (preg_match_all("/[ ]*(.+?)(,|$)/", $org_sort, $wmatches)) { $wmatches = $wmatches[1]; foreach ($wmatches AS $match) { $match = trim($match); $parts = explode(":", $match, 2); $invert = " DESC"; if ($parts[0]{0} == "!") { $invert = " ASC"; $parts[0] = substr($parts[0], 1, strlen($parts[0])-1); } switch ($parts[0]) { case "property": $org_sort = str_replace($match, "objects.".$parts[1].$invert, $org_sort); break; } } } $nodesortby = "ORDER BY $org_sort"; break; case "SORTBY": $org_sort = trim($matches[2]); if (preg_match_all("/[ ]*(.+?)(,|$)/", $org_sort, $wmatches)) { $wmatches = $wmatches[1]; foreach ($wmatches AS $match) { $match = trim($match); $parts = explode(":", $match, 2); $invert = false; if ($parts[0]{0} == "!") { $invert = true; $parts[0] = substr($parts[0], 1, strlen($parts[0])-1); } switch ($parts[0]) { case "property": $sort[] = array("property:".$parts[1], $invert); //$org_sort = str_replace($match, "objects.".$parts[1].($invert ? "" : " DESC"), $org_sort); break; case "var": $sort[] = array($parts[1], $invert); break; } } } //if (!empty($org_sort)) // $sortby = "ORDER BY $org_sort"; break; } $len = strlen($matches[0]) - strlen($matches[3]); $query = trim(substr($query, $len, strlen($query)-$len)); } else { if (!empty($query)) { echo "nåt galet hände..\n"; echo $query; } } } global $db_prefix; $from = "FROM `".$db_prefix."objects` AS `objects`"; for ($n = 1; $n <= $vars; $n++) $from .= ", `".$db_prefix."vars` AS `vars$n`, `".$db_prefix."values` AS `values$n`"; if ($links) $from .= ", `".$db_prefix."links` AS `links`"; $sql = "$select $from $where $nodesortby"; $result = mysql_query($sql) or die("fetch " . mysql_errno() . " " . mysql_error()); if ($return == "count") { $row = mysql_fetch_array($result, MYSQL_ASSOC); //$_SESSION['debug'] += microtime_float()-$time; $_SESSION['murrix']['querycache'][$query2] = $row['count']; return $row['count']; } if ($return == "object") { $objects = array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $object = new mObject(); if (!$object->loadByObjectId($row['id'])) echo $object->getLastError(); $objects[] = $object; } } else if ($return == "node") { $objects = array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $object = new mObject(); $object->node_id = $row['node_id']; $object->id = $row['id']; $object->version = $row['version']; $object->language = $row['language']; $objects[] = $object; } $nodes = array(); $node_list = array(); foreach ($objects as $object) { // We have a prior version already if (isset($node_list[$object->getNodeId()])) { if ($node_list[$object->getNodeId()] != $_SESSION['murrix']['language']) // Not a perfect match { if ($object->getLanguage() == $_SESSION['murrix']['language']) // We have a better match { $nodes[$object->getNodeId()] = $object; $node_list[$object->getNodeId()] = $object->getLanguage(); } } /*else // Perfect language match { if ($node_list[$object->getNodeId()]->version < $object->version)// Do we have a better version { $nodes[$object->getNodeId()] = $object; $node_list[$object->getNodeId()] = $object->getLanguage(); } }*/ } else // We have no prior match { $nodes[$object->getNodeId()] = $object; $node_list[$object->getNodeId()] = $object->getLanguage(); } } $objects2 = array_values($nodes); $objects = array(); foreach ($objects2 as $object2) { $object = new mObject(); if (!$object->loadByObjectId($object2->getId())) echo $object->getLastError(); $objects[] = $object; } } if (!empty($sort)) { $sort = array_reverse($sort); foreach ($sort as $sortby) { SortBy(&$objects, $sortby[0], $sortby[1]); } } $_SESSION['murrix']['querycache'][$query2] = $objects; return $objects; }
function draw(&$system, $args) { if (isset($args['object_id'])) { $object = new mObject(); $object->loadByObjectId($args['object_id']); } else $object = new mObject($this->getNodeId($args)); $javascript = ""; $data = ""; if ($object->getNodeId() > 0) { if ($object->hasRight("write")) { $edit_args = array(); $data = compiletplWithOutput("scripts/edit", $edit_args, $object); $javascript = $edit_args['output']['js']; } else $data = compiletpl("message", array("title"=>ucf(i18n("error")), "message"=>ucf(i18n("not enough rights")))); } else $data = compiletpl("message", array("title"=>ucf(i18n("error")), "message"=>ucf(i18n("the specified path is invalid")))); $system->setZoneData($this->zone, utf8e($data)); if (!empty($javascript)) $system->addJSScript($javascript); }
function createGroup($name, $description, $create_home = true) { if (!isAdmin) return ucf(i18n("not enough rights to create new group")); if (empty($name)) return ucf(i18n("a name must be specified")); $group = new mGroup(); $group->setByName($name); if ($group->id > 0) return ucf(i18n("a group with that name already exists")); $group->name = $name; $group->description = $description; $ret = $group->save(); if ($create_home && getNode("/root/home/groups/".$name) <= 0) { $home = new mObject(); $home->setClassName("folder"); $home->loadVars(); $home->name = $name; $home->language = $_SESSION['murrix']['language']; $home->rights = "$name=rc"; $home->setVarValue("description", "This is the home of $name"); if ($home->save()) { $home->setMeta("initial_rights", "$name=rwc"); $home_folder = new mObject(getNode("/root/home/groups")); $home->linkWithNode($home_folder->getNodeId()); } else { $message = "Operation unsuccessfull.<br/>"; $message .= "Error output:<br/>"; $message .= $home->getLastError(); return $message; } $group->home_id = $home->getNodeId(); $group->save(); } return $ret; }
function execute(&$system, $args) { if (isset($args['action'])) { $object = new mObject($args['parent_id']); if ($object->hasRight("write")) { if (count($args['node_ids']) == 0) { $system->addAlert(ucf(i18n("you must select at least one object"))); return; } if ($args['action'] == "delete") { foreach ($args['node_ids'] as $node_id) { $child = new mObject($node_id); $not_allowed_str = ""; if ($child->hasRight("write")) $child->deleteNode(); else $not_allowed_str .= $child->getPathInTree()."\n"; if (!empty($not_allowed_str)) $system->addAlert(ucf(i18n("you did not have enough rights to delete these nodes:"))."\n$not_allowed_str"); } clearNodeFileCache($object->getNodeId()); } else { if (isset($args['remote_node_id'])) $remote_node_id = $args['remote_node_id']; else $remote_node_id = getNode($args['path']); if ($remote_node_id > 0) { $remote = new mObject($remote_node_id); if ($remote->hasRight("write")) { switch ($args['action']) { case "move": foreach ($args['node_ids'] as $node_id) { $child = new mObject($node_id); $child->linkWithNode($remote_node_id, "sub"); $child->unlinkWithNode($object->getNodeId(), "sub", "bottom"); clearNodeFileCache($object->getNodeId()); clearNodeFileCache($child->getNodeId()); clearNodeFileCache($remote_node_id); } break; case "link": foreach ($args['node_ids'] as $node_id) { $child = new mObject($node_id); $child->linkWithNode($remote_node_id, "sub"); clearNodeFileCache($remote_node_id); clearNodeFileCache($child->getNodeId()); } break; } } else { $system->addAlert(ucf(i18n("you don't have enough rights on the target"))); return; } } else { $system->addAlert(ucf(i18n("the remote object you specified does not exist"))); return; } } } else { $system->addAlert(ucf(i18n("you don't have enough rights"))); return; } } $this->draw($system, $args); }
function draw(&$system, $args) { if (empty($args['view'])) $args['view'] = "xml"; $object = new mObject($this->getNodeId($args)); $javascript = ""; $data = ""; if ($object->getNodeId() > 0) { if ($object->hasRight("create")) { $data = compiletplWithOutput("scripts/import/view", $args, $object); $javascript = $args['output']['js']; } else $data = compiletpl("message", array("title"=>ucf(i18n("error")), "message"=>ucf(i18n("not enough rights")))); } $system->setZoneData($this->zone, utf8e($data)); if (!empty($javascript)) $system->addJSScript($javascript); }
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <link rel="shortcut icon" href="<?php echo geticon("murrix"); ?> " type="image/x-icon"/> <link rel="stylesheet" type="text/css" href="<?php echo "{$wwwpath}/design/" . $_SESSION['murrix']['theme'] . "/stylesheets/nodebrowse.css"; ?> "/> </head> <body class="nodebrowse"> <?php echo compiletpl("title/big", array("left" => img(geticon($object->getIcon())) . " " . $object->getName(), "right" => $object->getNodeId())); ?> <div class="main"> <div class="container"> <?php echo $object->getPathInTree(); ?> </div> </div> <div class="container"> <center> <input type="button" class="submit" onclick="<?php echo "opener.document.getElementById('" . $_GET['input_id'] . "').value='" . $object->getNodeId() . "';"; ?> ;parent.window.close();" value="<?php echo ucf(i18n("select"));
function sendMessage($subject, $text, $attachment) { if ($this->id <= 0) return false; $user_id = $_SESSION['murrix']['user']->id; $_SESSION['murrix']['user']->id = $this->id; $home = new mObject($this->home_id); $inbox_id = getNode($home->getPath()."/inbox", "eng"); if ($inbox_id < 0) { $inbox = new mObject(); $inbox->setClassName("folder"); $inbox->loadVars(); $inbox->name = "inbox"; $inbox->language = $_SESSION['murrix']['language']; $inbox_id = $inbox->save(); $inbox->rights = $home->getMeta("initial_rights", $home->getRights()); clearNodeFileCache($home->getNodeId()); $inbox->linkWithNode($home->getNodeId()); } else $inbox = new mObject($inbox_id); $message = new mObject(); $message->setClassName("message"); $message->loadVars(); $message->name = $subject; $message->language = $_SESSION['murrix']['language']; $message->setVarValue("text", $text); $message->setVarValue("attachment", $attachment); $message->setVarValue("sender", $_SESSION['murrix']['user']->name); $message->save(); $message->rights = $inbox->getMeta("initial_rights", $inbox->getRights()); clearNodeFileCache($inbox->getNodeId()); $message->linkWithNode($inbox->getNodeId()); $_SESSION['murrix']['user']->id = $user_id; return true; }
<?php echo $args['message']; ?> </form> </fieldset><br/> <? } $links = $object->getLinks(); $linklist = array(); $linklist[] = array(ucf(i18n("type")), ucf(i18n("remote node")), ucf(i18n("remote node is on"))."...", " "); foreach ($links as $link) { if ($link['remote_id'] <= 0) $remote = ucf(i18n("unknown")); else { $remote_obj = new mObject($link['remote_id']); $remote = cmd(img(geticon($remote_obj->getIcon()))." ".$remote_obj->getName(), "exec=show&node_id=".$remote_obj->getNodeId()); } if ($object->hasRight("write") && ($object->getNumLinksSubBottom() > 1 || ($link['type'] != "sub" && $link['direction'] != "bottom"))) $delete = cmd(img(geticon("delete"))." ".ucf(i18n("delete")), "exec=links&action=deletelink&node_id=".$object->getNodeId()."&remote_id=".$link['remote_id']."&type=".$link['type']."&direction=".($link['direction'] == "top" ? "bottom" : "top")); else $delete = ""; $linklist[] = array($link['type'], $remote, ucf(i18n($link['direction'])), $delete); } echo compiletpl("table", array("list"=>$linklist, "endstring"=>"% ".i18n("rows")), $object); ?>
<div class="main"> <div class="container"> <center> <? global $wwwpath; $parent = new mObject(getNode(getParentPath($object->getPathInTree()))); $invert = ""; if ($parent->getMeta("sort_direction", "") == "asc") $invert = "!"; $family = fetch("FETCH node WHERE link:node_top='".$parent->getNodeId()."' AND link:type='sub' AND !property:class_name='comment' AND !property:class_name='poll_answer' NODESORTBY property:version SORTBY $invert".$parent->getMeta("sort_by", "property:name")); $family = getReadable($family); $prev = false; $next = false; for ($n = 0; $n < count($family); $n++) { if ($family[$n]->getNodeId() == $object->getNodeId()) { if ($n > 0) $prev = $family[$n-1]; if ($n < count($family)-1) $next = $family[$n+1]; break; }
function execute(&$system, $args) { if (isset($args['node_id'])) { if (isAnonymous()) { $system->addAlert(ucf(i18n("anonymous user can not vote"))); return; } if (!isset($args['answer'])) { $system->addAlert(ucf(i18n("you must choose an alternative"))); return; } $poll = new mObject($args['node_id']); if ($poll->getNodeId() > 0) { $now = time(); if (strtotime($poll->getVarValue("closedate")) < $now) { $system->addAlert(ucf(i18n("this poll is closed"))); return; } if (strtotime($poll->getVarValue("opendate")) > $now) { $system->addAlert(ucf(i18n("this poll is not open yet"))); return; } $answers = fetch("FETCH node WHERE link:node_top='".$poll->getNodeId()."' AND link:type='sub' AND property:class_name='poll_answer' AND property:name='".$_SESSION['murrix']['user']->id."' NODESORTBY property:version"); if (count($answers) > 0) { $system->addAlert(ucf(i18n("you have already voted in this poll"))); return; } $answer = new mObject(); $answer->setClassName("poll_answer"); $answer->loadVars(); $answer->name = $_SESSION['murrix']['user']->id; $answer->language = $_SESSION['murrix']['language']; $answer->rights = $poll->rights;; $answer->setVarValue("answer", $args['answer']); $answer->save(); clearNodeFileCache($poll->getNodeId()); $answer->linkWithNode($poll->getNodeId()); } } $this->draw($system, $args); }
self.close(); </script> <? } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>MURRiX File Upload</title> <META NAME="ROBOTS" CONTENT="NOINDEX"> </head> <body style="margin: 0; padding: 0;"> <form action="fileupload.php" enctype="multipart/form-data" method="post" name="uploadForm"> <div> <input style="margin: 0;display: none;" type="hidden" name="MAX_FILE_SIZE" value="2000000"/> <input style="margin: 0;display: none;" type="hidden" name="varid" value="<?php echo $varid; ?> "/> <input style="margin: 0;display: none;" name="action" type="hidden" value="upload"/> <input style="margin: 0;display: none;" name="parent_id" type="hidden" value="<?php echo $parent->getNodeId(); ?> "/> <input style="margin: 0;" name="file" type="file"/> <input style="margin: 0;" name="submit" type="submit" value="Upload"/> </div> </form> </body> </html>
<? $divider = empty($args['divider']) ? "/" : $args['divider']; $parts = explode("/", $args['path']); array_shift($parts); $path2 = ""; $count = 0; foreach ($parts as $part) { $path2 .= "/$part"; if ($count > 0) echo " $divider "; $object = new mObject(getNode($path2)); if ($object->hasRight("read")) echo cmd($part, "exec=show&node_id=".$object->getNodeId()); else echo $part; $count++; } ?>
function execute(&$system, $args) { if (isset($args['action'])) { if ($args['action'] == "deletelink") { $object = new mObject($args['node_id']); /*$links = $object->getLinks(); if ($object->getNumLinksSubBottom() <= 1 && ($link['type'] == "sub" && $link['direction'] == "bottom")) $response->addAlert(ucf(i18n("unable to delete last link"))); else*/ if ($object->hasRight("write")) { $object->unlinkWithNode($args['remote_id'], $args['type'], $args['direction']); clearNodeFileCache($object->getNodeId()); clearNodeFileCache($args['remote_id']); $_SESSION['murrix']['path'] = $object->getPathInTree(); $system->triggerEventIntern("newlocation", $args); } else $system->addAlert(ucf(i18n("you don't have enough rights to delete this link"))); return; } else if ($args['action'] == "newlink") { $object = new mObject($args['node_id']); if ($object->hasRight("write")) { if (isset($args['remote_node_id'])) $remote_node_id = $args['remote_node_id']; else $remote_node_id = getNode($args['path']); if ($remote_node_id > 0) { $remote = new mObject($remote_node_id); if ($remote->hasRight("write")) { if (!$object->linkWithNode($remote_node_id, $args['type'])) { $system->addAlert(ucf(i18n($object->error))); return; } clearNodeFileCache($object->getNodeId()); clearNodeFileCache($remote_node_id); } else { $system->addAlert(ucf(i18n("you don't have enough rights on the remote object to create this link"))); return; } } else { $system->addAlert(ucf(i18n("the remote object you specified does not exist"))); return; } } else { $system->addAlert(ucf(i18n("you don't have enough rights to create a link"))); return; } $args['message'] = ucf(i18n("created new link successfully")); $_SESSION['murrix']['path'] = $object->getPathInTree(); $system->triggerEventIntern("newlocation", $args); return; } } $this->draw($system, $args); }
$partner = new mObject($links[0]['remote_id']); ?> <tr> <td class="left"> <?php echo ucf(i18n("partner")); ?> </td> <td> <?php echo img(geticon("user")); ?> </td> <td class="right"> <?php echo cmd($partner->getName(), "exec=show&node_id=" . $partner->getNodeId()); ?> </td> </tr> <? } $data = $object->getVarValue("mobilephones"); if (!empty($data)) { ?> <tr> <td class="left"> <?php echo ucf(i18n("mobilephones")); ?> </td>
function draw(&$system, $args) { $parent_id = $this->getNodeId($args); $object = new mObject($parent_id); $javascript = ""; $data = ""; if ($object->hasRight("create") || $object->hasRight("comment") && $args['class_name'] == "comment") { $newobject = new mObject(); $newobject->setClassName(isset($args['class_name']) ? $args['class_name'] : "folder"); $newobject->loadVars(); $newobject->loadClassIcon(); $new_args = array("parent_node_id"=>$object->getNodeId()); $data = compiletplWithOutput("scripts/new", $new_args, $newobject); $javascript = $new_args['output']['js']; } else $data = compiletpl("message", array("title"=>ucf(i18n("error")), "message"=>ucf(i18n("not enough rights"))), $object); $system->setZoneData($this->zone, utf8e($data)); if (!empty($javascript)) $system->addScript($javascript); }
if ($_POST['action'] == "newregion") { $region = new mObject(); $region->setClassName("image_region"); $region->loadVars(); $object->language = $_SESSION['murrix']['language']; $region->name = "ImageRegion"; $region->setVarValue("image_width", $_POST['image_width']); $region->setVarValue("image_height", $_POST['image_height']); $region->setVarValue("text", trim($_POST['Textbox'])); $region->setVarValue("params", $_POST['PMouseX'].",".$_POST['PMouseY'].",".$_POST['UMouseX'].",".$_POST['UMouseY']); if ($region->save()) { clearNodeFileCache($object->getNodeId()); $region->linkWithNode($object->getNodeId()); $remote_node_ids = explode(",", $_POST['remote_node_ids']); foreach ($remote_node_ids as $rnode_id) $region->linkWithNode(trim($rnode_id), "data"); echo "Region created successfully"; } else { $message = "Operation unsuccessfull.<br/>"; $message .= "Error output:<br/>"; $message .= $object->getLastError(); echo $message;