Example #1
0
 /**
  * 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();
     }
 }