array( 'field_proyecto_monto_anual' => 'field_proyecto_monto_anual', 'field_proyecto_total' => 'field_proyecto_total', 'field_proyecto_correo' => 'field_proyecto_correo', 'field_proyecto_fecha_i' => 'field_proyecto_fecha_i', 'field_proyecto_fecha_f' => 'field_proyecto_fecha_f', 'field_proyecto_monto_ant' => 'field_proyecto_monto_ant', 'field_proyecto_monto_prox' => 'field_proyecto_monto_prox', 'field_proyecto_plurianual' => 'field_proyecto_plurianual', ), 'proyectos_operativos_mcti_proyecto_generales_form' => array( ), 'proyectos_operativos_proyecto_indicadores_form' => array( 'field_proyecto_meta_fisica' => 'field_proyecto_meta_fisica', ), 'proyectos_operativos_accion_especifica_crear_form' => array( 'field_accion_esp_ponderacion' => 'field_accion_esp_ponderacion', 'field_accion_esp_fechai' => 'field_accion_esp_fechai', 'field_accion_esp_fechaf' => 'field_accion_esp_fechaf', 'field_accion_esp_metaf' => 'field_accion_esp_metaf', 'field_accion_esp_programacion' => 'field_accion_esp_programacion', ), ); //se agregan los campos de financiamiento $arreglo_financiamiento = array(); $accion_especifica_number_fields = variable_get('accion_especifica_number_fields', 4); if ($accion_especifica_number_fields > 0) { for($i = 0; $i < $accion_especifica_number_fields; $i++) { foreach(variable_get('accion_especifica_financiamiento_options_' . $i, array()) as $field_id => $field) { $campos_esenciales['proyectos_operativos_accion_especifica_crear_form'][$field_id] = $field_id; } } } return $campos_esenciales; } /* * hook_form_alter */ function continuarproyectosopplurianual_form_alter(&$form, $form_state, $form_id) { if ($form_id == 'proyectos_operativos_admin_settings') { for($i = 0; $i <= 10; $i++) { $years[$i] = $i; } $form['continuarproyectosopplurianual'] = array( '#type' => 'fieldset', '#title' => t('Proyectos Plurianuales'), '#collapsible' => TRUE, '#collapsed' => FALSE, ); $form['continuarproyectosopplurianual']['continuarproyectosopplurianual_anho_creacion'] = array( '#title' => t('Permitir continuar Proyectos Plurianuales (años) anteriores'), '#type' => 'select', '#default_value' => variable_get('continuarproyectosopplurianual_anho_creacion', 0), '#options' => $years, ); $form['continuarproyectosopplurianual']['continuarproyectosopplurianual_aes'] = array( '#type' => 'checkbox', '#title' => t('Restringir fecha de las AES'), '#description' => t('Restringir las AES dentro del año de ejecución del proyecto (clonar)'), '#default_value' => variable_get('continuarproyectosopplurianual_aes', 0), ); $form['continuarproyectosopplurianual']['continuarproyectosopplurianual_mcti'] = array( '#type' => 'checkbox', '#title' => t('Políticas Direccionales'), '#description' => t('Permitir editar el campo de Políticas Pireccionales'), '#default_value' => variable_get('continuarproyectosopplurianual_mcti', 1), ); } if (strstr($form_id, 'proyectos_operativos_proyecto_') || $form_id == 'proyectos_operativos_accion_especifica_crear_form') { $proyecto = $form['#node']->type == 'proyectos_operativos'? $form['#node'] : $form['#proyecto']; $campo = $form['#node']->type == 'proyectos_operativos'? 'field_proyecto_plurianualb' : 'field_ae_plurianualb'; $plurianual = $form['#node']->nid && ($proyecto->field_proyecto_plurianual[0]['value'] == variable_get('proyectos_operativos_plurianual', 0) && $form['#node']->{$campo}[0]['nid'] && is_numeric($form['#node']->{$campo}[0]['nid']) && !$form['#node']->{$campo}[0]['nid'] != $form['#node']->nid); $campos_disable = array(); if ($plurianual) { $campos = _continuar_proyecto_get_fieldsbyformstep(); $campos_form = $campos[$form['#node']->type][$form_id]; //se agregar el campo de fecha de finalización para que pueda ser modificado if ($form_id == 'proyectos_operativos_proyecto_basico_form') { $campos_form['field_proyecto_fecha_i'] = 'field_proyecto_fecha_i'; $campos_form['field_proyecto_fecha_f'] = 'field_proyecto_fecha_f'; } elseif($form_id == 'proyectos_operativos_accion_especifica_crear_form') { $campos_form['field_accion_esp_fechai'] = 'field_accion_esp_fechai'; $campos_form['field_accion_esp_fechaf'] = 'field_accion_esp_fechaf'; } if (count($campos_form)) { $proyectos_operativos_fields = array(); $campos_esenciales = _continuar_proyecto_campos_esenciales(); $form['#campos_esenciales'] = array(); $display_ids = array(); foreach($form['#proyectos_operativos_fields'] as $id) { if (isset($form[$id]) && !isset($campos_form[$id]) && !isset($display_ids[$id])) { if (isset($campos_esenciales[$form_id][$id])) { $form['#campos_esenciales'][$id] = $id; } $display_ids[$id] = $id; $titulo = $form['#field_info'][$id]['widget']['label']; unset($form[$id]); $vid = isset($form['#field_info'][$id]['vid']) && is_numeric($form['#field_info'][$id]['vid'])? $form['#field_info'][$id]['vid'] : 0; $items = array(); $inputs = array(); $sql_implode = array(); $options = array(); if ($form['#field_info'][$id]['widget']['type'] == 'optionwidgets_select') { $list = explode("\n", $form['#field_info'][$id]['allowed_values']); $list = array_map('trim', $list); $list = array_filter($list, 'strlen'); foreach ($list as $opt) { // Sanitize the user input with a permissive filter. $opt = content_filter_xss($opt); if (strpos($opt, '|') !== FALSE) { list($key, $value) = explode('|', $opt); $options[$key] = (isset($value) && $value !=='') ? $value : $key; } else { $options[$cid][$opt] = $opt; } } } foreach($form['#node']->{$id} as $valores) { if (isset($form['#field_info'][$id]['columns']['nid'])){ foreach($valores as $id1 => $valor){ $inputs[] = $valor; $sql_implode[] = '%d'; } } else { foreach($valores as $id1 => $valor){ if ($vid) { $padres = $valor && is_numeric($valor)? taxonomy_get_parents_all($valor) : array(); $lista = array(); foreach($padres as $term){ $lista[] = $term->name; } $items[] = implode(' > ', $lista); } else{ $display_ids[$id] = $id; $mostrar = isset($options[$valor])? $options[$valor] : $valor; $items[] = $mostrar; } } } if (count($inputs)) { $sql = 'SELECT nid, title FROM {node} WHERE nid in(' . implode(', ', $sql_implode) . ')'; $result = db_query($sql, $inpunts); while($nodo = db_fetch_object($result)) { $items[] = $nodo->title; } } } $display = count($items) > 1? theme('item_list', $items) : implode(' ',$items); $form[$id] = array( '#value' => '
' . $display . '
', '#access' => TRUE, ); } elseif (!isset($display_ids[$id])) { $proyectos_operativos_fields[$id] = $id; } } if (count($form['#campos_esenciales'])) { $form['#validate'][] = 'continuarproyectosopplurianual_disable_form_validate'; } $form['#proyectos_operativos_fields'] = $proyectos_operativos_fields; } } } } /* * Implementation of continuarproyectosopplurianual_disable_form_validate() * validar proyectos. */ function continuarproyectosopplurianual_disable_form_validate($form, &$form_state) { $op = isset($form_state['values']['op']) ? $form_state['values']['op'] : ''; if ($op == t('Cancelar')) { return; } foreach($form['#campos_esenciales'] as $id) { $form_state['values'][$id] == $form['#node']->{$id}; } } /* * Implementation of hook_menu() */ function continuarproyectosopplurianual_menu() { //agregar proyecto operativo $items['continuarproyectosopplurianual/%proyectosop'] = array( 'title' => t('Continuar Proyecto Plurianual'), 'page callback' => 'drupal_get_form', 'page arguments' => array('continuarproyectosopplurianual_agregar_proyectos_operativo_form', 1), 'access callback' => '_proyectosopplurianual_access_add', 'access arguments' => array(1), 'weight' => -7, 'type' => MENU_NORMAL_ITEM, ); return $items; } /** * Implementation of _proyectos_operativos_access_editar() * Menu access control callback. Determina si un usuario tiene acceso a editar un proyecto */ function _proyectosopplurianual_access_add($node) { global $user; if ($node->field_proyecto_plurianual[0]['value'] != variable_get('proyectos_operativos_plurianual', 0)) { return FALSE; } if (module_exists('workflow')) { $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL); if ($node->_workflow != $estado_aprobado) { return FALSE; } } $year_p = variable_get('proyectos_operativos_anho_creacion', 0); //se verifica que no exista un proyecto plurianual ya creado para este periodo $sql = 'SELECT p.nid, n.title FROM {content_type_proyectos_operativos} AS p INNER JOIN {node} AS n ON n.nid = p.nid AND n.vid = p.vid AND n.status > 0 INNER JOIN {proyectos_operativos} AS po ON po.nid = p.nid INNER JOIN {workflow_node} AS w ON w.nid = p.nid AND w.sid != %d WHERE (p.field_proyecto_plurianualb_nid = %d OR p.nid = %d) AND po.year = %d'; $inpunts = array(); $inpunts[] = variable_get('proyectos_operativos_state_naprobado', NULL); $inpunts[] = $node->nid; $inpunts[] = $node->nid; $inpunts[] = $year_p; $result = db_query($sql, $inpunts); $proy = db_fetch_object($result); if ($proy) { return FALSE; } $umbral = $year_p - $node->anhoproyectos_operativos; if ($umbral <= 0 || $umbral > variable_get('continuarproyectosopplurianual_anho_creacion', 0)) { return FALSE; } return $node->field_proyecto_ente[0]['nid'] && _proyectos_operativos_edita_datos_agregar($node->field_proyecto_ente[0]['nid']); } /** * Implementation of continuarproyectosopplurianual_agregar_proyectos_operativo_form(). * Formulario de para agregar nuevo proyecto operativo. */ function continuarproyectosopplurianual_agregar_proyectos_operativo_form(&$form_state, $proyecto = 0) { global $user; //add breadcrumb $breadcrumb = array(); $breadcrumb[] = l(t('Home'), ''); $breadcrumb[] = l(t('Proyectos Operativos'), 'proyectos_operativos'); if ($proyecto->nid) { $breadcrumb[] = l(check_plain($proyecto->title), 'proyectosop/' . $proyecto->nid); } $breadcrumb[] = t('Continuar Proyecto Plurianual'); // Link to current URL drupal_set_breadcrumb($breadcrumb); $current_time = time(); $tipo_plan = 'proyectos_operativos_formular'; $ente_planificador = 0; if($proyecto && $proyecto->nid && $proyecto->field_proyecto_ente[0]['nid']) { $ente_planificador = ente_planificador_leer_ente_planificadores($proyecto->field_proyecto_ente[0]['nid']); } $mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador); $fecha = FALSE; if ($mi_fecha[1] + 86399 > $current_time && $mi_fecha[0] < $current_time) { $fecha = TRUE; } if (!$fecha) { muestra_mensaje($tipo_plan, $ente_planificador); } if ($fecha && $ente->nid) { muestra_mensaje($tipo_plan, $ente_planificador, 0); } $fechas_validacion = array( 'inicio' => '', 'fin' => '', ); $form = array(); $form['#node'] = $proyecto; //Se obtienen las AE disponibles para el nuevo proyecto plurianual $sql = "SELECT aet.field_accion_titulo_value AS titulo, aet.nid, aet.field_accion_esp_fechai_value AS fechai, aet.field_accion_esp_fechaf_value AS fechaf FROM {content_type_proyectos_operativos} AS po INNER JOIN {content_field_proyecto_accion_esp} AS ae ON ae.nid = po.nid AND ae.vid = po.vid INNER JOIN {node} AS n ON n.nid = ae.field_proyecto_accion_esp_nid INNER JOIN {content_type_accion_especifica} AS aet ON aet.nid = n.nid AND aet.vid = n.vid WHERE po.field_proyecto_plurianualb_nid = %d OR (po.nid = %d AND po.vid = %d)"; $inpunts = array(); $inpunts[] = $proyecto->nid; $inpunts[] = $proyecto->nid; $inpunts[] = $proyecto->vid; if (variable_get('continuarproyectosopplurianual_aes', 0)) { $year = variable_get('proyectos_operativos_anho_creacion', 0); $sql .= " AND aet.field_accion_esp_fechai_value <= '%s' AND aet.field_accion_esp_fechaf_value >= '%s'"; $inpunts[] = ($year + 1) . '-01-01 00:00:00'; $inpunts[] = ($year - 1) . '-12-31 00:00:00'; } $result = db_query($sql, $inpunts); $aes = array(); $form['ae'] = array( '#type' => 'fieldset', '#title' => t('Acciones Específicas'), '#description' => t('Acciones Específicas a incorporar en el proyecto'), '#collapsible' => TRUE, '#collapsed' => FALSE, ); while($ae = db_fetch_object($result)) { $fechai = explode(' ', $ae->fechai); $fechai = explode('-', $fechai[0]); $fechaf = explode(' ', $ae->fechaf); $fechaf = explode('-', $fechaf[0]); $fechas = array(); //solo deje agregar ae que tienen bien establecidas sus fechas if (count($fechai) == 3 && count($fechaf) == 3) { $fechas[0] = $fechai[2] . '/' . $fechai[1] . '/' . $fechai[0]; $fechas[1] = $fechaf[2] . '/' . $fechaf[1] . '/' . $fechaf[0]; $titulo = t('AE: @AE (Fechas de ejecución: @fechai al @fechaf)', array('@AE' => $ae->titulo, '@fechai' => $fechas[0], '@fechaf' => $fechas[1])); $form['ae']['ae_' . $ae->nid] = array( '#type' => 'checkbox', '#title' => check_plain($titulo), '#default_value' => FALSE, ); $aes[$ae->nid] = $ae->titulo; } } $form['#ae'] = $aes; $form['buttons']['registrar'] = array( '#type' => 'submit', '#default_value' => t('Continuar Proyecto Plurianual'), '#weight' => 100, ); $form['buttons']['cancelar'] = array( '#type' => 'submit', '#default_value' => t('Cancelar'), '#attributes' => array('onClick' => 'window.location="' . base_path() .$_GET['q'] . '"; return false;'), '#weight' => 101, ); $form['#submit'] = array('continuarproyectosopplurianual_agregar_proyectos_operativo_form_submit'); return $form; } /* * Implementation of continuarproyectosopplurianual_agregar_proyectos_operativo_form_submit(). * Guardar el nuevo proyecto operativo. */ function continuarproyectosopplurianual_agregar_proyectos_operativo_form_submit($form, &$form_state) { global $user; $op = isset($form_state['values']['op']) ? $form_state['values']['op'] : ''; if ($op == t('Cancelar')) { $form_state['redirect'] = 'proyectos_operativos'; return; } module_load_include('inc', 'node', 'node.pages'); $proyecto = $form['#node']; if (!isset($proyecto->field_proyecto_plurianualb) || !$proyecto->field_proyecto_plurianualb[0]['nid'] || !is_numeric($proyecto->field_proyecto_plurianualb[0]['nid'])) { $proyecto->field_proyecto_plurianualb[0]['nid'] = $proyecto->nid; node_save($proyecto); } //se crea el nuevo proyecto plurianual $nuevo_proyecto = _continuar_clonar_proyecto_aes($proyecto->nid); if ($nuevo_proyecto && $nuevo_proyecto->nid) { $new_aes = array(); $new_aes_title = array(); foreach($form['#ae'] as $nid => $title) { if ($form_state['values']['ae_' . $nid]) { $nueva_ae = _continuar_clonar_proyecto_aes($nid, $nuevo_proyecto->nid); if ($nueva_ae && $nueva_ae->nid) { $new_aes[]['nid'] = $nueva_ae->nid; $new_aes_title[$nueva_ae->nid] = $title; } } } if (count($new_aes_title)) { $nuevo_proyecto->field_proyecto_accion_esp = $new_aes; $nuevo_proyecto->log = t('Se agregarón las AE: @aes', array('@aes' => theme('item_list', $new_aes_title))); $nuevo_proyecto->revision = 1; node_save($nuevo_proyecto); } } if ($_REQUEST['destination']) { $form_state['redirect'] = url('proyectosopedit/' . $nuevo_proyecto->nid, array( 'query' => array( 'destination' => $_REQUEST['destination'], ), 'absolute' => TRUE, ) ); unset($_REQUEST['destination']); } else { // add redirect $form_state['redirect'] = 'proyectosopedit/' . $nuevo_proyecto->nid; } } /** * Implementation of _continuar_clonar_proyecto_aes(). * clonar un proyecto o ae. */ function _continuar_clonar_proyecto_aes($nid = 0, $nodefather = 0) { global $user; $node_load = 0; $seudonimo = array( 'proyectos_operativos' => 'proyecto', 'accion_especifica' => 'ae', ); if ($nid && is_numeric($nid)) { $node = node_load($nid); $campos = _continuar_proyecto_get_fieldsbyformstep(); if (isset($campos[$node->type])) { $node_load = clone $node; unset($node_load->nid); unset($node_load->vid); unset($node_load->created); unset($node_load->changed); unset($node_load->revision_uid); unset($node_load->path); unset($node_load->data); unset($node_load->current_revision_id); unset($node_load->is_current); unset($node_load->num_revisions); $node_load->log = t('Se Agregó @tipo como pluiranual de (@nombre)', array('@nombre' => check_plain($node->title),'@tipo' => $node->type)); $node_load->uid = $user->uid; $node_load->revision = 1; foreach($campos[$node->type] as $tipo => $campo) { foreach($campo as $id) { unset($node_load->{$id}); } } $node_load->{'field_' . $seudonimo[$node->type] . '_plurianualb'} = array(); $enlace = array(); $valor = isset($node->{'field_' . $seudonimo[$node->type] . '_plurianualb'}[0]['nid'])? $node->{'field_' . $seudonimo[$node->type] . '_plurianualb'}[0]['nid'] : 0; $enlace[]['nid'] = ($valor && is_numeric($valor))? $valor : $node->nid; $node_load->{'field_' . $seudonimo[$node->type] . '_plurianualb'} = $enlace; if ($node->type == 'accion_especifica') { $enlace = array(); $valor = isset($node->{'field_ae_proyectobase'}[0]['nid'])? $node->{'field_ae_proyectobase'}[0]['nid'] : 0; $enlace[]['nid'] = ($valor && is_numeric($valor)) ? $valor : $node->field_accion_esp_proyecto[0]['nid']; $node_load->field_ae_proyectobase = $enlace; if ($nodefather && is_numeric($nodefather)) { $node_load->field_accion_esp_proyecto = array(); $node_load->field_accion_esp_proyecto[]['nid'] = $nodefather; } } elseif($node->type == 'proyectos_operativos') { $node_load->field_proyecto_accion_esp = array(); $node_load->anhoproyectos_operativos = variable_get('proyectos_operativos_anho_creacion', 0); } node_save($node_load); } } return $node_load; } /** * Implementation of _continuar_proyecto_get_fieldsbyformstep(). * obtiene los campos a editar en un proyecto o ae. */ function _continuar_proyecto_get_fieldsbyformstep(){ $arreglo = array( 'proyectos_operativos' => array( 'proyectos_operativos_proyecto_basico_form' => array( // 'field_proyecto_fecha_i' => 'field_proyecto_fecha_i', // 'field_proyecto_fecha_f' => 'field_proyecto_fecha_f', 'field_proyecto_monto_ant' => 'field_proyecto_monto_ant', 'field_proyecto_monto_anual' => 'field_proyecto_monto_anual', 'field_proyecto_monto_prox' => 'field_proyecto_monto_prox', 'field_proyecto_total' => 'field_proyecto_total', 'field_proyecto_nombre_gere' => 'field_proyecto_nombre_gere', 'field_proyecto_cedul_gere' => 'field_proyecto_cedul_gere', 'field_proyecto_corre_gere' => 'field_proyecto_corre_gere', 'field_proyecto_telef_gere' => 'field_proyecto_telef_gere', 'field_proyecto_nom_r_tec' => 'field_proyecto_nom_r_tec', 'field_proyecto_ced_r_tec' => 'field_proyecto_ced_r_tec', 'field_proyecto_cor_r_tec' => 'field_proyecto_cor_r_tec', 'field_proyecto_tel_r_tec' => 'field_proyecto_tel_r_tec', 'field_proyecto_und_r_tec' => 'field_proyecto_und_r_tec', 'field_proyecto_nom_r_reg' => 'field_proyecto_nom_r_reg', 'field_proyecto_ced_r_reg' => 'field_proyecto_ced_r_reg', 'field_proyecto_cor_r_reg' => 'field_proyecto_cor_r_reg', 'field_proyecto_tel_r_reg' => 'field_proyecto_tel_r_reg', 'field_proyecto_nom_r_adm' => 'field_proyecto_nom_r_adm', 'field_proyecto_ced_r_adm' => 'field_proyecto_ced_r_adm', 'field_proyecto_cor_r_adm' => 'field_proyecto_cor_r_adm', 'field_proyecto_tel_r_adm' => 'field_proyecto_tel_r_adm', 'field_proyecto_und_r_adm' => 'field_proyecto_und_r_adm', ), 'proyectos_operativos_proyecto_generales_form' => array( 'field_proyecto_emdirecto' => 'field_proyecto_emdirecto', 'field_proyecto_efdirecto' => 'field_proyecto_efdirecto', 'field_proyecto_emindirecto' => 'field_proyecto_emindirecto', 'field_proyecto_efindirecto' => 'field_proyecto_efindirecto', 'field_proyecto_relacion' => 'field_proyecto_relacion', 'field_proyecto_beneficiario' => 'field_proyecto_beneficiario', 'field_proyectos_masculino_d' => 'field_proyectos_masculino_d', 'field_proyectos_femenino_d' => 'field_proyectos_femenino_d', 'field_proyectos_masculino_i' => 'field_proyectos_masculino_i', 'field_proyectos_femenino_i' => 'field_proyectos_femenino_i', ), 'proyectos_operativos_proyecto_indicadores_form' => array( 'field_proyecto_descripcion_bien' => 'field_proyecto_descripcion_bien', 'field_proyecto_unidadm' => 'field_proyecto_unidadm', 'field_proyecto_meta_m' => 'field_proyecto_meta_m', 'field_proyecto_meta_f' => 'field_proyecto_meta_f', 'field_proyecto_meta_fisica' => 'field_proyecto_meta_fisica', 'field_progrmcn_anual_prog' => 'field_progrmcn_anual_prog', 'field_progrmcn_anual_unid' => 'field_progrmcn_anual_unid', 'field_progrmcn_anual_cap' => 'field_progrmcn_anual_cap', 'field_progrmcn_anual_anho' => 'field_progrmcn_anual_anho', 'field_balnc_progrmn_anu' => 'field_balnc_progrmn_anu', 'field_balance_fuente' => 'field_balance_fuente', 'field_balanc_tipofuent' => 'field_balanc_tipofuent', 'field_balanc_tipoprod' => 'field_balanc_tipoprod', 'field_balanc_unidmed' => 'field_balanc_unidmed', 'field_balanc_capacid' => 'field_balanc_capacid', 'field_balanc_anho' => 'field_balanc_anho', 'field_tipo_factores' => 'field_tipo_factores', 'field_factor_impact_multifc' => 'field_factor_impact_multifc', 'field_factor_segun_origen' => 'field_factor_segun_origen', 'field_factor_impact_multiog' => 'field_factor_impact_multiog', 'field_factor_naturaleza' => 'field_factor_naturaleza', 'field_factor_intensidad' => 'field_factor_intensidad', 'field_factor_extension' => 'field_factor_extension', 'field_factor_momento' => 'field_factor_momento', 'field_factor_persistencia' => 'field_factor_persistencia', 'field_factor_reversibilidad' => 'field_factor_reversibilidad', 'field_factor_sinergismo' => 'field_factor_sinergismo', 'field_factor_acumulacion' => 'field_factor_acumulacion', 'field_factor_relacion' =>'field_factor_relacion', 'field_factor_recuperabilidad' => 'field_factor_recuperabilidad', 'field_factor_importancia' => 'field_factor_importancia', 'field_factor_medids_impact' => 'field_factor_medids_impact', 'field_proyecto_sa_descripcion' => 'field_proyecto_sa_descripcion', 'field_proyecto_sa_formulai' => 'field_proyecto_sa_formulai', 'field_proyecto_sa_fuentei' => 'field_proyecto_sa_fuentei', 'field_proyecto_sa_fecha' => 'field_proyecto_sa_fecha', 'field_proyecto_so_descripcion' => 'field_proyecto_so_descripcion', 'field_proyecto_tiempoi' => 'field_proyecto_tiempoi', ), 'otros' => array( 'field_proyecto_esp_monto_finan' => 'field_proyecto_esp_monto_finan', 'field_proyecto_esp_total_fuent' => 'field_proyecto_esp_total_fuent', ), ), 'accion_especifica' => array( 'proyectos_operativos_accion_especifica_crear_form' => array( // 'field_accion_esp_fechai' => 'field_accion_esp_fechai', // 'field_accion_esp_fechaf' => 'field_accion_esp_fechaf', 'field_accion_esp_ejecutor' => 'field_accion_esp_ejecutor', 'field_accion_esp_bien' => 'field_accion_esp_bien', 'field_accion_esp_localizacion' => 'field_accion_esp_localizacion', 'field_accion_esp_latitud' => 'field_accion_esp_latitud', 'field_accion_esp_longitud' => 'field_accion_esp_longitud', 'field_accion_esp_metaf' => 'field_accion_esp_metaf', 'field_accion_esp_ponderacion' => 'field_accion_esp_ponderacion', 'field_accion_esp_meta_m' => 'field_accion_esp_meta_m', 'field_accion_esp_meta_f' => 'field_accion_esp_meta_f', 'field_accion_esp_ponderacion' => 'field_accion_esp_ponderacion', 'field_accion_esp_programacion' => 'field_accion_esp_programacion', 'field_accion_esp_unidadm' => 'field_accion_esp_unidadm', ), 'otros' => array( 'field_accion_esp_monto_finan' => 'field_accion_esp_monto_finan', 'field_accion_esp_total_fuent' => 'field_accion_esp_total_fuent', 'field_accion_esp_total_meta' => 'field_accion_esp_total_meta', ), ), ); if (variable_get('continuarproyectosopplurianual_mcti', 1)) { $arreglo['proyectos_operativos']['proyectos_operativos_proyecto_basico_form']['field_proyecto_mcti'] = 'field_proyecto_mcti'; } //se agregan los campos de financiamiento $arreglo_financiamiento = array(); $accion_especifica_number_fields = variable_get('accion_especifica_number_fields', 4); if ($accion_especifica_number_fields > 0) { for($i = 0; $i < $accion_especifica_number_fields; $i++) { foreach(variable_get('accion_especifica_financiamiento_options_' . $i, array()) as $field_id => $field) { $arreglo['accion_especifica']['proyectos_operativos_accion_especifica_crear_form'][$field_id] = $field_id; } } } return $arreglo; } /* * Implementation of hook_proyecto_obtiene_links_alter() */ function continuarproyectosopplurianual_proyecto_obtiene_links_alter(&$links, $proyecto, $acceso = FALSE) { //field_proyecto_plurianual if (_proyectosopplurianual_access_add($proyecto)) { $nid_proyecto_base = (isset($proyecto->field_proyecto_plurianualb[0]['nid']) && is_numeric($proyecto->field_proyecto_plurianualb[0]['nid']) && $proyecto->field_proyecto_plurianualb[0]['nid'])? $proyecto->field_proyecto_plurianualb[0]['nid'] : $proyecto->nid; $links['proyecto_plurianual'] = array( 'data' => l(t('Continuar Proyecto Plurianual'), 'continuarproyectosopplurianual/' . $nid_proyecto_base), 'class' => 'continuar-proyectos-operativos', ); } }