diff --git a/wire/modules/Process/ProcessPageLister/ProcessPageLister.module b/wire/modules/Process/ProcessPageLister/ProcessPageLister.module index c1b001f0..751877b5 100644 --- a/wire/modules/Process/ProcessPageLister/ProcessPageLister.module +++ b/wire/modules/Process/ProcessPageLister/ProcessPageLister.module @@ -1235,6 +1235,7 @@ class ProcessPageLister extends Process implements ConfigurableModule { * */ protected function isSortableCol(Field $field, $subfield = '') { + if(!$this->isSortableField($field)) return false; if($subfield === 'data' || empty($subfield) || $subfield === 'count') return true; if($subfield === 'keys' || $subfield === 'xtra') return false; $fieldtype = $field->type; @@ -1242,6 +1243,21 @@ class ProcessPageLister extends Process implements ConfigurableModule { return isset($schema[$subfield]); } + /** + * Is field sortable? + * + * @param Field $field + * @return bool + * @since 3.0.199 + * + */ + protected function isSortableField(Field $field) { + $table = $field->getTable(); + if(empty($table)) return false; + if(!$this->wire()->database->tableExists($field->getTable())) return false; + return true; + } + /** * Build the Lister table containing results * @@ -1333,6 +1349,9 @@ class ProcessPageLister extends Process implements ConfigurableModule { if($field && !$this->isSortableCol($field, $subname)) { $thClass = 'not_sortable'; } + } else if($field && !$this->isSortableField($field)) { + $sortKey = "$name"; + $thClass = 'not_sortable'; } else { $sortKey = "$name"; }