Пример #1
0
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;
}
Пример #2
0
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;
}