4 require_once 'Pman/Roo.php';
8 * Relay into 'main database' for queries..
12 class Pman_Xtuple_Roo extends Pman_Roo
15 // getAuth.. the same..
18 $xt = HTML_FlexyFramework::get()->Xtuple;
19 $main = empty($xt['main_db']) ? false : $xt['main_db'];
20 // migration process can not transfer.
21 // transfer if necessary..
22 $do = DB_DAtaObject::Factory('Person');
23 $ret = !$main || $do->database() == $main;
33 $do = DB_DataObject::factory('Person');
34 $ourdb = substr($do->database(),-2);
36 if (isset($_REQUEST['_roo_office']) && $_REQUEST['_roo_office'] != $ourdb) {
37 return $this->relay('GET',$tab, $_REQUEST['_roo_office']);
40 if (isset($_REQUEST['_roo_office']) || $this->isMain()) {
41 return parent::get($tab);
44 $this->relay('GET', $tab);
49 $do = DB_DataObject::factory('Person');
50 $ourdb = substr($do->database(),-2);
52 if (isset($_REQUEST['_roo_office']) && $_REQUEST['_roo_office'] != $ourdb) {
53 return $this->relay('POST',$tab, $_REQUEST['_roo_office']);
56 if (isset($_REQUEST['_roo_office']) || $this->isMain()) {
57 return parent::post($tab);
59 $this->relay('POST', $tab);
62 function relay($meth, $tab, $office = false)
65 $office = preg_replace('/[^a-z]+/i','', $office);
66 if (!file_exists($this->rootDir.'/'. $office . '.php')) {
68 $this->jerr('office no available');
72 $ff = HTML_FlexyFramework::get();
73 require_once 'HTTP/Request.php';
75 if (empty($ff->Xtuple['main_url'])) {
76 $ff->Xtuple['main_url'] = 'http://localhost'. $this->baseURL;
79 $url= $ff->Xtuple['main_url'] . '/Roo/'. $tab ;
80 if (!empty($office)) {
81 $mu = preg_replace('#[a-z]+\.php$#', '', $ff->Xtuple['main_url']) .
82 preg_replace('#[^a-z]+#', '', $office) . '.php';
83 $url=$mu. '/Roo/'. $tab ;
86 //var_dump($url);exit;
87 $req = new HTTP_Request( $url );
91 HTTP_REQUEST_METHOD_POST :
92 HTTP_REQUEST_METHOD_GET
95 if ($meth == 'POST') {
96 $req->addPostData( $_POST );
98 $req->addRawQueryString($_SERVER['QUERY_STRING']);
102 $res = $req->sendRequest();
103 if (is_a($res,'PEAR_Error')) {
104 $this->jerr("MAIN REQUEST RETURNED ERROR: ". $res->toString());
106 //echo '<PRE>';print_r($req);exit;
108 foreach($req->getResponseHeader() as $k=>$v) {
111 case 'transfer-encoding':
116 case 'cache-control':
125 //echo $k .": $v <BR/>";
126 header(ucfirst($k) .": $v");
131 echo $req->getResponseBody();exit;