diff sites/all/modules/rdf_example/rdf_example.module @ 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.module	Thu Sep 19 10:38:44 2013 +0100
@@ -0,0 +1,77 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * This is an example outlining how a module can be used to define RDF mappings.
+ * We define mappings for a node type defined in this module.
+ */
+
+/**
+ * Implements hook_rdf_mapping().
+ *
+ * This hook should only be used to define the RDF mapping for an entity or
+ * bundle that has been defined by this module. On installation, this mapping
+ * will be saved to the database. To alter anything in this mapping after module
+ * installation (or to alter bundles defined in another module), the RDF CRUD
+ * functions should be used.
+ */
+function rdf_example_rdf_mapping() {
+  return array(
+    'recipe' => array(
+      'type' => 'node',
+      'bundle' => 'recipe',
+      'mapping' => array(
+        'rdftype' => array('v:Recipe'),
+        // We don't use the default bundle mapping for title. Instead, we add
+        // the v:name property. We still want to use dc:title as well, though,
+        // so we include it in the array.
+        'title' => array(
+          'predicates' => array('dc:title', 'v:name'),
+        ),
+        'recipe_summary' => array(
+          'predicates' => array('v:summary'),
+        ),
+        // The photo URI isn't a string but instead points to a resource, so we
+        // indicate that the attribute type is rel. If type isn't specified, it
+        // defaults to property, which is used for string values.
+        'recipe_photo' => array(
+          'predicates' => array('v:photo'),
+          'type' => 'rel',
+        ),
+        'recipe_nutrition' => array(
+          'predicates' => array('v:nutrition'),
+          'type' => 'rel',
+        ),
+      ),
+    ),
+    'nutrition' => array(
+      'type' => 'field_collection_item',
+      'bundle' => 'recipe_nutrition',
+      'mapping' => array(
+        'rdftype' => array('v:Nutrition'),
+        'recipe_serving_size' => array(
+          'predicates' => array('v:servingSize'),
+        ),
+        'recipe_calories' => array(
+          'predicates' => array('v:calories'),
+        ),
+      ),
+    ),
+  );
+}
+
+/*
+ * Implements hook_rdf_namespaces().
+ *
+ * This hook should be used to define any prefixes used by this module that are
+ * not already defined in core by rdf_rdf_namespaces.
+ *
+ * http://api.drupal.org/api/drupal/modules--rdf--rdf.api.php/function/hook_rdf_namespaces/7
+ */
+function rdf_example_rdf_namespaces() {
+  return array(
+    // Google's namespace for their custom vocabularies.
+    'v' => 'http://rdf.data-vocabulary.org/#', 
+  );
+}
\ No newline at end of file