Connectix Boards

Bienvenue, vous n'êtes pas connecté. ( Se connecter - S'enregistrer )

Dernière version sortie: 0.8.4!
Venez tester la version 1.0 beta :)

RSS >  [Fix] Déplacement du sujet, d'un groupe vers son sous-groupe
Ishimaru Chiaki #1 16/08/2009 - 16h09

Groupe : Doc-rédacteur
Messages : 800
Enregistré le : 12/03/2008

Hors ligne Site Web

*en profite pendant que l'frère déjeune*

Afin de rendre le fix plus visible, je le reposte ici, dans un nouveau sujet.

En attendant la prochaine version, je me suis penchée sur un fix pour la 0.8.4
Ce fix, au lieu de ne pas afficher le groupe de sujet où l'on se trouve (ce qui avait pour effet de cacher aussi les sous-groupes de sujets qu'il contient), le rend non-sélectionnable et grisé en utilisant l'attribut disabled="disabled"

notes :
- Les lignes que j'indique pour la recherche sont en fonction d'un forum CB non modifié.  La ligne peut donc différer si vous avez fait des modifications dans au moins un des fichiers mentionnés
- Pour effectuer les modifications, si vous êtes sous Windows, je recommande Notepad++, qui gère la coloration syntaxique et l'indentation, et qui numérote les lignes à gauche de la fenêtre.

Nombre de fichiers à modifier : 2

include/lib/lib.cb.php, ligne 358

Remplacez :
/* Fonctions qui affiche un menu déroulant avec tous les forums, groupes et sous-groupes de sujets, de nom $name, avec le forum d'id $id présélectionné. */
function showForumMenu($name,$defTitle,$fid = 0,$tgid = 0,$ownf = 0,$owntg = 0,$f_optgroups=false,$tg_prefix = 'tg_',$f_prefix = 'f_',$m_style = 350, $m_class = null) {
   if ($fid*$tgid != 0) $tgid = 0;
   
   $ids = array();
   foreach ($GLOBALS['cb_str_fnames'] as $forumid => $foo) {
       $ids[$forumid] = array();
       if ($forumid != $ownf && in_array($forumid,array_keys($GLOBALS['cb_str_pf'])))
           getTgMenu($ids[$forumid],$GLOBALS['cb_str_pf'][$forumid],($f_optgroups)?'':'--',$owntg);
   }
   
   $items = array(array('name' => 'default','selected' => false,'value' => '','lang' => $defTitle));
   foreach ($ids as $forumid => $fcts) {
       if (count($fcts) > 0 || !$f_optgroups) {
           $f_optgroup = '';
           if (!$f_optgroups)
               $items[] = array('name' => $f_prefix.$forumid,'selected' => ($forumid==$fid),'value' => $GLOBALS['cb_str_fnames'][$forumid],'lang' => '');
           else
               $f_optgroup = $GLOBALS['cb_str_fnames'][$forumid];
           
           foreach ($fcts as $tgd) {
               $item = array('name' => $tg_prefix.$tgd[0],'selected' => ($tgd[0]==$tgid),'value' => $tgd[1].' '.$GLOBALS['cb_str_tgnames'][$tgd[0]],'lang' => '');
               if (!empty($f_optgroup)) $item['optgroup'] = $f_optgroup;
               $items[] = $item;
           }
       }
   }
   
   $GLOBALS['cb_tpl']->assign('list',array ( 'name' => $name, 'style' => $m_style, 'class' => $m_class, 'items' => $items ));
   return $GLOBALS['cb_tpl']->fetch('menu_list.php');
}

/* Fonction récursive pour la fonction précédente */
function getTgMenu (&$ids,$cts,$indent,$owntg) {
   foreach ($cts as $tgid) {
       if ($tgid != $owntg && $_SESSION['cb_user']->getAuth('see',$tgid) && (!in_array($tgid,$GLOBALS['cb_str_unvis']) || $_SESSION['cb_user']->isModerator())) {
           $ids[] = array($tgid,$indent);
           if (isset($GLOBALS['cb_str_ptg'][$tgid]))
               getTgMenu($ids,$GLOBALS['cb_str_ptg'][$tgid],$indent.'--',$owntg);
       }
   }
}


par :
/* Fonctions qui affiche un menu déroulant avec tous les forums, groupes et sous-groupes de sujets, de nom $name, avec le forum d'id $id présélectionné. */
function showForumMenu($name,$defTitle,$fid = 0,$tgid = 0,$ownf = 0,$owntg = 0,$f_optgroups=false,$tg_prefix = 'tg_',$f_prefix = 'f_',$m_style = 350, $m_class = null) {
   if ($fid*$tgid != 0) $tgid = 0;
   
   $ids = array();
   foreach ($GLOBALS['cb_str_fnames'] as $forumid => $foo) {
       $ids[$forumid] = array();
       if (in_array($forumid,array_keys($GLOBALS['cb_str_pf'])))
           getTgMenu($ids[$forumid],$GLOBALS['cb_str_pf'][$forumid],($f_optgroups)?'':'--',$owntg);
   }
   
   $items = array(array('name' => 'default','selected' => false,'value' => '','lang' => $defTitle,'disabled' => ''));
   foreach ($ids as $forumid => $fcts) {
       if (count($fcts) > 0 || !$f_optgroups) {
           $f_optgroup = '';
           if (!$f_optgroups)
               $items[] = array('name' => $f_prefix.$forumid,'selected' => ($forumid==$fid),'value' => $GLOBALS['cb_str_fnames'][$forumid],'lang' => '','disabled' => ($forumid==$ownf));
           else
               $f_optgroup = $GLOBALS['cb_str_fnames'][$forumid];
           
           foreach ($fcts as $tgd) {
               $item = array('name' => $tg_prefix.$tgd[0],'selected' => ($tgd[0]==$tgid),'value' => $tgd[1].' '.$GLOBALS['cb_str_tgnames'][$tgd[0]],'lang' => '','disabled' => ($tgd[0]==$owntg));
               if (!empty($f_optgroup)) $item['optgroup'] = $f_optgroup;
               $items[] = $item;
           }
       }
   }
   
   $GLOBALS['cb_tpl']->assign('list',array ( 'name' => $name, 'style' => $m_style, 'class' => $m_class, 'items' => $items ));
   return $GLOBALS['cb_tpl']->fetch('menu_list.php');
}

/* Fonction récursive pour la fonction précédente */
function getTgMenu (&$ids,$cts,$indent,$owntg) {
   foreach ($cts as $tgid) {
       if ($_SESSION['cb_user']->getAuth('see',$tgid) && (!in_array($tgid,$GLOBALS['cb_str_unvis']) || $_SESSION['cb_user']->isModerator())) {
           $ids[] = array($tgid,$indent);
           if (isset($GLOBALS['cb_str_ptg'][$tgid]))
               getTgMenu($ids,$GLOBALS['cb_str_ptg'][$tgid],$indent.'--',$owntg);
       }
   }
}


template/Official/menu_list.php, ligne 13 (remplacez "Official" par le nom de votre template si vous utilisez un template personnalisé)

Dans ce bloc :
   <?php if ( $opt ): ?>    <?php endif; ?><option value="<?php echo $elem['name']; ?>"<?php if ( $elem['selected'] ): ?> selected="selected"<?php endif; ?>><?php if ( !empty($elem['lang']) ): ?> <?php echo lang(array('item' => $elem['lang'])); ?><?php else: ?><?php echo $elem['value']; ?><?php endif; ?></option>

Après :
<?php if ( $elem['selected'] ): ?> selected="selected"<?php endif; ?>

Dans la même ligne, ajouter :
<?php if($elem['disabled']): ?> disabled="disabled"<?php endif; ?>

Sauvegardez les modifications :)

Note : Ayant peu de temps avant de partir au camping, il n'y a présentement pas de pack disponible,  Je pourrai en faire un à partir de demain.
Besoin de volontaires pour les tests du support IPv6 dans la future version 0.8.5 !
Plus d'informations ici

Mon fil Twitter
Martin #2 08/11/2009 - 01h01

Groupe : Administrateur
Messages : 3657
Enregistré le : 01/02/2005

Hors ligne Site Web

Cette idée du disabled est tout simplement excellente. Je l'ai intégré à la version suivante.
Merci.

(NB: bientot une beta en ligne, je vous fais signe dès que possible)
Posted Image
« Entre une mauvaise cuisinière et une empoisonneuse il n'y a qu'une différence d'intention. » - P. Desproges
kristoch #3 08/11/2009 - 06h00

Groupe : Acharné
Messages : 342
Enregistré le : 05/08/2009

Hors ligne Site Web

Ishimaru Chiaki @ 16/08/2009 - 16h09 a dit:

(...)
En attendant la prochaine version, je me suis penchée sur un fix pour la 0.8.4
Ce fix, au lieu de ne pas afficher le groupe de sujet où l'on se trouve (ce qui avait pour effet de cacher aussi les sous-groupes de sujets qu'il contient), le rend non-sélectionnable et grisé en utilisant l'attribut disabled="disabled"
(...)


Super!

Martin @ 08/11/2009 - 01h01 a dit:

Cette idée du disabled est tout simplement excellente. Je l'ai intégré à la version suivante.
Merci.

(NB: bientot une beta en ligne, je vous fais signe dès que possible)


j'ai vu!  ;)  :D
justement je me demandais quoi faire des 10-12 BDD encore dispo sur mon compte chez mon hébergeur...
j'ai hâte!
hé c'est pô de l'anglais hein! je ne déteste pas au contraire j'adore!  :blink:
lol
un de mes blogs : chachacha
Martin #4 08/11/2009 - 17h36

Groupe : Administrateur
Messages : 3657
Enregistré le : 01/02/2005

Hors ligne Site Web

kristoch @ 08/11/2009 - 06h00 a dit:


j'ai vu!  ;)  :D
justement je me demandais quoi faire des 10-12 BDD encore dispo sur mon compte chez mon hébergeur...
j'ai hâte!
hé c'est pô de l'anglais hein! je ne déteste pas au contraire j'adore!  :blink:
lol


Qu'est-ce que tu as vu?  :dev:
L'adresse ne serait-elle plus si secrète?

Qu'est-ce que c'est que cette histoire de bdd et d'anglais?  :wacko:
Posted Image
« Entre une mauvaise cuisinière et une empoisonneuse il n'y a qu'une différence d'intention. » - P. Desproges
kristoch #5 08/11/2009 - 20h05

Groupe : Acharné
Messages : 342
Enregistré le : 05/08/2009

Hors ligne Site Web

Martin @ 08/11/2009 - 17h36 a dit:

kristoch @ 08/11/2009 - 06h00 a dit:


j'ai vu!  ;)  :D
justement je me demandais quoi faire des 10-12 BDD encore dispo sur mon compte chez mon hébergeur...
j'ai hâte!
hé c'est pô de l'anglais hein! je ne déteste pas au contraire j'adore!  :blink:
lol


Qu'est-ce que tu as vu?  :dev:
L'adresse ne serait-elle plus si secrète?

Qu'est-ce que c'est que cette histoire de bdd et d'anglais?  :wacko:



je disais que justement ça tombe bien ai de la place chez mon hébergeur
pour des tas de base de données  :rolleyes:

et l'anglais parce que: "j'ai hâte" ne veut pas dire "I hate"
donc je déteste ou je hais car j'adore CB voyons!  :love:
un de mes blogs : chachacha

 >  Réponse rapide

Composez votre message

 >  Informations du forum

1 personne(s) présente(s) durant une période de 15 minutes (0 membre(s) et 1 invité(s)).