30 private $pathToLocallang =
'LLL:EXT:workspaces/Resources/Private/Language/locallang.xlf';
41 $massActionsEnabled =
$GLOBALS[
'BE_USER']->getTSConfigVal(
'options.workspaces.enableMassActions') !==
'0';
44 $publishAccess =
$GLOBALS[
'BE_USER']->workspacePublishAccess($currentWorkspace);
45 if ($publishAccess && !(
$GLOBALS[
'BE_USER']->workspaceRec[
'publish_access'] & 1)) {
46 $actions[] = array(
'action' =>
'publish',
'title' =>
$GLOBALS[
'LANG']->sL($this->pathToLocallang .
':label_doaction_publish'));
47 if (
$GLOBALS[
'BE_USER']->workspaceSwapAccess()) {
48 $actions[] = array(
'action' =>
'swap',
'title' =>
$GLOBALS[
'LANG']->sL($this->pathToLocallang .
':label_doaction_swap'));
52 $actions[] = array(
'action' =>
'discard',
'title' =>
$GLOBALS[
'LANG']->sL($this->pathToLocallang .
':label_doaction_discard'));
56 'total' => count($actions),
76 if ($parameters->init) {
82 $result[
'total'] =
$GLOBALS[
'BE_USER']->getSessionData(
'workspaceMassAction_total');
84 }
catch (\Exception $e) {
85 $result[
'error'] = $e->getMessage();
104 if ($parameters->init) {
110 $result[
'total'] =
$GLOBALS[
'BE_USER']->getSessionData(
'workspaceMassAction_total');
112 }
catch (\Exception $e) {
113 $result[
'error'] = $e->getMessage();
128 $publishData = $this->
getWorkspaceService()->getCmdArrayForPublishWS($workspace, $swap, 0, $language);
130 foreach ($publishData as $table => $recs) {
131 $recordCount += count($recs);
133 if ($recordCount > 0) {
134 $GLOBALS[
'BE_USER']->setAndSaveSessionData(
'workspaceMassAction', $publishData);
135 $GLOBALS[
'BE_USER']->setAndSaveSessionData(
'workspaceMassAction_total', $recordCount);
136 $GLOBALS[
'BE_USER']->setAndSaveSessionData(
'workspaceMassAction_processed', 0);
150 $flushData = $this->
getWorkspaceService()->getCmdArrayForFlushWS($workspace, TRUE, 0, $language);
152 foreach ($flushData as $table => $recs) {
153 $recordCount += count($recs);
155 if ($recordCount > 0) {
156 $GLOBALS[
'BE_USER']->setAndSaveSessionData(
'workspaceMassAction', $flushData);
157 $GLOBALS[
'BE_USER']->setAndSaveSessionData(
'workspaceMassAction_total', $recordCount);
158 $GLOBALS[
'BE_USER']->setAndSaveSessionData(
'workspaceMassAction_processed', 0);
169 protected function processData($workspace) {
170 $processData =
$GLOBALS[
'BE_USER']->getSessionData(
'workspaceMassAction');
171 $recordsProcessed =
$GLOBALS[
'BE_USER']->getSessionData(
'workspaceMassAction_processed');
172 $limitedCmd = array();
174 foreach ($processData as $table => $recs) {
175 foreach ($recs as $key => $value) {
177 $limitedCmd[$table][$key] = $value;
178 if ($numRecs == self::MAX_RECORDS_TO_PROCESS) {
182 if ($numRecs == self::MAX_RECORDS_TO_PROCESS) {
188 $GLOBALS[
'BE_USER']->setAndSaveSessionData(
'workspaceMassAction', NULL);
189 $GLOBALS[
'BE_USER']->setAndSaveSessionData(
'workspaceMassAction_total', 0);
193 $tce->stripslashes_values = 0;
195 $tce->start(array(), $limitedCmd);
196 $tce->process_cmdmap();
197 $errors = $tce->errorLog;
198 if (count($errors) > 0) {
199 throw new \Exception(implode(
', ', $errors));
202 foreach ($limitedCmd as $table => $recs) {
203 foreach ($recs as $key => $value) {
205 unset($processData[$table][$key]);
208 $GLOBALS[
'BE_USER']->setAndSaveSessionData(
'workspaceMassAction', $processData);
209 $GLOBALS[
'BE_USER']->setAndSaveSessionData(
'workspaceMassAction_processed', $recordsProcessed);
212 return $recordsProcessed;
validateLanguageParameter(\stdClass $parameters)
const SELECT_ALL_WORKSPACES
const MAX_RECORDS_TO_PROCESS
static makeInstance($className)
getMassStageActions($parameter)
if($list_of_literals) if(!empty($literals)) if(!empty($literals)) $result
Analyse literals to prepend the N char to them if their contents aren't numeric.
publishWorkspace(\stdclass $parameters)
initFlushData($workspace, $language=NULL)
initPublishData($workspace, $swap, $language=NULL)
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]
flushWorkspace(\stdclass $parameters)