Hallo Ingo,
wenn ich da nochmal rangehe, dann sollte es irgendwie für den Anwender konfigurierbar sein. Da ich für die Scripte in Collection keine config.php haben will, geht das nur mit einem erweiterten Pluginaufruf. Teste mal diesen Code (in der index.php von Collection ersetzen):
Code: Select all
/*
===================================
Scheduled Publishing
===================================
*/
if(!$edit)
{
for($i = 0; $i < $cl; $i++)
{
$plugindata = $c[$i];
if (preg_match('/{{{function:col_scheduledPage\((.*?),(.*?)\);}}}/is',$plugindata,$matches))
{
$col_startdate = str_replace("'",'',$matches[1]);
$col_enddate = str_replace("'",'',$matches[2]);
if(date("YmdH") < $col_startdate || date("YmdH") > $col_enddate)
{
$c[$i] = '#CMSimple hide#';
}
}
if (preg_match('/{{{function:col_scheduledPage\((.*?),(.*?),(.*?),(.*?)\);}}}/is',$plugindata,$matches))
{
$col_forward = str_replace("'",'',$matches[3]);
$col_pageHidden = str_replace("'",'',$matches[4]);
if(date("YmdH") < $col_startdate || date("YmdH") > $col_enddate)
{
$c[$i] = newsbox($col_forward);
if($col_pageHidden == 'hide')
{
$c[$i].= '#CMSimple hide#';
}
}
}
}
}
// plugin call
function col_scheduledPage(){return;}
Damit kann man ausserhalb des definierten Zeitraumes eine versteckte Seite anzeigen lassen, hier im Beispiel die Seite News02:
Code: Select all
<div>{{{function:col_scheduledPage('2019041200','2019061824','News02','nohide');}}}</div>
Der Pluginaufruf muss komplett sein.
Der 3. Parameter ist der Name der Seite, die ausserhalb des definierten Zeitraumes angezeigt werden soll, so wie er im Menü (toc) steht.
Der 4. Parameter versteckt die Seite aus der Navigation, wenn er auf 'hide' gesetzt wird, alles andere belässt den Menüpunkt im Menü.
Das ghet vom Code her sicher noch eleganter, das ganze ist nur mal so zum testen, wie es funktionieren könnte,
Gert