芝麻web文件管理V1.00
编辑当前文件:/home/mgatv524/public_html/mctv/lib/Helper/LayoutUploadHandler.php
. */ namespace Xibo\Helper; use Exception; use Xibo\Entity\Layout; use Xibo\Support\Exception\LibraryFullException; /** * Class LayoutUploadHandler * @package Xibo\Helper */ class LayoutUploadHandler extends BlueImpUploadHandler { /** * @param $file * @param $index */ protected function handle_form_data($file, $index) { $controller = $this->options['controller']; /* @var \Xibo\Controller\Layout $controller */ // Handle form data, e.g. $_REQUEST['description'][$index] $fileName = $file->name; $controller->getLog()->debug('Upload complete for ' . $fileName . '.'); // Upload and Save try { // Check Library if ($this->options['libraryQuotaFull']) throw new LibraryFullException(sprintf(__('Your library is full. Library Limit: %s K'), $this->options['libraryLimit'])); // Check for a user quota $controller->getUser()->isQuotaFullByUser(); // Parse parameters $name = isset($_REQUEST['name']) ? $_REQUEST['name'][$index] : ''; $tags = $controller->getUser()->featureEnabled('tag.tagging') ? isset($_REQUEST['tags']) ? $_REQUEST['tags'][$index] : '' : ''; $template = isset($_REQUEST['template']) ? $_REQUEST['template'][$index] : 0; $replaceExisting = isset($_REQUEST['replaceExisting']) ? $_REQUEST['replaceExisting'][$index] : 0; $importTags = isset($_REQUEST['importTags']) ? $_REQUEST['importTags'][$index] : 0; $useExistingDataSets = isset($_REQUEST['useExistingDataSets']) ? $_REQUEST['useExistingDataSets'][$index] : 0; $importDataSetData = isset($_REQUEST['importDataSetData']) ? $_REQUEST['importDataSetData'][$index] : 0; $folderId = isset($_REQUEST['folderId']) ? $_REQUEST['folderId'] : 1; /* @var Layout $layout */ $layout = $controller->getLayoutFactory()->createFromZip( $controller->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/' . $fileName, $name, $this->options['userId'], $template, $replaceExisting, $importTags, $useExistingDataSets, $importDataSetData, $this->options['libraryController'], $tags, $this->options['routeParser'] ); // set folderId, permissionFolderId is handled on Layout specific Campaign record. $layout->folderId = $folderId; $layout->save(['saveActions' => false, 'import' => $importTags]); $layout->managePlaylistClosureTable($layout); $layout->manageActions($layout); @unlink($controller->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/' . $fileName); // Set the name for the return $file->name = $layout->layout; $file->id = $layout->layoutId; } catch (Exception $e) { $controller->getLog()->error(sprintf('Error importing Layout: %s', $e->getMessage())); $controller->getLog()->debug($e->getTraceAsString()); $file->error = $e->getMessage(); // TODO for this the getState() had to be changed to public, we should do it in a better way I think. $controller->getState()->setCommitState(false); } } }