diff --git a/dbd/qq/SYS_TEXT_GET_ID_ADV.php b/dbd/qq/SYS_TEXT_GET_ID_ADV.php new file mode 100644 index 0000000..c8a81de --- /dev/null +++ b/dbd/qq/SYS_TEXT_GET_ID_ADV.php @@ -0,0 +1,11 @@ +next()){ + $result[$row['id']] = $row;} + + if($fallback){ + $result2 = array(); + $res = \SYSTEM\DBD\SYS_TEXT_GET_TAG_ADV::QQ(array($tag,\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG))); + while($row = $res->next()){ + $result2[$row['id']] = $row;} + if(count($result) < count($result2)){ + new \SYSTEM\LOG\WARNING('Texts with tag: '.$tag.' - '.(count($result2)-count($result)).' ids not found for lang: '.$lang.' - fallback to default lang.');} + $result = array_merge($result2,$result); + } + return $result; + } //return textstring with certain id and lang public static function get($id, $lang = NULL,$fallback = true) { if($lang == NULL){ @@ -42,6 +65,19 @@ class text { return self::get($id, \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG));} return $res ? $res['text'] : ''; } + public static function get_adv($id, $lang = NULL,$fallback = true) { + if($lang == NULL){ + $lang = \SYSTEM\locale::get();} + + if(!\SYSTEM\locale::isLang($lang)){ + throw new \Exception("The requested language is not supported: ".$lang);} + + $res = \SYSTEM\DBD\SYS_TEXT_GET_ID_ADV::Q1(array($id,$lang)); + if($fallback && !$res && $lang != \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG)){ + new \SYSTEM\LOG\WARNING('Text with id: '.$id.' not found for lang: '.$lang.' - fallback to default lang.'); + return self::get_adv($id, \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG));} + return $res; + } public static function save($id, $new_id, $lang, $tags, $text){ if($new_id == self::NEW_ENTRY){ diff --git a/sai/modules/saimod_sys_text/qq/SYS_SAIMOD_TEXT_TEXT_NOTAG.php b/sai/modules/saimod_sys_text/qq/SYS_SAIMOD_TEXT_TEXT_NOTAG.php index 6a6ae75..5933514 100644 --- a/sai/modules/saimod_sys_text/qq/SYS_SAIMOD_TEXT_TEXT_NOTAG.php +++ b/sai/modules/saimod_sys_text/qq/SYS_SAIMOD_TEXT_TEXT_NOTAG.php @@ -3,9 +3,8 @@ namespace SYSTEM\DBD; class SYS_SAIMOD_TEXT_TEXT_NOTAG extends \SYSTEM\DB\QP { public static function get_class(){return \get_class();} public static function mysql(){return -'SELECT system_text_tag.tag, system_text.*, a.username as author_name, ae.username as author_edit_name'. -' FROM system_text_tag'. -' LEFT JOIN system_text ON system_text_tag.id = system_text.id'. +'SELECT system_text.*, a.username as author_name, ae.username as author_edit_name'. +' FROM system_text'. ' LEFT JOIN system_user as a ON system_text.author = a.id'. ' LEFT JOIN system_user as ae ON system_text.author_edit = ae.id'. ' WHERE (a.username LIKE ? OR ae.username LIKE ? OR text LIKE ?)'.