2namespace dbx\dbxContent_admin;
3dbx()->get_system_obj(
'dbxReport',
'use');
5use dbx\dbxContent\dbxContent_permalink;
7require_once dirname(__DIR__, 2) .
'/dbxContent/include/dbxContent_bootstrap_sync.php';
16 private function get_folder_matrix() {
17 $folder_matrix=
dbx()->get_modul_var(
'folder_matrix',
'');
18 if (is_array($folder_matrix))
return $folder_matrix;
19 $folder_matrix=array();
20 $db=
dbx()->get_system_obj(
'dbxDB');
21 $root =
dbx()->get_modul_var(
'tree_root',0);
22 $lng =
dbx()->get_system_var(
'dbx_lng',
'de');
23 $tab = function_exists(
'dbx_lng_name') ? dbx_lng_name(
'content_folder', $lng) : (
'content_folder_' . $lng);
26 $folders=
$db->select($tab,
'',
'id,parent_id');
27 if (is_array($folders)) {
29 foreach ($folders as $no => $record) {
30 $id=
'f_'.$record[
'id'];
31 $pa=$record[
'parent_id'];
33 $folder_matrix[$id]=$pa;
37 dbx()->set_modul_var(
'folder_matrix',$folder_matrix);
38 return $folder_matrix;
42 private function get_folder_level($folder,
$root=0) {
44 $folder_matrix=$this->get_folder_matrix();
46 while ($folder !=
$root) :
49 if (isset($folder_matrix[$folder])) $pa=$folder_matrix[$folder];
50 if ($pa !=
$root && $pa > 0) {
64 private function get_folder_name($id) {
69 $l=0; $folder =
"(0) /";
72 if (isset($folders[$id])) {
73 $folder_name=$folders[$id];
75 $l=($this->get_folder_level($id,0) +1);
76 $folder =
"($id) | $folder_name | ($l)";
82 $folder=0; $level=0; $sorter=
''; $permalink=
'';
85 if (isset($record[
'parent_id'])) $folder =$record[
'id'];
86 if (isset($record[
'folder'])) $folder =$record[
'folder'];
87 if (isset($record[
'sorter'])) $sorter =$record[
'sorter'];
89 if ($folder) $level=$this->get_folder_level($folder);
91 if (!isset($record[
'parent_id'])) {
92 if (isset($record[
'folder'])) $record[
'folder_name'] = $this->get_folder_name($record[
'folder']);
94 $record[
'sort']=$sorter;
95 $record[
'l'] =($level +1);
96 $record[
'perma']=($permalink);
97 $this->_record=$record;
111 $this->oTPL =
dbx()->get_system_obj(
'dbxTPL');
116 $select_data=array();
117 $select_data[0]=
'/ ';
118 if (is_array($data)) {
119 foreach ($data as $no => $record) {
120 if (is_array($record)) {
121 if ( isset($record[$id]) && isset($record[$name]) ) {
124 if ($parent && isset($record[$parent])) {
125 $pid=$record[$parent];
126 if ($pid==$xid) $pid=0;
129 foreach ($data as $no2 => $rec2) {
130 if ($rec2[$id]==$pid) {
131 $xna=$rec2[$name].
' -> '.$xna;
140 $select_data[$xid]=$xna;
159 private function report_content_tree() {
166 $db =
dbx()->get_system_obj(
'dbxDB');
167 $lng =
dbx()->get_modul_var(
'lng',
'de');
169 $tab_content=dbx_lng_name(
'content', $lng);
170 $tab_folder = dbx_lng_name(
'content_folder', $lng);
172 $data_folder=
$db->select($tab_folder);
178 $data[
'root']=
dbx()->get_session_var(
'content_tree_root',0);
180 $oForm=
dbx()->get_system_obj(
'dbxForm');
181 $oForm->init(
'form-content-tree');
183 $oForm->_action=
'?dbx_modul=dbxContent_admin&dbx_run1=tree';
185 $oForm->_fld_change_state=
'*';
186 $oForm->add_fld(
'root',
'select-single-label',rules:
'array|int', label:
'Auswahl Content Root',options: $data_folder);
187 $oForm->add_obj(
'submit',
'dbx|button-submit',label:
'Auswahl');
190 if($oForm->submit()) {
192 if(!$oForm->errors()) {
194 $root=$oForm->_post[
'root'];
195 dbx()->set_session_var(
'content_tree_root',
$root);
200 $root=dbx()->get_session_var(
'content_tree_root',0);
202 dbx()->set_modul_var(
'fid',
$root);
204 $folder=$this->report_content_folder(1);
205 $tree =$this->get_content_tree(
$root);
206 $files =$this->report_content_files();
208 $oForm->add_obj(
'folder',
'obj-value',$folder);
213 $oForm->add_obj(
'tree' ,
'obj-value',$tree);
214 $oForm->add_obj(
'files',
'obj-value',$files);
215 $oForm->add_obj(
'modal',
'obj-value',$modal);
217 $oForm->add_js_call(
'',
'tree');
218 $content=$oForm->run();
225 private function get_content_tree(
$root) {
226 $i = dbx()->next_id();
227 dbx()->set_modul_var(
'fid',
$root);
228 $tree=$this->oTPL->get_tpl(
'modul',
'report-content-tree',
"fid=$root&l=0",
'htm',$i);
236 private function report_content_flat() {
237 $oDB = dbx()->get_system_obj(
'dbxDB');
238 $lng = dbx()->get_modul_var(
'lng',
'de');
239 $rid = dbx()->get_modul_var(
'rid',0,
'int');
241 $tab_content=dbx_lng_name(
'content', $lng);
242 $tab_folder = dbx_lng_name(
'content_folder', $lng);
243 $tab_groups =
'dbxUser_groups';
246 $form_id =
'Report-Content-flat';
248 $oReport->init($form_id);
251 $do=dbx()->get_modul_var(
'dbx_run3');
252 if ($do ==
'row_edit' && $rid) {
253 $obj=dbx()->get_include_obj(
'dbxContent_view');
254 $modal_content=$obj->run();
255 return $modal_content;
258 if ($do ==
'row_delete' && $rid) {
259 $ok=$oDB->delete($tab_content,$rid);
260 if ( $ok) $oReport->_msg_success =
'Zeile gelöscht';
261 if (!$ok) $oReport->_msg_error =
'Zeile konnte nicht gelöscht werden';
265 $tab_content=dbx_lng_name(
'content', $lng);
266 $tab_folder = dbx_lng_name(
'content_folder', $lng);
267 $tab_groups =
'dbxUser_groups';
269 $folders=array(); $groups=array();
270 $data_folder=$oDB->select($tab_folder);
271 foreach ($data_folder as $no => $record) {
273 $folders[$id]=$record[
'name'];
275 $data_groups=$oDB->select($tab_groups);
276 foreach ($data_groups as $no => $record) {
277 $id =$record[
'name'];
278 $groups[$id] =$record[
'description'];
281 $oReport->_folders =$folders;
282 $oReport->_groups = $groups;
288 $flds[
'permalink'] =
'Permalink';
289 $flds[
'title'] =
'Titel';
290 $flds[
'folder_name']=
'ID | Ordner | Level';
291 $flds[
'group_read'] =
'Zugriff';
292 $flds[
'activ'] =
'Aktiv';
293 $flds[
'hits'] =
'Hits';
295 $options_rsort[
'id'] =
'ID';
296 $options_rsort[
'folder'] =
'Ortner';
297 $options_rsort[
'title'] =
'Titel';
299 $data[
'dbx_rrows']= 10;
300 $data[
'dbx_rsort']=
'id';
303 $oReport->_data = $data;
304 $oReport->_action =
'?dbx_modul=dbxContent_admin&dbx_run1=flat';
305 $oReport->_options_rsort = $options_rsort;
306 $oReport->_but_pagination = 9;
307 $oReport->_create_row_select= 1;
308 $oReport->_create_row_edit = 1;
309 $oReport->_create_row_delete= 1;
311 $oReport->_msg_info =
'';
313 $oReport->add_action(
'rows_delete' ,
'action_button_delete' ,
'&dbx_run2=multi_delete');
314 $oReport->add_action(
'rows_activate' ,
'action_button_activate' ,
'&dbx_run2=multi_activate');
315 $oReport->add_action(
'rows_deactivate',
'action_button_deactivate',
'&dbx_run2=multi_deactivate');
321 if($oReport->submit()) {
322 if(!$oReport->errors()) {
323 $work=$oReport->get_post(
'dbx_run2');
324 if ($work ==
'multi_delete') {
325 $ids=$oReport->get_post(
'Report-content_select',
'',
'array|int');
326 if (is_array($ids)) {
327 foreach ($ids as $no => $id) {
332 $oReport->_msg_success =
'';
334 $oReport->_msg_error =
'Prüfen sie bitte ihre Eingaben';
340 $rwhere=$oReport->get_sel(
'dbx_rwhere',
'');
341 $rrows =$oReport->get_sel(
'dbx_rrows',10);
342 $rpos =$oReport->get_sel(
'dbx_rpos',0);
343 $rsort =$oReport->get_sel(
'dbx_rsort',
'id');
344 $rdesc =$oReport->get_sel(
'dbx_rdesc',
'ASC');
346 if ($rwhere) $rwhere=
"title LIKE '%$rwhere%' ";
349 $flds2[
'folder']=
'folder';
350 $oReport->_rcount=$oDB->count($tab_content,$rwhere);
351 $oReport->_rdata =$oDB->select($tab_content,$rwhere,$flds2,$rsort,$rdesc,$rgroup,$rrows,$rpos);
353 $content=$oReport->run(1,$flds,
'table');
363 private function report_content_folder(
$root=0) {
367 $db = dbx()->get_system_obj(
'dbxDB');
369 $lng = dbx()->get_system_var(
'dbx_lng',
'de');
371 $tab_content=dbx_lng_name(
'content', $lng);
372 $tab_folder = dbx_lng_name(
'content_folder', $lng);
374 $folder =dbx()->get_modul_var(
'fid',0,
'int');
377 $flds[
'parent_id'] =
'Parent';
378 $flds[
'name'] =
'Ordner';
379 $flds[
'group_read'] =
'Lesen';
380 $flds[
'group_write'] =
'Schreiben';
381 $flds[
'group_delete'] =
'Löschen';
383 $data[
'dbx_rrows']= 1000;
384 $data[
'dbx_rsort']=
'name';
386 if (!
$root) $where_folder =
"parent_id = $folder";
387 if (
$root) $where_folder =
"id = $folder";
390 if ( $folder) $rdata =
$db->select($tab_folder,$where_folder,
'*',
'name');
393 $rdata[0][
'name']=
'/ (root)';
398 $oReport->init(
'report-content-folder');
399 $oReport->_data = $data;
400 $oReport->_rdata = $rdata;
401 $oReport->_rcount= count($rdata);
402 $oReport->_create_sel_flds=0;
404 if ($oReport->_rcount) {
405 $content=$oReport->run(0);
412 private function report_content_files() {
414 $db = dbx()->get_system_obj(
'dbxDB');
415 $lng = dbx()->get_modul_var(
'lng',
'de');
417 $tab_content=dbx_lng_name(
'content', $lng);
418 $folder=dbx()->get_modul_var(
'fid',-1,
'int');
419 if ($folder < 0)
return 'no access';
422 $flds[
'sorter'] =
'Seq';
423 $flds[
'title'] =
'Titel';
424 $flds[
'folder'] =
'Ordner';
425 $flds[
'permalink'] =
'Permalink';
427 $data[
'dbx_rrows']= 25;
428 $data[
'dbx_rsort']=
'sorter';
430 $rwhere =
"folder = $folder";
431 $rcount=
$db->count($tab_content,$rwhere);
432 $rdata =
$db->select($tab_content,$rwhere,$flds,
'sorter');
436 $oReport->
init(
'report-content-files');
437 $oReport->_data=$data;
438 $oReport->_create_sel_flds=0;
439 $oReport->_rcount=$rcount;
440 $oReport->_rdata =$rdata;
444 $oReport->add_obj(
'folder_file',
'modul|folder_files');
445 $content=
"<li>($rcount) Einträge Ordner ($folder)</li>";
446 $content=$oReport->run(0,$flds);
448 $content=
"<ul><li>Keine Einträge Ordner ($folder)</li></ul>";
458 private function report_content_folder_files() {
461 $db = dbx()->get_system_obj(
'dbxDB');
463 $lng = dbx()->get_system_var(
'dbx_lng',
'de');
465 $tab_content=dbx_lng_name(
'content', $lng);
466 $tab_folder = dbx_lng_name(
'content_folder', $lng);
468 $root =dbx()->get_modul_var(
'fid',0,
'int');
469 $folder=dbx()->get_system_var(
'tree_folder',0);
478 $flds[
'parent_id'] =
'Parent';
479 $flds[
'name'] =
'Ordner';
480 $flds[
'sorter'] =
'Seq';
481 $flds[
'group_read'] =
'Lesen';
483 $data[
'dbx_rrows']= 1000;
484 $data[
'dbx_rsort']=
'name';
486 if (!$folder) $where_folder =
"parent_id = $root";
487 if ( $folder) $where_folder =
"id = $root";
489 $data_folder =
$db->select($tab_folder,$where_folder,
'*',
'name');
494 $oReport->init(
'report-content-folder-files');
495 $oReport->_data = $data;
496 $oReport->_rdata = $data_folder;
497 $oReport->_rcount= count($data_folder);
498 $oReport->_create_sel_flds=0;
501 if ($oReport->_rcount) {
502 $content=$oReport->run(0,$flds);
512 $rid=
dbx()->get_modul_var(
'rid',0);
514 $db =
dbx()->get_system_obj(
'dbxDB');
515 $lng =
dbx()->get_modul_var(
'lng',
'de');
517 $tab_content=dbx_lng_name(
'content', $lng);
518 $tab_folder = dbx_lng_name(
'content_folder', $lng);
521 $data[
'folder']=$rid;
522 $data[
'title'] =
'Neuer Content';
523 $data[
'permalink'] = dbxContent_permalink::build(
$db, $tab_folder, $rid, $data[
'title']);
524 $data[
'group_read'] =
'admin';
525 $data[
'template'] =
'c-content';
526 $ok=
$db->save($tab_content,$data,0);
532 $rid=
dbx()->get_modul_var(
'rid',0);
536 $db =
dbx()->get_system_obj(
'dbxDB');
537 $lng =
dbx()->get_modul_var(
'lng',
'de');
538 $tab_content=dbx_lng_name(
'content', $lng);
540 $ok=
$db->delete($tab_content,$rid,1);
556 public function run($action=
'flat') {
557 $content=
'Modul dbxContent_admin action('.
dbx()->html($action).
') not defined';
561 $content=$this->report_content_flat();
564 $content=$this->report_content_tree();
567 $content=$this->report_content_folder();
570 $content=$this->report_content_files();
573 $content=$this->report_content_folder_files();
init($fid, $tpl='', $first_page_lines=-1, $next_page_lines=-1, $current_line=-1)
$_record
Aktueller Datensatz im Body-Lauf.
make_select_data($data, $id, $name, $parent='')
DBX schema administration.