Ceci est un tutoriel en 2 parties qui vous explique la crĂ©ation d’un widget et la mise en place d’un thème enfant
BP est une suite de plugins prĂ©formatĂ©s en termes d’affichage pour s’adapter au thème par dĂ©faut. BP 1.2.x utilise un affichage sur deux colonnes.
Dans certaines conditions, on peut vouloir modifier cet aspect et donc ajouter ou supprimer une colonne, ce qui oblige Ă reconfigurer le template d’origine. En clair, il s’agit de modifier la position de certaines fonctions afin de les faire coĂŻncider avec une maquette.
Première partie
Pour crĂ©er un widget, il faut utiliser le fichier “functions.php” qui se trouve dans la plupart des thèmes WP. S’il n’existe pas, il faut le crĂ©er et le mettre Ă la racine du template.
Supposons que vous voulez crĂ©er un nouveau widget dans la colonne de droite. BP fournit en natif la structure d’affichage de celui-ci. C’est Ă dire les appels Ă une fonction quelconque, ainsi que l’affichage sous forme de titre, contenu, texte additionnel, le tout entourĂ© des balises HTML nĂ©cessaires.
On va donc mettre le code suivant dans le fichier “functions.php”
if ( function_exists('register_sidebar') )
register_sidebar(array(
'name' => 'nom_du_widget',
'before_widget' => '<div id="XYZ">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>'
)
);
Cette fonction gĂ©nère l’affichage du widget sur la page d’administration des widgets.
Vous lui attribuez un nom unique Ă la ligne ‘name’ – ce que vous voulez, en majuscule ou minuscule . C’est ce nom qui s’affichera dans l’admin.
Vous devez aussi nommer le ID, par exemple ‘XYZ’, que vous intègrerez Ă la feuille de style. Si vous prĂ©fĂ©rez utiliser une classe, vous pouvez le faire aussi. Il suffit alors de remplacer div id=’XYZ’ par div class=’XYZ’.
Une fois ces modifs enregistrĂ©es, votre widget est potentiellement opĂ©rationnel. Si vous voulez en crĂ©er d’autres, il vous suffit de recopier autant de fois que nĂ©cessaire la fonction ci-dessus et de l’ajouter dans le fichier functions.php, avec un nom unique pour chacun d’eux.
Vos widgets sont Ă prĂ©sent visibles dans l’admin des widgets et vous pouvez les positionner depuis cet emplacement sur votre template.
Reste à implémenter le widget dans le template.
Pour cela vous devez ouvrir le fichier concernĂ© dans le rĂ©pertoire de votre thème. Il y en a plusieurs et c’est lĂ ou il ne faut pas se tromper. Supposons que vous voulez ajouter un de vos widgets personnels sur la page d’activitĂ© de votre site.
Vous ouvrez le fichier “activity/index.php” et vous collez le code suivant Ă l’endroit souhaitĂ©:
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('nom_du_widget') ) : ?>
/* ici vous mettez tout ce qui vous convient en terme de php, html, javascript,... Mais vous pouvez très bien ne rien mettre aussi... */
<?php endif; ?>
Ne vous laissez pas abuser par le terme sidebar: c’est Ă usage interne et BP ne vous fera pas la gueule si vous collez un widget Ă un endroit qui n’est pas une sidebar, mais carrĂ©ment Ă l’emplacement de votre contenu principal ou dans le footer ou quoi que ce soit d’autre. En fait un widget est d’abord un bout de code qui vous permet de contrĂ´ler une position dans un template.
Bien entendu ce n’est lĂ que le principe gĂ©nĂ©ral de l’implĂ©mentation. Vous devrez encore adapter ce bout de code Ă votre template Ă l’aide de la feuille de style. Vous pourrez appliquer tout ce qui vous chante pour avoir un affichage correct, Ă condition de respecter votre code de nommage des ID et des CLASS prĂ©citĂ©s.
Deuxième partie
Comme vous allez modifier des fichiers natifs et que ces modifs seront perdues Ă la prochaine mise Ă jour, WP a prĂ©vu ce cas de figure et vous offre la possibilitĂ© de crĂ©er un thème enfant. En travaillant les fichiers du thème enfant plutĂ´t que ceux du thème parent d’origine, vous ne perdrez jamais vos modifs. L’autre avantage est que vous n’avez pas Ă dupliquer la totalitĂ© du thème, mais juste les parties qui vous intĂ©ressent.
Dans l’exemple ci-dessus, vous allez crĂ©er un thème enfant auquel vous allez attribuer un nom unique., disont Toto
Allez dans wp-content/themes et crĂ©ez un dossier “Toto”
Dans ce rĂ©pertoire, vous allez crĂ©er un fichier nommĂ© “style.css”
En en-tĂŞte de fichier vous mettez obligatoirement ce commentaire:
/*
Theme Name: Toto
Theme URL: http://www.monsite.com/themes/Toto
Description:Â a 2-column theme created for WordPress.
Author:Â vous
Author URI:Â l'url de votre site
Version: 1.0
Template: bp-default
Tags:Â buddypress, two-columns
The CSS, XHTML and design is released under GPL:
http://www.opensource.org/licenses/gpl-license.php
*/
Les lignes vraiment importantes sont theme name: “le nom de VOTRE thème enfant” et Template: “le nom de votre thème principal” qui est le parent associĂ© Ă votre enfant. Ainsi WP associera les deux thèmes automatiquement, en allant voir si un enfant existe. Si c’est oui, il le lira en premier. Si c’est non, il enverra le thème parent.
Après le commentaire ci-dessus vous allez ajouter ces 2 lignes:
@import url( ../../plugins/buddypress/bp-themes/bp-default/_inc/css/adminbar.css );
@import url( ../../plugins/buddypress/bp-themes/bp-default/_inc/css/default.css );
La première ligne contrĂ´le l’affichage de la buddybar (la barre d’administration de BP…)
La seconde appelle tous les styles prĂ©vus d’origine pour buddypress.
Vous avez maintenant une copie conforme du thème original pour votre thème enfant.
Vous enregistrez le tout et vous activez ce thème pour votre site en lieu et place du thème BP par défaut.
Vous ne verrez aucun changement, mais si vous prenez pas exemple le style par défaut de la balise H1 présent dans style.css qui se trouve dans le thème BP-Default et que vous lui attribuez vos propres paramètres, vous verrez ce changement.
Il faut bien entendu écrire cela dans le nouveau fichier style.css que vous venez de créer.
Par exemple ceci qui affichera tous les titres h1 en rouge:
h1 {
color: red;
}
Le thème enfant Ă©tant prioritaire, c’est lui qui sera pris en compte Ă l’affichage. Votre modif est bien interprĂ©tĂ©e depuis le thème enfant. Vous n’avez rien touchĂ© au fichier original qui sera Ă©crasĂ© Ă la prochaine mise Ă jour et votre style Ă vous est prĂ©servĂ©, puisque BP n’Ă©crase pas les thèmes qui ne font pas partie de sa distribution.
Vous procĂ©dez de la mĂŞme manière pour toutes les autres modifs de styles, en copiant le nom originel de l’id ou de la classe Ă changer et en les collant dans le style.css de votre enfant.
Concernant les fichiers de template que vous voudriez modifier, vous procĂ©dez de la mĂŞme façon. Vous faites d’abord une copie conforme du fichier que vous voulez modifier, et le cas Ă©chĂ©ant de son chemin, comme ci-dessus “activity/index.php” que vous collez dans votre thème enfant.
Résumé de ce que vous devez voir après les manips décrites ci-dessus.
wp-content/themes/Toto
wp-content/themes/Toto/style.css
wp-content/themes/Toto/functions.php
wp-content/themes/Toto/activity/index.php
Fonctionnement général de BuddyPress
http://codex.buddypress.org/