/**
  * Delete related images when this object is deleted
  *
  * @param Doctrine_Event $event
  */
 public function preDelete(Doctrine_Event $event)
 {
     $object = $event->getInvoker();
     // Default in documentation is that images are shared
     $images_shared = $this->getOption('shared_images');
     if (null === $images_shared) {
         $images_shared = true;
     }
     // if images are shared - delete only the lookups, leave images alone for other objects to use
     if ($images_shared) {
         sfImagePoolLookupTable::getInstance()->removeImages($object);
     } else {
         $object->getPoolImages()->delete();
     }
 }
 /**
  * Get the number of pool images on this object
  *
  * @param Doctrine_Record $object
  * @param Doctrine_Query $query
  * @return int
  **/
 public function getNbPoolImages(Doctrine_Record $object = null, Doctrine_Query $query = null)
 {
     $object = is_null($object) ? $this->getInvoker() : $object;
     if (!$object->hasMappedValue('_nb_pool_images')) {
         // If already have getPoolImages _images mapped then get count
         if ($object->hasMappedValue('_images')) {
             $object->mapValue('_nb_pool_images', count($object->_images->count()));
         } else {
             $image_ids = sfImagePoolLookupTable::getInstance()->getImages($object, Doctrine_Core::HYDRATE_SINGLE_SCALAR);
             $object->mapValue('_nb_pool_images', count($image_ids));
         }
     }
     return $object->_nb_pool_images;
 }