Planète

Par Alexeo
Alexeo
Je suis diplômé du Master MONE (E-Business) d'Amiens, ma première expérience dans le web a été dans le SEO, depuis c'est devenu mon expertise. J'ai découvert dans un premier temps Wordpress, puis je suis passé à Joomla et désormais je veux m'attaquer à Drupal.

Référencement site Ham

Faites confiance à Alexeo, le spécialiste du referencement naturel à Ham (80400) dans la Somme (Picardie –FR).

Par vincent59
Vincent Liefooghe

Créer un type de contenu et y attacher des champs

Il est possible via l'IHM de créer un nouveau type de contenu et d'y ajouter des champs. Tout ceci peut également se faire de manière programmatique, par un simple module.

Le module va comporter au moins 2 fichiers : le .info qui décrit le module, et le .module qui comprend le code.

Pour notre démonstration, nous allons créer un module qui permettra de créer des contenus qui seront repris par Views Slideshow par la suite.

Le fichier monslideshow.info est simple :

name = Mon Slideshow
description = [slideshow] Custom Slideshow based on Views Slideshow
package = Custom modules
core = 7.x
version = 7.x-dev-0.7
dependencies[] = views
dependencies[] = link
stylesheets[all][] = vcmslideshow.css

Le type de contenu et les champs seront créés dans le fichier monslideshow.install :

function monslideshow_install () {

// Add Node Type mon_carrousel if it does not exist
 if (!in_array('mon_carrousel', node_type_get_names())) {
    $type = array(
      'type' => 'mon_carrousel',
      'name' => st('Custom Carrousel Accueil'),
      'base' => 'node_content',
      'description' => st('Utiliser Custom Carrousel pour les articles mis en évidence.'),
      'custom' => 1,
      'modified' => 1,
      'locked' => 0 
  	);

    $type = node_type_set_defaults($type);
    node_type_save($type);
    node_add_body_field($type);

// Turn off comments
  variable_set('comment_mon_carrousel', '1');
  variable_set('node_submitted_mon_carrousel', 0);  
  }

// Ajout d'un champ de type Link (apporté par le module link)

  $field = array(
    'field_name' => 'field_lien',
    'type' => 'link_field',
    'cardinality' => 1,
    'locked' => FALSE,
    'indexes' => array(),
    'settings' => array(
        'attributes' => array(
          'class' => '',
          'rel' => '',
          'target' => 'default',
        ),
        'display' => array(
          'url_cutoff' => 80,
        ),
        'enable_tokens' => 1,
        'title' => 'optional',
        'title_maxlength' => 128,
        'title_value' => '',
        'url' => 0,    ),
    'storage' => array(
      'type' => 'field_sql_storage',
      'settings' => array(),
    ),
  );
  field_create_field($field);
 
// On attache ensuite au type de contenu mon_carrousel

  $instance = array (
    'field_name' => 'field_lien',
    'entity_type' => 'node',
    'label' => 'Lien',
    'bundle' => 'mon_carrousel',
    'description' => st('Lien vers la page.'),
    'required' => FALSE,
    'settings' => array(
        'attributes' => array(
          'class' => '',
          'configurable_title' => 0,
          'rel' => '',
          'target' => 'default',
          'title' => '',
        ),
        'display' => array(
          'url_cutoff' => '80',
        ),
        'enable_tokens' => 1,
        'title' => 'optional',
        'title_maxlength' => '128',
        'title_value' => '',
        'url' => 0,
        'user_register_form' => FALSE,
        'validate_url' => 1,
      ),
      'widget' => array(
        'active' => 0,
        'module' => 'link',
        'settings' => array(),
        'type' => 'link_field',
        'weight' => '32',
      )
      
  );
 
  field_create_instance($instance);



}

Catégorie: 


Tag: 

Par vincent59
Vincent Liefooghe

Développement de modules

L'une des grandes force de Drupal est d'être un mélange entre le CMS pur souche et la plate-forme de construction (CMF = Content Management Framework).

Il a été conçu de base pour être étendu, via ses mécanismes de <em>hooks</em>, et ses nombreuses API documentées (cf . http://api.drupal.org/api/drupal).

De plus il dispose d'une base importante de modules "contribués", qui permettent d'étendre les fonctionnalités. Mais parfois, les besoins d'un projet sont tellement spécifiques qu'il est nécessaire de développer un module. Dans ce cas, il est important, pour permettre une intégration optimale, de respecter certaines règles : utilisation des API (encore elles), des fonctions Drupal (notamment pour les accès à la base de données), et des bonnes pratiques de codage.

On peut se reposer sur une documentation bien fournie, que ce soit en ligne (https://drupal.org/documentation/develop), ou via des livres, par exemple chez Apress http://www.drupalbook.com/ ou Packt publishing : http://www.packtpub.com/drupal-7-module-development/book.

Depuis la V7, les Entities permettent d'ajouter des champs à tout contenu spécifique ce qui étend encore un peu plus les possibilités.

Bref, il y a pas mal de choses à faire...

Catégorie: 


Tag: 

Par vincent59
Vincent Liefooghe

Performances Drupal

Drupal est généralement basé sur une plate-forme LAMP (Linux / Apache / MySQL / PHP), même si on peut au final changer la majorité des couches, sauf le PHP.

Plusieurs options sont donc possibles pour améliorer les performances, qui peuvent parfois être calamiteuses sur un serveur mal dimensionné :

  • O.S. (méme si c'est souvent en dernier recours qu'on va faire le tuning à ce niveau)
  • Serveur http : Apache n'est pas le plus rapide, mais il est le plus courant
  • Base de données : l'optimisation de la base MySQL est l'un des gros facteurs de gains
  • PHP : le mode de fonctionnement et l'ajout d'un OpCode permettent de gagner encore.

 

Catégorie: 


Tag: 

Par admin

Drupal Lyon - jeudi 21 février : REX déploiement de sites et travail en équipe

Jeudi 21février, notre réunion-conférence Drupal portera sur le sujet suivant :

  • "Retour d'expérience sur le déploiement de sites et le travail en équipe" par Nicolas

  • REX par Laetitia et ceux qui voudront en parler

Vous pourrez aussi intervenir pendant les échanges de questions et expériences.

Lieu : Ecole Epitech, 86 Bd Vivier Merle, 96003 Lyon (8 minutes à pied de la gare de la Part-Dieu).

Heure ; 19 h. Arrivez bien à l'heure pour que les élèves puissent vous guider. Merci.

Pour la bonne organisation de la réunion, inscrivez-vous svp sur http://www.meetup.com/drupal-france-francophonie/events/102990082/ !

Réunions suivantes :

  • 21 mars : Optimisation des performances par Aurélien
  • Avril : Altération du comportement du Core par David + Atelier Dépannage
  • Mai : Applications mobiles et Drupal par Stéphane
  • Juin : Drupal 8 par Léon
Par Alexeo
Alexeo
Je suis diplômé du Master MONE (E-Business) d'Amiens, ma première expérience dans le web a été dans le SEO, depuis c'est devenu mon expertise. J'ai découvert dans un premier temps Wordpress, puis je suis passé à Joomla et désormais je veux m'attaquer à Drupal.

Référencement site Guise

Découvrez comment améliorer le positionnement de votre site web avec Alexeo, le spécialiste du référencement naturel à Guise (02100 - Aisne) en Picardie.

Par bisonbleu

Views | Comment additionner toutes les valeurs pour un champ entier

Voici un petit truc fort sympathique et que je considère être des plus utiles.

Le cas d'usage - J'ai un type de contenu (tdc) que j'ai personnalisé pour des garderies. Grâce à ce tdc, les proprios peuvent entre autres choses annoncer le nombre de places disponibles dans leur établissement. La création d'une liste de garderies affichant leurs disponibilités est relativement aisée. Mais qu'en est-il de la possibilité d'afficher le nombre total des places disponibles pour l'ensemble des garderies apparaissant dans la liste? Autrement dit, comment faire pour additionner les valeurs d'un champ 'places disponibles' et présenter le résultat dans un bloc?

Share page with AddThis
Par bisonbleu

Views | Comment additionner toutes les valeurs pour un champ entier

Voici un petit truc fort sympathique et que je considère être des plus utiles.

Le cas d'usage - J'ai un type de contenu (tdc) que j'ai personnalisé pour des garderies. Grâce à ce tdc, les proprios peuvent entre autres choses annoncer le nombre de places disponibles dans leur établissement. La création d'une liste de garderies affichant leurs disponibilités est relativement aisée. Mais qu'en est-il de la possibilité d'afficher le nombre total des places disponibles pour l'ensemble des garderies apparaissant dans la liste? Autrement dit, comment faire pour additionner les valeurs d'un champ 'places disponibles' et présenter le résultat dans un bloc?

Share page with AddThis
Par bisonbleu

Views | Comment additionner toutes les valeurs pour un champ entier

Voici un petit truc fort sympathique et que je considère être des plus utiles.

Le cas d'usage - J'ai un type de contenu (tdc) que j'ai personnalisé pour des garderies. Grâce à ce tdc, les proprios peuvent entre autres choses annoncer le nombre de places disponibles dans leur établissement. La création d'une liste de garderies affichant leurs disponibilités est relativement aisée. Mais qu'en est-il de la possibilité d'afficher le nombre total des places disponibles pour l'ensemble des garderies apparaissant dans la liste? Autrement dit, comment faire pour additionner les valeurs d'un champ 'places disponibles' et présenter le résultat dans un bloc?

Par bisonbleu

How to count or add all values for an integer field in Views

Views | Comment additionner toutes les valeurs pour un champ entier

Voici un petit truc fort sympathique et que je considère être des plus utiles.

Le cas d'usage - J'ai un type de contenu (tdc) que j'ai personnalisé pour des garderies. Grâce à ce tdc, les proprios peuvent entre autres choses annoncer le nombre de places disponibles dans leur établissement. La création d'une liste de garderies affichant leurs disponibilités est relativement aisée. Mais qu'en est-il de la possibilité d'afficher le nombre total des places disponibles pour l'ensemble des garderies apparaissant dans la liste? Autrement dit, comment faire pour additionner les valeurs d'un champ 'places disponibles' et présenter le résultat dans un bloc?

ren.admin
mar 29/01/2013 - 08:49

Par bisonbleu

How to count or add all values for an integer field in Views

Views | Comment additionner toutes les valeurs pour un champ entier

Voici un petit truc fort sympathique et que je considère être des plus utiles.

Le cas d'usage - J'ai un type de contenu (tdc) que j'ai personnalisé pour des garderies. Grâce à ce tdc, les proprios peuvent entre autres choses annoncer le nombre de places disponibles dans leur établissement. La création d'une liste de garderies affichant leurs disponibilités est relativement aisée. Mais qu'en est-il de la possibilité d'afficher le nombre total des places disponibles pour l'ensemble des garderies apparaissant dans la liste? Autrement dit, comment faire pour additionner les valeurs d'un champ 'places disponibles' et présenter le résultat dans un bloc?

ren.admin
mar 29/01/2013 - 08:49

Par Alexeo
Alexeo
Je suis diplômé du Master MONE (E-Business) d'Amiens, ma première expérience dans le web a été dans le SEO, depuis c'est devenu mon expertise. J'ai découvert dans un premier temps Wordpress, puis je suis passé à Joomla et désormais je veux m'attaquer à Drupal.

Creation site web

Découvrez comment créer simplement et rapidement un site web avec Alexeo, votre spécialiste du web à Saint-Quentin (02100).

Par darkjeff

Modules indispensable pour l'administration

Simpliez l'administration de Drupal

     Notre beau CMS Drupal n'a pas d'interface d'administration indépendante de site qui est présenté aux visiteurs. Voici quelques modules qui vont vous rendre l'interface plus utilisable. 

Par darkjeff

Utilisez Drupal derière un proxy

Drupal 7 derrière un proxy

    Vous êtes dans une entreprise qui filtre la sortie internet avec un proxy web ? Comme vous je dois faire mes mise à jour de module et de traduction à la main.  Bonne nouvelle, depuis la version 7.16 de Drupal permet d'utiliser un proxy. 

 

Enfin le http_proxy

 

Par Alexeo
Alexeo
Je suis diplômé du Master MONE (E-Business) d'Amiens, ma première expérience dans le web a été dans le SEO, depuis c'est devenu mon expertise. J'ai découvert dans un premier temps Wordpress, puis je suis passé à Joomla et désormais je veux m'attaquer à Drupal.

Utilité du plan de site

Découvrez en quoi le plan de site est un élément très important d’un point de vue référencement sur un site Internet.

Par Alexeo
Alexeo
Je suis diplômé du Master MONE (E-Business) d'Amiens, ma première expérience dans le web a été dans le SEO, depuis c'est devenu mon expertise. J'ai découvert dans un premier temps Wordpress, puis je suis passé à Joomla et désormais je veux m'attaquer à Drupal.

J’ai testé pour vous Weebly

Weebly vous permet de créer vous-même votre propre site Internet sans avoir besoin de dépenser le moindre centime, Alexeo l’a testé pour vous.

Par Alexeo
Alexeo
Je suis diplômé du Master MONE (E-Business) d'Amiens, ma première expérience dans le web a été dans le SEO, depuis c'est devenu mon expertise. J'ai découvert dans un premier temps Wordpress, puis je suis passé à Joomla et désormais je veux m'attaquer à Drupal.

E-réputation : outils d’analyse

L’E-Réputation est une opinion commune d’une marque, d’une société sur le web, il est possible de la mesurer avec différents outils sur le web.

Par j0nathan

Liens de menu en ligne dans Drupal 7

Aujourd’hui j'avais une de ces taches d’intégration Drupal qui semble constamment resurgir: celle de transformer un bloc du module menu d'une liste html a un jeu de liens en ligne. En images je devais me rendre

de ça: Menu Drupal standard à ça: Liens tel que affiché dans le design

Comme d'habitude je fait surtout du développement de modules et des taches semblables chez Koumbit, j'étais conscient que Drupal avait déjà une classe pour des listes contenant des liens en ligne, "lists inline", mais je ne savais pas comment changé ces valeurs au niveau du thème. Donc j'ai visité la page API de theme_menu_tree() pour y trouver de l'inspiration, ce que j'ai trouvé dans un commentaire de wgsimon. Un thème Drupal peut supplanter la fonction de thème d'un menu précis dans Drupal avec la pattern THEME_menu_tree__MENU_NAME().

J'ai ajouté le code suivant au template.php de mon thème, pour rendre le menu d'usager standard de Drupal ainsi que notre menu pour les visiteurs avec le style Drupal de liens en ligne:

/**
 * Afficher le menu d'usager en ligne
 */
function customtheme_menu_tree__user_menu($variables) {
  return '<ul class="links inline clearfix">' . $variables['tree'] . '</ul>';
}

/**
 * Afficher le menu d'usager anonyme en ligne
 */
function customtheme_menu_tree__menu_user_menu_anonymous_($variables) {
  return '<ul class="links inline clearfix">' . $variables['tree'] . '</ul>';
}

Vous n'avez qu'à remplacer le mot customtheme avec le nom de votre thème et ensuite changer les noms des menus pour utiliser ça sur n'importe quel menu.

Pour le changeur de langage j'ai fait quelque-chose de semblable, après avoir consulter locale_block_view() dans le API. J'ai vue que le bloc du changeur de langue utilise theme(&#039;links__locale_block&#039;, $variables); pour fournir son contenu. J'ai supplanter cette fonction dans template.php:

/**
 * Afficher les liens du changeur de langue en ligne
 */
function customtheme_links__locale_block($variables) {
  array_push($variables['attributes']['class'], 'links', 'inline', 'clearfix');
  return theme('links', $variables);
}

J'ai donc découvert que la pattern theme_function__object_name marche pour n'importe quel fonction thème appeler de cette manière. Je suis sur que ceci est précisé quelque-part dans la documentation de l'API de Drupal.

Mes menus ressemblais maintenant à ceci: Liens menu après les changements dans template.php

La dernière étape varie selon le thème. Dans mon cas j'ai déplacé &amp;lt;div class=&quot;region region-header&quot;&amp;gt; et son contenu à avant le logo, dans page.tpl.php, et j'ai inséré le CSS suivant dans les fichiers appropriés:

.region-header .block {
  display: inline-block;
  margin-bottom: 0;
}

.region-header {
  text-align: right;
}

Le résultat: Liens après les modifications du CSS

Il reste évidement à finir l'intégration, mais mon soucis principal jusqu'à présent c'était d'éviter de charger mon CSS avec du code déjà présent dans Drupal.

Pour commenter cet article, faire des suggestions, et voir les échantillons de code avec du syntaxe couleur.

Par j0nathan

Liens de menu en ligne dans Drupal 7

Aujourd’hui j'avais une de ces taches d’intégration Drupal qui semble constamment resurgir: celle de transformer un bloc du module menu d'une liste html a un jeu de liens en ligne. En images je devais me rendre

de ça: Menu Drupal standard à ça: Liens tel que affiché dans le design

Comme d'habitude je fait surtout du développement de modules et des taches semblables chez Koumbit, j'étais conscient que Drupal avait déjà une classe pour des listes contenant des liens en ligne, "lists inline", mais je ne savais pas comment changé ces valeurs au niveau du thème. Donc j'ai visité la page API de theme_menu_tree() pour y trouver de l'inspiration, ce que j'ai trouvé dans un commentaire de wgsimon. Un thème Drupal peut supplanter la fonction de thème d'un menu précis dans Drupal avec la pattern THEME_menu_tree__MENU_NAME().

J'ai ajouté le code suivant au template.php de mon thème, pour rendre le menu d'usager standard de Drupal ainsi que notre menu pour les visiteurs avec le style Drupal de liens en ligne:

/**
 * Afficher le menu d'usager en ligne
 */
function customtheme_menu_tree__user_menu($variables) {
  return '<ul class="links inline clearfix">' . $variables['tree'] . '</ul>';
}

/**
 * Afficher le menu d'usager anonyme en ligne
 */
function customtheme_menu_tree__menu_user_menu_anonymous_($variables) {
  return '<ul class="links inline clearfix">' . $variables['tree'] . '</ul>';
}

Vous n'avez qu'à remplacer le mot customtheme avec le nom de votre thème et ensuite changer les noms des menus pour utiliser ça sur n'importe quel menu.

Pour le changeur de langage j'ai fait quelque-chose de semblable, après avoir consulter locale_block_view() dans le API. J'ai vue que le bloc du changeur de langue utilise theme(&#039;links__locale_block&#039;, $variables); pour fournir son contenu. J'ai supplanter cette fonction dans template.php:

/**
 * Afficher les liens du changeur de langue en ligne
 */
function customtheme_links__locale_block($variables) {
  array_push($variables['attributes']['class'], 'links', 'inline', 'clearfix');
  return theme('links', $variables);
}

J'ai donc découvert que la pattern theme_function__object_name marche pour n'importe quel fonction thème appeler de cette manière. Je suis sur que ceci est précisé quelque-part dans la documentation de l'API de Drupal.

Mes menus ressemblais maintenant à ceci: Liens menu après les changements dans template.php

La dernière étape varie selon le thème. Dans mon cas j'ai déplacé &amp;lt;div class=&quot;region region-header&quot;&amp;gt; et son contenu à avant le logo, dans page.tpl.php, et j'ai inséré le CSS suivant dans les fichiers appropriés:

.region-header .block {
  display: inline-block;
  margin-bottom: 0;
}

.region-header {
  text-align: right;
}

Le résultat: Liens après les modifications du CSS

Il reste évidement à finir l'intégration, mais mon soucis principal jusqu'à présent c'était d'éviter de charger mon CSS avec du code déjà présent dans Drupal.

Pour commenter cet article, faire des suggestions, et voir les échantillons de code avec du syntaxe couleur.

Pages