e107inc/e107

View on GitHub
e107_plugins/download/e_upload.php

Summary

Maintainability
A
0 mins
Test Coverage
F
1%
<?php
/*
 * e107 website system
 *
 * Copyright (C) 2008-2016 e107 Inc (e107.org)
 * Released under the terms and conditions of the
 * GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
 *
 */


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

// v2 e_upload addon.

class download_upload
{

    function config()
    {
        $config = array(
            'name'                => LAN_PLUGIN_DOWNLOAD_NAME, // Prune downloads history
            'table'                => "download",  // table to insert upload data into.
            'media'                => array(
                                    'file'      => 'download_file',  // media-category for first imported file.
                                    'preview'   => '_common_image',  // media-category for screenshot/preview imported file.
                                    ),
            'url'               => e_PLUGIN_ABS.'download/admin_download.php?mode=main&action=edit&id={ID}' // URL to edit new record.
        );

        return $config;
    }


    /**
     * Compile Array Structure
     */
    private function compile(&$inArray, &$outArray, $pid = 0)
    {
        if(!is_array($inArray) || !is_array($outArray)){ return array(); }

        foreach($inArray as $key => $val)
        {
            if($val['download_category_parent'] == $pid)
            {
                $val['download_category_sub'] = (!empty($val['download_category_sub'])) ? $val['download_category_sub'] : array();

                if($val['download_category_id'] != $pid)
                {
                     $this->compile($inArray, $val['download_category_sub'], $val['download_category_id']);
                }

                $id = $val['download_category_id'];

                $outArray[$id] = $val;
            }
        }
        return $outArray;
    }


    /**
     * Sent to 'Category' dropdown menu in upload.php form.
     * @return array
     */
    function category()
    {



        $sql = e107::getDb();
        $qry = "SELECT download_category_id,download_category_name,download_category_parent FROM `#download_category`  WHERE download_category_class IN (".USERCLASS_LIST.")  ORDER BY download_category_order, download_category_parent";

            if (!$data = $sql->retrieve($qry,true))
          {
            return array();
          }

          $outArray = array();

          $ret =  $this->compile($data,$outArray);

        $arr = array();
          foreach($ret as $k=>$v)
        {
            $id = $v['download_category_name'];
            foreach($v['download_category_sub'] as $row)
            {
                $id2 = $row['download_category_name'];
                $catID = 'download__'.$row['download_category_id'];
                $arr[$id][$catID] = $id2;
                if(!empty($row['download_category_sub']))
                {
                    foreach($row['download_category_sub'] as $key=>$val)
                    {
                        $subid = $val['download_category_name'];
                        $catID2 = 'download__'.$val['download_category_id'];
                        $arr[$id][$subid][$catID2] = $subid;
                    }
                }

            }

        }

        return $arr;





    }

    function insert($upload)
    {

         $ret = array(
            'download_name'             => $upload['upload_name'],
            'download_url'              => $upload['upload_file'],
            'download_sef'              => eHelper::title2sef($upload['upload_name']),
            'download_author'           => $upload['upload_poster'],
            'download_author_email'     => $upload['upload_email'],
            'download_author_website'   => $upload['upload_website'],
            'download_description'      => $upload['upload_description'],
            'download_keywords'         => null,
            'download_filesize'         => $upload['upload_filesize'],
            'download_requested'        => 0,
            'download_category'         => $upload['upload_category'],
            'download_active'           => 1,
            'download_datestamp'        => $upload['upload_datestamp'],
            'download_thumb'            => null,
            'download_image'            => $upload['upload_ss'],
            'download_comment'          => 1,
            'download_class'            => e_UC_MEMBER,
            'download_visible'          => e_UC_MEMBER,
            'download_mirror'           => null,
            'download_mirror_type'      => 0,
        );

        return $ret;

    }



}