Possibilité d'une île ?
Comment rajouter une colonne dans un skin à trois colonnes ?
Pardon,le véritable titre est, pour rester concret: possibilité d'une colonne...
Mais en réalité, ma question porte sur le principe à appliquer pour introduire un nouveau bloc (donc une île...), dans un skin YACS
Quelques bouts de ficelle de code, svp...
Il n'est pas ici question d'utiliser les possibilités concernant les méta-informations, possibilités nouvelles offertes par YACS, au niveau d'une page, îles possibles que je salue au passage
...
Mais bien dériver un skin trois colonnes, tel digital ou YACS_2007, en disposant de quatre colonnes au lieu des trois initiales.
La question est sans doute mieux exprimée à travers un exemple:
Prenons le style YACS_2007. Il est disposé en trois colonnes fluides contenues dans le wrapper dans l'ordre suivant: (navigation, main panel, et boîtes extra)... Je souhaite le dériver en y intégrer une quatrième colonne sur la droite contenant un nouveau style de boîtes d'information...
Je comprend qu'il s'agit au départ d'intégrer un nouvel identificateur CSS...
Oui ? Non ?
Si la réponse est oui, imaginons que je le nomme #nouv-bloc que faut-il faire au niveau de template.php, de skin.php, et ailleurs?
Si la réponse est non... Dans ce cas prenons la question plus simplement: que dois-je alors faire pour obtenir mes quatre colonnes dans mon YACS_2007 (ou mon digital) dérivé ?
Last but not least : La solution ne réside t-elle pas, plus simplement, dans l'écriture d'un layout ?
Mais en réalité, ma question porte sur le principe à appliquer pour introduire un nouveau bloc (donc une île...), dans un skin YACS
Quelques bouts de ficelle de code, svp...
Il n'est pas ici question d'utiliser les possibilités concernant les méta-informations, possibilités nouvelles offertes par YACS, au niveau d'une page, îles possibles que je salue au passage
Mais bien dériver un skin trois colonnes, tel digital ou YACS_2007, en disposant de quatre colonnes au lieu des trois initiales.
La question est sans doute mieux exprimée à travers un exemple:
Prenons le style YACS_2007. Il est disposé en trois colonnes fluides contenues dans le wrapper dans l'ordre suivant: (navigation, main panel, et boîtes extra)... Je souhaite le dériver en y intégrer une quatrième colonne sur la droite contenant un nouveau style de boîtes d'information...
Je comprend qu'il s'agit au départ d'intégrer un nouvel identificateur CSS...
Oui ? Non ?
Si la réponse est oui, imaginons que je le nomme #nouv-bloc que faut-il faire au niveau de template.php, de skin.php, et ailleurs?
Si la réponse est non... Dans ce cas prenons la question plus simplement: que dois-je alors faire pour obtenir mes quatre colonnes dans mon YACS_2007 (ou mon digital) dérivé ?
Last but not least : La solution ne réside t-elle pas, plus simplement, dans l'écriture d'un layout ?
| Lasares from L'Île-Bizard à Montréal, Québec 697 posts | JBien sûr que c'est faisable, et c'est même pas si compliqué que ça. Je prends un peu de temps plus tard aujourd'hui et je vous reviens avec des suggestions concrètes avant ce soir (heure d'Amérique). |
| Bernard from nearby-an-airport Associate, 6581 posts | Une première chose à faire est de regarder les identifiants accrochés par YACS (à travers les templates) aux composants de la page, pour étudier les boîtes qu'il conviendrait de regrouper dans cette quatrième colonne. |
| Lasares from L'Île-Bizard à Montréal, Québec 697 posts | Oups ! j'ai été présomptueux, semble-t-il. C'est plus compliqué que je ne l'ai cru à prime abord. Je vous reviens quand même avec une réponse car le défi m'intéresse, mais ça ne sera pas pour ce soir. Pour m'aiguiller vers la solution la plus efficace, pourriez-vous me fournir certaines précisions :
A+ |
Fernand![]() from Paris 1287 posts |
Lasares : et que j'ai dérivé). J'ai d'abord inversé le côté des colonnes, plaçant la colonne contenant les boîtes extra à gauche.... Ensuite, j'ai gagné de la place en mettant un accès pour les boîtes de navigation (side-panel) sous le header. Du coup, il me reste un emplacement de colonne vide (colonne de droite) que j'aimerais bien remplir avec une profusion d'informations nouvelles.En conclusion, ce style devrait se maintenir à trois colonnes, mais en réalité, le principe est celui d'un skin à quatre colonnes. Etant donné que j'ai placé le bloc side-panel sous le header, j'ai bien peur d'avoir à rajouter un id dans mon skin, genre "boîtes_extra_2" et je ne sais comment m'y prendre. Peu importe la forme. Mon objectif est de faire un portail très fourni en informations dés la première page, de manière à ce que le visiteur dispose d'un énorme choix d'informations. A priori cette colonne devrait être remplie d'une liste de liens, mais avec des titres qui les séparent, (dans l'esprit des boîtes extra). |
| Lasares from L'Île-Bizard à Montréal, Québec 697 posts | L'ajout d'une 4e colonne nécessite 3 opérations distinctes:
Supposons que notre skin s'appelle yacs_4colonnes et appelons notre 4e colonne nouv_bloc. (Vous pouvez choisir un autre nom, mais vous ne pouvez pas utiliser de caractêres accentués dans ce nom, donc "boîtes_extra_2" devra sacrifier son petit chapeau)Première étape : créons la 4e colonne par l'ajout du code HTML approprié dans template.php. Pour commencer et pour tester, insérez les lignes suivantes (sauf les 2 dernières) juste au-dessus de l'instruction créant le wrapper (les 2 dernières ligne du code ci-dessous).
Vous pourriez placer ce code ailleurs, notamment à l'intérieur du wrapper, mais ici je le place au même niveau que le wrapper et le side-panel. Quoique la structure de la page HTML varie d'un skin à l'autre (ce qui présente des avantages au niveau de la flexibilité mais des inconvénients au niveau de la rationalisation et de la documentation) ce positionnement donne le même résultat, que notre skin yacs_4colonnes soit dérivé de yacs_2007 ou de grigloo.Seconde étape : formattons notre 4e colonne à l'aide des CSS. Par exemple et pour tester, insérez la règle de style suivante dans yacs_4colonnes.css.#nouv_bloc {
Évidemment, vous ne voudrez probablement pas d'une colonne à fond rouge, mais cela permet de tester l'affichage, qui pourra être affiné plus tard. Vous pouvez inclure cette règle n'importe où dans la feuille de style mais 2 endroits semblent plus appropriés : soit au voisinage des règles relatives au wrapper, soit à la toute fin, avec vos autres règles perso.Vérification : téléportez ces 2 fichiers modifiés dans le dossier de votre skin sur le site distant et affichez une page, vous devriez avoir une boîte rouge à droite, notre 4e colonne ! Dernière étape : insérons du contenu. Ici, je ne serai pas de grande utilité, car ça demande plus de connaissance en PHP que je n'en ai. Une première façon d'inclure du contenu, c'est de le coder dans template.php, ce qu'on a déjà fait ci-dessus, à la première étape. Ce n'est vraisemblablement pas suffisant.Une deuxième façon, c'est d'appeler une fonction préxistante en PHP ou d'en créer une nouvelle et de l'appeller, à partir du fichier template.phpCréons donc une nouvelle fonction en insérant le code suivant dans skin.php, juste avant l'accolade finale }** qui précède le code ?> à la toute fin du fichier.
Enfin, décommentez la ligne Skin::nouv_bloc(); que nous avons ajoutée au fichier template.php, pour l'activer. Autrement dit, enlevez les 2 traits obliques devant cette ligne.**Vérification : téléportez ces 2 fichiers mis à jour sur votre site distant et raffraichissez la page. Notre 4e colonne, toujours rouge, affiche maintenant 2 phrases. Et maintenant : il ne vous reste plus qu'à modifier de nouveau ces 3 fichiers selon vos besoins et préférences :
Si vous aimeriez voir le résultat de ces suggestions avant de vous lancer dans l'aventure, j'ai laissé l'exemple sur mon site de test, siteoueb.com pour que vous puissiez le visualiser. Bon succès ! |
Fernand![]() from Paris 1287 posts | Lasares: je ne manque pas d'étudier tout cela et d'envoyer un retour. Mais d'ores et déjà, car le sujet me tient particulièrement à coeur, un GRAND merci, non, un IMMENSE MERCI |
Rate this page
Posted by Fernand on Apr. 28 2007, commented by Fernand on May 9 2007, (popular)

) ?