Ankündigung
Einklappen
Keine Ankündigung bisher.
Smiley aus Datenbank
Einklappen
Neue Werbung 2019
Einklappen
X
-
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...Stichworte: -
-
Ein Gast antworteteForumregeln!
-
Ein Gast antwortetewerde es versuchen... =)
Einen Kommentar schreiben:
-
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);
Getestet ist das ganze nicht.
Einen Kommentar schreiben:
-
Ein Gast antwortetehaaaaaaaaaaaaaaaallllllllloooooooooooooooooooooooo oooooooo... bitte helft mir!!! =)
Einen Kommentar schreiben:
-
Ein Gast antworteteHallo? Kann mir ma bitte jemand helfen. wäre gut wenn ich das bis mittwoch richtig hätte...
Einen Kommentar schreiben:
-
Ein Gast antworteteirgendwie 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 = ' •' . $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 .= ' •' . $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ü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 ' » zurü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ü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 = '< Vorherige Seite' : $s_back = ''; $num > ($config[nps] + $s) ? $s_forward ='Nächste Seite >' : $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 = '< Vorherige Seite' : $s_back = ''; $num > ($config[nps] + $s) ? $s_forward ='Nächste Seite >' : $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
Einen Kommentar schreiben:
-
Ein Gast antworteteAus 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); }
Code:$allSmilies = array(1 => array("replaceString" => ":)", "path" => "smilies/", "fileName" => "smilie.gif"), 2 => array("replaceString" => ";)", "path" => "smilies/", "fileName" => "smilie2.gif"));
Einen Kommentar schreiben:
-
Ein Gast antwortetedas 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...
Einen Kommentar schreiben:
-
Ein Gast antworteteHier 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>
Code:<form action="save.php" method="post" name="formName"> ... <textarea name="text"></textarea> ... </form>
Code:... function returnImgTag($path, $smiliName) { return "<img src=\"".$path.$smiliName."\" border=\"0\">"; } ... $outputContent = str_replace(":)", returnImgTag($path, "smile.gif"), $outputContent ); ...
PS: Ist nicht gerade eine Delux Version aber sollte funktionieren...
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
Ein Gast antworteteJO. 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.
Einen Kommentar schreiben:
-
Ein Gast antworteteAlso 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?
Einen Kommentar schreiben:
- - ID
Einen Kommentar schreiben: