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

368 lines
10 KiB
PHP
Raw Permalink Blame History

<?php
/**
* Klasa do obs<62>ugi prostych artykulow
*
*/
class SimpleArticle_MfArticleDAL 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);
SimpleArticle_MfArticleDescriptionDAL::DeleteByParentId($obj->GetId());
return self::DefaultDelete($dalData);
}
/**
*
* @param $id
*/
public static function GetById($id, $lang = 'pl') {
$dalData = self::GetDalDataObj();
$dalData->setCondition(array('mf_article.'.self::GetObjClassTablePK()=>$id, 'lang' => $lang));
$dalData->setJoin(array('SimpleArticle_MfArticleDescription' => ' LEFT JOIN mf_article_description ON mf_article.id_mf_article=mf_article_description.id_mf_article'));
$dalData->setLimit(1);
$result = self::GetResult($dalData);
if ((count($result) > 0) && (is_object($result[0]))) {
return $result[0];
} else {
//throw new Exception('Brak rekordu w tablicy '.self::GetObjClassTable().' o id <b>'.$id.'</b>!');
return self::GetEmptyObj();
}
}
public static function GetResult($dalData, $showSql = null) {
return self::DefaultGetResult($dalData, $showSql);
}
public static function GetEmptyObj() {
//Utils::ArrayDisplay('tu jestem ');
$obj = new SimpleArticle_MfArticle(-1);
$obj->SetArticleDescriptionObj(SimpleArticle_MfArticleDescriptionDAL::GetEmptyObj());
return $obj;
}
public static function GetArrayObjAll() {
}
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(`mf_article`.`id_mf_article`) as count";
} else {
$select =" " . SQL::ToSelect(self::GetOptClass(),$queryFields) . " ";
}
$sql = " SELECT $select FROM " . self::GetObjClassTable() . ", mf_article_description WHERE 1=1 AND mf_article.id_mf_article=mf_article_description.id_mf_article ";
$q = new QueryCache($queryCacheName,$sql);
}
foreach ($data as $key => $value) {
if($key == "id") {
$key = 'id_mf_article';
}
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();
//Utils::ArrayDisplay($sql);
$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 GetList($data = array(), $limit = 20, $sortBy = 'id_mf_article') {
$dalData = self::GetDalDataObj();
$dalData->setJoin(array('SimpleArticle_MfArticleDescription' => ' LEFT JOIN mf_article_description ON mf_article.id_mf_article=mf_article_description.id_mf_article ', 'Structure' => ' LEFT JOIN mf_structure ON mf_article.id_structure=mf_structure.id_mf_structure '));
$dalData->setCondition($data);
$dalData->setLimit($limit);
$dalData->setSortBy($sortBy);
$result = self::GetResult($dalData);
return $result;
}
public static function GetArrayIds($data = array(), $sortBy = 'id_mf_article') {
$dalData = self::GetDalDataObj();
$dalData->setJoin(array('SimpleArticle_MfArticleDescription' => ' LEFT JOIN mf_article_description ON mf_article.id_mf_article=mf_article_description.id_mf_article '));
$dalData->setCondition($data);
$dalData->setQueryFields(array('id_mf_article'));
$dalData->setSortBy($sortBy);
$result = self::GetResult($dalData);
$array = array();
foreach ($result as $obj) {
$array[] = $obj->GetId();
}
return $array;
}
public static function GetByLink($sourceType, $sourceId, $lang) {
$data = array('mf_link.source_type'=>'"'.$sourceType.'"', 'mf_link.id_source'=>$sourceId, 'mf_link.destination_type'=>'"'.self::GetObjClassTable().'"', 'mf_link.id_destination'=>self::GetObjClassTable().".".self::GetObjClassTablePK(), 'mf_link.id_mf_link'=>'mf_link_description.id_mf_link', 'mf_link_description.lang'=>'"'.$lang.'"');
$sortBy = 'mf_link.link_type, mf_link.link_type';
$queryFields = array();
$limit = null;
$count = null;
$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, mf_link_description.description as mf_link_description, mf_link.weight as mf_link_weight, mf_link.link_type as mf_link_type FROM " . self::GetObjClassTable() . ", mf_link, mf_link_description 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);
$obj->SetMfLinkDescription($array[$i]['mf_link_description']);
$obj->SetMfLinkWeight($array[$i]['mf_link_weight']);
$obj->SetMfLinkType($array[$i]['mf_link_type']);
$obj->SetLang($lang);
$done[] = $obj;
}
return $done;
}
// public function SaveFromPost($_POST, $className) {
// //Utils::ArrayDisplay($_POST);
// if (isset($_POST['Article']['idArticle']) && $_POST['Article']['idArticle'] > 0) {
//
// $objArticle = SimpleArticle_MfArticleDAL::GetById($_POST['Article']['idArticle']);
// $objArticleDescription = SimpleArticle_MfArticleDescriptionDAL::GetResult(array('publication' => 1, 'lang' => $objArticle->GetLang(), 'id_mf_article' => $objArticle->GetId()), array('id_mf_article_description', 'title', 'description', 'shortnote'));
// $objArticleDescription = $objArticleDescription[0];
// } else {
// $objArticle = new SimpleArticle_MfArticle();
// $objArticleDescription = new SimpleArticle_MfArticleDescription();
//
//
// }
//
// // var_dump($objArticleDescription->GetId());
//
// $objArticle->SetDate(date('Y-d-m'));
// $objArticle->SetWeight(10);
// //$objArticle->SetPublication(1);
// //Utils::ArrayDisplay($objArticle);
// $iid = SimpleArticle_MfArticleDAL::Save($objArticle);
//
// $objArticleDescription->SetLang('pl');
// $objArticleDescription->SetDescription($_POST['Article']['tresc']);
// $objArticleDescription->SetShortnote($_POST['Article']['zajawka']);
// $objArticleDescription->SetTitle($_POST['tytul']);
// $objArticleDescription->SetBrowserTitle($_POST['Article']['tytulWPrzegladarce']);
// $objArticleDescription->SetPublication($_POST['publication']);
// $objArticleDescription->SetIdMfArticle($iid);
//
// SimpleArticle_MfArticleDescriptionDAL::Save($objArticleDescription);
//
// return $iid;
// }
public function Special($id, $specjal) {
$db = Registry::Get('db');
$sql = "UPDATE mf_article SET special = $specjal
WHERE id_mf_article = $id ";
//Utils::ArrayDisplay($sql);
$stmt = $db->prepare($sql)
->execute();
}
/**
* Pusty konstruktor
*
*/
public function __construct() {
}
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());
return $dalData;
}
}
?>