Alle Foren für alle Users abonnieren
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
Alle Foren für alle Users abonnieren
Hallo
Gibt es eine Lösung/Möglichkeit, um alle bestehenden User auf alle Foren zu abonnieren (forcieren)?
Ich habe die Suche gebraucht, und nur herausgefunden, dass es bis jetzt nicht möglich ist.
Vielleicht gibt es inzwischen eine Extension, anderes Tool, oder ein geschriebenes SQL Statement, das dies ermöglicht?
Vielen Dank
Gibt es eine Lösung/Möglichkeit, um alle bestehenden User auf alle Foren zu abonnieren (forcieren)?
Ich habe die Suche gebraucht, und nur herausgefunden, dass es bis jetzt nicht möglich ist.
Vielleicht gibt es inzwischen eine Extension, anderes Tool, oder ein geschriebenes SQL Statement, das dies ermöglicht?
Vielen Dank
- Mike-on-Tour
- Supporter
- Beiträge: 1172
- Registriert: 13.01.2020 21:09
- Kontaktdaten:
Re: Alle Foren für alle Users abonnieren
Mit den Bordmitteln von phpBB ist das nicht möglich; ob eine entsprechende Erweiterung existiert, weiß ich nicht.
Aber nach meiner Erinnerung hat vor ungefähr einem Jahr auf phpbb.com jemand eine ähnliche Frage gestellt, da wollte ein Lehrer alle Schüler einer bestimmten Klasse auf die für diese Klasse zutreffenden Foren abonnieren; m.W. hat man ihm damals einen möglichen Ansatz mittels SQL aufgezeigt.
Aber nach meiner Erinnerung hat vor ungefähr einem Jahr auf phpbb.com jemand eine ähnliche Frage gestellt, da wollte ein Lehrer alle Schüler einer bestimmten Klasse auf die für diese Klasse zutreffenden Foren abonnieren; m.W. hat man ihm damals einen möglichen Ansatz mittels SQL aufgezeigt.
Re: Alle Foren für alle Users abonnieren
Ich habe einen Code geschrieben, der es mir ermöglicht :
https://www.phpbb.com/community/viewtopic.php?t=2643925
https://www.phpbb.com/community/viewtopic.php?t=2643925
Re: Alle Foren für alle Users abonnieren
Ok ich hab mir dein Code mal angeschaut. Ich hab den Mal etwas optimiert. So kann den jeder Nutzen. Da du einen individuellen präfix hast hab ich das mal standardisiert gemacht. Schau dir den code mal an und gegeben falls bitte.
Du hast da natürlich noch deine Benutzerdefinierten Profilfelder die gibts ja standard nicht. Ich denke für nur den Standard wäre das hier Korrekt:
Mit dieser Variante sollte den Code auch jeder benutzen Können. Eventuell Mach ich mir wenn ich mal zeit habe die Mühe und bastle daraus ne Extension. Das wäre in jedem fall sicherer aber im Moment keine Zeit. Außerdem müsste man eigentlich auch die entsprechende Berechtigung berücksichtigen weil es gibt die Berechtigung "Kann Forum abbonieren". Hier wäre zu testen ob wenn man das Skript ausführt der Benutzer jedoch nicht das Recht zum abonnieren hat er dennoch eine Nachricht erhält.
Code: Alles auswählen
<html>
<body>
<h1>Insert all Forum subscriptions for all Members</h1>
<?php
echo "<br>";
$servername = 'Datenbank Server Adresse';
$username = 'Benutzername';
$password = 'Passwort';
$dbname = 'Datenbankname';
$table_prefix = 'phpbb_';
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error)
{
echo "geet net";
die("Connection failed: " . $conn->connect_error);
}
// Delete all existing notifications in table
$sql_del = 'DELETE FROM ' . $table_prefix . 'forums_watch';
echo $sql_del."<br>";
if ($conn->query($sql_del) === TRUE)
{
echo "All rows deleted successfully<br><br>";
}
else
{
echo "Error deleting record: " . $conn->error;
}
// Search for existing forums. Forums with Parent_id = 19 are only for restricted users, so no notification for all users.
$sql1 = 'SELECT * FROM ' . $table_prefix . 'forums WHERE parent_id <> 19 and parent_id <> 0';
$result1 = $conn->query($sql1);
$countrows=0;
$countforums=0;
if ($result1->num_rows > 0)
{
while($row1 = $result1->fetch_assoc())
{
$countforums++;
// output data of each row
echo "<b>forum_id: " . $row1["forum_id"]. " - Name: " . $row1["forum_name"]. "</b><br>";
// Search for existing users.
$sql2 = 'SELECT * FROM ' . $table_prefix . 'users';
$result2 = $conn->query($sql2);
if ($result2->num_rows > 0)
{
while($row2 = $result2->fetch_assoc())
{
$countrows++;
// output data of each row
//echo "user_id: " . $row2["user_id"]. " - Name: " . $row2["username"]. " - Groupid: " . $row2["group_id"]. "<br>";
// Insert notifications in table
$sql_insert = 'INSERT INTO ' . $table_prefix . 'forums_watch (forum_id, user_id, notify_status) VALUES (' . $row1["forum_id"] . ' , ' . $row2["user_id"] . ' , 0)';
echo $sql_insert;
if ($conn->query($sql_insert) === TRUE)
{
echo " New record created successfully ". " <br>";
}
else
{
echo " Error: " . $sql_insert . "<br>" . $conn->error;
}
}
}
else
{
echo "0 results SQL2";
}
}
}
else
{
echo "0 results SQL1";
}
echo "<br><b> ". $countforums. " Forums updated. ". $countrows." rows inserted </b><br>";
echo "<br><br><b>Insert Forum subscriptions for ABC-Members </b><br>";
// Search for users belonging to certain custom field. Insert notifications only for these users to restricted Forums 9, 10 an 11.
$sql3 = 'SELECT user_id, pf_phpbb_fonction_os FROM ' . $table_prefix . 'profile_fields_data where pf_phpbb_fonction_os = 9 OR pf_phpbb_fonction_os = 10 OR pf_phpbb_fonction_os = 11';
$result3 = $conn->query($sql3);
$countrows=0;
if ($result3->num_rows > 0)
{
// output data of each row
while($row3 = $result3->fetch_assoc())
{
$countrows++;
echo "user_id: " . $row3["user_id"]. "pf_phpbb_fonction_os: " . $row3["pf_phpbb_fonction_os"]. "<br>";
$sql_insert = 'INSERT INTO ' . $table_prefix . 'forums_watch (forum_id, user_id, notify_status) VALUES (20, " . ' . $row3["user_id"] . ' .", 0)';
echo $sql_insert;
if ($conn->query($sql_insert) === TRUE)
{
echo "New record created successfully ". " <br>";
}
else
{
echo "Error: " . $sql_insert . "<br>" . $conn->error;
}
$countrows++;
$sql_insert = 'INSERT INTO ' . $table_prefix . 'forums_watch (forum_id, user_id, notify_status) VALUES (23, " . ' . $row3["user_id"] . ' .", 0)';
echo $sql_insert;
if ($conn->query($sql_insert) === TRUE)
{
echo "New record created successfully ". " <br>";
}
else
{
echo "Error: " . $sql_insert . "<br>" . $conn->error;
}
}
}
else
{
echo "0 results SQL3";
}
echo "<br><b> ". $countrows." rows ABC inserted <br>";
$conn->close();
?>
</body>
</html>
Code: Alles auswählen
<html>
<body>
<h1>Insert all Forum subscriptions for all Members</h1>
<?php
echo "<br>";
$servername = 'Datenbank Server Adresse';
$username = 'Benutzername';
$password = 'Passwort';
$dbname = 'Datenbankname';
$table_prefix = 'phpbb_';
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error)
{
echo "geet net";
die("Connection failed: " . $conn->connect_error);
}
// Delete all existing notifications in table
$sql_del = 'DELETE FROM ' . $table_prefix . 'forums_watch';
echo $sql_del."<br>";
if ($conn->query($sql_del) === TRUE)
{
echo "All rows deleted successfully<br><br>";
}
else
{
echo "Error deleting record: " . $conn->error;
}
// Search for existing forums. Forums with Parent_id = 19 are only for restricted users, so no notification for all users.
$sql1 = 'SELECT * FROM ' . $table_prefix . 'forums WHERE parent_id <> 19 and parent_id <> 0';
$result1 = $conn->query($sql1);
$countrows=0;
$countforums=0;
if ($result1->num_rows > 0)
{
while($row1 = $result1->fetch_assoc())
{
$countforums++;
// output data of each row
echo "<b>forum_id: " . $row1["forum_id"]. " - Name: " . $row1["forum_name"]. "</b><br>";
// Search for existing users.
$sql2 = 'SELECT * FROM ' . $table_prefix . 'users';
$result2 = $conn->query($sql2);
if ($result2->num_rows > 0)
{
while($row2 = $result2->fetch_assoc())
{
$countrows++;
// output data of each row
//echo "user_id: " . $row2["user_id"]. " - Name: " . $row2["username"]. " - Groupid: " . $row2["group_id"]. "<br>";
// Insert notifications in table
$sql_insert = 'INSERT INTO ' . $table_prefix . 'forums_watch (forum_id, user_id, notify_status) VALUES (' . $row1["forum_id"] . ' , ' . $row2["user_id"] . ' , 0)';
echo $sql_insert;
if ($conn->query($sql_insert) === TRUE)
{
echo " New record created successfully ". " <br>";
}
else
{
echo " Error: " . $sql_insert . "<br>" . $conn->error;
}
}
}
else
{
echo "0 results SQL2";
}
}
}
else
{
echo "0 results SQL1";
}
echo "<br><b> ". $countforums. " Forums updated. ". $countrows." rows inserted </b><br>";
$conn->close();
?>
</body>
</html>
- Mike-on-Tour
- Supporter
- Beiträge: 1172
- Registriert: 13.01.2020 21:09
- Kontaktdaten:
Re: Alle Foren für alle Users abonnieren
Man kann es natürlich kompliziert machen, einfacher ist:
Wenn dieses Skript im root gespeichert ist, also dort wo auch die
Wenn dieses Skript im root gespeichert ist, also dort wo auch die
config.php
gespeichert ist, dann kann man diese doch einfach inkludieren (include('config.php')
) und dann die dort verwendeten Variablen für die Datenbank, den Host, den Nutzer und das Passwort verwenden. Dann braucht keiner mehr das Skript ändern (außer natürlich den Tabellennamen, wenn der abweicht).Re: Alle Foren für alle Users abonnieren
Also ich hab das Skript nicht geschrieben hab lediglich sein Skript angepasst. Das was er geschrieben hat kann man nur bei seinem Forum nutzen.
Außerdem wäre es eh besser das ganze als Extension im Adminbereich zu machen aber dafür fehlt mir im Moment die Zeit. Aber Prinzipiell gebe ich dir recht das mit dem inkludieren wäre ne Möglichkeit.
Außerdem wäre es eh besser das ganze als Extension im Adminbereich zu machen aber dafür fehlt mir im Moment die Zeit. Aber Prinzipiell gebe ich dir recht das mit dem inkludieren wäre ne Möglichkeit.
- Talk19zehn
- Ehemaliges Teammitglied
- Beiträge: 4973
- Registriert: 08.06.2009 12:03
- Kontaktdaten:
Re: Alle Foren für alle Users abonnieren
Hi, und wo kann ich als Benutzer und/oder registriertes Mitglied diesem Vorhaben zustimmen oder gar ablehnen? Weshalb wird in Benutzerrechte eingegriffen? Was machen die Benachrichtigungen oder gar E-Mails, falls ich das alles gar nicht nutze. Wird das Script aktiv und schreibt jene Rechte der Benutzer im persönlichen Bereich einfach um? Jene Benutzerrechte gibt es m.E. nicht grundlos. Laufen die Benachrichtigungen irgendwann über und mein E-Mail-Postfach wird "zugeschüttet"?
Mir fielen noch zig Fragen ein.
Sorry, für meine Gedanken, die mich auch hinsichtlich der DSGVO interessieren würden.
LG
Mir fielen noch zig Fragen ein.
Sorry, für meine Gedanken, die mich auch hinsichtlich der DSGVO interessieren würden.
LG
Adventereigniskalender für phpBB 3.3.x
Meine persönliche Meinung im Jahr 2024: Im Zenit seiner Popularität wirkt KI zunächst wie eine Blaupause und lässt sich aufgrund der Vielschichtigkeit nicht auf eine einzige Botschaft reduzieren.
Meine persönliche Meinung im Jahr 2024: Im Zenit seiner Popularität wirkt KI zunächst wie eine Blaupause und lässt sich aufgrund der Vielschichtigkeit nicht auf eine einzige Botschaft reduzieren.
Re: Alle Foren für alle Users abonnieren
Nun ja das ist schwierig zu beantworten. Wenn man es genau nimmt dann würde diese Funktion das Forum zu einem aktiven Newsletter machen. Diesen müsste man aber in den Nutzungsbedingungen und Datenschutzerklärung als solche auch bekanntgeben.
Wobei hier auch angemerkt sei das selbst wenn der Admin dieses Skript ausführt dies nur auf vorhandene Benutzer greifen würde. Würde sich nach ausführen des Skriptes ein neuer Benutzer Registrieren dann würden für diesen wieder die Standard Einstellungen gelten.
Um deine anderen Fragen zu beantworten.
Das Skript setzt für alle Foren für alle zum Zeitpunkt registrierten Benutzer die Abo Funktion auf aktiv. Sprich der Benutzer würde bei jedem Thema eine Info bekommen.
Jedoch kann der Benutzer selber diese Abos wieder abstellen.
Ich persönlich würde das auch nicht machen mit dem Skript, aber es gibt durchaus Situationen wo das sinnvoll Wäre. Allerdings würde ich hier auch das Skript erweitern das man einträgt welche Foren und für welche Benutzer.
Es ist halt schwierig. Aber auch bei dem Skript heißt es das liegt in der Verantwortung des Forenadmins.
Wobei hier auch angemerkt sei das selbst wenn der Admin dieses Skript ausführt dies nur auf vorhandene Benutzer greifen würde. Würde sich nach ausführen des Skriptes ein neuer Benutzer Registrieren dann würden für diesen wieder die Standard Einstellungen gelten.
Um deine anderen Fragen zu beantworten.
Das Skript setzt für alle Foren für alle zum Zeitpunkt registrierten Benutzer die Abo Funktion auf aktiv. Sprich der Benutzer würde bei jedem Thema eine Info bekommen.
Jedoch kann der Benutzer selber diese Abos wieder abstellen.
Ich persönlich würde das auch nicht machen mit dem Skript, aber es gibt durchaus Situationen wo das sinnvoll Wäre. Allerdings würde ich hier auch das Skript erweitern das man einträgt welche Foren und für welche Benutzer.
Es ist halt schwierig. Aber auch bei dem Skript heißt es das liegt in der Verantwortung des Forenadmins.
- Talk19zehn
- Ehemaliges Teammitglied
- Beiträge: 4973
- Registriert: 08.06.2009 12:03
- Kontaktdaten:
Re: Alle Foren für alle Users abonnieren via Script
Alle Foren für alle Users abonnieren via Script
Tja,
(Foren)Admins und Betreiber können schon einmal voneinander abweichen.
Welcher Flaschenhals ggf. überläuft, ist noch eine ganz andere Frage in Sachen Datenbankabfragen uvm.
Eine bloße Aussage in jener EXT oder jenem Script, dass die Verantwortung bei *Forenadmins läge, ist mehr als vage. Jedenfalls aus meiner Sicht. *Gibt es eine ladungsfähige Anschrift / Impressum .... eines Betreibers (Nutzers / Anwenders)? Ich glaube, die Situation wird für einen derartigen kurz angerissenen Einsatz im Grundsatz unterschätzt.
Es gibt Feeds, es gibt eine EXT NL, es gibt die privacyprotection usw. usf. und Anwälte des Vertrauens als auch Datenschutzbeauftragte, die sicherlich gern im Sinne einer Beratung zur Seite stehen dürfen. Was wir hier nicht leisten können oder gar dürften.
Okay, warum heißt der Vorschläger einerseits PirKrier7 und anderseits PirKrier?
Nun denn, ---
freundliche Grüße
Tja,
Einen Sinn kann ich an keiner Stelle der zunächst vorgetragenen Argumente erkennen.
(Foren)Admins und Betreiber können schon einmal voneinander abweichen.
Welcher Flaschenhals ggf. überläuft, ist noch eine ganz andere Frage in Sachen Datenbankabfragen uvm.
Eine bloße Aussage in jener EXT oder jenem Script, dass die Verantwortung bei *Forenadmins läge, ist mehr als vage. Jedenfalls aus meiner Sicht. *Gibt es eine ladungsfähige Anschrift / Impressum .... eines Betreibers (Nutzers / Anwenders)? Ich glaube, die Situation wird für einen derartigen kurz angerissenen Einsatz im Grundsatz unterschätzt.
Es gibt Feeds, es gibt eine EXT NL, es gibt die privacyprotection usw. usf. und Anwälte des Vertrauens als auch Datenschutzbeauftragte, die sicherlich gern im Sinne einer Beratung zur Seite stehen dürfen. Was wir hier nicht leisten können oder gar dürften.
Okay, warum heißt der Vorschläger einerseits PirKrier7 und anderseits PirKrier?
Nun denn, ---
freundliche Grüße
Adventereigniskalender für phpBB 3.3.x
Meine persönliche Meinung im Jahr 2024: Im Zenit seiner Popularität wirkt KI zunächst wie eine Blaupause und lässt sich aufgrund der Vielschichtigkeit nicht auf eine einzige Botschaft reduzieren.
Meine persönliche Meinung im Jahr 2024: Im Zenit seiner Popularität wirkt KI zunächst wie eine Blaupause und lässt sich aufgrund der Vielschichtigkeit nicht auf eine einzige Botschaft reduzieren.
Re: Alle Foren für alle Users abonnieren
Wie gesagt das Skript selber hab ich nicht geschrieben. Ich hab's lediglich so gesäubert das auch andere es Benutzen Könnten.
Und nun ja ich denke schon das es in dem ein oder anderem Fall schon sinvoll ist. Wenn ich mal auf den Beitrag vom Mike zurückgreife:
Ich sehe auch hier nicht wirklich irgendwelche Benutzerrechte verletzt (meiner Meinung nach) da ja nicht die Einstellung dauerhaft greift. Jeder Benutzer kann das ja wieder abstellen.
Und ja Talkzehn auch die Aussage das das in der Verantwortung des Forenadmins (Betreiber) liegt ist schon Richtig. Weil auch die Leute die Extension bereitstellen (so wie ich selber auch) stellen diese Bereit aber haften tut dennoch immer der Forenbetreiber.
Und Was Abmahn-Anwälte angeht so denke ich nicht das hier irgendein Problem auftritt. Da dies ja nur ne Funktion des Forums ist. Und ok ob man das mittels Skript so machen sollte ist eine andere Sache. Aber ich bin kein Anwalt also kann ich auch keine Rechtsverbindliche Auskunft geben.
Nur wenn man das Skript ausführt und alles auf Abo stellt entspricht das Forum ja eher einem Newsletter und da reicht es wenn man in der Datenschutz Erklärung entsprechenden Passus drin hat. Und in den Nutzungsbedingungen.
Aber lassen wir das Thema hier mal so auf sich beruhen sonst artet das wieder in eine Grundsatzdiskussion aus. Fakt ist jedenfalls das Skript setzt die Werte nur für die bereits vorhandenen Benutzer so ein bei danach neu registrierten Benutzer sind die Werte wieder Standard.
Und nun ja ich denke schon das es in dem ein oder anderem Fall schon sinvoll ist. Wenn ich mal auf den Beitrag vom Mike zurückgreife:
Also das wäre durchaus eine Situation wo so eine Art von Skript hilfreich ist.
Ich sehe auch hier nicht wirklich irgendwelche Benutzerrechte verletzt (meiner Meinung nach) da ja nicht die Einstellung dauerhaft greift. Jeder Benutzer kann das ja wieder abstellen.
Und ja Talkzehn auch die Aussage das das in der Verantwortung des Forenadmins (Betreiber) liegt ist schon Richtig. Weil auch die Leute die Extension bereitstellen (so wie ich selber auch) stellen diese Bereit aber haften tut dennoch immer der Forenbetreiber.
Und Was Abmahn-Anwälte angeht so denke ich nicht das hier irgendein Problem auftritt. Da dies ja nur ne Funktion des Forums ist. Und ok ob man das mittels Skript so machen sollte ist eine andere Sache. Aber ich bin kein Anwalt also kann ich auch keine Rechtsverbindliche Auskunft geben.
Nur wenn man das Skript ausführt und alles auf Abo stellt entspricht das Forum ja eher einem Newsletter und da reicht es wenn man in der Datenschutz Erklärung entsprechenden Passus drin hat. Und in den Nutzungsbedingungen.
Aber lassen wir das Thema hier mal so auf sich beruhen sonst artet das wieder in eine Grundsatzdiskussion aus. Fakt ist jedenfalls das Skript setzt die Werte nur für die bereits vorhandenen Benutzer so ein bei danach neu registrierten Benutzer sind die Werte wieder Standard.