/** * Método que garantiza que sólo habrá una instancia de esta clase, con los * dos métodos anteriores junto con este, se crea un "Singleton Pattern" * con lo cual emulamos lo que sería una clase estática (lo que en java * hacemos con "public static class blah {}"). * (Tomado del manual de php: * http://php.net/manual/en/language.oop5.patterns.php) */ public static function getInstance() { if (!isset(self::$instance)) { $c = __CLASS__; self::$instance = new $c; } return self::$instance; }
/** * Funci�n que crea un Album asociado a un Perfil * devuelve TRUE si el Album ha sido creado. * @param string $user * @return boolean */ public function crearAlbum($user){ $A=AlbumMapper::getInstance(); $ok=0; // Si la persona ya tiene un Album con el nombre dado, concatenarle "(1)" while(($ok=($A::existeAlbumPerfil(this.nombre,$user))) && $ok!=-1){ $this->nombre= $this->nombre."(1)"; } if ($ok==-1) RETURN FALSE; // Guardar el Album en la base de datos $this->id= $A::saveAlbumPerfil($this->nombre,$this->lugar,$user); if($this->id==-1) RETURN FALSE; RETURN TRUE; }
/** * Devuelve un arreglo asociativo con el id y el nombre de cada album * dado el ente propietario de los albumes y su ID. * Devuelve NULL si existio algun error. * @param string $clave * @return array() $idsNombres */ public static function getListaAlbums($tipo_ente,$clave){ $A=AlbumMapper::getInstance(); $idsNombres=NULL; // Obtener la lista de id's de los albumes cuyo dueno es $tipo_ente if($listaIds= $A->getIdsAlbum($tipo_ente,$clave)){ $idsNombres=array(); for($i=0; $i<count($listaIds);$i++){ $id= $listaIds[$i]; $idsNombres[$id]= $A->getNombreAlbum($id); if(!($idsNombres[$id])) RETURN NULL; } } RETURN $idsNombres; }