protected function AddFormForLibraryMedia() { global $session; $db =& $this->db; $user =& $this->user; $this->response = new ResponseManager(); // Check we have room in the library $libraryLimit = Config::GetSetting('LIBRARY_SIZE_LIMIT_KB'); if ($libraryLimit > 0) { $fileSize = $this->db->GetSingleValue('SELECT IFNULL(SUM(FileSize), 0) AS SumSize FROM media', 'SumSize', _INT); if ($fileSize / 1024 > $libraryLimit) { trigger_error(sprintf(__('Your library is full. Library Limit: %s K'), $libraryLimit), E_USER_ERROR); } } // Check this user doesn't have a quota if (!UserGroup::isQuotaFullByUser($user->userid)) { $this->ThrowError(__('You have exceeded your library quota.')); } // Would like to get the regions width / height $layoutid = $this->layoutid; $regionid = $this->regionid; // Set the Session / Security information $sessionId = session_id(); $securityToken = CreateFormToken(); $backgroundImage = Kit::GetParam('backgroundImage', _GET, _BOOL, false); $session->setSecurityToken($securityToken); // Set some defaults based on the type of media we are // TODO: this should be passed in switch ($this->type) { case 'video': case 'localvideo': case 'genericfile': case 'font': $defaultDuration = 0; break; case 'image': $defaultDuration = Config::GetSetting('jpg_length'); break; case 'flash': $defaultDuration = Config::GetSetting('swf_length'); break; case 'powerpoint': $defaultDuration = Config::GetSetting('ppt_length'); break; default: $defaultDuration = 10; } // Save button is different depending on if we are on a region or not if ($regionid != '' && $this->showRegionOptions) { setSession('content', 'mediatype', $this->type); $this->response->AddButton(__('Assign to Layout'), 'XiboAssignToLayout(' . $layoutid . ',"' . $regionid . '")'); $this->response->AddButton(__('View Library'), 'XiboSwapDialog("index.php?p=content&q=LibraryAssignForm&layoutid=' . $layoutid . '®ionid=' . $regionid . '")'); $this->response->AddButton(__('Close'), 'XiboSwapDialog("index.php?p=timeline&layoutid=' . $layoutid . '®ionid=' . $regionid . '&q=RegionOptions")'); } elseif ($regionid != '' && !$this->showRegionOptions) { $this->response->AddButton(__('Close'), 'XiboDialogClose()'); } elseif ($backgroundImage) { $this->response->AddButton(__('Close'), 'XiboSwapDialog("index.php?p=layout&q=BackgroundForm&modify=true&layoutid=' . $layoutid . '")'); // Background override url is used on the theme to add a button next to each uploaded file (if in background override) Theme::Set('background_override_url', "index.php?p=layout&q=BackgroundForm&modify=true&layoutid={$layoutid}&backgroundOveride="); } else { $this->response->AddButton(__('Close'), 'XiboSwapDialog("index.php?p=content&q=displayForms&sp=add");XiboRefreshAllGrids()'); } // Setup the theme Theme::Set('form_upload_id', 'fileupload'); Theme::Set('form_action', 'index.php?p=content&q=JqueryFileUpload&type=' . $this->type); Theme::Set('form_meta', '<input type="hidden" id="PHPSESSID" value="' . $sessionId . '" /><input type="hidden" id="SecurityToken" value="' . $securityToken . '" /><input type="hidden" name="type" value="' . $this->type . '"><input type="hidden" name="layoutid" value="' . $layoutid . '"><input type="hidden" name="regionid" value="' . $regionid . '">'); Theme::Set('form_valid_ext', '/(\\.|\\/)' . implode('|', $this->validExtensions) . '$/i'); Theme::Set('form_max_size', Kit::ReturnBytes($this->maxFileSize)); Theme::Set('valid_extensions', sprintf(__('This form accepts: %s files up to a maximum size of %s'), $this->validExtensionsText, $this->maxFileSize)); Theme::Set('default_duration', $defaultDuration); $form = Theme::RenderReturn('library_form_media_add'); $this->response->html = $form; $this->response->dialogTitle = sprintf(__('Add New %s'), __($this->displayType)); $this->response->dialogSize = true; $this->response->dialogWidth = '450px'; $this->response->dialogHeight = '280px'; $this->response->callBack = 'MediaFormInitUpload'; $this->response->dialogClass = 'modal-big'; return $this->response; }