96 lines
2.8 KiB
PHP
96 lines
2.8 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Class App_Model_Resource_Abstract
|
|
*/
|
|
class App_Model_Resource_Abstract extends Zend_Db_Table_Abstract
|
|
{
|
|
|
|
protected $_defaultOrder; // [obbligatorio]
|
|
protected $_defaultTipoOrder; // [obbligatorio]
|
|
protected $_defaultSelectColumns; // [opzionale]
|
|
protected $_defaultJoinData; // [opzionale] può essere un array singolo o multiplo per applicare più join insieme
|
|
|
|
public function __construct()
|
|
{
|
|
if(!$this->_defaultOrder){
|
|
throw new App_Controller_Errors_WebServiceError("'_defaultOrder' non definito per la risorsa ". get_class($this));
|
|
}
|
|
|
|
if(!$this->_defaultTipoOrder){
|
|
throw new App_Controller_Errors_WebServiceError("'_defaultTipoOrder' non definito per la risorsa " . get_class($this));
|
|
}
|
|
|
|
parent::__construct();
|
|
}
|
|
|
|
//Funzione che restituisce il nome della tabella
|
|
public function getTableName()
|
|
{
|
|
return $this->_name;
|
|
}
|
|
|
|
//Funzione che restituisce la chiave primaria sicura
|
|
public function getPrimaryKey()
|
|
{
|
|
if (is_array($this->_primary)) return $this->_primary[1];
|
|
return $this->_primary;
|
|
}
|
|
|
|
//Funzione che restituisce il campo ordinamento di default
|
|
public function getDefaultOrder()
|
|
{
|
|
if (isset($this->_defaultOrder) && $this->_defaultOrder) return $this->_defaultOrder;
|
|
return $this->getPrimaryKey();
|
|
}
|
|
|
|
//Funzione che restituisce il tipo di ordinamento di default
|
|
public function getDefaultTipoOrder()
|
|
{
|
|
if (isset($this->_defaultTipoOrder) && $this->_defaultTipoOrder) return $this->_defaultTipoOrder;
|
|
return "ASC";
|
|
}
|
|
|
|
//Funzione che restituisce il tipo di select default
|
|
public function getDefaultSelectColumns()
|
|
{
|
|
if (isset($this->_defaultSelectColumns) && $this->_defaultSelectColumns) return $this->_defaultSelectColumns;
|
|
return "*";
|
|
}
|
|
|
|
//Funzione che restituisce il campo joinData di default
|
|
public function getDefaultJoinData()
|
|
{
|
|
if (isset($this->_defaultJoinData) && $this->_defaultJoinData) return $this->_defaultJoinData;
|
|
return null;
|
|
}
|
|
|
|
public function getDefaultOrderString()
|
|
{
|
|
return $this->getDefaultOrder() . ' ' . $this->getDefaultTipoOrder();
|
|
}
|
|
|
|
//--------------- FUNZIONI PER LA GESTIONE DI DATABASE MULTIPLI ------------------------------------------
|
|
|
|
public function _setDbName($nomedb)
|
|
{
|
|
$dbparam = $this->_db->getConfig();
|
|
$dbparam['dbname'] = $nomedb;
|
|
$this->_db = Zend_Db::factory('Pdo_Mysql', $dbparam);
|
|
}
|
|
|
|
/**
|
|
* @return Zend_Db_Adapter_Abstract
|
|
*/
|
|
public function getDbAdapter()
|
|
{
|
|
return $this->_db;
|
|
}
|
|
|
|
public function setDBConnection($nomeDB)
|
|
{
|
|
$this->_db->query('USE ' . $nomeDB);
|
|
}
|
|
|
|
}
|