Nicht verwendete Smilies Mod-Anfrage

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
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.
Antworten
Dragonito
Mitglied
Beiträge: 10
Registriert: 20.05.2004 21:02

Nicht verwendete Smilies Mod-Anfrage

Beitrag von Dragonito »

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
Benutzeravatar
darkon
Mitglied
Beiträge: 1133
Registriert: 08.08.2003 15:07
Wohnort: Wölfersheim

Beitrag von darkon »

Wozu brauchst du da einen Mod?

Das kann man doch schon bequem im ACP machen.
Dragonito
Mitglied
Beiträge: 10
Registriert: 20.05.2004 21:02

Beitrag von Dragonito »

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.
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

Beitrag von djchrisnet »

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

Code: Alles auswählen

$sql = "SELECT COUNT(*)
	FROM `phpbb_posts`	
	WHERE (post_text LIKE '%" .$row['smileys_code']. "%')";

ohne gewähr
Dragonito
Mitglied
Beiträge: 10
Registriert: 20.05.2004 21:02

Beitrag von Dragonito »

an sowas dachte ich auch schon, aber die kompletten Post-Texte durchgehen ist schon heftig *g* könnte was länger dauern. Ich Prog das nachher mal extern um zu gucken obs überhaupt was bringt.
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

Beitrag von djchrisnet »

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.

Code: Alles auswählen

SELECT COUNT( * )
FROM `phpbb_posts`
WHERE (
post_text LIKE "%:D%"
)
Dragonito
Mitglied
Beiträge: 10
Registriert: 20.05.2004 21:02

Beitrag von Dragonito »

jo, klappt prima, ich versuch da mal was zu basteln :-) werds hier dann reinposten
Dragonito
Mitglied
Beiträge: 10
Registriert: 20.05.2004 21:02

Beitrag von Dragonito »

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];
}

?>
Dragonito
Mitglied
Beiträge: 10
Registriert: 20.05.2004 21:02

nun mit Löschen

Beitrag von Dragonito »

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 :-)

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;
}

?>
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“