Annotation of seb/www/functions.php, revision 1.37

1.1       seb         1: <?php
                      2: 
1.23      seb         3:        if (isset ($_SERVER['QUERY_STRING'])
                      4:                        && $_SERVER['QUERY_STRING'] == 'source') {
1.1       seb         5:                show_source(basename(__FILE__));
                      6:                exit;
                      7:        }
                      8: 
1.37    ! tsn         9:        CVSId('$Id: functions.php,v 1.36 2003/08/08 11:40:44 seb Exp $');
1.1       seb        10: 
                     11:        Function sizeUnit($fileSize) {
1.37    ! tsn        12:                if ($filesize == 0)
        !            13:             return 'N/A';
        !            14: 
        !            15:         if ($fileSize >= 1048576)
1.1       seb        16:                        $fileSize = (round($fileSize / 1048576 * 100) / 100).' MB'; 
                     17:                elseif ($fileSize >= 1024)
                     18:                        $fileSize = (round($fileSize / 1024 * 100) / 100).' KB'; 
                     19:                else 
                     20:                        $fileSize = $fileSize.' B'; 
                     21:                return $fileSize;
1.30      seb        22:        }
                     23:        
1.34      seb        24:        Function getFileSize($fileName) { // Gets the exact file size. Thanks to Pete Collins <pete@mozdev.org> for this one!
1.30      seb        25:                global $project;
1.34      seb        26:                $f_current = LXR_PATH.$project.'/'.$fileName;
1.30      seb        27: 
                     28:                if (@file_exists($f_current))
1.34      seb        29:                        return @filesize($f_current);
1.30      seb        30: 
1.37    ! tsn        31:                return 0;
1.1       seb        32:        }
                     33: 
                     34:        $defined_title = array(); // used in files templates
                     35: 
                     36:        Function tmpl_table($filename,$title,$dir) { // table (basic) template
1.3       seb        37:                global $defined_title, $downloads, $normal, $type;
1.31      seb        38:                $ret = '';
1.1       seb        39: 
                     40:                if ($dir == $downloads) {
1.2       seb        41:                        $path = 'downloads.mozdev.org/seb/';
1.1       seb        42:                } else {
1.2       seb        43:                        $path = 'seb.mozdev.org/'.$type.'/';
1.1       seb        44:                }
1.35      seb        45: 
1.1       seb        46:                if (!isset ($defined_title['table_'.$title])) {
1.31      seb        47:                        $ret .= "            <tr>\n".
1.1       seb        48:                                '              <td colspan="3" style="text-decoration:underline;'.
                     49:                                'text-align:center;font-style:italic;width:620px;">'.
                     50:                                $title.
                     51:                                "</td>\n".
                     52:                                "            </tr>\n".
                     53:                                "            <tr>\n".
                     54:                                '              <td style="width:270px;font-weight:bold;">Filename'.
                     55:                                "</td>\n".
                     56:                                '              <td style="width:270px;font-weight:bold;">Date'.
                     57:                                "</td>\n".
                     58:                                '              <td style="width:80px;font-weight:bold;">Size'.
                     59:                                "</td>\n".
                     60:                                "            </tr>\n";
                     61:                        $defined_title['table_'.$title] = $title;
                     62:                }
                     63: 
1.31      seb        64:                $ret .= "            <tr>\n".'              <td><a href="'.
1.36      seb        65:                        'http://'.$path.substr($filename, 0, -2).'">'. //strip the ,v
1.1       seb        66:                        substr($filename, 0, -2)."</a></td>\n".'              <td>'.
                     67:                        date("Y/m/d - H:i:s", filemtime($dir.$filename))."</td>\n".
1.36      seb        68:                        '              <td>'.
                     69:                        sizeUnit(getFileSize(str_replace('/cvs/seb/', '', $dir).
                     70:                        substr($filename, 0, -2)))."</td>\n            </tr>\n";
1.18      seb        71: 
1.31      seb        72:                echo $ret;
1.1       seb        73:        }
                     74: 
                     75:        Function tmpl_table_error() { // table (basic) error template
                     76:                $ret = "            <tr>\n".
1.23      seb        77:                        '              <td colspan="3" style="width:620px;">'.
1.1       seb        78:                        "Sorry, couldn't list files</td>\n".
                     79:                        "            </tr>\n";
                     80: 
                     81:                echo $ret;
                     82:        }
                     83: 
                     84:        Function files($title, $type, $eval, $tmpl, $dir) { // list files from a given pattern
                     85:                global $file;
                     86:                $tmp = '';
                     87:                if (is_array($file)) {
                     88:                        eval ("\$eval(\$file);");
                     89:                        reset($file);
                     90:                        $filecount = 0;
                     91:                        while (list (,$filename) = each($file)) {
                     92:                                if (preg_match($type, substr($filename, 0, -2))) { // strip the ",v"
                     93:                                        eval('tmpl_'.$tmpl."(\$filename,\$title,\$dir);");
                     94:                                        $filecount++;
                     95:                                }
                     96:                        }
                     97:                        if ($filecount == 0) {
                     98:                                eval("tmpl_".$tmpl."_error();");
                     99:                        }
                    100:                } else {
                    101:                        eval("tmpl_".$tmpl."_error();");
                    102:                }
                    103:        }
                    104: 
                    105:        Function listFiles($dir) { // generate the file array used in listings
                    106:                global $file;
                    107:                if ($dir = @opendir($dir)) {
                    108:                        if (!isset ($file)) 
                    109:                                $file = array();
                    110:                        while ($file[] = @readdir($dir)) ;
                    111:                        @closedir($dir);
                    112:                } else
                    113:                        $file = FALSE;
                    114:        }
                    115: 
                    116:        Function CVSId($Id) { // Grabs the CVS Id from each PHP file.
                    117:                global $cvs;
                    118: 
                    119:                if (!isset ($cvs))
                    120:                        $cvs = array();
                    121: 
                    122:                $tmp = explode(' ', substr($Id, 5, -6));
                    123:                $tmp[0] = substr($tmp[0], 0, -2);
                    124:                $cvs[] = $tmp;
                    125:        }
                    126: 
                    127:        Function getRevFromFile($file) { // gets the cvs version number of $file
                    128:                global $cvs;
                    129:                
                    130:                for ($i=0; $i < count($cvs); $i++) {
                    131:                        if ($cvs[$i][0] == $file)
                    132:                                return $cvs[$i][1];
                    133:                }
                    134:        }
                    135: 
                    136:        Function setMimeType($http='HTTP_ACCEPT',$type='application/xhtml+xml',
                    137:                $default='text/html') { // some browsers support xhtml mime type. Use it!
                    138: 
                    139:                if (isset ($_SERVER[$http])) {
                    140:                        if (stristr($_SERVER[$http], $type))
                    141:                                header('Content-type: '.$type);
                    142:                        else
                    143:                                header('Content-type: '.$default);
                    144:                }
                    145:        }
                    146: 
1.4       tsn       147: ?>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>