Dann schreibe ich in diesem Thema. Erstens haben dann ggf. andere etwas davon, zweitens bleibt das dann hoffentlich dauerhafter erhalten als eine PN (wenn ich die im Postausgang lösche, ist die für mich weg).
Für das Userrecht, die Funktionen nutzen zu können:
In der Datenbank einen neuen Eintrag erstellen:
Code: Alles auswählen
INSERT INTO `DATENBANKNAME`.`phpbb_acl_options` (`auth_option_id`, `auth_option`, `is_global`, `is_local`, `founder_only`) VALUES ('185', 'u_challenge_mod', '1', '0', '0');
In der Datei language/de/acp/permissions_phpbb.php neu hinzufügen:
Code: Alles auswählen
'acl_u_challenge_mod' => array('lang' => 'Kann Challenge-MOD nutzen', 'cat' => 'misc'),
In der language/de/common.php neu hinzufügen:
In der includes/functions.php neu dazu:
Code: Alles auswählen
'U_CHALLENGE' => ($auth->acl_get('u_challenge_mod') ? append_sid("{$phpbb_root_path}challenge.$phpEx") : '',
in der style/stylename/templates/overall_header.html an gewünschter Stelle dazu:
Code: Alles auswählen
<!-- IF S_CHALLENGE -->
<li><a href="{U_CHALLENGE}">{L_CHALLENGE}</a></li>
<!-- ENDIF -->
So wird der Link nur denen angezeigt, die dazu berechtigt sind.
Im ACP kann man dann am besten den gewünschten Gruppen das Recht geben "Kann Challenge-MOD nutzen".
Da es sinnvoller ist, daß Bots das gleiche wie auch Gäste sehen, habe ich in der challenge.php etwas geändert und auch gleich eingebaut, ob der Nutzer berechtigt ist, die Seite zu nutzen.
Hinter
ergänzen
Code: Alles auswählen
// users need to log in
if ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot'] )
{
login_box('', $user->lang['LOGIN']);
}
elseif (!$auth->acl_get('u_challenge_mod'))
{
trigger_error('NOT_AUTHORISED');
}
bzw. die Ergänzung als Ersatz nehmen für
Code: Alles auswählen
// redirect bots to index page
if ($user->data['is_bot'])
{
redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
}
// users need to log in
if ($user->data['user_id'] == ANONYMOUS)
{
login_box('', $user->lang['LOGIN']);
}
Den Teil
Code: Alles auswählen
// the database tables of this MOD
define('MOD_CHALLENGE_CHALLENGE_TABLE', $table_prefix . 'mod_challenge_challenge');
define('MOD_CHALLENGE_LOG_TABLE', $table_prefix . 'mod_challenge_log');
define('MOD_CHALLENGE_MILESTONE_TABLE', $table_prefix . 'mod_challenge_milestone');
define('MOD_CHALLENGE_PARTICIPANT_TABLE', $table_prefix . 'mod_challenge_participant');
lagert man am besten in die includes/constants.php aus und löscht den Teil dann in der challenge.php und challenge_gfx.php
Die anderen Optionen könnte man dann noch als ACP-Modul umsetzen. Das kommt dann als nächstes.