[FINAL]Probleme mit zulangen wörtern oder links?

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
metty84
Mitglied
Beiträge: 159
Registriert: 08.03.2007 13:13
Wohnort: Marienberg
Kontaktdaten:

[FINAL]Probleme mit zulangen wörtern oder links?

Beitrag von metty84 »

wer kennt es nicht? das problem das auftritt wen user mal wieder denken sie müssen ihre aussage mit 200 ausrufezeichen bestätigen oder wen zu lange links die seitenbreite des forums ins unendliche treiben?

es gibt zwar den 50zeichenmod der beim absenden eines beitrages einfach bei langen wörtern aller 50 zeichen ein leerzeichen einfügt nur das problem ist das dadurch auch links die nicht als bbcode gekenzeichnet sind zerlegt werden und nichtmehr funktionieren, und auch wörter die die seitenbreite nicht gefärden plötzlich mitten im wot ein leerzeichen haben auch codes werden einfach zerlegt. das ist ja nicht so schön!

hier ist die lösung dieses problems!

mit dieser modifikation werden keine leerzeichen eingefügt aber die zeilen können bei wörtern die länger sind als von euch gewünscht umgebrochen werden. links, egal ob mit bbcode erstellt oder ohne, werden umgebrochen und funktionieren trotzdem weiterhin! und die veränderungen werden nicht in der db gespeichert das heist der mod wirkt sich auch auf ältere beiträge aus ohne diese jedoch zu verändern. also wen jemanden der mod netmehr gefällt einfach ausbauen und alles ist wie vorher.

hier die instalationsanleitung:

suche in der includes/functions.php nach vorher einfügen:

Code: Alles auswählen

function breakLongWords($str, $maxLength, $char){
    $wordEndChars = array(" ", "\n", "\r", "\f", "\v", "\0");
    $count = 0;
    $newStr = "";
    $openTag = false;
    for($i=0; $i<strlen($str); $i++){
        $newStr .= $str{$i};    
        
        if($str{$i} == "<"){
            $openTag = true;
            $Sympol = false;
            continue;
        }
        else if($str{$i} == "&")
        {
			$openTag = true;
			$Sympol = true;
            continue;
		}
        if(($openTag) && ($Sympol) && ($str{$i} == ";")){
            $openTag = false;
            continue;
        }
        else if(($openTag) && !($Sympol) && ($str{$i} == ">")){
            $openTag = false;
            continue;
        }
        
        if(!$openTag){
            if(!in_array($str{$i}, $wordEndChars)){//If not word ending char
                $count++;
                if($count==$maxLength){//if current word max length is reached
                    $newStr .= $char;//insert word break char
                    $count = 0;
                }
            }else{//Else char is word ending, reset word char count
                    $count = 0;
            }
        }
        
    }//End for    
    return $newStr;
}

suche in der viewtopic.php

Code: Alles auswählen

$template->assign_block_vars('postrow', array(
davor einfügen:

Code: Alles auswählen

$message = breakLongWords($message,9,"&shy;<wbr>");
und wen die signatur derart editiert werden soll mus das noch mit dazu

Code: Alles auswählen

$user_sig = breakLongWords($user_sig,9,"&shy;<wbr>");
in diesem fal werden bei wörtern die länger als 9 zeichen sind aller 9 zeichen der htmlcode &shy;<wbr> eingefügt. um die erlaubte wortlänge zu verändern einfach jeweils die 9 durch die gewünschte anzahl an zeichen ersetzen.

mfg metty
Nichts auf der welt ist so gerecht verteilt wie der Verstand.Denn jederman ist überzeugt das er genug davon habe.
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“