New Plugin "Collection"

Erweiterungen
Post Reply
Gert
Posts: 2075
Joined: Sun 18. Nov 2012, 14:18

New Plugin "Collection"

Post by Gert »

Image Hallo,

Collection 1.0 steht zum Download bereit.

Das Plugin Collection stellt Funktionen zur Verfügung, für die sich ein eigenes Plugin nicht lohnt:
  • Zeitgesteuerte Veröffentlichung (von ... bis)
  • Zuletzt geänderte Seiten
  • Datei einbinden per embed, z. B. pdf
Viel Spass - Gert

========================================================================

Image Hello,

Collection 1.0 is ready for download.

The Plugin Collection provides functions for which a separate plugin would be to much:
  • Scheduled publication (from ... to)
  • Last modified pages
  • Embed file, for example pdf
Have fun - Gert

========================================================================

Demo: https://www.ge-webdesign.de/plugindemo/ ... Collection

Download: https://www.ge-webdesign.de/cmsimpleplu ... Collection
Gert Ebersbach | CMSimple | Templates - Plugins - Services
Ingo
Posts: 22
Joined: Mon 24. Jun 2019, 18:49

Re: New Plugin "Collection"

Post by Ingo »

Ich verwende die zeitgesteuerte Version für bestimmte Seiten nur zeitweise anzuzeigen.
Wenn die Seite ausserhalb eines Zeitraums angezeigt werden soll, bekomme ich immer nur eine weiße Seite.
Kann man eine Umleitung auf eine andere Seite einbauen?

Danke
Gert
Posts: 2075
Joined: Sun 18. Nov 2012, 14:18

Re: New Plugin "Collection"

Post by Gert »

Ingo wrote: Tue 25. Jun 2019, 08:28 Wenn die Seite ausserhalb eines Zeitraums angezeigt werden soll, bekomme ich immer nur eine weiße Seite.
Die Funktion "zeitgesteuerte Veröffentlichung" zeigt die Seite INNERHALB des Zeitraumes an, der im Pluginaufruf definiert ist. Ausserhalb des Zeitraumes ist der Inhalt der Seite nicht sichtbar, wenn man den URL kennt und die Seite aufruft. Ausserdem wird die Seite aus dem Menü (toc) entfernt, so dass sie eigentlich gar nicht aufgerufen werden sollte, es sei denn, sie ist irgendwo verlinkt.

Was meinst Du mit "weisse Seite"? Absturz oder nur ein leerer Inhalt? Leerer Inhalt wäre korrekt,

Gert
Gert Ebersbach | CMSimple | Templates - Plugins - Services
Ingo
Posts: 22
Joined: Mon 24. Jun 2019, 18:49

Re: New Plugin "Collection"

Post by Ingo »

Den Zeitraum habe ich angegeben und es funktioniert auch gut.

Für eine bestimmte Seite vergebe ich nur den Link. (es ist eine Vereinsseite).
Diese Seite soll aber nicht immer aktiv sein.
Daher kommt das Plugin mir sehr gelegen. Ich kann bestimmen, wann sie sichtbar sein soll.

Wenn ich jetzt aber die Seite außerhalb der sichtbaren Zeit anwähle kommt nichts (Leere Seite). Ist ja auch so gewollt.
Mir wäre eine Umleitung für die Zeit sehr recht.
Nach der Art : Sorry die Seite nicht nicht aktiv oder sowas. Also eine Umleitung auf eine andere Seite.

Ich hoff ich habe es einigermaßen gut erklärt.

Gruß
Ingo


Ich gehe mal davon aus, das man es in der index.php machen könnte.
if(date("YmdH") < $startdate || date("YmdH") > $enddate){$c[$i] = '#CMSimple hide#';}
Statt '#CMSimple hide#' die Seite setzen ?
Gert
Posts: 2075
Joined: Sun 18. Nov 2012, 14:18

Re: New Plugin "Collection"

Post by Gert »

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
Gert Ebersbach | CMSimple | Templates - Plugins - Services
Ingo
Posts: 22
Joined: Mon 24. Jun 2019, 18:49

Re: New Plugin "Collection"

Post by Ingo »

Hallo Gert,

vielen Dank für den Code.
Ich habe ihn eingebaut und er funktioniert.

Aber leider nur bedingt.

Bei der Seite 'News01' und 'Startseite' funktioniert es.
Wenn ich eine Unterseite nehme 'Formulare_nicht_aktiv' (Seite "nicht aktiv" im Ordner Formulare)
funktioniert es nicht. Wenn ich nur "Formulare" nehme funktioniert es.

Wenn es gehen würde, wäre gut, ansonsten schreibe ich den Text von "nicht aktiv" auf eine andere Seite.
Gruß
Ingo

update:
angezeigt wird sie nicht, wenn ein '_' mit auf der Seite ist.
nicht_aktiv --> wird nicht angezeigt, nichtaktiv --> wird angezeigt
Gert
Posts: 2075
Joined: Sun 18. Nov 2012, 14:18

Re: New Plugin "Collection"

Post by Gert »

Hallo Ingo,

die Funktion newsbox() ist dazu gedacht, versteckte h1-Seiten anzuzeigen. Es funktioniert auch mit h2-Seiten, vermutlich auch mit h3-Seiten (nicht getestet). Allerdings kann es ja unter verschiedenen h1- oder h2-Seiten mehrere gleichnamige h2- bzw. h3-Seiten geben. In diesem Fall nimmt die Funktion newsbox() die 1. Seite mit diesem Namen, die sie findet.
Ingo wrote: Wed 26. Jun 2019, 08:50 angezeigt wird sie nicht, wenn ein '_' mit auf der Seite ist.
nicht_aktiv --> wird nicht angezeigt, nichtaktiv --> wird angezeigt
Habe ich bereits so geschrieben:
Gert wrote: Tue 25. Jun 2019, 15:42 Der 3. Parameter ist der Name der Seite, die ausserhalb des definierten Zeitraumes angezeigt werden soll, so wie er im Menü (toc) steht.
Es ist also in der Tat das beste, Seiten, die auf anderen Seiten oder im Template angezeigt werden sollen, als (versteckte) h1-Seiten anzulegen, da man ja nicht weiss, ob in der Zukunft noch andere gleichnamige Seiten unter anderen h1- oder h2-Seiten dazukommen,

Gert
Gert Ebersbach | CMSimple | Templates - Plugins - Services
Post Reply