Changeset 3051

Show
Ignore:
Timestamp:
03/22/07 14:15:30 (22 months ago)
Author:
sihwp
Message:
  • #345
  • ajax 콜 지원용 misc 콤포넌튼에 일단 추가
  • misc::escapeCData
  • misc::respondResultPage
  • misc::printRespond
  • misc::printRespondValue (private)
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • sandbox/components/Tattertools.Function.misc.php

    r2777 r3051  
    150150        return htmlspecialchars(str_replace(array('\\', '\r', '\n', '\''), array('\\\\', '\\r', '\\n', '\\\''), $str)); 
    151151    } 
     152 
     153    function escapeCData($str) { 
     154        return str_replace(']]>', ']]>', $str); 
     155    } 
    152156     
    153157    function getTimeFromPeriod($period) { 
     
    251255        return DBQuery::execute("REPLACE INTO {$database['prefix']}UserSettings VALUES($owner, 'rowsPerPage', '$value')"); 
    252256    } 
    253      
     257 
     258    function respondResultPage($error) { 
     259        if ($error === true) 
     260            $error = 0; 
     261        else if ($error === false) 
     262            $error = 1; 
     263        header('Content-Type: text/xml; charset=utf-8'); 
     264        print ("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<response>\n<error>$error</error>\n</response>"); 
     265        exit; 
     266    } 
     267     
     268    function printRespond($result, $useCDATA=true) { 
     269        header('Content-Type: text/xml; charset=utf-8'); 
     270        $xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; 
     271        $xml .= "<response>\n"; 
     272        $xml .= misc::printRespondValue($result, $useCDATA); 
     273        $xml .= "</response>\n"; 
     274        die($xml); 
     275    } 
     276    /* private */ 
     277    function printRespondValue($array, $useCDATA=true) { 
     278        $xml = ''; 
     279        if(is_array($array)) { 
     280            foreach($array as $key => $value) { 
     281                if(is_null($value)) 
     282                    continue; 
     283                else if(is_array($value)) { 
     284                    if(is_numeric($key)) 
     285                        $xml .= misc::printRespondValue($value, $useCDATA)."\n"; 
     286                    else 
     287                        $xml .= "<$key>".misc::printRespondValue($value, $useCDATA)."</$key>\n"; 
     288                } 
     289                else { 
     290                    if($useCDATA) 
     291                        $xml .= "<$key><![CDATA[".misc::escapeCData($value)."]]></$key>\n"; 
     292                    else 
     293                        $xml .= "<$key>".htmlspecialchars($value)."</$key>\n"; 
     294                } 
     295            } 
     296        } 
     297        return $xml; 
     298    } 
    254299} 
    255300?>