function pre_process($result) { global $static_pages, $hidden_pages; $text = globsingle('static/pages/' . $result['file'] . '.*'); if (!empty($text)) { $result['text_file'] = $text; } if (isset($static_pages[$result['file']])) { $result['page_title'] = format_page_name($static_pages[$result['file']], true); } else { if (isset($hidden_pages[$result['file']])) { $result['page_title'] = format_page_name($hidden_pages[$result['file']], true); } } return $result; }
function pre_process($result) { $pages = NULL; if (empty($result['story'])) { $result['story'] = 'default'; } $metadata = array(); if (file_exists('comics/' . $result['story'] . '/metadata.ini')) { $metadata = parse_ini_file('comics/' . $result['story'] . '/metadata.ini'); } if (empty($metadata['name'])) { $metadata['name'] = ucwords($result['story']) . ' Comic'; } // Possible scenarios: // // 1) Valid $result['page'] provided. // Might need: First/Prev/Next/Last, single scan w/ comparisons // 2) None provided. // Might need: First/Prev/Last, single scan w/ comparisons // Page = Last // Prev = Last - 1 $prev = NULL; $next = NULL; if (empty($result['page']) && !empty($metadata['last'])) { $result['page'] = $metadata['last']; } // Check for image file and 404 if there isn't one... $result['image_file'] = globsingle('comics/' . $result['story'] . '/pages/' . $result['page'] . '.*'); if ($result['image_file'] == null) { output_error(404, $result); return $result; } if (!empty($result['page'])) { $prev = checkexplicitpagenav('comics/' . $result['story'] . '/prev/' . $result['page']); $next = checkexplicitpagenav('comics/' . $result['story'] . '/next/' . $result['page']); if ($prev === NULL || $next === NULL) { $pagebits = strcountingcasebits($result['page']); if (!empty($pagebits['number'])) { $digits = strlen($pagebits['number']); if ($prev === NULL) { $prev = -1 + (int) $pagebits['number']; if ($prev < 1) { $prev = NULL; } else { $prev = str_pad($prev, $digits, '0', STR_PAD_LEFT); } if (empty(globsingle('comics/' . $result['story'] . '/pages/' . $pagebits['prefix'] . $prev . '.*'))) { $prev = NULL; } } if ($next === NULL) { $next = str_pad(1 + (int) $pagebits['number'], $digits, '0', STR_PAD_LEFT); if (empty(globsingle('comics/' . $result['story'] . '/pages/' . $pagebits['prefix'] . $next . '.*'))) { $next = NULL; } } } } if ($prev !== NULL) { $metadata['prev'] = $prev; } if ($next !== NULL) { $metadata['next'] = $next; } } if (empty($metadata['first']) || empty($metadata['last']) || empty($metadata['prev']) || empty($metadata['next']) || empty($result['page'])) { if (empty($result['page'])) { $pages = getnavlinks('comics/' . $result['story'] . '/pages/*', NULL); if (!empty($pages['nlast'])) { $pages['prev'] = $pages['nlast']; } if (!empty($pages['last'])) { $result['page'] = $pages['last']; } } else { $pages = getnavlinks('comics/' . $result['story'] . '/pages/*', $result['page']); } foreach (array('first', 'prev', 'next', 'last') as $item) { if (empty($metadata[$item]) && $pages[$item] !== NULL) { $metadata[$item] = $pages[$item]; } } } if (empty($result['page'])) { $result['page'] = '1'; } foreach ($metadata as $k => $v) { $result['metadata_' . $k] = $v; } // Global variable because we can't make it a constant global $pageLinks; $result['directory'] = 'archive/' . ($result['story'] === 'default' ? '' : $result['story'] . '/'); $pageLinks = array(); foreach (array('first', 'prev', 'next', 'last') as $index) { if (isset($result['metadata_' . $index])) { $pageLinks[$index] = $result['metadata_' . $index]; } else { $pageLinks[$index] = $result['page']; } } $result['template'] = "comic_default.php"; if (!empty($result['image_file'])) { $template = "comic_" . pathinfo($result['image_file'], PATHINFO_EXTENSION) . ".php"; if (file_exists($template)) { $result['template'] = $template; } } $commentary = globsingle('comics/' . $result['story'] . '/commentary/' . $result['page'] . '.*'); if (!empty($commentary)) { $result['text_file'] = $commentary; } $result['page_title'] = $metadata['name'] . ' - Page ' . $result['page']; return $result; }