Mal wie der eine weitere Frage, die ich bei meinem kleinen Projekt beantwortet bräuchte ;)
Ich weiß ja, dass wenn man {SITEMAP} einbaut, ein Link erzeugt wird, der den Inhalt quasi im {CONTENT} - Bereich ausgibt.
Kann man ein Plugin denn auch dazu bewegen, die Ausgabe im {CONTENT} zu erzwingen ?
Oder kann man per Plugin u.U. auch eine versteckte Inhaltsseite aufrufen ?
ja das geht
die Variablen
global $template = das gesamte Template inkl. {CONTENT}
global $pagecontent = ist der Inhalt von {CONTENT}
du must nur darauf Achten das diese Konstante
ACTION_CONTENT = false ist
also kein URL Parameter action=sitemap oder search übergeben wird
lg stefanbe
Sehr gut. Das werde ich umgehend Testen !!!
Danke sehr !
Hmmm... einfach die "global" in das Plugin setzen und nen Wert zuweisen scheint nicht zu funzen... muss ich die Variable irgendwo übergeben ?
also du hast global $pagecontent im plugin?
was sacht den der ACTION_CONTENT?
Tip var_dump(ACTION_CONTENT) im plugin
lg stefanbe
Also, das "var_dump" ergibt ein "bool=false", so soll das auch sein, oder ?
Beginnen tu ich mit
function getContent($value) {
global $pagecontent;
Und dann versuche ich via einfacher Zuweisung der Variablen $pagecontent was auszugeben, aber das macht der nicht...
Ich vermute mal, dass ich den $pagecontent noch irgendwie übergeben muss... ???
$pagecontent ist da noch lehr du kanst es da mit Inhalt füllen.
Wenn du da auf den Inhalt zugrefen willst geht das mit
global $syntax
$syntax->content
lg stefanbe
Weiter per PN, bis eine brauchbare Lösung kommt ^^
ja hast recht da fehlt noch was
bau mal in der funktion getConfig das noch ein
function getConfig() {
if(IS_ADMIN and $this->settings->get("plugin_first") !== "true") {
$this->settings->set("plugin_first","true");
}
danach ruf den Plugin Admin einmal auf
lg stefanbe
Entweder bin ich gerade zu beschränkt oder da stimmt wirklich noch was nicht...
Ich habe mal das Plugin auf ein minimum reduziert, um zu testen, ob das so funzt...
Hier mal der Code bisher:
<?php if(!defined('IS_CMS')) die();/** * Plugin: Testplugin * @author: Kighlander (kighlander@live.de) * @version: v0.1.2014-06-15 * @license: GPL ***/class testplugin extends Plugin { function getContent($value) { global $pagecontent; $pluginausgabe = ""; if(IS_ADMIN and $this->settings->get("plugin_first") !== "true") { $this->settings->set("plugin_first","true"); } $pluginausgabe.='<div class="userloginDeluxe_top">'; $pluginausgabe.='<div class="userloginDeluxe_userdata">'; $pluginausgabe.='<form action="'.$PHP_SELF.'" method="POST">'; $pluginausgabe.='<fieldset style="padding:2px 0px 2px 10px;margin-left:10px;">'; $pluginausgabe.='<legend> Login </legend>'; $pluginausgabe.='Username: <input type="text" size="20" name="username" /> '; $pluginausgabe.='Passwort: <input type="password" size="20" name="passwort" /> '; $pluginausgabe.='<input type="submit" value="Login" /> '; $pluginausgabe.='<a href="#">Passwort vergessen</a> <a href="#">Registrieren</a>'; $pluginausgabe.='<br />'; $pluginausgabe.='</fieldset>'; $pluginausgabe.='</form>'; $pluginausgabe.='</div>'; $pluginausgabe.='<div class="userloginDeluxe_suche">{SEARCH}</div>'; // Feld für die Suchmaske von Mozilo $pluginausgabe.='</div>'; $pagecontent = "Das ist ein Demotext aus dem Plugin"; // DAS soll dann ja anstelle des Contents stehen, oder wo liegt noch mein Denkfehler ? return $pluginausgabe; } function getConfig() { $config = array(); return $config; } function getInfo() { $info = array( "<b>testplugin Plugin</b>", "2.0", "Ein Testplugin", "Kighlander", array("http://kighlander.de","Kighlander's Mozilo-Plugins"), array('{testplugin}' => 'Einbinden der Statuszeile vom <i>Testplugin</i>-Plugin') ); return $info; }}?>
nicht im getContent sondern im getConfig :)
übrigens die $value ist wenn plugin first ausgefürt wird "plugin_first" danach sind es wider die parameter
das soltest du auch nicht machen return $pluginausgabe;
sondern return null;
Ich sehe, ich werde heute etwas "Grundlagenarbeit" betreiben müssen :D
Dem werde ich mich gleich widmen, wenn ich wieder daheim bin ^^
Soo, schade, dass ich das Thema nochmal aufnehmen muss, aber ich komme ohne diesem nicht weiter.
Ich versuche, mein Problem so deutlich wie möglich zu schildern, auf dass eine Lösung dabei herauskommt, die vllt. für andere Plugin-Bauer auch von Nutzen sein kann.
Problemstellung:
Ein Plugin wird ja mit {PLUGINNAME}, welches ja der Platzhalter für das Plugin ist, aufgerufen (im Template oder im Content) und dann wird der Platzhalter mit dem "return $was_auch_immer;" ersetzt.
Soweit so gut.
Bei mir geht es aber noch ein paar kleine Stufen weiter:
Ich habe ein paar versteckte Inhaltsseiten angelegt, die wiederum kleine Templates sind. Diese Seiten sollen, je nach was im Plugin gerade benötigt wird, in eine Variable eingelesen werden und anschließend mit Inhalten aus dem Plugin gefüllt/ergänzt werden.
Die so geänderten Inhaltsseiten sollen dann ZUSÄTZLICH zum normal generierten Plugincode ($was_auch_immer) ausgegeben werden.
Ich nehme mal an, ich kann irgendwie den Inhalt der entsprechenden verstecken Seiten mit der Funktion get_PageContent() in eine Variable holen.
Wenn ich sie mal dort HÄTTE, ist das Ändern der Inhalte dieser Seite ja kein Problem.
Was ich nun noch benötige, ist die Ausgabe dieses Inhaltes GLEICHZEITIG mit dem Inhalt des Plugin-Returns.
Dafür bräuchte ich mal bitte ein paar Denkanstöße.
Mfg
Kigh ;)
Beispiel Inhalt von einer "Inhaltsseiten Template"
bla bla {INHALT1} bla bla {INHALT2}
Plugin aufruf
{MEINPLUGIN| Inhaltsseiten Template, inhalt1, inhalt2 }
im plugin MEINPLUGIN
mit get_PageContent(,true,false) den Inhalt von "Inhaltsseiten Template" holen
mit str_replace(array({INHALT1},{INHALT2}),array(inhalt1, inhalt2),Inhaltsseiten Template) die Platzhalter mit dem Inhalt ersetzten
return Inhaltsseiten Template
ist es das was du meinst
lg stefanbe
Zitat von: Kighlander am 09. September 2014, 19:54:25Was ich nun noch benötige, ist die Ausgabe dieses Inhaltes GLEICHZEITIG mit dem Inhalt des Plugin-Returns.
return $foo . $bar ;
@djr:
Wenn ich return $foo . $bar
mache, dann wird der Inhalt der Variable Bar direkt angehangen und stände nun an einer Stelle, wo er nicht hingehört (Getestet).
@stefanbe:
Der Anfang passt ja soweit, nur im NORMALEN Template soll lediglich der Platzhalter für das Plugin OHNE OPTIONEN stehen.
Als Ausgabe bereite ich ja eine Variable vor, die ein fixiertes Div oben am Bildschirmrand ausgibt.
Dieses Plugin kennt aber mehrere (interne) Stati, die es abrufen kann, und ein paar dieser Stati setzen Manipulation am {CONTENT} voraus.
Von daher brauche ich eine Möglichkeit, dass am Ende des Plugins ein "return $myplugin" steht und (vllt) irgendwo vorher der Inhalt des {CONTENT} auf Basis einer versteckten Inhaltsseite erst eingelesen und anschließend manipuliert ausgegeben wird.
Hast nee PN Erhalten :)
lg stefanbe
Zitat von: Kighlander am 11. September 2014, 15:56:55(...) Von daher brauche ich eine Möglichkeit, dass am Ende des Plugins ein "return $myplugin" steht und (vllt) irgendwo vorher der Inhalt des {CONTENT} (...) manipuliert (...) wird.
Ach
das meintest Du! Ja da hilft mein Code-Beispiel wirklich nicht.