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); //MfFileDescriptionDAL::DeleteByParentId($obj->GetId()); return self::DefaultDelete($dalData); } /** * * */ public static function DeleteByKey($keyword) { $db = Registry::Get('db'); $sql = "DELETE FROM mf_dictionary WHERE mf_dictionary.keyword = :01 "; $stmt = $db->prepare($sql) ->bindParam("01", $keyword) ->execute(); } /** * * @param $id */ 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 { throw new Exception('Brak rekordu w tablicy '.self::GetObjClassTable().' o id '.$id.'!'); } } public static function GetArrayObjAll($data, $queryFields = array(), $limit = 0, $sortBy = null,$count = null) { $dalData = self::GetDalDataObj(); $dalData->setCondition($data); $dalData->setLimit($limit); $dalData->setSortBy($sortBy); $dalData->setCount($count); $result = self::DefaultGetResult($dalData); return $result; } public static function GetResult($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); $select .= ", en.replacement as MfDictionary_replacementEn, de.replacement as MfDictionary_replacementDe, ru.replacement as MfDictionary_replacementRu " ; // $select .= ", (SELECT ru.replacement FROM mf_dictionary ru WHERE 1=1 AND MfDictionary_keyword = ru.keyword AND lang = 'ru' GROUP BY replacement) as MfDictionary_replacementRu" ; // $select .= ", (SELECT de.replacement FROM mf_dictionary de WHERE 1=1 AND MfDictionary_keyword = de.keyword AND lang = 'de' GROUP BY replacement) as MfDictionary_replacementDe" ; //", (SELECT fr.replacement FROM mf_dictionary fr WHERE 1=1 AND MfDictionary_keyword = fr.keyword AND lang = 'fr') as MfDictionary_replacementFr" . //", (SELECT ua.replacement FROM mf_dictionary ua WHERE 1=1 AND MfDictionary_keyword = ua.keyword AND lang = 'ua') as MfDictionary_replacementUa " ; //", (SELECT no.replacement FROM mf_dictionary no WHERE 1=1 AND MfDictionary_keyword = no.keyword AND lang = 'no') as MfDictionary_replacementNo " ; } $sql = " SELECT $select FROM " . self::GetObjClassTable() . " JOIN mf_dictionary en ON mf_dictionary.keyword = en.keyword AND en.lang = 'en' JOIN mf_dictionary de ON mf_dictionary.keyword = de.keyword AND de.lang = 'de' JOIN mf_dictionary ru ON mf_dictionary.keyword = ru.keyword AND ru.lang = 'ru' ". " WHERE 1=1 "; $q = new QueryCache($queryCacheName,$sql); } foreach ($data as $key => $value) { // Utils::ArrayDisplay($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 mf_dictionary.".$key." = ". $value : ""); } $sql .= ( $sortBy ? " ORDER BY $sortBy " : ""). ( $limit ? " LIMIT " . $limit : ""). " "; //Utils::ArrayDisplay($sql); $stmt = $db->prepare($sql) ->execute(); $array = $stmt->fetchAllAssoc(); if($count == true) return $array[0]['count']; $done = array(); //Utils::ArrayDisplay($array); for($i=0;$iFromArray($array[$i],1); $obj->SetReplacementEn($array[$i]['MfDictionary_replacementEn']); $obj->SetReplacementDe($array[$i]['MfDictionary_replacementDe']); $obj->SetReplacementRu($array[$i]['MfDictionary_replacementRu']); // $obj->SetReplacementFr($array[$i]['MfDictionary_replacementFr']); // $obj->SetReplacementUa($array[$i]['MfDictionary_replacementUa']); $done[] = $obj; } return $done; } /** * Pobiera z tabeli liste slowek i cacheuje * * @param integer $cacheTime * @return Array */ public static function GetAllVariables($lang, $cacheTime, $location = 0) { $db = Registry::Get('db'); $sql = "SELECT keyword, replacement FROM ".self::GetObjClassTable()." WHERE lang='".$lang."' AND location='".$location."'"; //Utils::ArrayDisplay($sql); $stmt=$db->execute($sql); $stmt->CacheStart($cacheTime); $array = $stmt->FetchAllAssoc(); $returnArray = array(); foreach ($array as $keyword => $value) { $returnArray[$value['keyword']] = $value['replacement']; } //Utils::ArrayDisplay($returnArray); return $returnArray; } /** * Pobiera z tabeli liste slowek i cacheuje * * @param integer $cacheTime * @return Array */ public static function IsVariables($keyword, $lang, $location = 0) { $db = Registry::Get('db'); $sql = "SELECT keyword, replacement FROM ".self::GetObjClassTable()." WHERE lang='".$lang."' AND keyword='".$keyword."' AND location='".$location."'"; //Utils::ArrayDisplay($sql); $stmt=$db->execute($sql); $array = $stmt->FetchAllAssoc(); if (count($array) > 0) { return true; } else { return false; } } 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; } } ?>