Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function random_asesor_field_info() {
- return array(
- 'random_asesor' => array(
- 'label' => t('Asesor Aleatorio'),
- 'description' => t('Escoger asesor aleatorio'),
- 'default_widget' => 'random_asesor',
- 'default_formatter' => 'random_asesor',
- ),
- );
- }
- function random_asesor_field_widget_info() {
- return array(
- 'random_asesor' => array(
- 'label' => t('Default'),
- 'field types' => array('random_asesor'),
- ),
- );
- }
- function random_asesor_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
- switch ($instance['widget']['type']) {
- case 'random_asesor':
- $selected = isset($form_state['values']['proyecto']) ? $form_state['values']['proyecto'] : key(_random_asesor_generaListaProyectoAssoc());
- $element['proyecto'] = array(
- '#type' => 'select',
- '#title' => t('Proyecto'),
- '#options' => _random_asesor_generaListaProyectoAssoc(),
- '#default_value' => $selected,
- '#ajax' => array(
- 'callback' => 'random_asesor_proyectos_callback',
- 'wrapper' => 'random_asesor_proyectos_replace',
- )
- );
- $element['asesor'] = array(
- '#type' => 'select',
- '#title' => t('Asesor'),
- '#options' => _random_asesor_generaListaAsesorAssoc($selected),
- '#default_value' => isset($form_state['values']['asesor']) ? $form_state['values']['asesor'] : '',
- '#prefix' => '<div id="random_asesor_proyectos_replace">',
- '#suffix' => '</div>',
- );
- dpm($form_state);
- break;
- }
- return $element;
- }
- function _random_asesor_generaListaAsesor($proyecto = '') {
- $node = array();
- srand(time());
- $query = db_query("
- SELECT node.nid AS nid, node.title AS node_title, 'node' AS field_data_field_plan_nombre_node_entity_type
- FROM {node} node
- LEFT JOIN {field_data_field_plan_proyecto} field_data_field_plan_proyecto ON node.nid = field_data_field_plan_proyecto.entity_id AND (field_data_field_plan_proyecto.entity_type = 'node' AND field_data_field_plan_proyecto.deleted = '0')
- LEFT JOIN {field_data_field_plan_puesto} field_data_field_plan_puesto ON node.nid = field_data_field_plan_puesto.entity_id AND (field_data_field_plan_puesto.entity_type = 'node' AND field_data_field_plan_puesto.deleted = '0')
- WHERE (( (node.status = '1') AND (node.type IN ('bd_planilla')) AND (field_data_field_plan_proyecto.field_plan_proyecto_value LIKE :proyecto ESCAPE :escape) AND (field_data_field_plan_puesto.field_plan_puesto_value LIKE 'ASESOR' ESCAPE :escape) ))
- ORDER BY field_data_field_plan_nombre_node_entity_type ASC", array(':proyecto' => '%' . $proyecto . '%', ':escape' => '\\'));
- foreach ($query as $value) {
- $node[] = (node_load($value->nid)->field_plan_nombre['und'][0]['value']);
- }
- $numero_aleatorio = rand(0, count($node));
- return $node;
- }
- function _random_asesor_generaListaProyecto() {
- $node = array();
- $query = db_query("SELECT node.nid AS nid, field_data_field_plan_proyecto.field_plan_proyecto_value AS field_data_field_plan_proyecto_field_plan_proyecto_value, 'node' AS field_data_field_plan_proyecto_node_entity_type
- FROM
- {node} node
- LEFT JOIN {field_data_field_plan_puesto} field_data_field_plan_puesto ON node.nid = field_data_field_plan_puesto.entity_id AND (field_data_field_plan_puesto.entity_type = 'node' AND field_data_field_plan_puesto.deleted = '0')
- LEFT JOIN {field_data_field_plan_proyecto} field_data_field_plan_proyecto ON node.nid = field_data_field_plan_proyecto.entity_id AND (field_data_field_plan_proyecto.entity_type = 'node' AND field_data_field_plan_proyecto.deleted = '0')
- WHERE (( (node.status = '1') AND (node.type IN ('bd_planilla')) AND (field_data_field_plan_puesto.field_plan_puesto_value LIKE 'ASESOR' ESCAPE :escape) ))
- ORDER BY field_data_field_plan_proyecto_field_plan_proyecto_value ASC", array(':escape' => '\\'));
- foreach ($query as $value) {
- $node[] = $value->field_data_field_plan_proyecto_field_plan_proyecto_value;
- }
- $node = array_values(array_unique($node));
- return $node;
- }
- function _random_asesor_generaListaProyectoAssoc(){
- return drupal_map_assoc(_random_asesor_generaListaProyecto());
- }
- function random_asesor_proyectos_callback($form, &$form_state) {
- // dpm($form['field_test']);
- return $form['field_test'];
- }
- function _random_asesor_generaListaAsesorAssoc($key = '') {
- $options = array();
- $temp = _random_asesor_generaListaProyecto();
- for($i = 0; $i < count($temp); $i++){
- $options[] = array($temp[$i] => drupal_map_assoc(_random_asesor_generaListaAsesor($temp[$i])));
- }
- for($x = 0; $x < count($options); $x++){
- $aux = $options[$x][$key];
- if(array_key_exists($key, $options[$x])){
- return $options[$x][$key];
- }
- }
- return $options;
- }
- function random_asesor_field_is_empty($item, $field) {
- return FALSE;
- }
- function random_asesor_field_formatter_info() {
- return array(
- 'random_asesor' => array(
- 'label' => t('Fields values'),
- 'field types' => array('random_asesor'),
- ),
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement