Files
jeunes-et-engages-d7/sites/all/modules/gui/jeemod/jeemod.module
T

198 lines
4.7 KiB
Plaintext

<?php
/**
* Implements hook_menu().
*/
function jeemod_menu() {
$items = array();
$base = array(
'type' => MENU_CALLBACK,
'file' => 'jeemod.pages.inc',
);
$items['jee/chapter'] = $base+array(
'title' => 'jee',
'page callback' => 'jeemod_chapter',
'page arguments' => array(2),
'access callback' => TRUE,
// 'access arguments' => array('use materio search api'),
);
$items['jee/static'] = $base+array(
'title' => 'jee',
'page callback' => 'jeemod_static',
// 'page arguments' => array(2),
'access callback' => TRUE,
// 'access arguments' => array('use materio search api'),
);
return $items;
}
/**
* Implements hook_entity_info_alter().
*/
function jeemod_entity_info_alter(&$entity_info) {
$entity_info['node']['view modes']['chapter'] = array(
'label' => t('chapter'),
'custom settings' => TRUE,
);
}
/**
* Implements hook_video_embed_field_handlers_alter().
*/
function jeemod_video_embed_field_handlers_alter(&$handlers) {
$handlers['vimeo']['function'] = 'jeemod_handle_vimeo';
}
/**
* Wrapper function to allow forcing API to be enabled for Vimeo videos.
*/
function jeemod_handle_vimeo($url, $settings) {
// dsm($settings, 'settings');
// dsm($url, 'url');
$settings['api'] = 1;
// $r = db_query("SELECT entity_id FROM {field_data_field_video} WHERE field_video_video_url = :url", array(
// ':url' => $url
// ));
// foreach($r as $result){
// $id = $result->entity_id;
// }
// $id =
// $settings['player_id'] = "video".$id;
// return video_embed_field_handle_vimeo($url, $settings);
// needed to rewrite the whole output here
// https://github.com/jrue/Vimeo-jQuery-API
// Get ID of video from URL
$vid = _video_embed_field_get_vimeo_id($url);
if (!$vid) {
return array(
'#markup' => l($url, $url),
);
}
// Construct the embed code
$settings['portrait'] = 0;
$width = $settings['width'];
$height = $settings['height'];
unset($settings['width']);
unset($settings['height']);
unset($settings['color']);
unset($settings['portrait']);
unset($settings['title']);
unset($settings['byline']);
unset($settings['autoplay']);
unset($settings['loop']);
$settings['player_id'] = "video-".uniqid();
$settings_str = _video_embed_code_get_settings_str($settings);
return array(
'#markup' => '<iframe id="video'.$settings['player_id'].'" width="' . $width . '" height="' . $height . '" src="//player.vimeo.com/video/' . $vid .
'?' . $settings_str . '" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowfullscreen></iframe>',
);
}
/**
* Implements hook_field_formatter_info().
*/
function jeemod_field_formatter_info() {
return array(
'share_butons' => array(
'label' => t('Share butons (Twitter, Facebook)'),
'field types' => array('text'),
),
);
}
/**
* Implements hook_field_formatter_view().
*/
function jeemod_field_formatter_view($entity_type, $entity, $field, $instance, $lang_code, $items, $display) {
$element = array();
foreach ($items as $delta => $item) {
$element[$delta] = array(
'#theme' => 'jeemod_share_links',
'#entity' => $entity,
// '#url' => $entity->field_partager['und'][0]['url'],
);
}
return $element;
}
/**
* Implements hook_theme().
*/
function jeemod_theme() {
return array(
'jeemod_share_links' => array(
'template' => 'jeemod_share_links',
'variables' => array(
'entity' => NULL,
// 'url' => NULL,
),
),
);
}
function jeemod_preprocess_jeemod_share_links(&$vars){
global $base_url;
// dsm($vars);
$entity = $vars['entity'];
$sitetitle = variable_get('site_name', '');
$nodetitle = $entity->title;
$nodeurl = $base_url . url('node/'.$entity->nid);//$base_url . base_path() . "#principe-" . $entity->nid;
$text = $nodetitle ." | ". $sitetitle . " - " . $nodeurl;
$tags = explode(' ', str_replace('#', '', $entity->field_partager['und'][0]['value']));
// twitter
$vars['twitter_url'] = url("https://twitter.com/intent/tweet", array(
'absolute'=>true,
'query'=>array(
// "button_hashtag"=>implode(',',$tags),
"button_hashtag"=>$tags[0],
"text"=>$text,
)
));
$vars['twitter_title'] = "Twitter $nodetitle";
// face book
$vars['fb_url'] = url("https://www.facebook.com/sharer.php", array(
'absolute'=>true,
'query'=>array(
"u"=>$nodeurl,
"t"=>$text,
)
));
$vars['fb_title'] = "Partager $nodetitle";
// mail
// $vars['mail_url'] = "mailto:?subject=$nodetitle&body=$text";
$vars['mail_url'] = url("mailto:", array(
'absolute'=>true,
'query'=>array(
"subject"=>$text,
"body"=>$text,
)
));
$vars['mail_title'] = "Envoyer par email $nodetitle";
}