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 '.$id.'!'); 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;$iFromArray($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;$iFromArray($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; } } ?>