X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=DataObjects%2FEvents.php;h=3614b0fd91005354249416bff3f0fc81c8b223c4;hb=a67cf0bd4e6769fb1da9f117cd5c95e6bd4ceae5;hp=aa786eed1bfc830e5a91287068ea61a35cb5c9df;hpb=53904bb95e9e82c17fea5369826f00e738fac5f1;p=Pman.Core diff --git a/DataObjects/Events.php b/DataObjects/Events.php index aa786eed..3614b0fd 100644 --- a/DataObjects/Events.php +++ b/DataObjects/Events.php @@ -218,8 +218,8 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $roo->jerr("ontable is invalid"); } - if (!method_exists($obj,'relatedWhere')) { - $roo->jerr( $q['_related_on_table'] . " Does not have method relatedWhere :" . + if (!method_exists($obj,'relatedWhere') && !method_exists($obj,'relatedEventsWhere')) { + $roo->jerr( $q['_related_on_table'] . " Does not have method relatedWhere or relatedEventsWhere:" . implode(',', get_class_methods($obj))); } if ($obj && method_exists($obj,'relatedWhere')) { @@ -243,11 +243,23 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $this->whereAdd(implode(' OR ' , $w)); } + if ($obj && method_exists($obj,'relatedEventsWhere')) { + $a = $obj->relatedEventsWhere($q,$roo); + if($a){ + $this->whereAdd($a); + } + } } + if (!isset($q['_who'])) { + $this->autoJoinExtData(); + //$this->autoJoinCorePerson(); + $this->selectAddWho(); + } + // since roo does not support autojoin yet.. if (!isset($q['_distinct'])) { //$this->autoJoinExtra(); @@ -708,4 +720,24 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $this->selectAdd('join_person_id_id.email as email'); } + + function autoJoinExtData() + { + $this->_join .= "LEFT JOIN + ext_data AS ext_data_id + ON + Events.modx_users_id = ext_data_id.userdata_id"; + } + + function selectAddWho() + { + $this->selectAdd(" + CASE + WHEN ext_data_id.in_middlename='' THEN + CONCAT_WS(' ', ext_data_id.in_firstname,ext_data_id.in_lastname) + ELSE + CONCAT_WS(' ', ext_data_id.in_firstname,ext_data_id.in_middlename,ext_data_id.in_lastname) + END AS ext_data_full_name + "); + } }