Jeu de squelettes Multiflex 3

Jeu de squelettes hautement paramétrable et modulable pour SPIP 2 et 3

Multiflex 3 est un jeu de squelettes (XHTML Strict) hautement paramétrable (nécessite le plugin CFG) depuis l’interface privée de SPIP et facilement modulable grâce aux nombreuses noisettes utilisées possédant diverses options.

Page d’accueil du squelette Multiflex

L’habillage graphique Multiflex 3 a été développé par G. Wolfgang. Les squelettes SPIP ont été réalisés avec la version 3.8 de Multiflex.

Attention : Ce squelette ne fonctionne actuellement qu’avec une version de SPIP >= 2

Paramétrages généraux

Configuration CFG
Configuration CFG de Multiflex

Les squelettes sont paramétrables de 2 façons :

  • l’une par CFG, où l’on n’a aucunement besoin de toucher aux fichiers squelettes
  • l’autre par surcharge des fichiers de ce jeu de squelettes (nous verrons plus loin).

Il faut donc aller dans « Configuration>CFG>Configuration du Squelette Multiflex » pour obtenir la page de paramétrage. On peut sur cette première page choisir des textes qui s’affichent dans l’en-tête. Il est possible d’utiliser la balise SPIP <multi> pour un site multilingue.

Sur la gauche, une boite contenant des liens permet d’obtenir d’autres paramétrages. Commençons par « Multiflex Layout »

Choix du layout

CFG Layout
Configuration du layout Multiflex par CFG

Il est possible de sélectionner un en-tête différent, et un corps sur 1, 2 ou 3 colonnes. Ces modifications se passent sur la page de configuration CFG ’Multiflex Layout’ :


Multiflex 2 colonnes
Layout avec « bandeau+menu » et « 2 colonnes inversées »

Ainsi, en sélectionnant un affichage sur « 2 colonnes inversées » et un en-tête avec simplement « bandeau + menu », on obtient ceci :

Sur cet exemple, il y a un trop grand nombre de rubriques donc le menu haut s’affiche sur 2 lignes ce qui est moins joli.


Multiflex 2 colonnes
Le menu latéral est complété ainsi que le centre par les informations normalement présente dans la 3è colonne

Tout en bas de la page, ce qui s’affiche lorsque l’on choisit 3 colonnes comme layout dans l’une des colonnes, s’affiche maintenant à la suite des liste d’articles (et à la suite de la première colonne - mais on peut choisir facilement entre l’un ou l’autre, cf. paramètres des noisettes plus bas) :


multiflex 1 colonne
Configuration avec une seule colonne pour l’ensemble de la page

En sélectionnant un affichage « 1 colonne » avec « Titre + menu » pour l’en-tête, cela donne :

Choix de navigation

Multiflex CFG Navigation

En allant sur le lien « Multiflex Navigation », il est possible de choisir quelques styles pour la navigation en colonne, ainsi que de définir 2 identifiants d’articles « Contact » et « A propos », liens qui se créeront alors dans l’en-tête du site.


Navigation à puces

Sur les captures précédentes, le style du menu était « Grille ». Voici « Puces », avec « Contact » non remplit (il n’apparait plus dans les liens à gauche de ’plan du site’) :

Choix de couleurs

Couleurs par défaut
Rendu des couleurs par défaut

Il est possible sur la page de configuration « Multiflex Couleurs » de proposer des couleurs pour les liens, les cadres de la troisième colonne ainsi qu’une teinte pour l’ensemble du site. Installer le plugin « Palette » vous permet de choisir des couleurs très facilement. Voici les valeurs par défaut :


Voici deux aperçus avec des valeurs différentes (il faut absolument vider le cache pour obtenir un recalcul des fichiers css compilés par SPIP) :


Surcharge et options des noisettes et squelettes

Ce squelette s’installant et s’activant comme un plugin (dans le dossier /plugins ) il est possible de surcharger ses fichiers dans son propre dossier squelettes.

Un fichier /plugins/squelette_multiflex/repertoire/fichier.ext peut être copié et modifié dans /squelettes/repertoire/fichier.ext, ce sera ce dernier qui sera lu par SPIP s’il existe.

Prenons l’exemple de l’affichage 2 colonnes qui place le contenu prévu normalement dans la 3è colonne à la suite des 2 premières. Ces informations sont donc affichées en double (page sommaire et rubriques) mais il est possible simplement de modifier cela.

Si vous copiez dans /squelettes et éditez le fichier layouts/layout2.html qui structure la page en 2 colonnes, vous verrez le code (s’il n’a pas changé depuis !) :

<!-- B. MAIN -->
<div class="main">

  <!-- B.1 MAIN NAVIGATION -->
  <div class="main-navigation">
    <!-- Navigation Level 3 -->
    <div class="round-border-topright"></div> 
	<INCLURE{fond=inc-colonne}{env}{mfx_supplements=oui}>  
  </div>

  <!-- B.1 MAIN CONTENT -->
  <div class="main-content">
	<INCLURE{fond=inc-centre}{env}{mfx_supplements=oui}>
  </div>
</div>

C’est la variable {mfx_supplements=oui} qui indique que les supplements (ce qui devrait s’afficher dans la 3è colonne si l’on choisit cet affichage) doivent s’afficher... ou non. En mettant dans la partie navigation {mfx_supplements=non}, les suppléments ne se mettront pas dans la colonne de navigation tout simplement.

Des noisettes en veux-tu en voilà !

Un certain nombre de noisettes (petits bouts de squelettes) sont présentes dans le répertoire /noisettes de Multiflex. Elles recellent souvent des paramètres qu’il est possible d’utiliser lorsqu’on les appelle avec <INCLURE> ou #INCLURE

Par exemple, voici un extrait de code présent (s’il n’a pas changé depuis) dans /noisettes/sommaire/centre.html qui correspond à ce qui va s’afficher dans la colonne centrale de la page sommaire :

<!-- Pagetitle -->
<h1 class="pagetitle"><:multiflex:actualites:></h1>

[(#REM) Articles sur une colonne (div par article)]
[(#INCLURE{fond=noisettes/article/inc/intro_articles}{env}
	{mfx_pagination_nombre=2}
	{mfx_pagination_liens_pages=non}
	{mfx_doublons=art_sommaire}
	{mfx_unique=#HASH_DOUBLONS}
	{mfx_afficher_lire_suite=oui}	
	{mfx_lien_sur_titre=oui}
	{mfx_couper_texte=500}
)]


<div class="column2-unit-left">
[(#INCLURE{fond=noisettes/article/inc/intro_articles}{env}
	{mfx_pagination_nombre=3}
	{mfx_pagination_liens_pages=non}
	{mfx_doublons=art_sommaire}
	{mfx_unique=#HASH_DOUBLONS}
	{mfx_afficher_lire_suite=oui}	
	{mfx_lien_sur_titre=oui}
	{mfx_couper_texte=400}	
)]      
</div>


<div class="column2-unit-right">
[(#INCLURE{fond=noisettes/article/inc/intro_articles}{env}
	{mfx_pagination_nombre=3}
	{mfx_pagination_liens_pages=non}
	{mfx_doublons=art_sommaire}	
	{mfx_unique=#HASH_DOUBLONS}
	{mfx_afficher_lire_suite=oui}	
	{mfx_lien_sur_titre=oui}
	{mfx_couper_texte=400}		
)]       
</div>
<!-- hr class="clear-contentunit" / --> 

On peut observer que cette noisette appelle 3 fois la noisette noisettes/article/inc/intro_articles.html avec des paramètres qui sont assez explicites.

Cela affiche 2 articles au centre, puis dessous, coupant la page en 2 colonnes, les 3 articles suivants sur une moitié gauche, puis les 3 articles suivants sur la moitié droite. Il est possible de créer 3 colonnes en utilisant les classes css "column3-unit-(left|middle|right)

Les paramètres disponibles sont généralement documentés dans la noisette qui les possède. Vous pouvez donc facilement créer de nouvelles noisettes ou modifier celles existantes pour agrémenter les squelettes.

Note sur les doublons

Les paramètres {mfx_doublons=art_sommaire} et {mfx_unique=#HASH_DOUBLONS} permettent de gérer des doublons entre squelettes appelés par une balise #INCLURE, ce que ne permet pas SPIP actuellement (et pas <INCLURE> non plus). Les balises permettant cela (#HASH_DOUBLONS et ses compagnes non mentionnées ici) sont définies dans les fichier multiflex_fonctions.php

Exemple de surcharge : changer l’image du bandeau

Vous devez copier /plugins/multiflex3/img/bg_head_middle.jpg dans votre dossier squelettes /squelettes/img/bg_head_middle.jpg, puis modifiez cette image, qui doit être, par défaut de 900*150px.

Utiliser Multiflex 3 pour un site multilingue

Le squelette multiflex permet de gérer facilement un site multilingue. Il existe plusieurs méthodes pour activer le multilinguisme. J’en
présente une ici.

Evidemment avant tout le reste, le multilinguisme doit être activé dans Spip. L’approche utilisée ici repose sur des rubriques dont les titres sont traduits grâce aux balises - ces rubriques
contiennent les articles et leurs traductions.

Pour activer le multilinguisme dans le squelette,
-  ajouter l’option $forcer_lang=true; dans le fichier
/config/mes_options.php
Si vous n’avez pas de fichier mes_options.php, vous pouvez le créer avec
le contenu suivant :

<?php
	$forcer_lang=true;
?>

-  créer un fichier entete_langues.html dans le répertoire
/squelettes/noisettes/navigation, ce fichier doit contenir :

<B_langues>
<!-- Navigation Level 0 -->
<div class="nav0">
  <ul>
	#MENU_LANG
  </ul>
</div>	
</B_langues>

Désormais, votre site basé sur Multiflex devrait fonctionner
correctement avec plusieurs langues.

Les mots-clés du squelette et leurs utilisations

Le comportement du squelette peut être adapté à l’aide de quelques mots-clés. Pour créer un mot-clé, entrer dans l’espace d’administration de votre site, onglet « Edition » puis « Mots-clés » et là choisir créer un nouveau mot-clé.

Il est ensuite possible d’affecter un mot-clé à un article (dans la fenêtre d’édition de l’article).

-  Le mot-clé ’edito’ permet d’afficher un article « A la une » sur la page sommaire du site.

-  Le mot-clé ’Pas_dans_le_menu’ permet de ne pas afficher dans le menu de navigation latéral les rubriques contenant ce mot-clé

Obtenir Multiflex 3 pour SPIP

Ce squelette est disponible en téléchargement sur la Zone :

Dépendences :
Multiflex nécessite SPIP 2 ou SPIP 3, ainsi que 2 plugins :

  • CFG version 1.10.2 ou supérieure
  • Palette 1.0 ou supérieur (optionnel)

Installation :
Multiflex s’installe comme un plugin dans le dossier /plugins

SPIP (>1.9.2) sait télécharger et installer automatiquement des plugins.

  1. créer un répertoire avec accès en écriture /plugins/auto
  2. se rendre dans la partie privée dans « Configuration>Gestion des Plugins »
  3. en bas dans le cadre « Ajouter des plugins » se trouve le champ « Adresse du plugin ou de la liste » ; Y copier l’url d’exemple (http://files.spip.org/spip-zone/paquets.rss.xml.gz) puis valider
  4. une liste de plugins aparait dans le même cadre ; selectionner ’squelette_multiflex3’ et valider ;
  5. une procedure d’installation s’effectue.
  • Refaire les points 4 et 5 avec les plugins nécessaires (CFG et Palette)
  • Activer ensuite les plugins téléchargés, installés dans le répertoire ’auto’.

Pour modifier les configurations CFG de Multiflex, vous devez être déclaré ’webmaster’, ce qui se fait en ajoutant dans son fichier config/mes_options.php le code php suivant :

// webmestres (auteurs 1 & 2 ici)
define('_ID_WEBMESTRES', '1:2');

Discussion

247 discussions

  • Kristoff23

    Ta réponse est arrivée pendant que j’écrivais la mienne , merci pour l’idée du dossier de sauvegarde des personnalisations même si je ne suis pas bien certain d’avoir compris ce principe de dédoublement , je verrais ça demain à tête reposée ...

    Super boulot , il me reste pas mal de choses à apprendre ...

    Répondre à ce message

  • Kristoff23

    Merci Marcimat , ça a marché !

    Le code de Koakidi était-il lié à une ancienne version de PHP ?

    Moi j’en sais rien mais c’est super que ça fonctionne . Je vais avoir le loisir de m’occuper de la personnalisation avec ce squelette très sympa . Je fais ce site pour le comité départemental de tennis de table de la Creuse , ça ne passionne pas les grandes foules mais c’est quelque chose que je m’étais engagé à faire en étant ignorant en programmation .Heureusement qu’il y a les forums d’entraide !

    Prochain boulot : j’ai vu qu’on peut résoudre cette histoire de logos qui subissent les réducteurs de têtes alors je vais m’en occuper ...

    Répondre à ce message

  • 1
    Kristoff23

    Je corrige suivant tes indications mais le squelette Multiflex que j’ai se présente dans mon dossier /plugins .

    Dams ce dossier il y a le dossier squelette_multiflex3 dans lequel je trouve le fichier squelette_multiflex_fonctions.php

    Je suis surpris que tu me proposes de placer ça dans un autre endroit ...?

    Bon je fais ça et je donne des nouvelles , merci

    • Lorsque tu surcharges un plugin (modifie son fonctionnement) il ne faut pas modifier directement les sources (sinon tu écraseras tes modifications à chaque mise à jour du plugin), mais bien copier les fichiers que tu souhaites modifier dans ton dossier /squelettes/ à la racine de ton site (à créer s’il n’existe pas). Dans ce dossier, tu peux créer un fichier « mes_fonctions.php » et mettre le code que je t’ai donné (entre

      <?php ... ?>

      , mais pas d’espace avant ou après). Je n’ai pas testé le code, mais je suppose que ça doit marcher.

      De la même manière, il faut que tu copies le fichier du pied de page (avec la même arborescence) dans ton dossier squelettes pour le modifier, et non modifier celui de multiflex directement.

      Bon courage.

    Répondre à ce message

  • 1
    Kristoff23

    Merci pour le truc du cadre , j’ai utilisé cadre php puis cadre html, je ne sais pas si ça se fait ...
    J’ai ajouté le code qui suit au fichier squelette_multiflex_fonctions.php :

    // balise #TOTAL_VISITES function aff_total_visites() $query = "SELECT SUM(visites) AS total_absolu FROM spip_visites" ; $result = spip_query($query) ; if ($row = spip_fetch_array($result)) return $row[’total_absolu’] ; else return "0" ;
    
    function balise_TOTAL_VISITES($p) $p->code = "aff_total_visites()" ; $p->statut = ’php’ ; return $p ;

    J’ai ensuite ajouté le code qui suit au fichier footer.html

    < !— affichage des visites du site —> <p>(#TOTAL_VISITES)>/p><p>visiteurs depuis octobre 2008</p>

    J’ai essayé avec des crochets , sans crochets , ...j’obtiens le résultat suivant dans la page d’accueil :

    ()

    visiteurs depuis octobre 2008

    • Bon, je te corrige au feeling ok ?

      A mettre dans un fichier de fonctions (squelettes/mes_fonctions.php par exemple)

      // balise #TOTAL_VISITES
      function aff_total_visites() {
      	$total = sql_getfetsel('SUM(visites) AS totaux','spip_visites');
      	return intval($total);
      }
      
      function balise_TOTAL_VISITES($p) {
      	$p->code = "aff_total_visites()"; 
      	#$p->statut = 'php'; // inutile je pense (j'ai commente du coup)
      	$p->interdire_script = false;
      	return $p ;
      }

      A mettre dans ton squelette où tu souhaites :

      #TOTAL_VISITES

    Répondre à ce message

  • 1
    Kristoff23

    En m’inspirant de ce que j’ai vu sur un autre squelette Spip , jai fait les choses suivantes :

    J’ai ajouté le code qui suit au fichier squelette_multiflex_fonctions.php :

    // balise #TOTAL_VISITES
    function aff_total_visites()
    $query = "SELECT SUM(visites) AS total_absolu FROM spip_visites" ;
    $result = spip_query($query) ;
    if ($row = spip_fetch_array($result))
    return $row[’total_absolu’] ;
    else return "0" ;

    function balise_TOTAL_VISITES($p)
    $p->code = "aff_total_visites()" ;
    $p->statut = ’php’ ;
    return $p ;

    J’ai ensuite ajouté le code qui suit au fichier footer.html ( le code est mal retranscrit car je ne sais pas recopier du code html dans cet éditeur de forum sans qu’il soit interprété !)

    > !— affichage des visites du site —>
    >p>(#TOTAL_VISITES)>/p>>p>visiteurs depuis octobre 2008>/p>

    J’ai essayé avec des crochets , sans crochets , ...j’obtiens le résultat suivant dans la page d’accueil :

    ()

    visiteurs depuis octobre 2008

    Mes tentatives doivent paraître pitoyables à quiconque sait déjà programmer mais j’ai l’impression d’avoir remué des montagnes en ouvrant tout un tas de fichiers et en les transformant ...
    Si quelqu’un voit ce qui cloche , ce serait sympa ! Ma fonction "total_visites a l’air d’être inconnue de mon spip !

    • Ah... il faut utiliser la balise cadre ou code : <cadre class="php"> code ici </cadre> Pour le squelette SPIP <cadre class="spip"> code ici </cadre>

      Si tu veux resaisir ce que tu as posté, n’hésite pas !

    Répondre à ce message

  • Kristoff23

    Désolé , c’est encore moi .

    Toujours dans le but d’afficher le nombre de visites , j’ai recopié le code proposé par KOAKIDI , je l’ai ajouté dans le fichier : squelette_multiflex_fonctions.php et ça m’a proprement fait planter le site : page blanche dans l’espace privé et public .

    Peut-être faut-il adapter ce code et modifier d’autres fichiers .

    Mon but est seulement d’afficher le nombre de visites du site depuis sa création .

    Si quelqu’un a une idée , elle est la bienvenue .

    Répondre à ce message

  • Kristoff23

    Je ne suis pas programmeur mais je tente de trouver ce que je cherche dans l’abondante et hermétique documentation que l’on peut avoir en ligne :

    Dans les fonctions proposées par Koakidi une variable spip_visites semble être utilisée .

    Est-il facile d’afficher la valeur de cette variable dans le footer où ailleurs ?

    Je n’ai pas de fichier mes_fonctions.php , je veux bien le créer avec le code proposé mais je suppose qu’il va falloir l’appeler dans un code html de la page d’accueil .

    Répondre à ce message

  • Kristoff23

    Je rectifie en relisant ma contribution :

    De nombreux squelettes construits pour SPIP ( Sarka , Alternatives , ..) affichent les statistiques en page d’accueil .

    Par exemple , le squelette alternatives , dispense un affichage du type : « VISITES : 12359 »

    Il y a peut-être des ajoûts pas trop complexes qui permettent d’obtenir ce résultat sans aller jusqu’à ce que propose Sarka-Spip :

    Statistiques des visites :
    0 aujourd’hui
    34 hier
    17125 depuis ...

    Peut-être est-il plus simple de réussir à mettre en place le plugin : « Nombre de visiteurs connectés » ?

    En tout cas , j’espère que une fois cette installation faite , le nombre de visites depuis le début n’aura pas été remis à zéro .

    Dans les forums , je lis des contributions parlant de balises « #visites » , est-ce quelque chose qui existe sous spip à l’installation où faut-il le rajouter ?

    Répondre à ce message

  • 1
    Kristoff23

    Excusez-moi de reposer une question qui peut être un peu bête : le squelette Multiflex n’a pas l’air conçu pour afficher le nombre de visites .

    Y-a-t-il une manipulation qui permette d’afficher le nombre total de visites comme sur un Spip natif ? J’ai coché « gérer les statistiques » dans la partie configuration mais rien n’apparait sur l’espace public .

    Je suis sous spip 2.0.1

    • Je ne connais pas de SPIP affichant le nombre total de visite sur la partie publique du site. Ca doit pourtant être possible, y a pas de raison. Faut juste ajouter le bon code dans la partie de multiflex affichant le pied de page par exemple.

      Activer les statistiques donne accès dans l’interface privée à des statistiques de visites, mais uniquement dans la partie privée encore à ce jour.

    Répondre à ce message

  • bon, en me basant sur :

    http://forum.spip.org/fr_183955.html

    J’ai modifié le fichier ecrire/url/page.php ligne 40

    	$url = _debut_urls_page . $type . _separateur_urls_page
    	  . $id . _terminaison_urls_page . '&lang='.$_GET['lang']; 

    et là, l’information lang passe bien sur toute les pages !
    ça fonctionne en local... mais pas toujours en ligne...

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom