Skip to content
GitLab
Erkunden
Anmelden
Registrieren
Primärnavigation
Suchen oder aufrufen …
Projekt
Cron
Verwalten
Aktivität
Mitglieder
Labels
Planen
Tickets
Ticketübersichten
Meilensteine
Wiki
Code
Merge Requests
Repository
Branch
Commits
Tags
Repository-Diagramm
Revisionen vergleichen
Build
Pipelines
Aufgaben
Pipeline-Zeitpläne
Artefakte
Bereitstellung
Releases
Modell-Registry
Betreiben
Umgebungen
Überwachen
Vorfälle
Service-Desk
Analysieren
Wertschöpfungskettenanalyse
Mitwirkenden-Analyse
CI/CD-Analyse
Repository-Analysen
Modellexperimente
Hilfe
Hilfe
Support
GitLab-Dokumentation
GitLab-Pläne vergleichen
Community-Forum
Zu GitLab beitragen
Feedback geben
Tastenkürzel
?
Code-Schnipsel
Gruppen
Projekte
Show more breadcrumbs
QUIQQER
Cron
Commits
d5ecbba3
Commit
d5ecbba3
erstellt
11 years ago
von
Henning Leutz
Dateien durchsuchen
Optionen
Downloads
Patches
Einfaches Diff
release cron
Übergeordneter
9e1c761c
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
Änderungen
3
Leerzeichenänderungen ausblenden
Inline
Nebeneinander
3 geänderte Dateien
cron.xml
+7
-0
7 Ergänzungen, 0 Löschungen
cron.xml
lib/QUI/Cron/Manager.php
+15
-1
15 Ergänzungen, 1 Löschung
lib/QUI/Cron/Manager.php
lib/QUI/Cron/QuiqqerCrons.php
+107
-0
107 Ergänzungen, 0 Löschungen
lib/QUI/Cron/QuiqqerCrons.php
werden angezeigt
mit
129 Ergänzungen
und
1 Löschung
cron.xml
+
7
−
0
Zeige Datei @
d5ecbba3
...
...
@@ -16,4 +16,11 @@
The purge function removes stale data from the cache backends while leaving current data intact
</description>
</cron>
<cron
exec=
"\QUI\Cron\QuiqqerCrons::realeaseDate"
>
<title>
Seiten Veröffentlichung
</title>
<description>
Durchsucht das Projekt und aktiviert oder deaktiviert Seiten je nach Veröffentlichungsdatum.
</description>
</cron>
</crons>
\ No newline at end of file
Dieser Diff ist reduziert.
Zum Erweitern klicken.
lib/QUI/Cron/Manager.php
+
15
−
1
Zeige Datei @
d5ecbba3
...
...
@@ -207,12 +207,26 @@ class Manager
$cronData
=
$this
->
getCronById
(
$cronId
);
$params
=
array
();
if
(
!
$cronData
)
{
throw
new
\QUI\Exception
(
'Cron ID not exist'
);
}
call_user_func_array
(
$cronData
[
'exec'
],
array
(
$this
)
);
if
(
isset
(
$cronData
[
'params'
]
)
)
{
$cronDataParams
=
json_decode
(
$cronData
[
'params'
],
true
);
foreach
(
$cronDataParams
as
$entry
)
{
$params
[
$entry
[
'name'
]
]
=
$entry
[
'value'
];
}
if
(
!
is_array
(
$params
)
)
{
$params
=
array
();
}
}
call_user_func_array
(
$cronData
[
'exec'
],
array
(
$params
,
$this
)
);
\QUI
::
getMessagesHandler
()
->
addSuccess
(
\QUI
::
getLocale
()
->
get
(
...
...
Dieser Diff ist reduziert.
Zum Erweitern klicken.
lib/QUI/Cron/QuiqqerCrons.php
+
107
−
0
Zeige Datei @
d5ecbba3
...
...
@@ -38,4 +38,111 @@ class QuiqqerCrons
{
\QUI\Cache\Manager
::
purge
();
}
/**
*
* @param Array $params - Cron Parameter
* @param \QUI\Cron\Manager $CronManager
*/
static
function
realeaseDate
(
$params
,
$CronManager
)
{
if
(
!
isset
(
$params
[
'project'
]
)
)
{
throw
new
\QUI\Exception
(
'Need a project parameter to search release dates'
);
}
if
(
!
isset
(
$params
[
'lang'
]
)
)
{
throw
new
\QUI\Exception
(
'Need a lang parameter to search release dates'
);
}
$Project
=
\QUI
::
getProject
(
$params
[
'project'
],
$params
[
'lang'
]
);
$now
=
date
(
'Y-m-d H:i:s'
);
// search sites with release dates
$PDO
=
\QUI
::
getDataBase
()
->
getPDO
();
$deactivate
=
array
();
$activate
=
array
();
/**
* deactivate sites
*/
$Statment
=
$PDO
->
prepare
(
"
SELECT id
FROM
{
$Project
->
getAttribute
(
'db_table'
)
}
WHERE active = 1 AND
release_from != :empty AND
release_to != :empty AND
(release_from > :date OR release_to < :date)
;
"
);
$Statment
->
bindValue
(
':date'
,
$now
,
\PDO
::
PARAM_STR
);
$Statment
->
bindValue
(
':empty'
,
'0000-00-00 00:00:00'
,
\PDO
::
PARAM_STR
);
$Statment
->
execute
();
$result
=
$Statment
->
fetchAll
(
\PDO
::
FETCH_ASSOC
);
foreach
(
$result
as
$entry
)
{
try
{
$Site
=
$Project
->
get
(
(
int
)
$entry
[
'id'
]
);
$Site
->
deactivate
();
$deactivate
[]
=
(
int
)
$entry
[
'id'
];
}
catch
(
\QUI\Exception
$Exception
)
{
\QUI\System\Log
::
writeException
(
$Exception
);
}
}
/**
* activate sites
*/
$Statment
=
$PDO
->
prepare
(
"
SELECT id
FROM
{
$Project
->
getAttribute
(
'db_table'
)
}
WHERE active = 0 AND
release_from != :empty AND
release_to != :empty AND
release_to >= :date AND
release_from <= :date
;
"
);
$Statment
->
bindValue
(
':date'
,
$now
,
\PDO
::
PARAM_STR
);
$Statment
->
bindValue
(
':empty'
,
'0000-00-00 00:00:00'
,
\PDO
::
PARAM_STR
);
$Statment
->
execute
();
$result
=
$Statment
->
fetchAll
(
\PDO
::
FETCH_ASSOC
);
foreach
(
$result
as
$entry
)
{
try
{
$Site
=
$Project
->
get
(
(
int
)
$entry
[
'id'
]
);
$Site
->
activate
();
$activate
[]
=
(
int
)
$entry
[
'id'
];
}
catch
(
\QUI\Exception
$Exception
)
{
\QUI\System\Log
::
writeException
(
$Exception
);
}
}
\QUI\System\Log
::
addInfo
(
'Folgende Seiten wurden deaktiviert: '
.
implode
(
','
,
$deactivate
)
);
\QUI\System\Log
::
addInfo
(
'Folgende Seiten wurden aktiviert: '
.
implode
(
','
,
$activate
)
);
}
}
\ No newline at end of file
Dieser Diff ist reduziert.
Zum Erweitern klicken.
Vorschau
0%
Lade
Wiederholen
oder
Neue Datei anhängen
.
Abbrechen
You are about to add
0
people
to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Kommentar speichern
Abbrechen
Bitte
registrieren
oder
Anmelden
zum Kommentieren