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( '#path' => '/node/add/note', '#query' => array( // 'edit[field_target_content][und][0][target_id]' => $entity->title.'('.$entity->nid.')', 'target_id'=>$entity->nid, ), // 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_form_alter(). */ function materio_personalnotes_form_alter(&$form, &$form_state, $form_id) { // dsm($form_id); /* *if (isset($form['type']) && $form['type']['#value'] . '_node_settings' == $form_id) { * $form['workflow']['upload_' . $form['type']['#value']] = array( * '#type' => 'radios', * '#title' => t('Attachments'), * '#default_value' => variable_get('upload_' . $form['type']['#value'], 1), * '#options' => array(t('Disabled'), t('Enabled')), * ); *} */ if($form_id == "note_node_form" && $target_id = $_GET['target_id']){ dsm($_GET, 'get'); dsm($target_id, 'target_id'); dsm($form, 'form'); dsm($form_state, 'form_state'); // $form['#after_build'][] = 'materio_personalnotes_noteform_after_build'; // $form_state['field']['field_target_content']['und']['instance']['default_value'] = $target_id; $form['field_target_content_nid']['und'][0]['value']['#default_value'] = $target_id; $form['field_target_content_nid']['und'][0]['value']['#type'] = 'hidden'; // $form_state['field']['field_target_content']['und']['items_count'] = 1; } } /** * Implements hook_node_presave(). */ function materio_personalnotes_node_presave($node) { /* *if ($node->nid && $node->moderate) { * // Reset votes when node is updated: * $node->score = 0; * $node->users = ''; * $node->votes = 0; *} */ /* Your code here */ } // function materio_personalnotes_noteform_after_build($form, &$form_state) { // dsm($_GET, 'get'); // dsm($form, 'form'); // dsm($form_state, 'form_state'); // // $form_state['field_target_content']['und'][0]['target_id']['#default_value'] = $target_id; // // // switch ($form['form_id']['#value']) { // // // // case 'your_form': // // // // $form['field_yournoderef']['nid']['nid']['#value'] = arg(3); // // $form['field_yournoderef']['#access'] = false; // // break; // // // // } // // return $form; // // } /** * Implements hook_theme(). */ function materio_personalnotes_theme($existing, $type, $theme, $path) { return array( 'materio_personalnotes_note_link' => array( 'variables' => array('path' => NULL, 'query' => array(), 'attributes' => array()), ), ); } function theme_materio_personalnotes_note_link($vars){ return l( '', $vars['path'], array( 'attributes' => $vars['attributes'], 'html' => true, 'query' => $vars['query'], ) ); }