danielebarchiesi@4
|
1 <?php
|
danielebarchiesi@4
|
2 // $Id$
|
danielebarchiesi@4
|
3
|
danielebarchiesi@4
|
4 /**
|
danielebarchiesi@4
|
5 * @file
|
danielebarchiesi@4
|
6 * Install file for RDF Example module.
|
danielebarchiesi@4
|
7 *
|
danielebarchiesi@4
|
8 * To demonstrate hook_rdf_mapping, this module creates it's own node type. For
|
danielebarchiesi@4
|
9 * more information on creating node types, see Node Example in the Examples
|
danielebarchiesi@4
|
10 * project, http://drupal.org/project/examples.
|
danielebarchiesi@4
|
11 */
|
danielebarchiesi@4
|
12
|
danielebarchiesi@4
|
13 /**
|
danielebarchiesi@4
|
14 * Implements hook_install().
|
danielebarchiesi@4
|
15 *
|
danielebarchiesi@4
|
16 * - Create photo, summary, nutrition info, serving size, and calorie fields.
|
danielebarchiesi@4
|
17 * - Create photo, summary, nutrition info, serving size, and calorie instances.
|
danielebarchiesi@4
|
18 */
|
danielebarchiesi@4
|
19 function rdf_example_install() {
|
danielebarchiesi@4
|
20 // use get_t() to get the name of our localization function for translation
|
danielebarchiesi@4
|
21 // during install, when t() is not available.
|
danielebarchiesi@4
|
22 $t = get_t();
|
danielebarchiesi@4
|
23
|
danielebarchiesi@4
|
24 // Define the node type.
|
danielebarchiesi@4
|
25 $rdf_example = array(
|
danielebarchiesi@4
|
26 'type' => 'recipe',
|
danielebarchiesi@4
|
27 'name' => $t('Recipe'),
|
danielebarchiesi@4
|
28 'base' => 'node_content',
|
danielebarchiesi@4
|
29 'description' => $t('The recipe node is defined to demonstrate RDF mapping.'),
|
danielebarchiesi@4
|
30 );
|
danielebarchiesi@4
|
31
|
danielebarchiesi@4
|
32 // Set additional defaults and save the content type.
|
danielebarchiesi@4
|
33 $content_type = node_type_set_defaults($rdf_example);
|
danielebarchiesi@4
|
34 node_type_save($content_type);
|
danielebarchiesi@4
|
35
|
danielebarchiesi@4
|
36 // Create all the fields we are adding to our content type.
|
danielebarchiesi@4
|
37 // http://api.drupal.org/api/function/field_create_field/7
|
danielebarchiesi@4
|
38 foreach (_rdf_example_installed_fields() as $field) {
|
danielebarchiesi@4
|
39 field_create_field($field);
|
danielebarchiesi@4
|
40 }
|
danielebarchiesi@4
|
41
|
danielebarchiesi@4
|
42 // Create all the instances for our fields.
|
danielebarchiesi@4
|
43 // http://api.drupal.org/api/function/field_create_instance/7
|
danielebarchiesi@4
|
44 foreach (_rdf_example_installed_instances() as $bundle_name => $bundle) {
|
danielebarchiesi@4
|
45 foreach ($bundle as $instance) {
|
danielebarchiesi@4
|
46 $instance['entity_type'] = $bundle_name == 'recipe' ? 'node' : 'field_collection_item';
|
danielebarchiesi@4
|
47 $instance['bundle'] = $bundle_name;
|
danielebarchiesi@4
|
48 field_create_instance($instance);
|
danielebarchiesi@4
|
49 }
|
danielebarchiesi@4
|
50 }
|
danielebarchiesi@4
|
51 }
|
danielebarchiesi@4
|
52
|
danielebarchiesi@4
|
53 /**
|
danielebarchiesi@4
|
54 * Return a structured array defining the fields created by this content type.
|
danielebarchiesi@4
|
55 */
|
danielebarchiesi@4
|
56 function _rdf_example_installed_fields() {
|
danielebarchiesi@4
|
57 $t = get_t();
|
danielebarchiesi@4
|
58 $return = array(
|
danielebarchiesi@4
|
59 'recipe_photo' => array(
|
danielebarchiesi@4
|
60 'field_name' => 'recipe_photo',
|
danielebarchiesi@4
|
61 'cardinality' => 1,
|
danielebarchiesi@4
|
62 'type' => 'image',
|
danielebarchiesi@4
|
63 ),
|
danielebarchiesi@4
|
64 'recipe_summary' => array(
|
danielebarchiesi@4
|
65 'field_name' => 'recipe_summary',
|
danielebarchiesi@4
|
66 'cardinality' => 1,
|
danielebarchiesi@4
|
67 'type' => 'text',
|
danielebarchiesi@4
|
68 'settings' => array(
|
danielebarchiesi@4
|
69 'max_length' => 500,
|
danielebarchiesi@4
|
70 ),
|
danielebarchiesi@4
|
71 ),
|
danielebarchiesi@4
|
72 'recipe_nutrition' => array(
|
danielebarchiesi@4
|
73 'field_name' => 'recipe_nutrition',
|
danielebarchiesi@4
|
74 'cardinality' => 1,
|
danielebarchiesi@4
|
75 'type' => 'field_collection',
|
danielebarchiesi@4
|
76 ),
|
danielebarchiesi@4
|
77 'recipe_serving_size' => array(
|
danielebarchiesi@4
|
78 'field_name' => 'recipe_serving_size',
|
danielebarchiesi@4
|
79 'cardinality' => 1,
|
danielebarchiesi@4
|
80 'type' => 'text',
|
danielebarchiesi@4
|
81 ),
|
danielebarchiesi@4
|
82 'recipe_calories' => array(
|
danielebarchiesi@4
|
83 'field_name' => 'recipe_calories',
|
danielebarchiesi@4
|
84 'cardinality' => 1,
|
danielebarchiesi@4
|
85 'type' => 'number_integer',
|
danielebarchiesi@4
|
86 ),
|
danielebarchiesi@4
|
87 );
|
danielebarchiesi@4
|
88
|
danielebarchiesi@4
|
89 return $return;
|
danielebarchiesi@4
|
90 }
|
danielebarchiesi@4
|
91
|
danielebarchiesi@4
|
92 /**
|
danielebarchiesi@4
|
93 * Return a structured array defining the instances for this content type and
|
danielebarchiesi@4
|
94 * related field collections.
|
danielebarchiesi@4
|
95 */
|
danielebarchiesi@4
|
96 function _rdf_example_installed_instances() {
|
danielebarchiesi@4
|
97 $t = get_t();
|
danielebarchiesi@4
|
98 $instances = array();
|
danielebarchiesi@4
|
99 $instances['recipe'] = array(
|
danielebarchiesi@4
|
100 'recipe_photo' => array(
|
danielebarchiesi@4
|
101 'field_name' => 'recipe_photo',
|
danielebarchiesi@4
|
102 'label' => $t('Photo of the prepared dish'),
|
danielebarchiesi@4
|
103 ),
|
danielebarchiesi@4
|
104 'recipe_summary' => array(
|
danielebarchiesi@4
|
105 'field_name' => 'recipe_summary',
|
danielebarchiesi@4
|
106 'label' => $t('Short summary describing the dish'),
|
danielebarchiesi@4
|
107 'widget' => array(
|
danielebarchiesi@4
|
108 'type' => 'text_textarea',
|
danielebarchiesi@4
|
109 ),
|
danielebarchiesi@4
|
110 ),
|
danielebarchiesi@4
|
111 'recipe_nutrition' => array(
|
danielebarchiesi@4
|
112 'field_name' => 'recipe_nutrition',
|
danielebarchiesi@4
|
113 'label' => $t('Recipe Nutrition Information'),
|
danielebarchiesi@4
|
114 ),
|
danielebarchiesi@4
|
115 );
|
danielebarchiesi@4
|
116 // We attach some fields directly to the field collections. The field
|
danielebarchiesi@4
|
117 // collection bundles are created automatically with the field definition.
|
danielebarchiesi@4
|
118 $instances['recipe_nutrition'] = array(
|
danielebarchiesi@4
|
119 'recipe_serving_size' => array(
|
danielebarchiesi@4
|
120 'field_name' => 'recipe_serving_size',
|
danielebarchiesi@4
|
121 'label' => $t('Serving size'),
|
danielebarchiesi@4
|
122 ),
|
danielebarchiesi@4
|
123 'recipe_calories' => array(
|
danielebarchiesi@4
|
124 'field_name' => 'recipe_calories',
|
danielebarchiesi@4
|
125 'label' => $t('Calories'),
|
danielebarchiesi@4
|
126 )
|
danielebarchiesi@4
|
127 );
|
danielebarchiesi@4
|
128
|
danielebarchiesi@4
|
129 return $instances;
|
danielebarchiesi@4
|
130 } |