Index: branches/RC/core/units/general/cat_tag_processor.php =================================================================== diff -u -r11823 -r11870 --- branches/RC/core/units/general/cat_tag_processor.php (.../cat_tag_processor.php) (revision 11823) +++ branches/RC/core/units/general/cat_tag_processor.php (.../cat_tag_processor.php) (revision 11870) @@ -733,6 +733,42 @@ return $this->Application->HREF($edit_template,'', $url_params); } + + function LanguageVisible($params) + { + $field = $this->SelectParam($params, 'name,field'); + + preg_match('/l([\d]+)_(.*)/', $field, $regs); + $params['name'] = $regs[2]; + + return $this->HasLanguageError($params) || $this->Application->GetVar('m_lang') == $regs[1]; + } + + function HasLanguageError($params) + { + static $languages = null; + + if (!isset($languages)) { + $sql = 'SELECT ' . $this->Application->getUnitOption('lang', 'IDField') . ' + FROM ' . $this->Application->getUnitOption('lang', 'TableName') . ' + WHERE Enabled = 1'; + $languages = $this->Conn->GetCol($sql); + } + + $field = $this->SelectParam($params, 'name,field'); + + $object =& $this->getObject($params); + /* @var $object kDBItem */ + + foreach ($languages as $language_id) { + $check_field = 'l' . $language_id . '_' . $field; + if ($object->GetErrorMsg($check_field, false)) { + return true; + } + } + + return false; + } } ?> \ No newline at end of file