Pagina 1 van 2

Afbeeldingen quoten

Geplaatst: 07 okt 2008, 10:45
door Irvine
Hallo, afbeeldingen quoten is niet echt ideaal, want het neemt namelijk veel ruimte in beslag om twee of meerdere keren een afbeeldingen tegen te komen. Op een ander forum heb ik het volgende gezien:

http://img170.imageshack.us/img170/4994/fotodn8.png

Het quote niet de gehele afbeelding, maar een link naar de afbeelding. Is dit toe te voegen?

Edit: Even omhoog gebracht als het mag (ja ik heb de support template gelezen), want ik vraag het me echt nog steeds af en heb van alles zelf geprobeerd

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 07:58
door Rinus
Ik ben ook erg geinteresseerd naar deze modificatie, dus als iemand zich geroepen voelt :)

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 11:21
door mosymuis
Is niet zo lastig.

Open
message_parser.php

Zoek

Code: Selecteer alles

$in = str_replace("\r\n", "\n", str_replace('\"', '"', trim($in)));
Plaats achter

Code: Selecteer alles

$in = preg_replace('#\[img\](.*)\[/img\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 11:24
door Rinus
Niet zo lastig zeg je :D, voor mij wel hoor ;)

Bedankt in ieder geval, ik ga het direct proberen!
Wijziging: werkt perfect, thanks!

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 12:36
door Ger
Mosymuis is goed bezig. :)
Op basis daarvan iets uitgebreid, zodat ook thumbnails vanuit imageshack e.d. goed verwerkt worden:

Open
message_parser.php

Zoek

Code: Selecteer alles

$in = str_replace("\r\n", "\n", str_replace('\"', '"', trim($in)));
Plaats achter

Code: Selecteer alles

$in = preg_replace('#\[url=(.*)\]\[img\](.*)\[/img\]\[/url\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);
$in = preg_replace('#\[img\](.*)\[/img\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 12:39
door mosymuis
Slim ;)

//edit
Maar je moet wel de tweede groep pakken; nu pak je het link url, niet het plaatjes url.

Code: Selecteer alles

$in = preg_replace('#\[url=.*\]\[img\](.*)\[/img\]\[/url\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);
$in = preg_replace('#\[img\](.*)\[/img\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);
zo dus.

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 12:45
door Ger
Juist niet. ;)
Als je de tweede groep pakt, pak je de thumbnail. Je opent dan bijvoorbeeld http://www.example.com/thumb_image.jpg. Dat is puur een plaatje, dus kun je niet naar http://www.example.com/large_image.jpg
Ik ga ervanuit dat als iemand het plaatje alsnog wil bekijken, liever de volledige versie dan een thumbnail ziet.

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 13:04
door mosymuis
Juist niet. ;)
Imageshack geeft de volgende code na het uploaden van een afbeelding:

Afbeelding

als een bezoeker dit plaatst op het forum, en gequote wordt, krijg je dus:

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 13:12
door Ger
Ai, da's knap lullig van imageshack. Dan heb je dus deze 2 dingen om rekening mee te houden:

Code: Selecteer alles

[URL=http://img258.imageshack.us/my.php?image=examplevy4.jpg][IMG]http://img258.imageshack.us/img258/1487/examplevy4.th.jpg[/IMG][/URL][URL=http://g.imageshack.us/thpix.php][IMG]http://img258.imageshack.us/images/thpix.gif[/IMG][/URL]
en

Code: Selecteer alles

[URL=http://imageshack.us][IMG]http://img258.imageshack.us/img258/1487/examplevy4.jpg[/IMG][/URL]
[URL=http://g.imageshack.us/img258/examplevy4.jpg/1/][IMG]http://img258.imageshack.us/img258/examplevy4.jpg/1/w240.png[/IMG][/URL]
En dan wordt de regexp iets lastiger...

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 13:21
door Rinus
Is 't gek als ik er nu helemaal niets meer van snap? :lol:

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 13:23
door mosymuis
Dit kan natuurlijk:

Code: Selecteer alles

$in = preg_replace('#\[url=http\://imageshack\.us\]\[img\](.*)\[/img\]\[/url\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);
$in = preg_replace('#\[url=(.*)\]\[img\].*\[/img\]\[/url\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);
$in = preg_replace('#\[img\](.*)\[/img\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);
al vid ik dit geen nette oplossing omdat je dan in theorie met alle image hosting services rekening zou moeten gaan houden.

Dit is dan iets slimmer:

Code: Selecteer alles

$in = preg_replace('#\[url=(.*)(jpg|gif|png|bmp)\]\[img\].*\[/img\]\[/url\]#iU', '[ [url=\1\2]afbeelding[/url] ]', $in);
$in = preg_replace('#\[url=.*\]\[img\](.*)\[/img\]\[/url\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);
$in = preg_replace('#\[img\](.*)\[/img\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 13:34
door Ger
In de richting van dat eerste codeblok zat ik ook te denken, maar dat vond ik inderdaad niet zo slim. Toen zat ik weer met (us|com|nl|net) enzo, maar dan ben je ook nooit klaar. Die tweede is inderdaad slimmer, en dit dan weer nét wat slimmer omdat er helaas nog teveel mensen zijn die .jpeg gebruiken, zoveel dat imageshack dat ook gewoon toestaat:

Code: Selecteer alles

$in = preg_replace('#\[url=(.*)(jpg|jpeg|gif|png|bmp)\]\[img\].*\[/img\]\[/url\]#iU', '[ [url=\1\2]afbeelding[/url] ]', $in);
$in = preg_replace('#\[url=.*\]\[img\](.*)\[/img\]\[/url\]#iU', '[ [url=\2]afbeelding[/url] ]', $in);
$in = preg_replace('#\[img\](.*)\[/img\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);
En bij de tweede regel ook even de tweede match toegepast, omdat die van de img src is.

Samen komen we een heel eind. :)

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 13:36
door Rinus
moet ik nu:

Code: Selecteer alles

$in = str_replace("\r\n", "\n", str_replace('\"', '"', trim($in)));
vervangen door:

Code: Selecteer alles

$in = preg_replace('#\[url=(.*)(jpg|jpeg|gif|png|bmp)\]\[img\].*\[/img\]\[/url\]#iU', '[ [url=\1\2]afbeelding[/url] ]', $in);
$in = preg_replace('#\[url=.*\]\[img\](.*)\[/img\]\[/url\]#iU', '[ [url=\2]afbeelding[/url] ]', $in);
$in = preg_replace('#\[img\](.*)\[/img\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);
Of zie ik dat helemaal fout? :|

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 13:41
door Ger
Moeten klinkt zo dwingend, maar ja, dat is wel mijn advies. ;)

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 13:47
door Rinus
Bedankt weer :D
Wordt toch tijd dat ik me eens wat meer hierin ga verdiepen, voel me soms zo dom he :D

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 13:52
door mosymuis
Ger schreef:En bij de tweede regel ook even de tweede match toegepast, omdat die van de img src is.
Kijk nog eens ;) aangezien we per regex telkens maar één groep gebruiken, maak ik ook telkens maar één groep in het patroon. \2 moet dus toch \1 blijven:

Code: Selecteer alles

$in = preg_replace('#\[url=(.*(jpg|jpeg|gif|png|bmp))\]\[img\].*\[/img\]\[/url\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);
$in = preg_replace('#\[url=.*\]\[img\](.*)\[/img\]\[/url\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);
$in = preg_replace('#\[img\](.*)\[/img\]#iU', '[ [url=\1]afbeelding[/url] ]', $in);
ook heb ik de eerste wat netter gemaakt (één groepje).

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 14:03
door Rinus
de smileys worden nu ook niet gequote, maar ik krijg nu iets als dit --> \":lol:\"

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 14:14
door mosymuis
ik heb het getest en kan niets vreemds vinden?

Re: Afbeeldingen quoten

Geplaatst: 08 okt 2008, 14:18
door Ger
Krijg het ook niet gereproduceerd. Logisch ook, want smileys (behoudens die niet van jouw eigen board afkomen) worden niet met img-bbcode geplaatst.

@Mosymuis: je hebt gelijk, ik keek verkeerd.

Re: Afbeeldingen quoten

Geplaatst: 19 okt 2008, 19:32
door Bee
De fout zoals beschreven door Rinus treed ook bij mij op, zie ook dit topic op mijn forum. Het lijkt erop dat het alleen gebeurd als er een smilie in de gewone tekst staat tussen twee quotes in.