Help - Search - Member List - Calendar
Full Version: [Traité]modification d'une fonction IPB 2.1
IPBR-FR > Entraide > Questions diverses
stelaire
bonjour a tous j'aimerai savoir si cela est possible bien sur de modifier la fonction d'ouverture fermeture du post le tant

QUOTE
Date d'ouverture du sujet
(Facultatif)  MM/JJ/AAAA    HH:MM 
Date de fermeture du sujet
(Facultatif)  MM/JJ/AAAA    HH:MM 


enfaite j'aimerai que la fonction ouverture au lieu de fermé le sujet jusqu'a sa date d'ouverture le cache (le rendre invisible)

voila mon forum est : http://digital-factory.info
merci de l'attention que vous porterez a ma requette et desolé si cela a deja eté posser ou si je me suis trompé de section

Stelaire
stelaire
un petit up
Youp3
bonjour,

avant de vous répondre j'aimerai voir la fonction de base à l'oeuvre, mais elle ne semble pas fonctionner sur mon forum de test local.

Comment fonctionne-t-elle?
Youp3
Bon, j'ai finalement réussi à voir comment elle fonctionnait et j'ai une solution. smile.gif

Mais, ben oui il en faut, il y a une contrainte : il faut deux affichages du forum pour d'abord ouvrir le sujet et ensuite l'approuver.

C'est partie pour ma solution :
Dans le fichier sources/action_public/forum.php, chercher :
CODE
$this->ipsclass->DB->do_shutdown_update( 'topics', array( 'state' => 'open' ), 'tid IN ('.implode( ",", $this->update_topics_open ) .')' );
remplacer par
CODE
$this->ipsclass->DB->do_shutdown_update( 'topics', array( 'state' => 'open', 'approved' => '1' ), 'tid IN ('.implode( ",", $this->update_topics_open ) .')' );


Dans le fichier sources/classes/post/class_post_new.php, chercher :
CODE
 //-----------------------------------------
 // Check close times...
 //-----------------------------------------
 
 if ( $state == 'open' AND ( $this->times['open'] OR $this->times['close'] )
   AND ( $this->times['close'] <= time() OR ( $this->times['open'] > time() AND !$this->times['close'] ) ) )
 {
  $state = 'closed';
ajouter après :
CODE
  $this->obj['moderate'] = 1;


Dans le fichier sources/classes/post/class_post_edit.php, chercher :
CODE
   if( $this->topic['topic_open_time'] AND $this->times['open'] )
   {
    $times['state'] = "closed";
ajouter après :
CODE
    $times['approved'] = 0;


Et voilà, normalement vous obtiendrez un comportement similaire à ce que vous souhaitez.
Prolag
QUOTE(Youp3 @ samedi 14 janvier 2006 à 19:03)
Bon, j'ai finalement réussi à voir comment elle fonctionnait et j'ai une solution. smile.gif


*


Ca marche comment ? (car j'ai jamais reussi à la faire fonctionner ^^)
Youp3
En fait j'avais mal configurer l'heure sur ma board de test. Il fallait donc que je décale d'une heure l'heure d'ouverture.

Sinon en fait c'est lors de la visualisation du forum dans lequel se trouve le sujet qu'une fonction se charge de vérifier qu'un sujet doit être ouvert.

En plus il faut faire attention car lors que tu remplis l'option dans la rédaction du sujet, le format de la date est MM/JJ/AAAA (enfin j'avais une board de test anglaise).
stelaire
merci bien je teste
stelaire
merci cela marche du tonnere
Ckarsenti
QUOTE(Youp3 @ samedi 14 janvier 2006 à 18:03)
Mais, ben oui il en faut, il y a une contrainte : il faut deux affichages du forum pour d'abord ouvrir le sujet et ensuite l'approuver.
*



J'ai pas compris ca unsure.gif Tu entends quoi par la ?
Youp3
J'entends qu'avec ma modif ton sujet est à la fois fermé et invisible.
Lorsque l'heure d'ouverture est arrivée, tu vas sur le forum où se trouve le sujet. Tu vois alors qu'il est ouvert mais toujours invisible. Tu rafraîchis la page et là il devient visible.

C'est plus clair? smile.gif
Ckarsenti
Oui donc pour les membres, la transition du fermé a la "visibilité" n'est pas visible justement. C'est ca ?
Youp3
Tout à fait. Seuls les admins et modos peuvent éventuellement voir cette double étape.
Ckarsenti
Une derniere quesiton blush.gif

Cette double etape est pour tout le monde ? J'entend par la que chaque membre devra rechargé deux fois l'index du forum pour voir le topic ? ou une fois que quelqu'un l'a fait, le topic est affiché directement pour tout le monde dans l'index du forum ?
Youp3
Une fois que la page a été chargée 2 fois (cela peut être fait par deux personnes différentes), le sujet est ouvert et visible pour tout le monde.
Ckarsenti
Oki merci bcp happy.gif
Fabien
En lisant le code j'avais l'impression que les deux actions s'effectuées en même temps. unsure.gif
Youp3
oui, moi aussi Fabien.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2012 Invision Power Services, Inc.