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