2namespace dbx\dbxContent_admin;
3dbx()->get_system_obj(
'dbxReport',
'use');
10 private function get_parent_folder_name($id) {
12 $folder =
"(0) -root-";
15 if (isset($folders[$id])) $folder_name=$folders[$id];
16 $folder =
"($id) $folder_name";
21 private function get_group_name($dat_groups) {
23 $groups_name=
''; $gid=0;
24 $dat_groups = explode(
',',$dat_groups);
26 foreach ($dat_groups as $no => $gid) {
28 if (isset($groups[$gid])) {
29 $groups_name.=
'[('.$gid.
') '.$groups[$gid].
'] ';
31 if ($gid) $groups_name.=
'('.$gid.
') -?- ';
41 if (isset($record[
'parent_id'])) $record[
'parent_id'] =$this->get_parent_folder_name($record[
'parent_id']);
43 $this->_record=$record;
59 $this->oValidator=
dbx()->get_system_obj(
'dbxValidator');
60 $this->oTPL =
dbx()->get_system_obj(
'dbxTPL');
66 if (is_array($data)) {
67 foreach ($data as $no => $record) {
68 if (is_array($record)) {
69 if ( isset($record[$id]) && isset($record[$name]) ) {
72 if ($parent && isset($record[$parent])) {
73 $pid=$record[$parent];
74 if ($pid==$xid) $pid=0;
77 foreach ($data as $no2 => $rec2) {
78 if ($rec2[$id]==$pid) {
79 $xna=$rec2[$name].
' -> '.$xna;
88 $select_data[$xid]=$xna;
100 $select_data=array();
101 $folder=$this->oTPL->get_tpl_dir(
'dbxContent').
'htm/';
103 dbx()->debug(
"folder=($folder)");
105 $folder_files=array_diff(scandir($folder), array(
'..',
'.'));
106 foreach ($folder_files as $no => $filename) {
107 $id=substr($filename, 0 , (strrpos($filename,
".")));
108 dbx()->debug(
"folder-files=($filename) id=($id)");
112 if (substr($na, 0, strlen($pfx)) != $pfx) $id=0;
114 if ($id) $select_data[$id]=$na;
128 $content=
''; $ok=
false;
129 $uid =
dbx()->user();
130 $rid =
dbx()->get_modul_var(
'rid',0,
'int');;
135 $db =
dbx()->get_system_obj(
'dbxDB');
136 $lng =
dbx()->get_system_var(
'dbx_lng',
'de');
138 $dd_content = dbx_lng_name(
'content', $lng);
139 $dd_folder = dbx_lng_name(
'content_folder', $lng);
142 $data =
$db->select1($dd_folder,$rid);
143 $data_folder =
$db->select($dd_folder);
144 $data_folder =$this->
make_select_data($data_folder,
'id',
'name',
'parent_id');
147 $options_groups=array();
148 $user_groups=
$db->select(
'dbxUser_groups',
'active = 1',
'*',
'name');
149 foreach ($user_groups as $no => $record) {
150 $id =$record[
'name'];
151 $group =$record[
'description'];
152 $options_groups[$id]=$group;
157 $oForm=
dbx()->get_system_obj(
'dbxForm');
158 $oForm->init(
'dbxContent_folder_edit',
'form-folder');
159 $oForm->_data = $data;
160 $oForm->_action=
'?dbx_modul=dbxContent_admin&dbx_run1=content&dbx_run2=edit_folder&dbx_target=dbx_target_{i}&rid='.$rid;
162 $oForm->add_fld(
'id' ,
'text-label' ,rules:
'int' ,label:
'ID');
163 $oForm->add_fld(
'name' ,
'text-label' ,rules:
'parameter|min=1' ,label:
'Ordner', errormsg:
'Bezeichnung vom Ordner. Keine Sonderzeichen erlaubt.');
164 $oForm->add_fld(
'parent_id' ,
'select-single-label' ,rules:
'array|int' ,label:
'Unterordener von' ,options: $data_folder);
165 $oForm->add_fld(
'template' ,
'select-single-label' ,rules:
'parameter' ,label:
'Template' ,options: $data_template );
166 $oForm->add_fld(
'group_read',
'multi-select-label' ,rules:
'array|parameter' ,label:
'Zugriff Gruppen' ,options: $options_groups);
171 if ($oForm->submit()) {
173 if (!$oForm->errors()) {
175 $change=$oForm->changed();
178 $ok=$oForm->save_post($dd_folder,$rid);
179 if ( $ok) $oForm->_msg_success =
'Daten gespeichert';
180 if (!$ok) $oForm->_msg_success =
'Daten konnten nicht gespeichert werden';
183 $oForm->_msg_success =
'Keine Änderung';
187 $errors=$oForm->_errors;
188 foreach ($errors as $fld => $msg) {
192 $oForm->_msg_error =
"Prüfen sie bitte ihre Eingaben ($flds)";
198 $content= $oForm->run();
224 $this->oTPL =
dbx()->get_system_obj(
'dbxTPL');
228 $select_data=array();
229 $folder=$this->oTPL->get_tpl_dir($modul);
230 $folder_files=array_diff(scandir($folder), array(
'..',
'.'));
231 foreach ($folder_files as $no => $filename) {
232 $id=substr($filename, 0 , (strrpos($filename,
".")));
235 if (substr($na, 0, strlen($pfx)) != $pfx) $id=0;
237 if ($id) $select_data[$id]=$na;
247 private function report_folder_flat() {
251 $oReport =
new dbxReport_Folder;
252 $oDB =
dbx()->get_system_obj(
'dbxDB');
253 $lng =
dbx()->get_modul_var(
'lng',
'de');
255 $dd_content = dbx_lng_name(
'content', $lng);
256 $dd_folder = dbx_lng_name(
'content_folder', $lng);
257 $dd_groups =
'dbxUser_groups';
259 $rid=
dbx()->get_modul_var(
'rid',0,
'int');
260 $do =
dbx()->get_modul_var(
'dbx_run3');
262 if ($do ==
'row_delete' && $rid) $oDB->delete($dd_folder,$rid);
264 if ($do ==
'row_edit' )
return $this->folder_edit($rid);
265 if ($do ==
'multi_delete') {
266 $ids=$oReport->get_post(
'Report-content_select',
'',
'array|int');
267 if (is_array($ids)) {
268 foreach ($ids as $no => $rid) {
269 $ok=$oDB->delete($dd_folder,$rid);
276 $folders=array(); $groups=array();
277 $data_folder=$oDB->select($dd_folder);
278 foreach ($data_folder as $no => $record) {
280 $folders[$id]=$record[
'name'];
282 $data_groups=$oDB->select($dd_groups);
283 foreach ($data_groups as $no => $record) {
285 $groups[$id] =$record[
'name'];
288 $oReport->_folders =$folders;
289 $oReport->_groups = $groups;
294 $flds[
'name'] =
'Ordner';
295 $flds[
'parent_id'] =
'Parent';
296 $flds[
'group_read'] =
'Zugriff Lesen';
298 $options_rsort[
'id'] =
'ID';
299 $options_rsort[
'name'] =
'Ortner';
302 $data[
'dbx_rrows']= 100;
303 $data[
'dbx_rsort']=
'id';
305 $oReport->init(
'report-folder-flat');
306 $oReport->_data=$data;
308 $oReport->_action=
'?dbx_modul=dbxContent_admin&dbx_run1=content&dbx_run2=list_folder';
309 $oReport->_options_rsort = $options_rsort;
310 $oReport->_but_pagination =9;
311 $oReport->_create_row_select=1;
312 $oReport->_create_row_edit =1;
313 $oReport->_create_row_delete=1;
314 $oReport->_tabel_tpls[
'tpl_row_edit'] =
'table_row_modal-edit';
315 $oReport->_tabel_tpls[
'tpl_row_delete'] =
'modul|confirm_row_delete_folder';
316 $oReport->_confirm_delete=
'modul|confirm-delete-methode';
317 $oReport->_msg_info =
'';
320 $add[
'dbx_get']=
'?dbx_modul=dbxContent_admin&dbx_run1=content&dbx_run2=new_folder';
321 $add[
'label']=
'Neuer Content Ordner';
322 $add[
'title']=
'Neuer Content Ordner';
323 $oReport->add_obj(
'add_folder',
'button-modal1',$add);
325 $oReport->add_action(
'rows_delete' ,
'action_button_delete' ,
'&dbx_run2=multi_delete');
326 $oReport->add_action(
'rows_activate' ,
'action_button_activate' ,
'&dbx_run2=multi_activate');
327 $oReport->add_action(
'rows_deactivate',
'action_button_deactivate',
'&dbx_run2=multi_deactivate');
329 $work=$oReport->get_sel(
'dbx_run2');
330 $rid =$oReport->get_sel(
'rid',0,
'int');
333 if($oReport->submit()) {
334 if(!$oReport->errors()) {
335 $work=$oReport->get_post(
'dbx_run2');
336 $oReport->_msg_success =
'';
338 $oReport->_msg_err =
'Prüfen sie bitte ihre Eingaben';
344 $rwhere=$oReport->get_sel(
'dbx_rwhere',
'');
345 $rrows =$oReport->get_sel(
'dbx_rrows',10);
346 $rpos =$oReport->get_sel(
'dbx_rpos',0);
347 $rsort =$oReport->get_sel(
'dbx_rsort',
'id');
348 $rdesc =$oReport->get_sel(
'dbx_rdesc',
'ASC');
350 if ($rwhere) $rwhere=
"title LIKE '$rwhere%' ";
351 $oReport->_rcount=$oDB->count($dd_folder,$rwhere);
352 $oReport->_rdata =$oDB->select($dd_folder,$rwhere,$flds,$rsort,$rdesc,$rgroup,$rrows,$rpos);
354 $content=$oReport->run(1,$flds,
'table');
363 private function folder_edit($fid=0) {
365 $content=$obj->
run();
370 private function folder_delete() {
371 $fid=dbx()->get_request_var(
'id',0,
'int');
372 return "Delete Folder ($fid)";
379 public function run($work=
'') {
380 if (!$work) $work=
dbx()->get_request_var(
'dbx_run2',
'flat');
381 $content=
"Modul dbxContent_admin work($work) not defined";
385 $content=$this->report_folder_flat();
388 $content=$this->report_folder_flat();
391 $content=$this->report_folder_flat();
394 $content=$this->folder_edit();
397 $content=$this->folder_edit();
make_select_data($data, $id, $name, $parent='')
Gemeinsame Basisklasse fuer dbXapp-System-, Modul- und Include-Objekte.
$_record
Aktueller Datensatz im Body-Lauf.
get_select_tpl($modul, $pfx='')
DBX schema administration.