/home/coolpkct/www/websites/cake3.cool.rocks/admin/commands/pluploadlib.php
<?php
/**
 * Part of Showkase web site management package
 *
 * @package Showkase
 * @author Jack Hardie {@link http://www.jhardie.com}
 * @copyright Copyright (c) 2012, SimpleViewer Inc.
 */
defined('SK_ACCESS')||die('<h1>403: Forbidden</h1>');
$sep = DIRECTORY_SEPARATOR;
require_once "commands{$sep}command.php" ;
require_once "classes{$sep}pluploadscreen.php";
require_once "classes{$sep}pagefactory.php";
require_once "classes{$sep}pageset.php";
require_once "classes{$sep}helpers.php";
require_once "classes{$sep}themeset.php";
 
/**
 * Command - Upload
 *
 * @package Showkase
 */
class PluploadLib extends Command
{
    function doExecute( Request $request )
    {
        unset ($_SESSION['pageIndex']);
        $config      = SkConfig::getInstance();
        $context   = array();
        $pageSet   = new PageSet();
        $pagePrefs = $pageSet->getPagesPrefs();
        $runtime   = $pagePrefs['uploaderRuntime'];
        $context['resize']              = $pagePrefs['libraryImageResize'];
        $context['maxImageWidth']       = $pagePrefs['libraryMaxImageWidth'];
        $context['maxImageHeight']      = $pagePrefs['libraryMaxImageHeight'];
        $context['compressionQuality']  = $pagePrefs['libraryResizeQuality'];
        $pageRef     = 'library';
        $pageType    = 'library';
        $pagePath    = $config->getRelativeLibraryPath().DIRECTORY_SEPARATOR;
        $pageFactory = new PageFactory(new ThemeSet);
        $page        = $pageFactory->make($pageType, $pageRef, $pagePath);
        if ($request->propertyIsSet('submitResize')) {
            try {
                $pageSet->setPagesPref('libraryImageResize',    $request->propertyIsSet('resizeOn'));
                $pageSet->setPagesPref('libraryMaxImageWidth',  intval($request->getProperty('maxImageWidth')));
                $pageSet->setPagesPref('libraryMaxImageHeight', intval($request->getProperty('maxImageHeight')));
                $pageSet->setPagesPref(
                    'libraryResizeQuality',
                    max(1,
                        min(100,
                            intval(
                                $request->getProperty('compressionQuality')
                            )
                        )
                    )
                );
                $pageSet->savePagesPrefs();
                Board::addMessage('Resize settings saved');
            } catch (Exception $e) {
                Board::addExceptionMessage($e);
            }
            // AJAX call no need to print out page
            die(Board::getMessages());
        }
        if ($request->propertyIsSet('runtime')) {
            try {
                $runtime = $request->getProperty('runtime');
                $pageSet->setPagesPref('uploaderRuntime', $runtime);
                $pageSet->savePagesPrefs();
            } catch (Exception $e) {
                Board::addExceptionMessage($e);
            }
        }
        switch ($runtime) {
            case ('flash') :
                $context['runtimes'] = 'flash,html4';
                break;
            case ('html4') :
                $context['runtimes'] = 'html4';
                break;
            default :
                $context['runtimes'] = 'html5,flash,html4';
        }
        $absImagePath = realpath(
            getcwd().DIRECTORY_SEPARATOR.
            $page->gallery->getImageDirPathRelSvm()
        );
        if (
            !is_dir($absImagePath)
            && !Filer::skMkdir($absImagePath, NEW_DIR_MODE)
        ) {
            Board::addMessage('Cannot create folder for library files.', 'error');
        }
        $context['pageRef']            = $pageRef;
        $context['maxUploadMBytes']    = Helpers::getMaxUploadMBytes();
        // Escape backslashes for javascript in windows server paths
        $context['absImagePath']       = str_replace('\\', '\\\\', $absImagePath);
        $context['pagePath']           = str_replace('\\', '\\\\', $pagePath);
        $context['supportedPageType']  = $page->isSupportedPageType();
        $context['pageType']           = 'library';
        $context['cmd']                = 'pluploadlib';
        $context['h2']                 = 'Image Library';
        $context['h3']                 = '';
        $bbClass = ucfirst($page->getPluginType().'Buttonbar');
        $screen = new PluploadScreen($bbClass, 'Showkase &ndash; upload images', 'plupload', 'library plupload');
        print $screen->getHtml($context);
    }
}