Skip to main content Help Control Panel

Login   A+   A-

Community «   Le forum «   Web design «   Modification d'un skin «  

Comment: Modification d'un skin

<< Previous Next >>

by Lasares on Apr. 30

Parce que le CSS a besoin d'un sélecteur. Il doit s'adresser à un élément HTML, auquel on peut ajouter un identifiant ou une classe spécifique, par exemple, < div id=section_4 class=in_focus >.

Ainsi, on peut dire par CSS que cette div, de cet id, de cette class, a tel style. Mais il aura toujours ce même style.

Le problème ici, c'est que, si l'id de la section est permanent, il n'en est pas de même du fait que cette section ait ou non le focus. Il s'agit non pas de modifier le style (attribué par le CSS qui reste permanent), mais bien l'attribution d'une valeur particulière à l'identifiant class.

En pratique, l'onglet apparaît à chaque page, mais on veut qu'il soit stylé différemment selon qu'on le voit à partir de telle ou telle page. Il faut donc changer la valeur de sa class selon une condition.

Cette condition doit être vérifiée dynamiquement. Dans template.php, elle est exprimée comme suit :
if($focus = Page::top_focus())

J'ai presque la solution finale, mais je ne parviens pas à formuler une condition équivalente dans skin.php (dérivation de skin_skeleton.php). Peut-être parce que l'ordre d'exécution des scripts fait en sorte que le focus n'existe pas enccore au moment de l'exécution de skin.php ?

Peut-être que Tof pourrait nous sortir de l'impasse. Voici où j'en suis : je remplace le code des lignes 1658 et ss. de skin_skeleteon.php par ce qui suit ou d'autres formulations équivalentes mais $context['current_focus'][0] qui est utilisé par Page::top_focus() ne semble pas exister dans mon univers...

// pass elements ids of the site bar
            
$id '';
            if((
$variant == 'tabs') && $type) {
              
$iffocus 'tab_'.$type;
                if(
$iffocus == Page::top_focus()) {
          
$id ' id="tab_'.$type.'" class='.'"has_focus'.'"';
        }
                else {
          
$id ' id="tab_'.$type.'" class='.'"off_focus'.'"';
        }
                
$type 'basic';
            }




On a si peu d'idée de ce qui est possible...