From bd1a1de7929cefb7d1b094245414a5341d1a7a04 Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Mon, 27 Nov 2017 12:20:08 +0100 Subject: [PATCH] first commit of materio personal notes module : just displaying the icon button for now --- .../js/dist/materio_personalnotes.min.js | 2 + .../js/materio_personalnotes.js | 29 +++++ .../materiobasemod/materio_personalnotes.info | 23 ++++ .../materio_personalnotes.module | 119 ++++++++++++++++++ .../materio_personalnotes.pages.inc | 62 +++++++++ .../templates/node--materiau.tpl.php | 32 +++-- 6 files changed, 255 insertions(+), 12 deletions(-) create mode 100644 sites/all/modules/gui/materiobasemod/js/dist/materio_personalnotes.min.js create mode 100644 sites/all/modules/gui/materiobasemod/js/materio_personalnotes.js create mode 100644 sites/all/modules/gui/materiobasemod/materio_personalnotes.info create mode 100644 sites/all/modules/gui/materiobasemod/materio_personalnotes.module create mode 100644 sites/all/modules/gui/materiobasemod/materio_personalnotes.pages.inc diff --git a/sites/all/modules/gui/materiobasemod/js/dist/materio_personalnotes.min.js b/sites/all/modules/gui/materiobasemod/js/dist/materio_personalnotes.min.js new file mode 100644 index 00000000..f1fda930 --- /dev/null +++ b/sites/all/modules/gui/materiobasemod/js/dist/materio_personalnotes.min.js @@ -0,0 +1,2 @@ + +(function($){MaterioPersonalNotes=function(){function init(){trace('MaterioPersonalNotes :: init');};init();};$(document).ready(function(){var materioflag=new MaterioPersonalNotes();});})(jQuery); \ No newline at end of file diff --git a/sites/all/modules/gui/materiobasemod/js/materio_personalnotes.js b/sites/all/modules/gui/materiobasemod/js/materio_personalnotes.js new file mode 100644 index 00000000..9e1d232e --- /dev/null +++ b/sites/all/modules/gui/materiobasemod/js/materio_personalnotes.js @@ -0,0 +1,29 @@ +// @codekit-prepend "gui.js" +// @koala-prepend "gui.js" + + +(function($) { + +MaterioPersonalNotes = function(){ + + /** + * init() + */ + function init(){ + trace('MaterioPersonalNotes :: init'); + + }; + + + + + init(); + + +}; + +$(document).ready(function() { + var materioflag = new MaterioPersonalNotes(); +}); + +})(jQuery); diff --git a/sites/all/modules/gui/materiobasemod/materio_personalnotes.info b/sites/all/modules/gui/materiobasemod/materio_personalnotes.info new file mode 100644 index 00000000..1b1f16f7 --- /dev/null +++ b/sites/all/modules/gui/materiobasemod/materio_personalnotes.info @@ -0,0 +1,23 @@ +name = Materio Personal Notes +description = "Materio per user notes on node module" + +; Core version (required) +core = 7.x + +; Package name (see http://drupal.org/node/542202 for a list of names) +package = Materio + +; PHP version requirement (optional) +; php = 5.2 + +; Loadable code files +; files[] = materio_ctools_automodal.module + +; Module dependencies +dependencies[] = user + +; Configuration page +; configure = admin/config/materiobasemod + +; For further information about configuration options, see +; - http://drupal.org/node/542202 diff --git a/sites/all/modules/gui/materiobasemod/materio_personalnotes.module b/sites/all/modules/gui/materiobasemod/materio_personalnotes.module new file mode 100644 index 00000000..efbb5bbf --- /dev/null +++ b/sites/all/modules/gui/materiobasemod/materio_personalnotes.module @@ -0,0 +1,119 @@ + 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( + '', + $vars['link'], + array( + 'attributes' => $vars['attributes'], + 'html' => true, + ) + ); +} diff --git a/sites/all/modules/gui/materiobasemod/materio_personalnotes.pages.inc b/sites/all/modules/gui/materiobasemod/materio_personalnotes.pages.inc new file mode 100644 index 00000000..41bbcbfd --- /dev/null +++ b/sites/all/modules/gui/materiobasemod/materio_personalnotes.pages.inc @@ -0,0 +1,62 @@ +$_POST); +// drupal_form_submit($_POST['form_id'], $form_state); +// +// // $return['form_state'] = $form_state; +// +// $return['errors'] = form_get_errors(); +// if($return['errors']){ +// unset ($_SESSION['messages']['error']); +// }else{ +// $messages = drupal_get_messages('status'); +// // $return['messages'] = $messages; +// // drupal_set_message(t("Congratulations, you juste created your free materiO' account, welcome !"), 'status'); +// foreach ($messages['status'] as $msg) { +// drupal_set_message($msg, 'status'); +// } +// } +// // after registration user is automaticly logged in, thank's to login tobogan module +// +// drupal_json_output($return); +// } +// +// function materio_personalnotes_login_submit(){ +// $return = array(); +// $return['POST'] = $_POST; +// +// $form_state = array("values"=>$_POST); +// drupal_form_submit($_POST['form_id'], $form_state); +// +// $return['errors'] = form_get_errors(); +// if($return['errors']) +// unset ($_SESSION['messages']['error']); +// +// // if user-login form succed we retreive the user uid on $form_state, then we can effectively loggin the user +// if($uid = $form_state['uid']) +// user_login_submit(array(), $form_state); +// +// drupal_json_output($return); +// } +// +// diff --git a/sites/all/themes/gui/materiobasetheme/templates/node--materiau.tpl.php b/sites/all/themes/gui/materiobasetheme/templates/node--materiau.tpl.php index 3bb78903..3cdffa2d 100644 --- a/sites/all/themes/gui/materiobasetheme/templates/node--materiau.tpl.php +++ b/sites/all/themes/gui/materiobasetheme/templates/node--materiau.tpl.php @@ -8,6 +8,7 @@ hide($content['links']); hide($content['print_links']); hide($content['flaglistslinks']); + hide($content['personalnotelink']); print render($content); ?> @@ -51,24 +52,31 @@