コード例 #1
0
 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;
 }
コード例 #2
0
 static function get_lista_tipos_componentes()
 {
     $datos = toba_info_editores::get_lista_tipo_componentes(false);
     $datos[] = 'toba_item';
     return $datos;
 }
コード例 #3
0
ファイル: zona_objeto.php プロジェクト: emma5021/toba
    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%' >&nbsp;".$rs["proyecto"]."&nbsp;</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>';
        }
    }
コード例 #4
0
 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;
 }
コード例 #5
0
ファイル: toba_modelo_nucleo.php プロジェクト: emma5021/toba
 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');
 }