/** * Setzt einen Dam Record auf hidden * @todo nicht nur verstecken sondern auch löschen integrieren * @param array $aDamRecord sollte nur einen record in ['rows'] enthalten * @param int $iMode verstecken, auf deleted setzen oder ganz löschen * @param bool $bDeletePicture * * @return bool */ public static function deleteDamRecord($aDamRecords, $iMode = 0, $bDeletePicture = false) { if (empty($aDamRecords['rows'])) { return false; } foreach ($aDamRecords['rows'] as $iDam => $row) { //wenn wir nur keine referenzen mehr haben dann können wir das bild und //den eigentlichen eintrag löschen if (!tx_mklib_util_DAM::damRecordHasReferences($iDam)) { //dam eintrag und bild löschen tx_rnbase::load('tx_rnbase_util_DB'); switch ($iMode) { case 0: //verstecken //verstecken default: tx_rnbase_util_DB::doUpdate('tx_dam', 'tx_dam.uid = ' . $iDam, array('hidden' => 1)); break; case 1: //löschen tx_rnbase_util_DB::doUpdate('tx_dam', 'tx_dam.uid = ' . $iDam, array('deleted' => 1)); break; case 2: //hart löschen tx_rnbase_util_DB::doDelete('tx_dam', 'tx_dam.uid = ' . $iDam); break; } //und bild löschen? if ($bDeletePicture) { unlink(PATH_site . '/' . $aDamRecords['files'][$iDam]); } } } return true; }
/** * die referenz existiert nicht und daher darf auch nicht der dam record zurückgegeben werden * @group integration */ public function testDamRecordHasReferencesReturnsFalseIfNoReferencesFound() { $this->importDataSet(tx_mklib_tests_Util::getFixturePath('db/dam_ref.xml')); $this->assertFalse(tx_mklib_util_DAM::damRecordHasReferences(1, 'tx_does_not_matter'), 'Es wurde kein leeres Array zurück geben.'); }