Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Application/Service/FileManager.php
Строк: 210
<?php
namespace ConcreteCoreApplicationService;

use 
View;
use 
Core;
use 
Loader;
use 
ConcreteCoreFileTypeType as FileType;
use 
File;

class 
FileManager
{

    
/**
     * Sets up a file field for use with a block.
     *
     * @param string $id The ID of your form field
     * @param string $postname The name of your database column into which you'd like to save the file ID
     * @param string $chooseText
     * @param File $bf
     * @return string $html
     */
    
public function file($id$postname$chooseText$bf null$filterArgs = array())
    {
        
$fileID 0;
        
$v View::getInstance();
        
$v->requireAsset('core/file-manager');

        
/**
         * If $_POST[$postname] is a valid File ID
         * use that file
         * If not try to use the $bf parameter passed in
         */
        
$vh Core::make('helper/validation/numbers');
        if (isset(
$_POST[$postname]) && $vh->integer($_POST[$postname])) {
            
$postFile File::getByID($_POST[$postname]);
            if (
is_object($postFile) && $postFile->getFileID() > 0) {
                
$bf $postFile;
            }
        }

        if (
is_object($bf) && $bf->getFileID() > 0) {
            
$fileID $bf->getFileID();
        }

        
$filters '[]';
        if (
$filterArgs['filters']) {
            
$filters json_encode($filterArgs['filters']);
        }

        if (!empty(
$chooseText)) {
            
$chooseText json_encode($chooseText);
            
$chooseText "'chooseText': $chooseText";
        }
        if (
$fileID) {
            
$args "{'inputName': '{$postname}', 'fID': {$fileID}, 'filters': $filters }";
        } else {
            
$args "{'inputName': '{$postname}', 'filters': $filters$chooseText }";
        }


        
$html = <<<EOL
        <div class="ccm-file-selector" data-file-selector="{$id}"></div>
        <script type="text/javascript">
        $(function() {
            $('[data-file-selector=
{$id}]').concreteFileSelector({$args});
        });
        </script>
EOL;
        
/*
         * $html = '<div id="' . $id . '-fm-selected" class="ccm-file-selected-wrapper">'; $html .= '<div class="ccm-file-manager-select" id="' . $id . '-fm-display" ccm-file-manager-field="' . $id . '" style="display: ' . $resetDisplay . '">'; $html .= '<a href="javascript:void(0)" onclick="ccm_chooseAsset=false; ccm_alLaunchSelectorFileManager('' . $id . '')">' . $chooseText . '</a>'; $html .= '</div><input id="' . $id . '-fm-value" type="hidden" name="' . $postname . '" value="' . $fileID . '" />'; $html .= '<script type="text/javascript">$(function() { if (is_object($bf) && (!$bf->isError()) && $bf->getFileID() > 0) { $html .= '<script type="text/javascript">$(function() { ccm_triggerSelectFile(' . $fileID . ', '' . $id . ''); });</script>'; }
         */

        
return $html;
    }

    
/**
     * Sets up an image to be chosen for use with a block.
     *
     * @param string $id The ID of your form field
     * @param string $postname The name of your database column into which you'd like to save the file ID
     * @param string $chooseText
     * @param File $fileInstanceBlock
     * @param array $additionalArgs
     * @return string $html
     */
    
public function image($id$postname$chooseText$fileInstanceBlock null$additionalArgs = array())
    {
        
$args = array();
        
$args['filters'] = array( array( 'field' => 'type''type' => FileType::T_IMAGE ) );
        
$args array_merge($args$additionalArgs);
        return 
$this->file($id$postname$chooseText$fileInstanceBlock$args);
    }

    
/**
     * Sets up a video to be chosen for use with a block.
     *
     * @param string $id  The ID of your form field
     * @param string $postname The name of your database column into which you'd like to save the file ID
     * @param string $chooseText
     * @param File $fileInstanceBlock
     * @param array $additionalArgs
     * @return string $html
     */
    
public function video($id$postname$chooseText$fileInstanceBlock null$additionalArgs = array())
    {
        
$args = array();
        
$args['filters'] = array( array( 'field' => 'type''type' => FileType::T_VIDEO) );
        
$args array_merge($args$additionalArgs);
        return 
$this->file($id$postname$chooseText$fileInstanceBlock$args);
    }

    
/**
     * Sets up a text file to be chosen for use with a block.
     *
     * @param string $id The ID of your form field
     * @param string $postname The name of your database column into which you'd like to save the file ID
     * @param string $chooseText
     * @param File $fileInstanceBlock
     * @param array $additionalArgs
     * @return string $html
     */
    
public function text($id$postname$chooseText$fileInstanceBlock null$additionalArgs = array())
    {
        
$args = array();
        
$args['filters'] = array( array( 'field' => 'type''type' => FileType::T_TEXT) );
        
$args array_merge($args$additionalArgs);
        return 
$this->file($id$postname$chooseText$fileInstanceBlock$args);
    }

    
/**
     * Sets up audio to be chosen for use with a block.
     *
     * @param string $id The ID of your form field
     * @param string $postname The name of your database column into which you'd like to save the file ID
     * @param string $chooseText
     * @param File $fileInstanceBlock
     * @param array $additionalArgs
     * @return string $html
     */
    
public function audio($id$postname$chooseText$fileInstanceBlock null$additionalArgs = array())
    {
        
$args = array();
        
$args['filters'] = array( array( 'field' => 'type''type' => FileType::T_AUDIO) );
        
$args array_merge($args$additionalArgs);
        return 
$this->file($id$postname$chooseText$fileInstanceBlock$args);
    }

    
/**
     * Sets up a document to be chosen for use with a block.
     *
     * @param string $id  The ID of your form field
     * @param string $postname The name of your database column into which you'd like to save the file ID
     * @param string $chooseText
     * @param File $fileInstanceBlock
     * @param array $additionalArgs
     * @return string $html
     */
    
public function doc($id$postname$chooseText$fileInstanceBlock null$additionalArgs = array())
    {
        
$args = array();
        
$args['filters'] = array( array( 'field' => 'type''type' => FileType::T_DOCUMENT) );
        
$args array_merge($args$additionalArgs);
        return 
$this->file($id$postname$chooseText$fileInstanceBlock$args);
    }

    
/**
     * Sets up an application to be chosen for use with a block.
     *
     * @param string $id The ID of your form field
     * @param string $postname The name of your database column into which you'd like to save the file ID
     * @param string $chooseText
     * @param File $fileInstanceBlock
     * @param array $additionalArgs
     * @return string $html
     */
    
public function app($id$postname$chooseText$fileInstanceBlock null$additionalArgs = array())
    {
        
$args = array();
        
$args['filters'] = array( array( 'field' => 'type''type' => FileType::T_APPLICATION) );
        
$args array_merge($args$additionalArgs);
        return 
$this->file($id$postname$chooseText$fileInstanceBlock$args);
    }
}
Онлайн: 1
Реклама