示例#1
0
 public static function allPaginas($where = null, $idioma = null)
 {
     $result = Db::fetchAssoc(Db::select(array('inmuebles.inmueble_id', 'inmuebles.codigo', 'inmuebles.activo', 'inmuebles_contenidos.inmueble_contenido_id', 'inmuebles_contenidos.idioma', 'inmuebles_contenidos.nombre', 'inmuebles_contenidos.url', 'inmuebles_paginas.inmueble_pagina_id', 'pagina_codigo' => 'inmuebles_paginas.codigo', 'pagina_tipo' => 'inmuebles_paginas.tipo', 'inmuebles_paginas_contenidos.inmueble_pagina_contenido_id', 'pagina_nombre' => 'inmuebles_paginas_contenidos.nombre', 'pagina_titulo' => 'inmuebles_paginas_contenidos.titulo', 'pagina_url' => 'inmuebles_paginas_contenidos.url'), 'inmuebles', $where, array('inmuebles.inmueble_id' => 'ASC', 'inmuebles_paginas.posicion' => 'ASC'), null, Db::join('inmuebles_contenidos', array('inmuebles_contenidos.inmueble_id' => 'inmuebles.inmueble_id')) . Db::join('inmuebles_paginas', array('inmuebles_paginas.inmueble_id' => 'inmuebles.inmueble_id')) . Db::join('inmuebles_paginas_contenidos', array('inmuebles_paginas_contenidos.inmueble_pagina_id' => 'inmuebles_paginas.inmueble_pagina_id', 'inmuebles_paginas_contenidos.idioma' => 'inmuebles_contenidos.idioma'))));
     if (!$result) {
         return array();
     }
     $inmuebles = array();
     $pos = 0;
     $len = sizeof($result);
     $row = $result[$pos];
     while ($pos < $len) {
         $id = $row['inmueble_id'];
         $codigo = $row['codigo'];
         $activo = $row['activo'];
         $contenidos = array();
         $paginas = array();
         while ($pos < $len && $id == $row['inmueble_id']) {
             $current = $row['idioma'];
             $contenido = new Inmuebles_Contenidos();
             $contenido->found(true);
             $contenido->import(array('inmueble_contenido_id' => $row['inmueble_contenido_id'], 'inmueble_id' => $row['inmueble_id'], 'idioma' => $row['idioma'], 'nombre' => $row['nombre'], 'url' => $row['url']));
             $contenidos[$current] = $contenido;
             $paginaID = $row['inmueble_pagina_id'];
             $paginaCodigo = $row['pagina_codigo'];
             $paginaTipo = $row['pagina_tipo'];
             $paginaContenidos = array();
             while ($pos < $len && $id == $row['inmueble_id'] && $paginaID == $row['inmueble_pagina_id']) {
                 $current = $row['idioma'];
                 $paginaContenido = new Inmuebles_Paginas_Contenidos();
                 $paginaContenido->found(true);
                 $paginaContenido->import(array('inmueble_pagina_contenido_id' => $row['inmueble_pagina_contenido_id'], 'inmueble_pagina_id' => $row['inmueble_pagina_id'], 'nombre' => $row['pagina_nombre'], 'titulo' => $row['pagina_titulo'], 'url' => $row['pagina_url']));
                 $paginaContenidos[$current] = $paginaContenido;
                 $pos++;
                 $row = isset($result[$pos]) ? $result[$pos] : array();
             }
             $paginaContenido = null;
             if (isset($paginaContenidos[$idioma])) {
                 $paginaContenido = $paginaContenidos[$idioma];
             }
             $pagina = new Inmuebles_Paginas();
             $pagina->found(true);
             $pagina->import(array('inmueble_pagina_id' => $paginaID, 'codigo' => $paginaCodigo, 'tipo' => $paginaTipo, 'contenidos' => $paginaContenidos, 'contenido' => $paginaContenido));
             $paginas[] = $pagina;
         }
         $contenido = null;
         if (isset($contenidos[$idioma])) {
             $contenido = $contenidos[$idioma];
         }
         $inmueble = new Inmuebles();
         $inmueble->found(true);
         $inmueble->import(array('inmueble_id' => $id, 'codigo' => $codigo, 'activo' => $activo, 'contenidos' => $contenidos, 'contenido' => $contenido, 'paginas' => $paginas));
         $inmuebles[] = $inmueble;
     }
     return $inmuebles;
 }
示例#2
0
 public function init($inmueble, $pagina)
 {
     if (!Session::getInstance()->usuario) {
         return '/admin/ingresar';
     }
     $this->inmuebleCodigo = $inmueble;
     $this->inmueble = new Inmuebles();
     $this->inmueble->codigo = $inmueble;
     $this->inmueble->queryAll();
     if (!$this->inmueble->found()) {
         return true;
     }
     $this->paginaCodigo = $pagina;
     $this->pagina = new Inmuebles_Paginas();
     $this->pagina->inmueble_id = $this->inmueble->id;
     $this->pagina->codigo = $pagina;
     $this->pagina->queryAll();
     if (!$this->pagina->found()) {
         return true;
     }
     $this->idiomas = Translate::all();
     $inmuebleContenidos = Inmuebles_Contenidos::all(array('inmueble_id' => $this->inmueble->id));
     foreach ($inmuebleContenidos as $inmuebleContenido) {
         $this->inmuebleContenidos[$inmuebleContenido->idioma] = $inmuebleContenido;
     }
     $paginaContenidos = Inmuebles_Paginas_Contenidos::all(array('inmueble_pagina_id' => $this->pagina->id));
     foreach ($paginaContenidos as $paginaContenido) {
         $this->paginaContenidos[$paginaContenido->idioma] = $paginaContenido;
     }
     return true;
 }
示例#3
0
 public function post()
 {
     $add = new Inmuebles_Paginas();
     $add->inmueble_id = $this->inmueble->id;
     $add->codigo = strtolower(Request::getPost('codigo', ''));
     if ($add->queryAll()) {
         return ($this->unique = false) && false;
     }
     $add->tipo = Request::getPost('tipo', '');
     $add->posicion = Inmuebles_Paginas::pos($this->inmueble->id) + 1;
     $id = $add->insert();
     foreach ($this->idiomas as $idioma) {
         $addContenido = new Inmuebles_Paginas_Contenidos();
         $addContenido->inmueble_pagina_id = $id;
         $addContenido->idioma = $idioma;
         $addContenido->titulo = Request::getPost("titulo_{$idioma}", '');
         $addContenido->nombre = Request::getPost("nombre_{$idioma}", '');
         $addContenido->url = strtolower(Request::getPost("url_{$idioma}", ''));
         $addContenido->insert();
     }
     return "/admin/inmuebles/{$this->codigo}/paginas/{$add->codigo}?added=1";
 }
示例#4
0
 public function init($inmuebleURL, $paginaURL)
 {
     $idioma = Translate::locale();
     $inmuebles = Inmuebles_Contenidos::allInmueble(array('idioma' => $idioma, 'url' => $inmuebleURL), null, 1);
     if ($inmueble = array_pop($inmuebles)) {
         $paginas = Inmuebles_Paginas_Contenidos::allPagina(array('idioma' => $idioma, 'url' => $paginaURL), null, 1);
         if ($pagina = array_pop($paginas)) {
             $this->idioma = $idioma;
             $this->inmueble = $inmueble;
             $this->pagina = $pagina;
             return true;
         }
     }
     return false;
 }
示例#5
0
 public function init($url)
 {
     $idioma = Translate::locale();
     $inmuebles = Inmuebles_Contenidos::allInmueble(array('idioma' => $idioma, 'url' => $url), null, 1);
     if ($inmuebles) {
         $inmueble = array_pop($inmuebles);
         if ($inmueble->inmueble_pagina_id_inicio > 0 && !empty($inmueble->diseno)) {
             $paginas = Inmuebles_Paginas_Contenidos::allPagina(array('inmuebles_paginas_contenidos.inmueble_pagina_id' => $inmueble->inmueble_pagina_id_inicio, 'inmuebles_paginas_contenidos.idioma' => $idioma), null, 1);
             if ($paginas) {
                 $pagina = array_pop($paginas);
                 if (!empty($pagina->url)) {
                     return "/{$url}/{$pagina->url}";
                 }
             }
         }
     }
     return false;
 }
示例#6
0
 public function init($inmueble, $pagina, $title = null)
 {
     $this->inmueble = $inmueble;
     $this->pagina = $pagina;
     if (!$this->inmueble->found()) {
         return false;
     }
     if (!$this->pagina->found()) {
         return false;
     }
     if ($this->inmueble->inmueble_pagina_id_lateral > 0) {
         $this->sidebar = Inmuebles_Paginas_Contenidos::onePagina($this->inmueble->inmueble_pagina_id_lateral);
     }
     $this->paginas = Inmuebles_Paginas_Contenidos::allPagina(array('inmueble_id' => $this->inmueble->inmueble_id, 'menu' => 1, 'idioma' => Translate::locale()), array('posicion'));
     if (is_array($title)) {
         $this->title = implode(' &raquo; ', array_reverse($title));
     } elseif (is_string($title)) {
         $this->title = $title;
     }
     return true;
 }
示例#7
0
文件: Ver.php 项目: joksnet/php-old
 public function init($inmueble, $pagina)
 {
     if (!Session::getInstance()->usuario) {
         return '/admin/ingresar';
     }
     $this->inmuebleCodigo = $inmueble;
     $this->inmueble = new Inmuebles();
     $this->inmueble->codigo = $inmueble;
     $this->inmueble->queryAll();
     if (!$this->inmueble->found()) {
         return true;
     }
     $this->paginaCodigo = $pagina;
     $this->pagina = new Inmuebles_Paginas();
     $this->pagina->inmueble_id = $this->inmueble->id;
     $this->pagina->codigo = $pagina;
     $this->pagina->queryAll();
     if (!$this->pagina->found()) {
         return true;
     }
     $this->contenidos = Inmuebles_Paginas_Contenidos::allContenidos(array('inmueble_pagina_id' => $this->pagina->id));
     $this->datos = Inmuebles_Paginas_Datos::allPairs(array('inmueble_pagina_id' => $this->pagina->id));
     return true;
 }
示例#8
0
 public static function destroy($pagina)
 {
     if (!$pagina instanceof Inmuebles_Paginas) {
         $pagina = new Inmuebles_Paginas($pagina);
     }
     if (!$pagina->found()) {
         return false;
     }
     $contenidos = Inmuebles_Paginas_Contenidos::all(array('inmueble_pagina_id' => $pagina->id));
     foreach ($contenidos as $contenido) {
         Inmuebles_Paginas_Contenidos::destroy($contenido);
     }
     $datos = Inmuebles_Paginas_Datos::all(array('inmueble_pagina_id' => $pagina->id));
     foreach ($datos as $dato) {
         Inmuebles_Paginas_Datos::destroy($dato);
     }
     Db::execute("UPDATE `inmuebles_paginas`\n             SET `posicion` = `posicion` - 1\n             WHERE `posicion` > {$pagina->posicion}\n               AND `inmueble_id` = {$pagina->inmueble_id}");
     return $pagina->delete();
 }
示例#9
0
 public static function destroy($contenido)
 {
     if (!$contenido instanceof Inmuebles_Paginas_Contenidos) {
         $contenido = new Inmuebles_Paginas_Contenidos($contenido);
     }
     if (!$contenido->found()) {
         return false;
     }
     $datos = Inmuebles_Paginas_Contenidos_Datos::all(array('inmueble_pagina_contenido_id' => $contenido->id));
     foreach ($datos as $dato) {
         Inmuebles_Paginas_Contenidos_Datos::destroy($dato);
     }
     return $contenido->delete();
 }