From 0b7ddb033dc41215f53635a1525f08c462d10f2b Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 17 Dec 2012 17:47:08 +0800 Subject: [PATCH] DataObjects/Events.php --- DataObjects/Events.php | 118 ++++++++++++++++++++--------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/DataObjects/Events.php b/DataObjects/Events.php index 8c7c0c36..7ab9106f 100644 --- a/DataObjects/Events.php +++ b/DataObjects/Events.php @@ -220,65 +220,65 @@ class Pman_Core_DataObjects_Events extends DB_DataObject } - function autoJoinExtra() - { - //$ret = parent::autoJoin(); - // DB_DataObject::debugLevel(1); - - // now try and magically join person_table to the right table.. - return; - // this does not work on postgres.. - $tn = $this->tableName(); - $pt = DB_DataObject::Factory($this->tableName()); - $pt->selectAdD(); - $pt->selectAdD('distinct(person_table) as person_table'); - $pt->whereAdd('person_table IS NOT NULL AND LENGTH(person_table) > 0'); - $tbls = $pt->fetchAll('person_table'); - $pers = DB_DataObject::Factory('Person'); - $ptbl = $pers->tableName(); - if (!in_array($ptbl,$tbls)) { - $tbls[] = $ptbl; - - } - foreach($tbls as $tbl) { - - // find all the columns from the joined table.. - $st = DB_DataObject::Factory($tbl); - $tcols = array_keys($st->table()); - - $cond = "{$tn}.person_table = '{$tbl}'"; - if ($tbl == $ptbl) { - $cond = "( $cond OR {$tn}.person_table = '')"; - } - - foreach($tcols as $col) { - if ($col == 'passwd') { - continue; - } - $cols[$col] = isset($cols[$col] ) ? $cols[$col] : array(); - $cols[$col][] = "WHEN $cond THEN join_person_table_{$tbl}.{$col}"; - } - // id's are hard coded... - - $this->_join .= " - LEFT JOIN {$tbl} AS join_person_table_{$tbl} - ON {$tn}.person_id = join_person_table_{$tbl}.id - AND $cond - "; - } - foreach($cols as $col=>$whens) { - - $this->selectAdd(" - CASE - ". implode("\n", $whens) ." - ELSE '' - END - as person_table_{$col}" - ); - } - //return $ret; - - } +// function autoJoinExtra() +// { +// //$ret = parent::autoJoin(); +// // DB_DataObject::debugLevel(1); +// +// // now try and magically join person_table to the right table.. +// return; +// // this does not work on postgres.. +// $tn = $this->tableName(); +// $pt = DB_DataObject::Factory($this->tableName()); +// $pt->selectAdD(); +// $pt->selectAdD('distinct(person_table) as person_table'); +// $pt->whereAdd('person_table IS NOT NULL AND LENGTH(person_table) > 0'); +// $tbls = $pt->fetchAll('person_table'); +// $pers = DB_DataObject::Factory('Person'); +// $ptbl = $pers->tableName(); +// if (!in_array($ptbl,$tbls)) { +// $tbls[] = $ptbl; +// +// } +// foreach($tbls as $tbl) { +// +// // find all the columns from the joined table.. +// $st = DB_DataObject::Factory($tbl); +// $tcols = array_keys($st->table()); +// +// $cond = "{$tn}.person_table = '{$tbl}'"; +// if ($tbl == $ptbl) { +// $cond = "( $cond OR {$tn}.person_table = '')"; +// } +// +// foreach($tcols as $col) { +// if ($col == 'passwd') { +// continue; +// } +// $cols[$col] = isset($cols[$col] ) ? $cols[$col] : array(); +// $cols[$col][] = "WHEN $cond THEN join_person_table_{$tbl}.{$col}"; +// } +// // id's are hard coded... +// +// $this->_join .= " +// LEFT JOIN {$tbl} AS join_person_table_{$tbl} +// ON {$tn}.person_id = join_person_table_{$tbl}.id +// AND $cond +// "; +// } +// foreach($cols as $col=>$whens) { +// +// $this->selectAdd(" +// CASE +// ". implode("\n", $whens) ." +// ELSE '' +// END +// as person_table_{$col}" +// ); +// } +// //return $ret; +// +// } /** -- 2.39.2