Haumis wbb hilfe (http://haumis-wbb-hilfe.de/wbb2/index.php)
- WBB2 (http://haumis-wbb-hilfe.de/wbb2/board.php?boardid=3)
-- Es klappt nicht (http://haumis-wbb-hilfe.de/wbb2/board.php?boardid=48)
--- Persönliche Box global einbinden (http://haumis-wbb-hilfe.de/wbb2/thread.php?threadid=2439)
Geschrieben von Listiger_Falke am 07.04.2013 um 02:46:
Persönliche Box global einbinden
Ich habe folgendes Problem
Für das JGS-Portal gibt es ja eine schöne "Persöhnliche Box" die man in das Portal einbinden kann
Link dazu
Hier
Beitrag 4 auf der Seite von Andy_MV6
Diese Box will ich nun in meinem Forum aber nicht im Portal einbinden, sondern global über eine Variable (z.B. $persoenlichebox)
Ich habe nun schon etliches versucht, bekomme es aber nicht hin.
Das nächste Problem wäre schon, das ich weitere Codes noch global einbinden möchte, deshab wäre mir eine Lösung recht, bei der man für diese Einbindungen eine "extra"-PHP benutzt, z.b. globalecodes.php
Und darraus ergibt sich dann eine weitere Frage: Wenn ich so arbeite, könnte ich über eine Variable überall das aufrufen, was ich will, wenn ich nur die entsprechende Codeseite "globalecodes.php" in die Seiten includiere, in denen ich die entsprechenden Boxen / Templates aufrufen will?
Hintergrund ist, das ich mit verschiedenen Headertemplates (und natürlich den passenden footer) für verschiedene Seiten arbeiten möchte, in denen eine zusätzliche Spalte rechts eingebunden ist, die seitenspezifische Zusatzinformationen und Unternavigationen bereitstellen soll.
Also Forum und Portal $header (ganz normal)
Datenbank $headerd
(Wie das geht weiß ich aber)
Geschrieben von haumi am 07.04.2013 um 07:13:
Ich werde mich der Sache mal annehmen.
LG
haumi
Geschrieben von Listiger_Falke am 08.04.2013 um 21:35:
So, dank haumis Geduld und Hilfe klappt es nun.
Siehe Bild 1 (User mit Avatar)
Bild 2 (User ohne Avatar)
Bild 3 (Unangemeldeter Besucher)
Diese Box kann nun überall auf jeder Seite eingebunden werden.
Eventuell mag haumi das ja mal posten wie es geht
Geschrieben von haumi am 09.04.2013 um 08:55:
Hallöchen Listiger Falke,
Ich habe doch nur die Weiche gestellt.
Den Rest hast du gemacht, und da wäre es doch sinnvoll wnn du das hier mal dokumentieren würdest.
Deine Einbindungen sind mir ja nicht bekannt.
LG
haumi
Geschrieben von Listiger_Falke am 09.04.2013 um 21:46:
Also gut, dann schreib ich mal was zu tun ist.
1. Ladet die im Anhang enthaltenen Dateien hoch. Den Ordner portalboxen im Root des WBB, die Templates natürlich in den Templateordner.
2. Nun die Templates cachen (Im Standartstyle)
3. Die global.php im Root (Achtung, nicht die aus dem ACP-Verzeichnis!) ändern.
Suche
| php: |
1:
|
eval("\$header = "".$tpl->get("header")."";"); |
|
Füge darüber ein:
| php: |
1:
|
include("./portalboxen/f_persoenliche_box.php"); |
|
Nun könnt Ihr überall, wo Ihr wollt, eine persöhnliche Box einbinden, in dem Ihr an der gewünschten Stelle im entsprechenden Template den Code:
| php: |
1:
|
$seiteninfos[seiten_text] |
|
eingebt.
Dabei ist zu beachten: Die mitgelieferten Templates sind für einen Einsatz IN einer Box gedacht, so wie sie jetzt im Download sind gehen sie über die gesamte Seite.
Man kann also entweder so vorgehen, das man an der gewünschten Stelle eine Box erstellt (mittels html) oder in den Templates eine Box über den Code der Templates überordnet - Beispiel:
<table style="width: 200px" cellspacing="5" align="center"><tr><td class="tablea">
Code der im Template ist
</td></tr></table>
Wozu das ganze Sinnvoll ist?
Ich werde demnächst einen "Workshop" posten, wie man das Forum etwas mehr zu einer Homepage umbauen kann, man verschiedene Header für verschiedene Seiten einsetzen kann und man verschiedene Navigationen/Boxen für Unterseiten ins Forum bringen kann. Dann sieht man wozu solche Boxen geeignet sind
Geschrieben von Hangasilly am 10.04.2013 um 22:00:
hmmm ... also muss sagen, noch erschließt sich mir nicht so ganz der tiefere Sinn deines Umbaus/Adds ... aber bin mal auf dein Workshop gespannt... klingt auf jeden Fall interessant...
Geschrieben von Listiger_Falke am 11.04.2013 um 00:11:
Es gibt zwar bei JGS-Portal die Möglichkeit, Boxen auf allen (gewünschten) Seiten einzubinden, aber diese sind ja immer fest. Das heißt, wenn man einstellt, man will eine Navigation, eine Teambox und ein Kalender haben, dann hat man diese Boxen auf eben allen Seiten, die man nicht ausgeschlossen hat.
Ich wollte aber mein Forum mit eigenen Seiten ausstatten, und brauche dazu eine (linke) Boxenreihe, die sich an den Seiten orientiert, die ich aufrufe. Also z.B. im Portal, Forum und einigen anderen Seiten eine ganz normale Reihe mit Infos des Users/Forums, aber für Seiten mit meinen Styles eben Boxen mit Untermenüs, bei Seiten mit PSP-Tubes Boxen mit Untermenüs für Tubes und Lehrgänge usw.
Ich habe das ganz einfach über die header.tpl realisiert, also die Seiten, die mit den "normalen" Boxen ausgestattet werden, haben weiter die Variable $header mit dem Temlateaufruf header.tpl. Dann die Seiten über PSP eben $headerpsp mit dem Template headerpsp.tpl usw. Über eine Äußere Tabelle, die sich über header und footer erstreckt hab ich nun einfach den gesamten Seiten eine weitere Spalte links zugewiesen.
Diese Vorgehensweise zusammen mit dem einbinden von Codes global statt in einzelnen Seiten hat den Vorteil, das man auch eine ganze Reihe von anderen Zusätzen auf Seiten gezielt einbinden kann. Beispiel das LCD-Display oder eine Shoutbox.
Und noch ein Edit: Hat grade festgestellt, das ich beim erstellen des Beispielbildes meinen Duden wieder völlig mißachtet habe...... das passiert wenn man auf die schnelle eben antworten will
Geschrieben von Hangasilly am 11.04.2013 um 17:22:
Ach so is das angedacht.. nu begreif ich es auch^^ :P ...
Da is eigentlich dann auch interessant für mein Forum... na dann wart ich mal auf dein Workshop/Tut^^...
Geschrieben von Listiger_Falke am 23.04.2013 um 13:43:
Ich hätte noch mal ein Anliegen dazu:
Ich bräuchte als nächstes eine Box mit den Usern, die Online sind. Quasi wie im JGS-Portal die Wer ist online-Box (Ohne Aufenthaltsort oder anderem, eben nur die User, die grad online sind. Und das natürlich wieder global benutzbar.
Eventuell hat unser Haumi da ja eine Idee/Lösung parat
Geschrieben von haumi am 23.04.2013 um 19:39:
Da brauchst du nur die Infos der Useronlineanzeige (die z. B. hier oben zu sehen ist) in eine Box zu packen und per html anzupassen.
Anzeige oben:
| code: |
1:
2:
3:
4:
5:
|
<table class="tabelle">
<tr>
<td class="tablea" align="left"><span class="smallfont"><if($useronline=="")><then> </then></if>Zur Zeit sind folgende Mitglieder online: $useronline</span></td>
</tr>
</table> |
|
Anzeige unten (Woltlab original)
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
|
<tr>
<td class="tabletitle" colspan="<if($hide_modcell==0)><then>6</then><else>5</else></if>" align="left"><span class="smallfont"><b><a href="wiw.php{$SID_ARG_1ST}">{$lang->items['LANG_START_SHOWUSERONLINE']}</a></b></span></td>
</tr>
<tr>
<td rowspan="3" class="tableb" align="center"><img src="{$style['imagefolder']}/online.gif" alt="" title="" /></td>
<td colspan="<if($hide_modcell==0)><then>5</then><else>4</else></if>" class="tablea" align="left"><span class="smallfont">{$lang->items['LANG_START_USERONLINE']}</span></td>
</tr>
<tr>
<td class="tablea" colspan="<if($hide_modcell==0)><then>5</then><else>4</else></if>" align="left"><span class="smallfont"><if($useronline=="")><then> </then></if>$useronline</span></td>
</tr> |
|
LG
haumi
Geschrieben von Listiger_Falke am 23.04.2013 um 20:16:
Das geht so nicht, da die Variable $useronline nicht global verfügbar ist.
Geschrieben von haumi am 23.04.2013 um 20:27:
ich schau was machbar ist.
LG
haumi
Geschrieben von Listiger_Falke am 24.04.2013 um 21:41:
Könnte man das ganze gleich so aufbauen, das Variablen in einer gesonderten PHP definiert werden, nennen wir sie mal global_header.php
Wenn man so arbeitet könnte man diese global_header.php ja genau dort einbinden, wo sie benötigt wird, über
require("global_header.php");
Dadurch würde ich einen viel besseren Überblick bekommen, wie ich eigene Variablen benannt habe. Zudem muß man ja aufpassen, Variablen nicht 2mal in einer PHP auf zu rufen, wenn ich jetzt z.B. die Variable $useronline einfach so übernommen hätte, und diese noch mal global definiert, hätte ich sonst spätestens beim Aufruf der index.php ja einen Fehler.
Deswegen sollten die Variablen, die ich benutze anders benannt sein, in diesem Fall z.B. $global_useronline
Da ja noch weitere Boxen dazu kommen würde mir das so deutlich besser gefallen, weil ich eine saubere Auflistung aller eigenen Variablen in einer PHP hätte. Neue kann man ja immer wieder darunter schreiben.
Geschrieben von haumi am 26.04.2013 um 06:25:
Dien Gedanken habe ich auch schon.
Ich muss noch herrausfinden wie die useronline-Erfassung gemacht wird.
Ich bin jedoch erst Mal bis zum 13. Mai nur bedingt einsatzfähig, da ich bis zum 7. Mai nach Freiburg fahre und vom 9 - 12 Mai Gäste im Haus habe.
Wir bleiben aber am Ball.
LG
haumi
Geschrieben von Listiger_Falke am 13.05.2013 um 20:38:
So, ich hole das Thema noch mal hervor.
Ich habe das Forum nun noch mal ganz neu aufgesetzt, und will es wie schon einmal angesprochen so aufbauen, das ich eine weitere Datei neben der global.php in allen Seiten includiere, in denen ich mit den Boxen arbeite.
Könntest Du (haumi) den Code für die persöhnliche Box so umschreiben, das ich eine andere Variable bekomme, die damalige hieß ja $seiteninfos[seiten_text] .... mit dem Namen bin ich etwas unglücklich, da ich befürchte, so eine Variable könnte es auch schon wo anders geben (grade im JGS-Portal)
Beispielvariable wäre $box_persoenlich .... wenn alle neuen Variablen mit $box_ beginnen weiß ich wenigstens immer, wo sie hingehören
Des weiteren muß der Code ja eventuell angepasst werden, um eben in eine alleinstehende Php Anwendung zu finden. Diese Php soll dann alle Boxencodes aufnehmen.
Geschrieben von haumi am 13.05.2013 um 21:23:
Ich habe noch ein paar Baustellen, werde mich aber mal darum kümmern.
Ich denke Pfingsten habe ich auch die Ruhe dazu.
LG
haumi
Geschrieben von haumi am 22.05.2013 um 12:35:
So erst mal ein Anfang:
Ich habe einen neue php-Datei (global_header.php) erstellt.
Sie hat folgenden Inhalt:
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
<?php
$result = $db->unbuffered_query("SELECT s.userid, username, invisible FROM bb".$n."_sessions s LEFT JOIN bb".$n."_users u USING (userid) LEFT JOIN bb".$n."_groups g ON g.groupid=u.useronlinegroupid WHERE s.lastactivity >= '".(time() - 60 * $useronlinetimeout)."'".(($wbbuserdata['ignorelist']) ? (" AND s.userid NOT IN (".str_replace(" ", ",", $wbbuserdata['ignorelist']).")") : (""))." ORDER BY u.username ASC");
//echo $result;
while ($row = $db->fetch_array($result)) {
$anwesend = $row['username']." ";
$erg=$db->query_first("SELECT g.title FROM bb".$n."_groups g LEFT JOIN bb".$n."_users u ON (u.rankgroupid= g.groupid) WHERE u.username = '$anwesend'");
$anwesend ='<span class="'.($erg['title']).'">'.($anwesend)."</span>";
$name .= $anwesend;
eval("\$useron = "".$tpl->get("useron")."";");
}
?> |
|
Diese habe ich mit
include("./global_header.php"); in die global.php über
eval("\$header = \"".$tpl->get("header")."\";");
eingebunden.
Jetzt wird ein template erstellt
useron.tpl mit dem Inhalt
$name.
diese ist hier im Header eingebunden durch einfügen von
$useron hier unter dem Banner
Soweit erst mal der Anfang.
LG
haumi
Geschrieben von Listiger_Falke am 22.05.2013 um 12:45:
Hallo haumi, ich baue das heute Abend ein und gebe dann Rückmeldung
Geschrieben von Listiger_Falke am 22.05.2013 um 20:35:
So, eingebaut - und funktioniert auch alles.
2 kleinere Veränderungen wären aber noch ganz gut
1. Die Usernamen sind ja nun alle "normal" dargestellt, also ohne jegliche Zuordnung der Usergruppe etc. Könnte man diese Auflistung so ändern, das die Kennzeichnung der Usergruppe übernommen wird?
2. Die Namen werden direkt hintereinander dargestellt. Ich habe mal über das einfügen eines <br /> versucht die Namen untereinander zu bekommen, aber das schaut auch nicht so pralle aus (Siehe Bild 2) Könnte man das auch irgendwie hinbekommen, das nicht ÜBER oder UNTER den Namen eine weitere Leerstelle auftaucht?
Geschrieben von haumi am 22.05.2013 um 22:00:
| Zitat: |
| 1. Die Usernamen sind ja nun alle "normal" dargestellt, also ohne jegliche Zuordnung der Usergruppe etc. Könnte man diese Auflistung so ändern, das die Kennzeichnung der Usergruppe übernommen wird? |
|
Wenn die CSS-Klassen im Template eingebaut sind die sich korrekt an die Usergruppe halten
(
siehe hier) dann ist die Anzeige wie gewünscht.
Schau hier im Board!
Wie gesagt es muss nur der Eintrag im Template css gemacht werden und den bei den Gruppen bearbeiten.
| Zitat: |
| 2. Die Namen werden direkt hintereinander dargestellt. Ich habe mal über das einfügen eines <br /> versucht die Namen untereinander zu bekommen, aber das schaut auch nicht so pralle aus (Siehe Bild 2) Könnte man das auch irgendwie hinbekommen, das nicht ÜBER oder UNTER den Namen eine weitere Leerstelle auftaucht? |
|
Das verstehe ich nun nicht.
Wie sollen die Namen angezeigt werden?
LG
haumi
Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH