Exemple #1
0
 /**
  * Event after deleting a document
  *
  * Deletes all related documents
  *
  * @param $e \Zend_EventManager_Event
  * @throws Exception
  * @throws \Zend_Exception
  */
 public function deleteDocument($e)
 {
     // Check if this function is not in progress
     if (\Zend_Registry::isRegistered('Multilingual_delete') && \Zend_Registry::get('Multilingual_delete') == 1) {
         return;
     }
     // Lock this event-trigger
     \Zend_Registry::set('Multilingual_delete', 1);
     /**@var Document $sourceDocument */
     $sourceDocument = $e->getTarget();
     // Get current language
     $sourceLanguage = $sourceDocument->getProperty('language');
     // Remove document in each language
     $languages = Tool::getValidLanguages();
     foreach ($languages as $language) {
         if ($language != $sourceLanguage) {
             $target = \Multilingual\Document::getDocumentInOtherLanguage($sourceDocument, $language);
             if ($target) {
                 $target->delete();
             }
         }
     }
     // Remove link to other documents
     $t = new Keys();
     $row = $t->fetchRow('document_id = ' . $sourceDocument->getId());
     $t->delete('sourcePath = "' . $row->sourcePath . '"');
     // Unlock this event-trigger
     \Zend_Registry::set('Multilingual_delete', 0);
 }