Drapondur
Hallo,
ich möchte eine separate Seite erstellen, in der ich u.a. ein Texteingabefeld setzen möchte, dass auch BBCodes erlauben soll.
Wie man eine neue Seite einbaut, weiss ich, und auch, wie man ein Formular erstellt.
Aber wie macht man es BBCode - tauglich?
Hat das jemand schon mal gemacht? Wäre schön, wenn Ihr mir ein paar Tipps geben könntet?
Agi
Also im Formular selbst musst du da nichts eingeben. Du musst den Inhalt beim Ausgeben parsen lassen.
Hier mal ein Beispiel:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
require('./acp/lib/class_parse.php');
$result = $db->query("SELECT * FROM bb".$n."_newsite ORDER by id ASC LIMIT 5");
$parse = &new parse(0, 75, 1, "", 0);
$parseconfig = array();
$parseconfig['allowsmilies'] = '0'; //* smilies umwandeln
$parseconfig['allowhtml'] = '0'; //* html umwandeln
$parseconfig['allowbbcode'] = '1'; //* bbcodes umwandeln
$parseconfig['allowimages'] = '1'; //* grafiken umwandeln
while ($row = $db->fetch_array($result)) {
$inhalt = $parse->doparse($row['inhalt'], $parseconfig['allowsmilies'], $parseconfig['allowhtml'], $parseconfig['allowbbcode'], $parseconfig['allowimages']);
} |
|
Dann natürlich noch die Templates ausgeben in der Abfrage und dort wo im Template der Inhalt hinsoll, die Variable
$inhalt eintragen. Das hier ist nur ein Beispiel, ich weiß jetzt nicht, wie deine Extraseite aussieht, aber ich hoffe, dass es hilfreich ist.
Drapondur
Das bringt mich schon mal weiter ...
Allerdings benötige ich da noch mehr:
Konkret möchte ich das Eingabefeld im usercp_profile_edit für den Benutzertext BBCode-fähig umbauen und dann den Benutzertext im Profil verfügbar machen.
Also benötige ich ein Eingabeformular, in das man wie beim Erstellen eines Postings ein Eingabefeld gibt über die BBCode Buttons (auch die Smiliebox) Text und BBCodes eingeben kann.
Jo, und dann die Ausgabe (ich nehme an, dafür wird das benötigt, was Du oben gepostet hast) ...
Ich hatte schon versucht, die entsprechenden Variablen ($bbcode_buttons und $bbcode_smilies) einfach in das Template einzubauen, aber schon hier komme ich nicht weiter ...
micha777
Für die reine Ausgabe hab ich das mal probiert, aber irgendwie klappt das nicht. Hab das mal ind die profile.php eingesetzt:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
/* usertext */
if ($user_info['usertext']) $user_text = nl2br(htmlconverter(textwrap($user_info['usertext'], 40)));
else $user_text = '';
$result = $db->query("SELECT * FROM bb".$n."_users WHERE usertext");
$parse = &new parse(0, 75, 1, "", 0);
$parseconfig = array();
$parseconfig['allowsmilies'] = '1'; //* smilies umwandeln
$parseconfig['allowhtml'] = '0'; //* html umwandeln
$parseconfig['allowbbcode'] = '1'; //* bbcodes umwandeln
$parseconfig['allowimages'] = '1'; //* grafiken umwandeln
while ($row = $db->fetch_array($result)) {
$user_text = $parse->doparse($row['user_text'], $parseconfig['allowsmilies'], $parseconfig['allowhtml'], $parseconfig['allowbbcode'], $parseconfig['allowimages']);
} |
|
Agi
@micha & Drapondur: Da sind ein paar Fehler drin, damit sollte es klappen
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
/* usertext */
if ($user_info['usertext']) $user_text = htmlconverter($user_info['usertext']);
else $user_text = '';
require('./acp/lib/class_parse.php');
$parse = &new parse(0, 75, 1, "", 0);
$parseconfig = array();
$parseconfig['allowsmilies'] = '1'; //* smilies umwandeln
$parseconfig['allowhtml'] = '0'; //* html umwandeln
$parseconfig['allowbbcode'] = '1'; //* bbcodes umwandeln
$parseconfig['allowimages'] = '1'; //* grafiken umwandeln
$user_text = $parse->doparse($user_text, $parseconfig['allowsmilies'], $parseconfig['allowhtml'], $parseconfig['allowbbcode'], $parseconfig['allowimages']); |
|
micha777
danke, damit klappt es!
EDIT: ein Problem hab ich noch, wie kann ich dabei die standardmäßige Bildverkleinerung bei zu großen Bildern verwenden?
Drapondur
Hi,
sobald ich diesen Code so in meine profile.php reinpacke
php: |
1:
2:
3:
|
/* usertext */
if ($user_info['usertext']) $user_text = nl2br(htmlconverter(textwrap($user_info['usertext'], 40)));
else $user_text = ''; |
|
wird duch
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
/* usertext */
if ($user_info['usertext']) $user_text = htmlconverter($user_info['usertext']);
else $user_text = '';
require('./acp/lib/class_parse.php');
$parse = &new parse(0, 75, 1, "", 0);
$parseconfig = array();
$parseconfig['allowsmilies'] = '1'; //* smilies umwandeln
$parseconfig['allowhtml'] = '0'; //* html umwandeln
$parseconfig['allowbbcode'] = '1'; //* bbcodes umwandeln
$parseconfig['allowimages'] = '1'; //* grafiken umwandeln
$user_text = $parse->doparse($user_text, $parseconfig['allowsmilies'], $parseconfig['allowhtml'], $parseconfig['allowbbcode'], $parseconfig['allowimages']); |
|
ersetzt, kommt beim Aufruf des Profils nur ein weisser Bildschirm, sonst nix... - nich mal irgendeine Fehlermeldung oder so ...
Das mag daran liegen, dass ich ein Sicherheitspaket von "radiosunlight" eingebaut habe, nur weiss ich nicht, wie dann entsprechende Änderungen aussehen müssten (aber vielleicht sollte ich mich auch nicht grad nachts um halb vier damit auseinandersetzen ...).
micha777
Das mit der weißen Seite hatte ich auch erst, nimm einfach mal die Zeile:
php: |
1:
|
require('./acp/lib/class_parse.php'); |
|
raus, denn die wird in der profile.php schon ganz oben in der Datei aufgerufen...
Drapondur

kühl !!!
Danke für den Tipp - das funzt so.
Jetzt hab ich nur noch die Frage, wie ich das Eingabefeld in der usercp_profile_edit.tpl BBCode-tauglich bekomme.
Ich hatte da schon mal die Button- und Smilie-Leiste drin, aber anscheinend fehlt da noch ein entsprechender JavaScript-Baustein.
Wie macht man das?
<edit>
soweit bin ich bis jetzt:
[IMG]http://www.bildhost.padertown.de/images/1207433959.JPG[/IMG]
was jetzt noch fehlen tut, ist die Funktionalität ... - Wie kann ich es nun erreichen, dass die Buttons auch den entsprechenden BBCode/Smilie im Textfeld aktivieren?
Naja, und die kleine Box über den Smilies, in der steht: "HTML ist nicht erlaubt, usw ..."
Wie kann ich das anstellen, damit das funzt?
Drapondur
Hallo,
ich möchte diese Sache noch einmal in Erinnerung rufen ...
Die Interpretation der BBCodes (sprich parsing und so) funktioniert ja inzwischen.
Was ich jetzt noch benötige, ist eine Möglichkeit, nun auch im Profilfeld Benutzertext (beim Ändern der Einstellungen - also usercp_profile_edit)) die Buttonleiste mit den BBCodes einzubauen, so dass man, wie bei der Threaderstellung, auch den Text "fett", Kursiv" etc... und auch die URL Tags, bzw. IMG, quote, etc ... einstellen kann. Die Smilie-Tags wären auch ganz nett...
Wie kann man das machen, dass es wie z.B.: bei der Threaderstellung (PN, Signatur, etc ...) funktioniert?
Liebe Grüße
Nemera
Moin zusammen
Entschuldigt das ich einen so alten Beitrag noch einmal hochkrame, aber im eigentlichen Sinne ist das meiste hier schon beantwortet wurden. Ich hatte ebenfalls nach einer Möglichkeit gesucht den Usertext mit dem üblichen BB Codes anzeigen zulassen.
Das funktioniert auch, bis auf ein Problem, wenn ein User z.B. Renè heisst oder eben Müller dann wird das nicht richtig ausgegeben, sprich die Umlaute werden nicht korrekt angezeigt. Was muss man denn noch hinzufügen um das, auch das richtig umgesetzt wird?
Gruß Nema
Agi
Das hängt dann aber eher mit der Zeichenkodierung zusammen.
Ist das nur im usertext so?
Nemera
Ja es ist nur im Usertext so und auch erst seit der Änderung, ich habe den Code von oben genommen.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
/* usertext */
if ($user_info['usertext']) $user_text = htmlconverter($user_info['usertext']);
else $user_text = '';
$parse = &new parse(0, 75, 1, "", 0);
$parseconfig = array();
$parseconfig['allowsmilies'] = '1'; //* smilies umwandeln
$parseconfig['allowhtml'] = '0'; //* html umwandeln
$parseconfig['allowbbcode'] = '1'; //* bbcodes umwandeln
$parseconfig['allowimages'] = '1'; //* grafiken umwandeln
$user_text = $parse->doparse($user_text, $parseconfig['allowsmilies'], $parseconfig['allowhtml'], $parseconfig['allowbbcode'], $parseconfig['allowimages']);
|
|
Und seitdem habe ich das Problem mit den Umlauten, also muss es irgendwo daran liegen, aber ich habe nicht Ahnung genug von diesen Dingen um es selber heraus zu finden.
Agi
Probiers mal damit:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
/* usertext */
if ($user_info['usertext']) $user_text = $user_info['usertext'];
else $user_text = '';
$parse = &new parse(0, 75, 1, "", 0);
$parseconfig = array();
$parseconfig['allowsmilies'] = '1'; //* smilies umwandeln
$parseconfig['allowhtml'] = '0'; //* html umwandeln
$parseconfig['allowbbcode'] = '1'; //* bbcodes umwandeln
$parseconfig['allowimages'] = '1'; //* grafiken umwandeln
$user_text = $parse->doparse($user_text, $parseconfig['allowsmilies'], $parseconfig['allowhtml'], $parseconfig['allowbbcode'], $parseconfig['allowimages']); |
|
Nemera
Funktioniert bestens

Vielen Dank für die schnelle Hilfe.
Agi
Keine Ursache.