protected function prepareItem(Tx_Rnbase_Domain_Model_RecordInterface $item, tx_rnbase_configurations $configurations, $confId) { if (!tx_rnbase_util_TYPO3::isTYPO60OrHigher()) { // Localize data (DAM 1.1.0) if (method_exists(self::getDamDB(), 'getRecordOverlay')) { $loc = self::getDamDB()->getRecordOverlay('tx_dam', $item->getRecord(), array('sys_language_uid' => $GLOBALS['TSFE']->sys_language_uid)); if ($loc) { $item->setProperty($loc); } } } // TODO: record overlay for FAL?? parent::prepareItem($item, $configurations, $confId); }
/** * returns all language overlays. * * @param Tx_Rnbase_Domain_Model_Base $entry * @return array[Tx_Rnbase_Domain_Model_Base] */ private static function getLangOverlayEntries(Tx_Rnbase_Domain_Model_RecordInterface $entry) { tx_rnbase::load('tx_rnbase_util_TCA'); $parentField = tx_rnbase_util_TCA::getTransOrigPointerFieldForTable($entry->getTableName()); $overlays = tx_rnbase_util_DB::doSelect('*', $entry->getTableName(), array('where' => $parentField . '=' . $entry->getUid(), 'wrapperclass' => get_class($entry))); return $overlays; }
/** * Delete one model * * Overwrite this method to specify a specialised method signature, * and just call THIS method via parent::handleDelete(). * Additionally, the deriving implementation may perform further checks etc. * * @param Tx_Rnbase_Domain_Model_RecordInterface $model This model is being updated. * @param string $where Override default restriction by defining an explicite where clause * @param int $mode Deletion mode with the following options: 0: Hide record; 1: Soft-delete (via "deleted" field) record; 2: Really DELETE record. * @param int $table Wenn eine Tabelle angegeben wird, wird die des Models missachtet (wichtig für temp anzeigen) * @return Tx_Rnbase_Domain_Model_RecordInterface Updated (on success actually empty) model. */ public function handleDelete(Tx_Rnbase_Domain_Model_RecordInterface $model, $where = '', $mode = 0, $table = NULL) { if (empty($table)) { $table = $model->getTableName(); } $uid = intval($model->getUid()); if (!$where) { $where = '1=1 AND `' . $table . '`.`uid`=' . $uid; } $this->delete($table, $where, $mode); $model->reset(); return $model; }
/** * Eleminate non-TCA-defined columns from given data * * Doesn't do anything if no TCA columns are found. * * @param array $data Data to be filtered * @return array Data now containing only TCA-defined columns */ public static function eleminateNonTcaColumns(Tx_Rnbase_Domain_Model_RecordInterface $model, array $data) { tx_rnbase::load('tx_rnbase_util_Arrays'); return tx_rnbase_util_Arrays::removeNotIn($data, $model->getColumnNames()); }