ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Fehler mit den Smileys

Geschlossen
  1. #1
    User Pic
    Bigboss079 Mitglied
    Registriert seit
    03.04.2015
    Beiträge
    13
    Beitragswertungen
    0 Beitragspunkte
    Hi Leute,

    vielleicht kann mir hier jemand helfen bei einem Problemen

    ich habe eine Neue Shoutbox installiert!
    Nun ist das Forum aber Fehlerhaft, die "Ilch-Smileys" werden teils in die Shoutbox Übertragen (WTF:O)
    Habe schon versucht über die Smilie Code Beschreibung es zu ändern ohne Erfolg(:/!)
    bin da echt Ratlos , habe versucht die such Funktion zu nutzen aber nix gefunden was mir geholfen hat?!

    Vielleicht hat jemand eine Idee:S
    Falls daten benötigt werden einfach reinschreiben

    Gruß:)
    Big


    verwendete ilch Version: 1.1 P

    betroffene Homepage: externer Link


    Zuletzt modifiziert von Bigboss079 am 12.04.2015 - 10:12:26
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Ja dieses Problem ist schonmal aufgetreten, folgendes das Modul ruft die Smileys aus der eigenen Tabelle auf, da diese aber in der Standart Ilch smiley tabelle vorhanden sind werden diese Doppelt ausgegebene. Die Standart ilch Smileys greifen auf alles zurück bsp. news kommentare, forum etc.. Zur behebung deines Problems isrt ganz einfach, Nichts doppelt haben, vorallem auch der ausgabe Code für die Smileys darf nicht doppelt sein. Als wir damals das Problem schonmal hatten ist uns aufgefallen das dieses Modul eig. naja Sinnlos ist.
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Bigboss079 Mitglied
    Registriert seit
    03.04.2015
    Beiträge
    13
    Beitragswertungen
    0 Beitragspunkte
    Hey Danke ,
    Dann werde ich jetzt einen Member beauftragen ,
    der alle 400 Dinger umzubenennen hat^^
    schön das Leben als Leader XD
    ;-)
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Wie du es machst liegt bei dir aber vergiss nicht die dürfen nicht doppelt vorhanden sein vorallem auch nicht die smiley codes, bei 400 aus deinem Modul brauchste ja nicht alle ändern sondern nur die, die auch bei den Standart ilch smileys vorhanden sind, das sind ca. 20-30 stk wenn du die ändert ist alles ok.
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Bigboss079 Mitglied
    Registriert seit
    03.04.2015
    Beiträge
    13
    Beitragswertungen
    0 Beitragspunkte
    Hi haben wir gelöst
    ohne smiley umbennenug! wie ich finde auf die richtige weiße oder?
    hier die php´s

    allg.php (includes/func):
    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
    
    defined ('main') or die ( 'no direct access' );
    
    ##
    ###
    ####
    #####  W E I T E R L E I T U N G S   F U N K T I O N
    function wd ($wdLINK,$wdTEXT,$wdZEIT=3) {
    	global $lang;
    
      if (!is_array($wdLINK)) {
    	  $urls  = '<a href="'.$wdLINK.'">'.$lang['forward2'].'</a>';
    	  $wdURL = $wdLINK;
    	} else {
    	  $urls  = '';
        $i = 0;
    		foreach($wdLINK as $k => $v) {
    		  if ( $i == 0 ) {
    			  $wdURL = $v;
    			}
    			$urls .= '<a href="'.$v.'">'.$k.'</a><br />';
    		  $i++;
    		}
    	}
    	$tpl = new tpl ( 'weiterleitung.htm' );
    	$ar = array
    	(
        'LINK' => $urls,
    	  'URL'  => $wdURL,
    		'ZEIT' => $wdZEIT,
    		'TEXT' => $wdTEXT
    	);
    	$tpl->set_ar_out ( $ar, 0 );
    	unset($tpl);
    }
    
    ##
    ###
    ####
    ##### g e t   R e c h t
    function getrecht ($RECHT, $USERRECHT) {
    	if ( empty ( $USERRECHT ) ) {
    	  return (false);
    	} else {
    	  if($USERRECHT <= $RECHT) {
    	    return (true);
    	  } else {
    	    return (false);
    	  }
      }
    }
    
    ##
    ###
    ####
    ##### g e t   U s e r   N a m e
    function get_n($uid) {
    	$row = db_fetch_object(db_query("SELECT name FROM prefix_user WHERE id = '".$uid."'"));
    	return $row->name;
    }
    
    ##
    ###
    ####
    ##### wochentage sonntag 0 samstag 6
    function wtage ($tag) {
      $wtage = array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
      return ($wtage[$tag]);
    }
    
    ##
    ###
    ####
    ##### monate in deutsch
    function getDmon ($mon) {
      $monate = array('Januar','Februar','M&auml;rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
      return($monate[$mon-1]);
    }
    
    
    ##
    ###
    ####
    ##### a l l g e m e i n e s   A r r a y
    function getAllgAr () {
    
    	# v1 = schluessel
    	# v2 = wert
    	# v3 = feldtyp
      # v4 = kurze beschreibung wenn n�tig
    
    	$ar = array();
    	$abf = "SELECT schl, wert FROM `prefix_config`";
    	$erg = db_query($abf);
    	while($row = db_fetch_assoc($erg) ) {
    	  $ar[$row['schl']] = $row['wert'];
    	}
    	return $ar;
    }
    
    ##
    ###
    ####
    ##### UserRang ermitteln
    function userrang ($post,$uid) {
      global $global_user_rang_array;
    
      if (!isset($global_user_rang_array[$uid])) {
        if (!isset($global_user_rang_array)) {
          $global_user_rang_array = array();
        }
        if ( empty($uid) ) {
          $rRang = 'Gast';
        } else {
          $rRang = @db_result(db_query("SELECT bez FROM prefix_user LEFT JOIN prefix_ranks ON prefix_ranks.id = prefix_user.spezrank WHERE prefix_user.id = ".$uid),0);
        }
        if ( empty($rRang) ) {
          $post = ( $post == 0 ? 1 : $post );
          $rRang = @db_result(db_query("SELECT bez FROM `prefix_ranks` WHERE spez = 0 AND min <= ".$post." ORDER BY min DESC LIMIT 1"),0);
        } elseif ( $rRang != 'Gast' ) {
          $rRang = '<i><b>'.$rRang.'</b></i>';
        }
        $global_user_rang_array[$uid] = $rRang;
      }
    
      return ($global_user_rang_array[$uid]);
    }
    
    
    ##
    ###
    ####
    ##### makiert suchwoerter
    function  markword($text,$such) {
      $erg  = '<span style="background-color: #EBF09B;">';
      $erg .= $such."</span>";
    	$text = str_replace($such,$erg,$text);
      return $text;
    }
    
    
    ##
    ###
    ####
    ##### gibt die smiley liste zurueck
    function getsmilies () {
      global $lang;
      $zeilen = 3; $i = 0;
    	$b = '<script language="JavaScript" type="text/javascript">function moreSmilies () { var x = window.open("about:blank", "moreSmilies", "width=250,height=200,status=no,scrollbars=yes,resizable=yes"); ';
      $a = '';
      $erg = db_query('SELECT emo, ent, url FROM `prefix_smilies`');
    	while ($row = db_fetch_object($erg) ) {
    
        $b .= 'x.document.write ("<a href=\"javascript:opener.put(\''.addslashes(addslashes($row->ent)).'\')\">");';
        $b .= 'x.document.write ("<img style=\"border: 0px; padding: 5px;\" src=\"include/images/smiles/'.$row->url.'\" title=\"'.$row->emo.'\"></a>");';
    
        if ($i<12) {
          # float einbauen
          if($i%$zeilen == 0 AND $i <> 0) { $a .= '<br /><br />'; }
          $a .= '<a href="javascript:put(\''.addslashes($row->ent).'\')">';
          $a .= '<img style="margin: 2px;" src="include/images/smiles/'.$row->url.'" border="0" title="'.$row->emo.'"></a>';
        }
        $i++;
    	}
      $b .= ' x.document.write("<br /><br /><center><a href=\"javascript:window.close();\">'.$lang['close'].'</a></center>"); x.document.close(); }</script>';
      if ($i>12) { $a .= '<br /><br /><center><a href="javascript:moreSmilies();">'.$lang['more'].'</a></center>'; }
      $a = $b.$a;
      return ($a);
    }
    
    ##
    ###
    ####
    ##### gibt die shoutbox smiley liste zurueck
    function getsmiliesshoutbox () {
      global $lang;
      $zeilen = 3; $i = 0;
    	$b = '<script language="JavaScript" type="text/javascript">function moreSmiliesshoutbox () { var x = window.open("about:blank", "moreSmiliesshoutbox", "width=250,height=200,status=no,scrollbars=yes,resizable=yes"); ';
      $a = '';
      $erg = db_query('SELECT emo, ent, url FROM `prefix_smilies`');
    	while ($row = db_fetch_object($erg) ) {
    
        $b .= 'x.document.write ("<a href=\"javascript:opener.put(\''.addslashes(addslashes($row->ent)).'\')\">");';
        $b .= 'x.document.write ("<img style=\"border: 0px; padding: 5px;\" src=\"include/images/smiliesshb/'.$row->url.'\" title=\"'.$row->emo.'\"></a>");';
    
        if ($i<12) {
          # float einbauen
          if($i%$zeilen == 0 AND $i <> 0) { $a .= '<br /><br />'; }
          $a .= '<a href="javascript:put(\''.addslashes($row->ent).'\')">';
          $a .= '<img style="margin: 2px;" src="include/images/smiliesshb/'.$row->url.'" border="0" title="'.$row->emo.'"></a>';
        }
        $i++;
    	}
      $b .= ' x.document.write("<br /><br /><center><a href=\"javascript:window.close();\">'.$lang['close'].'</a></center>"); x.document.close(); }</script>';
      if ($i>12) { $a .= '<br /><br /><center><a href="javascript:moreSmiliesshoutbox();">'.$lang['more'].'</a></center>'; }
      $a = $b.$a;
      return ($a);
    }
    
    
    
    
    ##
    ###
    ####
    ##### generey key with x length
    function genkey ( $anz ) {
    	$letterArray = array ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9','0');
      $key = '';
    	for ($i=0;$i < $anz ; $i ++)
    	{
    	    mt_srand((double)microtime()*1000000);
    	    $zufallZahl = mt_rand(0,62);
          $key .= $letterArray[$zufallZahl];
      }
    	return ( $key );
    }
    
    function icmail ($mail, $bet, $txt, $from = '', $html = false) {
    	global $allgAr;
    	include_once('include/includes/class/phpmailer/class.phpmailer.php');
    	$mailer = new PHPMailer();
    	if (empty($from)) {
    		$mailer->From = $allgAr['adminMail'];
    		$mailer->FromName = $allgAr['allg_default_subject'];
    	} elseif ( preg_match('%(.*) <([\w\.-]*@[\w\.-]*)>%i', $from, $tmp) ) {
    		$mailer->From = trim($tmp[2]);
    		$mailer->FromName = trim($tmp[1]);
    	} elseif (preg_match('%([\w\.-]*@[\w\.-]*)%i', $from, $tmp)) {
    		$mailer->From = trim($tmp[1]);
    		$mailer->FromName = '';
    	}
    	if ($allgAr['mail_smtp']) { //SMTP Versand
    
    		$smtpser = @db_result(db_query('SELECT `t1` FROM `prefix_allg` WHERE `k` = "smtpconf"'));
    		if (empty($smtpser)) {
    			echo '<span style="font-size: 2em; color: red;">Mailversand muss konfiguriert werden!</span><br />';
    		} else {
    			$smtp = unserialize($smtpser);
    
    			$mailer->IsSMTP();
    			$mailer->Host = $smtp['smtp_host'];
    			$mailer->SMTPAuth = ($smtp['smtp_auth'] == 'no' ? false : true);
    			if ($smtp['smtp_auth'] == 'ssl' or $smtp['smtp_auth'] == 'tls') {
    				$mailer->SMTPSecure = $smtp['smtp_auth'];
    			}
    			if (!empty($smtp['smtp_port'])) {
    				$mailer->Port = $smtp['smtp_port'];
    			}
    			$mailer->AddReplyTo($mailer->From, $mailer->FromName);
    
    			if ($smtp['smtp_changesubject'] and $mailer->From != $smtp['smtp_email']) {
    				$bet = '(For ' .$mailer->FromName . ' - '. $mailer->From .') '. $bet;
    				$mailer->From = $smtp['smtp_email'];
    			}
    
    			$mailer->Username = $smtp['smtp_login'];
    
    			require_once('include/includes/class/AzDGCrypt.class.inc.php');
    			$cr64 = new AzDGCrypt(DBDATE.DBUSER.DBPREF);
    			$mailer->Password = $cr64->decrypt($smtp['smtp_pass']);
    
    			if ($smtp['smtp_pop3beforesmtp'] == 1) {
    				include_once('include/includes/class/phpmailer/class.pop3.php');
    				$pop = new POP3();
    				$pop3port = !empty($smpt['smtp_pop3port']) ? $smpt['smtp_pop3port'] : 110;
    				$pop->Authorise($smpt['smtp_pop3host'], $pop3port, 5, $mailer->Username, $mailer->Password, 1);
    			}
    		}
    		//$mailer->SMTPDebug = true;
    	}
    	if (is_array($mail)) {
    		if ($mail[0] != 'bcc') {
    			array_shift($mail);
    			foreach ($mail as $m){
    				$mailer->AddBCC(escape_for_email($m));
    			}
    			$mailer->AddAddress($mailer->From);
    		} else {
    			foreach ($mail as $m){
    				$mailer->AddAddress(escape_for_email($m));
    			}
    		}
    	} else {
    		$mailer->AddAddress(escape_for_email($mail));
    	}
    	$mailer->Subject = escape_for_email($bet, true);
    	$txt = str_replace("\r", "\n", str_replace("\r\n", "\n", $txt));
    	if ($html) {
    		$mailer->IsHTML(true);
    		$mailer->AltBody = strip_tags($txt);
    	}
    	$mailer->Body = $txt;
    
    	if ($mailer->Send()) {
    		return true;
    	} else {
    		if (is_coadmin()) {
    			echo "<h2 style=\"color:red;\">Mailer Error: " . $mailer->ErrorInfo . '</h2>';
    		}
    		return false;
    	}
    }
    
    function html_enc_substr($text, $start, $length) {
        if (version_compare(PHP_VERSION, '5.3.4') !== -1) {
            $trans_tbl = get_html_translation_table(HTML_ENTITIES, ILCH_ENTITIES_FLAGS, ILCH_CHARSET);
        } else {
            $trans_tbl = get_html_translation_table(HTML_ENTITIES, ILCH_ENTITIES_FLAGS);
        }
        $trans_tbl = array_flip($trans_tbl);
        return(htmlentities(substr(strtr($text, $trans_tbl), $start, $length), ILCH_ENTITIES_FLAGS, ILCH_CHARSET));
    }
    
    function get_datum ($d) {
      if (strpos($d,'.') !== FALSE) { $d = str_replace('.','-',$d); }
      if (strpos($d,'/') !== FALSE) { $d = str_replace('/','-',$d); }
      if (is_numeric(substr($d,-4))) {
        list($t,$m,$j) = explode('-', $d);
      } elseif (is_numeric(substr($d,0,4))) {
        list($j,$m,$t) = explode('-', $d);
      }
      $d = $j.'-'.$m.'-'.$t;
      return ($d);
    }
    
    /**
     * Add "http" to url if no "http/https" given.
     *
     * @param string $homepage
     * @return string
     */
    function get_homepage($homepage) {
        $homepage = trim($homepage);
    
        if (!empty($homepage)
            && substr($homepage, 0, 7) !== 'http://'
            && substr($homepage, 0, 8) !== 'https://'
        ) {
            $homepage = 'http://'.$homepage;
        }
    
        return $homepage;
    }
    
    function get_wargameimg ($img) {
      if (file_exists('include/images/wargames/'.$img.'.gif')) {
        return ('<img src="include/images/wargames/'.$img.'.gif" alt="'.$img.'" border="0">');
      } elseif (file_exists('include/images/wargames/'.$img.'.jpg')) {
        return ('<img src="include/images/wargames/'.$img.'.jpg" alt="'.$img.'" border="0">');
      } elseif (file_exists('include/images/wargames/'.$img.'.jpeg')) {
        return ('<img src="include/images/wargames/'.$img.'.jpeg" alt="'.$img.'" border="0">');
      } elseif (file_exists('include/images/wargames/'.$img.'.png')) {
        return ('<img src="include/images/wargames/'.$img.'.png" alt="'.$img.'" border="0">');
      }
      return ('');
    }
    
    function iurlencode_help ($a) {
      if (preg_match("/(http:|https:|ftp:)/", $a[0])) {
        return ($a[0]);
      }
    
      return (rawurlencode($a[1]).substr($a[0], -1));
    }
    
    function iurlencode ($s) {
      return (preg_replace_callback("/([^\/]+|\/[^\.])[\.\/]/", 'iurlencode_help', $s));
      /*
      $x = 'false';
      if (preg_match ('/(http:|https:|ftp:)[^:]+:[^@]+@./', $s)) {
        $x = preg_replace('/([^:]+:[^@]+@)./',"\\1",$s);
      	$s = str_replace($x,'',$s);
    	} elseif (substr($s, 0, 7) == 'http://') {
    	  $s = substr ($s, 7);
    		$x = 'http://';
    	} elseif (substr($s, 0, 8) == 'https://') {
    	  $s = substr ($s, 8);
    	  $x = 'https://';
    	} elseif (substr($s, 0, 6) == 'ftp://') {
    	  $s = substr ($s, 6);
    	  $x = 'ftp://';
    	}
    
    
    	$a = explode('/', $s);
      $r = '';
      for ($i=0;$i<count($a);$i++) {
        $r .= rawurlencode($a[$i]).'/';
      }
    
    	if ($x !== 'false') {
    	  $r = $x.$r;
    	}
    
      $r = substr($r, 0, -1);
      return ($r);
      */
    }
    
    /**
     * Prüft, ob der Antispamcode richtig eingegeben wurde
     * Der NoPictureMode fügt ein Hidden Feld ein, um Cross Site Request Forgery Attacken zu unterbinden, der NoPictureMode
     * wird automatisch genutzt, wenn kein Bildabfrage statt findet, kann aber auch erzwungen werden
     *
     * @global array $allgAr
     * @param string $m Modulname, um unterschiedliche Antispamfelder auf einer Seite zu ermöglichen
     * @param boolean $nopictures NoPictureMode erzwingen
     * @return boolean
     */
    function chk_antispam($m, $nopictures = false)
    {
        global $allgAr;
    
        if (!$nopictures && is_numeric($allgAr['antispam']) && has_right($allgAr['antispam'])) {
            $nopictures = true;
        }
    
        $valid = false;
    
        if ($nopictures && isset($_POST['antispam_id'])) {
            $antispamId = $_POST['antispam_id'];
            if (isset($_SESSION['antispam'][$antispamId]) && $_SESSION['antispam'][$antispamId]) {
                $valid = true;
                unset($_SESSION['antispam'][$antispamId]);
            }
        } elseif (isset($_POST['captcha_code']) && isset($_POST['captcha_id'])) {
            require_once 'include/includes/captcha/Captcha.php';
            $controller = new Captcha();
            $captchaCode = strtoupper($_POST['captcha_code']);
            $valid = $controller->isValid($captchaCode, $_POST['captcha_id']);
        }
        return $valid;
    }
    
    /**
     * Erzeugt HTML Code für ein Formularfeld, welches für einen Antibot-Schutz dienen oder vor CSFR Attacken schützen soll
     * Beschreibung zum NoPictureMode bitte der chk_antispam Funktion entnehmen
     *
     * @global array $allgAr
     * @param string $m Modulname
     * @param integer $t Type, der angibt wie das Formularfeld formatiert wird (0, 1 oder > 10 als Breite für das label) siehe Code :P
     * @param boolean $nopictures Erzwing NoPictureMode
     * @return string
     */
    function get_antispam($m, $t, $nopictures = false)
    {
        global $allgAr, $ILCH_BODYEND_ADDITIONS;
        static $addedJavascript = false;
    
        if ($addedJavascript === false) {
            $ILCH_BODYEND_ADDITIONS .= '<script type="text/javascript" src="include/includes/js/captcha.js"></script>' . "\n";
            $addedJavascript = true;
        }
    
        if (!$nopictures && $t < 0 || (is_numeric($allgAr['antispam']) && has_right($allgAr['antispam']))) {
            $nopictures = true;
        }
    
        $id = uniqid($m . '_', true);
    
        if ($nopictures) {
            $_SESSION['antispam'][$id] = true;
            return '<input type="hidden" name="antispam_id" value="' . $id . '" />';
        }
    
        include 'include/includes/captcha/settings.php';
    
        $helpText = 'Geben Sie diese Zeichen in das direkt daneben stehende Feld ein.';
        $seperator = ' ';
    
        if ($t == 0) {
            $seperator = '<br />';
            $helpText = 'Geben Sie diese Zeichen in das direkt darunter stehende Feld ein.';
        }
        $img = '<img width="' . $imagewidth . '" height="' . $imageheight . '" src="include/includes/captcha/captchaimg.php?id='
            . $id . '&nocache=' . time() . '" alt="captchaimg" title="' . $helpText . '" class="captchaImage">'
            . $seperator . '<input class="captcha_code" name="captcha_code" type="text" maxlength="5" size="8" title="Geben Sie die Zeichen aus dem Bild ein">'
            . '<input type="hidden" name="captcha_id" value="' . $id .  '" />';
            ;
    
        if ($t == 1) {
            $img = '<tr><td class="Cmite"><b>Antispam</b></td><td class="Cnorm">' . $img . '</td></tr>';
        } elseif ($t > 10) {
            $img = '<label style="float:left; width: ' . $t . 'px; ">Antispam</label>' . $img . '<br/>';
        }
        return $img;
    }
    
    // Funktion scandir für PHP 4
    if (version_compare(phpversion(), '5.0.0') == -1) {
        function scandir($dir)
        {
            $dh = opendir($dir);
            while (false !== ($filename = readdir($dh))) $files[] = $filename;
            sort($files);
            return $files;
        }
    }
    // Funktion array_fill_keys < PHP 5.2
    if (version_compare(phpversion(), '5.2.0') == -1) {
    	function array_fill_keys($target, $value = '') {
    		if(is_array($target)) {
    			foreach($target as $key => $val) {
    				$filledArray[$val] = is_array($value) ? $value[$key] : $value;
    			}
    		}
    		return $filledArray;
    	}
    }
    
    // Funktion, die die Größe aller Dateien im Ordner zusammenrechnet
    function dirsize($dir)
    {
        if (!is_dir($dir)) {
            return -1;
        }
        $size = 0;
        $files = array_slice(scandir($dir), 2);
        foreach ($files as $filenr => $file) {
            if (is_dir($dir . $file)) {
                $size += dirsize($dir . $file . '/');
            } else {
                $size += @filesize($dir . $file);
            }
        }
        return $size;
    }
    
    //Rechnet bytes in KB oder MB um
    function nicebytes($bytes){
        if ($bytes<1000000) {
            return round($bytes/1024,2).' KB';
        } else {
            return round($bytes/(1024*1024),2).' MB';
        }
    }
    
    ?>


    shoutbox.php (boxes):
    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
    
    defined ('main') or die ( 'no direct access' );
    
    //Smilies in der Textarea ausgeben
    function smilies ($string) {
     global $smilies_array;
      if (!isset($smilies_array)) {
        $smilies_array = array();
        $erg = db_query("SELECT ent, url, emo FROM `prefix_smiliesshb`");
    	  while ($row = db_fetch_object($erg) ) {
    		  $smilies_array[$row->ent] = $row->emo.'#@#-_-_-#@#'.$row->url;
    	  }
      }
      foreach ($smilies_array as $k => $v) {
        list($emo, $url) = explode('#@#-_-_-#@#', $v);
        $string = str_replace($k,'<img src="include/images/smiliesshb/'.$url.'" border="0" alt="'.$emo.'" title="'.$emo.'" />',$string);
      }
      return $string;
    }
    
    //Smilies in die Textarea übermitteln
    function smiliesshb () {
      global $lang;
      $zeilen = 5; $i = 0;
    	$b = '<script language="JavaScript" type="text/javascript">function moreSmiliesshoutbox () { var x = window.open("about:blank", "moreSmiliesshoutbox", "width=250,height=200,left=200,top=300,status=no,scrollbars=yes,resizable=yes"); ';
      $a = '';
      $erg = db_query('SELECT emo, ent, url FROM `prefix_smiliesshb`');
    	while ($row = db_fetch_object($erg) ) {
    
        $b .= 'x.document.write ("<a href=\"javascript:opener.put_shb(\''.addslashes(addslashes($row->ent)).'\')\">");';
        $b .= 'x.document.write ("<img style=\"border: 0px; padding: 5px;\" src=\"include/images/smiliesshb/'.$row->url.'\" title=\"'.$row->emo.'\"></a>");';
    
        if ($i<0) {
          # float einbauen
          if($i%$zeilen == 0 AND $i <> 0) { $a .= '<br /><br />'; }
          $a .= '<a href="javascript:put_shb(\''.addslashes($row->ent).'\')">';
          $a .= '<img style="margin: 2px;" src="include/images/smilesshb/'.$row->url.'" border="0" title="'.$row->emo.'"></a>';
        }
        $i++;
    	}
      $b .= ' x.document.write("<br /><br /><center><a href=\"javascript:window.close();\">'.$lang['close'].'</a></center>"); x.document.close(); }</script>';
      if ($i>0) { $a .= '<br /><center><a href="javascript:moreSmiliesshoutbox();">Smilies</a></center>'; }
      $a = $b.$a;
      return ($a);
    }
    
    // IP und Zeit ausgeben
      $shoutbox_VALUE_name2 = getenv("REMOTE_ADDR");
      $datum = date("j.n.Y");
      $zeit = date(" H:i ");
    
    //Avatar prüfen und ggf. anzeigen
      $abf = 'SELECT avatar FROM prefix_user WHERE name = "'.$_SESSION['authname'].'"';
      $erg = db_query($abf);
      $row = db_fetch_object($erg);
    
      if ($allgAr['sh_avatar'] == 1) {
       if (loggedin ())  {
        if (file_exists($row->avatar)) {
           $avatar = $row->avatar; // $row->avatar sollte den Pfad zum Bild enthalten
        } else {
           $avatar = 'include/images/avatars/noavatar.jpg';
        }
        } else {
        $avatar = 'include/images/avatars/gast.png';
        }
        $avatar = '<img src="'.$avatar.'" border="0" style="max-width:50px;" />'; 
        } else {
        $avatar = '';
        }
    
    //Nickname und Gast 
     if ( loggedin() ) {
        $shoutbox_VALUE_name = $_SESSION['authname'];
      } else {
        $shoutbox_VALUE_name = 'Gast';
      }
    
    //Shoutbox , Namenschutz 
      if (has_right($allgAr['sb_recht'])){
       if (!empty($_POST['shoutbox_submit']) AND chk_antispam ('shoutbox')) {
        $insert = true;
        if (!loggedin()) {
            $shoutbox_nickname = escape($_POST['shoutbox_nickname'], 'string');
            $shoutbox_nickname = substr($shoutbox_nickname, 0, 15);
            if (db_count_query("SELECT COUNT(*) FROM prefix_user WHERE name LIKE '%$shoutbox_nickname%'") > 0) {
                $insert = false;
                echo '<center><font color="#ff0000">Benutzen sie einen anderen Namen, dieser ist bereits vergeben.</font></center><br />';
            }
        } else {
            $shoutbox_nickname = escape($_SESSION['authname'], 'string');
        }
        $shoutbox_textarea = escape($_POST['shoutbox_textarea'], 'textarea');
        $shoutbox_textarea = preg_replace("/\[.?(url|b|i|u|img|code|quote)[^\]]*?\]/i", "", $shoutbox_textarea);
        $shoutbox_textarea = strip_tags($shoutbox_textarea);
        if (!empty($shoutbox_nickname) AND !empty($shoutbox_textarea) AND $insert) {
            db_query('INSERT INTO `prefix_shoutbox` (`nickname`,`textarea`,`time`) VALUES ( "' . $shoutbox_nickname . '" , "' . $shoutbox_textarea . '", ' . time() . ' ) ');
        }
    }
    ?>
    <script type="text/javascript">
    // S-Box-Smileys START
    function simple_insert_shb(aTag,eTag) {
    
      var input = document.forms['shoutbox'].elements['shoutbox_textarea'];
      input.focus();
      /* für Internet Explorer */
      if(typeof document.selection != 'undefined') {
        /* Einfügen des Formatierungscodes */
        var range = document.selection.createRange();
        var insText = range.text;
        range.text = aTag + insText + eTag;
        /* Anpassen der Cursorposition */
        range = document.selection.createRange();
        if (insText.length == 0) {
          range.move('character', -eTag.length);
        } else {
          range.moveStart('character', aTag.length + insText.length + eTag.length);
        }
        range.select();
      }
      /* für neuere auf Gecko basierende Browser */
      else if(typeof input.selectionStart != 'undefined')
      {
        /* Einfügen des Formatierungscodes */
        var start = input.selectionStart;
        var end = input.selectionEnd;
        var insText = input.value.substring(start, end);
        input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
        /* Anpassen der Cursorposition */
        var pos;
        if (insText.length == 0) {
          pos = start + aTag.length;
        } else {
          pos = start + aTag.length + insText.length + eTag.length;
        }
        input.selectionStart = pos;
        input.selectionEnd = pos;
      }
      /* für die übrigen Browser */
      else
      {
        /* Abfrage der Einfügeposition */
        var pos = input.value.length;
    
        /* Einfügen des Formatierungscodes */
        var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
        input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
      }
    }
    
    function  put_shb ( towrite ) {
     simple_insert_shb ( towrite, '' );
    
    }
    // S-Box-Smileys END
    </script>
    <?php
    echo '<link rel="stylesheet" href="include/boxes/shoutbox/shoutbox_style.css" type="text/css"/>';
        echo '<form action="index.php" method="POST" name="shoutbox">';
        echo '<table width="100%" cellpadding="2" cellspacing="1" border="0">
              ';
    
        echo '
              <tr><td align="center">'.$avatar.'<br />
                  <input type="text" size="15" name="shoutbox_nickname" value="'.$shoutbox_VALUE_name.'" onFocus="if (value == \''.$shoutbox_VALUE_name.'\') {value = \'\'}" onBlur="if (value == \'\') {value = \''.$shoutbox_VALUE_name.'\'}" maxlength="15">
                  <textarea style="width: 85%" cols="15" rows="4" name="shoutbox_textarea"></textarea>
                  '.smiliesshb ('shoutbox', 0).'</td></tr>
              ';
    
        echo '
              <tr><td align="center">'.get_antispam ('shoutbox', 0).' 
                  <input type="submit" value="'.$lang['formsub'].'" name="shoutbox_submit"></td></tr>
              </table><br/>';
    
        echo '</form>';
        } else { 
      //Gaeste
    echo '<link rel="stylesheet" href="include/boxes/shoutbox/shoutbox_style.css" type="text/css"/>';
        echo '<table width="100%"  cellpadding="2" cellspacing="1" border="0" class="shoutbox_oben">
              <tr><td style="font-size:11px; text-align:center;"><b>Zum Posten<br />Bitte Einloggen!<br /></b></td></tr>
              </table><br/>';
      } 
    
      echo '<table width="100%" cellpadding="0" cellspacing="0" border="0">';
      $erg = db_query('SELECT `prefix_shoutbox`.*, `prefix_user`.name, `prefix_user`.avatar FROM `prefix_shoutbox` LEFT JOIN `prefix_user` ON `prefix_user`.name =  `prefix_shoutbox`.nickname ORDER BY id DESC LIMIT ' . (is_numeric($allgAr['sb_limit'])?$allgAr['sb_limit']:5));
      $class = 'Cnorm';
      while ($row = db_fetch_object($erg)) { 
        // Avatar prüfen und ggf. anzeigen
        if ($allgAr['sh_avatar'] == 1) {
        if ($row->name)  {
        if (file_exists($row->avatar)) {
           $avatar = $row->avatar; // $row->avatar sollte den Pfad zum Bild enthalten
        } else {
           $avatar = 'include/images/avatars/wurstegal.jpg';
        }
        } else {
        $avatar = 'include/images/avatars/wurstegal_gast.jpg';
        }
        $avatar = '<img src="'.$avatar.'" class="avatar_box"/>'; 
        } else {
        $avatar = '';
        }
    	  $class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
             $time = is_null($row->time) ? '<br />' : ' '.date('d.m.y - H:i',$row->time).' Uhr';
    
        echo '<tr><td class="shoutboxuser">'.$row->nickname.'<br/><span class="time_sh_box" title="Eintrag von '.$row->nickname.' am '.$time.'">'.$time.'</span></td></tr>
    
    <tr><td class="shoutboxfeld">'.$avatar.''.smilies(preg_replace( '/([^\s]{'.$allgAr['sb_maxwordlength'].'})(?=[^\s])/', "$1\n", bbcode($row->textarea))).'</td></tr>
    <tr><td class="shoutboxend"></td></tr>
    <tr><td class="losse"></td></tr>';
      }
      echo '</table><span style="float:right;"><a class="archivbut_sh_box" href="index.php?shoutbox" title="Shoutbox Archiv anzeigen">'.$lang['archiv'].'</a></span>';
    
    ?>



    Frage an die Profis ist das so richtig und vertretbar?°°


    Zuletzt modifiziert von Bigboss079 am 13.04.2015 - 01:10:36
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Galle81 Mitglied
    Registriert seit
    02.10.2009
    Beiträge
    195
    Beitragswertungen
    8 Beitragspunkte
    Noch einmal im Detail.

    Wir haben in der allg.php den Smileycode ab Zeile 145 kopiert und den Code erneut (ab Zeile 174) darunter eingesetzt.

    allg.php (kopierte Änderung):
    ##
    ###
    ####
    ##### gibt die shoutbox smiley liste zurueck
    function getsmiliesshoutbox () {
      global $lang;
      $zeilen = 3; $i = 0;
        $b = '<script language="JavaScript" type="text/javascript">function moreSmiliesshoutbox () { var x = window.open("about:blank", "moreSmiliesshoutbox", "width=250,height=200,status=no,scrollbars=yes,resizable=yes"); ';
      $a = '';
      $erg = db_query('SELECT emo, ent, url FROM `prefix_smilies`');
        while ($row = db_fetch_object($erg) ) {
     
        $b .= 'x.document.write ("<a href=\"javascript:opener.put(\''.addslashes(addslashes($row->ent)).'\')\">");';
        $b .= 'x.document.write ("<img style=\"border: 0px; padding: 5px;\" src=\"include/images/smiliesshb/'.$row->url.'\" title=\"'.$row->emo.'\"></a>");';
     
        if ($i<12) {
          # float einbauen
          if($i%$zeilen == 0 AND $i <> 0) { $a .= '<br /><br />'; }
          $a .= '<a href="javascript:put(\''.addslashes($row->ent).'\')">';
          $a .= '<img style="margin: 2px;" src="include/images/smiliesshb/'.$row->url.'" border="0" title="'.$row->emo.'"></a>';
        }
        $i++;
        }
      $b .= ' x.document.write("<br /><br /><center><a href=\"javascript:window.close();\">'.$lang['close'].'</a></center>"); x.document.close(); }</script>';
      if ($i>12) { $a .= '<br /><br /><center><a href="javascript:moreSmiliesshoutbox();">'.$lang['more'].'</a></center>'; }
      $a = $b.$a;
      return ($a);
    }

    Dort haben wir alles wo das Wort smilies enthalten war in smiliesshoutbox geändert und die Pfade entsprechend zu der Shoutbox angepasst.


    Änderungen an der shoutbox.php.

    Zeile 28:
    $b = '<script language="JavaScript" type="text/javascript">function moreSmilies () { var x = window.open("about:blank", "moreSmilies", "width=400,height=400,left=300,top=300,status=no,scrollbars=yes,resizable=yes"); ';
      $a = '';


    geändert in dieses:
     $b = '<script language="JavaScript" type="text/javascript">function moreSmiliesshoutbox () { var x = window.open("about:blank", "moreSmiliesshoutbox", "width=250,height=200,left=200,top=300,status=no,scrollbars=yes,resizable=yes"); ';


    Zeile 45:
    if ($i>0) { $a .= '<a class="button_dark" href="javascript:moreSmilies();" title="Smilies &ouml;ffnen">&nbsp;<i class="fa fa-smile-o fa-3x"></i>&nbsp;Smilies&nbsp;</a>'; }


    geändert in dieses:
    if ($i>0) { $a .= '<br /><center><a href="javascript:moreSmiliesshoutbox();">Smilies</a></center>'; }


    Ob dieser Weg nun genau der richtige ist, kann ich leider nicht sagen, da meine Kenntnisse auf diesem Gebiet eher Mau sind.
    Das umbenennen der Smilies bringt leider nichts, da sich immer das selbe Popup Fenster mit den Smilies öffnet, sobald man diese Shoutbox installiert hat.
    Dies kann man auch prüfen in dem man z.B. im Forum auf "mehr Smilies" klickt und sich die image url eines Smiley genauer anschaut.
    Fehler: (.../include/images/smiliesshb/....gif)
    Richtig müsste der Pfad so aussehen: (.../include/images/smilies/....gif)

    Ich hoffe, dass jemand der etwas mehr Erfahrung hat als ich sich die Codes noch einmal anschaut und sein OK oder Änderungen einbringen kann, um dieses Problem erfolgreich zu lösen.
    Da sehr viele Ilch User diese Shoutbox nutzen. lächeln

    Mfg, Galle


    Zuletzt modifiziert von Galle81 am 13.04.2015 - 14:38:21
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Alles im gesamten zwar schön und gut aber ehrlich gesagt zuviel arbeit, wieso nicht einfach den DB prefix geändert auf die standart smiley tabelle und die ganzen smileys von dort nutzen?
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Bigboss079 Mitglied
    Registriert seit
    03.04.2015
    Beiträge
    13
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von Nex4T
    Alles im gesamten zwar schön und gut aber ehrlich gesagt zuviel arbeit, wieso nicht einfach den DB prefix geändert auf die standart smiley tabelle und die ganzen smileys von dort nutzen?


    um erlich zusein an die DB traue ich mich nicht dran ^^ schockiert grumml


    Zuletzt modifiziert von Bigboss079 am 13.04.2015 - 13:47:24
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Galle81 Mitglied
    Registriert seit
    02.10.2009
    Beiträge
    195
    Beitragswertungen
    8 Beitragspunkte
    ZitatZitat geschrieben von Nex4T
    Alles im gesamten zwar schön und gut aber ehrlich gesagt zuviel arbeit, wieso nicht einfach den DB prefix geändert auf die standart smiley tabelle und die ganzen smileys von dort nutzen?


    Weil es denn wieder zu den genannten Problemen kommen würde.
    So kann das Script NICHT die Shoutbox von den anderen Dingen wo auch eine Smiley Funktion vorhanden ist auseinander halten.

    Oder irre ich mich da?

    Die Shoutbox muss ja auch installiert werden und in der Datenbank ist nach dem install der Shoutbox auch eine Tabelle mit den Smiley's vorhanden, die man im Adminmenü unter Module verwaltet.

    Wie gesagt, für Verbesserungs/Lösungsvorschläge bin ich immer offen. lächeln


    Zuletzt modifiziert von Galle81 am 13.04.2015 - 13:58:04
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Wie gesagt wenn du die Box auf die DB von den standart smileys umschreibst greift diese nur noch auf eine DB zurück somit kann dieses Problem nicht auftreten! Achja man müsste halt noch den pfad/pfäde ändern zu den smileys. Um es mal grob auf den Punkt zu bringen dieses Modul wurde eig. nur 1:1 kopiert von den standart smileys damit die Shoutboc eigene Smileys hat was in meinen Augen total sinnlos ist da man alles über eine DB laufen lassen könnte.


    Zuletzt modifiziert von Nex4T am 13.04.2015 - 14:27:13
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Galle81 Mitglied
    Registriert seit
    02.10.2009
    Beiträge
    195
    Beitragswertungen
    8 Beitragspunkte
    Was müsste ich denn tun, wie in Deinem Beispiel beschrieben?
    Reicht es aus, wenn ich folgende Zeilen in der shoutbox.php ändere?
    Bitte Idiotensicher beschreiben lachen

    EDIT: ich glaube es reich schon aus, wenn man nur in der shoutbox. php folgende Zeilen ändert:

    Zeile 28:
    $b = '<script language="JavaScript" type="text/javascript">function moreSmilies () { var x = window.open("about:blank", "moreSmilies", "width=400,height=400,left=300,top=300,status=no,scrollbars=yes,resizable=yes"); ';

    in:
    $b = '<script language="JavaScript" type="text/javascript">function moreSmiliesshb () { var x = window.open("about:blank", "moreSmilies", "width=400,height=400,left=300,top=300,status=no,scrollbars=yes,resizable=yes"); ';


    Zeile 45:
    if ($i>0) { $a .= '<a href="javascript:moreSmilies();" title="Smilies &ouml;ffnen">Smilies</a>'; }

    in:
    if ($i>0) { $a .= '<a href="javascript:moreSmiliesshb();" title="Smilies &ouml;ffnen">Smilies</a>'; }


    Mfg, Galle


    Zuletzt modifiziert von Galle81 am 13.04.2015 - 22:03:54
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Eig. verstehe ich nicht wieso du die Javascript datein änderst? Dort ist nicht ein Prefix angegeben poste doch mal den gesamten code bitte
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Galle81 Mitglied
    Registriert seit
    02.10.2009
    Beiträge
    195
    Beitragswertungen
    8 Beitragspunkte
    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
    defined ('main') or die ( 'no direct access' );
    
    // Smilies in der Textarea ausgeben
    function smilies ($string) {
    	global $smilies_array;
    	if (!isset($smilies_array)) {
    		$smilies_array = array();
    		$erg = db_query("SELECT `ent`, `url`, `emo` FROM `prefix_smiliesshb`");
    		while ($row = db_fetch_object($erg) ) {
    			$smilies_array[$row->ent] = $row->emo . '#@#-_-_-#@#' . $row->url;
    		}
    	}
    	foreach ($smilies_array as $k => $v) {
    		list($emo, $url) = explode('#@#-_-_-#@#', $v);
    		$string = str_replace($k,'<img src="include/images/smiliesshb/' . $url . '" border="0" alt="' . $emo . '" title="' . $emo . '" />', $string);
    	}
    	return $string;
    }
    
    // Smilies in die Textarea übermitteln
    function smiliesshb () {
    	global $lang;
    	$zeilen = 5;
    	$i = 0;
    	$b = '<script language="JavaScript" type="text/javascript">function moreSmilies () { var x = window.open("about:blank", "moreSmilies", "width=250,height=200,left=200,top=300,status=no,scrollbars=yes,resizable=yes"); ';
    	$a = '';
    	$erg = db_query('SELECT `emo`, `ent`, `url` FROM `prefix_smiliesshb`');
    	while ($row = db_fetch_object($erg) ) {
    		$b .= 'x.document.write ("<a href=\"javascript:opener.put_shb(\'' . addslashes(addslashes($row->ent)) . '\')\">");';
    		$b .= 'x.document.write ("<img style=\"border: 0px; padding: 5px;\" src=\"include/images/smiliesshb/' . $row->url . '\" title=\"' . $row->emo . '\"></a>");';
    		if ($i<0) {
    			# float einbauen
    			if($i%$zeilen == 0 AND $i <> 0) { $a .= '<br /><br />'; }
    			$a .= '<a href="javascript:put_shb(\''.addslashes($row->ent).'\')">';
    			$a .= '<img style="margin: 2px;" src="include/images/smilesshb/' . $row->url . '" border="0" title="' . $row->emo . '"></a>';
    		}
    		$i++;
    	}
    	$b .= ' x.document.write("<br /><br /><center><a href=\"javascript:window.close();\">' . $lang['close'] . '</a></center>"); x.document.close(); }</script>';
    	if ($i>0) {
    		$a .= '<br /><center><a href="javascript:moreSmilies();">Smilies</a></center>';
    	}
    	$a = $b.$a;
    	return ($a);
    }
    
    // IP und Zeit ausgeben
    $shoutbox_VALUE_name2 = getenv("REMOTE_ADDR");
    $datum = date("j.n.Y");
    $zeit = date(" H:i ");
    
    // Avatar prüfen und ggf. anzeigen
    $abf = 'SELECT `avatar` FROM `prefix_user` WHERE `name` = "' . $_SESSION['authname'] . '"';
    $erg = db_query($abf);
    $row = db_fetch_object($erg);
    if ($allgAr['sh_avatar'] == 1) {
    	if (loggedin ()) {
    		if (file_exists($row->avatar)) {
    			$avatar = $row->avatar; // $row->avatar sollte den Pfad zum Bild enthalten
    		} else {
    			$avatar = 'include/images/avatars/noavatar.jpg';
    		}
    	} else {
    		$avatar = 'include/images/avatars/gast.png';
    	}
    	$avatar = '<img src="' . $avatar . '" border="0" width="50" height="63"/>'; 
    } else {
    	$avatar = '';
    }
    
    // Nickname und Gast 
    if ( loggedin() ) {
    	$shoutbox_VALUE_name = $_SESSION['authname'];
    } else {
    	$shoutbox_VALUE_name = 'Gast';
    }
    
    // Shoutbox, Namenschutz 
    if (has_right($allgAr['sb_recht'])) {
    	if (!empty($_POST['shoutbox_submit']) AND chk_antispam ('shoutbox')) {
    		$insert = true;
    		if (!loggedin()) {
    			$shoutbox_nickname = escape($_POST['shoutbox_nickname'], 'string');
    			$shoutbox_nickname = substr($shoutbox_nickname, 0, 15);
    			if (db_count_query("SELECT COUNT(*) FROM `prefix_user` WHERE `name` LIKE '%$shoutbox_nickname%'") > 0) {
    				$insert = false;
    				echo '<center><span color="#ff0000">Benutzen sie einen anderen Namen, dieser ist bereits vergeben.</span></center><br />';
    			}
    		} else {
    			$shoutbox_nickname = escape($_SESSION['authname'], 'string');
    		}
    		$shoutbox_textarea = escape($_POST['shoutbox_textarea'], 'textarea');
    		$shoutbox_textarea = preg_replace("/\[.?(url|b|i|u|img|code|quote)[^\]]*?\]/i", "", $shoutbox_textarea);
    		$shoutbox_textarea = strip_tags($shoutbox_textarea);
    		if (!empty($shoutbox_nickname) AND !empty($shoutbox_textarea) AND $insert) {
    			db_query('INSERT INTO `prefix_shoutbox` (`nickname`, `textarea`, `time`) VALUES ( "' . $shoutbox_nickname . '" , "' . $shoutbox_textarea . '", ' . time() . ' ) ');
    		}
    	}
    ?>
    <script type="text/javascript">
    // S-Box-Smileys START
    function simple_insert_shb(aTag,eTag) {
    	var input = document.forms['shoutbox'].elements['shoutbox_textarea'];
    	input.focus();
    	/* für Internet Explorer */
    	if(typeof document.selection != 'undefined') {
    		/* Einfügen des Formatierungscodes */
    		var range = document.selection.createRange();
    		var insText = range.text;
    		range.text = aTag + insText + eTag;
    		/* Anpassen der Cursorposition */
    		range = document.selection.createRange();
    		if (insText.length == 0) {
    			range.move('character', -eTag.length);
    		} else {
    			range.moveStart('character', aTag.length + insText.length + eTag.length);
    		}
    		range.select();
    	}
    	/* für neuere auf Gecko basierende Browser */
    	else if(typeof input.selectionStart != 'undefined') {
    		/* Einfügen des Formatierungscodes */
    		var start = input.selectionStart;
    		var end = input.selectionEnd;
    		var insText = input.value.substring(start, end);
    		input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
    		/* Anpassen der Cursorposition */
    		var pos;
    		if (insText.length == 0) {
    			pos = start + aTag.length;
    		} else {
    			pos = start + aTag.length + insText.length + eTag.length;
    		}
    		input.selectionStart = pos;
    		input.selectionEnd = pos;
    	}
    	/* für die übrigen Browser */
    	else {
    		/* Abfrage der Einfügeposition */
    		var pos = input.value.length;
    		/* Einfügen des Formatierungscodes */
    		var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
    		input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
    	}
    }
    function put_shb ( towrite ) {
    	simple_insert_shb ( towrite, '' );
    }
    // S-Box-Smileys END
    </script>
    <?php
    
        echo '<form action="index.php" method="POST" name="shoutbox">';
        echo '<table width="90%" class="border" cellpadding="2" cellspacing="1" border="0"><tr><td style="font-size:11px; text-align:center;">Heute ist der ' . $datum . ' <br />um ' . $zeit . ' Uhr<br />Deine IP:<b> ' . $shoutbox_VALUE_name2 . '</b></td></tr></table>';
        echo '<table width="90%" class="border" cellpadding="2" cellspacing="1" border="0"><tr><td align="center">' . $avatar . '<br /><input type="text" size="15" name="shoutbox_nickname" value="' . $shoutbox_VALUE_name . '" onFocus="if (value == \'' . $shoutbox_VALUE_name . '\') {value = \'\'}" onBlur="if (value == \'\') {value = \'' . $shoutbox_VALUE_name . '\'}" maxlength="15"><textarea style="width: 85%" cols="15" rows="4" name="shoutbox_textarea"></textarea>' . smiliesshb('shoutbox', 0) . '</td></tr></table>';
        echo '<table width="90%" class="border" cellpadding="2" cellspacing="1" border="0"><tr><td align="center">' . get_antispam ('shoutbox', 0).'<input type="submit" value="' . $lang['formsub'] . '" name="shoutbox_submit"></td></tr></table>';
        echo '</form>';
    } else { 
    // Gaeste
        echo '<table width="90%" class="border" cellpadding="2" cellspacing="1" border="0"><tr><td style="font-size:11px; text-align:center;"><b>Zum Posten<br />Bitte Einloggen!<br /></b>Deine IP: ' . $shoutbox_VALUE_name2 . '</td></tr></table>';
    } 
    
    echo '<table width="90%" class="border" cellpadding="2" cellspacing="1" border="0">';
    $erg = db_query('SELECT `prefix_shoutbox`.*, `prefix_user`.`name`, `prefix_user`.`avatar` FROM `prefix_shoutbox` LEFT JOIN `prefix_user` ON `prefix_user`.name = `prefix_shoutbox`.nickname ORDER BY `id` DESC LIMIT ' . (is_numeric($allgAr['sb_limit'])?$allgAr['sb_limit']:5));
    $class = 'Cnorm';
    while ($row = db_fetch_object($erg)) {
    	// Avatar pruefen und ggf. anzeigen
    	if ($allgAr['sh_avatar'] == 1) {
    		if ($row->name) {
    			if (file_exists($row->avatar)) {
    				$avatar = $row->avatar; // $row->avatar sollte den Pfad zum Bild enthalten
    			} else {
    				$avatar = 'include/images/avatars/noavatar.jpg';
    			}
    		} else {
    			$avatar = 'include/images/avatars/gast.png';
    		}
    		$avatar = '<img src="' . $avatar . '" border="0" width="50" height="63"/>'; 
    	} else {
    		$avatar = '';
    	}
    	$class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
    	$time = is_null($row->time) ? '<br />' : '<br /><em style="font-size:0.9em;">' . date('d.m.y - H:i',$row->time).' Uhr</em><br />';
    	echo '<tr class="' . $class . '"><td><div style="float:left; width:40%;">' . $avatar . '</div><div style="float:left; text-align:left; width:60%;"><b>' . $row->nickname . ': ' . $time . '</b></div></td></tr><tr class="' . $class . '"><td>' . smilies( bbcode( preg_replace( '/([^\s]{' . $allgAr['sb_maxwordlength'] . '})(?=[^\s])/', "$1\n", $row->textarea) ) ) . '</td></tr>';
    }
    echo '</table><a class="box" href="index.php?shoutbox">' . $lang['archiv'] . '</a>';
    ?>
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    z.b das
       $erg = db_query("SELECT `ent`, `url`, `emo` FROM `prefix_smiliesshb`");


    oder das

        $string = str_replace($k,'<img src="include/images/smiliesshb/' . $url . '" border="0" alt="' . $emo . '" title="' . $emo . '" />', $string);
        }


    Den img pfad und die Tabellen ändern von der db das dieses modul auf das standart smiley modul zurückgreift
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Galle81 Mitglied
    Registriert seit
    02.10.2009
    Beiträge
    195
    Beitragswertungen
    8 Beitragspunkte
    Und woher soll das Script denn wissen, wo man die Smilies schreibt?
    Sprich z.B. in die Shoutbox oder ins Gästebuch.
    Denn vor der Änderung wurde ja immer das selbe Popup Fenster geöffnet und wenn man z.B. als angemeldeter User im Gästebuch war und dort auf mehr Smilies geklickt hatte, wurden die Smilies ja immer in die Shoutbox eingetragen, statt ins Gästebuch.

    Wenn ich jetzt dies auf das normale Smiley Popup Fenster ändere, entsteht doch eigentlich wieder der selbe Fehler, außer das die img Pfade anders sind oder irre ich mich?
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Wie woher soll es das wissen? Der Fehler tritt nur auf weil Smileys doppelt vorhanden sind und deswegen sage ich dir bevor ich mir das so komplizizert mache ändere ich einfach nur die Abfrage der Smileys das, dass standart Smileys script und die Modifizierte box nur noch auf eine Tabelle zurückgreifen?
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    Galle81 Mitglied
    Registriert seit
    02.10.2009
    Beiträge
    195
    Beitragswertungen
    8 Beitragspunkte
    Hi,

    ich habe es jetzt in folgenden Zeilen geändert:
    Zeile 11:
    $erg = db_query("SELECT `ent`, `url`, `emo` FROM `prefix_smilies`");


    Zeile 18:
    $string = str_replace($k,'<img src="include/images/smiles/' . $url . '" border="0" alt="' . $emo . '" title="' . $emo . '" />', $string);


    Zeile 30:
    $erg = db_query('SELECT `emo`, `ent`, `url` FROM `prefix_smiliesshb`');


    Es jetzt werden zwar die normalen Smilies angezeigt, allerdings entsteht so wieder das Problem, wenn ich z.B. im Gbook auf Smilies klicke und eins hinzufügen möchte, dass es statt im Gbook in die Shoutbox geschrieben wird.

    PS: mit den geänderten Javascript Dateien kam ich durch die Shoutbox Bubbles, siehe hier:
    <?php
    $ILCH_HEADER_ADDITIONS .= '
    <style type="text/css">
    <!--
    /* Bubble with an isoceles triangle
    ------------------------------------------ */
    .example-right {
    	position:relative;
    	padding:5px 5px;
    	margin:0;
    	color:#fff;
    	background:#5a8f00; /* default background for browsers without gradient support */
    	
    	/* css3 */
    	-moz-border-radius:10px;
    	-webkit-border-radius:10px;
    	border-radius:10px;
    	/* NOTE: webkit gradient implementation is not as per spec */
    	background:-webkit-gradient(linear, left top, left bottom, from(#b8db29), to(#5a8f00));
    	background:-moz-linear-gradient(top, #b8db29, #5a8f00);
    	background:-o-linear-gradient(top, #b8db29, #5a8f00);
    	background:linear-gradient(top, #b8db29, #5a8f00);
    }
    /* display of quote author (alternatively use a class on the element following the blockquote) */
    .example-right + p {margin:5px 0 2em 40px; font-style:italic;}
    /* creates the triangle */
    .example-right:after {
    	content:"\00a0";
    	display:block; /* reduce the damage in FF3.0 */
    	position:absolute;
    	bottom:-30px;
    	left:10px;
    	width:0;
    	height:0;
    	border-width:0 20px 30px 0px;
    	border-style:solid;
    	border-color:transparent #5a8f00;
    }
    -->
    </style>
    <script language="JavaScript" type="text/javascript">
    <!--
    function klapp(div) { with(document.getElementById(div).style) { if(display=="none"){ display="inline"; } else { display="none"; }}}
    //-->
    <!--
    function simple_insert_sb(aTag,eTag) { var input = document.forms[\'shoutbox\'].elements[\'shoutbox_textarea\']; input.focus(); if(typeof document.selection != \'undefined\') { var range = document.selection.createRange(); var insText = range.text; range.text = aTag + insText + eTag;
    range = document.selection.createRange(); if (insText.length == 0) { range.move(\'character\', -eTag.length); } else { range.moveStart(\'character\', aTag.length + insText.length + eTag.length); } range.select(); } else if(typeof input.selectionStart != \'undefined\') { var start = input.selectionStart; var end = input.selectionEnd; var insText = input.value.substring(start, end); input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end); var pos; if (insText.length == 0) { pos = start + aTag.length; } else { pos = start + aTag.length + insText.length + eTag.length; } input.selectionStart = pos; input.selectionEnd = pos; }else{ var pos = input.value.length; var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:"); input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos); }}
    //-->
    <!--
    function insert_sb ( towrite ) { simple_insert_sb ( towrite, \'\' ); }
    //-->
    </script>
    ';
    function getsmilies_sb() {
      global $lang;
      $zeilen = 5; $i = 0;
    	$b = '<script language="JavaScript" type="text/javascript">function moreSmilies_sb() { var x = window.open("about:blank", "moreSmilies", "width=250,height=200,status=no,scrollbars=yes,resizable=yes"); ';
      $a = '';
      $erg = db_query('SELECT emo, ent, url FROM `prefix_smilies`');
    	while ($row = db_fetch_object($erg) ) {
        $b .= 'x.document.write ("<a href=\"javascript:opener.insert_sb(\''.addslashes(addslashes($row->ent)).'\')\">");';
        $b .= 'x.document.write ("<img style=\"border: 0px; padding: 5px;\" src=\"include/images/smiles/'.$row->url.'\" title=\"'.$row->emo.'\"></a>");';
        if ($i<10) {
          # float einbauen
          if($i%$zeilen == 0 AND $i <> 0) { $a .= '<br /><br />'; }
          $a .= '<a href="javascript:insert_sb(\''.addslashes($row->ent).'\')">';
          $a .= '<img style="margin: 2px;" src="include/images/smiles/'.$row->url.'" border="0" title="'.$row->emo.'"></a>';
        }
        $i++;
    	}
      $b .= ' x.document.write("<br /><br /><center><a href=\"javascript:window.close();\">'.$lang['close'].'</a></center>"); x.document.close(); }</script>';
      if ($i>10) { $a .= '<br /><br /><center><a href="javascript:moreSmilies_sb();">'.$lang['more'].'</a></center>'; }
      $a = $b.$a;
      return ($a);
    }
    
    // Copyright by Manuel
    // Support www.ilch.de
    defined ('main') or die ('no direct access');
    
    $datum=date("j.n.Y");
    $zeit=date(" H:i ");
    
    if (loggedin()) {
        $shoutbox_VALUE_name = $_SESSION['authname'];
    } else {
        $shoutbox_VALUE_name = 'Nickname';
    }
    if (has_right($allgAr['sb_recht'])) {
        if (!empty($_POST['shoutbox_submit']) AND chk_antispam ('shoutbox')) {
            $shoutbox_nickname = escape($_POST['shoutbox_nickname'], 'string');
            $shoutbox_nickname = substr($shoutbox_nickname, 0, 15);
            $shoutbox_textarea = escape($_POST['shoutbox_textarea'], 'textarea');
            $shoutbox_textarea = preg_replace("/\[.?(url|b|i|u|img|code|quote)[^\]]*?\]/i", "", $shoutbox_textarea);
            $shoutbox_textarea = strip_tags($shoutbox_textarea);
            if (!empty($shoutbox_nickname) AND !empty($shoutbox_textarea)) {
                db_query('INSERT INTO `prefix_shoutbox` (`nickname`,`textarea`) VALUES ( "' . $shoutbox_nickname . '" , "' . $shoutbox_textarea . '" ) ');
            }
        }
        echo '<form action="index.php?' . $menu->get_complete() . '" method="POST" name="shoutbox">';
        echo '<input type="text" style="width: 95%" name="shoutbox_nickname" value="' . $shoutbox_VALUE_name . '" onFocus="if (value == \'' . $shoutbox_VALUE_name . '\') {value = \'\'}" onBlur="if (value == \'\') {value = \'' . $shoutbox_VALUE_name . '\'}" maxlength="15">';
        echo '<textarea style="width: 95%;overflow:auto;" rows="2" name="shoutbox_textarea"></textarea>';
        $antispam = get_antispam ('shoutbox', 0);
    	echo $antispam;
    	if (!empty($antispam)) {
    		echo '<br />';
    	}
        echo '<input type="submit" value="' . $lang['formsub'] . '" name="shoutbox_submit">';
    	echo '&nbsp;&nbsp;&nbsp;<a class="smalfont" href="javascript:void(0)" onfocus="if (this.blur) this.blur()" onclick="javascript:klapp(\'smile\')">Smilies</a>';
        echo '<div id="smile" style="display:none;"><br /><br /><center>'.getsmilies_sb().'</center></div></form><br />';
    }
    $erg = db_query('SELECT * FROM `prefix_shoutbox` ORDER BY id DESC LIMIT ' . (is_numeric($allgAr['sb_limit'])?$allgAr['sb_limit']:5));
    $class = 'Cnorm';
    while ($row = db_fetch_object($erg)) {
        $class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite');
        echo '<blockquote class="example-right"><p>' . preg_replace('/([^\s]{' . $allgAr['sb_maxwordlength'] . '})(?=[^\s])/', "$1\n", bbcode($row->textarea)) . '</p></blockquote>
    			<p><b>' . $row->nickname . ':</b><br />'.$datum.'|'.$zeit.'</p>
    ';
    }
    echo '<a class="box" href="index.php?shoutbox">' . $lang['archiv'] . '</a>';
    
    ?>


    Mfg, Galle


    Zuletzt modifiziert von Galle81 am 15.04.2015 - 14:36:50
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Galle81 Mitglied
    Registriert seit
    02.10.2009
    Beiträge
    195
    Beitragswertungen
    8 Beitragspunkte
    Hi,

    hier wäre noch einmal meine Lösung zu den Problem mit dieser Shoutbox und der Modifizierten Shoutbox von Maretz.
    Falls man die Standard Smilies in der Shoutbox abrufen möchte, müssen folgende Zeilen in der shoutbox.php (include/boxes) in folgendes geändert werden.

    Zeile 11:
    $erg = db_query("SELECT ent, url, emo FROM `prefix_smilies`");


    Zeile 18:
    $string = str_replace($k,'<img src="include/images/smiles/'.$url.'" border="0" alt="'.$emo.'" title="'.$emo.'" />',$string);


    Zeile 28:
    $b = '<script language="JavaScript" type="text/javascript">function moreSmiliesshb () { var x = window.open("about:blank", "moreSmilies", "width=250,height=200,left=200,top=300,status=no,scrollbars=yes,resizable=yes"); ';


    Zeile 30:
    $erg = db_query('SELECT emo, ent, url FROM `prefix_smilies`');


    Zeile 33:
    $b .= 'x.document.write ("<img style=\"border: 0px; padding: 5px;\" src=\"include/images/smiles/'.$row->url.'\" title=\"'.$row->emo.'\"></a>");';


    Zeile 39:
    $a .= '<img style="margin: 2px;" src="include/images/smiles/'.$row->url.'" border="0" title="'.$row->emo.'"></a>';


    Zeile 44:
    $a .= '<br /><center><a href="javascript:moreSmiliesshb();">Smilies</a></center>';

    Bedenkt dabei das jetzt nur die Smilies abgrufen werden, die Ihr im "Adminmenü -> Smilies" eingetragen habt.

    Falls man jedoch die Smilies weiter verwenden möchte, die man im "Adminmenü -> Module -> Shoutbox Smilies" verwendet, reicht es aus wenn man 2 Zeilen in der shoutbox.php (include/boxes) in folgendes ändert.

    Zeile 28:
    $b = '<script language="JavaScript" type="text/javascript">function moreSmiliesshb () { var x = window.open("about:blank", "moreSmilies", "width=250,height=200,left=200,top=300,status=no,scrollbars=yes,resizable=yes"); ';


    Zeile 44:
    $a .= '<br /><center><a href="javascript:moreSmiliesshb ();">Smilies</a></center>';


    Mfg, Galle


    Zuletzt modifiziert von Galle81 am 15.04.2015 - 15:35:57
    1 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Die Datenbankeinträge für die Shoutbox machst du im Adminbereich... es würde vollkommen ausreichen, wenn du jedes Smiley über den Adminbereich anlegst und jedem Smiley einen eigenen Code sowie eine eigene Beschreibung zuweist - dann kommt es auch zu keinen Ausgabefehlern (für das Standart-CMS).

    Maretz hat bisher gute Module und Modifikationen für Ilch gebracht und er wird sich da schon was bei gedacht haben, wenn er eine eigene Shoutbox-Smiley-Tabelle entworfen hat - so sinnlos sollte diese also nicht sein.
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    Galle81 Mitglied
    Registriert seit
    02.10.2009
    Beiträge
    195
    Beitragswertungen
    8 Beitragspunkte
    ZitatZitat geschrieben von CeeJay
    Die Datenbankeinträge für die Shoutbox machst du im Adminbereich... es würde vollkommen ausreichen, wenn du jedes Smiley über den Adminbereich anlegst und jedem Smiley einen eigenen Code sowie eine eigene Beschreibung zuweist - dann kommt es auch zu keinen Ausgabefehlern (für das Standart-CMS).

    Meinst du nicht das es einfacher und vor allem schneller wäre, die paar Dinge in meinem über dir genannten post durchzuführen, statt alle Smileys zu ändern?
    Wie bereits oben erwähnt, wenn man die Shoutbox-Smiley-Tabelle nutzen möchte, brauch man nur 2 Zeilen leicht abändern, damit sich nicht das selbe Popup Fenster öffnet.
    Was eigentlich auch Sinn und Zweck ist, wenn man die Smileys getrennt haben möchte.



    ZitatZitat geschrieben von CeeJay
    Maretz hat bisher gute Module und Modifikationen für Ilch gebracht und er wird sich da schon was bei gedacht haben, wenn er eine eigene Shoutbox-Smiley-Tabelle entworfen hat - so sinnlos sollte diese also nicht sein.

    Du scheinst vergessen zu haben, dass dieses Modul von Puni stammt und nicht von Maretz.
    Maretz bietet bei sich nur die Modifikation an, sprich mit einem anderen Style.
    An dem Script/Abfragen selber wurde nichts geändert.

    Mfg, Galle
    1 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten