1.8
* @date 02/12/2007
* @version 2.x
*
* Allows adding a parent tracker in any xmlrpc accessible or local Moodle
* where an issue may be forwarded.
*
* To forward an issue to a parent tracker in a remote Moodle, the resolver must have an
* mnet account at that location.
*/
if (!defined('MOODLE_INTERNAL')) {
die('Direct access to this script is forbidden.'); /// It must be included from view.php in mod/tracker
}
include_once $CFG->dirroot.'/mnet/xmlrpc/client.php';
include_once $CFG->dirroot.'/mod/tracker/rpclib.php';
echo "
";
echo $OUTPUT->box_start('center', '100%', '', '', 'generalbox', 'bugreport');
/// gets current parent information
echo $OUTPUT->heading(get_string('currentbinding', 'tracker'));
$localid = 0;
$remoteid = 0;
if (!empty($tracker->parent)){
if (is_numeric($tracker->parent)){ // tracker is local in this Moodle
$parent = tracker_rpc_get_infos($tracker->parent, true);
$localid = $tracker->parent;
$parent_mnet = $DB->get_record('mnet_host', array('wwwroot' => $CFG->wwwroot));
} else { // tracker is remote
list($remoteid, $mnet_host) = explode('@', $tracker->parent);
// get network tracker properties
$rpcclient = new mnet_xmlrpc_client();
$rpcclient->set_method('mod/tracker/rpclib.php/tracker_rpc_get_infos');
$rpcclient->add_param($remoteid, 'int');
$parent_mnet = new mnet_peer();
$parent_mnet->set_wwwroot($mnet_host);
if (!empty($parent_mnet->wwwroot)) {
if (!$rpcclient->send($parent_mnet)) {
print_error('errorremote', 'tracker', implode("
", $rpcclient->error));
}
$parent = json_decode($rpcclient->response);
// fix a bug in XML-RPC transfer of arrays
if (is_object($parent->elements)) {
$parent->elements = get_object_vars($parent->elements);
}
} else {
$tracker->parent = '';
}
}
}
if (!empty($tracker->parent)) {
?>
: | wwwroot); echo "({$parent_mnet->ip_address})"; } else { echo get_string('nomnet', 'tracker'); } ?> |
: | name) ?> |
: |
".get_string('knownelements', 'tracker').": "; if (!empty($parent->elements)){ $child = tracker_rpc_get_infos($tracker->id, true); if (!tracker_display_elementmatch($child, $parent)) { echo $OUTPUT->notification(get_string('unmatchingelements', 'tracker')); } } else { echo $OUTPUT->notification(get_string('emptydefinition', 'tracker')); } ?> |