Version 0.1 */ // Configuration file. $configfile = 'writingsconf.php'; /* You shouldn't edit anything below this line. */ function mkdate($d, $m, $y) { return mktime(0, 0, 0, $m, $d, $y); } require $configfile; $file = ''; foreach ($_GET as $k => $v) { if (array_key_exists($k, $files)) { $file = $k; break; } } $sorts = array('rdate', 'date', 'name'); if ($file != '') { /* We have a file to display. */ file_header($files[$file]); include $filesdir.'/'.$file.'.html'; file_footer($files[$file]); } else { /* We have to display the list of files. */ /* Filter: only keep good languages. */ $language = $_GET['language']; if (in_array($language, array_keys($languages))) { $fileslang = array(); foreach ($files as $f => $v) { if ($v['language'] == $language) { $fileslang[$f] = $v; } } } else { $fileslang = $files; } /* Filter: Only keep good tag */ $tag = $_GET['tag']; if (in_array($tag, array_keys($tags))) { $filestag = array(); foreach ($fileslang as $f => $v) { if (in_array($tag, $v['tags'])) { $filestag[$f] = $v; } } } else { $filestag = $fileslang; } /* Sort functions */ function cmp_rdate($a, $b) { $da = $a['date']; $db = $b['date']; if ($da == $db) return 0; return ($da > $db ? -1 : 1); } function cmp_name($a, $b) { $da = $a['title']; $db = $b['title']; return strcmp($da, $db); } function cmp_date($a, $b) { return (-1 * cmp_rdate($a, $b)); } /* Sort: date, rdate, name (default: rdate) */ $gsort = $_GET['sort']; if (!in_array($gsort, $sorts)) { $sort = 'rdate'; } else { $sort = $gsort; } if ($sort == 'date') uasort($filestag, "cmp_date"); elseif ($sort == 'rdate') uasort($filestag, "cmp_rdate"); elseif ($sort == 'name') uasort($filestag, "cmp_name"); list_header($sort, $tag, $language); foreach ($filestag as $k => $v) { list_item($k, $v); } list_footer($gsort, $tag, $language); } ?>