Ejemplo n.º 1
0
/**
 * Re-route some url handler
 */
function gvfiles_route_file_handler($hook, $type, $return_value, $params)
{
    /**
     * $return_value contains:
     * $return_value['handler'] => requested handler
     * $return_value['segments'] => url parts ($page)
     */
    $result = $return_value;
    if (!empty($return_value) && is_array($return_value)) {
        $page = $return_value['segments'];
        elgg_load_library('elgg:file');
        $file_dir = elgg_get_plugins_path() . 'gvfiles/pages/';
        switch ($page[0]) {
            case 'all':
                file_register_toggle();
                include "{$file_dir}/world.php";
                $result = false;
                break;
            case 'view':
            case 'read':
                // Elgg 1.7 compatibility
                set_input('guid', $page[1]);
                include "{$file_dir}/view.php";
                $result = false;
                break;
            case 'owner':
                file_register_toggle();
                include "{$file_dir}/owner.php";
                $result = false;
                break;
            case 'group':
                file_register_toggle();
                include "{$file_dir}/owner.php";
                $result = false;
                break;
            case 'add':
                include "{$file_dir}/upload.php";
                $result = false;
                break;
            case 'edit':
                set_input('guid', $page[1]);
                include "{$file_dir}/edit.php";
                $result = false;
                break;
        }
    }
    return $result;
}
Ejemplo n.º 2
0
/**
 * Dispatches file pages.
 * URLs take the form of
 *  All files:       file/all
 *  User's files:    file/owner/<username>
 *  Friends' files:  file/friends/<username>
 *  View file:       file/view/<guid>/<title>
 *  New file:        file/add/<guid>
 *  Edit file:       file/edit/<guid>
 *  Group files:     file/group/<guid>/all
 *  Download:        file/download/<guid>
 *
 * Title is ignored
 *
 * @param array $page
 * @return bool
 */
function file_page_handler($page)
{
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    $file_dir = elgg_get_plugins_path() . 'file/pages/file';
    $page_type = $page[0];
    switch ($page_type) {
        case 'owner':
            file_register_toggle();
            include "{$file_dir}/owner.php";
            break;
        case 'friends':
            file_register_toggle();
            include "{$file_dir}/friends.php";
            break;
        case 'view':
        case 'read':
            // Elgg 1.7 compatibility
            set_input('guid', $page[1]);
            include "{$file_dir}/view.php";
            break;
        case 'add':
            include "{$file_dir}/upload.php";
            break;
        case 'edit':
            set_input('guid', $page[1]);
            include "{$file_dir}/edit.php";
            break;
        case 'search':
            file_register_toggle();
            include "{$file_dir}/search.php";
            break;
        case 'group':
            file_register_toggle();
            include "{$file_dir}/owner.php";
            break;
        case 'all':
            file_register_toggle();
            include "{$file_dir}/world.php";
            break;
        case 'download':
            set_input('guid', $page[1]);
            include "{$file_dir}/download.php";
            break;
        default:
            return false;
    }
    return true;
}
Ejemplo n.º 3
0
/**
 * Dispatches file pages.
 * URLs take the form of
 *  All files:       file/all
 *  User's files:    file/owner/<username>
 *  Friends' files:  file/friends/<username>
 *  View file:       file/view/<guid>/<title>
 *  New file:        file/add/<guid>
 *  Edit file:       file/edit/<guid>
 *  Group files:     file/group/<guid>/all
 *  Download:        file/download/<guid>
 *
 * Title is ignored
 *
 * @param array $page
 * @return bool
 */
function file_page_handler($page)
{
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    $file_dir = elgg_get_plugins_path() . 'file/pages/file';
    $page_type = $page[0];
    switch ($page_type) {
        case 'owner':
            file_register_toggle();
            include "{$file_dir}/owner.php";
            break;
        case 'friends':
            file_register_toggle();
            include "{$file_dir}/friends.php";
            break;
        case 'read':
            // Elgg 1.7 compatibility
            register_error(elgg_echo("changebookmark"));
            forward("file/view/{$page[1]}");
            break;
        case 'view':
            set_input('guid', $page[1]);
            include "{$file_dir}/view.php";
            break;
        case 'add':
            include "{$file_dir}/upload.php";
            break;
        case 'edit':
            set_input('guid', $page[1]);
            include "{$file_dir}/edit.php";
            break;
        case 'search':
            file_register_toggle();
            include "{$file_dir}/search.php";
            break;
        case 'group':
            file_register_toggle();
            include "{$file_dir}/owner.php";
            break;
        case 'all':
            file_register_toggle();
            include "{$file_dir}/world.php";
            break;
        case 'download':
            set_input('guid', $page[1]);
            include "{$file_dir}/download.php";
            break;
            /*case 'release':
            		include elgg_get_plugins_path() . 'file/cron/releaser.php';
            		break;*/
        /*case 'release':
        		include elgg_get_plugins_path() . 'file/cron/releaser.php';
        		break;*/
        case 'access':
            include "{$file_dir}/accessCollections.php";
            break;
        default:
            return false;
    }
    return true;
}
Ejemplo n.º 4
0
/**
 * Dispatches file pages.
 * URLs take the form of
 *  All files:       file/all
 *  User's files:    file/owner/<username>
 *  Friends' files:  file/friends/<username>
 *  View file:       file/view/<guid>/<title>
 *  New file:        file/add/<guid>
 *  Edit file:       file/edit/<guid>
 *  Group files:     file/group/<guid>/all
 *  Download:        file/download/<guid>
 *
 * Title is ignored
 *
 * @param array $page
 * @return bool
 */
function file_page_handler($page)
{
    if (!isset($page[0])) {
        $page[0] = 'all';
    }
    $page_type = $page[0];
    switch ($page_type) {
        case 'owner':
            file_register_toggle();
            echo elgg_view_resource('file/owner');
            break;
        case 'friends':
            file_register_toggle();
            echo elgg_view_resource('file/friends');
            break;
        case 'view':
            echo elgg_view_resource('file/view', ['guid' => $page[1]]);
            break;
        case 'add':
            echo elgg_view_resource('file/upload');
            break;
        case 'edit':
            echo elgg_view_resource('file/edit', ['guid' => $page[1]]);
            break;
        case 'search':
            file_register_toggle();
            echo elgg_view_resource('file/search');
            break;
        case 'group':
            file_register_toggle();
            echo elgg_view_resource('file/owner');
            break;
        case 'all':
            file_register_toggle();
            echo elgg_view_resource('file/world');
            break;
        case 'download':
            echo elgg_view_resource('file/download', ['guid' => $page[1]]);
            break;
        default:
            return false;
    }
    return true;
}
Ejemplo n.º 5
0
/**
 * Dispatcher for videos.
 * URLs take the form of
 *  All videos:        videos/all
 *  User's videos:     videos/owner/<username>
 *  Friends' videos:   videos/friends/<username>
 *  View video:        videos/view/<guid>/<title>
 *  New video:         videos/add/<guid> (container: user, group, parent)
 *  Edit video:        videos/edit/<guid>
 *  Group videos:      videos/group/<guid>/owner
 * Title is ignored
 * @param array $page
 */
function videos_page_handler($page)
{
    elgg_load_library('elgg:videos');
    elgg_push_breadcrumb(elgg_echo('videos'), 'videos/mostviewed');
    elgg_push_context('videos');
    if (substr_count($page[0], 'group:')) {
        preg_match('/group\\:([0-9]+)/i', $page[0], $matches);
        $guid = $matches[1];
        if ($entity = get_entity($guid)) {
            videos_url_forwarder($page);
        }
    }
    $user = get_user_by_username($page[0]);
    if ($user) {
        videos_url_forwarder($page);
    }
    $pages = dirname(__FILE__) . '/pages/videos';
    switch ($page[0]) {
        case "all":
            include "{$pages}/all.php";
            break;
        case "owner":
            include "{$pages}/owner.php";
            break;
        case "friends":
            include "{$pages}/friends.php";
            break;
        case "playlist":
            include "{$pages}/playlist.php";
            break;
        case "read":
        case "view":
            set_input('guid', $page[1]);
            include "{$pages}/view.php";
            break;
        case "add":
            gatekeeper();
            include "{$pages}/add.php";
            break;
        case "edit":
            gatekeeper();
            set_input('guid', $page[1]);
            include "{$pages}/edit.php";
            break;
        case 'featured':
            include "{$pages}/featured.php";
            break;
        case 'youtube':
            include "{$pages}/youtube.php";
            break;
        case 'mostviewed':
            include "{$pages}/mostviewed.php";
            break;
        case 'popular':
            file_register_toggle();
            include "{$pages}/popular.php";
            break;
        case 'group':
            group_gatekeeper();
            include "{$pages}/owner.php";
            break;
        default:
            return false;
    }
    elgg_pop_context();
    return true;
}