コード例 #1
0
ファイル: toba_catalogo_items.php プロジェクト: emma5021/toba
 function cargar($opciones, $id_item_inicial = null, $incluidos_forzados = array())
 {
     if (!isset($id_item_inicial)) {
         $id_item_inicial = toba_info_editores::get_item_raiz($this->proyecto);
     }
     $en_profundidad = $this->debe_cargar_en_profundidad($id_item_inicial, $opciones);
     $filtro_items = "";
     if (!$this->debe_cargar_todo($opciones) || $en_profundidad) {
         //--- Se dejan solo los items del primer nivel, excepto que este en las excepciones
         if (isset($id_item_inicial)) {
             $id_item_sano = toba_contexto_info::get_db()->quote($id_item_inicial);
             $filtro_padre = "(i.padre = {$id_item_sano} OR i.item= {$id_item_sano})";
             //OR i.padre IN (SELECT item FROM apex_item WHERE padre='$id_item_inicial'))";
         }
         if (!empty($incluidos_forzados) && !$en_profundidad) {
             $forzados = implode("', '", $incluidos_forzados);
             $filtro_incluidos = "( i.padre IN ('" . $forzados . "')";
             $filtro_incluidos .= " OR i.item IN ('" . $forzados . "') )";
         }
         if (isset($filtro_padre) && isset($filtro_incluidos)) {
             $filtro_items = "\tAND ({$filtro_padre} \n\t\t\t\t\t\t\t\t\t\tOR \n\t\t\t\t\t\t\t\t\t{$filtro_incluidos})\n\t\t\t\t\t";
         } elseif (isset($filtro_padre)) {
             $filtro_items = "\tAND {$filtro_padre} ";
         } elseif (isset($filtro_incluidos)) {
             $filtro_items = "\tAND {$filtro_incluidos} ";
         }
     }
     if (isset($opciones['solo_carpetas']) && $opciones['solo_carpetas'] == 1) {
         $filtro_items .= "\tAND i.carpeta = 1";
     }
     //-- Se utiliza como sql básica aquella que brinda la definición de un componente
     toba_item_def::set_db(toba_contexto_info::get_db());
     $sql_base = toba_item_def::get_vista_extendida($this->proyecto);
     $sql = sql_concatenar_where($sql_base['basica']['sql'], array(" (i.solicitud_tipo IS NULL OR i.solicitud_tipo <> 'fantasma')" . $filtro_items));
     $sql = sql_agregar_ordenamiento($sql, array(array('i.carpeta', 'asc'), array('i.orden', 'asc'), array('i.nombre', 'asc')));
     $rs = toba_contexto_info::get_db()->consultar($sql);
     $this->items = array();
     if (!empty($rs)) {
         foreach ($rs as $fila) {
             $id = array();
             $id['componente'] = $fila['item'];
             $id['proyecto'] = $fila['item_proyecto'];
             $datos = array('basica' => $fila);
             if ($en_profundidad) {
                 $info = toba_constructor::get_info($id, 'toba_item', true, null, true, true);
             } else {
                 $info = toba_constructor::get_info($id, 'toba_item', false, $datos);
             }
             $this->items[$fila['item']] = $info;
         }
         $this->carpeta_inicial = $id_item_inicial;
         $this->mensaje = "";
         $this->ordenar();
         $this->filtrar($opciones);
     }
 }
コード例 #2
0
ファイル: toba_item_def.php プロジェクト: emma5021/toba
 static function set_db($db)
 {
     self::$db = $db;
 }