Issues (762)

setup/db-repair.php (1 issue)

1
<?php
2
3
/**
4
 * Copyright (c) 2018 Justin Kuenzel (jukusoft.com)
5
 *
6
 * Licensed under the Apache License, Version 2.0 (the "License");
7
 * you may not use this file except in compliance with the License.
8
 * You may obtain a copy of the License at
9
 *
10
 *     http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing, software
13
 * distributed under the License is distributed on an "AS IS" BASIS,
14
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
 * See the License for the specific language governing permissions and
16
 * limitations under the License.
17
 */
18
19
20
/**
21
 * This file creates / upgrades database structure
22
 */
23
24
//define root path
25
define('ROOT_PATH', dirname(__FILE__) . "/../");
26
27
define('INSTALL_SCRIPT', true);
28
29
error_reporting(E_ALL);
30
31
if (PHP_MAJOR_VERSION < 7) {
32
	echo "CMS is required PHP 7.0.0 or greater! Please install PHP 7 (current version: " . PHP_VERSION . ").";
33
	exit;
34
}
35
36
//define some constants
37
define('CACHE_PATH', ROOT_PATH . "cache/");
38
define('CONFIG_PATH', ROOT_PATH . "config/");
39
define('STORE_PATH', ROOT_PATH . "store/");
40
41
//include and load ClassLoader
42
require(ROOT_PATH . "system/core/classes/classloader.php");
43
ClassLoader::init();
44
45
//require config
46
require(ROOT_PATH . "config/config.php");
47
48
//initialize cache
49
Cache::init();
50
51
//initialize database
52
Database::getInstance();
53
54
/**
55
 * create database schema here
56
 */
57
58
/**
59
 * test table to check upgrade system
60
 */
61
62
echo "Create / Upgrade table <b>test</b>...<br />";
63
64
//create or upgrade test table
65
$table = new DBTable("test", Database::getInstance());
66
$table->setEngine("InnoDB");
67
$table->setCharset("utf8");
68
69
//add int coloum with length 10, NOT NULL and AUTO_INCREMENT
70
$table->addInt("id", 11, true, true);
71
$table->addVarchar("name", 255, true);
72
$table->addVarchar("value", 255, true);
73
$table->addInt("activated", 10, true, false, "1");
74
75
//add keys to table
76
$table->addPrimaryKey("id");
77
$table->addUnique("name", "UNIQUE_NAME");
78
$table->addIndex("activated", "ix_activated");
79
80
//create or upgrade table
81
$table->upgrade();
82
83
echo "Finished!<br />";
84
85
/**
86
 * test table to check upgrade system with added column, removed column and changed column
87
 */
88
89
echo "Create / Upgrade table <b>test</b>...<br />";
90
91
//create or upgrade test table
92
$table = new DBTable("test", Database::getInstance());
93
$table->setEngine("InnoDB");
94
$table->setCharset("utf8");
95
96
//add int coloum with length 10, NOT NULL and AUTO_INCREMENT
97
$table->addInt("id", 11, true, true);
98
//$table->addVarchar("name", 255, true);
99
$table->addVarchar("name2", 255, true);
100
$table->addVarchar("value", 200, false);
101
$table->addInt("activated", 10, true, false, "1");
102
103
//add keys to table
104
$table->addPrimaryKey("id");
105
$table->addUnique("name", "UNIQUE_NAME");
106
$table->addIndex("activated", "ix_activated");
107
108
//create or upgrade table
109
$table->upgrade();
110
111
echo "Finished!<br />";
112
113
/**
114
 * table EVENTS
115
 */
116
117
echo "Create / Upgrade table <b>events</b>...<br />";
118
119
//create or upgrade test table
120
$table = new DBTable("events", Database::getInstance());
121
$table->setEngine("InnoDB");
122
$table->setCharset("utf8");
123
124
//add int coloum with length 10, NOT NULL and AUTO_INCREMENT
125
$table->addInt("id", 11, true, true);
126
$table->addVarchar("name", 255, true);
127
$table->addEnum("type", array("FILE", "FUNCTION", "CLASS_STATIC_METHOD", ""), true);
128
$table->addVarchar("file", 255, false, "NULL");
129
$table->addVarchar("class_name", 255, true, "");
130
$table->addVarchar("class_method", 255, true, "");
131
$table->addVarchar("created_from", 255, true);
132
$table->addInt("activated", 10, true, false, "1");
133
134
//add keys to table
135
$table->addPrimaryKey("id");
136
$table->addUnique(array("name", "file", "class_name", "class_method"), "UNIQUE_EVENTS");
137
$table->addIndex(array("name", "activated"), "name");
138
139
//create or upgrade table
140
$table->upgrade();
141
142
echo "Finished!<br />";
143
144
/**
145
 * table DOMAIN
146
 */
147
148
echo "Create / Upgrade table <b>domain</b>...<br />";
149
150
//create or upgrade test table
151
$table = new DBTable("domain", Database::getInstance());
152
$table->setEngine("InnoDB");
153
$table->setCharset("utf8");
154
155
//add int coloum with length 10, NOT NULL and AUTO_INCREMENT
156
$table->addInt("id", 10, true, true);
157
$table->addVarchar("domain", 255, true);
158
$table->addInt("alias", 10, true, false, "-1");
159
$table->addVarchar("home_page", 255, true, "home");
160
$table->addEnum("wildcard", array("YES", "NO"), true, "NO");
161
$table->addInt("styleID", 10, true, false, "-1");
162
$table->addVarchar("redirect_url", 255, true, "none");#
163
$table->addInt("redirect_code", 10, true, false, "301");
164
$table->addVarchar("base_dir", 255, true, "/");
165
$table->addInt("force_ssl", 10, true, false, "0");//if 1 then all http urls would be rewritten to https urls
166
$table->addTimestamp("lastUpdate", true, "CURRENT_TIMESTAMP");
167
$table->addInt("activated", 10, true, false, "1");
168
169
//add keys to table
170
$table->addPrimaryKey("id");
171
$table->addUnique("domain");
172
$table->addIndex("alias");
173
174
//create or upgrade table
175
$table->upgrade();
176
177
echo "Finished!<br />";
178
179
/**
180
 * table global_settings
181
 *
182
 * Package: com.jukusoft.cms.settings
183
 */
184
185
echo "Create / Upgrade table <b>global_settings</b>...<br />";
186
187
//create or upgrade test table
188
$table = new DBTable("global_settings", Database::getInstance());
189
$table->setEngine("InnoDB");
190
$table->setCharset("utf8");
191
192
//add int coloum with length 10, NOT NULL and AUTO_INCREMENT
193
$table->addVarchar("key", 255, true);
194
$table->addText("value", true);
195
$table->addVarchar("title", 255, true);
196
$table->addVarchar("description", 600, true);
197
$table->addVarchar("visible_permission", 255, true, "can_see_global_settings");
198
$table->addVarchar("change_permission", 255, true, "can_change_global_settings");
199
$table->addVarchar("owner", 255, true, "system");
200
$table->addInt("order", 10, true, false, 10);
201
$table->addVarchar("icon_path", 600, true, "none");
202
$table->addTimestamp("last_update", true, "0000-00-00 00:00:00", true);
203
$table->addVarchar("datatype", 255, true, "DataType_String");
204
$table->addText("datatype_params", true);
205
$table->addInt("editable", 10, true, false, 1);
206
$table->addVarchar("category", 255, true, "general");
207
$table->addInt("activated", 10, true, false, 1);
208
209
//add keys to table
210
$table->addPrimaryKey("key");
211
$table->addIndex("last_update");
212
$table->addIndex("activated");
213
214
//create or upgrade table
215
$table->upgrade();
216
217
echo "Finished!<br />";
218
219
/**
220
 * table global_settings_category
221
 *
222
 * Package: com.jukusoft.cms.settings
223
 */
224
225
echo "Create / Upgrade table <b>global_settings_category</b>...<br />";
226
227
//create or upgrade test table
228
$table = new DBTable("global_settings_category", Database::getInstance());
229
$table->setEngine("InnoDB");
230
$table->setCharset("utf8");
231
232
//add int coloum with length 10, NOT NULL and AUTO_INCREMENT
233
$table->addVarchar("category", 255, true);
234
$table->addVarchar("title", 255, true);
235
$table->addVarchar("owner", 255, true, "system");
236
$table->addInt("order", 10, true, false, 10);
237
238
//add keys to table
239
$table->addPrimaryKey("category");
240
$table->addIndex("order");
241
242
//create or upgrade table
243
$table->upgrade();
244
245
echo "Finished!<br />";
246
247
/**
248
 * table api_methods
249
 *
250
 * Package: com.jukusoft.cms.apimethods
251
 */
252
253
echo "Create / Upgrade table <b>api_methods</b>...<br />";
254
255
//create or upgrade test table
256
$table = new DBTable("api_methods", Database::getInstance());
257
$table->setEngine("InnoDB");
258
$table->setCharset("utf8");
259
260
//add int coloum with length 10, NOT NULL and AUTO_INCREMENT
261
$table->addVarchar("api_method", 255, true);
262
$table->addVarchar("classname", 255, true);
263
$table->addVarchar("method", 255, true);
264
$table->addVarchar("response_type", 255, true, "application/json");
265
$table->addVarchar("owner", 255, true, "system");
266
$table->addInt("activated", 10, true, false, 1);
267
268
//add keys to table
269
$table->addPrimaryKey("api_method");
270
$table->addIndex("activated");
271
272
//create or upgrade table
273
$table->upgrade();
274
275
echo "Finished!<br />";
276
277
/**
278
 * table robots
279
 *
280
 * Package: com.jukusoft.cms.robots
281
 */
282
283
echo "Create / Upgrade table <b>robots</b>...<br />";
284
285
//create or upgrade test table
286
$table = new DBTable("robots", Database::getInstance());
287
$table->setEngine("InnoDB");
288
$table->setCharset("utf8");
289
290
//add int coloum with length 10, NOT NULL and AUTO_INCREMENT
291
$table->addVarchar("useragent", 255, true);
292
$table->addEnum("option", array("ALLOW", "DISALLOW", "SITEMAP", "CRAWL-DELAY"), true, "ALLOW");
293
$table->addVarchar("value", 255, true);
294
$table->addInt("activated", 10, true, false, 1);
295
296
//add keys to table
297
$table->addPrimaryKey(array("useragent", "value"));
298
$table->addIndex("activated");
299
300
//create or upgrade table
301
$table->upgrade();
302
303
echo "Finished!<br />";
304
305
/**
306
 * table folder
307
 *
308
 * Package: com.jukusoft.cms.folder
309
 */
310
311
echo "Create / Upgrade table <b>folder</b>...<br />";
312
313
//create or upgrade test table
314
$table = new DBTable("folder", Database::getInstance());
315
$table->setEngine("InnoDB");
316
$table->setCharset("utf8");
317
318
//add int coloum with length 10, NOT NULL and AUTO_INCREMENT
319
$table->addVarchar("folder", 255, true);
320
$table->addVarchar("force_template", 255, true, "none");
321
$table->addInt("main_menu", 10, true, false, -1);
322
$table->addInt("local_menu", 10, true, false, -1);
323
$table->addVarchar("permissions", 600, true, "none");
324
$table->addInt("title_translation_support", 10, true, false, 1);
325
$table->addInt("hidden", 10, true, false, 0);
326
$table->addInt("activated", 10, true, false, 1);
327
328
//add keys to table
329
$table->addPrimaryKey("folder");
330
$table->addIndex("activated");
331
332
//create or upgrade table
333
$table->upgrade();
334
335
echo "Finished!<br />";
336
337
/**
338
 * table style_rules
339
 *
340
 * Package: com.jukusoft.cms.style
341
 */
342
343
echo "Create / Upgrade table <b>style_rules</b>...<br />";
344
345
//create or upgrade test table
346
$table = new DBTable("style_rules", Database::getInstance());
347
$table->setEngine("InnoDB");
348
$table->setCharset("utf8");
349
350
//add int coloum with length 10, NOT NULL and AUTO_INCREMENT
351
$table->addInt("rule_id", 10, true, true);
352
$table->addEnum("type", array("DOMAIN", "FOLDER", "MEDIA", "PREF_LANG", "SUPPORTED_LANG"), true);
353
$table->addVarchar("expected_value", 255, true);
354
$table->addVarchar("style_name", 255, true);
355
$table->addInt("parent", 10, true, false, "-1");
356
$table->addInt("order", 10, true, false, 1);
357
$table->addInt("activated", 10, true, false, 1);
358
359
//add keys to table
360
$table->addPrimaryKey("rule_id");
361
$table->addIndex("activated");
362
363
//create or upgrade table
364
$table->upgrade();
365
366
echo "Finished!<br />";
367
368
/**
369
 * table supported_languages
370
 *
371
 * Package: com.jukusoft.cms.style
372
 */
373
374
echo "Create / Upgrade table <b>supported_languages</b>...<br />";
375
376
//create or upgrade test table
377
$table = new DBTable("supported_languages", Database::getInstance());
378
$table->setEngine("InnoDB");
379
$table->setCharset("utf8");
380
381
//add int coloum with length 10, NOT NULL and AUTO_INCREMENT
382
$table->addVarchar("lang_token", 255, true);
383
$table->addVarchar("title", 255, true);
384
385
//add keys to table
386
$table->addPrimaryKey("lang_token");
387
388
//create or upgrade table
389
$table->upgrade();
390
391
echo "Finished!<br />";
392
393
/**
394
 * table pages
395
 *
396
 * Package: com.jukusoft.cms.page
397
 */
398
399
echo "Create / Upgrade table <b>pages</b>...<br />";
400
401
//create or upgrade test table
402
$table = new DBTable("pages", Database::getInstance());
403
$table->setEngine("InnoDB");
404
$table->setCharset("utf8");
405
406
//add int coloum with length 10, NOT NULL and AUTO_INCREMENT
407
$table->addInt("id", 10, true, true);
408
$table->addVarchar("alias", 255, true);
409
$table->addVarchar("title", 255, true);
410
$table->addText("content", true, "");
411
$table->addVarchar("content_type", 255, true, "text/html");
412
$table->addInt("redirect_code", 10, true, false, "301");
413
$table->addInt("parent", 10, true, false, -1);
414
$table->addVarchar("folder", 255, true, "/");
415
$table->addInt("global_menu", 10, true, false, -1);
416
$table->addInt("local_menu", 10, true, false, -1);
417
$table->addVarchar("page_type", 255, true, "HTMLPage");
418
$table->addVarchar("design", 255, true, "none");
419
$table->addInt("sitemap", 10, true, false, 1);//should page be shown in sitemap?
420
$table->addEnum("sitemap_changefreq", array("ALWAYS", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "NEVER"), true, "weekly");
421
$table->addDecimal("sitemap_priority", 5, 2, true, "0.5");
0 ignored issues
show
'0.5' of type string is incompatible with the type null|integer expected by parameter $default_value of DBTable::addDecimal(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

421
$table->addDecimal("sitemap_priority", 5, 2, true, /** @scrutinizer ignore-type */ "0.5");
Loading history...
422
$table->addInt("published", 10, true, false, 0);
423
$table->addInt("version", 10, true, false, 1);
424
$table->addTimestamp("last_update", true, "0000-00-00 00:00:00", true);
425
$table->addTimestamp("created", true, "0000-00-00 00:00:00", false);
426
$table->addInt("editable", 10, true, false, 1);
427
$table->addInt("deletable", 10, true, false, 1);
428
$table->addInt("author", 10, true, false, -1);
429
$table->addVarchar("can_see_permissions", 255, true, "none");
430
$table->addVarchar("template", 255, true, "none");
431
$table->addInt("sidebar_left", 10, true, false, -1);
432
$table->addInt("sidebar_right", 10, true, false, -1);
433
$table->addVarchar("meta_description", 600, true, "");
434
$table->addVarchar("meta_keywords", 255, true, "");
435
$table->addVarchar("meta_robots", 255, true, "");//none means not set
436
$table->addVarchar("meta_canonicals", 255, true, "");
437
$table->addInt("locked_by", 10, true, false, -1);
438
$table->addTimestamp("locked_timestamp", true, "0000-00-00 00:00:00");
439
$table->addVarchar("og_type", 50, true, "website");
440
$table->addVarchar("og_title", 50, true, "");
441
$table->addVarchar("og_description", 255, true, "");
442
$table->addVarchar("og_image", 600, true, "");
443
$table->addInt("activated", 10, true, false, 1);
444
445
//add keys to table
446
$table->addPrimaryKey("id");
447
$table->addUnique("alias");
448
$table->addIndex("folder");
449
450
//create or upgrade table
451
$table->upgrade();
452
453
echo "Finished!<br />";
454
455
/**
456
 * table page_types
457
 *
458
 * Package: com.jukusoft.cms.page
459
 */
460
461
echo "Create / Upgrade table <b>page_types</b>...<br />";
462
463
//create or upgrade test table
464
$table = new DBTable("page_types", Database::getInstance());
465
$table->setEngine("InnoDB");
466
$table->setCharset("utf8");
467
468
//fields
469
$table->addVarchar("page_type", 255, true);
470
$table->addVarchar("title", 255, true);
471
$table->addVarchar("create_permissions", 255, true, "none");//list with permissions (OR), one of this permissions is required to create pages with this page type
472
$table->addInt("advanced", 10, true, false, 0);//flag, if page type is only shown in expert (advanced) mode
473
$table->addVarchar("owner", 255, true, "system");
474
$table->addInt("order", 10, true, false, 10);//order in admin area on page creation selection
475
$table->addInt("activated", 10, true, false, 1);
476
477
//add keys to table
478
$table->addPrimaryKey("page_type");
479
$table->addIndex("advanced");
480
$table->addIndex("activated");
481
482
//create or upgrade table
483
$table->upgrade();
484
485
echo "Finished!<br />";
486
487
/**
488
 * table menu_names
489
 *
490
 * Package: com.jukusoft.cms.menu
491
 */
492
493
echo "Create / Upgrade table <b>menu_names</b>...<br />";
494
495
//create or upgrade test table
496
$table = new DBTable("menu_names", Database::getInstance());
497
$table->setEngine("InnoDB");
498
$table->setCharset("utf8");
499
500
//fields
501
$table->addInt("menuID", 10, true, true);
502
$table->addVarchar("title", 255, true);
503
$table->addInt("editable", 10, true, false, 1);
504
$table->addVarchar("unique_name", 255, true);
505
$table->addInt("activated", 10, true, false, 1);
506
507
//add keys to table
508
$table->addPrimaryKey("menuID");
509
$table->addUnique("unique_name");
510
$table->addIndex("activated");
511
512
//create or upgrade table
513
$table->upgrade();
514
515
echo "Finished!<br />";
516
517
/**
518
 * table menu
519
 *
520
 * Package: com.jukusoft.cms.menu
521
 */
522
523
echo "Create / Upgrade table <b>menu</b>...<br />";
524
525
//create or upgrade test table
526
$table = new DBTable("menu", Database::getInstance());
527
$table->setEngine("InnoDB");
528
$table->setCharset("utf8");
529
530
//fields
531
$table->addInt("id", 10, true, true);
532
$table->addInt("menuID", 10, true, false);
533
$table->addVarchar("title", 255, true);
534
$table->addVarchar("url", 600, true);
535
$table->addVarchar("type", 255, true, "page");//page / link / url / external_link / js_link
536
$table->addVarchar("icon", 255, true, "none");
537
$table->addVarchar("permissions", 600, true, "all");
538
$table->addInt("login_required", 10, true, false, 0);
539
$table->addInt("parent", 10, true, false, -1);
540
$table->addVarchar("unique_name", 255, false, "");
541
$table->addVarchar("extensions", 255, true, "none");//for example: private messages
542
$table->addVarchar("owner", 255, true, "user");
543
$table->addInt("order", 10, true, false, 10);
544
$table->addInt("activated", 10, true, false, 1);
545
546
//add keys to table
547
$table->addPrimaryKey("id");
548
$table->addUnique("unique_name");
549
$table->addIndex("menuID");
550
$table->addIndex("order");
551
$table->addIndex("activated");
552
553
//create or upgrade table
554
$table->upgrade();
555
556
echo "Finished!<br />";
557
558
/**
559
 * table user
560
 *
561
 * Package: com.jukusoft.cms.user
562
 */
563
564
echo "Create / Upgrade table <b>user</b>...<br />";
565
566
//create or upgrade test table
567
$table = new DBTable("user", Database::getInstance());
568
$table->setEngine("InnoDB");
569
$table->setCharset("utf8");
570
571
//fields
572
$table->addInt("userID", 10, true, true);
573
$table->addVarchar("username", 255, true);
574
$table->addVarchar("password", 255, true);
575
$table->addVarchar("salt", 255, true);
576
$table->addVarchar("mail", 255, true);
577
$table->addVarchar("ip", 255, true);
578
$table->addInt("main_group", 10, true, false, "2");
579
$table->addVarchar("specific_title", 255, true, "none");
580
$table->addInt("online", 10, true, false, "0");
581
$table->addTimestamp("last_online", true, "0000-00-00 00:00:00");
582
$table->addVarchar("authentificator", 255, true, "LocalAuthentificator");
583
$table->addVarchar("owner", 255, true, "system");
584
$table->addTimestamp("registered", true, "CURRENT_TIMESTAMP");
585
$table->addInt("activated", 10, true, false, 1);
586
587
//add keys to table
588
$table->addPrimaryKey("userID");
589
$table->addUnique("username");
590
$table->addIndex("mail");
591
$table->addIndex("activated");
592
593
//create or upgrade table
594
$table->upgrade();
595
596
echo "Finished!<br />";
597
598
/**
599
 * table groups
600
 *
601
 * Package: com.jukusoft.cms.groups
602
 */
603
604
echo "Create / Upgrade table <b>groups</b>...<br />";
605
606
//create or upgrade test table
607
$table = new DBTable("groups", Database::getInstance());
608
$table->setEngine("InnoDB");
609
$table->setCharset("utf8");
610
611
//fields
612
$table->addInt("groupID", 10, true, true);
613
$table->addVarchar("name", 255, true);
614
$table->addText("description", true);
615
$table->addVarchar("color", 50, true, "#0066ff");
616
$table->addVarchar("rank_title", 255, true, "none");
617
$table->addVarchar("rank_image", 255, true, "none");
618
$table->addInt("auto_assign_regist", 10, true, false, "0");//flag, if group is automatically assigned to registered users
619
$table->addInt("system_group", 10, true, false, "0");
620
$table->addInt("show", 10, true, false, "1");//show group name on index page
621
$table->addInt("activated", 10, true, false, "1");
622
623
//https://www.w3schools.com/colors/colors_picker.asp
624
625
//add keys to table
626
$table->addPrimaryKey("groupID");
627
$table->addIndex("auto_assign_regist");
628
$table->addIndex("activated");
629
630
//create or upgrade table
631
$table->upgrade();
632
633
echo "Finished!<br />";
634
635
/**
636
 * table group_members
637
 *
638
 * Package: com.jukusoft.cms.groups
639
 */
640
641
echo "Create / Upgrade table <b>group_members</b>...<br />";
642
643
//create or upgrade test table
644
$table = new DBTable("group_members", Database::getInstance());
645
$table->setEngine("InnoDB");
646
$table->setCharset("utf8");
647
648
//fields
649
$table->addInt("groupID", 10, true, false);
650
$table->addInt("userID", 10, true, false);
651
$table->addInt("group_leader", 10, true, false, "0");
652
$table->addInt("activated", 10, false, false, "1");
653
654
//https://www.w3schools.com/colors/colors_picker.asp
655
656
//add keys to table
657
$table->addPrimaryKey(array("groupID", "userID"));
658
$table->addIndex("groupID");
659
$table->addIndex("userID");
660
$table->addIndex("group_leader");
661
$table->addIndex("activated");
662
663
//create or upgrade table
664
$table->upgrade();
665
666
echo "Finished!<br />";
667
668
/**
669
 * table css_files
670
 *
671
 * Package: com.jukusoft.cms.cssbuilder
672
 */
673
674
echo "Create / Upgrade table <b>css_files</b>...<br />";
675
676
//create or upgrade test table
677
$table = new DBTable("css_files", Database::getInstance());
678
$table->setEngine("InnoDB");
679
$table->setCharset("utf8");
680
681
//fields
682
$table->addVarchar("style", 255, true);
683
$table->addVarchar("css_file", 255, true);
684
$table->addVarchar("media", 255, true, "ALL");
685
$table->addVarchar("style_json_name", 255, true, "header");
686
$table->addInt("activated", 10, true, false, 1);
687
688
//https://www.w3schools.com/colors/colors_picker.asp
689
690
//add keys to table
691
$table->addPrimaryKey(array("style", "css_file"));
692
$table->addIndex("css_file");
693
$table->addIndex("activated");
694
695
//create or upgrade table
696
$table->upgrade();
697
698
echo "Finished!<br />";
699
700
/**
701
 * table js_files
702
 *
703
 * Package: com.jukusoft.cms.jsbuilder
704
 */
705
706
echo "Create / Upgrade table <b>js_files</b>...<br />";
707
708
//create or upgrade test table
709
$table = new DBTable("js_files", Database::getInstance());
710
$table->setEngine("InnoDB");
711
$table->setCharset("utf8");
712
713
//fields
714
$table->addVarchar("style", 255, true);
715
$table->addVarchar("js_file", 255, true);
716
$table->addVarchar("media", 255, true, "ALL");
717
$table->addVarchar("position", 255, true, "FOOTER");
718
$table->addInt("activated", 10, true, false, 1);
719
720
//https://www.w3schools.com/colors/colors_picker.asp
721
722
//add keys to table
723
$table->addPrimaryKey(array("style", "js_file"));
724
$table->addIndex("js_file");
725
$table->addIndex("activated");
726
727
//create or upgrade table
728
$table->upgrade();
729
730
echo "Finished!<br />";
731
732
/**
733
 * table permission_category
734
 *
735
 * Package: com.jukusoft.cms.permissions
736
 */
737
738
echo "Create / Upgrade table <b>permission_category</b>...<br />";
739
740
//create or upgrade test table
741
$table = new DBTable("permission_category", Database::getInstance());
742
$table->setEngine("InnoDB");
743
$table->setCharset("utf8");
744
745
//fields
746
$table->addVarchar("category", 255, true);
747
$table->addVarchar("title", 255, true);
748
$table->addVarchar("area", 255, true, "global");
749
$table->addInt("show", 10, true, false, 1);
750
$table->addInt("order", 10, true, false, 100);
751
$table->addInt("activated", 10, false, false, 1);
752
753
//https://www.w3schools.com/colors/colors_picker.asp
754
755
//add keys to table
756
$table->addPrimaryKey("category");
757
$table->addIndex("area");
758
$table->addIndex("order");
759
$table->addIndex("activated");
760
761
//create or upgrade table
762
$table->upgrade();
763
764
echo "Finished!<br />";
765
766
/**
767
 * table permissions
768
 *
769
 * Package: com.jukusoft.cms.permissions
770
 */
771
772
echo "Create / Upgrade table <b>permissions</b>...<br />";
773
774
//create or upgrade test table
775
$table = new DBTable("permissions", Database::getInstance());
776
$table->setEngine("InnoDB");
777
$table->setCharset("utf8");
778
779
//fields
780
$table->addVarchar("token", 255, true);
781
$table->addVarchar("title", 255, true);
782
$table->addVarchar("description", 600, true);
783
$table->addVarchar("category", 255, true, "general");
784
$table->addVarchar("owner", 255, true, "system");
785
$table->addInt("show", 10, true, false, 1);//flag, if permission is shown on permissions page
786
$table->addInt("order", 10, true, false, 100);
787
$table->addInt("activated", 10, true, false, 1);
788
789
//add keys to table
790
$table->addPrimaryKey("token");
791
$table->addIndex("category");
792
$table->addIndex("order");
793
$table->addIndex("activated");
794
795
//create or upgrade table
796
$table->upgrade();
797
798
echo "Finished!<br />";
799
800
/**
801
 * table group_rights
802
 *
803
 * Package: com.jukusoft.cms.permissions
804
 */
805
806
echo "Create / Upgrade table <b>group_rights</b>...<br />";
807
808
//create or upgrade test table
809
$table = new DBTable("group_rights", Database::getInstance());
810
$table->setEngine("InnoDB");
811
$table->setCharset("utf8");
812
813
//fields
814
$table->addInt("groupID", 10, true, false);
815
$table->addVarchar("token", 255, true);
816
$table->addInt("value", 10, true, false);
817
818
//add keys to table
819
$table->addPrimaryKey(array("groupID", "token"));
820
821
//create or upgrade table
822
$table->upgrade();
823
824
echo "Finished!<br />";
825
826
/**
827
 * table user_rights
828
 *
829
 * Package: com.jukusoft.cms.permissions
830
 */
831
832
echo "Create / Upgrade table <b>user_rights</b>...<br />";
833
834
//create or upgrade test table
835
$table = new DBTable("user_rights", Database::getInstance());
836
$table->setEngine("InnoDB");
837
$table->setCharset("utf8");
838
839
//fields
840
$table->addInt("userID", 10, true, false);
841
$table->addVarchar("token", 255, true);
842
$table->addInt("value", 10, true, false);
843
844
//add keys to table
845
$table->addPrimaryKey(array("userID", "token"));
846
847
//create or upgrade table
848
$table->upgrade();
849
850
echo "Finished!<br />";
851
852
/**
853
 * table page_rights
854
 *
855
 * Package: com.jukusoft.cms.page
856
 */
857
858
echo "Create / Upgrade table <b>page_rights</b>...<br />";
859
860
//create or upgrade test table
861
$table = new DBTable("page_rights", Database::getInstance());
862
$table->setEngine("InnoDB");
863
$table->setCharset("utf8");
864
865
//fields
866
$table->addInt("groupID", 10, true, false);
867
$table->addInt("pageID", 10, true, false);
868
$table->addVarchar("token", 255, true);
869
$table->addInt("value", 10, true, false);
870
871
//add keys to table
872
$table->addPrimaryKey(array("groupID", "pageID", "token"));
873
874
//create or upgrade table
875
$table->upgrade();
876
877
echo "Finished!<br />";
878
879
/**
880
 * table page_user_rights
881
 *
882
 * Package: com.jukusoft.cms.page
883
 */
884
885
echo "Create / Upgrade table <b>page_user_rights</b>...<br />";
886
887
//create or upgrade test table
888
$table = new DBTable("page_user_rights", Database::getInstance());
889
$table->setEngine("InnoDB");
890
$table->setCharset("utf8");
891
892
//fields
893
$table->addInt("userID", 10, true, false);
894
$table->addInt("pageID", 10, true, false);
895
$table->addVarchar("token", 255, true);
896
$table->addInt("value", 10, true, false);
897
898
//add keys to table
899
$table->addPrimaryKey(array("userID", "pageID", "token"));
900
901
//create or upgrade table
902
$table->upgrade();
903
904
echo "Finished!<br />";
905
906
/**
907
 * table register_mail_verification
908
 *
909
 * Package: com.jukusoft.cms.user
910
 */
911
912
echo "Create / Upgrade table <b>register_mail_verification</b>...<br />";
913
914
//create or upgrade test table
915
$table = new DBTable("register_mail_verification", Database::getInstance());
916
$table->setEngine("InnoDB");
917
$table->setCharset("utf8");
918
919
//fields
920
$table->addInt("userID", 10, true, false);
921
$table->addVarchar("token", 255, true);
922
923
//add keys to table
924
$table->addPrimaryKey("userID");
925
$table->addUnique("token");
926
927
//create or upgrade table
928
$table->upgrade();
929
930
echo "Finished!<br />";
931
932
/**
933
 * table installed_plugins
934
 *
935
 * Package: com.jukusoft.cms.plugin
936
 */
937
938
echo "Create / Upgrade table <b>plugins</b>...<br />";
939
940
//create or upgrade test table
941
$table = new DBTable("plugins", Database::getInstance());
942
$table->setEngine("InnoDB");
943
$table->setCharset("utf8");
944
945
//fields
946
$table->addVarchar("name", 255, true);//directory name of plugin
947
$table->addVarchar("version", 255, true, "1.0.0");//installed version of plugin
948
//$table->addInt("build", 10, true, false, 1);//optional: build number of plugin
949
$table->addInt("installed", 10, true, false, 1);//flag, if plugin is installed
950
$table->addInt("activated", 10, true, false, 1);//flag, if plugin is activated
951
952
//add keys to table
953
$table->addPrimaryKey("name");
954
$table->addIndex("installed");
955
$table->addIndex("activated");
956
957
//create or upgrade table
958
$table->upgrade();
959
960
echo "Finished!<br />";
961
962
/**
963
 * table plugin_installer_plugins
964
 *
965
 * Package: com.jukusoft.cms.plugin
966
 */
967
968
echo "Create / Upgrade table <b>plugin_installer_plugins</b>...<br />";
969
970
//create or upgrade test table
971
$table = new DBTable("plugin_installer_plugins", Database::getInstance());
972
$table->setEngine("InnoDB");
973
$table->setCharset("utf8");
974
975
//fields
976
$table->addVarchar("class_name", 255, true);//directory name of plugin
977
$table->addVarchar("path", 600, true);
978
979
//add keys to table
980
$table->addPrimaryKey("class_name");
981
982
//create or upgrade table
983
$table->upgrade();
984
985
echo "Finished!<br />";
986
987
/**
988
 * table tasks
989
 *
990
 * Package: com.jukusoft.cms.tasks
991
 */
992
993
echo "Create / Upgrade table <b>tasks</b>...<br />";
994
995
//create or upgrade test table
996
$table = new DBTable("tasks", Database::getInstance());
997
$table->setEngine("InnoDB");
998
$table->setCharset("utf8");
999
1000
//fields
1001
$table->addInt("id", 10, true, true);
1002
$table->addVarchar("title", 255, true);
1003
$table->addVarchar("unique_name", 255, true, "");//unique name, so plugins or upgrade can find task easier
1004
$table->addEnum("type", array("FILE", "FUNCTION", "CLASS_STATIC_METHOD", ""), true);
1005
$table->addVarchar("type_params", 255, false, "NULL");
1006
$table->addText("params", true);
1007
$table->addVarchar("owner", 255, true, "system");
1008
$table->addInt("delete_after_execution", 10, true, false, 0);
1009
$table->addInt("interval", 10, true, false, 60);
1010
$table->addTimestamp("last_execution", true, "0000-00-00 00:00:00");
1011
$table->addInt("activated", 10, true, false, 1);
1012
1013
//add keys to table
1014
$table->addPrimaryKey("id");
1015
$table->addUnique("unique_name");
1016
$table->addIndex("last_execution");
1017
$table->addIndex("activated");
1018
1019
//create or upgrade table
1020
$table->upgrade();
1021
1022
echo "Finished!<br />";
1023
1024
/**
1025
 * table preferences
1026
 *
1027
 * Package: com.jukusoft.cms.preferences
1028
 */
1029
1030
echo "Create / Upgrade table <b>preferences</b>...<br />";
1031
1032
//create or upgrade test table
1033
$table = new DBTable("preferences", Database::getInstance());
1034
$table->setEngine("InnoDB");
1035
$table->setCharset("utf8");
1036
1037
//fields
1038
$table->addVarchar("key", 255, true);
1039
$table->addVarchar("area", 255, true);
1040
$table->addText("value");
1041
1042
//add keys to table
1043
$table->addPrimaryKey(array("key", "area"));
1044
1045
//create or upgrade table
1046
$table->upgrade();
1047
1048
echo "Finished!<br />";
1049
1050
/**
1051
 * table api_apps
1052
 *
1053
 * Package: com.jukusoft.cms.api
1054
 */
1055
1056
echo "Create / Upgrade table <b>api_apps</b>...<br />";
1057
1058
//create or upgrade test table
1059
$table = new DBTable("api_apps", Database::getInstance());
1060
$table->setEngine("InnoDB");
1061
$table->setCharset("utf8");
1062
1063
//fields
1064
$table->addInt("app_id", 10, true, true);
1065
$table->addVarchar("app_name", 255, true);
1066
1067
//add keys to table
1068
$table->addPrimaryKey(array("app_id"));
1069
$table->addUnique("app_name");
1070
1071
//create or upgrade table
1072
$table->upgrade();
1073
1074
echo "Finished!<br />";
1075
1076
/**
1077
 * table api_keys
1078
 *
1079
 * Package: com.jukusoft.cms.api
1080
 */
1081
1082
echo "Create / Upgrade table <b>api_keys</b>...<br />";
1083
1084
//create or upgrade test table
1085
$table = new DBTable("api_keys", Database::getInstance());
1086
$table->setEngine("InnoDB");
1087
$table->setCharset("utf8");
1088
1089
//fields
1090
$table->addInt("key_id", 10, true, true);
1091
$table->addVarchar("secret", 255, true);
1092
$table->addInt("app_id", 10, true, false);
1093
1094
//add keys to table
1095
$table->addPrimaryKey(array("key_id"));
1096
$table->addIndex("app_id");
1097
1098
//create or upgrade table
1099
$table->upgrade();
1100
1101
echo "Finished!<br />";
1102
1103
/**
1104
 * table api_oauth
1105
 *
1106
 * Package: com.jukusoft.cms.api
1107
 */
1108
1109
echo "Create / Upgrade table <b>api_oauth</b>...<br />";
1110
1111
//create or upgrade test table
1112
$table = new DBTable("api_oauth", Database::getInstance());
1113
$table->setEngine("InnoDB");
1114
$table->setCharset("utf8");
1115
1116
//fields
1117
$table->addVarchar("secret_key", 255, true);
1118
$table->addInt("userID", 10, true, false);
1119
$table->addTimestamp("created", true, "CURRENT_TIMESTAMP", false);//to check, if secret key is valide
1120
$table->addTimestamp("expires", true, "0000-00-00 00:00:00", false);
1121
1122
//add keys to table
1123
$table->addPrimaryKey(array("secret_key"));
1124
1125
//create or upgrade table
1126
$table->upgrade();
1127
1128
echo "Finished!<br />";
1129
1130
/**
1131
 * table widget_types
1132
 *
1133
 * Package: com.jukusoft.cms.widgets
1134
 */
1135
1136
echo "Create / Upgrade table <b>widget_types</b>...<br />";
1137
1138
//create or upgrade test table
1139
$table = new DBTable("widget_types", Database::getInstance());
1140
$table->setEngine("InnoDB");
1141
$table->setCharset("utf8");
1142
1143
//fields
1144
$table->addInt("id", 10, true, true);
1145
$table->addVarchar("name", 255, true);
1146
$table->addVarchar("description", 600, true, "");
1147
$table->addVarchar("class_name", 255, true);
1148
$table->addInt("editable", 10, true, false, 1);//flag, if widget type is editable (this means added widgets with this type can be edited)
1149
$table->addVarchar("owner", 255, true, "system");
1150
1151
//add keys to table
1152
$table->addPrimaryKey(array("id"));
1153
$table->addUnique("class_name");
1154
1155
//create or upgrade table
1156
$table->upgrade();
1157
1158
echo "Finished!<br />";
1159
1160
/**
1161
 * table sidebars
1162
 *
1163
 * Package: com.jukusoft.cms.sidebar
1164
 */
1165
1166
echo "Create / Upgrade table <b>sidebars</b>...<br />";
1167
1168
//create or upgrade test table
1169
$table = new DBTable("sidebars", Database::getInstance());
1170
$table->setEngine("InnoDB");
1171
$table->setCharset("utf8");
1172
1173
//fields
1174
$table->addInt("sidebar_id", 10, true, true);
1175
$table->addVarchar("unique_name", 255, true);
1176
$table->addVarchar("title", 255, true, "");
1177
$table->addInt("deletable", 10, true, false, 1);
1178
1179
//add keys to table
1180
$table->addPrimaryKey(array("sidebar_id"));
1181
$table->addUnique("unique_name");
1182
1183
//create or upgrade table
1184
$table->upgrade();
1185
1186
echo "Finished!<br />";
1187
1188
/**
1189
 * table sidebar_widgets
1190
 *
1191
 * Package: com.jukusoft.cms.sidebar
1192
 */
1193
1194
echo "Create / Upgrade table <b>sidebar_widgets</b>...<br />";
1195
1196
//create or upgrade test table
1197
$table = new DBTable("sidebar_widgets", Database::getInstance());
1198
$table->setEngine("InnoDB");
1199
$table->setCharset("utf8");
1200
1201
//fields
1202
$table->addInt("id", 10, true, true);
1203
$table->addInt("sidebar_id", 10, true, false);
1204
$table->addVarchar("title", 255, true, "");
1205
$table->addText("content", true, "");
1206
$table->addVarchar("class_name", 255, true, "");
1207
$table->addText("widget_params", true);//json encoded string, e.q. "{}"
1208
$table->addVarchar("css_id", 255, true, "");
1209
$table->addVarchar("css_class", 255, true, "");
1210
$table->addVarchar("before_widget", 600, true, "");
1211
$table->addVarchar("after_widget", 600, true, "");
1212
//$table->addVarchar("before_title", 600, true, "");
1213
//$table->addVarchar("after_title", 600, true, "");
1214
$table->addVarchar("unique_name", 255, true);
1215
$table->addInt("order", 10, true, false, 10);
1216
1217
//add keys to table
1218
$table->addPrimaryKey(array("id"));
1219
$table->addUnique("unique_name");
1220
$table->addIndex("sidebar_id");
1221
1222
//create or upgrade table
1223
$table->upgrade();
1224
1225
echo "Finished!<br />";
1226
1227
//create default wildcard domain, if absent
1228
Domain::createWildcardDomain();
1229
1230
echo "Create folder...<br />";
1231
1232
echo "Create default (supported) languages...<br />";
1233
1234
//add supported languages
1235
Lang::addLangOrUpdate("de", "German");
1236
Lang::addLangOrUpdate("en", "English");
1237
1238
echo "Create default sidebars...<br />";
1239
1240
Sidebar::create("Left sidebar", "sidebar_left", false);
1241
Sidebar::create("Right sidebar", "sidebar_right", false);
1242
1243
echo "Create default global setting categories...<br />";
1244
1245
SettingsCategory::createIfAbsent("general", "General", 1, "system");
1246
SettingsCategory::createIfAbsent("sidebar", "Sidebar", 2, "system");
1247
SettingsCategory::createIfAbsent("mail", "Mail", 15, "system");
1248
SettingsCategory::createIfAbsent("user", "User", 16, "system");
1249
SettingsCategory::createIfAbsent("api", "API", 17, "system");
1250
SettingsCategory::createIfAbsent("logging", "Logging", 18, "system");
1251
SettingsCategory::createIfAbsent("tools", "Tools", 19, "system");
1252
SettingsCategory::createIfAbsent("tasks", "Tasks", 20, "system");
1253
1254
echo "Create default global settings...<br />";
1255
1256
//create or update default settings (value will be only set, if key doesnt exists)
1257
Settings::create("default_lang", "de", "Default Language", "Default (fallback) language, if no other languages are supported", "system", "general", "DataType_LangChooser");
1258
Settings::create("default_style_name", "texturedblue", "Default Style", "Default (fallback) style name, which will be used, if no other design was set by style rules.", "system", "general", "DataType_StyleChooser");
1259
Settings::create("default_mobile_style_name", "texturedblue", "Default mobile Style", "Like default style name, but for mobiledevices", "system", "general", "DataType_StyleChooser");
1260
Settings::create("guest_userid", -1, "Guest UserID", "UserID of not-logged-in users (default: -1).", "system", "general", "DataType_Integer", array("min" => -1));
1261
Settings::create("guest_username", "Guest", "Guest Username", "Username of not-logged-in users (default: Guest).", "system", "general", "DataType_Username");
1262
Settings::create("online_interval", 5, "Online Interval", "Interval in minues, how long a user is set as online (since last page request). IMPORTANT: This is independent from login interval!", "system", "general", "DataType_Integer");
1263
Settings::create("x_frame_options", "DENY", "X-Frame-Options header value (none = dont set header).", "values: DENY, SAMEORIGIN, ALLOW-FROM https://example.com/, none", "system", "security", "DataType_String");
1264
Settings::create("login_page","login", "Alias of Login Page (incl. directory, if necessary)", "Alias of Login Page (incl. directory, if necessary). Default: login", "system", "general", "DataType_String");
1265
Settings::create("logout_page", "logout", "Alias of Logout Page (incl. directory, if necessary)", "Alias of Logout Page (incl. directory, if necessary). Default: logout", "system", "general", "DataType_String");
1266
//Settings::create("base_dir", "/", "Base directory", "Base directory (if this CMS is installed in root directory, the right option is '/', but if it is installed in a sub directory, the right option is '/sub-dir/'). Default: /", "system", "general");
1267
Settings::create("css_cache_strategy", "expires_header", "CSS Browser Cache Strategy", "CSS Browser Cache Strategy, values: expires_header, etag_header, none", "system", "general", "DataType_SelectBox", array("expires_header", "etag_header", "none"));
1268
Settings::create("css_cache_expires_header_ttl", "31536000", "CSS Expires Header Seconds to cache", "Seconds to cache (on client browser). Only used, if cache strategy 'expired_header' is used! Default: 31536000 seconds (1 year)", "system", "general", "DataType_Integer");
1269
Settings::create("js_cache_strategy", "expires_header", "JS Browser Cache Strategy", "JS Browser Cache Strategy, values: expires_header, etag_header, none", "system", "general", "DataType_SelectBox", array("expires_header", "etag_header", "none"));
1270
Settings::create("js_cache_expires_header_ttl", "31536000", "JS Expires Header Seconds to cache", "Seconds to cache (on client browser). Only used, if cache strategy 'expired_header' is used! Default: 31536000 seconds (1 year)", "system", "general", "DataType_Integer");
1271
Settings::create("title_praefix", "", "Title Praefix", "Title Praefix", "system", "general", "DataType_String");
1272
Settings::create("title_suffix", "", "Title Suffix", "Title Suffix", "system", "general", "DataType_String");
1273
Settings::create("copyright", "<strong>Copyright &copy; 2018 <a href=\"http://jukusoft.com\">JuKuSoft.com</a></strong>, All Rights Reserved.", "Copyright Notice on page", "Copyright notice on every page", "system", "general", "DataType_HTML");
1274
Settings::create("website_name", "" . DomainUtils::getDomain(), "Website name", "Name of your website, e.q. used for mail templates", "system", "general", "DataType_String");
1275
1276
Settings::create("gzip_compression", true, "GZip compression enabled", "GZip compression enabled", "system", "general", "DataType_Boolean");
1277
Settings::create("session_ttl", 3600, "Session TTL", "Session Time-To-Live in seconds, default: 3600 seconds", "system", "general", "DataType_Integer", array("unit" => "seconds"));
1278
1279
//maintenance mode
1280
Settings::create("maintenance_mode_enabled", false, "Maintenance Mode enabled (boolean)", "Maintenance Mode enabled (boolean), Default: false", "system", "general", "DataType_Boolean");
1281
Settings::create("maintenance_text", "This domain is currently under scheduled maintenance mode. Sorry for the inconvenience! Look in a few minutes over again!", "Maintenance Text", "Text which is shown, if maintenance mode is enabled", "system", "general", "DataType_HTML");
1282
1283
//external tools
1284
Settings::create("phpmyadmin_link", "#", "Link to PhpMyAdmin", "Link to PhpMyAdmin", "system", "tools", "DataType_URL");
1285
Settings::create("webmail_link", "#", "Link to Webmail", "Link to Webmail", "system", "tools", "DataType_URL");
1286
1287
//send mail
1288
Settings::create("send_mails_enabled", true, "Enable send mails from CMS", "Enable send mails from CMS - if disabled no mails can be sended! If deactivated, it can influence other features like registration.", "system", "mail", "DataType_Boolean");
1289
Settings::create("sendmail_method", "PHPMail", "Method for sending mails", "Method for sending mails (class name of send mail implementation)", "system", "mail", "DataType_SelectBox", array("PHPMail", "SMTPMail"));
1290
Settings::create("mail_sender_address", "none", "Sender mail address", "sender mail address, e.q. [email protected]", "system", "mail", "DataType_Mail");
1291
Settings::create("mail_sender_name", "", "Sender name", "Name of mail sender, e.q. John Doe", "system", "mail", "DataType_String");
1292
Settings::create("mail_reply_to", "", "Reply-to mail address", "Reply-to mail address, e.q. [email protected]", "system", "mail", "DataType_Mail");
1293
Settings::create("mail_signature", "", "Mail Signature", "This text will be added as footer on all mails.", "system", "mail", "DataType_Text");
1294
Settings::create("mail_default_charset", "utf-8", "Default mail charset", "Default mail charset, default: utf-8", "system", "mail", "DataType_String");
1295
1296
//registration
1297
Settings::create("registration_enabled", false, "Registration enabled", "Registration enabled", "system", "general", "DataType_Boolean");
1298
Settings::create("agb_page", "agb", "Terms of use Page", "Terms of use page", "system", "general", "DataType_String");
1299
Settings::create("username_min_length", 4, "Minimal length (characters) of allowed username", "Minimal length (characters) of allowed username", "general", "general", "DataType_Integer");
1300
Settings::create("username_max_length", 20, "Maximal length (characters) of allowed usernames", "Maximal length (characters) of allowed usernames", "general", "general", "DataType_Integer");
1301
Settings::create("username_regex", "a-zA-Z0-9\.\-", "Username Regex", "Allowed characters of usernames (regex)", "system", "general", "DataType_String");
1302
Settings::create("password_min_length", 6, "Minimal password length", "Minimal password length, default: 8", "system", "general", "DataType_Integer");
1303
Settings::create("password_max_length", 64, "Maximal password length", "Maximal password length, default: 8", "system", "general", "DataType_Integer");
1304
Settings::create("register_activation_method", "auto", "Register Activation Method", "Activation method for new user accounts, Default: auto (which means, that users are automatically activated)", "system", "general", "DataType_SelectBox", array("auto", "mail_verification", "manual_verification"));
1305
Settings::create("default_main_group", 2, "Default main group ID", "ID of default main group, Default: 2 (registered users)", "system", "general", "DataType_Integer");
1306
1307
//captcha
1308
Settings::create("captcha_enabled", true, "Captcha enabled", "Option, if captcha is enabled on forms", "system", "general", "DataType_Boolean");
1309
Settings::create("captcha_class_name", "ReCaptcha", "Captcha Classname", "Captcha Classname", "system", "general", "DataType_String");
1310
Settings::create("recaptcha_website_key", "", "reCAPTCHA website key", "reCAPTCHA website key, provided by google", "system", "general", "DataType_String");
1311
Settings::create("recaptcha_secret_key", "", "reCAPTCHA secret key", "reCAPTCHA secret key, provided by google", "system", "general", "DataType_String");
1312
1313
//cronjob
1314
Settings::create("cronjob_enabled", true, "Cronjob enabled", "Option if cronjob is enabled", "system", "tasks", "DataType_Boolean");
1315
Settings::create("cronjob_auth_key", "", "Cronjob Auth Key", "Only set this key, if you want, that only a restricted source can call cronjob.php file.", "owner", "tasks", "DataType_String");
1316
1317
//menuID
1318
Settings::create("menu_plugin_settings_id", -1, "id of plugin settings menu", "id of plugin settings menu - Dont change this value manually!", "system", "hidden", "DataType_Integer", array(), false);
1319
1320
//user / ldap authentification
1321
Settings::create("default_authentificator", "LocalAuthentificator", "Authentificator Class", "Classname of Authentificator method", "system", "user", "DataType_String", array(""), true);
1322
Settings::create("user_default_title", "Registered User", "Default User Title", "default user title, shown on pages", "system", "user", "DataType_String", array(), true);
1323
1324
//oauth
1325
Settings::create("oauth_key_length", 255, "oAuth key length", "Length of oauth key in characters", "system", "api", "DataType_Integer", array("unit" => "characters"), true);
1326
Settings::create("oauth_expire_seconds", 86400, "oAuth key Validity", "oAuth key Validity in seconds", "system", "api", "DataType_Integer", array("unit" => "seconds"), true);
1327
1328
//logging
1329
Settings::create("logging_provider", "EmptyLogProvider", "Class name of logging provider", "full class name of logging provider", "system", "logging", "DataType_String", array(), false);
1330
1331
//sidebar
1332
Settings::create("default_sidebar_left", 1, "ID of default left sidebar", "ID of default left sidebar", "system", "sidebar", "DataType_SidebarChooser", array(), false);
1333
Settings::create("default_sidebar_right", 2, "ID of default right sidebar", "ID of default right sidebar", "system", "sidebar", "DataType_SidebarChooser", array(), false);
1334
1335
$main_menuID = -1;
1336
$local_menuID = -1;
1337
$admin_menuID = -1;
1338
1339
//get main menuID
1340
if (!Settings::contains("main_menuID")) {
1341
	//create menu_names if absent
1342
	$main_menuID = Menu::createMenuName("Main Menu", "main_menu");
1343
1344
	//set setting
1345
	Settings::create("main_menuID", $main_menuID, "Main MenuID", "id of main menu (in menu area)", "system", "general", "DataType_MenuSelector", "", true, "none", "none", 1);
1346
} else {
1347
	$main_menuID = Settings::get("main_menuID");
1348
}
1349
1350
//get admin area menuID
1351
if (!Settings::contains("admin_menuID")) {
1352
	//create menu_names if absent
1353
	$admin_menuID = Menu::createMenuName("Admin Menu", "admin_menu");
1354
1355
	//set setting
1356
	Settings::create("admin_menuID", $admin_menuID, "Admin MenuID", "id of admin menu (in admin area)", "system", "general", "DataType_MenuSelector", "", true, "none", "none", 2);
1357
} else {
1358
	$admin_menuID = Settings::get("admin_menuID");
1359
}
1360
1361
//get local menuID
1362
if (!Settings::contains("local_menuID")) {
1363
	//create menu_names if absent
1364
	$local_menuID = Menu::createMenuName("Default Local Menu", "local_menu");
1365
1366
	//set setting
1367
	Settings::create("local_menuID", $local_menuID, "Default Local MenuID", "id of default local menu (in menu area)", "system", "general", "DataType_MenuSelector", "", true, "none", "none", 3);
1368
} else {
1369
	$local_menuID = Settings::get("local_menuID");
1370
}
1371
1372
//create default folders, if absent
1373
Folder::createFolderIfAbsent("/", false);
1374
Folder::createFolderIfAbsent("/admin/", true, array("can_access_admin_area"), $admin_menuID, -1);
1375
1376
echo "Create default menu if absent...<br />";
1377
1378
//create menus if absent
1379
Menu::createMenu(1, $main_menuID, "Home", "home", -1, "home", "page", "all", false, "none", 1, "user");
1380
Menu::createMenu(2, $admin_menuID, "Dashboard", "admin/home", -1, "admin_home", "page", array("can_access_admin_area"), true, "fa fa-tachometer-alt", 1, "system");
1381
Menu::createMenu(3, $admin_menuID, "Dashboard", "admin/home", 2, "", "page", array("can_access_admin_area"), true, "fa fa-tachometer-alt", 1, "system");
1382
Menu::createMenu(4, $admin_menuID, "Settings", "admin/settings", 2, "", "page", array("can_see_global_settings"), true, "fa fa-cog", 2, "system");
1383
Menu::createMenu(5, $admin_menuID, "Website", "", 2, "", "page", "none", false, "fa fa-desktop", 3, "system");
1384
Menu::createMenu(6, $admin_menuID, "Updates", "admin/update", 2, "updates", "page", array("can_see_cms_version", "can_update_cms"), true, "fa fa-download", 4, "system");
1385
Menu::createMenu(7, $admin_menuID, "Posts", "#", -1, "posts", "no_link", array("can_see_all_pages"), true, "fa fa-list-alt", 2, "system");
1386
Menu::createMenu(8, $admin_menuID, "Pages", "admin/pages", -1, "pages", "page", array("can_see_all_pages"), true, "fa fa-file", 3, "system");
1387
Menu::createMenu(9, $admin_menuID, "All Pages", "admin/pages", 8, "all_pages", "page", array("can_see_all_pages"), true, "fa fa-list", 1, "system");
1388
Menu::createMenu(10, $admin_menuID, "Create page", "admin/create_page", 8, "create_page", "page", array("can_create_pages"), true, "fa fa-plus-circle", 2, "system");
1389
Menu::createMenu(11, $admin_menuID, "Media", "admin/media", -1, "media", "page", array("can_see_all_media", "can_upload_media"), true, "fa fa-file-image", 3, "system");
1390
Menu::createMenu(12, $admin_menuID, "All Media", "admin/media", 11, "all_media", "page", array("can_see_all_media"), true, "fa fa-file-image", 1, "system");
1391
Menu::createMenu(14, $admin_menuID, "Upload Media", "admin/media/upload", 11, "upload_media", "page", array("can_upload_media"), true, "fa fa-upload", 4, "system");
1392
Menu::createMenu(15, $admin_menuID, "Menu", "admin/menu", -1, "menu", "page", array("can_see_menus", "can_edit_menus"), true, "fa fa-anchor", 5, "system");
1393
Menu::createMenu(16, $admin_menuID, "Users", "#", -1, "admin_users", "no_link", array("can_see_all_users", "can_create_user", "can_edit_users"), true, "fa fa-users", 6, "system");
1394
1395
Menu::createMenu(17, $admin_menuID, "All Users", "admin/users", 16, "all_users", "page", array("can_see_all_users"), true, "fa fa-id-card", 1, "system");
1396
Menu::createMenu(18, $admin_menuID, "Create User", "admin/create_user", 16, "create_user", "page", array("can_create_user"), true, "fa fa-user-plus", 2, "system");
1397
Menu::createMenu(19, $admin_menuID, "Groups", "admin/groups", 16, "groups", "page", array("can_see_all_groups"), true, "fa fa-users", 3, "system");
1398
Menu::createMenu(20, $admin_menuID, "My groups", "admin/my_groups", 16, "admin_own_groups", "page", array("can_see_own_groups"), true, "fa fa-id-badge", 4, "system");
1399
Menu::createMenu(21, $admin_menuID, "My profile", "admin/profile", 16, "admin_own_profile", "page", array("can_see_own_profile", "can_edit_own_profile"), true, "fa fa-user-circle", 5, "system");
1400
Menu::createMenu(22, $admin_menuID, "Change password", "admin/change_password", 16, "admin_password", "page", array("can_edit_own_password"), true, "fa fa-key", 6, "system");
1401
1402
Menu::createMenu(25, $admin_menuID, "Design", "admin/design", -1, "design", "page", array("can_see_global_settings"), true, "fa fa-paint-brush", 7, "system");
1403
1404
Menu::createMenu(35, $admin_menuID, "Plugins", "admin/plugins", -1, "plugins", "no_link", array("can_see_installed_plugins"), true, "fa fa-cubes", 8, "system");
1405
Menu::createMenu(36, $admin_menuID, "Plugins", "admin/plugins", 35, "plugins_page", "page", array("can_see_installed_plugins"), true, "fa fa-cubes", 1, "systen");
1406
Menu::createMenu(37, $admin_menuID, "Settings", "#", 35, "plugins_settings", "no_link", array("can_see_installed_plugins"), true, "fa fa-cogs", 100, "system");
1407
1408
Settings::set("menu_plugin_settings_id", 37);
1409
1410
Menu::createMenu(45, $admin_menuID, "Tools", "#", -1, "tools", "no_link", array("none"), true, "fa fa-wrench", 9, "system");
1411
1412
Menu::createMenu(53, $admin_menuID, "phpinfo()", "admin/phpinfo", 45, "phpinfo", "page", array("can_see_phpinfo"), true, "fab fa-php", 9, "system");
1413
Menu::createMenu(54, $admin_menuID, "PhpMyAdmin", "settings:phpmyadmin_link", 45, "phpmyadmin", "dynamic_link", array("can_see_phpmyadmin_menu"), true, "fa fa-laptop", 10, "system");
1414
Menu::createMenu(55, $admin_menuID, "Webmail", "settings:webmail_link", 45, "webmail", "dynamic_link", array("can_see_webmail_menu"), true, "fa fa-envelope", 11, "system");
1415
Menu::createMenu(56, $admin_menuID, "Send Mail", "admin/sendmail", 45, "sendmail", "page", array("can_send_board_mails"), true, "fa fa-envelope-open", 12, "system");
1416
Menu::createMenu(57, $admin_menuID, "Clear Cache", "admin/clearcache", 45, "clear_cache", "page", array("can_clear_cache"), true, "fa fa-trash", 12, "system");
1417
1418
Menu::createMenu(60, $admin_menuID, "Settings", "#", -1, "settings", "no_link", array("can_see_global_settings"), true, "fa fa-cogs", 10, "system");
1419
Menu::createMenu(61, $admin_menuID, "Settings", "admin/settings", 60, "", "page", array("can_see_global_settings", "can_edit_global_settings"), true, "fa fa-cog", 1, "system");
1420
1421
Menu::createMenu(100, $main_menuID, "lang_Admin Area", "admin/home", -1, "", "page", array("can_access_admin_area"), true, "none", 2, "user");
1422
Menu::createMenu(101, $main_menuID, "lang_Login", "LOGIN_URL", -1, "login", "external_link", "not_logged_in", false, "none", 3, "user");
1423
Menu::createMenu(102, $main_menuID, "lang_Logout", "LOGOUT_URL", -1, "logout", "external_link", "all", true, "none", 100, "user");
1424
1425
//privacy policy & imprint
1426
Menu::createMenu(200, $main_menuID, "lang_Privacy Policy", "privacy-policy", -1, "privacy_policy", "page", array("none"), false, "none", 101, "system");
1427
Menu::createMenu(201, $main_menuID, "lang_Imprint", "imprint", -1, "imprint", "page", array("none"), false, "none", 102, "system");
1428
1429
echo "Create default pages if absent...<br />";
1430
1431
Page::createIfAbsent("home", "Home", "IndexPage", "Home page", "/");
1432
Page::createIfAbsent("error404", "Error 404", "Error404Page", "Error 404 - Couldn't find this page.", "/", -1, -1, -1, false, true, true, false);
1433
Page::createIfAbsent("login", "Login", "LoginPage", "", "/", -1, -1, -1, false, true, true, false);
1434
Page::createIfAbsent("logout", "Logout", "LogoutPage", "", "/", -1, -1, -1, false, true, false);
1435
Page::createIfAbsent("register", "Registration", "RegisterPage", "", "/", -1, -1, -1, false, true, false, false);
1436
1437
//only at installation process
1438
Page::createIfAbsent("privacy-policy", "lang_Privacy Policy", "HTMLPage", "Private Policy - Add privaty policy here", "/", -1, -1, -1, false, true, true, true);
1439
Page::createIfAbsent("imprint", "lang_Imprint", "HTMLPage", "Imprint - Add contact data here", "/", -1, -1, -1, false, true, true, true);
1440
1441
Page::createIfAbsent("user/verify_mail", "Mail Verification", "MailVerifyPage", "", "/user/", -1, -1, -1, false, true, false, false);
1442
1443
//create robots.txt page
1444
Page::createIfAbsent("robots.txt", "Robots.txt", "RobotsPage", "", "/", -1, -1, -1, false, true, false, false);
1445
1446
//create sitemap page
1447
Page::createIfAbsent("sitemap.xml", "Sitemap", "SitemapPage", "", "/", -1, -1, -1, false, true, false, false);
1448
1449
//create forbidden pages
1450
Page::createIfAbsent("error403", "Error 403", "Error403Page", "Error 403 - Forbidden!<br /> You dont have permissions to access this page or folder. Maybe you have to login.", "/", -1, -1, -1, false, true, true, false);
1451
1452
echo "Create admin pages if absent...<br />";
1453
Page::createIfAbsent("admin/home", "Admin Dashboard", "Admin_Dashboard", "", "/admin/", -1, -1, -1, false, true, false, false);
1454
Page::createIfAbsent("admin/plugins", "lang_Plugins", "PluginsPage", "", "/admin/", -1, -1, -1, false, true, false, false);
1455
Page::createIfAbsent("admin/plugin_installer", "lang_Plugin Installer", "PluginInstallerPage", "", "/admin/", -1, -1, -1, false, true, false, false);
1456
Page::createIfAbsent("admin/change_password", "lang_Change password", "ChangePasswordPage", "", "/admin/", -1, -1, -1, false, true, false, false);
1457
Page::createIfAbsent("admin/sendmail", "lang_Send Mail", "SendMailPage", "", "/admin/", -1, -1, -1, false, true, false, false);
1458
Page::createIfAbsent("admin/clearcache", "lang_Clear cache", "ClearCachePage", "", "/admin/", -1, -1, -1, false, true, false, false);
1459
1460
//create some tool pages
1461
Page::createIfAbsent("admin/phpinfo", "phpinfo()", "PHPInfoPage", "", "/admin/", -1, -1, -1, false, true, false, false);
1462
1463
//admin pages
1464
Page::createIfAbsent("admin/settings", "Settings", "SettingsPage", "", "/admin/", -1, -1, -1, false, true, false, false);
1465
Page::createIfAbsent("admin/pages", "Pages", "PageListPage", "", "/admin/", -1, -1, -1, false, true, false, false);
1466
Page::createIfAbsent("admin/create_page", "Create new page", "CreatePagePage", "", "/admin/", -1, -1, -1, false, true, false, false);
1467
Page::createIfAbsent("admin/edit_page", "Edit page", "PageEditPage", "", "/admin/", -1, -1, -1, false, true, false, false);
1468
1469
echo "Create default page types if absent...<br />";
1470
1471
PageType::createPageType("HTMLPage", "HTML page", false, 1);//order 1 - so show as first page type in admin area
1472
PageType::createPageType("Error404Page", "Error 404 page", true);
1473
PageType::createPageType("Error403Page", "Error 403 page", true);
1474
PageType::createPageType("IndexPage", "index page (supports extra template)", true);
1475
PageType::createPageType("LoginPage", "Login page", true);
1476
PageType::createPageType("LogoutPage", "Logout page", true);
1477
PageType::createPageType("SitemapPage", "Sitemap page", true);
1478
PageType::createPageType("ChangePasswordPage", "Change password", true);
1479
1480
echo "Create style rule for admin area if absent...<br />";
1481
StyleRules::createRuleWithPredefinedID(1, "FOLDER", "/admin/", "admin", -1, 1);
1482
1483
//create groups
1484
echo "Create default groups if absent...<br />";
1485
1486
//#0099cc
1487
Groups::createGroupIfIdAbsent(1, "Administrator", "Administrator group with full permissions", "#cc0000", true, true, false);
1488
Groups::createGroupIfIdAbsent(2, "Registered Users", "Registered users (every new user is automatically added to this group on registration process)", "#33cc33", false, true, true);
1489
Groups::createGroupIfIdAbsent(3, "Guests", "Not-logged-in users", "#669999", false, true, false);
1490
Groups::createGroupIfIdAbsent(4, "Bots", "Bots (Google bot and so on)", "#cc00ff", false, true, false);
1491
1492
//Redakteur
1493
Groups::createGroupIfIdAbsent(5, "Editor", "Editors (can create & edit every post and every page, can publish and delete pages)", "#ff9933", true, true, false);
1494
Groups::createGroupIfIdAbsent(6, "Author", "Authors (can create & edit OWN posts and OWN pages, can publish and delete OWN pages)", "#ffcc00", true, true, false);
1495
1496
echo "Assign default users to default groups...<br />";
1497
1498
Groups::addGroupToUser(1, 1, true);
1499
Groups::addGroupToUser(2, 1, true);
1500
Groups::addGroupToUser(3, -1);
1501
1502
echo "Create default permission categories...<br />";
1503
Permissions::createOrUpdateCategory("general", "General", 1);
1504
Permissions::createOrUpdateCategory("users", "Users", 2);//user permissions, like "can_create_user"
1505
Permissions::createOrUpdateCategory("groups", "Groups", 3);
1506
Permissions::createOrUpdateCategory("pages", "Pages", 4);
1507
Permissions::createOrUpdateCategory("media", "Media", 5);
1508
Permissions::createOrUpdateCategory("permissions", "Permissions", 6);
1509
Permissions::createOrUpdateCategory("plugins", "Plugins", 7);
1510
Permissions::createOrUpdateCategory("admin", "Admin", 8);
1511
1512
echo "Create default permissions...<br />";
1513
//general permissions
1514
Permissions::createPermission("can_access_admin_area", "Can access admin area", "Can access admin area", "admin", "system", 1);
1515
Permissions::createPermission("can_edit_own_password", "Can edit own password", "Can edit own password", "general", "system", 2);
1516
Permissions::createPermission("can_edit_own_mail", "Can edit his own mail address", "Can edit his own mail address", "general", 3);
1517
Permissions::createPermission("can_edit_own_profile", "Can edit own profile", "Can edit own profile (except mail & password)", "general", 4);
1518
1519
//permissions
1520
Permissions::createPermission("can_see_own_permissions", "Can see own permissions", "User can see his own permissions", "permissions", "system", 1);
1521
Permissions::createPermission("can_see_permissions", "Can see permissions of other users", "Can see permissions of other users", "permissions", "system", 2);
1522
Permissions::createPermission("can_edit_group_permissions", "Can edit group permissions", "Can edit group permissions (expect administrator group)", "permissions", "system", 3);
1523
Permissions::createPermission("can_edit_administrator_group_permissions", "Can edit administrator group permissions", "Can edit administrator group permissions", "permissions", "system", 4);//can edit permissions of group "administrator"
1524
1525
//user permissions
1526
Permissions::createPermission("can_see_all_users", "Can see all users", "Can see all users and see their private information like mail address, ip address and so on", "users", "system", 1);
1527
Permissions::createPermission("can_create_user", "Can create new user", "Can create new user", "users", "system", 2);
1528
Permissions::createPermission("can_edit_users", "Can edit users", "Can edit users", "users", "system", 3);
1529
Permissions::createPermission("can_edit_users_password", "Can edit password of users", "Can edit password of users (without super-admin with userID 1)", "users", "system", 4);
1530
1531
//group permissions
1532
Permissions::createPermission("can_see_all_groups", "Can see all groups", "Can see list with all groups", "groups", "system", 1);
1533
Permissions::createPermission("can_see_own_groups", "Can see own groups", "Can see list with own groups", "groups", "system", 2);
1534
Permissions::createPermission("can_edit_all_groups", "Can edit all groups", "Can edit all groups", "groups", "system", 3);
1535
Permissions::createPermission("can_edit_own_groups", "Can edit own groups", "Can edit own groups, where user is group leader", "groups", "system", 4);
1536
1537
//page permissions
1538
Permissions::createPermission("can_see_all_pages", "Can see all pages in admin area", "pages", "pages", "system", 1);
1539
Permissions::createPermission("can_create_pages", "Can create pages", "Can create pages", "pages", "system", 2);
1540
Permissions::createPermission("can_edit_own_pages", "Can edit own pages", "Can edit pages which was created by user", "pages", "system", 3);
1541
Permissions::createPermission("can_edit_all_pages", "Can edit all pages", "Can edit all pages, including pages which was created by other users", "pages", "system", 4);
1542
Permissions::createPermission("can_publish_own_pages", "Can publish his own pages", "Can publish his own pages", "pages", "system", 5);
1543
Permissions::createPermission("can_publish_all_pages", "Can publish all pages", "Can publish all pages, including pages which was created by other users", "pages", "system", 6);
1544
Permissions::createPermission("can_unlock_all_pages", "Can unlock all pages", "Can unlock all pages from every user", "pages", "system", 7);
1545
Permissions::createPermission("can_delete_own_pages", "Can delete own pages", "Can move pages to trash which was created by user", "pages", "system", 8);
1546
Permissions::createPermission("can_delete_all_pages", "Can delete all pages", "Can move all pages to trash, including pages which was created by other users", "pages", "system", 9);
1547
Permissions::createPermission("can_see_trash_pages", "Can see all deleted pages in trash", "Can see all deleted pages in trash", "pages", "system", 10);
1548
Permissions::createPermission("can_delete_all_pages_permanently", "Can delete all pages from trash permanently", "Can delete all pages from trash permanently, so you couldn't restore them anymore.", "pages", "system", 11);
1549
Permissions::createPermission("can_restore_trash_pages", "Can restore all pages in trash", "Can restore all pages in trash", "pages", "system", 12);
1550
Permissions::createPermission("can_change_page_owner", "Can change page owner of all pages", "Can change page owner of all pages", "pages", "system", 14);
1551
1552
//media permissions
1553
Permissions::createPermission("can_see_all_media", "Can see all media", "Can see all media files", "media", "system", 1);
1554
Permissions::createPermission("can_see_own_media", "Can see own media", "Can see own media files", "media", "system", 2);
1555
Permissions::createPermission("can_upload_media", "Can upload media", "Can upload media files", "media", "system", 3);
1556
1557
//menu permissions
1558
Permissions::createPermission("can_see_menus", "Can see menus", "Can see menus", "menu", "system", 1);
1559
Permissions::createPermission("can_edit_menus", "Can edit menus", "Can edit menus", "menu", "system", 2);
1560
1561
//plugin permissions
1562
Permissions::createPermission("can_see_installed_plugins", "Can see installed plugins", "Can see installed plugins", "plugins", "system", 1);
1563
Permissions::createPermission("can_install_plugins", "Can install plugins", "User is allowed to install plugins", "plugins", "system", 2);
1564
1565
//admin permissions
1566
Permissions::createPermission("can_see_cms_version", "Can see version of CMS system", "Can see version of CMS system", "admin", "system", 1);
1567
Permissions::createPermission("can_update_cms", "Can update CMS system", "Can update CMS system", "admin", "system", 2);
1568
Permissions::createPermission("can_see_global_settings", "Can see global CMS settings", "Can see global CMS settings", "admin", "system", 3);
1569
Permissions::createPermission("can_edit_global_settings", "Can edit global settings", "Can edit global settings", "admin", "system", 4);
1570
Permissions::createPermission("can_see_phpinfo", "Can see phpinfo()", "Can see phpinfo()", "admin", "system", 5);
1571
Permissions::createPermission("can_see_system_info", "Can see system information", "Can see system information, like os or opcache information", "admin", "system", 6);
1572
Permissions::createPermission("can_see_phpmyadmin_menu", "Can see PhpMyAdmin menu", "Can see PhpMyAdmin menu", "admin", "system", 7);
1573
Permissions::createPermission("can_see_webmail_menu", "Can see Webmail menu", "Can see Webmail menu", "admin", "system", 8);
1574
Permissions::createPermission("can_send_board_mails", "Can send mails to users", "Can send mails to users", "admin", "system", 9);
1575
Permissions::createPermission("can_clear_cache", "Can clear cache", "Can clear cache", "admin", "system", 10);
1576
Permissions::createPermission("super_admin", "Is super admin and CAN EVERYTHING", "Is super admin and CAN EVERYTHING (overrides all other values!)", "admin", "system", 11);
1577
1578
echo "Set default permissions for userID 1...<br />";
1579
$user_rights = new UserRights(1);
1580
1581
//userID 1 should be super_admin
1582
$user_rights->setRight("super_admin", 1);
1583
1584
echo "Set default permissions for userID -1 (guest)...<br />";
1585
$user_rights = new UserRights(-1);
1586
$user_rights->setRight("not_logged_in", 1);
1587
1588
echo "Create default robots.txt rules...<br />";
1589
Robots::addRule("DISALLOW", "/system/*");
1590
Robots::addRule("DISALLOW", "/cache/*");
1591
Robots::addRule("DISALLOW", "/docs/*");
1592
Robots::addRule("DISALLOW", "/plugins/*");
1593
Robots::addRule("DISALLOW", "/styles/*");
1594
Robots::addRule("DISALLOW", "/admin/*");
1595
1596
//dont allow indexing of privacy policy and imprint pages, because they can contain sensitive information
1597
Robots::addRule("DISALLOW", "/privacy-policy");
1598
Robots::addRule("DISALLOW", "/imprint");
1599
1600
echo "Create default administrator user if absent...<br />";
1601
//User::createIfIdAbsent(0, "system", md5(time() . "test_"), "[email protected]", 1, "System", 1);
1602
User::createIfIdAbsent(1, "admin", "admin", "[email protected]", 1, "Administrator", 1);
1603
1604
echo "Add PluginInstaller plugins...<br />";
1605
PluginInstaller::addInstallerPluginIfAbsent("EventInstaller", "system/packages/com.jukusoft.cms.plugin/extensions/eventinstaller.php");
1606
PluginInstaller::addInstallerPluginIfAbsent("PermissionInstaller", "system/packages/com.jukusoft.cms.plugin/extensions/permissioninstaller.php");
1607
PluginInstaller::addInstallerPluginIfAbsent("PageTypeInstaller", "system/packages/com.jukusoft.cms.plugin/extensions/pagetypeinstaller.php");
1608
PluginInstaller::addInstallerPluginIfAbsent("PageInstaller", "system/packages/com.jukusoft.cms.plugin/extensions/pageinstaller.php");
1609
PluginInstaller::addInstallerPluginIfAbsent("StoreInstaller", "system/packages/com.jukusoft.cms.plugin/extensions/storeinstaller.php");
1610
PluginInstaller::addInstallerPluginIfAbsent("FilePermissionsInstaller", "system/packages/com.jukusoft.cms.plugin/extensions/filepermissionsinstaller.php");
1611
PluginInstaller::addInstallerPluginIfAbsent("ApiMethodInstaller", "system/packages/com.jukusoft.cms.plugin/extensions/apimethodinstaller.php");
1612
PluginInstaller::addInstallerPluginIfAbsent("MenuInstaller", "system/packages/com.jukusoft.cms.plugin/extensions/menuinstaller.php");
1613
PluginInstaller::addInstallerPluginIfAbsent("SettingsInstaller", "system/packages/com.jukusoft.cms.plugin/extensions/settingsinstaller.php");
1614
1615
echo "Add apimethod 'oauth'...<br />";
1616
ApiMethod::addMethod("oauth", "ApiOAuth", "apiOAuth", "package_com.jukusoft.cms.api");
1617
1618
echo "Add default tasks...<br />";
1619
Task::createStaticMethodTask("Cleanup outdated oauth tokens", "ApiOAuth", "removeAllOutdatedTokens", 1440, "oauth_cleanup_tokens", "system", array(), false);//cleanup outdated oauth tokens every day
1620
1621
echo "Add default widgets...<br />";
1622
WidgetType::register("TextWidget", "Text Widget", "Widget which shows text without html code.", true, "system");
1623
WidgetType::register("HTMLWidget", "HTML Widget", "Widget which shows html code.", true, "system");
1624
1625
//TODO: remove this lines
1626
echo "Add default sidebar widgets...<br />";
1627
HTMLWidget::create(2, "Latest News", "<h4>New Website Launched</h4>
1628
            <h5>August 1st, 2013</h5>
1629
            <p>2013 sees the redesign of our website. Take a look around and let us know what you think.<br /><a href=\"#\">Read more</a></p>
1630
            <p></p>
1631
            <h4>New Website Launched</h4>
1632
            <h5>August 1st, 2013</h5>
1633
            <p>2013 sees the redesign of our website. Take a look around and let us know what you think.<br /><a href=\"#\">Read more</a></p>", "default_right_widget_1");
1634
HTMLWidget::create(2, "Useful links", "<ul>
1635
                <li><a href=\"#\">link 1</a></li>
1636
                <li><a href=\"#\">link 2</a></li>
1637
                <li><a href=\"#\">link 3</a></li>
1638
                <li><a href=\"#\">link 4</a></li>
1639
            </ul>", "default_right_widget_2");
1640
HTMLWidget::create(2, "Search", "<form method=\"post\" action=\"#\" id=\"search_form\">
1641
                <p>
1642
                    <input class=\"search\" type=\"text\" name=\"search_field\" placeholder=\"Enter keywords\" />
1643
                    <input class=\"search_button\" name=\"search\" type=\"submit\" value=\"&#x1f50d;\" />
1644
                </p>
1645
            </form>", "default_right_widget_3");
1646
1647
echo "Clear gettext cache<br />";
1648
PHPUtils::clearGetTextCache();
1649
1650
echo "Clear cache<br />";
1651
Cache::clear();
1652
1653
echo "<br /><br />Finished DB Upgrade!";
1654
1655
if (file_exists(ROOT_PATH . "setup/add-install.php")) {
1656
	echo "<br />Call add-install.php...<br />";
1657
1658
	require(ROOT_PATH . "setup/add-install.php");
1659
1660
	echo "<br /><br />Finished additional Upgrade!";
1661
}
1662
1663
?>
1664