$value) { $perms['show '.$bundle.' title'] = array( 'title' => t('Show !bundle node title.', array('!bundle'=>$value['label'])), ); } return $perms; } /** * Implements hook_field_access(). */ function materio_page_title_field_access($op, $field, $entity_type, $entity, $account) { if($field['field_name'] == 'title_field' && $entity_type == 'node' && isset($entity->type)){ return user_access('show '.$entity->type.' title'); } return TRUE; } function materio_page_title_preprocess_html(&$vars){ // dsm($vars, '$vars'); // if (arg(0) == 'node' && $node = node_load(arg(1))) { // if(!user_access('show '.$node->type.' title')){ // if($node->type == "materiau"){ // $title = field_get_items('node', $node, 'field_nature_titre'); // $vars['head_title_array']['title'] = $title[0]['safe_value']; // }else{ // $vars['head_title_array']['title'] = 'restricted access'; // } // $vars['head_title'] = implode(' | ', $vars['head_title_array']); // // dsm($vars, 'vars'); // } // } $vars['head_title_array']['title'] = materio_page_title_get_title(); $vars['head_title'] = implode(' | ', $vars['head_title_array']); $vars['head_array']['title'] = $vars['head_title']; } /** * Implements hook_block_info(). */ function materio_page_title_block_info() { // This example comes from node.module. /* *$blocks['syndicate'] = array( * 'info' => t('Syndicate'), * 'cache' => DRUPAL_NO_CACHE *); */ $blocks['materio_page_title'] = array( 'info' => t('Materio page title'), 'cache' => DRUPAL_NO_CACHE ); return $blocks; } /** * Implements hook_block_view(). */ function materio_page_title_block_view($delta = '') { $block = array(); switch ($delta) { case 'materio_page_title': $block['subject'] = t('Page title'); $block['content'] = theme('materio_page_title', array('title' => materio_page_title_get_title())); drupal_add_js(drupal_get_path('module', 'materio_page_title').'/js/materio_page_title.min.js'); break; } return $block; } /** * Implements hook_theme(). */ function materio_page_title_theme($existing, $type, $theme, $path) { return array( 'materio_page_title' => array( 'variables' => array('title' => NULL,), ), ); } function theme_materio_page_title($vars){ if($vars['title']) return '

'.$vars['title'].'

'; return; } /** * Implements hook_menu(). */ // function materio_page_title_menu() { // $items = array(); // $base = array( // 'type' => MENU_CALLBACK, // 'file' => 'materio_page_title.pages.inc', // ); // $items['materio_page_title/refresh/block'] = $base+array( // 'title' => 'Materio page title refresh block', // 'page callback' => 'materio_page_title_refresh_block', // 'page arguments' => array(), // 'access callback' => TRUE, // ); // return $items; // } /** * HELPERS * */ function materio_page_title_get_title(){ if (arg(0) == 'node' && $node = node_load(arg(1))) { if(!user_access('show '.$node->type.' title')){ if($node->type == "materiau"){ $title = field_get_items('node', $node, 'field_nature_titre'); return $title[0]['safe_value']; }else{ return 'restricted access'; } } } return drupal_get_title(); }