Changeset 1753

Show
Ignore:
Timestamp:
2006-01-04 21:37:47 (3 years ago)
Author:
ctford
Message:

Properly parses Accept field of HTTP header and responds with CMML or Annodex appropriately.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • phpannodex/trunk/phpsrc/CGI/nph-mod_annodex.php

    r1751 r1753  
    1515         * to output annodex. 
    1616         */ 
    17         if( cmml_prioritised( $http_accept ) ) { 
     17        if( cmml_prioritised( $_SERVER['HTTP_ACCEPT'] ) ) { 
    1818                output_cmml( $filename_root ); 
    1919        } else { 
     
    4747        $accept_array = explode(",",$http_accept); 
    4848 
    49         foreach( $accept_array as $key => $type ) { 
    50                 $accept_array[$key] = explode(";",$type); 
    51                 if( $accept_array[$key][1]=="text/x-cmml" ) { 
     49        foreach( $accept_array as $type ) { 
     50                $type_tuple = explode(";",$type); 
     51                if( $type_tuple[0]=="text/x-cmml" ) { 
    5252                        /* Found cmml before annodex. */ 
    53                         return true; 
     53                        if( count($type_tuple) == 2 ) { 
     54                                $cmml_priority = $type_tuple[1]; 
     55                        } else { 
     56                                $cmml_priority = 1; 
     57                        } 
    5458                } else if ( $accept_array[$key][1]=="application/x-annodex" ) { 
    5559                        /* Found annodex before cmml. */ 
    56                         return false;    
     60                        if( count($type_tuple) == 2 ) { 
     61                                $anx_priority = $type_tuple[1]; 
     62                        } else { 
     63                                $anx_priority = 1; 
     64                        } 
    5765                } 
    5866        } 
    59         /* Neither cmml nor annodex found. */ 
    60         return false; 
     67 
     68        if( $cmml_priority > $anx_priority ) { 
     69                return true; 
     70        } else { 
     71                return false; 
     72        } 
    6173} 
    6274