Planète

Par kgaut
Kevin Gautreau

Créer un sous thème dans Drupal

Il est possible dans drupal de créer des sous-thèmes, dans une vision objet, on aurait ainsi un thème qui hérite d'un autre.

subtheme scheme

Pour quel usage ? Et bien par exemple, vous voulez créer une version mobile de votre site (avec des spécificités au niveau de la feuille de style par exemple.) Créez simplement un sous-thème de votre thème principal et vous n'aurez juste qu'a surcharger les fichiers que vous souhaiter modifier.

Par exemple, voici l'arborescence de mon thème principal sur ce site :

path thème principal

je veux créer une version mobile ou je modifie un peu le template d'une page ainsi qu'une feuille de style.

Je commence par créer un nouveau dossier « kgaut-mobile », je crée le fichier kgaut-mobile.info qui contient les informations de mon site. En voici le contenu :


name = kgaut-mobile
#ici je défini le thème « parent » dont mon sous-thème héritera

base theme = kgaut
description = Version mobile du theme du site Kgaut.NET
screenshot = css/images/screenshot.gif
core = "6.x"
project = "kgaut-mobile"
engine = phptemplate
 
#Ici les css que je surcharge.
stylesheets[all][] = css/layout.css
stylesheets[all][] = css/style.css
 
regions[content_top] = Content top
regions[header] = Header
regions[footer_block] = Footer
regions[content_bottom] = Content bottom
 
; Information added by drupal.org packaging script on 2009-10-28
version = "6.x-2.9"
core = "6.x"
datestamp = "1256756703"


Ensuite, je copie colle les templates et les css que je veux modifier depuis mon thème principal vers mon sous-thème. Je les modifie à ma guise.

Drupal ira chercher lui même les fichiers (javascripts, css, templates...) dans le thème principal.

Note : pour les javascripts le comportement et la manip est la même que pour les css.

path sous-thème

Pour ceux qui n'ont rien compris à mes explications foireuses, voici quelques liens pour mieux comprendre:

Par Simon Georges
Simon Georges
Drupal depuis plus de 10 ans, SEO depuis 3 ans

CPH 2010 : Drupal distros dos and don'ts

Cette conférence était menée par Jeff Miccolis de Development Seed et Irakli Nadareishvili de Phase2 Technology, l'un et l'autre sont à la tête d'une armée de développeurs ayant formé deux distributions, ayant une renommée dans l'écosystème Drupal, respectivement Open Atrium et Open Publish

Par Simon Georges
Simon Georges
Drupal depuis plus de 10 ans, SEO depuis 3 ans

CPH 2010 : Drupal distros dos and don'ts

Cette conférence était menée par Jeff Miccolis de Development Seed et Irakli Nadareishvili de Phase2 Technology, l'un et l'autre sont à la tête d'une armée de développeurs ayant formé deux distributions, ayant une renommée dans l'écosystème Drupal, respectivement Open Atrium et Open Publish

Par Artusamak
Julien Dubois

Ajouter une étape de confirmation à vos formulaires

C’est une petite fonctionnalité dont vous pourriez avoir besoin, voici une présentation du fonctionnement d’une telle fonctionnalité.
A première vue cela peut sembler très facile à implémenter mais au final ça ne l’est pas tant que ça.

Prenons l’exemple d’un formulaire qui permet de clore des votes sur des sessions, cette action étant importante nous allons ajouter une étape de confirmation avant de faire le traitement.

Je simplifie volontairement le formulaire que l’on créé, résumons le à un simple bouton d’action :

<?php
/**
 * Form to close votes on sessions.
 */
function feature_conference_close_sessions_form(&#038;$form_state) {
 
$form['submit'] = array(
 
'#type' => 'submit',
 
'#value' => t('Clore les votes'),
 );
 return
$form;
}
?>

Ensuite dans le traitement de ce formulaire il faut faire une redirection vers le formulaire de confirmation. Aucun traitement ne doit être fait ici sachant que le formulaire n’a pas encore été confirmé par l’utilisateur.

<?php
/**
 * Redirect to confirmation form.
 */
function feature_conference_close_sessions_form_submit($form, &#038;$form_state) {
 
$form_state['redirect'] = 'sessions/close/confirm';
}
?>

Sachant que nous faisons une redirection vers une entrée de menu, il faut la déclarer via un hook_menu().

<?php
/**
 * Implement hook_menu().
 */
function feature_conference_menu() {
 return array(
 
'sessions/close/confirm' => array(
 
'page callback' => 'drupal_get_form',
 
'page arguments' => array('feature_conference_close_sessions_confirm_form'),
 
'access callback' => TRUE,
 ),
}
?>

Dans ce formulaire il vous faut utiliser la fonction confirm_form() (http://api.drupal.org/api/function/confirm_form/6) pour obtenir la page de confirmation.

<?php
/**
 * Confirmation form before closing sessions.
 */
function feature_conference_close_sessions_confirm_form(&#038;$form_state) {
 
$form = array();
 
$desc = "Les votes ne seront plus possibles.";
 return
confirm_form($form, "Êtes-vous sûr de vouloir clore les votes ?",
 
"<front>", $desc);
}
?>

Ensuite on retombe dans le fonctionnement classique des formulaires, il suffit de faire le traitement des données dans la fonction de submit du formulaire.

<?php
/**
 * Close votes on sessions, send email to rejected contributions' authors
 */
function feature_conference_close_sessions_confirm_form_submit($form, &#038;$form_state) {
 // Set a variable to status closed
 
variable_set('feature_conference_status', 'closed');
 
drupal_set_message("Les votes sur les sessions sont maintenant clos.");
 
drupal_goto('<front>');
}
?>

Et nous voilà avec un formulaire de confirmation fonctionnel. Le cas d’usage est simple, si vous souhaitez faire une action plus avancée comme par exemple clore une session précise, il faut que vous passiez les données dans le formulaire de confirmation via un ou plusieurs arguments à l’url de traitement car le fait d’effectuer une redirection entraine la perte des données soumise par le formulaire principal.

Par kgaut
Kevin Gautreau

Bien débuter avec Drupal

Remise à jour de l'article de mon ancien blog.

Logo Drupal

Drupal est un CMS (Content Management System) beaucoup plus puissant et souple que ses concurrents (joomla, CMS Made Simple, wordpress et compagnie).

Même s'il faut un peu plus de temps pour se mettre dedans, au final vous pouvez vraiment en faire ce que vous voulez.

Un exemple : Sous Joomla, le contenu est formaté : un article est (en gros) composé d'un titre et d'un contenu. Sous Drupal, avec l'extension CCK (Content Construction Kit) vous pouvez créer les contenus de la forme que vous voulez avec les éléments que vous voulez. Ici, si vous allez sur la page réalisations, vous verrez des contenus composés d’un titre, d’un screenshot, d’une date de mise en ligne…

Plus d’informations sur CCK : http://www.lektum.info/2009/05/15/mon-guide-drupal-3-construire-les-contenus-avec-drupal/

CCK est tellement populaire qu’il sera intégré par default dans la prochaine version de Drupal, la 7 devant sortir cet été.

Aussi Drupal est multi-sites, c’est-à-dire que depuis le même dossier sur votre serveur, vous pouvez faire tourner autant de sites que vous le voulez. Les dossiers de modules, de thèmes étant partagés pas besoin d’appliquer une mise à jour sur 36 sites différents.

Plus d’informations sur le multi-sites : http://www.lektum.info/2009/02/24/installer-une-plateforme-multi-sites-avec-drupal/

Un truc, plutôt que vous lancer la tête baissée dans la bestiole, je vous recommande sérieusement la lecture du livre « Concevoir et déployer ses sites web avec Drupal » écrit par Yoran Brault qui est la référence en livre francophone sur Drupal.

D’autres liens en vrac :

Tags: 

Par kgaut
Kevin Gautreau

Bien débuter avec Drupal

Remise à jour de l'article de mon ancien blog.

Logo Drupal

Drupal est un CMS (Content Management System) beaucoup plus puissant et souple que ses concurrents (joomla, CMS Made Simple, wordpress et compagnie).

Même s'il faut un peu plus de temps pour se mettre dedans, au final vous pouvez vraiment en faire ce que vous voulez.

Un exemple : Sous Joomla, le contenu est formaté : un article est (en gros) composé d'un titre et d'un contenu. Sous Drupal, avec l'extension CCK (Content Construction Kit) vous pouvez créer les contenus de la forme que vous voulez avec les éléments que vous voulez. Ici, si vous allez sur la page réalisations, vous verrez des contenus composés d’un titre, d’un screenshot, d’une date de mise en ligne…

Plus d’informations sur CCK : http://www.lektum.info/2009/05/15/mon-guide-drupal-3-construire-les-contenus-avec-drupal/

CCK est tellement populaire qu’il sera intégré par default dans la prochaine version de Drupal, la 7 devant sortir cet été.

Aussi Drupal est multi-sites, c’est-à-dire que depuis le même dossier sur votre serveur, vous pouvez faire tourner autant de sites que vous le voulez. Les dossiers de modules, de thèmes étant partagés pas besoin d’appliquer une mise à jour sur 36 sites différents.

Plus d’informations sur le multi-sites : http://www.lektum.info/2009/02/24/installer-une-plateforme-multi-sites-avec-drupal/

Un truc, plutôt que vous lancer la tête baissée dans la bestiole, je vous recommande sérieusement la lecture du livre « Concevoir et déployer ses sites web avec Drupal » écrit par Yoran Brault qui est la référence en livre francophone sur Drupal.

D’autres liens en vrac :

Tags: 

Par kgaut
Kevin Gautreau

Et on avance!

Comme vous l'avez remarqué, ce site à changé. Petite refonte de facade, mais gros changements sous le moteur. C'est maintenant drupal qui gère tout le site.
Mon ancien blog reste, en lecture seule mais sera au fur et à mesure remplacé par le système d'article interne à Drupal. Je vais essayer de reprendre un rythme de publication plus soutenu que ces derniers mois qui ont été bien chargés!
 

Tags: 

Par kgaut
Kevin Gautreau

Et on avance!

Comme vous l'avez remarqué, ce site à changé. Petite refonte de facade, mais gros changements sous le moteur. C'est maintenant drupal qui gère tout le site.
Mon ancien blog reste, en lecture seule mais sera au fur et à mesure remplacé par le système d'article interne à Drupal. Je vais essayer de reprendre un rythme de publication plus soutenu que ces derniers mois qui ont été bien chargés!
 

Tags: 

Par GoZ
Fabien CLEMENT

Premiers clics sous OpenAtrium 1-BETA4

openatrium

1. Introduction

Development Seed vient de passer sa plateforme collaborative basée sur Drupal 6 à la version 1.0-BETA4. Des chiffres, des lettres, une beta de plus... Oui, mais pas n’importe quelle beta !

Outre la modification du thème avec ré-agencement des boutons, fil d’ariane, logo, diminution de la taille du header et bien d’autres permettant une visibilité accrue, la principale attente de cette nouvelle béta-mouture se trouve dans l’utilisation des versions 3.x des modules spaces et context, 2.x pour le module Admin et la suppression de FeedsAPI par Feeds.

Nous allons faire un premier état des lieux en explorant le potentiel des nouvelles fonctionnalités ainsi que l’ergonomie de l'interface disponibles juste après une installation basique (utilisation des modules activés par défaut uniquement).

en lire plus

Par GoZ
Fabien CLEMENT

Installer OpenAtrium sous MAMP

1. Introduction

Avec la sortie de OpenAtrium 1.0-beta4, j'ai bien entendu voulu le tester et ainsi pouvoir voir les améliorations apportées par rapport à la version précédente.

Travaillant depuis peu sous Mac, j'ai installé MAMP pour pouvoir faire mes tests rapidement en local (peut-être n'est-ce pas la meilleure solution pour développer sous mac, je reste ouvert à toute proposition).

Premier tour de roue, installation de drush et drush_make pour pouvoir suivre les étapes de l'installation fournies par Development Seed : http://openatrium.com/node/35.

en lire plus

Par badgones

Vue Calendrier avec Drupal - Gestion d'évènements

Gérer des contenus événements et un agenda en vue calendrier avec Drupal

Très bon article publié sur le site http://www.davidpetit.com/blog/drupal/gerer-contenus-evenements-agenda-vue-calendrier-drupal.
Je me permet de le recopier pour mémo.
 
 
Attention, cet article est pour Drupal 6, la version Drupal 7 est ici : Tutorial : Vue Calendrier avec Drupal 7 et Views 3, gestion des événements

 

Bonjour ! Il existe plusieurs méthodes pour gérer des événements et un agenda sous Drupal. Ceci dit, je souhaite partager avec vous la méthode que j'utilise pour y arriver. J'expliquerai aussi comment obtenir un affichage avec calendrier. On utilisera donc pour ceci les modules CCK, Views, Date et Calendar. Je suppose ainsi pour ce tutorial que vous savez installer des modules dans Drupal.

Installation des modules

La première chose à faire, est d'installer les modules requis:
Le rôle de ces modules : 
CCK est un module qui sert à créer des champs personnalisés dans ses propres types de contenu.
Views est un module qui permet de créer des affichages précis de tous les types de contenus ou d'éléments dans Drupal.
Date est ajoute le champ de type date aux champs disponibles dans CCK.
Calendar permet de faire des affichages de type calendrier dans Views.

Création du type de contenu "Evénement"

Une fois les modules installés, nous allons commencer par créer le contenu personnalisé qui représentera les événements. Pour cela, il faut aller dans "Gestion du contenu -> Types de contenu -> Ajouter". Vous remplissez vos champs et vous devriez obtenir quelque chose qui ressemble à ceci:

en lire plus

Par GoZ
Fabien CLEMENT

DrupalForFirebug - Debugger Drupal avec Firebug

1. Présentation de DrupalForFirebug

Lors du développement de sites sous Drupal, il est souvent nécessaires à un moment donné d'obtenir des informations sur des variables maisons ou gérées par Drupal. A titre indicatif, les plus courantes sont $node ou $form.

DrupalForFirebug permet donc d'afficher dans Firebug le contenu de variables par l'intermédiaire d'une méthode firep() et donne en tout temps le contenu des variables courantes drupal : $form, $node, $view, requêtes sql.

Nous allons voir dans un premier temps comment installer le module puis les fonctionnalités disponibles.

en lire plus

Par Artusamak
Julien Dubois

Créer des templates (fichier.tpl.php) pour themer vos modules

Lors de la création de vos modules vous pouvez être amenés à mettre en forme votre contenu pour garder une approche cohérence avec la dissociation fond / forme. Il est donc nécessaire de donner la possibilité au themer de pouvoir modifier la mise en forme du contenu que vous aller afficher.
Afin de rendre une telle action possible, vous allez devoir déclarer au sein de votre module un hook_theme, qui va déclarer les éléments qui pourront être themés via vos templates.
Le hook_theme est simplement constitué d’un tableau d’éléments skinnables avec pour chaque entrée une clé « template » qui correspond au nom du fichier .tpl.php utilisé pour le theme et une clé « arguments » correspondant à un tableau de paramètres à passer à la fonction de theme().

function hook_theme() {
  return array(
    'my_themeable_call' => array(
      'template' => 'gabarit.tpl.php',
      'arguments' => array("param1" => NULL),
    ),
  );
}

A noter : Le « .tpl.php » est facultatif car toujours suggéré par le moteur de template et il est recommandé d’utiliser le même nom comme clé et comme nom de fichier pour le template. (Les noms sont ici différents pour vous permettre de décortiquer la mécanique). [Merci Cyril pour la remarque]

Voilà votre fonction de thème déclarée, il ne reste plus qu’à l’utiliser.
Prenons l’exemple d’un bloc, vous souhaitez utiliser votre fonction de thème dans son contenu, il vous suffit d’utiliser dans le contenu du bloc (cf hook_block) votre fonction de theme : $bloc['content'] = theme(‘my_themeable_call’, $param1);
De cette façon vous enverrez à votre fichier de template la variable $param1 (pouvant contenir tout type de données). Si vous omettez de passer un argument, la valeur par défaut déclarée dans le hook_theme sera utilisée (dans notre exemple si j’omets $param1, sa valeur sera NULL).

Plaçons-nous maintenant dans notre fichier de template gabarit.tpl.php, c’est le fichier que votre themer pourra surcharger en le copiant collant dans le dossier de son thème.
Les variables à disposition sont celles que vous avez passé en paramètres lors de l’appel de la fonction de thème (ici $param1) et les éventuelles variables ajoutées par les fonctions de preprocess. (La signature de la fonction est template_preprocess_my_themeable_call, surchargeable par THEME_preprocess_my_themeable_call).

De cette façon vous pouvez donc créer vos propres fichiers de theming lors de la publication de vos modules afin de vous faire adorer par les themers !

tag

Pages