DJ-Snopy
Hi ich wollte fragen wie mann eine Cron Job datei erstelt das ab 22:00 Uhr ein anders logo kommt und um 7:00 Uhr morgens wieder das alte kommt ?
Damit ich nicht immer selber die datein ändern muss sonder das automatische geht ?
Maniac_81
also ich glaube nicht das es mit einem cronjob lösen kannst. mit einem cronjob kann man nur dateien zu bestimmten uhrzeiten ausführen.
wenn du es clientabhängig wechseln lassen möchtest empfehle ich dir javascript. somit wird es immer angezeigt wie die uhrzeit auf dem rechner läuft.
wenn du es serverabhängig machen möchtest, dann würde ich es in PHP machen.
schau dir das doch mal an
Banner nach gewißer Zeit wechseln
virus
Zitat: |
Original von Maniac_81
also ich glaube nicht das es mit einem cronjob lösen kannst. mit einem cronjob kann man nur dateien zu bestimmten uhrzeiten ausführen.
|
Das stimmt so nicht
Ein Cronjob/crontab ermöglicht das ausführen von jeglichen befehlen zu einer/mehreren festgelegten uhrzeiten.
Sicherlich kann dieser befehl so aussehen das eine datei ausgeführt wird/nur nen interpreter gejagt wird.
Genauso gut ist es aber auch möglich systembefehle auszuführen, oder einfache file copy aktionen darüber zeitgesteuert ausführen zu lassen.
Du kannst quasi alles das machen was du auch mit einer ganz normalen linuxshell machen kannst. nur eben das die befehle voreingestellt und zeitlich abhängig ausgeführt werden.
DJ-Snopy
könntest du mir eine cronjob datei schreiben wo ich nur noch die banner urls austauschen muss ?
EDIT: hat sich erledigt habs jetzt so hingekricht
Zitat: |
Original von Ghostmaster
öffne die global.php und suche:
code: |
1:
|
eval("\$header = \"".$tpl->get("header")."\";"); |
|
füge DARÜBER:
code: |
1:
2:
3:
4:
|
$header_hour = formatdate("G", time());
if ($header_hour >= 7 && $header_hour <= 12) $header_pic = 'headermorgen.jpg';
elseif ($header_hour >= 12 && $header_hour <= 18) $header_pic = 'headermittag.jpg';
elseif ($header_hour >= 18 && $header_hour <= 7) $header_pic = 'headerabend.jpg'; |
|
---
Geh in die header.tpl (über ACP - Templates bearbeiten) und suche:
code: |
1:
|
src="{$style['logoimage']}" |
|
und ersetze mit:
code: |
1:
|
src="./images/$header_pic" |
|
(Pfad zu den Bildern muss angegeben werde) |
wizards
Wäre das auch prinzipiell möglich meine XundY Shoutbox zu bestimmten Zeiten an und auszuschalten???
Ich schalte diese z.Zt. immer manuell übers ACP ein und aus........is irgendwie lästig, so auf Dauer-
Wie würde das denn ausschauen,wenn ich meine Shoutbox abends 21.00 eingeschaltet, und morgens um 7.00 ausgeschaltet haben möchte????
Maniac_81
schau dir mal den code oben mal genau an, wenn du diesen umbaust kannst du ih nauch für die shoutbox verwenden.
wizards
ok......ich versuchs mal.
1. zusätzlich einfügen in der global.php:
eval("\$shoutbox = \"".$tpl->get("shoutbox")."\";");
2. darüber einfügen :
$shoutbox_hour = formatdate("G", time());
if ($shoutbox_hour >= 7 && $shoutbox_hour <= 12)
elseif ($shoutbox_hour >= 12 && $shoutbox_hour <= 1
elseif ($shoutbox_hour >= 18 && $shoutbox_hour <= 7)
Wie muss ich das noch einfügen,dass eben zu der 1. zeit eingeschaltet wird,und zu der anderen ausgeschaltet?
Die soll abends 21.00 eingeschaltet sein,und morgens um 7.00 ausgeschaltet sein.
Schnall ich im Moment noch nicht so
Wahooka
also bitte, was soll das denn ^^
1. zeit ermitteln
$timestamp = time();
$uhrzeit = date("G",$timestamp);
2. if erstellen :
php: |
1:
2:
3:
4:
5:
|
if($uhrzeit >= "7" OR ($uhrzeit <= "22")) {
echo "zwischen 22 und 7 uhr";
} else {
echo "zwischen 7 und 22 uhr";
} |
|
3. anstelle von "echo" eure variable erstellen, sowas wie "$showshout=0" und "$showshout=1"
4. if im template erstellen oder in die phps einfügen
kleine begriffserklärung:
if($uhrzeit >= "7" OR ($uhrzeit <= "22")) { -> wenn die aktuelle STUNDE kleiner als 7 (sprich zwischen 0:00 Uhr und 7:00 Uhr) ist ODER die aktuelle STUNDE höher als 22 (sprich zwischen 22:00 Uhr und 24:00 Uhr) ist
else = wenn nicht, dann ....
Cruiser
Zitat: |
Original von Wahooka
kleine begriffserklärung:
if($uhrzeit >= "7" OR ($uhrzeit <= "22")) { -> wenn die aktuelle STUNDE kleiner als 7 (sprich zwischen 0:00 Uhr und 7:00 Uhr) ist ODER die aktuelle STUNDE höher als 22 (sprich zwischen 22:00 Uhr und 24:00 Uhr) ist
else = wenn nicht, dann .... |
Ich habe das mal etwas deutlicher dargestellt... Das Orange sind die Kommentare
php: |
1:
2:
3:
4:
5:
6:
7:
8:
|
if($uhrzeit >= "7" OR ($uhrzeit <= "22")) // Bedingung: Uhrzeit 7Uhr oder darüber ODER Uhrzeit 22Uhr und darunter.
{
echo "zwischen 22 und 7 uhr";
} //Alles, was zwischen diesen geschweiften Klammern ist, wird dann ausgeführt.
else // Wenn die Uhrzeit nicht zwischen 7 und 22 Uhr ist
{
echo "zwischen 7 und 22 uhr";
} // Wird der Befehl zwischen diesen Klammern ausgeführt. |
|
Man könnte den else-Zweig auch weg lassen und einfach den echo-Befehl schreiben: Der würde dann ausgeführt, wenn die Bedingung in der IF-Schleife nicht erfüllt ist.
Aber mit dem "else" ist es sauberer....
Maniac_81
php: |
1:
|
if($uhrzeit >= "7" OR ($uhrzeit <= "22")) |
|
also bei mir bedeutet aber dieser code das es zwischen 7 und 22 uhr ist und nicht zwischen 22 und 7 uhr.
>=7 größer oder gleich 7 (also alles was nach der sieben kommt)
<=22 kleiner oder gleich 22 (also alles was vor 22 kommt)
ergo zwsichen 7 und 22 uhr^^
Cruiser
Das ist natürlich richtig.
Mein Kommentar """// Wenn die Uhrzeit nicht zwischen 7 und 22 Uhr ist """
bezog sich auf den "else" Zweig.
War doof geschrieben..