45         if ($this->_sCacheKey) {
 
   46             $this->_sCacheKey .= 
"_i18n";
 
   57         $this->_iLanguage = (int) $iLang;
 
   59         $this->_sViewTable = 
false;
 
   69         if ($this->_iLanguage === null) {
 
   84         if ($this->_blEmployMultilanguage != $blEmployMultilanguage) {
 
   85             $this->_blEmployMultilanguage = $blEmployMultilanguage;
 
   86             if (!$blEmployMultilanguage) {
 
   91             $this->_sViewTable = 
false;
 
   92             if (count($this->_aFieldNames) > 1) {
 
  108         $sFieldName = strtolower($sFieldName);
 
  109         if (isset($this->_aFieldNames[$sFieldName])) {
 
  110             return (
bool) $this->_aFieldNames[$sFieldName];
 
  115         startProfile(
'!__CACHABLE2__!');
 
  117         stopProfile(
'!__CACHABLE2__!');
 
  119         return (
bool) $blIsMultilang;
 
  146         $this->_sViewTable = 
false;
 
  148         return $this->
load($sOxid);
 
  160             $this->_sCacheKey = $sCacheKey . 
"|i18n";
 
  162             $this->_sCacheKey .= $sCacheKey;
 
  166             $this->_sCacheKey = null;
 
  184         $aMultiLangFields = array();
 
  187         foreach ($aObjFields as $sKey => $sValue) {
 
  190             if (preg_match(
'/^oxactive(_(\d{1,2}))?$/', $sKey)) {
 
  198                 $sNewKey = preg_replace(
'/_(\d{1,2})$/', 
'', $sKey);
 
  199                 $aMultiLangFields[$sNewKey][] = (int) $iFieldLang;
 
  204         if (count($aMultiLangFields) < 1) {
 
  210         $query = 
"select * from " . 
getViewName($this->_sCoreTable, -1, -1) . 
" where oxid = " . $oDb->quote($this->
getId());
 
  211         $rs = $oDb->getAll($query);
 
  217         if (is_array($rs) && count($rs[0])) {
 
  218             foreach ($aMultiLangFields as $sFieldId => $aMultiLangIds) {
 
  220                 foreach ($aMultiLangIds as $sMultiLangId) {
 
  221                     $sFieldName = ($sMultiLangId == 0) ? $sFieldId : $sFieldId . 
'_' . $sMultiLangId;
 
  222                     if ($rs[
'0'][strtoupper($sFieldName)]) {
 
  223                         unset($aNotInLang[$sMultiLangId]);
 
  246         if (isset($aAllField[strtolower($sFieldName) . 
"_1"])) {
 
  270         if (!$this->_blEmployMultilanguage) {
 
  277             $aWorkingFields = & $aFields;
 
  284         foreach ($aWorkingFields as $sName => $sVal) {
 
  286                 unset($aWorkingFields[$sName]);
 
  292         return $aWorkingFields;
 
  304         if (
false === strpos($sFieldName, 
'_')) {
 
  307         if (preg_match(
'/_(\d{1,2})$/', $sFieldName, $aRegs)) {
 
  325             $sField .= 
"_" . $iLang;
 
  357         $blSkipMultilingual = 
false;
 
  358         $blSkipCoreFields = 
false;
 
  360         if ($sTable != $sCoreTable) {
 
  361             $blSkipCoreFields = 
true;
 
  363         if ($this->_blEmployMultilanguage) {
 
  364             if ($sTable != getLangTableName($sCoreTable, $this->
getLanguage())) {
 
  365                 $blSkipMultilingual = 
true;
 
  371         foreach (array_keys($this->_aFieldNames) as $sKey) {
 
  372             $sKeyLowercase = strtolower($sKey);
 
  373             if ($sKeyLowercase != 
'oxid') {
 
  374                 if ($this->_blEmployMultilanguage) {
 
  385                         if ($sTable != getLangTableName($sCoreTable, $iFieldLang)) {
 
  388                     } elseif ($blSkipCoreFields) {
 
  395             $oField = $this->$sLongName;
 
  397             if (!$blUseSkipSaveFields || ($blUseSkipSaveFields && !in_array($sKeyLowercase, $this->_aSkipSaveFields))) {
 
  437             $aUpdateTables = array();
 
  438             if ($this->_blEmployMultilanguage) {
 
  440                 $sLangTable = getLangTableName($sCoreTable, $this->
getLanguage());
 
  441                 if ($sCoreTable != $sLangTable) {
 
  442                     $aUpdateTables[] = $sLangTable;
 
  447             foreach ($aUpdateTables as $sLangTable) {
 
  474         $sCoreTableName = $sCoreTableName ? $sCoreTableName : $this->
getCoreTableName();
 
  476         return oxNew(
'oxDbMetaDataHandler')->getAllMultiTables($sCoreTableName);
 
  494                 $blRet = $blRet && (bool) 
oxDb::getDb()->execute($sSq);
 
  511         if (!$this->_blEmployMultilanguage) {
 
  531         if ($this->_blEmployMultilanguage) {
 
  553     protected function _addField($sName, $sStatus, $sType = null, $sLength = null)
 
  555         if ($this->_blEmployMultilanguage && $this->
_getFieldLang($sName)) {
 
  575         $sFieldName = preg_replace(
'/_\d{1,2}$/', 
'', $sFieldName);
 
  587     public function delete($sOXID = null)
 
  592             $sOXID = $oDB->quote($sOXID);
 
  596                 $oDB->execute(
"delete from {$sSetTbl} where oxid = {$sOXID}");