PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : EZ-Code soll verwendet werden.


Snatch
17.12.2005, 20:30
Hallo,

Mystics hat mir damals mit seiner Hilfe ermöglicht, das der EZ-Code im Forum verwendet werden kann. Leider finde ich das Thema nicht micht und frage somit erneut. Ich denke eh das es im 3.5.2er nicht mehr geht.

Also es geht darum, das user bei mir im Forum mit follgendem Code posten.


http://pics.celebritymarkt.de/images/fremd/pics/international/tn_edd3b0b4.jpg


Das Bild soll eben genau so wie im BB VB oder HTML Code angezeigt werden.

Was muss ich tum damit das Forum das erkennt ?
Wie gesagt, es geht und es existiert hier auch ein Beitrag dazu der aber fürs 3.0.X ist und den ich nicht mehr finde.

Gruß und Danke
Snatch

Snatch
18.12.2005, 12:41
Ich habe den Beitrag gefunden. Auch die von mir danach erstellte Anleitung.
Leider passt das mit der neuen Version nicht mehr überein. Könnte da vielleicht jemand helfen wie das nun mit dem 3.5.2er realisierbar ist ?

http://www.vbulletin-germany.com/forum/showthread.php?p=79743#post79743


Suche in der includes/functions_bbcodeparse.php:
Code:
$bbcodes['standard']['recurse']['url'][1] = array('handler' => 'handle_bbcode_url');

Füge darunter ein:

// [LINK]
$bbcodes['standard']['find']['[link]'] = '#\[link\](.*)\[/link\]#esiU';
$bbcodes['standard']['replace']['[link]'] = "handle_bbcode_url('\\1', '', 'url')";
$bbcodes['standard']['recurse']['link'][0] = array('handler' => 'handle_bbcode_url');
// [LINK=XXX]
$bbcodes['standard']['find']['[link='] = '#\[link=("|"|\'|)(.*)\\1\](.*)\[/link\]#esiU';
$bbcodes['standard']['replace']['[link='] = "handle_bbcode_url('\\3', '\\2', 'url')";
$bbcodes['standard']['recurse']['link'][1] = array('handler' => 'handle_bbcode_url');


Suche:

return iif(strpos(strtolower($bbcode), ' == 0 OR $bbuserinfo['showimages']))
{
// do [img]xxx
$bbcode = preg_replace('#\\s*(https?://([^<>*"' . iif(!$vboptions['allowdynimg'], '?&') . ']+|[a-z0-9/\\._\- !]+))\[/img\]#iUe', "handle_bbcode_img_match('\\1')", $bbcode);
}
$bbcode = preg_replace('#\[img\]\s*(https?://([^<>*"]+|[a-z0-9/\\._\- !]+))\[/img\]#iUe', "handle_bbcode_url('\\1', '', 'url')", $bbcode);

return $bbcode;
}





Ersetze es mit:
function handle_bbcode_img($bbcode, $dobbimagecode)
{
global $vboptions, $bbuserinfo;

if($dobbimagecode AND ($bbuserinfo['userid'] == 0 OR $bbuserinfo['showimages']))
{
// do [img]xxx
$bbcode = preg_replace('#\[img\]\s*(https?://([^<>*"' . iif(!$vboptions['allowdynimg'], '?&') . ']+|[a-z0-9/\\._\- !]+))\[/img\]#iUe', "handle_bbcode_img_match('\\1')", $bbcode);
$bbcode = preg_replace('#\[image\]\s*(https?://([^<>*"' . iif(!$vboptions['allowdynimg'], '?&') . ']+|[a-z0-9/\\._\- !]+))\[/image\]#iUe', "handle_bbcode_img_match('\\1')", $bbcode);
$bbcode = preg_replace('#\[image noborder\]\s*(https?://([^<>*"' . iif(!$vboptions['allowdynimg'], '?&') . ']+|[a-z0-9/\\._\- !]+))\[/image\]#iUe', "handle_bbcode_img_match('\\1')", $bbcode);
}
$bbcode = preg_replace('#\[img\]\s*(https?://([^<>*"]+|[a-z0-9/\\._\- !]+))\[/img\]#iUe', "handle_bbcode_url('\\1', '', 'url')", $bbcode);
$bbcode = preg_replace('#\[image\]\s*(https?://([^<>*"]+|[a-z0-9/\\._\- !]+))\[/image\]#iUe', "handle_bbcode_url('\\1', '', 'url')", $bbcode);
$bbcode = preg_replace('#\[image noborder\]\s*(https?://([^<>*"]+|[a-z0-9/\\._\- !]+))\[/image\]#iUe', "handle_bbcode_url('\\1', '', 'url')", $bbcode);

return $bbcode;
}

Vielen Dank
Snatch

Snatch
21.12.2005, 09:35
*PUSH*

Das ist die letzt Modifikation die noch fehlt bevor das neue Forum online kann.

Hoffi
21.12.2005, 13:18
Du könntest auch in der DB per Query die Codes anpassen.
Dein Beispiel von oben würde man mit folgenden Query anpassen können. (Wenn das immer gleich ist... und nicht ähnlich vorkommt).
UNGETESTET und aus dem Kopf

UPDATE post SET pagetext = replace(pagetext,'[link','','');
UPDATE post SET pagetext = replace(pagetext,'','[img]');
UPDATE post SET pagetext = replace(pagetext,'','/imgl]');


Teste es aber lieber einmal aus in einer Test-DB!
Müsste aber klappen.
Falls es bei [image noborder] noch andere Versionen gibtm, musst du die analog zur dritten Zeile auch ändern.

Snatch
21.12.2005, 13:58
Geht leider nicht.

hier mal ein beispiel wie es denn aussieht.
Dieser Thread sollte nur Bilder Zeigen, im alten Forum geht das auch.

http://pics.celebritymarkt.de/testvb/showthread.php?t=16238
HT-ACC
user:admin
pass:schlampen

LOGIN
gast
gast

Hoffi
21.12.2005, 14:56
Hast du den Beitragscache aktiviert? Da wurde ja nichts verändert.

Snatch
21.12.2005, 15:31
Er ist deaktiviert.
Ist es nicht auch möglich das in den Dateien zu ändern wie bei 3.0.x ?

Gruß
Snatch

Snatch
21.12.2005, 15:39
Jetzt scheint er was gemacht zu haben. War nur ein kliener Fehler im Text.

Das dumme ist aber, das er es nur mit den vorhanden Beiträgen macht und nicht jedes mal wenn ein neuer Beitrag erstellt wird.

Wie bekomme ich das noch hin ?

Stargesicht
21.12.2005, 18:00
UPDATE post SET pagetext = replace(pagetext,'[link','','');
UPDATE post SET pagetext = replace(pagetext,'','[img]');
UPDATE post SET pagetext = replace(pagetext,'','/imgl]');



Funktionieren dann die anderen Tags auch noch???
z.B. url und image ???

Hoffi
21.12.2005, 19:37
Das ändert nur ein die Einträge der vorhandenen Codes in den Beiträgen.

Müssen denn die alten BB-Codes weiter funktionieren?

Stargesicht
21.12.2005, 19:58
Ich fände es nicht schlecht, wenn die anderen BB-Codes beibehalten werden können....

Hoffi
21.12.2005, 20:00
Dann erstell doch welche die genau so aussehen im ACP. nur [image noborder] wird nicht funktionieren da da ein Leerzeichen drin ist, im vB muss da für die Optionen ein = rein.

Snatch
22.12.2005, 10:11
Das Problem besteht immer noch. Ist es denn nicht möglich es wie in meiner Anleitung zu VB 3.0.X einfach auch fest in den Files zu ändern ?

GRuß
Snatch

StGaensler
26.12.2005, 00:09
Hart haber herzlich: Erstelle ein neues Plugin, Hook "newpost_process" mit dem Code: $post['message'] = preg_replace('/\[link=(.*)\]\(.*)\[\/image\]\[\/link\]/i','$2 ($1)',$post['message']);
Dieser Code ersetzt beim Erstellen eines neuen Posts beliebigerString1[/I]]beliebigerString2]beliebigerString3 durch beliebigerString3 (beliebigerString1)

Stelle solche Fragen aber das nächste Mal bitte direkt in den entsprechenden Hack-Foren. Danke.

Stargesicht
26.12.2005, 18:13
Hallo, vielen Dank.
Funktinoiert "fast"

newwindow]]http://pics.celebritymarkt.de/images/fremd/pics/international/tn_edd3b0b4.jpg

Das schafft der Code noch nicht ganz....

StGaensler
26.12.2005, 22:37
Stimmt, da habe ich etwas übersehen gehabt. Das funktioniert aber: $post['message'] = preg_replace('/\[link=(.*) .*\]\[image.*\](.*)\[\/image\]\[\/link\]/i','$2 ($1)',$post['message']);

Stargesicht
26.12.2005, 22:54
Nö, leider immer noch nicht.....
liegt vermutlich an der Leerstelle, oder???
Das brint dann den "Ablauf" durcheinander

newwindow[/COLOR]]http://domain.de/bilder/TN_bild.jpg

Snatch
27.12.2005, 10:01
Vielen Dank,
nun geht es. War ein kleiner fehler noch in deinem Code. Ein Abstand wo keiner hin gehörte


$post['message'] = preg_replace('/\[link=(.*).*\]\[image.*\](.*)\[\/image\]\[\/link\]/i','$2 ($1)',$post['message']);


so geht es aber.

Gruß und Danke
Snatch

Stargesicht
27.12.2005, 10:14
Also bei mir leider noch nicht....:confused: :confused: :confused:

StGaensler
27.12.2005, 11:54
@Snatch
Das Leerzeichen gehört dort rein, da ja der String davor übernommen werden soll.

Probiert mal diese Lösung:$post['message'] = preg_replace('/\[link=(.*?) *\w*\]\[image.*\](.*)\[\/image\]\[\/link\]/i','$2 ($1)',$post['message']);

Ich schiebe das mal alles ins PHP-Forum :)

Stargesicht
27.12.2005, 12:48
He He,
wir sind aufdem richtigen Weg...

Der letzte Code funktioniert, aber er ändert nur den Letzten Code um, die ersten werden abgeschnitten....

Ich weiß auch warum, weil die Codes ohne Leerstelle hintereinander stehen....

Snatch
27.12.2005, 12:54
Hallo,


Der letzt "neue" Code von dir
$post['message'] = preg_replace('/\\(.*)\[\/image\]\[\/link\]/i','$2 ($1)',$post['message']);
geht soweit, aber wenn ich viele Bilder rein haue also so:


[link=http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/sharapova.jpg][image noborder]http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova10.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova11.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova12.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova13.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova14.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova15.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova16.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova17.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova18.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova19.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova2.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova20.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova21.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova22.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova23.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova24.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova25.jpg
http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova26.jpg


Zeigt er aber nur eines der Bilder an. Weil er die anderen Bilder in das hier wandelt:

[.url=http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/sharapova][.img].http://pics.celebritymarkt.de/images/fremd/pics/international/Maria_Sharapova/17.06.05/tn_sharapova26.jpg[./img][./url]
die anderen Zeilen löscht er einfach. Die Punkte habe ich nur gesetzt, damit er den Code hier anzeigt.

Aber soweit schon mal echt klasse. Meinst du das geht das er den restlichen Code bei mehreren Bildern nicht löscht ?

Gruß und vielen lieben Dank.
Snatch

StGaensler
28.12.2005, 00:46
Diesmal war bei dem Link keine Option mehr daran, ich hatte es aber so geschrieben, dass die Option immer mit dabei sein muss.

So sollte es nun besser gehen (zumindest macht er das bei mir daheim ;)):
$post['message'] = preg_replace('/\[link=(.*?)( \w*)?\]\[image.*\](.*)\[\/image\]\[\/link\]/i','$3 ($1)',$post['message']);
Viele Grüße,
Stefan

Snatch
29.12.2005, 10:30
Diesmal war bei dem Link keine Option mehr daran, ich hatte es aber so geschrieben, dass die Option immer mit dabei sein muss.

So sollte es nun besser gehen (zumindest macht er das bei mir daheim ;)):
$post['message'] = preg_replace('/\[link=(.*?)( \w*)?\]\[image.*\](.*)\[\/image\]\[\/link\]/i','$3 ($1)',$post['message']);
Viele Grüße,
Stefan

Leider bekomme ich auch damit das gleiche ergebniss. Er übernimmt eine Zeile Code und löscht die anderen raus. Es erscheint also immer nur ein Bild anstelle vielder.

Ich sehe aber auch keinen Unterschied in dem Code den du zuletzt gepostet hast und dem vorletzten. Außer dem [img]$3. Hast du dich vielleicht vertan ?


Hihi das scheint ne harte Nuss zu sein.
Ich danke dir für deine Geduld und hoffe du hällst noch durch.

Gruß
Snatch

StGaensler
29.12.2005, 22:52
Ich habe am Anfang noch einen Ausdruck geklammert, und ein wenig geändert, weshalb ich eine andere Variable nehmen musste.

Du kannst auch noch das probieren:
$post['message'] = preg_replace('/\[link=(.*?)( \w*)?\]\[image.*?\](.*?)\[\/image\]\[\/link\]/i','$3 ($1)',$post['message']);

Wenn das nicht geht, poste mal deinen "Eingabe-Code" und den "Ausgabe-Code" (packe diesen in den [noparse]-Tag, dann wird er genau so dargestellt, wie du ihn postest), und deine php-Version.

Stargesicht
30.12.2005, 00:48
T A D E L L O S ! ! ! !

Bei mir klappt es jetzt so wie gewünscht:D :D

Vielen Dank

Snatch
30.12.2005, 09:57
Jup geht nun wie geschmiert.

Vielen lieben Dank !

Gruß
Snatch