function get_utilerias() { $iconos = array(); if (isset($this->datos['_info']['subclase_archivo'])) { // Administracion de la Subclase PHP} if (admin_util::existe_archivo_subclase($this->datos['_info']['subclase_archivo'], $this->datos['_info']['punto_montaje'])) { $iconos[] = $this->get_utileria_editor_abrir_php(array('proyecto' => $this->proyecto, 'componente' => $this->id)); $iconos[] = $this->get_utileria_editor_ver_php(array('proyecto' => $this->proyecto, 'componente' => $this->id)); } else { $iconos[] = $this->get_utileria_editor_ver_php(array('proyecto' => $this->proyecto, 'componente' => $this->id), null, 'nucleo/php_inexistente.gif', false); } } /* // Instanciador if ( $this instanceof toba_ei_formulario_info || $this instanceof toba_ei_cuadro_info ) { $iconos[] = array( 'imagen' => toba_recurso::imagen_toba("objetos/instanciar.gif", false), 'ayuda' => 'Previsualizar el componente', 'vinculo' => toba::vinculador()->generar_solicitud( toba_editor::get_id(), 3316, $this->acceso_zona(), false, false, null, true, 'central') ); } */ //Editor if (isset($this->datos['_info']['clase_editor_proyecto'])) { $ayuda = null; if (in_array($this->datos['_info']['clase'], toba_info_editores::get_lista_tipo_componentes())) { $metodo = "get_pantallas_" . $this->datos['_info']['clase']; $pantallas = call_user_func(array("toba_datos_editores", $metodo)); //-- Se incluye un vinculo a cada pantalla encontrada $ayuda = "<div class='editor-lista-vinculos'>"; foreach ($pantallas as $pantalla) { $img = $pantalla['imagen'] != '' ? $pantalla['imagen'] : "objetos/fantasma.gif"; $origen = $pantalla['imagen'] != '' ? $pantalla['imagen_recurso_origen'] : 'apex'; $vinculo = $this->vinculo_editor(array('etapa' => $pantalla['identificador'])); $tag_img = $origen == 'apex' ? toba_recurso::imagen_toba($img, true) : toba_recurso::imagen_proyecto($img, true); $ayuda .= '<a href=' . $vinculo . ' target=' . apex_frame_centro . " title='" . $pantalla['etiqueta'] . "'>" . $tag_img . '</a> '; } $ayuda .= "</div>"; $ayuda = str_replace("'", "\\'", $ayuda); } $iconos[] = array('imagen' => toba_recurso::imagen_toba("objetos/editar.gif", false), 'ayuda' => $ayuda, 'vinculo' => $this->vinculo_editor()); } return $iconos; }
static function get_lista_tipos_componentes() { $datos = toba_info_editores::get_lista_tipo_componentes(false); $datos[] = 'toba_item'; return $datos; }
function generar_html_barra_inferior() { $img_min = toba_recurso::imagen_toba('nucleo/sentido_des_sel.gif', false); //La representacion del Componente fantasma no deberia tener barra inferior. if ($this->editable_id[1] == '0' && $this->editable_id[0] == 'toba') { return; } echo '<br>'; //--------------------------------------------------------- //---------------- Barra de ITEMs consumidores ------------ //--------------------------------------------------------- $sql = ' SELECT i.proyecto as proyecto, i.item as item, i.nombre as nombre FROM apex_item_objeto io, apex_item i WHERE io.item = i.item AND io.proyecto = i.proyecto AND io.proyecto=' . quote($this->editable_id[0]) . ' AND io.objeto=' . quote($this->editable_id[1]) . ' ORDER BY 2;'; $datos = consultar_fuente($sql); if (!empty($datos)) { $cant = count($datos); $colapsado = "style='cursor: pointer; cursor: hand;' onclick=\"cambiar_colapsado(\$\$('zona_objeto_item_img'), \$\$('zona_objeto_item'));\" title='Mostrar / Ocultar'"; echo "<table width='100%' class='tabla-0'>"; echo "<tr><td class='barra-obj-io' {$colapsado}>" . "<img class='ei-barra-colapsar' id='zona_objeto_item_img' src='{$img_min}'>" . " Items Consumidores ({$cant})</td></tr>"; echo "<tr'><td class='barra-obj-leve'>"; echo "<table id='zona_objeto_item' style='display:none' class='tabla-0' width='400'>"; foreach ($datos as $rs) { echo '<tr>'; //echo "<td class='barra-obj-link' width='1%' > ".$rs["proyecto"]." </td>"; echo "<td class='barra-obj-link' width='1%' >" . toba_recurso::imagen_proyecto('item.gif', true) . '</td>'; echo "<td class='barra-obj-link' >[" . $rs['item'] . "] {$rs['nombre']}</td>"; echo "<td class='barra-obj-link' width='5'>"; echo "<a href='" . toba::vinculador()->get_url(toba_editor::get_id(), 1000240, array(apex_hilo_qs_zona => $rs['proyecto'] . apex_qs_separador . $rs['item'])) . "'>" . toba_recurso::imagen_toba('objetos/editar.gif', true, null, null, 'Editar propiedades de la operación') . '</a>'; echo "</td>\n"; echo "</tr>\n"; } echo "</table>\n"; echo '</td></tr></table>'; } //--------------------------------------------------------- //---------------- OBJETOS consumidores ------------------ //--------------------------------------------------------- $sql = ' SELECT o.proyecto as objeto_proyecto, o.objeto as objeto, o.nombre as objeto_nombre, o.clase_proyecto as clase_proyecto, o.clase as clase, d.identificador as objeto_identificador, c.icono as clase_icono, c.editor_proyecto as clase_editor_proyecto, c.editor_item as clase_editor, c.instanciador_proyecto as clase_instanciador_proyecto, c.instanciador_item as clase_instanciador FROM apex_objeto_dependencias d, apex_objeto o, apex_clase c WHERE d.objeto_consumidor = o.objeto AND d.proyecto = o.proyecto AND o.clase_proyecto = c.proyecto AND o.clase = c.clase AND d.proyecto=' . quote($this->editable_id[0]) . ' AND d.objeto_proveedor=' . quote($this->editable_id[1]) . ' ORDER BY 4,5,6;'; $datos = consultar_fuente($sql); if (!empty($datos)) { $cant = count($datos); $colapsado = "style='cursor: pointer; cursor: hand;' onclick=\"cambiar_colapsado(\$\$('zona_objeto_cont_img'), \$\$('zona_objeto_cont'));\" title='Mostrar / Ocultar'"; echo "<table width='100%' class='tabla-0'>"; echo "<tr><td class='barra-obj-io' {$colapsado}>" . "<img class='ei-barra-colapsar' id='zona_objeto_cont_img' src='{$img_min}'>" . " Controladores ({$cant})</td></tr>"; echo "<tr><td class='barra-obj-leve'>"; echo "<table id='zona_objeto_cont' style='display:none' class='tabla-0'>"; foreach ($datos as $rs) { if (!isset($contador[$rs['clase']])) { $contador[$rs['clase']] = 0; } else { $contador[$rs['clase']] += 1; } echo '<tr>'; echo "<td class='barra-obj-link' width='5'>" . toba_recurso::imagen_toba($rs['clase_icono'], true) . '</td>'; echo "<td class='barra-obj-link' >[" . $rs['objeto'] . '] ' . $rs['objeto_nombre'] . '</td>'; echo "<td class='barra-obj-link'>" . $rs['objeto_identificador'] . '</td>'; if (!in_array($rs['clase'], toba_info_editores::get_lista_tipo_componentes())) { echo "<td class='barra-obj-id' width='5'>"; echo "<a href='" . toba::vinculador()->get_url(toba_editor::get_id(), '/admin/objetos/propiedades', array(apex_hilo_qs_zona => $rs['objeto_proyecto'] . apex_qs_separador . $rs['objeto'])) . "'>" . toba_recurso::imagen_toba('objetos/objeto.gif', true, null, null, 'Editar propiedades BASICAS del Componente') . '</a>'; echo "</td>\n"; } echo "<td class='barra-obj-id' width='5'>"; if (isset($rs['clase_editor'])) { echo "<a href='" . toba::vinculador()->get_url($rs['clase_editor_proyecto'], $rs['clase_editor'], array(apex_hilo_qs_zona => $rs['objeto_proyecto'] . apex_qs_separador . $rs['objeto'])) . "'>" . toba_recurso::imagen_toba('objetos/editar.gif', true, null, null, 'Editar el Componente') . '</a>'; } echo "</td>\n"; echo "</tr>\n"; } echo "</table>\n"; echo '</td></tr></table>'; } //--------------------------------------------------------- //---------------- Barra de DEPENDENCIAS ------------------ //--------------------------------------------------------- $sql = ' SELECT o.proyecto as objeto_proyecto, o.objeto as objeto, o.nombre as objeto_nombre, o.clase_proyecto as clase_proyecto, o.clase as clase, d.identificador as objeto_identificador, c.icono as clase_icono, c.editor_proyecto as clase_editor_proyecto, c.editor_item as clase_editor, c.instanciador_proyecto as clase_instanciador_proyecto, c.instanciador_item as clase_instanciador FROM apex_objeto_dependencias d, apex_objeto o, apex_clase c WHERE d.objeto_proveedor = o.objeto AND d.proyecto = o.proyecto AND o.clase_proyecto = c.proyecto AND o.clase = c.clase AND d.proyecto=' . quote($this->editable_id[0]) . ' AND d.objeto_consumidor=' . quote($this->editable_id[1]) . ' ORDER BY 4,5,6;'; $rs = consultar_fuente($sql); if (!empty($rs)) { $cant = count($rs); $colapsado = "style='cursor: pointer; cursor: hand;' onclick=\"cambiar_colapsado(\$\$('zona_objeto_dep_img'), \$\$('zona_objeto_dep'));\" title='Mostrar / Ocultar'"; echo "<table width='100%' class='tabla-0'>"; echo "<tr><td class='barra-obj-io' {$colapsado}>" . "<img class='ei-barra-colapsar' id='zona_objeto_dep_img' src='{$img_min}'>" . " Dependencias ({$cant})</td></tr>"; echo "<tr ><td class='barra-obj-leve'>"; echo "<table id='zona_objeto_dep' style='display:none' class='tabla-0'>"; foreach ($rs as $fila) { if (!isset($contador[$fila['clase']])) { $contador[$fila['clase']] = 0; } else { $contador[$fila['clase']] += 1; } echo '<tr>'; echo "<td class='barra-obj-link' width='5'>" . toba_recurso::imagen_toba($fila['clase_icono'], true) . '</td>'; echo "<td class='barra-obj-link' >[" . $fila['objeto'] . '] ' . $fila['objeto_nombre'] . '</td>'; echo "<td class='barra-obj-link' width='5'>"; if (isset($fila['clase_editor'])) { echo "<a href='" . toba::vinculador()->get_url($fila['clase_editor_proyecto'], $fila['clase_editor'], array(apex_hilo_qs_zona => $fila['objeto_proyecto'] . apex_qs_separador . $fila['objeto'])) . "'>" . toba_recurso::imagen_toba('objetos/editar.gif', true, null, null, 'Editar propiedades ESPECIFICAS del Componente') . '</a>'; } echo "</td>\n"; echo "</tr>\n"; } echo "</table>\n"; echo '</td></tr></table>'; } }
function get_objetos($opciones, $en_profundidad = false, $excluir_clases = array()) { //---Metodo de Consulta (DAO) $filtro_dao = ""; if (isset($opciones['dao']) && $opciones['dao'] != '') { $filtro_dao = $this->formar_filtro_dao($opciones['dao']); if (!isset($filtro_dao)) { return array(); } } //---Clase if (isset($opciones['clase'])) { $clases = array($opciones['clase']); } else { $clases = toba_info_editores::get_lista_tipo_componentes(); if (count($excluir_clases) > 0) { foreach (array_keys($clases) as $i) { if (in_array($clases[$i], $excluir_clases)) { unset($clases[$i]); } } } } //---ID $filtro_id = isset($opciones['id']) ? 'AND o.objeto = ' . quote($opciones['id']) : ''; //---INDICE $filtro_indice = isset($opciones['indice']) ? 'AND o.identificador = ' . quote($opciones['indice']) : ''; //----Extensiones $filtro_ext = ""; if (isset($opciones['extendidos'])) { if ($opciones['extendidos'] == 'SI') { $filtro_ext = "AND\t\to.subclase IS NOT NULL"; if (isset($opciones['subclase'])) { $sub_sana = toba_contexto_info::get_db()->quote("%{$opciones['subclase']}%"); $filtro_ext .= "\nAND o.subclase ILIKE {$sub_sana} "; } } else { $filtro_ext = "AND\t\to.subclase IS NULL"; } } //---Huerfanos $filtro_huerfano = ""; $proyecto = toba_contexto_info::get_db()->quote($this->proyecto); if (isset($opciones['huerfanos']) && $opciones['huerfanos'] == 1) { $filtro_huerfano = "AND\t\to.objeto NOT IN (SELECT objeto FROM apex_item_objeto WHERE proyecto = {$proyecto})"; $filtro_huerfano .= "AND\to.objeto NOT IN (SELECT objeto_proveedor FROM apex_objeto_dependencias WHERE proyecto = {$proyecto})"; } //---Nombre $filtro_nombre = ""; if (isset($opciones['nombre']) && $opciones['nombre'] != '') { $filtro_nombre = "AND\t\to.nombre ILIKE '%{$opciones['nombre']}%'"; } //---Tabla $filtro_tabla = ""; if (isset($opciones['tabla']) && $opciones['tabla'] != '') { $tabla_sana = toba_contexto_info::get_db()->quote("%{$opciones['tabla']}%"); $subselect = "\n\t\t\t\tSELECT \n\t\t\t\t\tobjeto,\n\t\t\t\t\tobjeto_proyecto\n\t\t\t\tFROM apex_objeto_db_registros\n\t\t\t\tWHERE \n\t\t\t\t\tobjeto_proyecto = {$proyecto}\n\t\t\t\t\tAND tabla ILIKE {$tabla_sana}"; $filtro_tabla = " AND (o.objeto, o.proyecto) IN ({$subselect})"; } //-- Se utiliza como sql básica aquella que brinda la definición de un componente toba_componente_def::set_db(toba_contexto_info::get_db()); $sql_base = toba_componente_def::get_vista_extendida($this->proyecto); $sql = $sql_base['_info']['sql']; $extras = " o.clase IN ('" . implode("', '", $clases) . "')\n\t\t\t\tAND \to.proyecto = {$proyecto}\n\t\t\t\t{$filtro_dao}\t\t\t\t\n\t\t\t\t{$filtro_id}\n\t\t\t\t{$filtro_indice}\n\t\t\t\t{$filtro_ext}\n\t\t\t\t{$filtro_huerfano}\n\t\t\t\t{$filtro_nombre}\n\t\t\t\t{$filtro_tabla}\n\t\t"; $sql = sql_concatenar_where($sql, array($extras)); $sql = sql_agregar_ordenamiento($sql, array(array('o.nombre', 'asc'))); //--- Recorrido toba_componente_def::set_db(toba_contexto_info::get_db()); $datos = toba_contexto_info::get_db()->consultar($sql); $this->objetos = array(); foreach ($datos as $dato) { $agregar = true; if (isset($opciones['extensiones_rotas']) && $opciones['extensiones_rotas'] == 1) { $agregar = $this->tiene_extension_rota($dato); } if ($agregar) { $clave = array('componente' => $dato['objeto'], 'proyecto' => $this->proyecto); if (!$en_profundidad) { $info = toba_constructor::get_info($clave, $dato['clase'], false, array('_info' => $dato)); } else { $info = toba_constructor::get_info($clave, $dato['clase'], true, null, true); } if (isset($this->explicaciones[$dato['objeto']])) { $explicacion = implode("<hr />", $this->explicaciones[$dato['objeto']]); $info->set_info_extra($explicacion); } $this->objetos[] = $info; } } return $this->objetos; }
function parsear_editores(toba_modelo_instancia $instancia) { toba_contexto_info::set_db($instancia->get_db()); //--- Se busca el CI asociado a cada clase $sql = "SELECT\n\t\t\t\t\tc.clase,\n\t\t\t\t \to.proyecto,\n\t\t\t\t\to.objeto\n\t\t\t\tFROM\n\t\t\t\t\tapex_clase c,\n\t\t\t\t\tapex_item_objeto io,\n\t\t\t\t\tapex_objeto o\n\t\t\t\tWHERE\n\t\t\t\t\tc.clase IN ('" . implode("','", toba_info_editores::get_lista_tipo_componentes()) . "')\tAND\n\t\t\t\t\tc.proyecto = 'toba' AND\n\t\t\t\t\tc.editor_item = io.item AND\t\t\t\t-- Se busca el item editor\n\t\t\t\t\tc.editor_proyecto = io.proyecto AND\n\t\t\t\t\tio.objeto = o.objeto AND\t\t\t\t-- Se busca el CI del item\n\t\t\t\t\tio.proyecto = o.proyecto AND\n\t\t\t\t\to.clase = 'toba_ci'"; $rs = $instancia->get_db()->consultar($sql); $clase_php = new toba_clase_datos("toba_datos_editores"); foreach ($rs as $datos) { //--- Se buscan las pantallas asociadas a un CI especifico $this->manejador_interface->mensaje("Procesando " . $datos['clase'] . "..."); $proyecto = $instancia->get_db()->quote($datos['proyecto']); $objeto = $instancia->get_db()->quote($datos['objeto']); $sql = "\n\t\t\t\tSELECT\n\t\t\t\t\tpant.identificador,\n\t\t\t\t\tpant.etiqueta,\n\t\t\t\t\tpant.imagen,\n\t\t\t\t\tpant.imagen_recurso_origen\n\t\t\t\tFROM\n\t\t\t\t\tapex_objeto_ci_pantalla pant\n\t\t\t\tWHERE\n\t\t\t\t\t\tpant.objeto_ci_proyecto = {$proyecto}\n\t\t\t\t\tAND pant.objeto_ci = {$objeto}\n\t\t\t\tORDER BY pant.orden\n\t\t\t"; $pantallas = $instancia->get_db()->consultar($sql); $clase_php->agregar_metodo_datos('get_pantallas_' . $datos['clase'], $pantallas); } $dir = toba_dir() . "/php/modelo/info"; $clase_php->guardar($dir . '/toba_datos_editores.php'); }