*/ $requestedHandlers = $options['source-handlers'] ? $options['source-handlers'] : ''; $aRequestedHandlers = $requestedHandlers ? explode(',', $requestedHandlers) : $importINI->variable('ImportSettings', 'AvailableSourceHandlers'); $areValidHandlers = SQLIImportFactory::checkExistingHandlers($aRequestedHandlers); // An exception may be thrown if a handler is not defined in sqliimport.ini if ($aRequestedHandlers) { $aHandlersOptions = SQLIImportHandlerOptions::decodeHandlerOptionLine($options['options']); $importUser = eZUser::fetchByName('admin'); // As this is a manual script, "Admin" user will be used to import $aImportItems = array(); // First stores an SQLIImportItem for each handler to process foreach ($aRequestedHandlers as $handler) { $handlerOptions = isset($aHandlersOptions[$handler]) ? $aHandlersOptions[$handler] : null; $pendingImport = new SQLIImportItem(array('handler' => $handler, 'user_id' => $importUser->attribute('contentobject_id'))); if ($handlerOptions instanceof SQLIImportHandlerOptions) { $pendingImport->setAttribute('options', $handlerOptions); } $pendingImport->store(); $aImportItems[] = $pendingImport; } $importFactory = SQLIImportFactory::instance(); $importFactory->runImport($aImportItems); $importFactory->cleanup(); $cli->notice('Import is over :)'); } else { $cli->warning('No import handler to process ! Check sqliimport.ini to define handlers'); } $memoryMax = memory_get_peak_usage(); $memoryMax = round($memoryMax / 1024 / 1024, 2); // Convert in Megabytes $cli->notice('Peak memory usage : ' . $memoryMax . 'M');
$http = eZHTTPTool::instance(); try { $userLimitations = SQLIImportUtils::getSimplifiedUserAccess('sqliimport', 'manageimports'); $simplifiedLimitations = $userLimitations['simplifiedLimitations']; if ($Module->isCurrentAction('RequestImport')) { // Check if user has access to handler alteration $aLimitation = array('SQLIImport_Type' => $Module->actionParameter('ImportHandler')); $hasAccess = SQLIImportUtils::hasAccessToLimitation($Module->currentModule(), 'manageimports', $aLimitation); if (!$hasAccess) { return $Module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel'); } $importOptions = $Module->actionParameter('ImportOptions'); $pendingImport = new SQLIImportItem(array('handler' => $Module->actionParameter('ImportHandler'), 'user_id' => eZUser::currentUserID())); if ($importOptions) { if (is_array($importOptions)) { $pendingImport->setAttribute('options', SQLIImportHandlerOptions::fromHTTPInput($importOptions)); } else { //backwards compatibility mode : options are set in a textarea $pendingImport->setAttribute('options', SQLIImportHandlerOptions::fromText($importOptions)); } } $pendingImport->store(); $Module->redirectToView('list'); } $importHandlers = $importINI->variable('ImportSettings', 'AvailableSourceHandlers'); $aValidHandlers = array(); // Check if import handlers are enabled foreach ($importHandlers as $handler) { $handlerSection = $handler . '-HandlerSettings'; if ($importINI->variable($handlerSection, 'Enabled') === 'true') { $handlerName = $importINI->hasVariable($handlerSection, 'Name') ? $importINI->variable($handlerSection, 'Name') : $handler;