Esempio n. 1
0
 /**
  * Setzt eventuelle Sprachparameter,
  * damit nur valide Daten für die aktuelle Sprache ausgelesen werden.
  *
  * @param array &$fields
  * @param array &$options
  * @return void
  */
 protected function handleLanguageOptions(&$fields, &$options)
 {
     if (!isset($options['i18n']) && !isset($options['ignorei18n']) && !isset($options['enablefieldsoff'])) {
         $tableName = $this->getEmptyModel()->getTableName();
         $languageField = tx_rnbase_util_TCA::getLanguageFieldForTable($tableName);
         // Die Sprache prüfen wir nur, wenn ein Sprachfeld gesetzt ist.
         if (!empty($languageField)) {
             $tsfe = tx_rnbase_util_TYPO3::getTSFE();
             $languages = array();
             if (isset($options['additionali18n'])) {
                 $languages = tx_rnbase_util_Strings::trimExplode(',', $options['additionali18n'], TRUE);
             }
             // for all languages
             $languages[] = '-1';
             // Wenn eine bestimmte Sprache gesetzt ist,
             // laden wir diese ebenfalls.
             if (is_object($tsfe) && $tsfe->sys_language_content) {
                 $languages[] = $tsfe->sys_language_content;
             } else {
                 // default language
                 $languages[] = '0';
             }
             $options['i18n'] = implode(',', array_unique($languages, SORT_NUMERIC));
         }
     }
 }
 /**
  * Returns the Language id of the record.
  *
  * @return int
  */
 public function getSysLanguageUid()
 {
     $uid = 0;
     $tableName = $this->getTableName();
     if (!empty($tableName)) {
         $sysLanguageUidField = tx_rnbase_util_TCA::getLanguageFieldForTable($tableName);
         if (!$this->isPropertyEmpty($sysLanguageUidField)) {
             $uid = (int) $this->getProperty($sysLanguageUidField);
         }
     }
     return $uid;
 }
 /**
  * Adds the column 'sys_language_uid' to the be list.
  *
  * @param array $columns
  * @param tx_rnbase_mod_IDecorator $oDecorator
  * @return tx_mklib_mod1_searcher_abstractBase
  */
 protected function addDecoratorColumnLanguage(array &$columns, tx_rnbase_mod_IDecorator &$oDecorator = NULL)
 {
     if (!empty($this->options['baseTableName'])) {
         tx_rnbase::load('tx_rnbase_util_TCA');
         $sysLanguageUidField = tx_rnbase_util_TCA::getLanguageFieldForTable($this->options['baseTableName']);
         if (!empty($sysLanguageUidField)) {
             $columns['sys_language_uid'] = array('title' => 'label_tableheader_language', 'decorator' => &$oDecorator);
         }
     }
     return $this;
 }
 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 testGetLanguageFieldForTableWithTtContentTable()
 {
     $this->assertEquals('sys_language_uid', tx_rnbase_util_TCA::getLanguageFieldForTable('tt_content'), 'wrong languageField returned');
 }