Autor
|
Thread
|
01.02.2007 23:33 Uhr
|
|
fish
|
Forenuser
|
|
registriert
|
08.01.2007
|
wohnt in
|
de/wü
|
Beiträge
|
20
|
|
jetzt ist es wie es sein soll. DANKE!
|
|
|
02.02.2007 00:05 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
fein
|
|
|
02.02.2007 19:01 Uhr
|
|
fish
|
Forenuser
|
|
registriert
|
08.01.2007
|
wohnt in
|
de/wü
|
Beiträge
|
20
|
|
spricht was dagagan, wenn ich den bbcode auf meiner seite ausstelle? ich verweise dabei auf dein tutorial und beschreibe nur kurz die sachen, die ich nachträglich eingebaut habe. http://www.fish.bierquartier.de/artikel-2-18-96-0.htm
Dieser Beitrag wurde am 02.02.2007 um 19:01:23 Uhr von fish zum 1. Mal editiert.
|
|
|
02.02.2007 19:17 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
nee, kein problem 
/edit
Ich verschiebe den Thread mal ins Tutorial-Forum.
Dieser Beitrag wurde am 06.02.2007 um 16:59:15 Uhr von Flitze zum 1. Mal editiert.
|
|
|
13.02.2007 13:51 Uhr
|
|
fish
|
Forenuser
|
|
registriert
|
08.01.2007
|
wohnt in
|
de/wü
|
Beiträge
|
20
|
|
da ist mir gerade noch etwas aufgefallen:
wenn ich ein bild mit [img=hier_jetzt_ne_ziemlich_lange_adresse.de/also/wirklich/extrem/lang.jpg]al ttext[/ img] einbinde, dann wird die url des bildes gekürzt wenn sie zu lange ist. kann man das irgentwie verhindern?
Dieser Beitrag wurde am 13.02.2007 um 17:14:12 Uhr von fish zum 2. Mal editiert.
|
|
|
13.02.2007 18:11 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Hmm nein, eigentlich nicht... zu einer Kürzung kann es nur kommen, wenn der Alternativtext zu lang ist... Alles, was zwischen [] steht, ist von der Wortkürzung ausgenommen. Dafür sorgt dieser Code-teil:
PHP:
<?php
// BB-Code Tags entfernen, da sie nicht zur Buchstabenlänge eines Wortes zählen
$word = preg_replace("/\[(.*)\]/Usi", "", $word);
?>
Poste mal das Beispiel, bei dem das bei dir passiert, damit ich das lokal bei mir testen kann.
|
|
|
13.02.2007 22:59 Uhr
|
|
fish
|
Forenuser
|
|
registriert
|
08.01.2007
|
wohnt in
|
de/wü
|
Beiträge
|
20
|
|
also der code ist unverändert zu dem hier: http://www.fish.bierquartier.de/artikel-2-18-96-0.htm und das konkrete beispiel ist: Code:
[url=http://www.fish.bierquartier.de/images/werk/fensterbankgeschichten.jpg][img]http://www.fish.bierquartier.de/images/werk/thumbnails/fensterbankgeschichten.jpg[/img]
klick to enlarge[/url]
|
|
|
13.02.2007 23:05 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Hmm.. also hier im Forum gehts.. also muss es irgendwo bei dir im Quellcode haken.
Schau ich mir moin mal an, atm isn bisschen spät
|
|
|
14.02.2007 00:45 Uhr
|
|
fish
|
Forenuser
|
|
registriert
|
08.01.2007
|
wohnt in
|
de/wü
|
Beiträge
|
20
|
|
äh joa.. kein prob.. ich schau nicht so oft auf die uhr ^^ danke..
|
|
|
14.02.2007 21:24 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
kk, habs.. also es liegt tatsächlich an der Stelle, die ich vorher schonmal gepostet habe.
Bei dir sieht das so aus:
PHP:
<?php
// für Links wird die maximale Länge erhöht
if(substr(strtolower($word), 0, 7)== 'http://' OR substr(strtolower($word), 0, 8)== 'https://' OR substr(strtolower($word), 0, 4)=='www.') {
$max_lenght = $max_link_lenght;
}
else {
$max_lenght = $max_word_lenght;
}
$word = trim($word);
// BB-Code Tags entfernen, da sie nicht zur Buchstabenlänge eines Wortes zählen
$word = preg_replace("/\[(.*)\]/Usi", "", $word);
?>
und so muss es aussehen
PHP:
<?php
// ...
// BB-Code Tags entfernen, da sie nicht zur Buchstabenlänge eines Wortes zählen
$word = trim($word);
$word = preg_replace("/\[(.*)\]/Usi", "", $word);
// für Links wird die Länge erhöht
if(substr(strtolower($word), 0, 7)== 'http://' OR substr(strtolower($word), 0, 8)== 'https://' OR substr(strtolower($word), 0, 4)=='www.')
$max_lenght = $max_link_lenght;
else
$max_lenght = $max_word_lenght;
//...
?>
Du machst das in der falschen reihenfolge 
Das zu prüfende Wort muss zuerst so behandelt werden, dass alles zwischen [] entfernt wird, damit es nicht mitgezählt wird. Bie dir passiert das erst danach.
|
|
|
14.02.2007 23:03 Uhr
|
|
fish
|
Forenuser
|
|
registriert
|
08.01.2007
|
wohnt in
|
de/wü
|
Beiträge
|
20
|
|
super! danke!
|
|
|
30.05.2007 00:09 Uhr
|
|
fish
|
Forenuser
|
|
registriert
|
08.01.2007
|
wohnt in
|
de/wü
|
Beiträge
|
20
|
|
hi ich hab nochmal ne frage. ich benutz deinen bbcode inzwischen begeistert, mir ist aber gerade aufgefallen, dass links die mit www und ohne http:// anfangen nicht richtig weitergeleiter werden (machen die browser wohl so) könntest du es so machen, dass vor jeden www link bei dem bei http:// fehlt, das http:// einfach mal vorne angehängt wird?
mfg fish
|
|
|
30.05.2007 13:50 Uhr
|
RE:
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Zitat: fish
hi ich hab nochmal ne frage. ich benutz deinen bbcode inzwischen begeistert, mir ist aber gerade aufgefallen, dass links die mit www und ohne http:// anfangen nicht richtig weitergeleiter werden (machen die browser wohl so) könntest du es so machen, dass vor jeden www link bei dem bei http:// fehlt, das http:// einfach mal vorne angehängt wird?
mfg fish
Hey, versteh dein Problem nicht ganz?
www.example.com funktioniert doch genauso wie http://www.example.com ?
|
|
|
05.06.2007 23:57 Uhr
|
|
fish
|
Forenuser
|
|
registriert
|
08.01.2007
|
wohnt in
|
de/wü
|
Beiträge
|
20
|
|
hm vielleicht habe ich eine ältere version, das kann sein. bei mir würde www.example.com nicht nach http://www.example.com umgeleitet, sondern zb nach http://www.mywebsolution.de/forum/www.example.com .
|
|
|
08.06.2007 00:38 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Dann müsstest du mal deinen aktuellen Quellcode posten ^^
|
|
|
14.01.2008 16:31 Uhr
|
|
TaLun
|
User
|
|
registriert
|
14.01.2008
|
wohnt in
|
|
Beiträge
|
1
|
|
Also ich habe das selbe problem wie fish.
Wenn kein http:// vorgegeben wird, dann verlinkt er nicht sauber.
Ich habe meinen Code in eine Function gebaut und die linklenght als eigene unveränderte. Der code sieht bei mir so aus:
PHP:
//URL [url=pfad]Name[/url]
//Function linkLenght beachten!!!
$text = preg_replace_callback("/\[url=(.*)\](.*)\[\/url\]/Usi", 'linkLenght', $text);
// "reine" URLs umwandeln
$text = preg_replace_callback('#(( |^)(((ftp|http|https|)://)|www.)\S+)#mi', 'linkLenght', $text);
Wenn man also in irgendeiner Form (mit und ohne Linknamen) das http nicht schreibt wird der link wie bei fish aufgebaut.
Auch ist das bei der "reinen"url so. www.test.de wird gewandelt aber falsch und http://www.test.de wird bei mir komplett ignoriert.
Hast Du da ein Tip, was das Problem sein kann?
Edit:
ich lege nochmal den code für die function linklenght rein:
PHP:
// Prüft die Linklänge und passt sie gegebenenfalls an
// wird für preg_replace_callback definiert
function linkLenght($treffer)
{
// $treffer[1] ist die URL
$url = trim($treffer[1]);
// $treffer[2] ist der Ausgabename
// wurde kein Name angegeben, wird die URL als Name gewählt
if(strlen(trim($treffer[2]))!=0)
$linkname = $treffer[2];
else
$linkname = $treffer[1];
// legt eine maximale Länge von 50 Zeichen fest
// Ausnahme bei [img]-Tags
if(strlen($linkname)>50 AND !substr_count(strtolower($linkname), '[img]') AND !substr_count(strtolower($linkname), '[/img]'))
$linkname = substr($linkname, 0, 45-3)."...".substr($linkname, -5);
// Rückgabelink
$ergebnis = "<a href=\"".$url."\" target=\"_blank\">".$linkname."</a>";
return $ergebnis;
}
Dieser Beitrag wurde am 14.01.2008 um 16:33:39 Uhr von TaLun zum 1. Mal editiert.
|
|
|
19.01.2008 22:23 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Hm da fehlen 2 Zeilen..
Hier mal mein Code:
PHP:
<?php
// Prüft die Linklänge und passt sie gegebenenfalls an
// wird für preg_replace_callback definiert
function linkLenght($treffer)
{
// $treffer[1] ist die URL
$url = trim($treffer[1]);
if(substr($url,0,7)!= 'http://' AND substr($url,0,6)!= 'ftp://')
$url = "http://".$url;
// $treffer[2] ist der Ausgabename
// wurde kein Name angegeben, wird die URL als Name gewählt
if(strlen(trim($treffer[2]))!=0)
$linkname = $treffer[2];
else
$linkname = $treffer[1];
// legt eine maximale Länge von 50 Zeichen fest
// Ausnahme bei [img]-Tags
if(strlen($linkname)>50 AND !substr_count(strtolower($linkname), '[img]') AND !substr_count(strtolower($linkname), '[/img]'))
$linkname = substr($linkname, 0, 45-3)."...".substr($linkname, -5);
// Rückgabelink
$ergebnis = "<a href=\"".$url."\" target=\"_blank\">".$linkname."</a>";
return $ergebnis;
}
?>
|
|
|