MyBB.de Forum
[Page Manager] Teile deine Seiten (mit anderen) - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: [Page Manager] Teile deine Seiten (mit anderen) (/thread-22010.html)



[Page Manager] Teile deine Seiten (mit anderen) - querschlaeger - 25.01.2010

Hallo,
dieses Thema möchte ich nutzen als Sammelsurium für Seiten, welche mit Page Manager[Bild: http://www.mybbcoder.info/images/jump.gif] erstellt wurden. In der englischsprachigen Community, habe ich auch so ein Thema erstellt ([Page Manager] Share your custom pages), es kann also sein, dass sich dort Seiten befinden, welche es hier nicht gibt - und umgekehrt.

Ab Version 1.4 ist es möglich erstellte Seiten aus Page Manager zu exportieren und sie an anderer Stelle (oder später im selben Forum) wieder zu importieren. Auf diese Weise kann jeder bequem erstellte PHP/HTML-Seiten verbreiten und muss sie auch nicht extra in ein Plugin packen (was ich bei einzelnen Seiten auch etwas übertrieben finde).

Fangen wir an! Smile
Als erstes ein paar Beispielseiten, welche demonstrieren, wie Page Manager Seiten eigentlich aussehen. Schaut sie euch an und bastelt daran herum.
Die template.xml und php.xml erzeugen die selbe Seite, der Unterschied ist "nur", dass eine Seite, dass MyBB Template System nutzt und die andere PHP dafür nutzt. An dem PHP-Beispiel sieht man, dass die Seite eigentlich wie eine ganz "normale" PHP-Datei aufgebaut ist, welche man auch fast ohne Page Manager benutzen könnte.
In der dritten Datei parser.xml wird veranschaulicht, wie man den Message Parser von MyBB mit PHP laden kann. Das hat nicht so viel mit Page Manager zu tun, eher mit der arbeitsweise von MyBB, welche da demonstiert wird.
Da es hier nicht erlaubt ist, XML-Dateien anzuhängen, habe ich die 3 Seiten in examples.zip gepackt.


.zip   examples.zip (Größe: 1,96 KB / Downloads: 32)

Nach den ganzen Testseiten habe ich auch gleich eine praktisch verwendbare Seite! Smile
Eine Usermap, welche Google Maps nutzt und die Wohnorte eurer Mitglieder anzeigt (sofern sie einen Ort angegeben haben)!


.zip   usermap.zip (Größe: 2,67 KB / Downloads: 17)

Ihr benötigt für die Seite einen Google Maps API Key, welchen ihr hier kostenlos (aber ich glaube nur mit einem Google Account) bekommt: http://code.google.com/apis/maps/signup.html

Bearbeitet die Seite, nach dem Import und tragt den Key in die dritte Zeile ein (sieht man gleich wo genau). Kartenort und Vergrößerungsstufe könnt ihr auch euren Wünschen anpassen.
Das erste Laden der Seiten kann u.U. sehr lange dauern, was aber normal ist (dabei wird eine Cache-Datei mit den Koordinaten der Orte gespeichert).

Viel Spaß damit!

P.S.: Dieser Thread ist nicht nur dazu da, dass ich alleine Seiten anbiete (was ich ab und an tun werde). Ihr könnt alle mitmachen! Smile


RE: [Page Manager] Teile deine Seiten (mit anderen) - Iriz3n - 26.01.2010

Ich habe extra für diesen Thread auch mal eine kleine Seite gemacht.
Wenn es jemand vormacht werden andere bestimmt auch mitmachen Wink

Ich bin ein großer Fan des Plugins, es hat mir geholfen PHP zu lernen.
Ich kann zwar immernoch nicht sooo gut PHP aber für diese Page hat es gereicht.

Mit dieser Page können sich Dinge von der Datenbank abrufen lassen, z.B so:
/misc.php?page=Abrufen?auswahl=User

Dann werden alle User angezeigt.

Viel Spaß beim ausprobieren Wink
lg Ich


RE: [Page Manager] Teile deine Seiten (mit anderen) - querschlaeger - 26.01.2010

(26.01.2010, 20:24)Iriz3n schrieb: Ich habe extra für diesen Thread auch mal eine kleine Seite gemacht.

Aber leider vergessen, sie hier anzuhängen. Wink


RE: [Page Manager] Teile deine Seiten (mit anderen) - Iriz3n - 26.01.2010

Ach du meine Güte ist das peinlich :$
Ich editier das in meinen oberigen Beitrag x_x, sorry.
lg Ich


RE: [Page Manager] Teile deine Seiten (mit anderen) - querschlaeger - 29.01.2010

Hallo,
ich habe wieder eine Seite zum Importieren für euch!

Diesmal ist es ein Kontaktformular, welches sehr leicht zu benutzen ist. Ist man eingeloggt, wird man nach einem Betreff und einer Nachricht gefragt. Als Gast muss man zusätzlich seinen Namen und eine E-Mail-Adresse eingeben (welche auch auf Korrektheit überprüft wird).


.zip   contact.zip (Größe: 1,71 KB / Downloads: 28)

Ist im Admin CP eingestellt, dass Captchas benutzt werden sollen, muss man als Gast auch ein solches "überwinden" (wir wollen ja keinen Spam bekommen Wink ).

Die E-Mail wird an die Admininstrator-Adresse geschickt, welche im Admin CP angegeben ist.

Noch ein kleines Feature: Das Kontaktformular ist sprachneutral! Cool


RE: [Page Manager] Teile deine Seiten (mit anderen) - marpie - 02.02.2010

Hallo querschläger,

meine PN hat sich erledigt. Habe mir die Beispiele angesehen und es jetzt geschnallt...manchmal dauerts ein wenig länger bei mir.

Gruß Marco

Werde dann meine Beispiele dann auch hier reinstellen, wenn ich sie zusammenkopiert habe.


RE: [Page Manager] Teile deine Seiten (mit anderen) - querschlaeger - 02.02.2010

Weil mich jemand gefragt hat, wie das mit bereits erstellten PHP-Seiten funktioniert, welche man mit Page Manager übernehmen will, hier eine kleine Veranschaulichung für alle.

Im Grunde ist es extrem einfach PHP-Seiten zu übernehmen. Als Beispiel habe ich einfach mal die memberlist.php von MyBB genommen. Einfach den Quellcode kopiert und nur eine einzige Zeile geändert, schon lief die Seite mit Page Manager. Alle Paramter der Mitgliederliste funkionieren auf die selbe Weise.

Hier auch mal direkt zum selbst vergleichen:

.zip   memberlist.zip (Größe: 5,89 KB / Downloads: 13)

Die XML könnt ihr wie gewohnt importieren. Die PHP dient nur als Vergleich.

Wie man sieht, habe ich nur diese Zeile:
PHP-Code:
require_once "./global.php"

Gegen diese ausgetauscht:
PHP-Code:
global $header$headerinclude$footer$theme$lang$plugins$cache$templates

Es ist unnötig (und funktioniert auch nicht) die global.php von MyBB hier zu laden (das wird schon vom Plugin bzw. der misc.php getan). Vielmehr müsst ihr nur die benötigten Objekte mit global in der Seite verfügbar machen.

Im Normallfall sind das diese (sofern ihr den Style von MyBB verwenden wollt):
PHP-Code:
global $header$headerinclude$footer$theme

Alle weiteren sind abhängig von der Seite.
In der Memberlist wird z.B. die Sprachdatei auf folgende Weise geladen:
PHP-Code:
$lang->load("memberlist"); 

Hier wird versucht die Funktion load() zu benutzen, welche PHP an der Stelle aber noch garnicht benutzen/kennen kann. Also müssen wir das Object $lang noch in der Seite verfügbar machen:
PHP-Code:
global $lang

Mann muss nicht alle Objekte auf einmal laden, sondern kann dies auch vor der benötigten Stelle tun. An dem Beispiel der Mitgliederliste wollte ich aber zeigen, dass man nur eine einzige Zeile tauschen muss.

Hinweis: Die Objekte $mybb und $db sind bereits automatisch verfügbar nud müssen nicht extra (nochmal) geladen werden.

Wenn ihr die Seite importiert habt, ist es natürlich auch Möglich die Parameter der memberlist.php genauso dort zu verwenden.

So funktioniert:
Code:
http://example.net/memberlist.php?perpage=2

Genauso wie:
Code:
http://example.net/misc.php?page=memberlist&perpage=2

Übergebene HTTP Parameter könnt ihr übrigens mit:
PHP-Code:
$mybb->input['perpage'
abfragen (der Inhalt wäre in diesem Fall 2).

Also geht sowas immer:
PHP-Code:
if($mybb->input['perpage']==2)
{
    echo 
'Sie haben bestimmt gerade perpage=2 in ihrer Adresszeile stehen, oder?';
}
else
{
    echo 
'Weiß nicht...';


Ich hoffe das war verständlich. Smile Bei Fragen, einfach fragen!

P.S.: Solche Sachen wie:
PHP-Code:
define("IN_MYBB"1);
define('THIS_SCRIPT''memberlist.php'); 
funktionieren nicht wirklich in der Seite (da sie viel früher von MyBB ausgewertet werden), aber es ist kein Fehler, wenn sie dort sehen. Ich will hier nur demonstrieren, dass man extrem einfach vorhandene PHP-Skripte in Page Manager übernehmen kann.

Ich benutze den Page Manager übrigens auch für kleine administrative PHP-Skripte. Es erspart mir einen FTP-Client zu benutzen und Dateien irgendwo hin abzuspeichern. Solange eine Seite nicht aktiviert ist, kann sie niemand benutzen (bekommt die Fehlermeldung: "Die Seite ist nicht verfügbar" - das ist die selbe Meldung, wenn eine Seite wirklich nicht existieren würde), außer man ist Administrator in MyBB.

EDIT:

@marpie: Oh, ich hoffe dann war meine Erklärung jetzt nicht umsonst...


RE: [Page Manager] Teile deine Seiten (mit anderen) - marpie - 02.02.2010

Nein das war auf keinen Fall umsonst!


RE: [Page Manager] Teile deine Seiten (mit anderen) - querschlaeger - 17.02.2010

Das ist eine einfache Variante von meinem Statistics Signature.


.zip   signature.zip (Größe: 1,09 KB / Downloads: 17)

Die "Seite" zeigt ein paar Details zu eurem Forum als Bild an (ist sprachneutral, auch wenn der Screenshot englische Wörter zeigt). Es lassen sich alle Farben, Rahmen und die Abmessungen ändern.