123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- <?php
- /**
- * Implements hook_init().
- */
- function clameursmod_init() {
- if ($path = libraries_get_path('jquery.domwindow')) {
- // Do something with the library, knowing the path, for instance:
- drupal_add_js($path . '/jquery.DOMWindow.js');
- }
- drupal_add_js(drupal_get_path('module', 'clameursmod').'/clameursmod.js');
- }
- /**
- * Implements hook_menu().
- */
- function clameursmod_menu() {
- $items['clameursmod/getemvidfield'] = array(
- 'page callback' => '_clameursmod_getemvidfield',
- 'page arguments' => array(),
- 'access callback' => TRUE,
- 'type' => MENU_CALLBACK,
- // 'file' => ,
- );
- return $items;
- }
- function _clameursmod_getemvidfield(){
- $data = array();
- $data['test'] = "OK";
- $data['src'] = $_GET['src'];
- $data['embed'] = theme('video_embed_field_embed_code', array('url'=>$data['src'], 'style'=>'normal'));
- drupal_json_output($data);
- }
- /**
- * Implements hook_entity_info_alter().
- */
- function clameursmod_entity_info_alter(&$entity_info) {
- $entity_info['node']['view modes']['accueil'] = array(
- 'label' => t('Accueil'),
- 'custom settings' => TRUE,
- );
- $entity_info['node']['view modes']['attente'] = array(
- 'label' => t('attente'),
- 'custom settings' => TRUE,
- );
- }
- /**
- * Implements hook_block_info().
- */
- function clameursmod_block_info() {
- $blocks['thematiques'] = array(
- 'info' => t('Clameurs thematiques'),
- 'cache' => DRUPAL_NO_CACHE
- );
- $blocks['thematiques-anchor-links'] = array(
- 'info' => t('Clameurs thematiques anchor links'),
- 'cache' => DRUPAL_NO_CACHE
- );
- return $blocks;
- }
- /**
- * Implements hook_block_view().
- */
- function clameursmod_block_view($delta = '') {
- $block = array();
- switch ($delta) {
- case 'thematiques':
- $block['subject'] = t('Thématiques');
- $block['content'] = _clameursmod_thematiques();
- break;
- case 'thematiques-anchor-links':
- $block['subject'] = t('Thématiques menu');
- $block['content'] = _clameursmod_thematiques_anchor_links();
- break;
- }
- return $block;
- }
- /**
- * Implements hook_theme().
- */
- function clameursmod_theme($existing, $type, $theme, $path) {
- return array(
- 'thematiques' => array(
- 'render element' => 'element'
- ),
- 'thematiques_anchor_links' => array(
- 'render element' => 'element'
- ),
- );
- }
- // ________ __ _
- // /_ __/ /_ ___ ____ ___ ____ _/ /_(_)___ ___ _____ _____
- // / / / __ \/ _ \/ __ `__ \/ __ `/ __/ / __ `/ / / / _ \/ ___/
- // / / / / / / __/ / / / / / /_/ / /_/ / /_/ / /_/ / __(__ )
- // /_/ /_/ /_/\___/_/ /_/ /_/\__,_/\__/_/\__, /\__,_/\___/____/
- // /_/
- function _clameursmod_thematiques(){
- $query = new EntityFieldQuery();
- $query
- ->entityCondition('entity_type', 'node')
- ->entityCondition('bundle', 'thematique')
- ->propertyCondition('status', 1)
- ->fieldOrderBy('field_poid', 'value', 'ASC');
- $result = $query->execute();
- // dsm($result['node'], "result");
- $nids = array_keys($result['node']);
- $nodes = array();
- foreach ($nids as $nid) {
- $nodes[] = node_load($nid);
- }
- return theme('thematiques', array("items"=>$nodes));
- }
- function theme_thematiques($vars){
- $nodes = $vars['items'];
- $rendered = "";
- foreach ($nodes as $key => $node) {
- // dsm($node, 'node');
- switch ($node->workflow) {
- case 7:
- $view_mode = "accueil";
- break;
- default:
- $view_mode = "attente";
- break;
- }
- $entity_view = entity_view('node', array($node), $view_mode);
- $rendered .= render($entity_view);
- }
- return $rendered;
- }
- // ___ __
- // / | ____ _____/ /_ ____ __________
- // / /| | / __ \/ ___/ __ \/ __ \/ ___/ ___/
- // / ___ |/ / / / /__/ / / / /_/ / / (__ )
- // /_/ |_/_/ /_/\___/_/ /_/\____/_/ /____/
- function _clameursmod_thematiques_anchor_links(){
- $query = new EntityFieldQuery();
- $query
- ->entityCondition('entity_type', 'node')
- ->entityCondition('bundle', 'thematique')
- ->propertyCondition('status', 1)
- ->fieldOrderBy('field_poid', 'value', 'ASC');
- $result = $query->execute();
- $nids = array_keys($result['node']);
- $nodes = [];
- foreach ($nids as $nid) {
- $node = node_load($nid);
- // dsm($node);
- $alias = str_replace('/', '-', drupal_get_path_alias('node/'.$nid));
- // get the workflow state ID
- $current_state = workflow_state_load_single($node->workflow);
- // dsm($current_state, 'current_state');
- // $workflow = $current_state->getWorkflow();
- // dsm($workflow, "workflow");
- $scheduled_transitions = WorkflowScheduledTransition::load('node', $nid, NULL, 1);
- $transition = false;
- if(count($scheduled_transitions)){
- // dsm($scheduled_transitions, "scheduled_transitions");
- $transition = $scheduled_transitions[0];
- }
- $nodes[$nid] = array(
- "alias"=>$alias,
- "title"=>$node->title,
- "wf_sid"=>$node->workflow,
- "wf_stamp"=> $transition ? $transition->scheduled : false,
- "wf_state"=>$current_state->getName(),
- );
- }
- return theme('thematiques_anchor_links', array("items"=>$nodes));
- }
- function theme_thematiques_anchor_links($vars){
- $list = array(
- 'items'=>array(),
- 'type'=>'ul',
- 'attributes'=>array(
- "class"=>array("thematique-anchor-links")
- )
- );
- $i=0;
- foreach ($vars["items"] as $nid => $val) {
- // TODO: display the workflow state ID
- $options = array(
- "attributes"=>array(
- "class"=>array("anchor","pos-".$i, $val['wf_state'], 'node-'.$nid),
- ),
- "fragment"=>$val['alias'],
- "html"=>true,
- );
- $content = $val['title'];
- if($val["wf_stamp"]){
- $content .= "<span>" . format_date($val["wf_stamp"], 'custom', "d M Y") . "</span>";
- }
- $list['items'][] = l($content, '' , $options);
- $i++;
- }
- return theme('item_list', $list);
- }
- function clameursmod_field_attach_view_alter(&$output, $context) {
- if(isset($output['field_emvideo'])){
- $entity = $context['entity'];
- $field_vignette = field_get_items('node', $entity, 'field_vignette');
- // dsm($field_vignette, $entity->title.' : field_vignette');
- if($field_vignette){
- // dsm($output, $entity->title.' : output');
- // dsm($context, $entity->title.' : context');
- $uri = $field_vignette[0]['uri'];
- $output['field_emvideo'][0]['#item']['uri'] = $uri;
- }
- }
- }
|