Example #1
0
 /**
  * Trash translations when the user click on the trash button
  *
  * @param NenoContentElementTable $table Table where the element was trashed
  * @param mixed                   $pk    Primary key value
  *
  * @return void
  */
 protected function trashTranslations(NenoContentElementTable $table, $pk)
 {
     $db = JFactory::getDbo();
     $primaryKeys = $table->getPrimaryKeys();
     $query = $db->getQuery(true);
     $query->select('tr.id')->from('#__neno_content_element_translations AS tr');
     /* @var $primaryKey NenoContentElementField */
     foreach ($primaryKeys as $key => $primaryKey) {
         $alias = 'ft' . $key;
         $query->where("exists(SELECT 1 FROM #__neno_content_element_fields_x_translations AS {$alias} WHERE {$alias}.translation_id = tr.id AND {$alias}.field_id = " . $primaryKey->getId() . " AND {$alias}.value = " . $db->quote($pk) . ")");
     }
     $db->setQuery($query);
     $translationIds = $db->loadColumn();
     foreach ($translationIds as $translationId) {
         /* @var $translation NenoContentElementTranslation */
         $translation = NenoContentElementTranslation::load($translationId);
         $translation->remove();
     }
 }
Example #2
0
 protected function trashTranslations(NenoContentElementTable $table, $pk)
 {
     $db = JFactory::getDbo();
     $primaryKeys = $table->getPrimaryKeys();
     $query = $db->getQuery(true);
     $subQuery = $db->getQuery(true);
     $subQuery->select('tr.id')->from('#__neno_content_element_translations AS tr');
     /* @var $primaryKey NenoContentElementField */
     foreach ($primaryKeys as $key => $primaryKey) {
         $alias = 'ft' . $key;
         $subQuery->where("exists(SELECT 1 FROM #__neno_content_element_fields_x_translations AS {$alias} WHERE {$alias}.translation_id = tr.id AND {$alias}.field_id = " . $primaryKey->getId() . " AND {$alias}.value = " . $pk . ")");
     }
     $query->delete('#__neno_content_element_translation_x_translation_methods')->where('translation_id IN (' . (string) $subQuery . ')');
     $db->setQuery($query);
     $db->execute();
 }