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
|
<?php
namespace Wcms;
class Modelhome extends Modelpage
{
public function __construct() {
parent::__construct();
}
public function optinit($table)
{
$opt = new Opt(Page::classvarlist());
$opt->setcol(['id', 'tag', 'linkfrom', 'linkto', 'description', 'title', 'datemodif', 'datecreation', 'date', 'secure', 'authors', 'visitcount', 'editcount', 'affcount']);
$opt->settaglist($table);
$opt->setauthorlist($table);
$opt->submit();
return $opt;
}
/**
* Initialise Optlist object using
*
* @param array $table the list of all pages objects
*
* @return Optlist Object initialized
*/
public function Optlistinit(array $table)
{
$optlist = new Optlist(Page::classvarlist());
$optlist->settaglist($table);
$optlist->setauthorlist($table);
return $optlist;
}
/**
* @param array $table
* @param Opt $opt
*/
public function table2($table, $opt)
{
$filtertagfilter = $this->filtertagfilter($table, $opt->tagfilter(), $opt->tagcompare());
$filterauthorfilter = $this->filterauthorfilter($table, $opt->authorfilter(), $opt->authorcompare());
$filtersecure = $this->filtersecure($table, $opt->secure());
$filter = array_intersect($filtertagfilter, $filtersecure, $filterauthorfilter);
$table2 = [];
$table2invert = [];
foreach ($table as $page) {
if (in_array($page->id(), $filter)) {
$table2[] = $page;
} else {
$table2invert[] = $page;
}
}
if (!empty($opt->invert())) {
$table2 = $table2invert;
}
$this->pagelistsort($table2, $opt->sortby(), $opt->order());
if($opt->limit() !== 0) {
$table2 = array_slice($table2, 0, $opt->limit());
}
return $table2;
}
/**
* @param array array of the columns to show from the user
*
* @return array assoc each key columns to a boolean value to show or not
*/
public function setcolumns(array $columns) : array
{
foreach (Model::COLUMNS as $col) {
if(in_array($col, $columns)) {
$showcols[$col] = true;
} else {
$showcols[$col] = false;
}
}
return $showcols;
}
}
?>
|