Ankündigung

Einklappen
Keine Ankündigung bisher.

Smiley aus Datenbank

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Smiley aus Datenbank

    Ich speichere Smileys mit Id, Code durch den er erstetz werden soll und dem pfad zum smiley in einer datenbank. was muss ich im quelltext schreiben um das wie mit javascript über "setsmiley blablabla" in der textarea mit der id "text" einfügen zu lassen? also das soll die aus der datenbank auswerten... könnt ihr mir weiterhelfen? also alles mit replace etc...


  • #2
    Also nochmal?

    Du hast:
    • - ID
      - Pfad
      - "Replace String"

    ... in der DB.

    Jetzt hast du eine TEXTAREA (id="text"), in welcher du die Smilis per Klick einfügen willst.
    Soll das einfügen funktionieren mit oder ohne Seite neu laden funktionieren?

    Mit wäre möglich mit PHP, aber je nachdem aufwendig.
    Ohne wäre mit einem JavaScript o. ä. möglich.

    Und zusätzlich willst du noch den replace-Code der den "Replace String" in HTML (mit entsprechenden Smilis) umwandelt?
    Soll das bei jedem anzeigen neu umgewandelt werden?
    oder nur 1x nach der Eingabe?

    Verstehe ich das so in etwa richtig?

    Kommentar


    • #3
      JO. Also ob neu laden oder nicht ist egal. ich kenne das mit javascript und nicht anders. ist aber auch egal wenns rein mit php geht. es sollte dann auch immer umgewandelt werden.

      Kommentar


      • #4
        Der Beitrag wurde verschoben, wegen...
        ... unverständlicher Rechtschreibung/Grammatik.
        ... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

        Bemerkung:
        Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21515

        moved to PHP - Anfänger
        mod = master of disaster

        Kommentar


        • #5
          Hier Zeile im HTML um das Smili einzufügen:
          Im gleichen File (Header):
          Code:
          <script language="JavaScript">
          function setSmile(symbol) {
          	document.formName.text.value =
          	document.formName.text.value + symbol;
          	document.formName.text.focus();
          }
          </script>
          Das Textfeld auch in diesem File:

          Code:
          <form action="save.php" method="post" name="formName">
          ...
          <textarea name="text"></textarea>
          ...
          </form>
          Dann im Ausgabescript:

          Code:
          ...
          function returnImgTag($path, $smiliName) {
          	return "<img src=\"".$path.$smiliName."\" border=\"0\">";
          }
          ...
          $outputContent = str_replace(":)", returnImgTag($path, "smile.gif"), $outputContent );
          ...
          Dann musst du nur noch die Schlaufen einbauen und voila...

          PS: Ist nicht gerade eine Delux Version aber sollte funktionieren...

          Kommentar


          • #6
            das weiss ich auch. aber wie kann ich das machen ohne jetzt 20 mal [img]smilis/smile.gif[/img]
            [img]smilis/smile2.gif[/img]

            im text einzugeben? ich mache mir grade ein cms und da möchte ich die smileys in einer datenbank speichern. wenn sie darin gespeichert sind, sollten sie da eingefügt werden. dass ich halt nicht immer im quellcode rummachen muss...

            Kommentar


            • #7
              Aus der Datenbank auslesen und z.B in eine Array speichern und dann mit einer Schlaufe mögliche Smilies ersetzen:

              Code:
                 foreach($allSmilies as $thisSmilie) {
                    $outputContent = str_replace($thisSmilie["replaceString"], returnImgTag($thisSmilie["path"], $thisSmilie["fileName"]), $outputContent);
                 }
              Die Array würde dann etwa so aussehen
              Code:
                 $allSmilies = array(1 => array("replaceString" => ":)", "path" => "smilies/", "fileName" => "smilie.gif"), 2 => array("replaceString" => ";)", "path" => "smilies/", "fileName" => "smilie2.gif"));

              Kommentar


              • #8
                irgendwie kapier ich grade garnüschts mehr. ich poste einfach ma den code, dann kann das ja jemand ma einsetzen =)


                Code:
                 <form action="<?echo $url?>do=add&action=save" method="post">
                                     <table width="95%" align="center">
                                     <tr>
                                      <td>Autor:</td>
                                      <td><?echo $usr;?></td>
                                     </tr>
                                     <tr>
                                      <td>Kategorie:</td>
                                      <td>
                                       <select name="f_cat">
                                       <?
                                       $q_cat = mysql_query("SELECT catid,catname FROM ".$n."news_cat");
                                       while($cat = mysql_fetch_array($q_cat))
                                       {
                                            echo '<option value="'.$cat['catid'].'">'.$cat['catname'];
                                       }
                                       ?>
                                       </select>
                                      </td>
                                     </tr>
                                     <tr>
                                      <td>Betreff:</td>
                                      <td><input type="text" name="f_subject" size="36"></td>
                                     </tr>
                					 <tr>
                                      <td></td>
                                      <td>
                					  
                <input type="button" onClick="setBold()" value="Fett">
                <script language="JavaScript">
                function setBold()
                {
                var a;
                a = window.prompt('Bitte den Text, der fett dargestellt werden soll unten hinschreiben','');
                document.getElementById("utext").value = document.getElementById("utext").value + "" + a + "";
                }
                </script>
                
                <input type="button" onClick="setItalic()" value="Kursiv">
                <script language="JavaScript">
                function setItalic()
                {
                var a;
                a = window.prompt('Bitte den Text, der Kursiv dargestellt werden soll unten hinschreiben','');
                document.getElementById("utext").value = document.getElementById("utext").value + "" + a + "";
                }
                </script>
                
                <input type="button" onClick="setUnderlined()" value="Unterstrichen">
                <script language="JavaScript">
                function setUnderlined()
                {
                var a;
                a = window.prompt('Bitte den Text, der unterstrichen werden soll unten hinschreiben','');
                document.getElementById("utext").value = document.getElementById("utext").value + "<u>" + a + "</u>";
                }
                </script>
                
                
                </td>
                                     </tr>
                                     <tr>
                                      <td>Inhalt:</td>
                                      <td><textarea name="f_text" cols="35" rows="5" id="utext"></textarea></td>
                                     </tr>
                                     <tr>
                                      <td></td>
                                      <td><input type="submit" value="News eintragen >>" accesskey="s"></td>
                                     </tr>
                                     </table>
                                    </form>

                da wirds eingetragen und da wirds ausgegeben:
                Code:
                <?
                include 'config.php';
                mysql_connect($sqlhostname,$sqlusername,$sqlpassword);
                mysql_select_db($sqldatabase);
                
                // Settings einlesen
                $settings = mysql_query("SELECT * FROM ".$n."news_settings");
                while($zeile = mysql_fetch_array($settings))
                {
                     $config[$zeile[0]] = $zeile[1];
                }
                ereg('\?',$news) ? $url = $news.'&' : $url = $news.'?';
                // Settings einlesen Ende
                
                
                // Datums-Funktion
                function makedate( $datum )
                         {
                           global $config;
                           return date($config[date],$datum);
                         }
                
                // Replace-Funktion
                function replace( $text )
                         {
                           global $config;
                           $text = preg_replace('#\[quote\](.*)\[\/quote\]#','<font color="' . $config[replacecolor] . '">\\1</font>',$text);
                           return $text;
                         }
                
                // Template-Funktion
                function gettemplate( $template, $nobr = 0)
                         {
                           $template = str_replace('"','\"',implode('',file($template)));
                           return $template;
                         }
                
                // Newsschreib-Funktion
                function writenews( $news )
                         {
                           global $config,$n,$url,$imgpath,$do;
                           $zeit = makedate($news[newstime]);
                           $text = nl2br(stripslashes($news[newstext]));
                           $betreff = stripslashes($news[newssubject]);
                           $kategoriename = stripslashes($news[catname]);
                           $kategoriebild = '[img]'.$imgpath.'/'.$news[catimage].'[/img]';
                
                           // show more
                           if( $config[more_funktion] == 1 && $do != 'view')
                           {
                                $newtext = substr($text,0,$config[more_letter]);
                                $more = str_replace('{link}',str_replace('{more}',$config[more_word],'{more}'),$config[more_construx]);
                                if(strlen($text) > $config[more_letter]){$text = $newtext.$more;}
                           }
                
                           // comments
                           if( $config[comment_funktion] == 1 )
                           {
                                $replies = mysql_fetch_array(mysql_query("SELECT count(commentid) FROM ".$n."news_comment WHERE newsid = '$news[newsid]'"));
                                $replies = $replies[0];
                                $comment_temp = $config[comment_construx];
                                $comment_temp = str_replace("{num}",$replies,$comment_temp);
                                $kommentar = '' . $comment_temp . '';
                           }
                
                           // related links
                           if( $news[newsurl] && substr_count($news[newsurl],'|~|') < 1 )
                           {
                                $links = '
                &bull;' . $news[newslink] . '';
                           }
                           else
                           {
                                $a_link = explode("|~|",$news[newslink]);
                                $a_url  = explode("|~|",$news[newsurl]);
                
                                if( count($a_url) > 1 )
                                {
                                     for( $i = 0 ; $i < count($a_url) ; $i++ )
                                     {
                                          empty($a_link[$i]) ? $link = $a_url[$i] : $link = $a_link[$i];
                                          $links .= '
                &bull;' . $link . '';
                                     }
                                }
                           }
                
                           $a_user = mysql_fetch_array(mysql_query("SELECT useremail,username FROM ".$n."member WHERE userid = '$news[userid]'"));
                           $autor = '' . $a_user[username] . '';
                
                           $text = makesmilies($text);
                           $text = replace($text);
                           eval("\$newsmain=\"".gettemplate("templates/news.html")."\";");
                           return $newsmain;
                         }
                
                // - - Funktionen, die keine Header brauchen - - //
                if( $do == "lastnews" )
                {
                     $news = mysql_fetch_array(mysql_query("SELECT newsid,newssubject FROM ".$n."news ORDER BY newsid DESC LIMIT 1"));
                     $subject = $news[newssubject];
                     $link = '[mehr]';
                     eval("\$construx=\"".gettemplate("templates/lastnews.html")."\";");
                     echo 'document.write(\'' . $construx . '\');';
                     exit;
                }
                
                @eval("?>".$config[header]."<?");
                switch( $do )
                {
                 case 'view':
                
                      // show original news
                      $news = mysql_fetch_array(mysql_query("SELECT news.newsid,news.newstext,news.newssubject,news.userid,news.newstime,news.newsurl,news.newslink,cat.catname,cat.catimage FROM ".$n."news news INNER JOIN ".$n."news_cat cat ON news.catid = cat.catid WHERE news.newsid = '$newsid'"));
                      echo writenews($news);
                
                      // show comment
                      if( $config[comment_funktion] == 1 )
                      {
                           $q_comment = mysql_query("SELECT commentuser,commentemail,commenttext,commenttime FROM ".$n."news_comment WHERE newsid='$newsid'");
                           while($comment = mysql_fetch_array($q_comment))
                           {
                                empty($comment['commentemail']) ? $autor = stripslashes($comment['commentuser']) : $autor = ''.stripslashes($comment['commentuser']).'';
                                $text = nl2br(htmlspecialchars(stripslashes($comment['commenttext'])));
                                $zeit = makedate($comment['commenttime']);
                                $a_text = explode(" ", $text);
                                unset($text);
                                for($i = 0 ; $i < count($a_text) ; $i++)
                                {
                                     if(strlen($a_text[$i]) >= $config['umbruch']){$a_text[$i] = wordwrap($a_text[$i], $config['umbruch'],'<i style="font-size: 0.1px;"> [/i]',1);}
                                     $text .= $a_text[$i]." ";
                                }
                                unset($a_text);
                                $text = makesmilies($text);
                                eval("\$comment=\"".gettemplate("templates/comment.html",1)."\";");
                                echo $comment;
                           }
                      }
                
                      echo '
                <center>[ Zur&uuml;ck zu den News ]</center>';
                
                      if( $config[comment_funktion] == 1 )
                      {
                      ?>
                        
                
                        
                        <form action="<?echo $url?>do=comment" method="post" name="comment">
                        <input type="hidden" name="f_newsid" value="<?echo $newsid?>">
                        <table align="center">
                        <tr>
                         <td>Name:</td>
                         <td><input type="text" name="f_user" size="36" maxlength="30"></td>
                        </tr>
                        <tr>
                         <td>Mail:</td>
                         <td><input type="text" name="f_email" size="36" maxlength="50"></td>
                        </tr>
                        <tr>
                         <td>Kommentar:</td>
                         <td><textarea name="f_text" cols="30" rows="5"></textarea></td></td>
                        </tr>
                        <tr>
                         <td></td>
                         <td><input type="submit" value="Posten" accesskey="s"></td>
                        </tr>
                        </table>
                        </form>
                      <?
                      }
                      break;
                 case 'comment':
                      // - - Comment insert beginn - - //
                      if( $config[comment_funktion] == 1 )
                      {
                           $fehler = array();
                           if( empty($f_user) )
                           {
                                $fehler[] = 'Du hasst vergessen deinen Namen einzugeben!';
                           }
                           if( empty($f_text) )
                           {
                                $fehler[] = 'Du hasst vergessen einen Text einzugeben!';
                           }
                           if( count($fehler) > 0 )
                           {
                                echo 'Folgende Fehler sind aufgetreten:
                
                ';
                                for( $i = 0 ; $i < count($fehler) ; $i++ )
                                {
                                     echo '- '.$fehler[$i].'
                ';
                                }
                                echo '
                &raquo; zur&uuml;ck';
                           }
                           else
                           {
                                mysql_query("INSERT INTO ".$n."news_comment(newsid,commentuser,commentemail,commenttext,commenttime,commentip,commentbrowser)
                                             VALUES('$f_newsid','" . addslashes($f_user) . "','$f_email','" . addslashes($f_text) . "','" . time() ."','$REMOTE_ADDR','$HTTP_USER_AGENT')");
                                echo '<center>Kommentar hinzugef&uuml;gt
                
                
                                      Zum Kommentar
                Zu den News</center>';
                           }
                      }
                      else
                      {
                           echo '<center>Kommentare sind deaktiviert!</center>';
                      }
                      break;
                 case 'archiv':
                      // - - Archiv beginn - - //
                      if( empty($s) )
                      {
                           $s = 0;
                      }
                
                      $q_news = mysql_query("SELECT newsid,newssubject,newstime FROM ".$n."news ORDER BY newsid DESC LIMIT $s, 40");
                
                      echo '<table cellspacing="0" cellpadding="2" width="95%" align="center"><tr><td><u>Newsarchiv</u></td></tr>';
                      while( $news = mysql_fetch_array($q_news) )
                      {
                           strlen($news['newssubject']) > 30 ? $subject = substr($news['newssubject'],0,30).'...' : $subject = $news['newssubject'];
                           echo '<tr><td>'.$subject.'</td><td align="right">'.makedate($news['newstime']).'</td></tr>';
                      }
                      echo '</table>';
                
                
                      $forward = $s - 40;
                      $back = $s + 40;
                      $s > 0 ? $s_back = '&lt; Vorherige Seite' : $s_back = '';
                      $num > ($config[nps] + $s) ? $s_forward ='N&auml;chste Seite &gt;' : $s_forward = '';
                      echo '<center>'.$s_back.' | News | '.$s_forward.'</center>';
                      break;
                 default:
                      // - - News beginn - - //
                      if( empty($s) )
                      {
                           $s = 0;
                      }
                      isset($cat) ?
                       $query = "SELECT news.newsid,news.newstext,news.newssubject,news.userid,news.newstime,news.newsurl,news.newslink,cat.catname,cat.catimage FROM ".$n."news news INNER JOIN ".$n."news_cat cat ON news.catid = cat.catid WHERE news.catid = '$cat' ORDER BY news.newsid DESC LIMIT $s,$config[nps]" :
                       $query = "SELECT news.newsid,news.newstext,news.newssubject,news.userid,news.newstime,news.newsurl,news.newslink,cat.catname,cat.catimage FROM ".$n."news news INNER JOIN ".$n."news_cat cat ON news.catid = cat.catid ORDER BY news.newsid DESC LIMIT $s,$config[nps]";
                      $q_news = mysql_query($query);
                
                      $num = mysql_fetch_array(mysql_query("SELECT count(newsid) FROM ".$n."news"));
                      $num = $num[0];
                
                      if($num > 0)
                      {
                           echo '<table width="100%" cellpadding="0" cellpspacing="0"><tr><td>Insgesamt gepostete News: '.$num.'</td><td>Kategorien: <select onChange="location.href=this.value"><option>Wähle Kategorie:';
                           $q_cat = mysql_query("SELECT catid,catname FROM ".$n."news_cat");
                
                           while( $category = mysql_fetch_array($q_cat) )
                           {
                                echo '<option value="'.$url.'cat='.$category['catid'].'">'.$category['catname'];
                           }
                           echo '</select></td></tr></table>
                ';
                
                           // News schreiben
                           while( $news = mysql_fetch_array($q_news) )
                           {
                              echo writenews($news);
                           }
                
                           // Footer
                           isset($cat) ? $catstring = 'cat='.$cat.'&' : $catstring = '';
                           $forward = $s - $config[nps];
                           $back = $s + $config[nps];
                           $s > 0 ? $s_back = '&lt; Vorherige Seite' : $s_back = '';
                           $num > ($config[nps] + $s) ? $s_forward ='N&auml;chste Seite &gt;' : $s_forward = '';
                           echo '<center>'.$s_back.' | '.$s_forward.'</center>';
                      }
                      else
                      {
                           echo 'Keine News gepostet!';
                      }
                }
                @eval("?>".$config['footer']."<?");
                ?>

                die smiley sind mit smilieid, smiliecode und smiliescr gespeichert. dann schon mal danke im vorraus

                Kommentar


                • #9
                  Hallo? Kann mir ma bitte jemand helfen. wäre gut wenn ich das bis mittwoch richtig hätte...

                  Kommentar


                  • #10
                    haaaaaaaaaaaaaaaallllllllloooooooooooooooooooooooo oooooooo... bitte helft mir!!! =)

                    Kommentar


                    • #11
                      Wenn du schon so clever warst eine MySQL Tabelle mit sinnvollen Spalten zu erstellen, sollte doch der Rest kein Problem sein. Dein Quelltext ist mir ehrlich gesagt zu lang zum durchforsten.

                      Hol dir doch aus der DB den Inhalt als 2 Arrays (in einem die Codes, im anderen den Pfad)

                      Z.B.
                      PHP-Code:
                      $sel "SELECT CONCAT('<img src=\"', imgSrc, '\">') AS imgTag, replaceCode FROM codeTable";
                      $res mysql_query($sel);
                      $imgTags = array();
                      $codes = array();
                      while (
                      $current mysql_fetch_assoc($res)) {
                        
                      $codes[] = $current['replaceCode'];
                        
                      $imgTags[] = $current['imgTag'];
                      }
                      $text2 str_replace($codes$imgTags$text1); 
                      In der Variablen $text1 sollte dein Text mit den Smiley-Codes stehen (:grins:, :lach:, ..) und in $text2 sollten jetzt all diese Codes ersetzt sein durch die <img>-Tags, sofern sie in der Datenbank stehen sollten.

                      Getestet ist das ganze nicht.

                      Kommentar


                      • #12
                        werde es versuchen... =)

                        Kommentar


                        • #13
                          Forumregeln!

                          Kommentar

                          Lädt...
                          X