Index: branches/5.2.x/core/units/categories/categories_event_handler.php =================================================================== --- branches/5.2.x/core/units/categories/categories_event_handler.php +++ branches/5.2.x/core/units/categories/categories_event_handler.php @@ -1848,8 +1848,20 @@ $object->setRequired('PageCacheKey', $object->GetDBField('OverridePageCacheKey')); $object->SetDBField('Template', $this->_stripTemplateExtension( $object->GetDBField('Template') )); - if ($object->GetDBField('Type') == PAGE_TYPE_TEMPLATE) { - if (!$this->_templateFound($object->GetDBField('Template'), $object->GetDBField('ThemeId'))) { + $category_type = $object->GetDBField('Type'); + + // Changing category type would associate/disassociate it to theme. + if ( $category_type != $object->GetOriginalField('Type') ) { + if ( $category_type == PAGE_TYPE_TEMPLATE ) { + $object->SetDBField('ThemeId', $this->_getCurrentThemeId()); + } + else { + $object->SetDBField('ThemeId', 0); + } + } + + if ( $category_type == PAGE_TYPE_TEMPLATE ) { + if ( !$this->_templateFound($object->GetDBField('Template'), $object->GetDBField('ThemeId')) ) { $object->SetError('Template', 'template_file_missing', 'la_error_TemplateFileMissing'); } }