public function __construct(DatabaseServer $server)
 {
     $this->_configuration['tileWidth'] = $server->tileWidth;
     $this->_configuration['tileHeight'] = $server->tileHeight;
     $this->_configuration['minZoom'] = $server->minZoom;
     $this->_configuration['maxZoom'] = $server->maxZoom;
     $this->_configuration['cacheLimit'] = $server->cacheSize;
     $this->_configuration['name'] = $server->name;
     $this->_serverUrl = $server->getServerUrl();
     $this->_imageHandler = new ImageHandlerPNG();
     $this->_tileCache = new TileCache('./dynamic/' . $this->_configuration['name'], $this->_configuration['cacheLimit'] * 1048576, $this->_imageHandler);
 }
 /**
  * it loads data about all servers, and return array of them
  *
  * @return array array of DatabaseServers
  */
 public static function getServers()
 {
     self::setUpConnection();
     $select = self::$db->select();
     $databaseServer = new DatabaseServer();
     $data = $select->From($databaseServer->getTableName())->query()->fetchAll();
     $servers = array();
     foreach ($data as $row) {
         $server = new DatabaseServer();
         $server->setData($row);
         $servers[] = $server;
     }
     return $servers;
 }
 public function execute()
 {
     if (!is_null($this->_post->send)) {
         $server = new DatabaseServer();
         $server->loadDataFromPost($this->_post);
         $server->url = $this->_post->getRawData('url');
         try {
             $server->save();
             $this->_view->addInfo('Server has been added');
             $this->_redirect->toModuleAction('AdminModule', 'ModuleActionServers');
             die;
         } catch (ValidatorException $e) {
             $this->_view->assign('errors', $server->getErrors());
             $this->_view->assign('server', $server);
         }
     }
     $this->_view->assign('formHeader', 'Add new server');
     $this->_view->assign('content_file', 'serverForm.tpl');
 }
 /**
  * method bases on url server name and creates appropriate server object
  *
  * @param string $urlName
  * @return DatabaseServer
  */
 public static function getServer($urlName)
 {
     self::setUpConnection();
     $sampleServer = new DatabaseServer();
     if (!is_null($urlName)) {
         $select = self::$db->select();
         $data = $select->From($sampleServer->getTableName())->Where('urlName = ?', $urlName)->query()->fetch();
         if ($data) {
             $server = new DatabaseServer();
             $server->setData($data);
             return $server;
         }
     }
     //return default server
     $select = self::$db->select();
     $data = $select->From($sampleServer->getTableName())->query()->fetch();
     $server = new DatabaseServer();
     $server->setData($data);
     return $server;
 }
 /**
  * create appropriate MapProcessor
  *
  * @param MapRequest $mapData
  * @return MapProcessor
  */
 public static function factory(MapRequest $mapData)
 {
     $tileSource = new TileSource(DatabaseServer::getServer($mapData->getType()));
     $tileSource->useCache(!$mapData->issetReloadParam());
     if (!is_null($mapData->getCenterPoint()) && !is_null($mapData->getWidth()) && !is_null($mapData->getHeight())) {
         return new MapProcessorFromCenterPoint($mapData, $tileSource);
     } else {
         if (!is_null($mapData->getLeftUpCornerPoint()) && !is_null($mapData->getRightDownCornerPoint()) && !is_null($mapData->getZoom())) {
             return new MapProcessorFromBoundaryBoxZoom($mapData, $tileSource);
         } else {
             if (!is_null($mapData->getLeftUpCornerPoint()) && !is_null($mapData->getRightDownCornerPoint())) {
                 return new MapProcessorFromBoundaryBoxWidthHeight($mapData, $tileSource);
             }
         }
     }
     throw new NoMapProcessorException("No map processor has been choosen");
 }