Conjunto 71baefb en sipes


Ignorar:
Fecha y hora:
18/08/2017 11:49:30 (hace 7 años)
Autor:
Sipes Apn <root@…>
Branches:
stable
Children:
604b644
Parents:
c43ea01
Mensaje:

se agrego el hook_field_formatter_info

Fichero:
1 editado

Leyenda

No modificado
Añadido
Eliminado
  • 0.3-modules/politicas_proyectos/politicas_proyectos.module

    r84211f4 r71baefb  
    555555      'arguments' => array('element' => NULL),
    556556    ),
    557   );
    558 }
     557    'politicas_proyectos_formatter_body' => array(
     558      'arguments' => array('element'),
     559      'function' => 'theme_politicas_proyectos_formatter_body',
     560    ),
     561  );
     562}
     563
     564/**
     565 * Proxy theme function for 'full' and 'teaser' nodereference field formatters.
     566 */
     567function theme_politicas_proyectos_formatter_body($element) {
     568  static $recursion_queue = array();
     569  $output = '';
     570  if (!empty($element['#item']['safe']['nid'])) {
     571    $nid = $element['#item']['safe']['nid'];
     572    $node = $element['#node'];
     573    $field = content_fields($element['#field_name'], $element['#type_name']);
     574    // If no 'referencing node' is set, we are starting a new 'reference thread'
     575    if (!isset($node->referencing_node)) {
     576      $recursion_queue = array();
     577    }
     578    $recursion_queue[] = $node->nid;
     579    if (in_array($nid, $recursion_queue)) {
     580      // Prevent infinite recursion caused by reference cycles:
     581      // if the node has already been rendered earlier in this 'thread',
     582      // we fall back to 'default' (node title) formatter.
     583      return theme('nodereference_formatter_default', $element);
     584    }
     585    $referenced_node = _politicas_proyectos_load_politica($nid);
     586    if ($referenced_node) {
     587      $referenced_node->referencing_node = $node;
     588      $referenced_node->referencing_field = $field;
     589      $output = check_plain($referenced_node->body);
     590    }
     591  }
     592  return $output;
     593}
     594
     595/**
     596 * Implementation of _politicas_proyectos_load_politica().
     597 * Load node
     598 */
     599function _politicas_proyectos_load_politica($nid){
     600  $node = 0;
     601  if ($nid) {
     602    $sql = 'SELECT n.nid, nr.body FROM {node} AS n INNER JOIN {node_revisions} AS nr ON nr.nid = n.nid AND nr.vid = n.vid WHERE n.nid = %d';
     603    $result = db_query($sql, $nid);
     604    $node = db_fetch_object($result);
     605  }
     606  return $node;
     607}
     608
    559609
    560610
     
    579629}
    580630
    581 
     631/**
     632 * Implementation of hook_field_formatter_info().
     633 */
     634function politicas_proyectos_field_formatter_info() {
     635  return array(
     636    'body' => array(
     637      'label' => t('Body'),
     638      'field types' => array('nodereference'),
     639      'multiple values' => CONTENT_HANDLE_CORE,
     640    ),
     641  );
     642}
    582643
    583644/**
     
    746807
    747808  }
    748 
    749 
    750809  if (empty($element[$field_key]['#element_validate'])) {
    751810    $element[$field_key]['#element_validate'] = array();
     
    787846      $inputs[] = $ente_id;
    788847    }
    789     $sql = "SELECT n.nid, nr.body, pd.field_politicas_ente_nid FROM {content_type_politicas_direccionales} AS pd INNER JOIN {node} AS n ON n.nid = pd.nid AND n.vid = pd.vid INNER JOIN {node_revisions} AS nr ON n.nid = nr.nid AND n.vid = nr.vid WHERE pd.field_politicas_ente_nid IN (" . implode (', ', $implode_sql) . ") AND  field_politicas_direcc_year_value = %d AND field_politicas_seleccionada_value = %d";
     848    $sql = 'SELECT n.nid, nr.body, pd.field_politicas_ente_nid FROM {content_type_politicas_direccionales} AS pd INNER JOIN {node} AS n ON n.nid = pd.nid AND n.vid = pd.vid INNER JOIN {node_revisions} AS nr ON n.nid = nr.nid AND n.vid = nr.vid WHERE';
     849    if (count($implode_sql)) {
     850      $sql .= ' pd.field_politicas_ente_nid IN (' . implode (', ', $implode_sql) . ') AND';
     851    }
     852    $sql .= ' field_politicas_direcc_year_value = %d AND field_politicas_seleccionada_value = %d';   
    790853    $inputs[] = variable_get('situacional_actual_preliminar_anho_creacion', 0);
    791854    $inputs[] = 1;
     
    799862  return $results[$ente_id];
    800863}
    801 
    802 
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.