Référencement site Ham
Faites confiance à Alexeo, le spécialiste du referencement naturel à Ham (80400) dans la Somme (Picardie –FR).
Faites confiance à Alexeo, le spécialiste du referencement naturel à Ham (80400) dans la Somme (Picardie –FR).
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); }
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...
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é :
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 :
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.
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?
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?
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?
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
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
Découvrez comment créer simplement et rapidement un site web avec Alexeo, votre spécialiste du web à Saint-Quentin (02100).
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.
Bonjour,
Vous trouverez les détails du premier Meetup 2013 à Marseille sur :
http://www.meetup.com/drupal-france-francophonie/events/100044562/
Merci
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.
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.
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.
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.
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: à ça:
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('links__locale_block', $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:
La dernière étape varie selon le thème. Dans mon cas j'ai déplacé &lt;div class="region region-header"&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:
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.
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: à ça:
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('links__locale_block', $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:
La dernière étape varie selon le thème. Dans mon cas j'ai déplacé &lt;div class="region region-header"&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:
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.