ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Shputbox mit Smilies

Geschlossen
  1. #1
    User Pic
    xXschippi88Xx Mitglied
    Registriert seit
    14.12.2013
    Beiträge
    181
    Beitragswertungen
    3 Beitragspunkte
    Moinsen zwinker


    ich hab da mal eine bescheidene Frage. Und zwar habsch mir diese Shoutbox aufgespielt + die Anpassungen von Maretz + einige andere Features. Da ich die Smilies, die Standartmäßig schon installiert werden von Ilch gelöscht habe ( da nur die Smilies aus der Shoutbox genutzt werden sollen ) werden nun leider keine Smilies mehr im Forum, bei privaten Nachrichten und wenn man bei News einen Kommentar setzen will, angezeigt.

    Habe in den Forum und PM Dateien mal nachgeschaut und dabei diesen Befehl ( <td class="Cmite" rowspan="2" valign="top">{SMILIES}</td> oder <td class="Cmite" valign="top" rowspan="2">{SMILIES}</td> ) in den Dateien newpost.htm, newtopic.htm, postedit.htm und in der new.htm gefunden, der ja definieren soll, dass die Smilies angezeigt werden. Wie kann ich das nun eigentlich ändern, dass die Smilies aus der Shoutbox nun auch wieder im Foum, im PM-Bereich angezeigt werden? Hatte schon bissl herumgespielt gehabt, brachte aber keinen Erfolg.

    Freu mich über eine Antwort von Euch.



    Grüße


    xXschippi88Xx


    verwendete ilch Version: 1.1 P

    betroffene Homepage: soehne-wotans.de
    Hmm... Soll ich heute trinken?
    Oder soll ich heute UND morgen trinken?
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    mic_pt Mitglied
    Registriert seit
    03.01.2008
    Beiträge
    319
    Beitragswertungen
    19 Beitragspunkte
    Als ich vermute mal das die Smilies aus der Shoutbox extra (eigene tabelle) verwaltet werden und somit nicht zu den "normalen" Smilies aus Ilch gehören.

    Am einfachsten wäre es die Smilies aus der Shoubox in Ilch im Adminmenü einzupflegen .. ansonsten könnte man schauen das alle auf einen "Smiliespool" in der DB zugreifen.

    Also Smilies am besten in "include/images/smiles/" hochkopieren, dann im admin menu "neue Smilies einfügen" ausführen.

    Dann hast du dieselben Smilies in Ilch sowie in der SB.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    xXschippi88Xx Mitglied
    Registriert seit
    14.12.2013
    Beiträge
    181
    Beitragswertungen
    3 Beitragspunkte
    Schon alles ausprobiert gehabt. Wenn ich die Smilies sowohl in dem Smilies-Bereich im Admin Abteil, als auch in dem Modul mit gleicher Zeichensetzung einpflege, dann gibts da allerdings Probleme, siehe Screenshot´s:

    Normal, wo der Smile nur in der o.g. Shoutbox drin ist:

    gesperrtes Bild


    Mit doppelter Zeichensetzung ( also in Smilies und Shoutbox Smilies )

    gesperrtes Bild


    Zuletzt modifiziert von xXschippi88Xx am 24.03.2015 - 12:55:59
    Hmm... Soll ich heute trinken?
    Oder soll ich heute UND morgen trinken?
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Post mal deine Shoutbox, und evtl. schon in der db nachgeschaut?


    Zuletzt modifiziert von Nex4T am 24.03.2015 - 13:32:39
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    xXschippi88Xx Mitglied
    Registriert seit
    14.12.2013
    Beiträge
    181
    Beitragswertungen
    3 Beitragspunkte
    Hier ist die geforderte Shoutbox.php.

    <?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" 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("/\[.?(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" class="shoutbox_oben">
              <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>
              ';
    
        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><br>
                  '.getBBCodeButtons_shoutbox().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>Deine IP: '.$shoutbox_VALUE_name2.'</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(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>';
    
    ?>


    Inwiefern meintest Du das mit der DB? So wie es mic_pt schon mal schrieb? Hab das leider noch nicht gemacht, da ich bei den Datenbank Sachen immer noch etwas vorsichtiger heran gehe.


    Zuletzt modifiziert von xXschippi88Xx am 25.03.2015 - 11:21:45
    Hmm... Soll ich heute trinken?
    Oder soll ich heute UND morgen trinken?
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    xXschippi88Xx Mitglied
    Registriert seit
    14.12.2013
    Beiträge
    181
    Beitragswertungen
    3 Beitragspunkte
    Hast Du nen Tipp Nex4T woran es noch liegen kann?
    Hmm... Soll ich heute trinken?
    Oder soll ich heute UND morgen trinken?
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Tut mir leid habe nicht gemerkt das du hier drauf geantwortet hattest :/ was ich mit DB meine, jeder Smiley wird in der DB gespeichert damit er später in der shoutbox/Forum etc.. aufrufbar ist, meine vermutung lag darin das dieses stück an code was mit dem Smiley mit raus gespuckt wird in der db so gespeichert ist. Wenn du möchtest können wir im Ts darüber quatschen und uns das zusammen anschauen bzw. eine lösung zu deinem problem finden.
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    xXschippi88Xx Mitglied
    Registriert seit
    14.12.2013
    Beiträge
    181
    Beitragswertungen
    3 Beitragspunkte
    joa na Klar, dass können wa sehr gerne machen zwinker
    Sag mir ne Zeit, dann erschein ich bei Ilch im TS zwinker
    Hmm... Soll ich heute trinken?
    Oder soll ich heute UND morgen trinken?
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Wenn ihr eine Lösung findet könnt ihr sie ja auch hier Posten.

    Ich glaub es gab auch schon mal ein Thema darüber da wurden die Smiley Backend glaub falsch eingebunden mit / oder " was den Code dann ja unterbricht bin mir da gerade aber nicht sicher
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    xXschippi88Xx Mitglied
    Registriert seit
    14.12.2013
    Beiträge
    181
    Beitragswertungen
    3 Beitragspunkte
    Klar doch, Lösung wird dann gepostet zwinker
    Hmm... Soll ich heute trinken?
    Oder soll ich heute UND morgen trinken?
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    xXschippi88Xx Mitglied
    Registriert seit
    14.12.2013
    Beiträge
    181
    Beitragswertungen
    3 Beitragspunkte
    So, die Lösung des ganzen war und ist doch recht simpel. Da die Smilies aus dem Adminbereich und aus dem Modul der Shoutbox Smilies genutzt werden, gibt es dann sowohl in der Datenbank, als auch in der Shoutbox dann diese Anzeigefehler.

    Beheben kann man das ganze, indem man sich für eine der beiden Smilie Varianten entscheidet, ansonsten werden die Smilies immer doppelt ausgegeben^^

    Falls ich mich zu undeutich ausgedrückt habe, kann ja der liebe Nex nochmal einen kleinen Text schreiben zwinker
    Auch geht mein Dank an Corian zwinker

    Seid die Besten Heavy Metal
    Hmm... Soll ich heute trinken?
    Oder soll ich heute UND morgen trinken?
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    437
    Beitragswertungen
    20 Beitragspunkte
    So ich habe das gleiche Problem, verstehe aber die Lösung nicht.
    wie kann ich nun dem shoutbos mit sm,ilies sagen das ich die aus dem adminbereich will...

    also die smilies
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten