/** * Called when a resource is updated in this category. * * @param XenResource_DataWriter_Resource $resource */ public function resourceUpdate(XenResource_DataWriter_Resource $resource) { if ($resource->get('resource_state') != 'visible') { // nothing to do return; } if ($resource->isUpdate() && $resource->isChanged('resource_category_id')) { $this->updateResourceCount(1); $this->updateFeaturedCount(); $oldCat = XenForo_DataWriter::create('XenResource_DataWriter_Category', XenForo_DataWriter::ERROR_SILENT); if ($oldCat->setExistingData($resource->getExisting('resource_category_id'))) { $oldCat->resourceRemoved($resource); $oldCat->save(); } } else { if ($resource->isChanged('resource_state')) { $this->updateResourceCount(1); } } if ($resource->get('last_update') >= $this->get('last_update')) { $this->set('last_update', $resource->get('last_update')); $this->set('last_resource_title', $resource->get('title')); $this->set('last_resource_id', $resource->get('resource_id')); } if ($resource->isUpdate() && $resource->isChanged('resource_state')) { $this->updateFeaturedCount(); } }