X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FEvents.php;h=e8682ac8f2cadde618b6512710cb4b1c744fc85e;hp=2da22c6d955103ed48eae021461c9ec24e7cc904;hb=HEAD;hpb=e22d368485d80797a44d045717dd5f5b0879ac30 diff --git a/DataObjects/Events.php b/DataObjects/Events.php index 2da22c6d..a04484c4 100644 --- a/DataObjects/Events.php +++ b/DataObjects/Events.php @@ -54,7 +54,6 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $this->selectAs(); $this->selectAs($jt, 'person_id_%s', 'join_person_id_id'); - if (method_exists($jt,'nameColumn')) { $this->selectAdd("join_person_id_id.{$jt->nameColumn()} as person_id_name"); } @@ -150,7 +149,7 @@ class Pman_Core_DataObjects_Events extends DB_DataObject //DB_DataObject::DebugLevel(1); $joins = explode(',',$q['_join']); - $this->selectAdd(); // ??? + //$this->selectAdd(); // ??? << this wipes out the default options $distinct = false; foreach($joins as $t) { @@ -160,7 +159,8 @@ class Pman_Core_DataObjects_Events extends DB_DataObject continue; } $jtn = $x->tableName(); - $jk = array_shift($x->keys()); + $jks = $x->keys(); + $jk = array_shift($jks); $this->_join .= " LEFT JOIN {$jtn} as join_on_id_{$jtn} ON {$tn}.on_id = join_on_id_{$jtn}.{$jk} @@ -475,18 +475,39 @@ class Pman_Core_DataObjects_Events extends DB_DataObject static function writeEventLogExtra($data) { self::$extra_data = $data; } + static $files = array(); + + /** + * Add a file to the output log + * this needs to be called before addEvent, and the data format should be the same as $_FILES + * eg. + * + * DB_DataObject::factory('Events')->addFile(array( + * 'tmp_name' => real file location + * 'name' => real file name + * 'type' => mimetype + * 'size' => filesize + * + * )) + * + */ + function addFile($data) + { + self::$files[] = $data; + } - function logDir() + function logDir($user = false) { $ff = HTML_FlexyFramework::get(); - if (function_exists('posix_getpwuid')) { - $uinfo = posix_getpwuid( posix_getuid () ); - - $user = $uinfo['name']; - } else { - $user = getenv('USERNAME'); // windows. - } - + if ($user === false) { + if (function_exists('posix_getpwuid')) { + $uinfo = posix_getpwuid( posix_getuid () ); + + $user = $uinfo['name']; + } else { + $user = getenv('USERNAME'); // windows. + } + } if (!empty($ff->Pman['storedir'])) { @@ -535,9 +556,10 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $i=0; $files = array(); + - $i = 0; - foreach ($_FILES as $k=>$f){ + + foreach (array_merge($_FILES, self::$files) as $k=>$f){ // does not handle any other file[] arrary very well.. if (empty($f['tmp_name']) || !file_exists($f['tmp_name'])) { continue; @@ -645,8 +667,13 @@ class Pman_Core_DataObjects_Events extends DB_DataObject $date = date('/Y/m/d/', strtotime($this->event_when)); $file = $logdir. $date. $this->id . ".json"; - if (!file_exists(dirname($file))) { - return false; + if (!file_exists($file)) { + + // try looking www-dir.. + $file = $this->logDir('www-data'). $date. $this->id . ".json"; + if (!file_exists($file)) { + return false; + } } return $file;