コード例 #1
0
ファイル: file_input.php プロジェクト: mrdeadmouse/u136006
 /**
  * @param array $values
  * @param string $inputNameTemplate
  * @param bool|array $showInfo
  * @param bool $maxCount
  * @param array $inputs
  * @return string
  */
 public static function ShowMultiple($values = array(), $inputNameTemplate = "", $showInfo = false, $maxCount = false, $inputs = array())
 {
     CJSCore::Init('file_input');
     ob_start();
     global $USER;
     self::Init($showInfo, $inputNameTemplate, $maxCount);
     self::$bMultiple = true;
     $arDescInput = is_array($inputs['description']) && isset($inputs['description']['VALUES']) && isset($inputs['description']['NAME_TEMPLATE']) ? $inputs['description'] : false;
     $inputs = array('upload' => $inputs['upload'] === true, 'medialib' => $inputs['medialib'] === true && COption::GetOptionString('fileman', "use_medialib", "Y") != "N", 'file_dialog' => $inputs['file_dialog'] === true, 'cloud' => $inputs['cloud'] === true && $USER->CanDoOperation("clouds_browse") && CModule::IncludeModule("clouds") && CCloudStorage::HasActiveBuckets(), 'del' => $inputs['del'] !== false, 'description' => $inputs['description'] === true || $arDescInput);
     self::$bUseUpload = $inputs['upload'];
     self::$bUseMedialib = $inputs['medialib'];
     self::$bUseFileDialog = $inputs['file_dialog'];
     self::$bUseCloud = $inputs['cloud'];
     self::$bShowDelInput = $inputs['del'];
     self::$bShowDescInput = $inputs['description'];
     self::$inputNameTemplate = $inputNameTemplate;
     self::$bViewMode = self::IsViewMode();
     if (self::$bViewMode) {
         self::$bShowDelInput = false;
     }
     if (self::$bShowDelInput) {
         self::$delInputName = self::GetInputName($inputNameTemplate, "_del");
     }
     if (self::$bShowDescInput) {
         self::$descInputName = '';
         if ($arDescInput) {
             self::$descInputName = $arDescInput['NAME_TEMPLATE'];
         }
         if (empty(self::$descInputName)) {
             self::$descInputName = self::GetInputName($inputNameTemplate, "_descr");
         }
     }
     // $arFile - Array with current file or false if it's empty
     self::$curFiles = array();
     self::$bFileExists = false;
     foreach ($values as $inputName => $fileId) {
         if (strlen($fileId) <= 1 && intVal($fileId) === 0) {
             continue;
         }
         self::$bFileExists = true;
         if ($arFile = self::GetFile($fileId)) {
             $arFile['FILE_NOT_FOUND'] = false;
             $arFile['INPUT_NAME'] = $inputName;
             $arFile['DEL_NAME'] = self::GetInputName($inputName, '_del');
             $arFile['DESC_NAME'] = self::GetInputName($inputName, '_descr');
             if ($arDescInput) {
                 list($descName, $descVal) = each($arDescInput['VALUES']);
                 $arFile['DESC_NAME'] = $descName;
                 $arFile['DESCRIPTION'] = $descVal;
             }
         } else {
             $arFile = array('FILE_NOT_FOUND' => true, 'INPUT_NAME' => $inputName, 'DEL_NAME' => self::GetInputName($inputName, '_del'), 'DESC_NAME' => self::GetInputName($inputName, '_descr'));
         }
         self::$curFiles[] = $arFile;
     }
     self::DisplayControl($inputs);
     $result = ob_get_contents();
     ob_end_clean();
     return $result;
 }
コード例 #2
0
ファイル: fileinput.php プロジェクト: mrdeadmouse/u136006
 /**
  * @param array $params
  */
 public function __construct($params = array())
 {
     global $USER;
     $inputs = array_merge($this->elementSetts, $params);
     $this->elementSetts = array("name" => $inputs["name"], "description" => !empty($inputs["description"]), "delete" => $inputs['delete'] !== false, "edit" => $inputs['edit'] !== false, "thumbSize" => 640);
     $replace = array("/\\#MESS_LOADING\\#/" => Loc::getMessage("BXU_LoadingProcess"), "/\\#description\\#/" => $this->elementSetts["edit"] == true && $this->elementSetts["description"] == true ? self::$templatePatterns["description"] : "", "/\\#properties\\#/" => "", "/[\n\t]+/" => "");
     $this->templates["uploaded"] = preg_replace(array_keys($replace), array_values($replace), self::$templatePatterns["uploaded"]);
     $this->templates["unexisted"] = preg_replace(array_keys($replace), array_values($replace), self::$templatePatterns["unexisted"]);
     $this->templates["new"] = preg_replace(array_keys($replace), array_values($replace), self::$templatePatterns["new"]);
     $replace = array("#input_name#" => $inputs["name"], "#input_value#" => "", "#description_name#" => self::getInputName($inputs["name"], "_descr"), "#description#" => "");
     $this->templates["new"] = str_replace(array_keys($replace), array_values($replace), $this->templates["new"]);
     $inputs = array_merge($this->uploadSetts, $params);
     $this->uploadSetts = array("upload" => '', "uploadType" => "path", "medialib" => $inputs['medialib'] === true && \COption::GetOptionString('fileman', "use_medialib", "Y") != "N", "fileDialog" => $inputs['file_dialog'] === true || $inputs['fileDialog'] === true, "cloud" => $inputs['cloud'] === true && $USER->CanDoOperation("clouds_browse") && \CModule::IncludeModule("clouds") && \CCloudStorage::HasActiveBuckets(), "maxCount" => $params["maxCount"] > 0 ? $params["maxCount"] : 0, "maxSize" => $params["maxSize"] > 0 ? $params["maxSize"] : 0, "allowUpload" => in_array($params["allowUpload"], array("A", "I", "F")) ? $params["allowUpload"] : "A", "allowUploadExt" => trim($params["allowUploadExt"]), "allowSort" => $params["allowSort"] == "N" ? "N" : "Y");
     if (empty($this->uploadSetts["allowUploadExt"]) && $this->uploadSetts["allowUpload"] == "F") {
         $this->uploadSetts["allowUpload"] = "A";
     }
     $this->id = 'bx_file_' . strtolower(preg_replace("/[^a-z0-9]/i", "_", $this->elementSetts["name"]));
     if ($inputs['upload'] === true) {
         $this->uploadSetts['upload'] = FileInputReceiver::sign(array("id" => $inputs['uploadType'] === "hash" ? "hash" : "path", "allowUpload" => $this->uploadSetts["allowUpload"], "allowUploadExt" => $this->uploadSetts["allowUploadExt"]));
         $this->uploadSetts['uploadType'] = in_array($inputs["uploadType"], array("hash", "path")) ? $inputs["uploadType"] : "path";
     }
     self::$instance = $this;
 }