1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-01 14:05:07 +03:00

ModuleORM::GetCountItemsByArray() added

This commit is contained in:
Alexander Zinchuk 2010-11-09 02:10:57 +00:00
parent d21dacda65
commit 4047d7233d
2 changed files with 31 additions and 0 deletions

View file

@ -196,6 +196,26 @@ class MapperORM extends Mapper {
return $aItems;
}
public function GetCountItemsByArray($aFilter,$sEntityFull) {
$sTableName = self::GetTableName($sEntityFull);
$aFilterFields=$aFilter;
$sFilterFields='';
if (count($aFilterFields)) {
$sFilterFields=' and '.implode(' IN ( ?a ) and ',array_keys($aFilterFields)).' IN ( ?a ) ';
}
$sql = "SELECT count(*) as c FROM ".$sTableName." WHERE 1=1 {$sFilterFields} ";
$aQueryParams=array_merge(array($sql),array_values($aFilterFields));
$aItems=array();
if($aRow=call_user_func_array(array($this->oDb,'selectRow'),$aQueryParams)) {
return $aRow['c'];
}
return 0;
}
public function GetItemsByJoinTable($aData,$sEntityFull) {
if(empty($aData)) {
return null;

View file

@ -322,6 +322,17 @@ abstract class ModuleORM extends Module {
return $aEntities;
}
public function GetCountItemsByArray($aFilter=array(),$sEntityFull=null) {
if (is_null($sEntityFull)) {
$sEntityFull=Engine::GetPluginPrefix($this).'Module'.Engine::GetModuleName($this).'_Entity'.Engine::GetModuleName(get_class($this));
} elseif (!substr_count($sEntityFull,'_')) {
$sEntityFull=Engine::GetPluginPrefix($this).'Module'.Engine::GetModuleName($this).'_Entity'.$sEntityFull;
}
$iCount=$this->oMapperORM->GetCountItemsByArray($aFilter,$sEntityFull);
return $iCount;
}
public function GetItemsByJoinTable($aJoinData=array(),$sEntityFull=null) {
if (is_null($sEntityFull)) {
$sEntityFull=Engine::GetPluginPrefix($this).'Module'.Engine::GetModuleName($this).'_Entity'.Engine::GetModuleName(get_class($this));