|
@@ -0,0 +1,119 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * Implements hook_init().
|
|
|
+ */
|
|
|
+function materio_personalnotes_init() {
|
|
|
+ drupal_add_js(drupal_get_path('module', 'materio_personalnotes').'/js/materio_personalnotes.js');
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * Implements hook_permission().
|
|
|
+ */
|
|
|
+function materio_personalnotes_permission() {
|
|
|
+ $perms = array(
|
|
|
+ 'create own personal notes' => array(
|
|
|
+ 'title' => t('Create own personal notes'),
|
|
|
+ 'description' => t('Create own personal notes'),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+
|
|
|
+ return $perms;
|
|
|
+}
|
|
|
+
|
|
|
+// function materio_personalnotes_menu(){
|
|
|
+// $items = array();
|
|
|
+//
|
|
|
+// $base = array(
|
|
|
+// 'type' => MENU_CALLBACK,
|
|
|
+// 'file' => 'materio_personalnotes.pages.inc',
|
|
|
+// );
|
|
|
+//
|
|
|
+// $items['materio_personalnotes/registerblock'] = $base+array(
|
|
|
+// 'title' => 'Materio base user ajax',
|
|
|
+// 'page callback' => 'materio_personalnotes_registerblock',
|
|
|
+// // 'page arguments' => array(),
|
|
|
+// 'access callback' => TRUE,
|
|
|
+// );
|
|
|
+//
|
|
|
+// return $items;
|
|
|
+// }
|
|
|
+
|
|
|
+/**
|
|
|
+ * Implements hook_menu_alter().
|
|
|
+ */
|
|
|
+// function materio_personalnotes_menu_alter(&$items) {
|
|
|
+// $items['user/%user']['access callback'] = 'user_access';
|
|
|
+// $items['user/%user']['access arguments'] = array('view own user profile');
|
|
|
+// }
|
|
|
+
|
|
|
+/**
|
|
|
+ * Implements hook_entity_view().
|
|
|
+ *
|
|
|
+ * Note this is broken for taxonomy terms. @see http://drupal.org/node/1067120
|
|
|
+ */
|
|
|
+function materio_personalnotes_entity_view($entity, $type, $view_mode, $langcode) {
|
|
|
+ if($type == 'node'){
|
|
|
+ if(user_access('create own personal notes') && $view_mode != 'print'){
|
|
|
+
|
|
|
+ $entity->content['personalnotelink'] = materio_personalnotes_get_note_link($entity);
|
|
|
+
|
|
|
+ // drupal_add_css(drupal_get_path('module', 'flag') . '/theme/flag.css');
|
|
|
+ // drupal_add_js(drupal_get_path('module', 'flag') . '/theme/flag.js');
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function materio_personalnotes_get_note_link($entity){
|
|
|
+
|
|
|
+ // if note alredy exists link to it
|
|
|
+
|
|
|
+ // else create one
|
|
|
+ #create new list
|
|
|
+ $link = array(
|
|
|
+ '#link' => '/node/add/note',
|
|
|
+ // get the content type from settings OR create the content type with module install
|
|
|
+ // TODO: add data (node nid) for pre-filled reference field of new note
|
|
|
+ '#attributes' => array(
|
|
|
+ 'class' => array('personal-note-link', 'personal-note-create'),
|
|
|
+ 'title' => t('create a note for @title.', array('@title'=>$entity->title)),
|
|
|
+ 'nid' => $entity->nid,
|
|
|
+ ),
|
|
|
+ '#theme'=>'materio_personalnotes_note_link',
|
|
|
+ );
|
|
|
+
|
|
|
+ if(isset($link)){
|
|
|
+ dsm($link, 'link');
|
|
|
+ drupal_add_js(drupal_get_path('module', 'materio_personalnotes').'/js/dist/materio_personalnotes.min.js');
|
|
|
+ return $link;
|
|
|
+ }
|
|
|
+
|
|
|
+ return;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * Implements hook_theme().
|
|
|
+ */
|
|
|
+function materio_personalnotes_theme($existing, $type, $theme, $path) {
|
|
|
+ return array(
|
|
|
+ 'materio_personalnotes_note_link' => array(
|
|
|
+ 'variables' => array('link' => NULL, 'attributes' => array()),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+}
|
|
|
+
|
|
|
+function theme_materio_personalnotes_note_link($vars){
|
|
|
+ return l(
|
|
|
+ '<i class="fi-pencil"></i>',
|
|
|
+ $vars['link'],
|
|
|
+ array(
|
|
|
+ 'attributes' => $vars['attributes'],
|
|
|
+ 'html' => true,
|
|
|
+ )
|
|
|
+ );
|
|
|
+}
|