[BETA] Auswahl anzuzeigender Foren

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 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.
DanielHeinrich
Mitglied
Beiträge: 188
Registriert: 05.04.2007 00:28
Wohnort: Bochum

[BETA] Auswahl anzuzeigender Foren

Beitrag von DanielHeinrich »

nachdem ich keinen Mod gefunden habe (klick) der meinen Anforderungen genügt habe ich versucht das Problem selber zu lösen.

Nun, das Ergebnis meiner Bemühungen kann sich jeder der Interesse daran hat hier ansehen.

Eine kurze Beschreibung was der Mod kann:
Der Mod soll dem User die Möglichkeit geben sich die Foren in seinem Profil auszusuchen die ihn nicht interessieren damit diese in der Forenübersicht und bei Suchen nicht mehr auftauchen(der Übersicht wegen).
Dennoch lässt sich die Suchfunktion per Checkbox auch auf "ausgeblendete" Foren erweitern und der User hat auch noch Zugriff auf die einzelnen ausgeblendeten Foren damit er Links auf Beiträgen in diesen Foren auch weiterhin folgen kann.

EasyMOD-Kompatibilität
der Mod sollte eigentlich Kompatibel sein -- auf jeden Fall lässt er sich bei mit per EasyMOD ohne Probleme installieren.

Aktuelle Version: 1.3 BETA


so, ich denke des wärs erstmal

Daniel Heinrich

PS: So, nun dürft ihr meinen Mod in der Luft zerreissen und mich mit (hoffentlich konstruktiver) Kritik überhäufen ;-)
Zuletzt geändert von DanielHeinrich am 14.04.2007 00:51, insgesamt 2-mal geändert.
Tanja63
Mitglied
Beiträge: 93
Registriert: 26.11.2006 08:58

Beitrag von Tanja63 »

habs eingebaut

1. Foren, für die man keine Berechtigung hat (auth admin, acl, mod), werden im Profil für den Useracc angezeigt.
DanielHeinrich
Mitglied
Beiträge: 188
Registriert: 05.04.2007 00:28
Wohnort: Bochum

Beitrag von DanielHeinrich »

Hi!

Danke für den Hinweis -- ist mir bisher nicht aufgefallen. Werde ich auch korrigieren sobald der Apache hier wieder läuft(darf gerade Windows neu installieren ;-))

cu

Daniel
Tanja63
Mitglied
Beiträge: 93
Registriert: 26.11.2006 08:58

Beitrag von Tanja63 »

Büdde :)

Ich werds weiter verfolgen und intensiv testen, da ich selber Interesse an diesem MOD habe ;)
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Ein paar Kleinigkeiten:

Code: Alles auswählen

'.$table_prefix.'forums_ignore
Für sowas wird im phpBB immer eine neue Konstante in der constants.php erstellt, in deinem Fall könnte die Konstante z.B. FORUMS_IGNORE_TABLE heißen.

Code: Alles auswählen

(!$hidden_forums[$forum_data[$i]['forum_id']])
In solch einem Fall solltest du isset() oder empty() verwenden, um die Existenz des Wertes zu überprüfen.

Code: Alles auswählen

( $userdata['user_id'] != -1 )
Anstatt -1 solltest du hier die Konstante ANONYMOUS verwenden.

Außerdem wird vom PHP-Handbuch empfohlen, dass SQL-Queries, die an mysql_query() übergeben werden, nicht mit einem Semikolon enden sollten.

Ansonsten passt alles so, soweit ich das gesehen habe. Guter erster MOD. :wink:
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
DanielHeinrich
Mitglied
Beiträge: 188
Registriert: 05.04.2007 00:28
Wohnort: Bochum

Beitrag von DanielHeinrich »

Hi!
Tanja63 hat geschrieben:Ich werds weiter verfolgen und intensiv testen, da ich selber Interesse an diesem MOD habe ;)
Es tut gut zu wissen dass sich auch andere ausser mir für diesen Mod interessieren :grin:
Tanja63 hat geschrieben:1. Foren, für die man keine Berechtigung hat (auth admin, acl, mod), werden im Profil für den Useracc angezeigt.
gefixt
S2B hat geschrieben:Ein paar Kleinigkeiten:

Code: Alles auswählen

'.$table_prefix.'forums_ignore
Für sowas wird im phpBB immer eine neue Konstante in der constants.php erstellt, in deinem Fall könnte die Konstante z.B. FORUMS_IGNORE_TABLE heißen.
ok, getan

Code: Alles auswählen

(!$hidden_forums[$forum_data[$i]['forum_id']])
In solch einem Fall solltest du isset() oder empty() verwenden, um die Existenz des Wertes zu überprüfen.
mhh -- da

Code: Alles auswählen

$hidden_forums[$forum_data[$i]['forum_id']]
wenn es existiert immer true ist -- welchen Vorteil bringt

Code: Alles auswählen

!isset($hidden_forums[$forum_data[$i]['forum_id']])
gegenüber

Code: Alles auswählen

!($hidden_forums[$forum_data[$i]['forum_id']])
?
So wie ich das sehe sollte da nicht 2) schneller sein als 1) da 1) mehr Aktionen durchführt als 2) (Meiner Meinung nach)
Habs zwar geändert würde es aber dennoch gerne wissen ;-)

Code: Alles auswählen

( $userdata['user_id'] != -1 )
Anstatt -1 solltest du hier die Konstante ANONYMOUS verwenden.
mhh -- ok macht Sinn -- getan.
Außerdem wird vom PHP-Handbuch empfohlen, dass SQL-Queries, die an mysql_query() übergeben werden, nicht mit einem Semikolon enden sollten.
ok, dass hätte ich wissen sollen :oops: -- gefixt
Ansonsten passt alles so, soweit ich das gesehen habe. Guter erster MOD. :wink:
Danke -- tut gut sowas zu höhren :-)


cu

Daniel
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

DanielHeinrich hat geschrieben:So wie ich das sehe sollte da nicht 2) schneller sein als 1) da 1) mehr Aktionen durchführt als 2) (Meiner Meinung nach)
Habs zwar geändert würde es aber dennoch gerne wissen ;-)
Beim phpBB ist das in der Tag egal, da dort E_NOTICE-Fehlermeldungen unterdrückt werden. Dennoch sollte man versuchen, möglichst sauberen PHP-Code zu schreiben. Wenn du dir das einmal angewöhnt hast, hilft dir das später enorm, wenn du mal was außerhalb vom phpBB schreibst.

Zu dem speziellen Fall: isset() bzw. empty() überprüfen, ob eine Variable überhaupt definiert ist, wohingegen eine einfache Variable in einer If-Abfrage davon ausgeht, dass die Variable definiert ist und lediglich den Wert der Variable überprüft. Wenn du das Script jetzt mit eingeschalteten E_NOTICE-Fehlermeldungen laufen lassen würdest, würde PHP sowas ausgeben:
Notice: Undefined index 1 in <Datei> on line <Zeile>
(in diesem Beispiel wäre $i 1)

Das ganze steht auch in den Coding Guidelines für phpBB2, auch wenn die Entwickler es nur sehr begrenzt umgesetzt haben.
Don't use uninitialized variables. for phpBB 2, we intend to use a higher level of run-time error reporting. This will mean that the use of an uninitialized variable will be reported as an error. This will come up most often when checking which HTML form variables were passed. These errors can be avoided by using the built-in isset() function to check whether a variable has been set.
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17399
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Hinweis für späteres phpBB3 Olympus Modding.....

Jede nicht definierte Variable schmeisst dann den von S2B genannten Notice "Hinweis" aus ;-)
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Dr.Death hat geschrieben:Jede nicht definierte Variable schmeisst dann den von S2B genannten Notice "Hinweis" aus ;-)
Endlich. :)

Edit: Bist du dir sicher? In Beta5 wurden Notices noch unterdrückt...

Code: Alles auswählen

// Report all errors, except notices
error_reporting(E_ALL ^ E_NOTICE);
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17399
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Eigentlich schon.

Wenn ich im CVS eine Variable einschleuse und vorher nicht mit

$foo = ''; ( oder ähnlich )

defniere bekomme ich ne hübsche Notice Meldung beim aufrufen von:

$x = $foo;


Edit: Bestätigt ;-)

Schau mal: http://area51.lpi-clan.de/
Dort habe ich in die Index ein:

Code: Alles auswählen

$x = $foo;
eingebaut ;-) ( Ich lasse es bis morgen mal drin.... )

Siehe auch die functions.php:

Code: Alles auswählen

			// If DEBUG is defined the default level is E_ALL
			if (($errno & ((defined('DEBUG') && error_reporting()) ? E_ALL : error_reporting())) == 0)
Notices kommen also nur, wenn in der config.php

Code: Alles auswählen

@define('DEBUG', true);
gesetzt worden ist.
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“