Nicht verwendete Smilies Mod-Anfrage
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Nicht verwendete Smilies Mod-Anfrage
Hallo Leute,
gibts unter Phpbb 3 nen Mod mit dem man die nicht verwendeten Smilies auswählen und später löschen kann?
Wenn nicht, habt Ihr nen Ansatz wie man sowas umsetzen könnte?
LG
Robin
gibts unter Phpbb 3 nen Mod mit dem man die nicht verwendeten Smilies auswählen und später löschen kann?
Wenn nicht, habt Ihr nen Ansatz wie man sowas umsetzen könnte?
LG
Robin
wie kann man dort denn die nichtverwendeten Smilies auswählen? Wenn ich nen Smilie lösche ist dem egal ob der schon in nem Beitrag verwendet wird oder nicht
Wenns da ne Selektionsmöglichkeit geben würde wäre das genial und wenns nur nen Flag ist der Anzeigt das das Smilie im Gebrauch ist...
Sollte es sowas nicht geben, würd mich nen Mod-Ansatz dazu schon interessieren.

Sollte es sowas nicht geben, würd mich nen Mod-Ansatz dazu schon interessieren.
- djchrisnet
- Mitglied
- Beiträge: 1275
- Registriert: 29.06.2007 15:52
- Wohnort: Elmshorn
- Kontaktdaten:
Theoretisch kann man natürlich die smiley kürzel : - ) usw... in den Datenbank suchen und die ergebnisse als $row ausgeben...... wie gesagt klappen kann das schon
ohne gewähr
Code: Alles auswählen
$sql = "SELECT COUNT(*)
FROM `phpbb_posts`
WHERE (post_text LIKE '%" .$row['smileys_code']. "%')";
ohne gewähr
- djchrisnet
- Mitglied
- Beiträge: 1275
- Registriert: 29.06.2007 15:52
- Wohnort: Elmshorn
- Kontaktdaten:
die normale suchfunktion tut doch auch nichts anderes als alles zu durchsuchen. ich sehe da keine probleme
EDIT: wenn ich in phpmyadmin unter SQL genau folgenden Code eingebe, erhalte ich eine Zahl 30 zurück. Anscheind funktioniert es wirklich.
EDIT: wenn ich in phpmyadmin unter SQL genau folgenden Code eingebe, erhalte ich eine Zahl 30 zurück. Anscheind funktioniert es wirklich.
Code: Alles auswählen
SELECT COUNT( * )
FROM `phpbb_posts`
WHERE (
post_text LIKE "%:D%"
)
Hab mal was hingesch***en, wers ausprobiert sollte die Tabellen entsprechend anpassen, löschen kommt später
Script zeigt den Smiliecode an und die Anzahl:

Code: Alles auswählen
<?php
$mysqlhost="localhost";
$mysqluser="root";
$mysqlpwd="root";
$mysqldb="forum";
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
// wer viel Zeit hat:
$sql = "SELECT * FROM phpbb3_smilies";
// wer schnell testen will:
//$sql = "SELECT * FROM phpbb3_smilies limit 10";
$smilies = mysql_query($sql) or die("Anfrage nicht erfolgreich");
while ($smile = mysql_fetch_array($smilies)){
echo "Anzahl: ". holeAnzahlVorhandeSmileys($smile['code']) . " Smilie: ". $smile['code'] . "<br>";
}
function holeAnzahlVorhandeSmileys($smilie){
$sql = "SELECT COUNT(*) as Anzahl FROM phpbb3_posts WHERE (post_text LIKE '%" . $smilie . "%')";
$count = mysql_query($sql);
$anzahl = mysql_fetch_row($count);
return $anzahl[0];
}
?>
nun mit Löschen
hier das Teil nochmal mit Löschen, bei vielen Smilies und vielen Beiträgen dauerts allerdings ewig, aber ne schönere Lösung hab ich derzeit nicht
Wers braucht kann sie Icons noch ausgeben einfach auskommentieren, Tabelle anpassen nicht vergessen
Wers braucht kann sie Icons noch ausgeben einfach auskommentieren, Tabelle anpassen nicht vergessen

Code: Alles auswählen
<?php
$mysqlhost="localhost";
$mysqluser="root";
$mysqlpwd="";
$mysqldb="forum";
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
// wer viel Zeit hat:
$sql = "SELECT * FROM phpbb3_smilies";
// wer schnell testen will:
//$sql = "SELECT * FROM phpbb3_smilies limit 10";
$smilies = mysql_query($sql) or die("Anfrage nicht erfolgreich");
while ($smile = mysql_fetch_array($smilies)){
$anzahl = holeAnzahlVorhandeSmileys($smile['code']);
//echo "Anzahl: ". $anzahl . " Smilie: ". $smile['code'] . "<br>";
if ($anzahl == 0) {
echo "Geloescht: ".$smile['smiley_id']."<br>";
delete($smile['smiley_id']);
}
}
function holeAnzahlVorhandeSmileys($smilie){
$sql = "SELECT COUNT(*) as Anzahl FROM phpbb3_posts WHERE (post_text LIKE '%" . $smilie . "%')";
$count = mysql_query($sql);
$anzahl = mysql_fetch_row($count);
return $anzahl[0];
}
function delete($id){
$sql = "DELETE FROM phpbb3_smilies WHERE smiley_id =" . $id;
$ergebnis = mysql_query($sql);
return $ergebnis;
}
?>