Index: branches/5.1.x/core/units/themes/themes_eh.php =================================================================== diff -u -N -r13168 -r13559 --- branches/5.1.x/core/units/themes/themes_eh.php (.../themes_eh.php) (revision 13168) +++ branches/5.1.x/core/units/themes/themes_eh.php (.../themes_eh.php) (revision 13559) @@ -1,6 +1,6 @@ Special == 'enabled' || !$this->Application->isAdminUser) { + $object =& $event->getObject(); + /* @var $object kDBList */ + + if (in_array($event->Special, Array ('enabled', 'selected', 'available')) || !$this->Application->isAdminUser) { // "enabled" special or Front-End + $object->addFilter('enabled_filter', '%1$s.Enabled = ' . STATUS_ACTIVE); + } - $object =& $event->getObject(); - /* @var $object kDBList */ + // site domain theme picker + if ($event->Special == 'selected' || $event->Special == 'available') { + $edit_picker_helper =& $this->Application->recallObject('EditPickerHelper'); + /* @var $edit_picker_helper EditPickerHelper */ - $object->addFilter('enabled_filter', '%1$s.Enabled = 1'); + $edit_picker_helper->applyFilter($event, 'Themes'); } + + // apply domain-based theme filtering + $themes = $this->Application->siteDomainField('Themes'); + + if (strlen($themes)) { + $themes = explode('|', substr($themes, 1, -1)); + $object->addFilter('domain_filter', '%1$s.ThemeId IN (' . implode(',', $themes) . ')'); + } } }