"disabling not working iterator:

Replacement code for in r29270 removed filter  

	$cal_filters['query']['cal_reference'] = 0;

only works, if all recurrences and the master are returned in a single chunk, otherwise events get returned multiple times"
This commit is contained in:
Ralf Becker 2010-05-14 17:51:55 +00:00
parent b4b689e097
commit 3629e919f5

View File

@ -147,11 +147,12 @@ class calendar_groupdav extends groupdav_handler
} }
} }
} }
/* disabling not working iterator
// return iterator, calling ourself to return result in chunks // return iterator, calling ourself to return result in chunks
$files['files'] = new groupdav_propfind_iterator($this,$path,$filter,$files['files']); $files['files'] = new groupdav_propfind_iterator($this,$path,$filter,$files['files']);
return true; return true;
} }
*/
/** /**
* Callback for profind interator * Callback for profind interator
* *
@ -160,12 +161,14 @@ class calendar_groupdav extends groupdav_handler
* @param array|boolean $start=false false=return all or array(start,num) * @param array|boolean $start=false false=return all or array(start,num)
* @return array with "files" array with values for keys path and props * @return array with "files" array with values for keys path and props
*/ */
/* disabling not working iterator
function propfind_callback($path,array $filter,$start=false) function propfind_callback($path,array $filter,$start=false)
{ {
if ($this->debug) $starttime = microtime(true); if ($this->debug) $starttime = microtime(true);
*/
$calendar_data = $filter['calendar_data']; $calendar_data = $filter['calendar_data'];
unset($filter['calendar_data']); unset($filter['calendar_data']);
/* disabling not working iterator
$files = array(); $files = array();
if (is_array($start)) if (is_array($start))
@ -173,6 +176,8 @@ class calendar_groupdav extends groupdav_handler
$filter['offset'] = $start[0]; $filter['offset'] = $start[0];
$filter['num_rows'] = $start[1]; $filter['num_rows'] = $start[1];
} }
error_log(__METHOD__."($path,,".array2string($start).") filter=".array2string($filter));
*/
$events =& $this->bo->search($filter); $events =& $this->bo->search($filter);
if ($events) if ($events)
{ {
@ -215,7 +220,10 @@ class calendar_groupdav extends groupdav_handler
{ {
$props[] = HTTP_WebDAV_Server::mkprop('getcontentlength', ''); // expensive to calculate and no CalDAV client uses it $props[] = HTTP_WebDAV_Server::mkprop('getcontentlength', ''); // expensive to calculate and no CalDAV client uses it
} }
/* disabling not working iterator
$files[] = array( $files[] = array(
*/
$files['files'][] = array(
'path' => $path.$this->get_path($event), 'path' => $path.$this->get_path($event),
'props' => $props, 'props' => $props,
); );
@ -226,7 +234,10 @@ class calendar_groupdav extends groupdav_handler
error_log(__METHOD__."($path) took ".(microtime(true) - $starttime). error_log(__METHOD__."($path) took ".(microtime(true) - $starttime).
' to return '.count($files).' items'); ' to return '.count($files).' items');
} }
/* disabling not working iterator
return $files; return $files;
*/
return true;
} }
/** /**