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