ilch Forum » Ilch Clan 1.1 » Allgemein » GBook

Geschlossen
  1. #1
    User Pic
    MrBurnz Mitglied
    Registriert seit
    06.09.2012
    Beiträge
    42
    Beitragswertungen
    1 Beitragspunkte
    Moinsen,

    ich hab folgendes Problem entdeckt:

    User die bei uns nen GBook eintrag hinterlassen sprengen unser Forum da diese anscheinend zu groß sind.
    Kann ich das irgendwie einstellen das die Bilder die gepostet werden automatisch verkleinert werden, sodass die nicht über dem Forenrahmen hinaus ragen ?

    Betroffene HP : externer Link

    Danke schonmal

    betroffene Homepage: externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    blakedj06 gelöschter User
    Der einfachste Weg ist BBcode Module installieren und im ACP bei den BBcode Einstellungen die maximale Bildgröße einstellen.


    Zuletzt modifiziert von blakedj06 am 30.09.2012 - 18:16:20
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    MrBurnz Mitglied
    Registriert seit
    06.09.2012
    Beiträge
    42
    Beitragswertungen
    1 Beitragspunkte
    Den BBcode für´s Gbook musste ich raus nehmen da sonst keiner mehr was posten konnte -.-
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    BigEasy Mitglied
    Registriert seit
    09.09.2012
    Beiträge
    149
    Beitragswertungen
    11 Beitragspunkte
    wenn du magst kannst du mir via pn zugriff auf ftp geben, dann kann ich mir das mal genauer ansehen
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    blakedj06 gelöschter User
    Hmm seltsam aber ok ersetze den kompletten Code in der include/includes/func/bbcode.php mit dem folgenden:

    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
        defined('main') or die ('no direct access');
        function BBcode($s, $maxLength = 40) {
            #$s = unescape($s);
            $coTime = str_replace(' ', '', microtime());
            preg_match_all('/\[code\](.+)\[\/code\]/Uis', $s, $result);
            $s = bbcode_code_start($s, $coTime, $result);
            # bbcode einheitlicher machen zum bessern pruefen.
            $s = bbcode_simple_prev($s);
            #$s = preg_replace ("/(\015\012|\015|\012)/", " \\1", $s);
            # autoumbruch nach x zeichen
            #$s = bbcode_autonewline($s, $coTime, $maxLength);
            $s = htmlentities($s, ENT_DISALLOWED, 'ISO-8859-1');
            # speziell bilder
            $s = bbcode_images($s);
            # speziell zitate ersetzten.
            $s = bbcode_quote($s);
            # replace simple
            $s = bbcode_simple($s);
            # smilies umwandeln
            $s = bbcode_smiles($s);
            $s = preg_replace("/\015\012|\015|\012/", "\n<br />", $s);
            # code zurueck ersetzten
            $s = bbcode_code_end($s, $coTime, $result);
            return ($s);
        }
    
    # diese funktion ist etwas komplizierter. und zwar wird hier versucht
    # dem problem beizukommen das immer irgendwelche spassvoegel sehr lange
    # texte schreiben die dann das design verzerren. dagegen hilft nur der
    # automatische umbruch. ich habe mir dafuer ausgedacht es gibt
    # bestimmte zeichen ab dennen die kontrolle total aus ist (url, img)
    # und es gibt zeichen ab dennen die kontrolle wieder eingeschaltet wird
    # ausserdem gibt es zeichen ab dennen wieder von vorn angefangen wird
    # zu zahlen, wird der counter erreicht wird ein leerzeichen eingefueght.
        function bbcode_autonewline($s, $coTime, $maxLength) {
            $neu_s = '';
            $ar_start = array(
                '[url=http://',
                '[img]'
            );
            $ar_ende = array(
                ']',
                '[/img]'
            );
            $ar_neu = array(
                ' ',
            );
            $ar_next = array(
                ' ',
                "\n",
                "\r",
                '[/url]',
                '[b]',
                '[/b]',
                '[i]',
                '[/i]',
                '[u]',
                '[/u]',
                $coTime,
                '[list]',
                '[/list]',
                '[*]'
            );
            $count   = TRUE;
            $countgr = null;
            $counter = -1;
            $a = strlen($s);
            for ($i = 0; $i < $a; $i++) {
                # counter raus / rein
                if ($count == TRUE) {
                    foreach ($ar_start as $sk => $sv) {
                        if ($s{$i} == substr($sv, 0, 1) AND preg_match("/^" . preg_quote($sv, '/') . "/", substr($s, $i))) {
                            $count   = FALSE;
                            $countgr = $sk;
                            $counter = 0;
                            #echo '<h1>ON</h1>';
                            break;
                        }
                    }
                } elseif ($count == FALSE AND $s{$i} == substr($ar_ende[$countgr], 0, 1) AND preg_match("/^" . preg_quote($ar_ende[$countgr], '/') . "/", substr($s, $i))) {
                    #echo '<h1>||'. $s{$i} .'||<br>||'.substr($s, $i, 10).'||<br>';
                    #echo 'OFF</h1>';
                    $count   = TRUE;
                    $counter = -2;
                    $countgr = null;
                }
                if ($count == TRUE) {
                    $counter++;
                    # ar neu?
                    foreach ($ar_neu as $v) {
                        if ($count == TRUE AND $s{$i} == substr($v, 0, 1) AND preg_match("/^" . preg_quote($v) . "/", substr($s, $i))) {
                            $counter = -3;
                            break;
                        }
                    }
                    # springen
                    foreach ($ar_next as $v) {
                        if ($s{$i} == substr($v, 0, 1) AND preg_match("/^" . preg_quote($v, '/') . "/", substr($s, $i))) {
                            $i        = $i + strlen($v) - 1;
                            $springen = true;
                            $valSprin = $v;
                            break;
                        }
                    }
                    if (isset($springen) AND $springen === true) {
                        $neu_s .= $valSprin;
                        $springen = false;
                        $valSprin = null;
                        continue;
                    }
                    if ($counter >= $maxLength) {
                        $neu_s .= ' ';
                        $counter = 0;
                    }
                }
                $neu_s .= $s{$i};
            }
            /*
            $s = str_replace('</a>', ' </a>', $s);
            $lines = explode(' ',$s);
    
              $ntxt = '';
              foreach ($lines as $v) {
                if ( strpos($v,$coTime) === FALSE AND strpos ($v, 'src="') === FALSE AND strpos ($v, 'href="') === FALSE AND strpos ($v, '</table>') === FALSE) {
                    $ntxt .= chunk_split($v, $maxLength, ' ').' ';
              } else {
                    $ntxt .= $v.' ';
                  }
              }
              $s = $ntxt;
            $s = str_replace(' </a>', '</a>', $s);
            */
            return ($neu_s);
        }
    
        function bbcode_images($s) {
            global $allgAr;
            preg_match_all('/\[img\](http|https):\/\/([^\ \?&=\#\"\n\r\t<>]+)\.(gif|jpeg|jpg|png)\[\/img\]/Ui', $s, $imgRs);
            if (isset($allgAr['allg_bbcode_max_img_width'])) {
                $max_breite = 'deine Zahl';
            }
            $endung = array(
                1 => 'gif',
                2 => 'jpg',
                3 => 'png'
            );
            if (isset ($imgRs[0][0])) {
                for ($i = 0; $i < count($imgRs[0]); $i++) {
                    $imgstr = $imgRs[1][$i] . '://' . $imgRs[2][$i] . '.' . $imgRs[3][$i];
                    $size   = @getimagesize($imgstr);
                    $breite = $neueBreite = $size[0];
                    $hoehe  = $neueHoehe = $size[1];
                    $er     = '';
                    if (isset($endung[$size[2]]) OR !is_array($size)) {
                        $er = '<img style="border: none;" src="' . $imgstr . '" />';
                        if ($breite > $max_breite) {
                            $neueHoehe  = intval($hoehe * $max_breite / $breite);
                            $neueBreite = $max_breite;
                            $er         = '<a href="' . $imgstr . '" target="_blank"><img height="' . $neueHoehe . '" width="' . $neueBreite . '" style="border: none;" src="' . $imgstr . '" /></a>';
                        }
                    }
                    $s = str_replace($imgRs[0][$i], $er, $s);
                }
            }
            return ($s);
        }
    
        function bbcode_quote($s) {
            $tpl           = new tpl ('zitatreplace.htm');
            $header1_quote = $tpl->get(0);
            $header2_quote = $tpl->get(1);
            $footer1_quote = $tpl->get(2);
            unset($tpl);
            $i = 0;
            while (strpos($s, "[/quote]") !== FALSE AND $i < 5) {
                $i++;
                $s = preg_replace("#\[quote\=([^\]]*)\](.*)\[\/quote\]#Uis", $header1_quote . "geschrieben von \\1" . $header2_quote . "\\2" . $footer1_quote, $s);
                $s = preg_replace("/\[quote\](.*)\[\/quote\]/Usi", $header1_quote . $header2_quote . "\\1" . $footer1_quote, $s);
            }
            return ($s);
        }
    
        function bbcode_simple_prev($s) {
            $search = array(
                "/(^|[^=\]\>\"])http:\/\/(www\.)?([^\s\"\<\[]*)/i",
                "/\[url\]http:\/\/(www\.)?(.*?)\[\/url\]/si",
            );
            $replace = array(
                "\\1[url]http://\\2\\3[/url]",
                "[url=http://\\1\\2]\\2[/url]",
            );
            $s = preg_replace($search, $replace, $s);
            return ($s);
        }
    
        function bbcode_simple($s) {
            $page   = preg_quote(dirname(str_replace('www.', '', $_SERVER["HTTP_HOST"]) . $_SERVER["SCRIPT_NAME"]), '/');
            $search = array(
                "/\[b\](.*?)\[\/b\]/si",
                "/\[i\](.*?)\[\/i\]/si",
                "/\[u\](.*?)\[\/u\]/si",
                "/\[url=http:\/\/(www\.)?(" . $page . ")(.*?)](.*?)\[\/url\]/si",
                "/\[url=http:\/\/(www\.)?(.*?)\](.*?)\[\/url\]/si",
                "/\[list(=1)?\](.+)\[\/list\]/Usie",
                "/(script|about|applet|activex|chrome):/is",
            );
            $replace = array(
                "<b>\\1</b>",
                "<i>\\1</i>",
                "<u>\\1</u>",
                "<a href=\"http://\\1\\2\\3\">\\4</a>",
                "<a href=\"http://\\1\\2\" target=\"_blank\">\\3</a>",
                "bbcode_simple_list ('\\1', '\\2')",
                "\\1&#058;",
            );
            $s = preg_replace($search, $replace, $s);
            return ($s);
        }
    
        function bbcode_simple_list($w, $s) {
    #  $s = preg_replace("\015\012
            $s = preg_replace("/\[\*\]([^\[]+)/ies", "'<li>'.trim('\\1').'</li>'", trim($s));
            if ($w == '=1') {
                return ('<ol>' . trim($s) . '</ol>');
            }
            return ('<ul>' . trim($s) . '</ul>');
        }
    
        function bbcode_smiles($s) {
            global $global_smiles_array;
            if (!isset($global_smiles_array)) {
                $global_smiles_array = array();
                $erg                 = db_query("SELECT ent, url, emo FROM `prefix_smilies`");
                while ($row = db_fetch_object($erg)) {
                    $global_smiles_array[$row->ent] = $row->emo . '#@#-_-_-#@#' . $row->url;
                }
            }
            foreach ($global_smiles_array as $k => $v) {
                list($emo, $url) = explode('#@#-_-_-#@#', $v);
                $s = str_replace($k, '<img src="include/images/smiles/' . $url . '" border="0" alt="' . $emo . '" title="' . $emo . '" />', $s);
            }
            return ($s);
        }
    
        function bbcode_code_start($s, $coTime, $result) {
            for ($i = 0; $i < count($result[1]); $i++) {
                if ($result[0][$i]) {
                    $s = str_replace($result[0][$i], '#' . $coTime . '#' . $i . '#' . $coTime . '#', $s);
                }
            }
            return ($s);
        }
    
        function bbcode_code_end($s, $coTime, $result) {
            $tpl = new tpl ('codereplace.htm');
            for ($i = 0; $i < count($result[1]); $i++) {
                if ($result[1][$i]) {
                    ob_start();
                    #$result[1][$i] = str_replace ('&lt;', '<', str_replace('&gt;', '>', $result[1][$i]));
                    #$codereplace = highlight_string(trim($result[1][$i]), 1);
                    highlight_string(trim($result[1][$i]));
                    $codereplace = ob_get_contents();
                    ob_end_clean();
                    $newstring = $tpl->set_get('CODEREPLACE', $codereplace, 0);
                    $s         = str_replace('#' . $coTime . '#' . $i . '#' . $coTime . '#', $newstring, $s);
                }
            }
            unset($tpl);
            return ($s);
        }
    
    ?>


    Und bei der Funktion "function bbcode_images($s)" findest Du von mir einen Platzhalter mit dem Namen "deine Zahl". Kanst auch direkt danach suchen!

    Dort kannste dann ein bischen rumspielen und Werte eingeben zb. 200 für eine maximale Breite von 200px bei Bildern.

    Beachte das diese Funktion nun alle Images auf deiner Seite die mit BBcode ausgelesen werden auf diesen Wert einstellt.

    Ich gehe mal davon aus das es Dir so reicht.
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    blakedj06 gelöschter User
    Ich sehe bei Dir gerade ein Fehler.

    Du hast sicher nicht PHP 5.4 drauf.

    Ganz oben in der Datei haste stehen:

    $s = htmlentities($s, ENT_DISALLOWED, 'ISO-8859-1');

    ändere das mal zu:

    $s = htmlentities($s);
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    MrBurnz Mitglied
    Registriert seit
    06.09.2012
    Beiträge
    42
    Beitragswertungen
    1 Beitragspunkte
    Danke erstmal für den Code, aber nach dem einfügen bekomm ich folgende Fehlermeldung:

    Warning: htmlentities() expects parameter 2 to be long, string given in /home/a2191822/public_html/include/includes/func/bbcode.php on line 15

    Dsa wäre dann diese Zeile:

    $s = htmlentities($s, ENT_DISALLOWED, 'ISO-8859-1');

    Aber was is daran zu lang ?
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    blakedj06 gelöschter User
    siehe über Dir. ^^
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    MrBurnz Mitglied
    Registriert seit
    06.09.2012
    Beiträge
    42
    Beitragswertungen
    1 Beitragspunkte
    Oke nu geht der Code, aber iwie bringt das nix. Egal wie klein ich die Bildgröße einstelle (war schon auf 100 runter), der weiße Hg ragt immer übers Forum hinaus -.-
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    blakedj06 gelöschter User
    Jo da scheinst Du ein anderes Problem zu haben. Sieht aus wie eine nicht geschlossene Tabelle.

    Adde mich mal in ICQ: 133045962

    oder Xfire: blakedj07
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    MrBurnz Mitglied
    Registriert seit
    06.09.2012
    Beiträge
    42
    Beitragswertungen
    1 Beitragspunkte
    Das so ein sch*** alter Bbcode so ein Fehler verursacht -.-

    Dank dir nochmal für deine Hilfe :-]
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten