/** * Returns the records uid * * @return int */ function getUid() { $uid = 0; $tableName = $this->getTableName(); if (!empty($tableName)) { // Take care for localized records where uid of original record // is stored in $this->record['l18n_parent'] instead of $this->record['uid']! $languageParentField = tx_rnbase_util_TCA::getTransOrigPointerFieldForTable($tableName); $sysLanguageUidField = tx_rnbase_util_TCA::getLanguageFieldForTable($tableName); if (!(empty($languageParentField) && empty($sysLanguageUidField) && empty($this->record[$sysLanguageUidField]) && empty($this->record[$languageParentField]))) { $uid = $this->record[$languageParentField]; } } return $uid > 0 ? $uid : $this->uid; }
/** * 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; }
public static function getAddLocalizationLinks(tx_rnbase_model_base $item, tx_rnbase_mod_BaseModule $mod = NULL) { if ($item->getUid() != $item->getProperty('uid') || $item->getSysLanguageUid() !== 0) { return ''; } $out = ''; foreach (self::getLangRecords($item->getPid()) as $lang) { // skip, if the be user hase no access to for the language! if (!$GLOBALS['BE_USER']->checkLanguageAccess($lang['uid'])) { continue; } // skip, if a overlay for this language allready exists tx_rnbase::load('tx_rnbase_util_TCA'); $parentField = tx_rnbase_util_TCA::getTransOrigPointerFieldForTable($item->getTableName()); $sysLanguageUidField = tx_rnbase_util_TCA::getLanguageFieldForTable($item->getTableName()); $overlays = tx_rnbase_util_DB::doSelect('uid', $item->getTableName(), array('where' => implode(' AND ', array($parentField . '=' . $item->getUid(), $sysLanguageUidField . '=' . (int) $lang['uid'])), 'limit' => 1)); if (!empty($overlays)) { continue; } /* @var $mod tx_rnbase_mod_BaseModule */ if (!$mod instanceof tx_rnbase_mod_BaseModule) { $mod = $GLOBALS['SOBE']; } $onclick = $mod->getDoc()->issueCommand('&cmd[' . $item->getTableName() . '][' . $item->getUid() . '][localize]=' . $lang['uid']); $onclick = 'window.location.href=\'' . $onclick . '\'; return false;'; $out .= sprintf('<a href="#" onclick="%1$s">%2$s</a>', htmlspecialchars($onclick), self::getLangSpriteIcon($lang, array('show_title' => FALSE))); } return $out; }
/** * * @return void * * @group unit * @test */ public function testGetTransOrigPointerFieldForTableWithTtContentTable() { $this->assertEquals('l18n_parent', tx_rnbase_util_TCA::getTransOrigPointerFieldForTable('tt_content'), 'wrong transOrigPointerField returned'); }