class_LanguageAddonBEADB.inc.php
4.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
/**
* @file class_LanguageAddonBEADB.inc.php
* @category freeSN
* @mailto code [at] netz.coop
* @version 0.4.200901
* @link http://netz.coop
*
* @copyright Copyright by netz.coop e.G. 2015
*
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
class LanguageAddonBEADB extends aBasisElementAddonDataBase {
protected function loadObjectLight(Account &$param_HostAccount, iStorable &$param_iStorable, aBasisElementAddon & $param_Object, $param_Parameter=null) {
$var_CONFIG = $param_Object->getObjVar('CONFIG');
if(is_array($var_CONFIG) && array_key_exists('Tablename', $var_CONFIG)) {
$var_bindValueArray = array(
':Tablename' => $var_CONFIG['Tablename'],
':MTextID' => $param_Object->getObjVar('HostObject')->getObjVar('ID'),
);
$var_query = 'select LanguageCode from :Tablename where MTextID= :MTextID';
$stmt =$param_iStorable->PDO_query($var_query, $var_bindValueArray);
if($stmt) {
$var_LanguageCodes = array();
foreach($param_iStorable->PDO_fetchAll($stmt) as $row) {
$var_LanguageCodes[$row['LanguageCode']] = null;
}
$param_Object->setData($param_HostAccount, $param_iStorable, array('LanguageCodes' => $var_LanguageCodes));
}
}
}
protected function loadObjectFull(Account &$param_HostAccount, iStorable &$param_iStorable, aBasisElementAddon & $param_Object, $param_Parameter=null) {
$var_CONFIG = $param_Object->getObjVar('CONFIG');
if(is_array($var_CONFIG) && array_key_exists('Tablename', $var_CONFIG)) {
$var_bindValueArray = array(
':Tablename' => $var_CONFIG['Tablename'],
':MTextID' => $param_Object->getObjVar('HostObject')->getObjVar('ID'),
);
$var_query = 'select * from :Tablename where MTextID= :MTextID';
$stmt =$param_iStorable->PDO_query($var_query, $var_bindValueArray);
if($stmt) {
$var_LanguageObjectArray = array();
$var_Descipt = $param_iStorable->getTableDescript($var_CONFIG['Tablename']);
unset($var_Descipt['MTextID']);
foreach($param_iStorable->PDO_fetchAll($stmt) as $row) {
$var_LangObj =& ContainerClass::createNewInstance($var_Descipt);
$var_LangObj->setData($param_HostAccount, $param_iStorable, $row);
$var_LanguageObjectArray[$row['LanguageCode']] = $var_LangObj;
}
$param_Object->setObjVar('LanguageObjectArray', $var_LanguageObjectArray);
}
}
}
/**
* @todo PDO muss noch mal überprüft werden
*
*/
public function saveObject(Account &$param_HostAccount, iStorable &$param_iStorable, aBasisElementAddon & $param_Object) {
$var_CONFIG = $param_Object->getObjVar('CONFIG');
if(is_array($var_CONFIG) ) {
$var_Descipt = $param_iStorable->getTableDescript($var_CONFIG['Tablename']);
foreach($param_Object->getObjVar('LanguageObjectArray') as $var_LangObj) {
$var_bindValueArray = array(
);
if(array_key_exists($var_LangObj->getObjVar('LanguageCode'), $var_LangObj->getObjVar('LanguageCodes'))) {
unset($var_Descipt['MTextID']);
$var_query = 'UPDATE '.$var_CONFIG['Tablename'].' set ';
$var_tmp = false;
foreach($var_Descipt as $var_ObjVar => $tmp) {
if($var_tmp) {
$var_query .= ' and ';
} else {
$var_tmp = true;
}
$var_query .= ' '.$var_ObjVar.'=\''.$var_LangObj->getObjVar($var_ObjVar).'\' ';
}
$var_query .= 'where MTextID='.$var_LangObj->getObjVar('MTextID');
} else {
$var_query = 'INSERT INTO '.$var_CONFIG['Tablename'].' ';
$var_query_ObjVars = $var_query_Values = '';
$var_tmp = false;
foreach($var_Descipt as $var_ObjVar => $tmp) {
if($var_tmp) {
$var_query_ObjVars .= ', ';
$var_query_Values .= ', ';
} else {
$var_tmp = true;
}
$var_query_ObjVars .= ' '.$var_ObjVar.' ';
$var_query_Values .= ' \''.$var_LangObj->getObjVar($var_ObjVar).'\' ';
}
$var_query .= ' ('.$var_query_ObjVars.') ';
$var_query .= ' VALUES ('.$var_query_Values.')';
}
$Resource =$param_iStorable->PDO_query($var_query, $var_bindValueArray);
if($Resource) {
return false;
}
}
}
}
}
?>