merged materiobasemod submodule
This commit is contained in:
148
sites/all/modules/gui/materiobasemod/materio_page_title.module
Executable file
148
sites/all/modules/gui/materiobasemod/materio_page_title.module
Executable file
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Implements hook_permission().
|
||||
*/
|
||||
function materio_page_title_permission() {
|
||||
$perms = array();
|
||||
$entity_infos = entity_get_info();
|
||||
foreach ($entity_infos['node']['bundles'] as $bundle => $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 '<h1 id="materio-page-title" class="page-title">'.$vars['title'].'</h1>';
|
||||
|
||||
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();
|
||||
}
|
Reference in New Issue
Block a user