-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinstall.php
More file actions
118 lines (110 loc) · 4.92 KB
/
install.php
File metadata and controls
118 lines (110 loc) · 4.92 KB
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
108
109
110
111
112
113
114
115
116
117
118
<?php
/**
* install.php – MarkdownEditor AddOn.
*
* @var rex_addon $this
* @psalm-scope-this rex_addon
*/
$profileTable = rex::getTable('markdowneditor_profiles');
// ---------- Profile table ----------
rex_sql_table::get($profileTable)
->ensurePrimaryIdColumn()
->ensureColumn(new rex_sql_column('name', 'varchar(40)', false))
->ensureColumn(new rex_sql_column('description', 'varchar(255)', true))
->ensureColumn(new rex_sql_column('toolbar', 'text', true))
->ensureColumn(new rex_sql_column('min_height', 'int(11)', true, '200'))
->ensureColumn(new rex_sql_column('max_height', 'int(11)', true, '600'))
->ensureColumn(new rex_sql_column('status_bar', 'tinyint(1)', true, '1'))
->ensureColumn(new rex_sql_column('spell_checker', 'tinyint(1)', true, '0'))
->ensureColumn(new rex_sql_column('autosave', 'tinyint(1)', true, '0'))
->ensureColumn(new rex_sql_column('upload_enabled', 'tinyint(1)', true, '1'))
->ensureColumn(new rex_sql_column('media_category', 'int(11)', true, '0'))
->ensureColumn(new rex_sql_column('media_type', 'varchar(255)', true))
->ensureColumn(new rex_sql_column('yform_tables', 'text', true))
->ensureColumn(new rex_sql_column('options', 'longtext', true))
->ensureColumn(new rex_sql_column('createdate', 'datetime', true))
->ensureColumn(new rex_sql_column('updatedate', 'datetime', true))
->ensureColumn(new rex_sql_column('createuser', 'varchar(255)', true))
->ensureColumn(new rex_sql_column('updateuser', 'varchar(255)', true))
->ensureIndex(new rex_sql_index('name', ['name'], rex_sql_index::UNIQUE))
->ensure();
// ---------- Insert default profiles if table is empty ----------
$sql = rex_sql::factory();
$sql->setQuery('SELECT id FROM ' . $profileTable . ' LIMIT 1' );
if ($sql->getRows() === 0) {
$now = date('Y-m-d H:i:s');
// --- Profile: default ---
$sql->setTable($profileTable);
$sql->setValue('name', 'default');
$sql->setValue('description', 'Standard-Profil mit allen Funktionen');
$sql->setValue('toolbar', json_encode([
'bold', 'italic', 'strikethrough', 'heading', '|',
'quote', 'unordered-list', 'ordered-list', 'checklist', '|',
'link', 'rex-media', 'rex-link', 'table', '|',
'preview', 'side-by-side', 'fullscreen', '|',
'guide',
]));
$sql->setValue('min_height', 250);
$sql->setValue('max_height', 600);
$sql->setValue('status_bar', 1);
$sql->setValue('spell_checker', 0);
$sql->setValue('autosave', 0);
$sql->setValue('upload_enabled', 1);
$sql->setValue('media_category', 0);
$sql->setValue('media_type', '');
$sql->setValue('yform_tables', '[]');
$sql->setValue('options', '{}');
$sql->setValue('createdate', $now);
$sql->setValue('createuser', rex::getUser() ? rex::requireUser()->getLogin() : 'setup');
$sql->insert();
// --- Profile: minimal ---
$sql->setTable($profileTable);
$sql->setValue('name', 'minimal');
$sql->setValue('description', 'Minimales Profil für einfache Texte');
$sql->setValue('toolbar', json_encode([
'bold', 'italic', '|',
'unordered-list', 'ordered-list', '|',
'link', 'rex-media', '|',
'preview',
]));
$sql->setValue('min_height', 150);
$sql->setValue('max_height', 400);
$sql->setValue('status_bar', 0);
$sql->setValue('spell_checker', 0);
$sql->setValue('autosave', 0);
$sql->setValue('upload_enabled', 1);
$sql->setValue('media_category', 0);
$sql->setValue('media_type', '');
$sql->setValue('yform_tables', '[]');
$sql->setValue('options', '{}');
$sql->setValue('createdate', $now);
$sql->setValue('createuser', rex::getUser() ? rex::requireUser()->getLogin() : 'setup');
$sql->insert();
// --- Profile: full ---
$sql->setTable($profileTable);
$sql->setValue('name', 'full');
$sql->setValue('description', 'Volles Profil mit allen Optionen');
$sql->setValue('toolbar', json_encode([
'bold', 'italic', 'strikethrough', 'heading', 'heading-smaller', 'heading-bigger', '|',
'code', 'quote', 'unordered-list', 'ordered-list', 'checklist', '|',
'link', 'rex-media', 'rex-link', 'rex-yform-link', 'table', 'horizontal-rule', '|',
'preview', 'side-by-side', 'fullscreen', '|',
'undo', 'redo', '|',
'clean-block', 'guide',
]));
$sql->setValue('min_height', 300);
$sql->setValue('max_height', 800);
$sql->setValue('status_bar', 1);
$sql->setValue('spell_checker', 0);
$sql->setValue('autosave', 1);
$sql->setValue('upload_enabled', 1);
$sql->setValue('media_category', 0);
$sql->setValue('media_type', '');
$sql->setValue('yform_tables', json_encode([
['table' => 'rex_yf_news', 'label' => 'name', 'display' => 'name'],
]));
$sql->setValue('options', '{}');
$sql->setValue('createdate', $now);
$sql->setValue('createuser', rex::getUser() ? rex::requireUser()->getLogin() : 'setup');
$sql->insert();
}