Files
zurawik.pl/core/model/MfRouterDAL.class.php
2026-05-15 18:33:51 +02:00

262 lines
6.2 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Klasa obsĹugi tablicy organizacji/stowarzyszen
*
*/
class MfRouterDAL extends DefaultDAL {
protected static $objClassName;
protected static $objClassTable;
protected static $objClassTablePK;
private static $optClass;
public static function Save( $obj) {
$id = null;
if($obj->GetId()==-1) {
$id = self::Insert($obj);
} else {
self::Update($obj);
$id = $obj->GetId();
}
return $id;
}
/**
* @param Feed $obj
*
*/
public static function Insert($obj) {
$dalData = new DalData();
$dalData->setObjClassTable(self::GetObjClassTable());
$dalData->setObj($obj);
$id = self::DefaultInsert($dalData);
return $id;
}
/**
* @param Text $obj
*
*/
public static function Update($obj) {
//Utils::ArrayDisplay($obj);
$dalData = new DalData();
$dalData->setObjClassTable(self::GetObjClassTable());
$dalData->setObjClassTablePK(self::GetObjClassTablePK());
$dalData->setObj($obj);
return self::DefaultUpdate($dalData);
}
/**
*
* @param integer $id
*
*/
public static function Delete($obj) {
$dalData = new DalData();
$dalData->setObjClassTable(self::GetObjClassTable());
$dalData->setObjClassTablePK(self::GetObjClassTablePK());
$dalData->setObj($obj);
return self::DefaultDelete($dalData);
}
/**
*
* @param $id
* @return obj MfRouter
*/
public static function GetById($id) {
$dalData = self::GetDalDataObj();
$dalData->setCondition(array(self::GetObjClassTablePK()=>$id));
$dalData->setLimit(1);
$result = self::GetResult($dalData);
if ((count($result) > 0) && (is_object($result[0]))) {
return $result[0];
} else {
return false;
//throw new Exception('Brak rekordu w tablicy '.self::GetObjClassTable().' o id <b>'.$id.'</b>!');
}
}
public static function GetResult($dalData) {
return self::DefaultGetResult($dalData);
}
public static function GetArrayObjAll() {
$dalData = self::GetDalDataObj();
$result = self::GetResult($dalData);
return $result;
}
public static function GetResultOld($data,$queryFields = array(),$limit = 0, $sortBy = null,$count = null) {
if(!is_array($data)){
$data = array();
}
$db = Registry::Get('db');
$queryCacheName = __CLASS__. "_" .__FUNCTION__. "_" .md5(implode($queryFields));
if(isset(QueryCacheTemp::$cacheQuery[$queryCacheName]))
{
$sql = QueryCacheTemp::$cacheQuery[$queryCacheName];
}
else
{
if($count == true)
$select = "count(*) as count";
else
$select =" " . SQL::ToSelect(self::GetOptClass(),$queryFields) . " ";
$sql = " SELECT $select FROM " . self::GetObjClassTable() . " WHERE 1=1 ";
$q = new QueryCache($queryCacheName,$sql);
}
foreach ($data as $key => $value)
{
if($key == "id")
$key = $objId ;
if(is_array($value))
$sql .= ( is_numeric($value['value']) || $value ? " AND ".$key." ".$value['condition']." ". $value['value'] : "");
else
$sql .= ( is_numeric($value) || $value ? " AND ".$key." = ". $value : "");
}
$sql .= ( $sortBy ? " ORDER BY $sortBy " : "").
( $limit ? " LIMIT " . $limit : "").
" ";
$stmt = $db->prepare($sql)
->execute();
$array = $stmt->fetchAllAssoc();
if($count == true)
return $array[0]['count'];
$done = array();
for($i=0;$i<count($array);$i++)
{
$className=self::GetObjClassName();
$obj = new $className();
$obj->FromArray($array[$i],1);
$done[] = $obj;
}
return $done;
}
public static function UpdateParamPush($idRouter, $arrayParam = array()) {
$db = Registry::Get('db');
$sql = "SELECT param FROM mf_router WHERE id_mf_router = $idRouter";
$stmt = $db->execute($sql);
$array = array();
if ($row = $stmt->FetchArray()) {
//$param = $row['param'];
$array = unserialize($row['param']);
}
$arrayParam = array_merge($array, $arrayParam);
$serializeParam = serialize($arrayParam);
$sql = "UPDATE mf_router SET param = '$serializeParam' WHERE id_mf_router = $idRouter";
//Utils::ArrayDisplay($sql);
$stmt = $db->execute($sql);
}
public static function AddRouterByStructure($routerOld, $objStructure, $lang) {
$dalData = new DalData();
$dalData->setObjClassTable(self::GetObjClassTable());
$router = new MfRouter();
$router->SetController($routerOld->GetController());
$router->SetMethod($routerOld->GetMethod());
$router->SetUrl($routerOld->GetUrl());
$router->SetLabelUrl($routerOld->GetLabelUrl());
$router->SetParam($routerOld->GetParam());
$router->SetConfig($routerOld->GetConfig());
$router->SetIdMfModule($routerOld->GetIdMfModule());
$router->SetLang($lang);
$dalData->setObj($router);
$id = self::DefaultInsert($dalData);
$objStructure->SetIdRouter($id);
StructureDAL::Update($objStructure);
return $id;
}
public static function GetObjClassName() {
if(self::$objClassName != '') {
$class = self::$objClassName;
} else {
$class = str_replace('DAL', '', __CLASS__);
}
return $class;
}
public static function GetOptClass() {
if(self::$optClass!=null) {
return self::$optClass;
} else {
return self::GetObjClassName();
}
}
public static function GetObjClassTablePK() {
if(self::$objClassTablePK != '') {
$return = self::$objClassTablePK;
} else {
$class = self::GetObjClassName();
$classObj = new $class();
$return = $classObj->GetClassTablePK();
}
return $return;
}
public static function GetObjClassTable() {
if(self::$objClassTable!='') {
$return = self::$objClassTable;
} else {
$class = self::GetObjClassName();
$classObj = new $class();
$return = $classObj->GetTableName();
}
return $return;
}
public static function GetDalDataObj() {
$dalData = new DalData();
$dalData->setObjClassName(self::GetObjClassName());
$dalData->setObjClassTable(self::GetObjClassTable());
$dalData->setObjClassTablePK(self::GetObjClassTablePK());
$dalData->setOptClass(self::GetOptClass());
//$dalData->setDatabaseType('dbTemp');
return $dalData;
}
}
?>