48 "R" => _(
"read only") ,
49 "W" => _(
"read write") ,
50 "O" => _(
"write only") ,
52 "S" => _(
"read disabled") ,
53 "U" => _(
"static array") ,
71 $tneed = $this->
getTValue(
"MSK_NEEDEEDS");
72 $tattrid = $this->
getTValue(
"MSK_ATTRIDS");
73 $tvis = $this->
getTValue(
"MSK_VISIBILITIES");
75 $tvisibilities = array();
76 foreach ($tattrid as $k => $v) {
77 if (($tneed[$k] ==
'-') && ($tvis[$k] ==
'-')) {
84 $this->setValue(
"MSK_NEEDEEDS", $tneed);
85 $this->setValue(
"MSK_ATTRIDS", $tattrid);
86 $this->setValue(
"MSK_VISIBILITIES", $tvis);
93 $tvisid = $this->
getTValue(
"MSK_VISIBILITIES");
94 $tattrid = $this->
getTValue(
"MSK_ATTRIDS");
96 $tvisibilities = array();
97 while (list($k, $v) = each($tattrid)) {
98 $tvisibilities[$v] = $tvisid[$k];
100 return $tvisibilities;
105 $tvisid = $this->
getTValue(
"MSK_VISIBILITIES");
106 $tattrid = $this->
getTValue(
"MSK_ATTRIDS");
111 $tvisibilities = array();
113 foreach ($tattrid as $k => $v) {
114 $attr =
$doc->getAttribute($v);
115 $fvisid = $attr->fieldSet->id;
116 if ($tvisid[$k] ==
"-") $vis = $attr->visibility;
117 else $vis = $tvisid[$k];
121 return $tvisibilities;
125 $tvisid = $this->
getTValue(
"MSK_NEEDEEDS");
126 $tattrid = $this->
getTValue(
"MSK_ATTRIDS");
128 $tvisibilities = array();
129 while (list($k, $v) = each($tattrid)) {
130 $tvisibilities[$v] = $tvisid[$k];
132 return $tvisibilities;
141 $tkey_visibilities = array_keys($tvisibilities);
142 $tinitvisibilities = $tvisibilities;
146 $this->lay->Set(
"docid",
$docid);
150 $origattr =
$doc->attributes->attr;
153 $tmpdoc->applyMask($this->
id);
159 uasort($tmpdoc->attributes->attr,
"tordered");
161 foreach ($tmpdoc->attributes->attr as $k => $attr) {
162 if (!$attr->visibility)
continue;
163 if ($attr->usefor ==
'Q')
continue;
164 $tmask[$k][
"attrname"] = $attr->getLabel();
165 $tmask[$k][
"type"] = $attr->type;
166 $tmask[$k][
"visibility"] = $labelvis[$attr->visibility];
167 $tmask[$k][
"wneed"] = ($origattr[$k]->needed) ?
"bold" :
"normal";
168 $tmask[$k][
"bgcolor"] =
"inherits";
169 $tmask[$k][
"mvisibility"] = $labelvis[$attr->mvisibility];
170 $tmask[$k][
"classtype"] = strtok($attr->type,
'(');
172 if (in_array($k, $tkey_visibilities)) {
173 $tmask[$k][
"classtype"].=
" directmodified";
174 } elseif ($tmask[$k][
"visibility"] != $tmask[$k][
"mvisibility"]) {
175 if ($tmask[$k][
"mvisibility"] != $labelvis[$origattr[$k]->mvisibility]) $tmask[$k][
"classtype"].=
" inheritmodified";
178 if (isset($tneedeeds[$attr->id])) {
179 if (($tneedeeds[$attr->id] ==
"Y") || (($tneedeeds[$attr->id] ==
"-") && ($attr->needed))) $tmask[$k][
"waneed"] =
"bold";
180 else $tmask[$k][
"waneed"] =
"normal";
181 if ($tneedeeds[$attr->id] !=
"-") $tmask[$k][
"bgcolor"] =
getParam(
"CORE_BGCOLORALTERN");
182 }
else $tmask[$k][
"waneed"] = $tmask[$k][
"wneed"];
184 if ($tmask[$k][
"wneed"] != $tmask[$k][
"waneed"]) {
185 $tmask[$k][
"bgcolor"] =
getParam(
"COLOR_B5");
188 if ($attr->fieldSet && $attr->fieldSet->id && $attr->fieldSet->id !=
"FIELD_HIDDENS") $tmask[$k][
"framelabel"] = $attr->fieldSet->getLabel();
189 else $tmask[$k][
"framelabel"] =
"";
190 if ($attr->waction !=
"") $tmask[$k][
"framelabel"] = _(
"Action");
192 $tmask[$k][
"displayorder"] = ($attr->ordered) ? $attr->ordered : -2;
193 if ($attr->type ==
"menu" || $attr->type ==
"action") $tmask[$k][
"displayorder"]+= 1000000;
194 if (($attr->ordered > 0) && $attr->fieldSet->id && $attr->fieldSet->ordered < - 1) {
195 $attr->fieldSet->ordered = $attr->ordered - 1;
196 $tmask[$attr->fieldSet->id][
"displayorder"] = $attr->ordered - 1;
197 if ($attr->fieldSet->fieldSet && $attr->fieldSet->fieldSet->id) {
198 if ($attr->fieldSet->fieldSet->ordered < - 1) {
199 $attr->fieldSet->fieldSet->ordered = $attr->fieldSet->ordered - 1;
200 $tmask[$attr->fieldSet->fieldSet->id][
"displayorder"] = $attr->fieldSet->ordered - 1;
205 unset($tmask[
"FIELD_HIDDENS"]);
206 uasort($tmask, array(
210 $this->lay->SetBlockData(
"MASK", $tmask);
219 $this->lay->Set(
"docid",
$docid);
228 $selectclass = array();
229 $tclassdoc =
GetClassesDoc($this->dbaccess, $this->userid, 0,
"TABLE");
230 foreach ($tclassdoc as $k => $cdoc) {
231 $selectclass[$k][
"idcdoc"] = $cdoc[
"id"];
232 $selectclass[$k][
"classname"] = $cdoc[
"title"];
233 $selectclass[$k][
"selected"] =
"";
236 $this->lay->SetBlockData(
"SELECTCLASS", $selectclass);
240 $this->lay->set(
"creation", (
$docid == 0));
241 $this->lay->set(
"family",
$doc->getTitle());
246 while (list($k, $v) = each($labelvis)) {
247 $selectvis[] = array(
253 while (list($k, $v) = each($labelneed)) {
254 $selectneed[] = array(
261 $tattr =
$doc->getAttributes();
262 uasort($tattr,
"tordered");
263 foreach ($tattr as $k => $attr) {
264 if ($attr->usefor ==
"Q")
continue;
265 if ($attr->docid == 0)
continue;
266 $newelem[$k][
"attrid"] = $attr->id;
267 $newelem[$k][
"attrname"] = $attr->getLabel();
268 $newelem[$k][
"type"] = strtok($attr->type,
'(');
269 $newelem[$k][
"visibility"] = $labelvis[$attr->visibility];
271 $newelem[$k][
"wneed"] = ($attr->needed) ?
"bold" :
"normal";
272 $newelem[$k][
"neweltid"] = $k;
273 $newelem[$k][
"attrinfo"] = $attr->id;
274 if ($attr->fieldSet->id && $attr->fieldSet->id !=
'FIELD_HIDDENS') {
275 $newelem[$k][
"attrinfo"].=
'/' . $attr->fieldSet->id;
276 if ($attr->fieldSet->fieldSet->id && $attr->fieldSet->fieldSet->id !=
'FIELD_HIDDENS') $newelem[$k][
"attrinfo"].=
'/' . $attr->fieldSet->fieldSet->id;
279 if (($attr->type ==
"array") || (strtolower(get_class($attr)) ==
"fieldsetattribute")) $newelem[$k][
"fieldweight"] =
"bold";
280 else $newelem[$k][
"fieldweight"] =
"";
282 if ($attr->docid ==
$docid) {
283 $newelem[$k][
"disabled"] =
"";
285 $newelem[$k][
"disabled"] =
"disabled";
288 if ($attr->fieldSet->docid > 0) $newelem[$k][
"framelabel"] = $attr->fieldSet->getLabel();
289 else $newelem[$k][
"framelabel"] =
"";
290 if ($attr->waction !=
"") $newelem[$k][
"framelabel"] = _(
"Action");
293 while (list($kopt, $opt) = each($selectvis)) {
294 if ($opt[
"visid"] == $tvisibilities[$attr->id]) {
295 $selectvis[$kopt][
"selected"] =
"selected";
297 $selectvis[$kopt][
"selected"] =
"";
302 while (list($kopt, $opt) = each($selectneed)) {
303 if ($opt[
"needid"] == $tneedeeds[$attr->id]) {
304 $selectneed[$kopt][
"selectedneed"] =
"selected";
306 $selectneed[$kopt][
"selectedneed"] =
"";
309 $newelem[$k][
"displayorder"] = ($attr->ordered) ? $attr->ordered : -2;
310 if ($attr->type ==
"menu" || $attr->type ==
"action") $newelem[$k][
"displayorder"]+= 1000000;
311 if (($attr->ordered > 0) && $attr->fieldSet->id && $attr->fieldSet->ordered < - 1) {
312 $attr->fieldSet->ordered = $attr->ordered - 1;
313 $newelem[$attr->fieldSet->id][
"displayorder"] = $attr->ordered - 1;
314 if ($attr->fieldSet->fieldSet && $attr->fieldSet->fieldSet->id) {
315 if ($attr->fieldSet->fieldSet->ordered < - 1) {
316 $attr->fieldSet->fieldSet->ordered = $attr->fieldSet->ordered - 1;
317 $newelem[$attr->fieldSet->fieldSet->id][
"displayorder"] = $attr->fieldSet->ordered - 1;
321 $newelem[$k][
"SELECTVIS"] =
"SELECTVIS_$k";
322 $this->lay->SetBlockData($newelem[$k][
"SELECTVIS"], $selectvis);
323 $newelem[$k][
"SELECTNEED"] =
"SELECTNEED_$k";
324 $this->lay->SetBlockData($newelem[$k][
"SELECTNEED"], $selectneed);
328 unset($newelem[
"FIELD_HIDDENS"]);
329 uasort($newelem, array(
333 $this->lay->SetBlockData(
"NEWELEM", $newelem);
344 if (isset(
$a[
"displayorder"]) && isset($b[
"displayorder"])) {
345 if (
$a[
"displayorder"] == $b[
"displayorder"])
return 0;
346 if (
$a[
"displayorder"] > $b[
"displayorder"])
return 1;
349 if (isset(
$a[
"displayorder"]))
return 1;
350 if (isset($b[
"displayorder"]))
return -1;