/**
 * Figures out what is being accessed and calls the appropriate load function
 *
 * @return bool
 */
function zp_load_request()
{
    if ($success = zp_apply_filter('load_request', true)) {
        // filter allowed the load
        zp_load_page();
        if (isset($_GET['p'])) {
            $page = str_replace(array('/', '\\', '.'), '', sanitize($_GET['p']));
            if (isset($_GET['t'])) {
                //	Zenphoto tiny url
                unset($_GET['t']);
                $tiny = sanitize_numeric($page);
                $asoc = getTableAsoc();
                $tbl = $tiny & 7;
                if (array_key_exists($tbl, $asoc)) {
                    $tbl = $asoc[$tbl];
                    $id = $tiny >> 3;
                    $result = query_single_row('SELECT * FROM ' . prefix($tbl) . ' WHERE `id`=' . $id);
                    if ($result) {
                        switch ($tbl) {
                            case 'news':
                            case 'pages':
                                $page = $_GET['p'] = $tbl;
                                $_GET['title'] = $result['titlelink'];
                                break;
                            case 'images':
                                $image = $_GET['image'] = $result['filename'];
                                $result = query_single_row('SELECT * FROM ' . prefix('albums') . ' WHERE `id`=' . $result['albumid']);
                            case 'albums':
                                $album = $_GET['album'] = $result['folder'];
                                unset($_GET['p']);
                                if (!empty($image)) {
                                    return zp_load_image($album, $image);
                                } else {
                                    if (!empty($album)) {
                                        return zp_load_album($album);
                                    }
                                }
                                break;
                            case 'comments':
                                unset($_GET['p']);
                                $commentid = $id;
                                $type = $result['type'];
                                $result = query_single_row('SELECT * FROM ' . prefix($result['type']) . ' WHERE `id`=' . $result['ownerid']);
                                switch ($type) {
                                    case 'images':
                                        $image = $result['filename'];
                                        $result = query_single_row('SELECT * FROM ' . prefix('albums') . ' WHERE `id`=' . $result['albumid']);
                                        $redirect = 'index.php?album=' . $result['folder'] . '&image=' . $image;
                                        break;
                                    case 'albums':
                                        $album = $result['folder'];
                                        $redirect = 'index.php?album=' . $result['folder'];
                                        break;
                                    case 'pages':
                                        $redirect = 'index.php?p=pages&title=' . $result['titlelink'];
                                        break;
                                }
                                $redirect .= '#c_' . $commentid;
                                header("HTTP/1.0 301 Moved Permanently");
                                header("Status: 301 Moved Permanently");
                                header('Location: ' . FULLWEBPATH . '/' . $redirect);
                                exit;
                                break;
                        }
                    }
                }
            }
            switch ($page) {
                case 'search':
                    return zp_load_search();
                    break;
                case 'pages':
                    if (getOption('zp_plugin_zenpage')) {
                        return zenpage_load_page();
                    }
                    break;
                case 'news':
                    if (getOption('zp_plugin_zenpage')) {
                        return zenpage_load_news();
                    }
                    break;
            }
        }
        //	may need image and album parameters processed
        list($album, $image) = rewrite_get_album_image('album', 'image');
        if (!empty($image)) {
            return zp_load_image($album, $image);
        } else {
            if (!empty($album)) {
                return zp_load_album($album);
            }
        }
    }
    return $success;
}
Esempio n. 2
0
 function NewsController()
 {
     zenpage_load_news();
     $this->setCurrentNewsPage();
 }