first commit

This commit is contained in:
2026-04-24 15:32:21 +02:00
commit 20d40fead4
5046 changed files with 641038 additions and 0 deletions

View File

@@ -0,0 +1,202 @@
<?php
/**
* Description of DataObject
*
* @author mabi
*/
abstract class DataObject {
static $tableName;
static $className = __CLASS__;
static $fields = array();
static $classTablePK;
protected $label;
public function GetLabel() {
if (!$this->label) {
throw new UserException("Object hasn't label.");
}
return $this->label;
}
/**
* pola wystepujace tylko w obiekatch (nie sa zapisywane do BD)
*
* @var array
*/
static $classFields = array();
protected $id;
/** zdjecia **/
/**
* Export danych do tablicy asocjacyjnej z pol klasy.
*
* @return array()
*/
public function ToArrayAssoc() {
$fields = $this->GetFields();
$done = array();
foreach($fields as $index => $value) {
$temp = 'Get'.$fields[$index];
$done[$index] = $this->$temp();
}
return $done;
}
/**
* Import danych z tablicy asocjacyjnej do p�l klasy.
*
* @param string $array tablica asocjacyjna zawieraj�ca rekordy pobrane z bazy
* @param int $cut 1 - klucze musz� mie� posta� <KLASA>_<POLE>, 0 - <POLE>
*/
public function FromArray($array, $cut = false, $alias = null) {
$fields = $this->GetFields();
// sprawdzenie czy istnieje metoda dla pol niebedacych w BD
if(method_exists($this, 'GetClassFields')) {
$fields = array_merge($fields, $this -> GetClassFields());
}
$prfx = ((!empty($alias) && is_string($alias)) ? $alias .'_' : '' );
if (is_array($array))
foreach ($array as $index => $var) {
if($cut == true)
$index = str_replace($prfx . $this->GetClassName() . "_", "", $index);
if (array_key_exists($index, $fields)) {
$temp = 'Set'.$fields[$index];
$this->$temp($var);
}
}
}
/**
* Import danych z tablicy asocjacyjnej do p�l klasy.
* Jedyn� r�nic� w por�wnaniu do @see FromArray jest zmiana postaci
* klucza, kt�re teraz maja posta�: $prefix_<KLASA>_<POLE>
*
* @param string $array tablica asocjacyjna zawieraj�ca rekordy pobrane z bazy
*/
public function FromArrayPrefix($array, $prefix) {
$fields = $this->GetFields();
if (is_array($array)) {
foreach ($array as $index => $var) {
$index = str_replace($prefix . "_" . $this->GetClassName() . "_", "", $index);
if (array_key_exists($index, $fields)) {
$temp = 'Set'.$fields[$index];
$this->$temp($var);
}
}
}
}
// public function GetType() {
// //MAKL:!!
// return array_search($this->GetClassName(),'Stars');
// }
public abstract function GetId();
public abstract function GetTableName();
public abstract function GetFields();
public abstract function GetClassName();
public abstract function GetClassTablePK();
public static function GetStaticVariable($variableName) {
if(isset(self::$$variableName)) {
return self::$$variableName;
} else {
throw new Exception('Klasa '.__CLASS__.' nie posiada staÅej: '.$variableName.' !');
}
}
/**
* Metoda zwraca tablice id'k�w tablicy obiekt�w.
* Wykorzystywana na potrzeby DefaultDAL::ToJavaScriptArray($array, $jsName)
*
* @param array $objArray
*/
public static function GetObjIDs($objArray) {
$array = array();
if(is_array($objArray)) {
foreach($objArray as $obj) {
$array[] = $obj->GetId();
}
} else {
return $array;
}
return $array;
}
/**
* Metoda zwraca tablice nazw
* Wykorzystywana tylko w slownikach!
*
* @param unknown_type $objArray
*/
public static function ToArray($objArray) {
$done = array();
foreach($objArray as $value) {
$done[$value->GetId()] = $value->GetName();
}
return $done;
}
public static function ToArrayUrl($objArray) {
$done = array();
foreach($objArray as $value) {
$done[$value->GetName()] = $value->GetUrlName();
}
return $done;
}
public function GetTitleAlt() {
return strip_tags(Utils::cleanUrlSpaces($this->GetTitle()));
}
public function GetTitleUrl() {
return Utils::TextToUrl(strip_tags(Utils::cleanUrl($this->GetTitle())));
}
/**
* Funkcja generuje url
*
* TODO: Dopisaæ dzia³anie matrixa.
*
* @param String $label Opcjonalnie, niestandardowy label
*/
public function GenerateUrl($label = null, $matrix = array()) {
if (!$label) {
$label = $this->GetLabel();
}
$route = Router::$route[$label];
$dataArray = array();
foreach ($route['variables'] as $v) {
$fun = 'Get' . ucfirst($v);
$dataArray[$v] = Utils::TextToUrl($this->$fun());
}
return Router::GenerateUrl($label, $dataArray);
}
// abstract public function GetUrl();
}
?>