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

, 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:
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?

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
Wordt toch tijd dat ik me eens wat meer hierin ga verdiepen, voel me soms zo dom he

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.