Veröffentlichung jeden Tag im Zeitfenster

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
cmss
Posts: 165
Joined: Mon Jan 02, 2017 6:15 pm

Re: Veröffentlichung jeden Tag im Zeitfenster

Post by cmss » Tue Mar 24, 2020 3:37 pm

Das letztere Script muss auf der Seite stehen, sonst gilt es für alle Seiten .
Ansonsten muss man das gleiche Template duplizieren.

Es geht auch mit nativem javascript :
function DateFunction() {
var d = new Date(); var n = d.getUTCDay();
document.getElementById("main").innerHTML = n; // main ist die ID des DIVs, in dem der ganze Inhalt steht
} var dx = document ... liefert 0 für Sonntag und 7 für Samstag
....................
function hourFunction() {
var d = new Date(); var o = d.getHours();
document.getElementById("main").innerHTML = o; -- > var hy = document... liefert genaue Stunde im Web

dann if dx nicht 0 oder 7 und hy gleichzeitig kleiner 9 und größer 11.... dann

window.document.location.href = "http://www.andereseite.com/"; Umlenkung
-- oder mit JS unsichtbar machen :
var xy = document.getElementById("main");
xy.getElementsByClassName("child")[1].style.opacity = "0";

Das script einfach mal im Footer der Seite in den Quelltext legen
Last edited by cmss on Tue Mar 24, 2020 7:52 pm, edited 1 time in total.

olape
Posts: 1017
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Veröffentlichung jeden Tag im Zeitfenster

Post by olape » Tue Mar 24, 2020 5:23 pm

cmss wrote:
Tue Mar 24, 2020 3:37 pm
Das letztere Script muss auf der Seite stehen, sonst gilt es für alle Seiten .
Ansonsten muss man das gleiche Template duplizieren.
Grundsätzlich richtig, man muss das Script nicht unbedingt laden, wenn es nicht benötigt wird.
Aber das tut der Funktion keinen Abbruch, da es ja auf

Code: Select all

<div id="time-based-content">
beschränkt ist.

cmss wrote:
Tue Mar 24, 2020 3:37 pm
Das script einfach mal im Footer der Seite in den Quelltext legen
Dabei passiert übrigens das Selbe, auch hier würde das Script auf jeder Seite geladen.

Man könnte die Einbindung des Scripts auch abhängig vom Seitennamen machen.
Das spart das zusätzliche Template.

cmss
Posts: 165
Joined: Mon Jan 02, 2017 6:15 pm

Re: Veröffentlichung jeden Tag im Zeitfenster

Post by cmss » Tue Mar 24, 2020 7:51 pm

Das Skript gehört in den Quellkode einer Seite, am besten in den footer - dann wird es auch nur für die Seite aktiv (JS-DOM). Wer ganz sicher sein will, kann dem DIV eine einzigartige ID geben. Das einzige Problem bei JS ist, daß die Sperre bei abgeschaltetem Browswer-Js nicht funktioniert und auch daß die Zeit gleich der lokalen Zeit des Browsers ist. Bei europaweiter Nutzung wäre das ein Problem.

olape
Posts: 1017
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Veröffentlichung jeden Tag im Zeitfenster

Post by olape » Tue Mar 24, 2020 8:05 pm

cmss wrote:
Tue Mar 24, 2020 7:51 pm
Das Skript gehört in den Quellkode einer Seite, am besten in den footer
Ja, genau, aber der footer steckt bei XH normalerweise im Template, ist also für alle Seiten gültig.
JS für eine einzelne Seite per Editor reinzufummeln wird schwer und ist nur mit Änderungen am Editor möglich.

cmss
Posts: 165
Joined: Mon Jan 02, 2017 6:15 pm

Re: Veröffentlichung jeden Tag im Zeitfenster

Post by cmss » Wed Mar 25, 2020 2:01 pm

Die Diskussion ist zwar müssig, aber selbst im Tinyce gibt es den Punkt <> Quelltext - ein Grund für mich den Ckeditor zu benutzen, der hat auch ein Sicherheitstoken ( Ansonsten : Probieren, Hauptsache es funktioniert).
Bei Cmsimple muss man es evtl. über {{{ }}} einfügen, weil es sonst kein <script> im Quelltext akzeptiert.
$hjs .= "\n".'<script>.....

olape
Posts: 1017
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Veröffentlichung jeden Tag im Zeitfenster

Post by olape » Wed Mar 25, 2020 3:40 pm

das in die userfuncs.php

Code: Select all

function daily_9to12_box() {
    $weekday = date('w', time()+(1*60*60));
    $hour = date('H', time()+(1*60*60));
    if((($weekday > 0) && ($weekday < 6))
    && (($hour >= 9) && ($hour < 12))) {
        return newsbox('daily');
    }
return false;
}
Die Zeit ist Serverzeit + 1h. Muss event. angepasst werden.
Jetzt eine versteckte Seite 'daily' anlegen und mit dem entsprechenden Inhalt belegen!
https://test.penschke.net/?daily

Dann bei der Seite, bei der der Inhalt von Mo - Fr. jeweils 9 - 12:00 angezeigt werden soll

Code: Select all

{{{daily_9to12_box();}}}
aufrufen!

https://test.penschke.net/?Mo-Fr_9to12

lck
Posts: 1870
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Veröffentlichung jeden Tag im Zeitfenster

Post by lck » Wed Mar 25, 2020 5:33 pm

:) Super Olaf! Funktioniert.

Vorschlag, wenn die Newsbox außerhalb der eingestellten Zeit nicht angezeigt wird, wäre eine Einbindung einer 2ten Newsbox (hier als Beispiel 'daily info') mit einer kurzen Info hilfreich. Zum Beispiel "Der Inhalt dieser Seite ist nur von Montag bis Freitag von 9 - 12 Uhr sichtbar."

Code: Select all

function daily_9to12_box() {
    $weekday = date('w', time()+(1*60*60));
    $hour = date('H', time()+(1*60*60));
    if((($weekday > 0) && ($weekday < 6))
    && (($hour >= 9) && ($hour < 12))) {
        return newsbox('daily');
    } else {
	return newsbox('daily info');
	}
return false;
}
olape wrote:
Wed Mar 25, 2020 3:40 pm
Die Zeit ist Serverzeit + 1h. Muss event. angepasst werden.
Zu ändern bei $hour und $weekday, oder?
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

olape
Posts: 1017
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Veröffentlichung jeden Tag im Zeitfenster

Post by olape » Wed Mar 25, 2020 5:44 pm

Code: Select all

function daily_9to12_box() {
    $weekday = date('w', time()+(1*60*60));
    $hour = date('H', time()+(1*60*60));
    if((($weekday > 0) && ($weekday < 6))
    && (($hour >= 9) && ($hour < 12))) {
        return newsbox('daily');
    }
return newsbox('daily info');
}
So sollte es noch kürzer gehen.
lck wrote:
Wed Mar 25, 2020 5:33 pm
Zu ändern bei $hour und $weekday, oder?
Ja, +(1*60*60) also jeweils + oder - und statt 1 die entsprechende Abweichung in h.

lck
Posts: 1870
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Veröffentlichung jeden Tag im Zeitfenster

Post by lck » Wed Mar 25, 2020 5:57 pm

olape wrote:
Wed Mar 25, 2020 5:44 pm
...
So sollte es noch kürzer gehen.
Sehr schön, geht!
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

olape
Posts: 1017
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Veröffentlichung jeden Tag im Zeitfenster

Post by olape » Wed Mar 25, 2020 8:36 pm

Code: Select all

time()+(1*60*60)
könnte man vielleicht noch als Variable setzen. Dann muss man nur eine Stelle ändern.

Code: Select all

function daily_9to12_box() {
    $time_correct = time()+(1*60*60);
    $weekday = date('w', $time_correct);
    $hour = date('H', $time_correct);
    if((($weekday > 0) && ($weekday < 6))
    && (($hour >= 9) && ($hour < 12))) {
        return newsbox('daily');
    }
return newsbox('daily info');
}

Post Reply