Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

head (HTML in den head-Bereich)

Begonnen von djr, 07. Mai 2012, 16:02:05

« vorheriges - nächstes »

djr

head - Plugin
Ermöglicht aus der Inhaltsseite heraus das Einfügen von HTML* in den head-Bereich.

Inhaltsseite Editor:{head|<!-- dies kommt vom head - Plugin -->}Inhaltsseite Ansicht (Quellcode):<head>
...
<!-- dies kommt vom head - Plugin -->
</head>
Bitte testen!
Benötigte moziloCMS-Version:
1.12.beta4 Revision 948

Download: http://mozilo.drdf.de/plugins/head.html
(Kommt dann auch ins Pluginarchiv.)

*die selben Regeln wie "[html|...]", also auch Javascript via "<script></script>".

djr

#1
Das Plugin sollte nur einmal pro Inhaltsseite verwendet werden. (Stand: Version 1.0)

HPdesigner

#2
Cool, danke für dieses Plugin djr.

Hab mal einige Headertypische Tags probiert:

{head|<style type="text/css"> body ^{background-color:yellow^} p ^{color:blue^} </style>}
{head|<link rel="stylesheet" type="text/css" href="mystyle.css" />}
{head|<base target="_blank" />}
{head|<meta name="author" content="HPdesigner" />}
{head|<script type="text/javascript">document.write("Hello World!")</script>}

Funktionieren alle. Zeilenumbrüche im {head} Tag funktionieren ebenso. Wichtig ist natürlich, dass man Mozilo Syntax escaped (wie beispielsweise beim <style> tag die geschweiften Klammern).

Momentan kann man ja wirklich ALLES in den header schreiben, was beliebt. Ich würd vom Plugin selbst her da einige Einschränkungen geben, wie bspweise nur bestimmte Tags zulassen (<style>, <link>, <base>, <meta>, <script> zB) und prüfen, ob überhaupt ein Tag eingegeben wurde (dass kein reiner Text in den Header geschrieben wird). Erschwert den Missbrauch des Plugins.

Du hast es ja selbst schon angemerkt: wenn man mehrere head Tags pro Seite eingibt, wird im besten Fall das letzte geparst, alle vorherigen werden zu Inhaltstext (nur style tags). Im worst case geht die ganze website off (zB bei Kombination von style und script tags). Ich persönlich fänds cool, wenn man auch mehrere head Tags setzen kann.

Sonst is alles schick!
Check my website devmount.de
and find me on Twitter, Medium, GitHub, StackOverflow, Codepen and Slack

djr

#3
Nur das kein Missverständnis aufkommt:
(@HPdesigner: Du hast das schon richtig verstanden.)
Die Anzahl der HTML-Tags sind innerhalb des {head|} unbegrenzt:{head|
<base target="_blank" />
<script type="text/javascript">document.write("Hello World!")</script>
}
Eine Mehrfachnutzung innerhalb der Inhaltsseite ist daher unnötig.


@HPdesigner:
Danke für die Mithilfe!
Zitat von: "HPdesigner"Du hast es ja selbst schon angemerkt: wenn man mehrere head Tags pro Seite eingibt, wird im besten Fall das letzte geparst ...
Bugfix kommt mit er Nächsten Version.
Zitat von: "HPdesigner"Momentan kann man ja wirklich ALLES in den header schreiben, (...)
Wie beim "echten" coden. ;)
Ich werde mindestens einen Hinweis in die Plugin-Beschreibung setzen.
Grundsätzlich bin ich für reflektierte Nutzung von Plugins.

djr

#4
Update: Version 1.1
(Download-Link: siehe oben)
  • ungenutztes / leeres Plugin-Tag gibt eine Fehlermeldung zurück
  • erstes genutztes Tag in einer Inhaltsseite wird verarbeitet
  • jedes weitere genutzte Tag in der selben Inhaltsseite gibt eine Fehlermeldung zurück
:arrow: Dadurch ist das Plugin nun stabil. Eine zielführende Mehrfachnutzung innerhalb einer Inhaltsseite bleibt aber ausgeschlossen.

Bitte testen & feedbacken!

HPdesigner

#5
Kurze programmtechnische Frage: Wie hast du umgesetzt, dass jedes weitere Tag eine Meldung zurückgibt? Würde das evt. bei meinen Plugins auch einbauen...
Check my website devmount.de
and find me on Twitter, Medium, GitHub, StackOverflow, Codepen and Slack

djr

#6
Deine Nachfrage ehrt mich als php-Neuling ;)
Im Plugin hab ich es ähnlich dokumentiert, hier aber mal das für die Frage Zentrale. Achte auf die Check-Variable "$einmalcheck":
<?php		$mehralseinmal = ' <span class="deadlink" title="Fehlerbeschreibung">Fehler</span> ';	$leerestag = ' <span class="deadlink" title="Fehlerbeschreibung">Fehler</span> ';	// Check-Variable	global $einmalcheck;if($value == false){	// Das gesetzte Tag ist leer.	return $leerestag;}elseif(!$einmalcheck){	// Das Plugin wird das erste mal in dieser Inhaltsseite verwendet, deshalb...					// ...$einmalcheck setzen	$einmalcheck = true;		// ...das eigentliche Plugin ausführen	/* 	Aufgabe des Plugins	*/				return NULL;}else {	// Das Plugin wird schon an anderer Stelle in der Inhaltsseite verwendet	return $mehralseinmal;}?>
PS: die CSS-Klasse "deadlink" bietet sich an, da sie von mozilo bei ungültigen Links ausgegeben wird und daher im Template (meist) schon definiert ist.

HPdesigner

#7
Zitat von: "djr"Deine Nachfrage ehrt mich als php-Neuling
Na gerne doch ;) Ich bin selbst auch noch nich soo lange dabei...

Ah, einfach ne global gesetzt, ok. Mit dem Deadlink find ich cool!
Check my website devmount.de
and find me on Twitter, Medium, GitHub, StackOverflow, Codepen and Slack