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',
);
}
}