Forum erst um xx Uhr zugänglich machen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Killer-Man
Mitglied
Beiträge: 497
Registriert: 04.07.2006 15:20
Wohnort: Mönchengladbach

Forum erst um xx Uhr zugänglich machen

Beitrag von Killer-Man »

Mit dieser Veränderung hab ich dafür gesorgt, dass in dem angegebenem Forum erst zu der angegebenen Zeit Beiträge gepostet werden können.
Allerdings kann man dort gepostete Beiträge schon sehene, bevor das Forum geöffnet ist.

Was muss ich noch machen, damit man es außerhalb des Zeitbereiches nicht betreten kann? (so als ob man keine Rechte dafür hätte)


Hier der Code:

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 == '4') 
                     { 
                        $current_fc_time = date('Gi',time()); 
                        if ($current_fc_time <= '1259' || $current_fc_time >= '359') 
                        { 
                           $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 == '4') 
   { 
      $current_fc_time = date('Gi',time()); 
      if ($current_fc_time <= '1259' || $current_fc_time >= '359')
      { 
         $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 == '4') 
   { 
      $current_fc_time = date('Gi',time()); 
      if ($current_fc_time <= '1259' || $current_fc_time >= '359')
      { 
         $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 == '4') 
   { 
      $current_fc_time = date('Gi',time()); 
      if ($current_fc_time <= '1259' || $current_fc_time >= '359')
      { 
         $forum_topic_data['forum_status'] = FORUM_LOCKED; 
      } 
   } 
// close forum by daytime 

# 
#----------[ SAVE AND CLOSE ALL FILES ]----------------- 
# 
# EoM
Xwitz
Mitglied
Beiträge: 1104
Registriert: 21.06.2005 21:41

Beitrag von Xwitz »

Wie wäre es einfach beim ersten Aufruf nach xx (oder noch besser per cronjob) den Status des Forums von versteckt auf öffentlich zu setzen?
Killer-Man
Mitglied
Beiträge: 497
Registriert: 04.07.2006 15:20
Wohnort: Mönchengladbach

Beitrag von Killer-Man »

Dummerweise hab ich null Ahnung von Cronjob.

Kannst du mir sagen was ich machen muss?
Xwitz
Mitglied
Beiträge: 1104
Registriert: 21.06.2005 21:41

Beitrag von Xwitz »

Das sollte der einfachste Teil sein und ohne viel Zusatzwissen mit der Suchmaschine deiner Wahl zu erledigen sein.

Ein Cronjob ist nur etwas das eine Datei zu einer bestimmten Zeit aufruft. Das heißt, Du mußt die Funktion nicht in einer Datei unterbringen die von usern aufgerufen wird. So was ist bei Webspace in der unteren Preisklasse normaler Weise nicht mit dabei, ss gibt aber kostenlose im Netz (keine Ahnung wie verläßlich die von der genauen Zeit her sind).
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag von Jensemann »

Xwitz hat geschrieben:Das sollte der einfachste Teil sein und ohne viel Zusatzwissen mit der Suchmaschine deiner Wahl zu erledigen sein.

Ein Cronjob ist nur etwas das eine Datei zu einer bestimmten Zeit aufruft. Das heißt, Du mußt die Funktion nicht in einer Datei unterbringen die von usern aufgerufen wird. So was ist bei Webspace in der unteren Preisklasse normaler Weise nicht mit dabei, ss gibt aber kostenlose im Netz (keine Ahnung wie verläßlich die von der genauen Zeit her sind).
Optimalerweise würde er einen at-Job benötigen. Ein Cronjob ruft eine Datei, bzw. genauer: führt ein Programm, wiederkehrend alle X-Zeiteinheiten aus, was hier nicht ganz das ist, was er benötigt.

Ich schlage also eine Implementierung in PHP vor. Einwenig Code in common.php, der die Uhrzeit prüft und dann entsprechend eine Weiterleitung (auf eine Fehlerseite) macht oder eben nicht.
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Re: Forum erst um xx Uhr zugänglich machen

Beitrag von easygo »

Killer-Man hat geschrieben:Was muss ich noch machen, damit man es außerhalb des Zeitbereiches nicht betreten kann? (so als ob man keine Rechte dafür hätte)
EDIT: Keine Antwort ist auch eine @ XYZ
Zuletzt geändert von easygo am 18.11.2006 11:18, insgesamt 1-mal geändert.
Xwitz
Mitglied
Beiträge: 1104
Registriert: 21.06.2005 21:41

Beitrag von Xwitz »

jensemann hat geschrieben:Ein Cronjob ruft eine Datei, bzw. genauer: führt ein Programm, wiederkehrend alle X-Zeiteinheiten aus, was hier nicht ganz das ist, was er benötigt.
Ein cronjob kann man nach Datum und Uhrzeit auslösen aber Du hast recht, dann ist X ein Jahr.

Aber man kann die Funktion natürlich auch in einer Datei implementieren, die von einem user aufgerufen wird.
Antworten

Zurück zu „Coding & Technik“