function actualizarSEO($id = 0) { try { if ($id) { $hotel = DAOFactory::getHotelDAO()->load($id); $hotel->descripciones = json_decode($hotel->descripcionLarga); $tituloSeo = $hotel->nombre; if ($hotel->destinoId) { $destino = DAOFactory::getDestinoTuristicoDAO()->load($hotel->destinoId); $tituloSeo .= ' | ' . $destino->nombre; } $descripcionesSeo = array(); $keywordsSeo = array(); foreach (get_object_vars($hotel->descripciones) as $k => $value) { $endD = strlen($value) > 150 ? '...' : ''; $descripcionesSeo[$k] = strip_tags(substr($value, 0, 150)) . $endD; $keywordsSeo[$k] = $tituloSeo . ' ' . str_replace('...', '', $descripcionesSeo[$k]); } $hotel->tituloSeo = json_encode(array('es' => $tituloSeo)); $hotel->descripcionCorta = json_encode($descripcionesSeo); $hotel->keywordsSeo = json_encode($keywordsSeo); DAOFactory::getHotelDAO()->update($hotel); } else { $transaction = new Transaction(); $hoteles = DAOFactory::getHotelDAO()->queryAll(); foreach ($hoteles as $hotel) { actualizarSeo($hotel->id); } $transaction->commit(); } return true; } catch (Exception $e) { var_dump($e); if ($transaction) { $transaction->rollback(); } return false; } }
function updateHotel($idHotel, $data = array(), $data_direccion = array(), $idiomas = array(), $monedas = array(), $fechas = array(), $condiciones = array(), $dominios = array(), $promociones = array(), $data_blacklist = array(), $precios = array()) { try { $transaction = new Transaction(); if ($data['campaniaId']) { $campania = DAOFactory::getCampaniaDAO()->load($data['campaniaId']); $data['dominioCampania'] = $campania->subdominio; } $hotel = DAOFactory::getHotelDAO()->prepare($data, $idHotel); if ($data['logoId'] == NULL) { $hotel->logoId = NULL; } DAOFactory::getHotelDAO()->update($hotel); $d = false; foreach ($data_direccion as $dir) { if (!is_null($dir) && strlen(trim($dir)) > 0) { $d = true; break; } } $old_direccion = getDireccionByHotel($idHotel); if ($d && !$old_direccion) { $direccion = DAOFactory::getDireccionDAO()->prepare($data_direccion); $id_direccion = DAOFactory::getDireccionDAO()->insert($direccion); $hotel_direccion = DAOFactory::getHotelDireccionDAO()->prepare(array('hotelId' => $idHotel, 'direccionId' => $id_direccion)); DAOFactory::getHotelDireccionDAO()->insert($hotel_direccion); } else { if ($d && $old_direccion) { $direccion = DAOFactory::getDireccionDAO()->prepare($data_direccion, $old_direccion->id); DAOFactory::getDireccionDAO()->update($direccion); } } DAOFactory::getHotelIdiomaDAO()->deleteByHotelId($idHotel); if (count($idiomas)) { foreach ($idiomas as $idioma) { $id = DAOFactory::getHotelIdiomaDAO()->prepare(array('hotelId' => $idHotel, 'idiomaId' => $idioma)); DAOFactory::getHotelIdiomaDAO()->insert($id); } } DAOFactory::getHotelMonedaDAO()->deleteByHotelId($idHotel); if (count($monedas)) { foreach ($monedas as $moneda) { $mon = DAOFactory::getHotelMonedaDAO()->prepare(array('hotelId' => $idHotel, 'monedaId' => $moneda)); DAOFactory::getHotelMonedaDAO()->insert($mon); } } DAOFactory::getHotelFechasDAO()->deleteByHotelId($idHotel); foreach ($fechas as $fecha) { $fechaHotel = DAOFactory::getHotelFechasDAO()->prepare(array('hotelId' => $idHotel, 'fecha' => $fecha)); $fecha_id = DAOFactory::getHotelFechasDAO()->insert($fechaHotel); } DAOFactory::getHotelCondicionDAO()->deleteByHotelId($idHotel); foreach ($condiciones as $cond) { $condicion = DAOFactory::getHotelCondicionDAO()->prepare(array('hotelId' => $idHotel, 'condicionId' => $cond)); DAOFactory::getHotelCondicionDAO()->insert($condicion); } $condiciones_obligatorias = DAOFactory::getCondicionDAO()->queryByCondicionCategoriaId(1); foreach ($condiciones_obligatorias as $cond) { $condicion = DAOFactory::getHotelCondicionDAO()->prepare(array('hotelId' => $idHotel, 'condicionId' => $cond->id)); DAOFactory::getHotelCondicionDAO()->insert($condicion); } DAOFactory::getHotelDominiosDAO()->deleteByHotelId($idHotel); foreach ($dominios as $dom) { $dominio = DAOFactory::getHotelDominiosDAO()->prepare(array('hotelId' => $idHotel, 'dominio' => $dom)); DAOFactory::getHotelDominiosDAO()->insert($dominio); } DAOFactory::getPromocionDAO()->deleteByHotelId($idHotel); foreach ($promociones as $data_promocion) { $data_promocion['hotelId'] = $idHotel; $promocion = DAOFactory::getPromocionDAO()->prepare($data_promocion); DAOFactory::getPromocionDAO()->insert($promocion); } DAOFactory::getHotelPrecioDAO()->deleteByHotelId($idHotel); foreach ($precios as $data_precio) { $data_precio['hotelId'] = $idHotel; $precio = DAOFactory::getHotelPrecioDAO()->prepare($data_precio); DAOFactory::getHotelPrecioDAO()->insert($precio); } getClaveByHotel($idHotel); DAOFactory::getBlacklistDAO()->deleteByHotelId($idHotel); if ($data_blacklist) { foreach ($data_blacklist as $dbl) { $dbl['hotelId'] = $idHotel; $blacklist = DAOFactory::getBlacklistDAO()->prepare($dbl); DAOFactory::getBlacklistDAO()->insert($blacklist); } } actualizarSeo($idHotel); $transaction->commit(); return $idHotel; } catch (Exception $e) { print_r($e); if ($transaction) { $transaction->rollback(); } return false; } }
<?php $logged = $usuario_core->validateUser(); if ($logged) { $usuario_core->hasAdminAccess('hotel'); $usuario = $usuario_core->getUsuario(); actualizarSeo(); /* $hoteles = getHotelesByUsuario($usuario->id); $hs = array(); foreach ($hoteles as $hotel) { if($hotel->campania->estado == 'Aprobada') $hs[] = $hotel; } $destinos = getAllDestinos(); $smarty->assign('destinos', $destinos); $smarty->assign('hoteles',$hs); */ $smarty->display('admin/hotel/lista.tpl'); }