2 declare(strict_types = 1);
18 use Symfony\Component\Console\Command\Command;
19 use Symfony\Component\Console\Input\InputInterface;
20 use Symfony\Component\Console\Output\OutputInterface;
21 use Symfony\Component\Console\Style\SymfonyStyle;
41 ->setDescription(
'Publish a workspace with a publication date.')
42 ->setHelp(
'Some workspaces can have an auto-publish publication date to put all "ready to publish" content online on a certain date.');
55 $io =
new SymfonyStyle($input,
$output);
57 $workspaceService = GeneralUtility::makeInstance(WorkspaceService::class);
62 $affectedWorkspaces = 0;
63 while ($workspaceRecord = $statement->fetch()) {
65 $fieldArray = (int)$workspaceRecord[
'publish_time'] !== 0
66 ? [
'publish_time' => 0]
67 : [
'unpublish_time' => 0];
69 GeneralUtility::makeInstance(ConnectionPool::class)
70 ->getConnectionForTable(
'sys_workspace')
74 [
'uid' => (
int)$workspaceRecord[
'uid']]
78 $cmd = $workspaceService->getCmdArrayForPublishWS(
79 $workspaceRecord[
'uid'],
80 (
int)$workspaceRecord[
'swap_modes'] === 1
84 $tce = GeneralUtility::makeInstance(DataHandler::class);
85 $tce->start([], $cmd);
86 $tce->process_cmdmap();
87 $affectedWorkspaces++;
90 if ($affectedWorkspaces > 0) {
91 $io->success(
'Published ' . $affectedWorkspaces .
' workspaces.');
93 $io->note(
'Nothing to do.');
103 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable(
'sys_workspace');
104 $queryBuilder->getRestrictions()
106 ->add(GeneralUtility::makeInstance(DeletedRestriction::class));
109 ->select(
'uid',
'swap_modes',
'publish_time',
'unpublish_time')
110 ->from(
'sys_workspace')
112 $queryBuilder->expr()->eq(
114 $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
116 $queryBuilder->expr()->orX(
117 $queryBuilder->expr()->andX(
118 $queryBuilder->expr()->neq(
120 $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
122 $queryBuilder->expr()->lte(
124 $queryBuilder->createNamedParameter(
$GLOBALS[
'EXEC_TIME'], \PDO::PARAM_INT)
127 $queryBuilder->expr()->andX(
128 $queryBuilder->expr()->eq(
130 $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
132 $queryBuilder->expr()->neq(
134 $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)
136 $queryBuilder->expr()->lte(
138 $queryBuilder->createNamedParameter(
$GLOBALS[
'EXEC_TIME'], \PDO::PARAM_INT)