/** * 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(); } }
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(); }