diff sites/all/modules/rdf_example/rdf_example.install @ 4:ce11bbd8f642

added modules
author danieleb <danielebarchiesi@me.com>
date Thu, 19 Sep 2013 10:38:44 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sites/all/modules/rdf_example/rdf_example.install	Thu Sep 19 10:38:44 2013 +0100
@@ -0,0 +1,130 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Install file for RDF Example module.
+ *
+ * To demonstrate hook_rdf_mapping, this module creates it's own node type. For
+ * more information on creating node types, see Node Example in the Examples
+ * project, http://drupal.org/project/examples.
+ */
+
+/**
+ * Implements hook_install().
+ *
+ * - Create photo, summary, nutrition info, serving size, and calorie fields.
+ * - Create photo, summary, nutrition info, serving size, and calorie instances.
+ */
+function rdf_example_install() {
+  // use get_t() to get the name of our localization function for translation
+  // during install, when t() is not available.
+  $t = get_t();
+
+  // Define the node type.
+  $rdf_example = array(
+    'type' => 'recipe',
+    'name' => $t('Recipe'),
+    'base' => 'node_content',
+    'description' => $t('The recipe node is defined to demonstrate RDF mapping.'),
+  );
+
+  // Set additional defaults and save the content type.
+  $content_type = node_type_set_defaults($rdf_example);
+  node_type_save($content_type);
+
+  // Create all the fields we are adding to our content type.
+  // http://api.drupal.org/api/function/field_create_field/7
+  foreach (_rdf_example_installed_fields() as $field) {
+    field_create_field($field);
+  }
+
+  // Create all the instances for our fields.
+  // http://api.drupal.org/api/function/field_create_instance/7
+  foreach (_rdf_example_installed_instances() as $bundle_name => $bundle) {
+    foreach ($bundle as $instance) {
+      $instance['entity_type'] = $bundle_name == 'recipe' ? 'node' : 'field_collection_item';
+      $instance['bundle'] = $bundle_name;
+      field_create_instance($instance);
+    }
+  }
+}
+
+/**
+ * Return a structured array defining the fields created by this content type.
+ */
+function _rdf_example_installed_fields() {
+  $t = get_t();
+  $return = array(
+    'recipe_photo' => array(
+      'field_name' => 'recipe_photo',
+      'cardinality' => 1,
+      'type'        => 'image',
+    ),
+    'recipe_summary' => array(
+      'field_name'  => 'recipe_summary',
+      'cardinality' => 1,
+      'type'        => 'text',
+      'settings'    => array(
+        'max_length' => 500,
+      ),
+    ),
+    'recipe_nutrition' => array(
+      'field_name'  => 'recipe_nutrition',
+      'cardinality' => 1,
+      'type'        => 'field_collection',
+    ),
+    'recipe_serving_size' => array(
+      'field_name'  => 'recipe_serving_size',
+      'cardinality' => 1,
+      'type'        => 'text',
+    ),
+    'recipe_calories' => array(
+      'field_name'  => 'recipe_calories',
+      'cardinality' => 1,
+      'type'        => 'number_integer',
+    ),
+  );
+
+  return $return;
+}
+
+/**
+ * Return a structured array defining the instances for this content type and
+ * related field collections.
+ */
+function _rdf_example_installed_instances() {
+  $t = get_t();
+  $instances = array();
+  $instances['recipe'] = array(
+    'recipe_photo' => array(
+      'field_name'  => 'recipe_photo',
+      'label'       => $t('Photo of the prepared dish'),
+    ),
+    'recipe_summary' => array(
+      'field_name' => 'recipe_summary',
+      'label'       => $t('Short summary describing the dish'),
+      'widget'      => array(
+        'type'    => 'text_textarea',
+      ),
+    ),
+    'recipe_nutrition' => array(
+      'field_name' => 'recipe_nutrition',
+      'label'      => $t('Recipe Nutrition Information'),
+    ),
+  );
+  // We attach some fields directly to the field collections. The field
+  // collection bundles are created automatically with the field definition.
+  $instances['recipe_nutrition'] = array(
+    'recipe_serving_size' => array(
+      'field_name' => 'recipe_serving_size',
+      'label'       => $t('Serving size'),
+    ),
+    'recipe_calories' => array(
+      'field_name' => 'recipe_calories',
+      'label'       => $t('Calories'),
+    )
+  );
+
+  return $instances;
+}
\ No newline at end of file