| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502 | 
							- <?php
 
- /**
 
-  * @file
 
-  * The Flag bookmark module.
 
-  *
 
-  * This module creates a default Flag when enabled.
 
-  *
 
-  */
 
- /**
 
-  * Implements hook_permission().
 
-  */
 
- function materio_flag_permission() {
 
-   return array(
 
-     'access mybookmarks block' =>  array(
 
-       'title' => t('Show my bookmarks block'),
 
-       'description' => t('access own bookmarks block'),
 
-     ),
 
-   );
 
- }
 
- /**
 
-  * Implements hook_menu().
 
-  */
 
- function materio_flag_menu() {
 
-   $items = array();
 
-   $base = array(
 
-     'type' => MENU_CALLBACK,
 
-     'file' => 'materio_flag.pages.inc',
 
-   );
 
-   $items['materioflag/refresh/block/bookmarks'] = $base+array(
 
-     'access arguments' => array('flag bookmarks'),
 
-     'page callback' => 'materio_flag_refresh_block',
 
-     'page arguments' => array(3),
 
-   );
 
-   $items['bookmarks'] = $base+array(
 
-     'access arguments' => array('flag bookmarks'),
 
-     'page callback' => 'materio_flag_user_bookmarks',
 
-     'page arguments' => array(),
 
-   );
 
-   $items['materioflag/refresh/block/lists'] = $base+array(
 
-     'access arguments' => array('create flag lists'),
 
-     'page callback' => 'materio_flag_refresh_block',
 
-     'page arguments' => array(3),
 
-   );
 
-   $items['materioflag/createlist/form/%'] = $base+array(
 
-     'access arguments' => array('create flag lists'),
 
-     'access callback' => 'user_access',
 
-     'page callback' => 'materio_flag_createlist_form',
 
-     'page arguments' => array(3),
 
-   );
 
-   $items['materioflag/editlistform/%/%'] = $base+array(
 
-     'access arguments' => array('create flag lists'),
 
-     'access callback' => 'user_access',
 
-     'page callback' => 'materio_flag_editlist_form',
 
-     'page arguments' => array(2,3),
 
-   );
 
-   $items['materioflag/editlist/%/%'] = $base+array(
 
-     'access arguments' => array('create flag lists'),
 
-     'access callback' => 'user_access',
 
-     'page callback' => 'materio_flag_edit_list',
 
-     'page arguments' => array(2,3),
 
-   );
 
-   $items['materioflag/deletelist/%'] = $base+array(
 
-     'access arguments' => array('create flag lists'),
 
-     'access callback' => 'user_access',
 
-     'page callback' => 'materio_flag_delete_list',
 
-     'page arguments' => array(2,3),
 
-   );
 
-   $items['materioflag/nodelinks'] = $base+array(
 
-     'access arguments' => array('create flag lists'),
 
-     'access callback' => 'user_access',
 
-     'page callback' => 'materio_flag_nodelinks',
 
-     // 'page arguments' => array(3),
 
-   );
 
-   $items['lists/%'] = $base+array(
 
-     'access arguments' => array('view flag lists'),
 
-     'access callback' => 'user_access',
 
-     'page callback' => 'materio_flag_user_lists',
 
-     'page arguments' => array(1),
 
-   );
 
-    $items['materioflag/ajax/list/%'] = $base+array(
 
-     'page callback' => 'materio_flag_ajax_list',
 
-     'access callback' => 'materio_access_ajax_flags',
 
-     'page arguments' => array(3, 4),
 
-   );
 
-   return $items;
 
- }
 
- function materio_access_ajax_flags(){
 
-   return user_access('create flag lists') || user_access('flag bookmarks');
 
- }
 
- /**
 
-  * Implements hook_menu_alter().
 
-  */
 
- function materio_flag_menu_alter(&$items) {
 
-   // Example - disable the page at node/add
 
-   /*
 
-    *$items['node/add']['access callback'] = FALSE;
 
-    */
 
-   // disable tabs on user page
 
-   $items['user/%user/flags/lists']['access callback'] = false;
 
-   $items['user/%user/flags/lists/%']['access callback'] = false;
 
- }
 
- /**
 
-  * Implements hook_block_info().
 
-  */
 
- function materio_flag_block_info() {
 
-   $blocks['materio_flag_mybookmarks'] = array(
 
-     'info' => t('My bookmarks'),
 
-     'cache' => DRUPAL_NO_CACHE
 
-   );
 
-  $blocks['materio_flag_mylists'] = array(
 
-     'info' => t('My Materio flag lists'),
 
-     'cache' => DRUPAL_NO_CACHE
 
-   );
 
-   $blocks['materio_flag_mylists_nav'] = array(
 
-     'info' => t('My Materio flag lists navigation'),
 
-     'cache' => DRUPAL_NO_CACHE
 
-   );
 
-   return $blocks;
 
- }
 
- /**
 
-  * Implements hook_block_view().
 
-  */
 
- function materio_flag_block_view($delta = '') {
 
-   global $user;
 
-   $block = array();
 
-   switch ($delta) {
 
-     case 'materio_flag_mybookmarks':
 
-       if(user_access('access mybookmarks block')){
 
-         $userflags = flag_get_user_flags('node');
 
-         //dsm($userflags, 'userflags');
 
-         if(isset($userflags['bookmarks'])){
 
-         	$userbookmarks = array();
 
-   	      foreach ($userflags['bookmarks'] as $nid => $flag) {
 
-         		$userbookmarks[] = node_load($nid);
 
-   	      }
 
-           // TODO:  put this title generation on a theme function
 
-           $subject = '<span class="listname">'.t('My bookmarks (@len) ', array("@len"=>count($userbookmarks))).'</span>';
 
-   	      $block['subject'] = $subject . l('<i class="icon-resize-full"></i>', 'bookmarks', array('html'=>true, 'attributes' => array('class' => array('open-list')),)); //
 
-   	      $block['content'] = theme('materio_flag_mybookmarks_block', array("bookmarks"=>$userbookmarks, "viewmode"=>"bookmark"));
 
-         }else{
 
-         	$block['subject'] = t('My bookmarks');
 
-         	$block['content'] = t('No bookmarks yet. Add bookmarks on clicking on results star');
 
-         }
 
-         drupal_add_js(drupal_get_path('module', 'materio_flag').'/js/materio_flag.min.js');
 
-       }
 
-       break;
 
-     case 'materio_flag_mylists':
 
-       if(user_access('create flag lists')){
 
-         $flags = flag_lists_get_user_flags(NULL, $user);
 
-         // $userflags = flag_get_user_flags('node');
 
-         // dsm($userflags, 'userflags');
 
-         // dsm($flags, 'flags');
 
-         foreach ($flags as $name => $flag) {
 
-           $flag->path = url('lists/'.$flag->fid);
 
-           $flaged_content = flag_lists_get_flagged_content($flag->fid, $user->uid);
 
-           // dsm($flaged_content, 'flaged_content');
 
-           $fcn = array();
 
-           foreach ($flaged_content as $entity) {
 
-             if($entity->entity_type == 'node'){
 
-               $node = node_load($entity->entity_id);
 
-               // dsm($node, 'node');
 
-               // $node->flag_names[] = $name;
 
-               $fcn[] = $node;
 
-             }
 
-           }
 
-           $lists[$name] = array(
 
-             'list' => $flag,
 
-             'content' => $fcn,
 
-           );
 
-         }
 
-         if(isset($lists)){
 
-           // $block['subject'] = t('My !listname'.'s', array('!listname'=>t(variable_get('flag_lists_name', 'list'))));
 
-           $block['subject'] = t('My '.variable_get('flag_lists_name', 'list').'s');
 
-           $block['content'] = theme('materio_flag_mylists_block', array("lists"=>$lists, "viewmode"=>"bookmark"));
 
-           // $block['content'] = theme('flag_lists_user_page', array('uid' => $user->uid));
 
-         }else{
 
-           $block['subject'] = t('My '. variable_get('flag_lists_name', 'list') .'s');
 
-           $block['content'] = t('No !listname yet. Add !listname on clicking on results star', array('!listname'=>variable_get('flag_lists_name', 'list')));
 
-         }
 
-         drupal_add_js(drupal_get_path('module', 'materio_flag').'/js/materio_flag.min.js');
 
-       }
 
-       break;
 
-     case 'materio_flag_mylists_nav':
 
-       if(user_access('create flag lists')){
 
-         $flags = flag_lists_get_user_flags(NULL, $user);
 
-         foreach ($flags as $name => $flag) {
 
-           $flaged_content = flag_lists_get_flagged_content($flag->fid, $user->uid);
 
-           $flag->flaged_content = $flaged_content;
 
-           $flags[$name] = $flag;
 
-         }
 
-         // if($flags){
 
-           // $block['subject'] = t('My !listname'.'s', array('!listname'=>variable_get('flag_lists_name', 'list')));
 
-           $block['subject'] = t('My '.variable_get('flag_lists_name', 'list').'s');
 
-           $block['content'] = theme('materio_flag_mylists_nav_block', array("flags"=>$flags));
 
-           // $block['content'] = theme('flag_lists_user_page', array('uid' => $user->uid));
 
-         // }
 
-         # what happend if no flags yet
 
-         // else{
 
-         //   $block['subject'] = t('My '.variable_get('flag_lists_name', 'list').'s');
 
-         // //   $block['content'] = t('No !listname yet. Add !listname on clicking on results star', array('!listname'=>variable_get('flag_lists_name', 'list')));
 
-         // }
 
-       }
 
-       break;
 
-   }
 
-   return $block;
 
- }
 
- /**
 
-  * Implements hook_entity_info_alter().
 
-  */
 
- function materio_flag_entity_info_alter(&$entity_info) {
 
-   $entity_info['node']['view modes']['bookmark'] = array(
 
-     'label' => t('Bookmark'),
 
-     'custom settings' => TRUE,
 
-   );
 
- }
 
- /**
 
-  * Implements hook_entity_view().
 
-  *
 
-  * Note this is broken for taxonomy terms. @see http://drupal.org/node/1067120
 
-  */
 
- function materio_flag_entity_view($entity, $type, $view_mode, $langcode) {
 
-   if($type == 'node'){
 
-     if(user_access('create flag lists') && $view_mode != 'print'){
 
-       $entity->content['flaglistslinks'] = materio_flag_get_entity_links($entity, $type, $view_mode);
 
-       drupal_add_css(drupal_get_path('module', 'flag') . '/theme/flag.css');
 
-       drupal_add_js(drupal_get_path('module', 'flag') . '/theme/flag.js');
 
-       // Do we have a list template for this node type, or are we s
 
-       if (flag_lists_template_exists($entity->type)) {
 
-         global $user;
 
-         if ($flags = flag_lists_get_user_flags($entity->type, $user)) {
 
-           foreach ($flags as $flag) {
 
-             // dsm($flag, 'flag');
 
-             if ( ($flag->module == 'flag_lists' && _flag_lists_is_flagged($flag, $entity->nid, $user->uid, 0)) || $flag->is_flagged($entity->nid) ) {
 
-               $entity->flags[] = $flag;
 
-             }
 
-           }
 
-         }
 
-       }
 
-     }
 
-   }
 
- }
 
- function materio_flag_get_entity_links($entity, $type, $view_mode = null){
 
-   // dsm($entity, 'entity');
 
-   // Do we have a list template for this node type, or are we s
 
-   if (!flag_lists_template_exists($entity->type)) {
 
-     return;
 
-   }
 
-   global $user;
 
-   $links = array();
 
-   # if flag name is provided we are on flaglists content list (block mylists)
 
-   if($view_mode == 'bookmark'){
 
-     // TODO:  define view mode in settings
 
-     // if (isset($entity->flag_names) && $flags = flag_lists_get_user_flags($entity->type, $user)) {
 
-     //   // dsm($flags, 'flags');
 
-     //   // TODO:  limit flag link by current flag list
 
-     //   foreach ($flags as $flag) {
 
-     //     //dsm($flag->name, 'flag');
 
-     //     if(in_array($flag->name, $entity->flag_names)){
 
-     //       if ($flag->module == 'flag_lists') {
 
-     //         $action = _flag_lists_is_flagged($flag, $entity->nid, $user->uid, 0) ? 'unflag' : 'flag';
 
-     //       } else {
 
-     //         $action = $flag->is_flagged($entity->nid) ? 'unflag' : 'flag';
 
-     //       }
 
-     //       $flag->module = 'materio_flag';
 
-     //       $link = $flag->theme($action, $entity->nid);
 
-     //       // If it's a list, fix the link.
 
-     //       if ($flag->module == 'flag_lists') {
 
-     //         flag_lists_fix_link($link, $action);
 
-     //       }
 
-     //       $items[] = array(
 
-     //         'data' => $link,
 
-     //         'class' => array('flag-lists-link', $action.'-action'),
 
-     //       );
 
-     //       // array_splice($entity->flag_names, array_search($flag->name, $entity->flag_names), 1);
 
-     //       // dsm($entity->flag_names, 'entity->flag_name');
 
-     //       // break;
 
-     //     }
 
-     //   }
 
-     // }
 
-   #normal display
 
-   }else{
 
-     if ($flags = flag_lists_get_user_flags($entity->type, $user)) {
 
-       // dsm($flags, 'flags');
 
-       // Build the list of lists for this node.
 
-       foreach ($flags as $flag) {
 
-         // dsm($flag, 'flag');
 
-         if ($flag->module == 'flag_lists') {
 
-           $action = _flag_lists_is_flagged($flag, $entity->nid, $user->uid, 0) ? 'unflag' : 'flag';
 
-         }
 
-         else {
 
-           $action = $flag->is_flagged($entity->nid) ? 'unflag' : 'flag';;
 
-         }
 
-         $link = $flag->theme($action, $entity->nid);
 
-         // If it's a list, fix the link.
 
-         if ($flag->module == 'flag_lists') {
 
-           flag_lists_fix_link($link, $action);
 
-         }
 
-         $items[] = array(
 
-           'data' => $link,
 
-           'class' => array('flag-lists-link', $action.'-action', 'fid-'.$flag->fid),
 
-         );
 
-       }
 
-     }
 
-     // dsm($items, 'items '.$entity->title);
 
-     #create new list
 
-     $link = l(
 
-       '<i class="icon-plus"></i> <span>' . t('New @name', array('@name' => t(variable_get('flag_lists_name', 'list')))) . '</span>',
 
-       'flag-lists/add/' . $entity->type,
 
-       array(
 
-         'attributes' => array(
 
-           'class' => array('flag-lists-create'),
 
-           'title' => t('create a new @name and use it.', array('@name'=>t(variable_get('flag_lists_name', 'list')))),
 
-           'nid' => $entity->nid,
 
-           'token' => flag_get_token($entity->nid),
 
-         ),
 
-         'html' => TRUE,
 
-       )
 
-     );
 
-     $create = array(
 
-       'data' => $link,
 
-       'class' => array('flag-lists-create'),
 
-     );
 
-   }
 
-   if(isset($items)){
 
-     $ops = array(
 
-       '#node' => $entity,
 
-       '#items' => $items,
 
-     );
 
-   }
 
-   if(isset($create)){
 
-     $ops['#create'] = $create;
 
-   }
 
-   if(isset($ops)){
 
-     // dsm($ops, 'ops');
 
-     drupal_add_js(drupal_get_path('module', 'materio_flag').'/js/materio_flag.min.js');
 
-     $ops['#theme'] = "materio_flag_mylists_entity_links";
 
-     return $ops;
 
-   }
 
-   return;
 
- }
 
- function _materio_flag_get_listpagetitle($flag){
 
-   $cont = '<i class="icon-materio-folder"></i>';
 
-   $cont .= '<span class="'.$flag->name.'">'.check_plain($flag->title).'</span>';
 
-   if(flag_lists_is_owner('edit', $flag->fid)){
 
-     $cont .= l('<i class="icon-wrench"></i>',
 
-                 'flags/lists/edit/'.$flag->fid,
 
-                 array(
 
-                   'html'=>true,
 
-                   'attributes'=>array('class'=>array('edit-list', $flag->name)),
 
-                 )
 
-               );
 
-   }
 
-   return $cont;
 
- }
 
- /**
 
-  * Implements hook_theme().
 
-  */
 
- function materio_flag_theme($existing, $type, $theme, $path) {
 
-   return array(
 
-     'materio_flag_mybookmarks_block' => array(
 
-       'arguments' => array(),
 
-       'template' => 'materio-flag-mybookmarks-block',
 
-       'path' => drupal_get_path('module', 'materio_flag').'/templates',
 
-     ),
 
-     'materio_flag_mylists_block' => array(
 
-       'arguments' => array(),
 
-       'template' => 'materio-flag-mylists-block',
 
-       'path' => drupal_get_path('module', 'materio_flag').'/templates',
 
-     ),
 
-     'materio_flag_mylists_nav_block' => array(
 
-       'arguments' => array(),
 
-       'template' => 'materio-flag-mylists-nav-block',
 
-       'path' => drupal_get_path('module', 'materio_flag').'/templates',
 
-     ),
 
-     'materio_flag_mylists_entity_links' => array(
 
-       'variables' => array('node' => NULL, 'create' => NULL, 'items' => array()),
 
-     ),
 
-     'materio_flag_mylists_list' => array(
 
-       'template' => 'materio-flag-mylists-list',
 
-       'path' => drupal_get_path('module', 'materio_flag').'/templates',
 
-       'variables' => array(
 
-         'count' => 0,
 
-         'items' => array(),
 
-         'view_mode' => 'teaser',
 
-         'pager' => NULL,
 
-         'fid' => null,
 
-         'name' => null,
 
-         'title' => null,
 
-       ),
 
-     ),
 
-   );
 
- }
 
- function template_preprocess_materio_flag_mybookmarks_block(&$vars){
 
- 	// dsm($vars, 'vars');
 
- }
 
- function template_preprocess_materio_flag_mylists_block(&$vars){
 
-   // dsm($vars, 'vars');
 
- }
 
- function template_preprocess_materio_flag_mylists_nav_block(&$vars){
 
-   // dsm($vars, 'vars');
 
- }
 
- /**
 
-  * theme_materio_flag_mylists_entity_links()
 
-  *
 
-  * see theme_flag_lists_list()
 
-  */
 
- function theme_materio_flag_mylists_entity_links($vars){
 
-   // $node = $vars['node'];
 
-   $items = $vars['items'];
 
-   // dsm($vars, 'vars HO');
 
-   if(isset($vars['create']))
 
-     $items[] = $vars['create'];
 
-   return theme('item_list', array('items' => $items, 'type' => 'ul', 'attributes' => array('class' => 'flag-lists-entity-links')));
 
- }
 
- function template_preprocess_materio_flag_mylists_list(&$vars) {
 
-   $vars['list_count'] = format_plural(
 
-     $vars['count'],
 
-     '@name @title contains 1 item.', // in @sec seconds
 
-     '@name @title contains @count items.', // in @sec seconds
 
-     array(
 
-       '@name' => t($vars['name']),
 
-       '@title' => $vars['title'],
 
-     )
 
-   );
 
-   // dsm($vars, '$vars');
 
- }
 
 
  |