e107inc/e107

View on GitHub
e107_plugins/download/e_url.php

Summary

Maintainability
A
0 mins
Test Coverage
F
1%
<?php
/*
 * e107 Bootstrap CMS
 *
 * Copyright (C) 2008-2015 e107 Inc (e107.org)
 * Released under the terms and conditions of the
 * GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
 *
 * IMPORTANT: Make sure the redirect script uses the following code to load class2.php:
 *
 *     if (!defined('e107_INIT'))
 *     {
 *         require_once(__DIR__.'/../../class2.php');
 *     }
 *
 */

if (!defined('e107_INIT')) { exit; }

// v2.x Standard  - Simple mod-rewrite module.

class download_url // plugin-folder + '_url'
{

    public $alias = 'download';

    /**
     * Support for different URL profiles (optional)
     * @return array
     */
    public $profiles = array(
        'default'       => array('label' => 'Friendly Default',         'examples' => array('{SITEURL}download/category/3/my-category-name')),
        'non-numeric'   => array('label' => 'Friendly (experimental)',  'examples' => array('{SITEURL}download/my-category/my-sub-category/my-file-name')),
    );

    // Batch generate SEF URls on tables.
    public $generate = array(
        0 => array('table'=> 'download',            'primary'=>'download_id',           'input'=>'download_name',           'output'=>'download_sef'),
        1 => array('table'=> 'download_category',   'primary'=>'download_category_id',  'input'=>'download_category_name',  'output'=>'download_category_sef')
    );


    function config($profile=null)
    {

        switch($profile)
        {
            case "non-numeric":
                $config = $this->profile2();
                break;

            case "default":
            default:
                $config = $this->profile1();

        }



        return $config;
    }




    private function profile2()
    {
        $config = $this->profile1();

        if(!deftrue('e_DEBUG'))
        {
            return $config;
        }


        unset($config['index']);

        $config['subcategory'] = array(
            'regex'            => '^{alias}/([^\/]*)/([^\/]*)/?$',
            'redirect'        => '{e_PLUGIN}download/download.php?catsef=$2', // TODO catsef support in download_class.php
            'sef'            => '{alias}/{cat_sef}/{subcat_sef}'
        );


        $config['category'] = array(
            'regex'            => '^{alias}/([^\/]*)/?(.*)$',
            'redirect'        => '{e_PLUGIN}download/download.php?action=list&catsef=$1', // TODO catsef support in download_class.php
            'sef'           => '{alias}/{download_category_sef}',
        );

        $config['index'] = array(
            'regex'            => '^{alias}/?$',
            'sef'            => '{alias}/',
            'redirect'        => '{e_PLUGIN}download/download.php$1',
        );


        return $config;
    }


    private function profile1()
    {
        $config = array();

/*

        $config['subcategory'] = array(
            'regex'            => '^{alias}/([^\/]*)/([^\/]*)/?$',
            'redirect'        => '{e_PLUGIN}download/download.php?catsef=$2',
            'sef'            => '{alias}/{cat_sef}/{subcat_sef}'
        );
*/

        $config['category'] = array(
            'regex'            => '^{alias}/category/([\d]*)/(.*)$',
            'redirect'        => '{e_PLUGIN}download/download.php?action=list&id=$1',
            'sef'           => '{alias}/category/{download_category_id}/{download_category_sef}/',
        );

        $config['item']     = array(
            'regex'            => '^{alias}/([\d]*)/(.*)$',
            'redirect'        => '{e_PLUGIN}download/download.php?action=view&id=$1',
            'sef'           => '{alias}/{download_id}/{download_sef}',
        );

        $config['get']     = array(
            'regex'            => '^{alias}/get/([\d]*)/(.*)$',
            'sef'           => '{alias}/get/{download_id}/{download_sef}',
            'redirect'        => '{e_PLUGIN}download/request.php?id=$1',         // file-path of what to load when the regex returns true.
        );

        $config['report']    = array(
            'regex'            => '^{alias}/report/([\d]*)/(.*)$',
            'sef'           => '{alias}/report/{download_id}/{download_sef}',
            'redirect'        => '{e_PLUGIN}download/download.php?action=report&id=$1',         // file-path of what to load when the regex returns true.

        );

        $config['image']     = array(
            'regex'            => '^{alias}/image/([\d]*)/(.*)$',
            'sef'           => '{alias}/image/{download_id}/{download_sef}',
            'redirect'        => '{e_PLUGIN}download/request.php?download.$1',         // file-path of what to load when the regex returns true.
        );

        $config['index'] = array(
            'regex'            => '^{alias}/?(.*)$',
            'sef'            => '{alias}/',
            'redirect'        => '{e_PLUGIN}download/download.php$1',
        );


        return $config;
    }



}