コード例 #1
0
 function ConvertOutputAjaxlib($responses)
 {
     //$depmgr = DependencyManager::singleton();
     $ret = array();
     if (!empty($responses)) {
         foreach ($responses as $name => $response) {
             if (is_array($response)) {
                 foreach ($response as $respname => $respval) {
                     $responseobj = array("type" => "{$name}", "name" => $respname);
                     switch ($name) {
                         case "data":
                             $responseobj["_content"] = json_encode($respval);
                             break;
                         default:
                             $responseobj["_content"] = (string) $respval;
                     }
                     $ret[] = $responseobj;
                 }
             } else {
                 if ($response instanceof AjaxlibResponse) {
                     $responseobj = $response->flatten(array("target" => $name));
                 } else {
                     $responseobj = array("type" => "xhtml", "target" => $name);
                     $responseobj["_content"] = (string) $response;
                 }
                 $ret[] = $responseobj;
             }
         }
     }
     $dependencies = DependencyManager::get();
     foreach ($dependencies as $prio => $browsers) {
         foreach ($browsers as $browser => $deptypes) {
             foreach ($deptypes as $deptype => $deps) {
                 if ($deptype != "jstemplate") {
                     // FIXME - for some reason jstemplate dependencies in AJAX responses cause all hell to break loose...they're not used yet anyway
                     foreach ($deps as $depid => $dep) {
                         // jesus
                         $depobj = object_to_array($dep);
                         $depobj["deptype"] = $depobj["type"];
                         $depobj["type"] = "dependency";
                         $ret[] = $depobj;
                     }
                 }
             }
         }
     }
     $user = User::singleton();
     global $webapp;
     if (!empty($webapp->debug) && ($user->HasRole("DEBUG") || $user->HasRole("ADMIN") || $user->HasRole("QA"))) {
         //$ret[] = array("type" => "debug", "_content" => Logger::Display(E_ALL));
         $ret[] = array("type" => "debug", "_content" => "\n[[debug]]\n");
     }
     return $ret;
 }