diff --git a/wire/core/PageArrayIterator.php b/wire/core/PageArrayIterator.php index 6cb8f02b..aca629ff 100644 --- a/wire/core/PageArrayIterator.php +++ b/wire/core/PageArrayIterator.php @@ -121,10 +121,11 @@ class PageArrayIterator extends Wire implements \Iterator { $ids[] = $page->id; } - $debug = $this->wire('pages'); - if($debug) $this->wire('pages')->debug(false); - $this->pages = $this->wire('pages')->getById($ids, $options); - if($debug) $this->wire('pages')->debug(true); + $pages = $this->wire('pages'); + $debug = $pages->debug(); + if($debug) $pages->debug(false); + $this->pages = $pages->getById($ids, $options); + if($debug) $pages->debug(true); } $this->pagesCount = count($this->pages); diff --git a/wire/modules/Fieldtype/FieldtypePageTable.module b/wire/modules/Fieldtype/FieldtypePageTable.module index ba055099..4503abe8 100644 --- a/wire/modules/Fieldtype/FieldtypePageTable.module +++ b/wire/modules/Fieldtype/FieldtypePageTable.module @@ -405,25 +405,17 @@ class FieldtypePageTable extends FieldtypeMulti implements Module { $loadOptions = array('cache' => false); if($template) $loadOptions['template'] = $template; - $sortfields = $field->get('sortfields'); + $items = $this->wire('pages')->getById($value, $loadOptions); + $sortfields = $field->get('sortfields'); if($sortfields) { - $selector = $template ? "template=$template, " : ""; - $selector .= "include=unpublished, id=" . implode('|', $value); + $sorts = array(); foreach(explode(',', $sortfields) as $sortfield) { - $selector .= ", sort=" . $this->wire('sanitizer')->name(trim($sortfield)); + $sorts[] = $this->wire('sanitizer')->name(trim($sortfield)); } - $options = array( - 'cache' => false, - 'caller' => $this->className() . '::wakeupValue', - 'loadOptions' => $loadOptions - ); - $items = $this->wire('pages')->find($selector, $options); - - } else { - $items = $this->wire('pages')->getById($value, $loadOptions); + if(count($sorts)) $items->sort($sorts); } - + return $items; }