Mini Ostereier-Such-Mod
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Mini Ostereier-Such-Mod
Hallo zusammen,
ich will gern folgendes Umsetzen und finde das wäre doch eine nette Idee für Ostern.
In den BBCode soll ein neuer Tag (weiß nur der Admin) eingeführt werden namens [Osterei].
Dieser wird dann im Beitrag automatisch als eine Grafik angezeigt!
--> Wie und wo muss dieser Code in die bbcode.php rein?
Zweitens müssen jetzt die "Eier" im Forum versteckt werden. Dies würde ich am liebsten wie folgt machen. Ein SQL Befehl der eine bestimmte Anzahl an Eiern in sämtlichen bereits geposteten Beiträgen immer am Ende einfügt.
--> Wie kann man per Zufall 100 Eier ( [Osterei] ) in 30.000 Posts per SQL immer am Ende einpflanzen?
Finde diese Idee ganz nett und glaube auch dass die Umsetzung sehr einfach ist?!
Viele Grüße Martin
PS: Den Befehl um nach Ostern weider alle [Osterei] zu löschen sollte man auch überlegen.
ich will gern folgendes Umsetzen und finde das wäre doch eine nette Idee für Ostern.
In den BBCode soll ein neuer Tag (weiß nur der Admin) eingeführt werden namens [Osterei].
Dieser wird dann im Beitrag automatisch als eine Grafik angezeigt!
--> Wie und wo muss dieser Code in die bbcode.php rein?
Zweitens müssen jetzt die "Eier" im Forum versteckt werden. Dies würde ich am liebsten wie folgt machen. Ein SQL Befehl der eine bestimmte Anzahl an Eiern in sämtlichen bereits geposteten Beiträgen immer am Ende einfügt.
--> Wie kann man per Zufall 100 Eier ( [Osterei] ) in 30.000 Posts per SQL immer am Ende einpflanzen?
Finde diese Idee ganz nett und glaube auch dass die Umsetzung sehr einfach ist?!
Viele Grüße Martin
PS: Den Befehl um nach Ostern weider alle [Osterei] zu löschen sollte man auch überlegen.
Hallo zusammen,
Teil 1 hab ich gelöst. Zwar nicht mega toll aber es geht. Leider können auf diese Art wie ich es gelöst hab keine Admin etc mitspielen, da sie nach dem Fund eines Ostereis einfach auf "editieren" klicken können und so den BBcode-befehl sehen. Und dann über die Suche alle Eier finden.
Datei include/bbcode.php:
Danach folgendes einfügen:
---
Nun fehlt nurnoch der SQL Befehl um 100 Eier in den Beiträgen zu verteilen. Hat jemand dafür einen Vorschlag?
Viele grüße Maxe
Teil 1 hab ich gelöst. Zwar nicht mega toll aber es geht. Leider können auf diese Art wie ich es gelöst hab keine Admin etc mitspielen, da sie nach dem Fund eines Ostereis einfach auf "editieren" klicken können und so den BBcode-befehl sehen. Und dann über die Suche alle Eier finden.
Datei include/bbcode.php:
Code: Alles auswählen
// [i] and [/i] for italicizing text.
$text = str_replace("[i:$uid]", $bbcode_tpl['i_open'], $text);
$text = str_replace("[/i:$uid]", $bbcode_tpl['i_close'], $text);
Code: Alles auswählen
$text = str_replace("[ostereiernest]", '<img src="images/osterei.jpg">', $text);
Nun fehlt nurnoch der SQL Befehl um 100 Eier in den Beiträgen zu verteilen. Hat jemand dafür einen Vorschlag?
Viele grüße Maxe
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Zufall ist immer etwas blöd, denn "wirklichen" Zufall gibt's beim PC nicht...
Mögliche Vorgehensweise:
Mögliche Vorgehensweise:
- Höchste Post-ID bestimmen (SELECT max(*)...)
- 100 Zufallszahlen zwischen 1 und der Höchsten ID bestimmen und speichern (->[php:rand])
- UPDATE ... SET post_text = CONCAT(post_text, ' [osterei]') WHERE post_id IN(...)
- Anzahl der betroffenen Zeilen bestimmen ($db->sql_affectedrows())
- Wenn weniger als 100 gab es ein paar Posts nicht mehr, das gleiche also noch mal mit der fehlenden Anzahl (100 - affectedrows - bisherige), wobei allerdings die generierten IDs mit den schon erstellten verglichen werden sollen um keinem Post zwei Ostereier hinzuzufügen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Hallo gn,
danke vorab für deine hilfreiche Unterstützung.
Bin gerade etwas am schwanken ob so ein "harter" DB Eingriff wirklich gut ist. Wenn da was schief läuft dann knallt es richtig.
Bin gerade am überlegen ob man es nicht so umsetzen sollte, damit könnten auch Admins etc mitspielen:
- Alle Post-IDs ermitteln udn davon 100 per Zufall fest auswählen.
- in der viewtopic.php dann eine Abfrage des aktuellen Beitrags abrufen und mit diesen Zufallszahlen vergleichen
- Wenn Übereinstimmung dann über die tpl Datei nach der Beitragsausgabe ein Osterei darstellen.
Finde diese Idee wesentlich humaner. Wie verhält sich der Vergleich von 100 Zahlen pro Post in der Rechenzeit?
Viele Grüße Maxe
danke vorab für deine hilfreiche Unterstützung.
Bin gerade etwas am schwanken ob so ein "harter" DB Eingriff wirklich gut ist. Wenn da was schief läuft dann knallt es richtig.
Bin gerade am überlegen ob man es nicht so umsetzen sollte, damit könnten auch Admins etc mitspielen:
- Alle Post-IDs ermitteln udn davon 100 per Zufall fest auswählen.
- in der viewtopic.php dann eine Abfrage des aktuellen Beitrags abrufen und mit diesen Zufallszahlen vergleichen
- Wenn Übereinstimmung dann über die tpl Datei nach der Beitragsausgabe ein Osterei darstellen.
Finde diese Idee wesentlich humaner. Wie verhält sich der Vergleich von 100 Zahlen pro Post in der Rechenzeit?
Viele Grüße Maxe
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Wenn du die IDs "hart" generierst (und dann ein Array daraus baust) dann dürftest du da nicht viel von merken wenn du nicht gerade hunderte Posts auf einer Seite anzeigst. Du kannst natürlich mit Hilfe intelligenter Sortierung noch ein wenig Power rausholen (z.b. indem die IDs nicht einfach so im Array landen sondern bereits nach Thema in einem Subarray vorsortiert sind wodurch du nur noch alle IDs vergleichen musst die im gleichen Thema sind) ich vermute aber mal, dass sich das bei 100 Stück noch nicht nennenswert auswirkt. Zur Generierung des Arrays solltest du dir selbst Code erzeugen (Hundert Einträge von Hand sind denke ich ziemlich anstrengend
), z.b. grob so:
Wenn du vor dem DB Eingriff ein Backup machst und vor dem Entfernen aus der DB auch, dann solltest du eigentlich kein großartiges Risiko eingehen (es sei denn dass du das Backup mit dem Foreninternen System machst).
Allerdings ist die zweite Methode natürlich tatsächlich komplett ohne Risiko für die DB.

Code: Alles auswählen
while(...)
{
$text .= "$array['topic_id'][] = $id;\n";
}
Allerdings ist die zweite Methode natürlich tatsächlich komplett ohne Risiko für die DB.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
So, bin jetzt gerade dabei die Version ohne DB zu machen.
Aber ich suche verzweifelt die Ausgabe der Threads in der viewtopic.php. Kann es sein, dass die dort gar nicht ist?
Würde dort gern folgendes einbauen:
Und im tpl dann das Bild ausgeben.
Könntest du mir da nochmal helfen?
Viele grüße Maxe
Aber ich suche verzweifelt die Ausgabe der Threads in der viewtopic.php. Kann es sein, dass die dort gar nicht ist?
Würde dort gern folgendes einbauen:
Code: Alles auswählen
<?php
if(in_array($topic_id,$osterei_array))
{
ostereibild = '<img src="....">';
}
?>
Könntest du mir da nochmal helfen?
Viele grüße Maxe
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Natürlich ist die da drin...
KB:template_system
KB:template_syntax
Irgendwas wie 'OSTEREI' => $ostereibild, an der richtigen Stelle...
KB:template_system
KB:template_syntax

Irgendwas wie 'OSTEREI' => $ostereibild, an der richtigen Stelle...
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
So, bin einen riesen Schritt weiter. Wer so etwas auch machen möchte hier die Anleitung:
- viewtopic.php
Suchen nach:
Danach folgendes einfügen:
Suchen nach:
Davor folgendes einfügen:
Suchen nach:
Davor folgendes einfügen:
-viewtopic_body.tpl
Suchen nach:
Danach folgendes einfügen.
Das wars.
Hat noch jemand eine Idee wie man nun 100 zufällige Werte aus allen aktiven Beiträgen gleich schön in array-Form bringen kann?
Viele Grüße Maxe
- viewtopic.php
Suchen nach:
Code: Alles auswählen
include($phpbb_root_path . 'portal_poll.'.$phpEx);
Code: Alles auswählen
// Osterei-Mod START
$osterei_array = array("266"); // Array bitte selbst mit Werten füllen
// Osterei-Mod ENDE
Code: Alles auswählen
$message = $postrow[$i]['post_text'];
Code: Alles auswählen
// Osterei-Mod START
if(in_array($postrow[$i]['post_id'],$osterei_array))
{
$osterei = '<img src="images/osterei.gif">';
} else {
$osterei = '';
}
// Osterei-Mod ENDE
Code: Alles auswählen
'MESSAGE' => $message,
Code: Alles auswählen
// Osterei-Mod START
'OSTEREI' => $osterei,
// Osterei-Mod ENDE
-viewtopic_body.tpl
Suchen nach:
Code: Alles auswählen
{postrow.MESSAGE}
Code: Alles auswählen
{postrow.OSTERN}
Hat noch jemand eine Idee wie man nun 100 zufällige Werte aus allen aktiven Beiträgen gleich schön in array-Form bringen kann?
Viele Grüße Maxe
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
gn#36 hat geschrieben:Zufall ist immer etwas blöd, denn "wirklichen" Zufall gibt's beim PC nicht...
Mögliche Vorgehensweise:
- Höchste Post-ID bestimmen (SELECT max(*)...)
- 100 Zufallszahlen zwischen 1 und der Höchsten ID bestimmen und speichern (->[php:rand])
- UPDATE ... SET post_text = CONCAT(post_text, ' [osterei]') WHERE post_id IN(...)
- Anzahl der betroffenen Zeilen bestimmen ($db->sql_affectedrows())
- Wenn weniger als 100 gab es ein paar Posts nicht mehr, das gleiche also noch mal mit der fehlenden Anzahl (100 - affectedrows - bisherige), wobei allerdings die generierten IDs mit den schon erstellten verglichen werden sollen um keinem Post zwei Ostereier hinzuzufügen.
gn#36 hat geschrieben:... Zur Generierung des Arrays solltest du dir selbst Code erzeugen (Hundert Einträge von Hand sind denke ich ziemlich anstrengend), z.b. grob so:
Code: Alles auswählen
while(...) { $text .= "$array['topic_id'][] = $id;\n"; }

Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
So, habs auch noch hinbekommen 
Nicht schön aber klappt:
Dies Ausgabe dann einfach in den Array im Quelltext der viewtopic.php kopieren.
Mod fertig
Grüße Maxe

Nicht schön aber klappt:
Code: Alles auswählen
<?php
$anzahl = 100;
$max_id = 30000;
while($count < $anzahl)
{
srand(microtime()*1000000);
$text .= rand(1,$max_id) . ",";
$count++;
}
echo $text;
?>
Mod fertig

Grüße Maxe