Uhrzeitgesteuertes sperren eines Forums

Kleine Codeänderungen oder Mini-MODs
Keine Anfragen!!! -- No requests!!!

Moderator: Supporter

Beitragvon AmigaLink » 5. Jul 2005 12:43

Mit diesem Snippet lässt sich ein Forum für einem bestimmtem Zeitraum (Uhrzeit) sperren. 8)
Code: Alles auswählen
#
#----------[ OPEN ]-------------------------------------
#

index.php

#
#----------[ FIND ]-------------------------------------
#

                  if ( $is_auth_ary[$forum_id]['auth_view'] )

#
#----------[ BEFORE, ADD ]------------------------------
#

                  // close forum by daytime
                  if ($forum_id == '8')
                     {
                        $current_fc_time = date('Gi',time());
                        if ($current_fc_time <= '859' || $current_fc_time >= '2159')
                        {
                           $forum_data[$j]['forum_status'] = FORUM_LOCKED;
                        }
                     }
                  // close forum by daytime

#
#----------[ OPEN ]-------------------------------------
#

posting.php

#
#----------[ FIND ]-------------------------------------
#

   if ( $post_info['forum_status'] == FORUM_LOCKED && !$is_auth['auth_mod'])

#
#----------[ BEFORE, ADD ]------------------------------
#

// close forum by daytime
if ($forum_id == '8')
   {
      $current_fc_time = date('Gi',time());
      if ($current_fc_time <= '859' || $current_fc_time >= '2159')
      {
         $post_info['forum_status'] = FORUM_LOCKED;
      }
   }
// close forum by daytime

#
#----------[ OPEN ]-------------------------------------
#

viewforum.php

#
#----------[ FIND ]-------------------------------------
#

//
// Dump out the page header and load viewforum template

#
#----------[ BEFORE, ADD ]------------------------------
#

// close forum by daytime
if ($forum_id == '8')
   {
      $current_fc_time = date('Gi',time());
      if ($current_fc_time <= '859' || $current_fc_time >= '2159')
      {
         $forum_row['forum_status'] = FORUM_LOCKED;
      }
   }
// close forum by daytime

#
#----------[ OPEN ]-------------------------------------
#

viewtopic.php

#
#----------[ FIND ]-------------------------------------
#

$reply_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $images['reply_locked'] : $images['reply_new'];

#
#----------[ BEFORE, ADD ]------------------------------
#

// close forum by daytime
if ($forum_id == '8')
   {
      $current_fc_time = date('Gi',time());
      if ($current_fc_time <= '859' || $current_fc_time >= '2159')
      {
         $forum_topic_data['forum_status'] = FORUM_LOCKED;
      }
   }
// close forum by daytime

#
#----------[ SAVE AND CLOSE ALL FILES ]-----------------
#
# EoM

Das Forum mit der id 8 hat hiermit nur noch zwischen 8:50 Uhr und 21:59 Uhr den, im ACP, eingestellten Status. Zu allen anderen Uhrzeiten ist es gesperrt!!!
Sämmtliche Zugriffsberechtigungen bleiben dabei unverändert!
(Hier auf amigalink.de ist dies, zur Demonstration, das forum Garbage Pail)

Das Snippet ist Hardcodet. Das bedeutet daß das zu sperrende Forum, sowie die Uhrzeit (in allen vier zu veränderden Dateien) direkt im Code angegeben werden muss!

Das Forum wird angegeben bei:
Code: Alles auswählen
if ($forum_id == '8')
Und die Uhrzeit bei:
Code: Alles auswählen
if ($current_fc_time <= '859' || $current_fc_time >= '2159')
Angegeben wird die Uhrzeit im 24 Stunden format, ohne Trennzeichen zwischen Stunden und Minuten (also 000 bis 2359)!

Der code
Code: Alles auswählen
if ($current_fc_time <= '859' || $current_fc_time >= '2159')
bedeutet also das das Forum zwischen 9 Uhr und 22 Uhr geöffnet ist (vorrausgesetzt es wurde nicht im ACP gesperrt).

Soll es in dieser Zeit gesperrt und zu allen anderen Zeiten geöffnet sein, dann muss der code so lauten:
Code: Alles auswählen
if ($current_fc_time >= '859' && $current_fc_time <= '2159')


Zugefügt nach 39 Stunde(n) 2 Minute(n):

Sorry, ich hatte den part in den posting.php vergessen. :oops:
Snippet ist nun aktualisiert!
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon SethDeBlade » 6. Jul 2005 11:05

das ist ja interessant. hast du mal versucht das mit dem quizmod zu kreuzen?? könnte man so die zeiten beeinflussen, in denen die fragen gestellt werden?? ich vermute mal, dass sperren hier bedeutet, dass keine neuen beiträge mehr geschrieben werden können, oder??
SethDeBlade
User
 
Beiträge: 27
Registriert: 26. Aug 2004 20:12

Beitragvon AmigaLink » 6. Jul 2005 11:23

Es wird die Orginal Sperrfunktion des phpBB aktiviert!

Das bedeutet das normale User und Gäste in dem Forum keine Beiträge mehr verfassen können (Moderatoren und Admins schon). :)
Auf den Quizmod hat das Snippet keinen einfluss, den der Quizmod ignoriert sämmtliche Berechtigungen!
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon SethDeBlade » 6. Jul 2005 11:26

schade, ich fänd es nämlich nicht schlecht, wenn man den quizbot zeitgesteuert posten lassen könnte. z.b. 4 neue fragen zwischen 8h und 22h oder sowas.

wäre schön gewesen, wenn ich den mod dafür hätte nehmen können, naja :)
SethDeBlade
User
 
Beiträge: 27
Registriert: 26. Aug 2004 20:12

Beitragvon AmigaLink » 6. Jul 2005 11:38

Zeitgesteuert Posten tut er ja. ;)
Aber dummerweise nur in festen intervallen. :?
Mir wäre es auch lieber wenn man die Zeiten etwas genauer definieren könnte. Aber ich habe zuviele andere sachen auf meiner todo-liste (nicht die die hier im Portal angezeigt wird) und somit keine Zeit und Lust mich in den Code des Quizmods einzuarbeiten.
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon AmigaLink » 26. Aug 2005 15:16

Beim einsatz des Categories Hierarchy MOD muss dieses Snippet, anstelle des Codes aus dem erstem Posting, verwendet werden:
Code: Alles auswählen
#
#----------[ OPEN ]-------------------------------------
#

includes/function_categories_hierarchy.php

#
#----------[ FIND ]-------------------------------------
#

      //---------------------
      // auth view

#
#----------[ BEFORE, ADD ]------------------------------
#

// close forum by daytime
      if ($tree['type'][$i] == 'f' && $tree['id'][$i] == '8')
      {
         $current_fc_time = date('Gi',time());
         if ($current_fc_time <= '859' || $current_fc_time >= '2159')
         {
            $tree['data'][$i]['forum_status'] = FORUM_LOCKED;
         }
      }
// close forum by daytime

#
#----------[ OPEN ]-------------------------------------
#

posting.php

#
#----------[ FIND ]-------------------------------------
#

   if ( $post_info['forum_status'] == FORUM_LOCKED && !$is_auth['auth_mod'])

#
#----------[ BEFORE, ADD ]------------------------------
#

// close forum by daytime
if ($forum_id == '8')
   {
      $current_fc_time = date('Gi',time());
      if ($current_fc_time <= '859' || $current_fc_time >= '2159')
      {
         $post_info['forum_status'] = FORUM_LOCKED;
      }
   }
// close forum by daytime

#
#----------[ OPEN ]-------------------------------------
#

viewtopic.php

#
#----------[ FIND ]-------------------------------------
#

$reply_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $images['reply_locked'] : $images['reply_new'];

#
#----------[ BEFORE, ADD ]------------------------------
#

// close forum by daytime
if ($forum_id == '8')
   {
      $current_fc_time = date('Gi',time());
      if ($current_fc_time <= '859' || $current_fc_time >= '2159')
      {
         $forum_topic_data['forum_status'] = FORUM_LOCKED;
      }
   }
// close forum by daytime

#
#----------[ SAVE AND CLOSE ALL FILES ]-----------------
#
# EoM

Die Erklärung (aus dem erstem Posting) zur anpassung des zu sperrenden Forums und der Uhrzeit bleibt gleich!
Ausser das die forum_id in der categories_hierarcchy.php hier geändert wird:
Code: Alles auswählen
if ($tree['type'][$i] == 'f' && $tree['id'][$i] == '8')
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Holger » 18. Jan 2007 09:52

Moin!
Leider klappt das bei mir nicht. Ich hatte hier schon mal nachgefragt:
http://www.oxpus.de/viewtopic.php?p=64550#64550

Kannst Du mir da mal bitte helfen?
Holger
User
 
Beiträge: 48
Registriert: 18. Jan 2007 09:47

Beitragvon AmigaLink » 18. Jan 2007 12:00

Hopsa, das hab ich total Vergessen. Ist ja auch schon ein Weilchen her.

Was genau Funktioniert denn nun nicht?

Du schreibst bei oxpus das Admins nicht Posten können wenn das Forum gesperrt ist. Wenn das wirklich so ist, dann hat dein Board ein ernstes Problem mit den Berechtigungen! :shock:
Admins bekommen zwar das Icon angezeigt, auf dem steht daß das Forum gesperrt ist. Aber wenn sie drauf Klicken, können sie dennoch Posten. Wenn nicht, dann musst du mal deine auth.php überprüfen.

Was die Zeit der Sperrung betrifft. Bedenke bitte das es sich bei der Zeitangabe um die Weltzeit (also GMT) handelt!
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Holger » 18. Jan 2007 12:50

Hmmm, also, das Problem ist, dass das Forum in der angegeben Zeit nicht ENTSPERRT wird. :(
Hier meine aktuellen Dateien:
http://www.gremminger.se/service/forum/index.txt
http://www.gremminger.se/service/forum/posting.txt
http://www.gremminger.se/service/forum/viewforum.txt
http://www.gremminger.se/service/forum/viewtopic.txt

Die Berechtigungen im Forum scheinen ganz normal zu funktionieren, es sind (noch) keine Unregelmässigkeiten aufgetreten ... :D

/H
Holger
User
 
Beiträge: 48
Registriert: 18. Jan 2007 09:47

Beitragvon AmigaLink » 18. Jan 2007 13:09

(Bitte Dateien immer als Attachment anhängen und nicht verlinken.)

Wenn du zwischen 7 und 18 Uhr sperren möchtest, dann muss die Zeile so aussehen:
Code: Alles auswählen
if ($current_fc_time >= '700' && $current_fc_time <= '1800')
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Nächste

Zurück zu phpBB2 Snippets



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste

cron