ViewSettingsGeneral.php
8.31 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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
<?php
namespace Nextend\SmartSlider3\Application\Admin\Settings;
use Nextend\Framework\Form\Container\ContainerTable;
use Nextend\Framework\Form\Element\Breakpoint;
use Nextend\Framework\Form\Element\Hidden;
use Nextend\Framework\Form\Element\Message\Notice;
use Nextend\Framework\Form\Element\MixedField;
use Nextend\Framework\Form\Element\OnOff;
use Nextend\Framework\Form\Element\Select;
use Nextend\Framework\Form\Element\Text;
use Nextend\Framework\Form\Element\Text\Number;
use Nextend\Framework\Form\Element\Text\TextAutoComplete;
use Nextend\Framework\Form\Element\Textarea;
use Nextend\Framework\Form\Element\Token;
use Nextend\Framework\Form\Form;
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButton;
use Nextend\SmartSlider3\Application\Admin\TraitAdminUrl;
use Nextend\SmartSlider3\Platform\Joomla\JoomlaShim;
use Nextend\SmartSlider3\Settings;
class ViewSettingsGeneral extends AbstractViewSettings {
use TraitAdminUrl;
protected $active = 'general';
const defaults = array(
'desktop-large-portrait' => 1440,
'desktop-large-landscape' => 1440,
'tablet-large-portrait' => 1300,
'tablet-large-landscape' => 1300,
'tablet-portrait' => 1199,
'tablet-landscape' => 1199,
'mobile-large-portrait' => 900,
'mobile-large-landscape' => 1050,
'mobile-portrait' => 700,
'mobile-landscape' => 900,
);
public function display() {
parent::display();
$this->layout->addContent($this->render('General'));
$this->layout->render();
}
protected function addHeaderActions() {
$buttonClearCache = new BlockButton($this);
$buttonClearCache->setBig();
$buttonClearCache->setLabel(n2_('Clear cache'));
$buttonClearCache->setUrl($this->getUrlSettingsClearCache());
$this->blockHeader->addAction($buttonClearCache->toHTML());
}
public function renderForm() {
$data = Settings::getAll();
$form = new Form($this, 'settings');
$form->loadArray($data);
$table = new ContainerTable($form->getContainer(), 'general', n2_('General settings'));
$row1 = $table->createRow('general-1');
new Token($row1);
new Hidden($row1, 'slidersOrder2', '');
new Hidden($row1, 'slidersOrder2Direction', '');
new OnOff($row1, 'autoupdatecheck', n2_('Automatic update check'), 1);
new OnOff($row1, 'slide-as-file', n2_('Alternative save slide'), 0, array(
'tipLabel' => n2_('Alternative save slide'),
'tipDescription' => n2_('If you experience problems during the save this option might solve them.')
));
new OnOff($row1, 'preview-new-window', n2_('Preview in new window'), 0);
$row3 = $table->createRow('general-3');
new OnOff($row3, 'youtube-privacy-enhanced', n2_('YouTube and Vimeo privacy enhanced mode'), 0);
new Number($row3, 'smooth-scroll-speed', n2_('Smooth scroll speed'), 400, array(
'wide' => 5,
'unit' => 'ms'
));
$row4 = $table->createRow('general-4');
new Textarea($row4, 'external-css-files', n2_('Editor - additional CSS files'), '', array(
'width' => 300,
'tipLabel' => n2_('Editor - additional CSS files'),
'tipDescription' => n2_('You can call your own CSS files to our backend, for example, to be able to use custom fonts. Write each URL to a new line.'),
'tipLink' => 'https://smartslider.helpscoutdocs.com/article/1783-general#editor-additional-css-files'
));
$table = new ContainerTable($form->getContainer(), 'general-wordpress', n2_('WordPress settings'));
$rowWordPress = $table->createRow('general-wordpress-1');
new OnOff($rowWordPress, 'editor-icon', n2_('Show editor icon'), 1);
new OnOff($rowWordPress, 'wp-adminbar', n2_('Show in admin bar'), 1);
new OnOff($rowWordPress, 'yoast-sitemap', n2_('YOAST SEO sitemap - add images'), 1);
new Number($rowWordPress, 'wordpress-widget-areas', n2_('Create widget area'), 1, array(
'unit' => n2_('widget area(s)'),
'wide' => 4,
'min' => 0,
'tipLabel' => n2_('Create widget area'),
'tipDescription' => n2_('Creates new widget areas which you can place to your theme for easy publishing.')
));
$rowWordPress2 = $table->createRow('general-wordpress-2');
new OnOff($rowWordPress2, 'wp-ajax-iframe-slider', n2_('Use iframe in AJAX calls'), 0, array(
'tipLabel' => n2_('Use iframe in AJAX calls'),
'tipDescription' => n2_('Loads the slider using an iframe when the page is loaded via AJAX to avoid problems.')
));
$table = new ContainerTable($form->getContainer(), 'breakpoints-table', n2_('Breakpoints'));
$instructionRow = $table->createRow('breakpoints-row-instruction');
$instructions = n2_('Breakpoints define the browser width in pixel when the slider switches to a different device.') . ' ' . n2_('At each slider you can override the global breakpoints with local values.');
new Notice($instructionRow, 'breakpoints-instructions', n2_('Instruction'), $instructions);
new Text\HiddenText($table->getFieldsetLabel(), 'responsive-screen-width-tablet-portrait', false, self::defaults['tablet-portrait']);
new Text\HiddenText($table->getFieldsetLabel(), 'responsive-screen-width-tablet-portrait-landscape', false, self::defaults['tablet-landscape']);
new Text\HiddenText($table->getFieldsetLabel(), 'responsive-screen-width-mobile-portrait', false, self::defaults['mobile-portrait']);
new Text\HiddenText($table->getFieldsetLabel(), 'responsive-screen-width-mobile-portrait-landscape', false, self::defaults['mobile-landscape']);
$rowBreakpoints = $table->createRow('breakpoints-row-1');
new Breakpoint($rowBreakpoints, 'breakpoints', array(
'tabletportrait-portrait' => 'settingsresponsive-screen-width-tablet-portrait',
'tabletportrait-landscape' => 'settingsresponsive-screen-width-tablet-portrait-landscape',
'mobileportrait-portrait' => 'settingsresponsive-screen-width-mobile-portrait',
'mobileportrait-landscape' => 'settingsresponsive-screen-width-mobile-portrait-landscape'
));
$table = new ContainerTable($form->getContainer(), 'focus-offset', n2_('Focus offset'));
$row1 = $table->createRow('focus-offset-1');
new Notice($row1, 'focus-instructions', n2_('Instruction'), n2_('This option is used at the full page layout to decrease the slider height. The "Scroll to slider" option also uses this option to determine where to scroll the slider.'));
$row2 = $table->createRow('focus-offset-2');
$row2HeightOffsetValue = '#wpadminbar';
new TextAutoComplete($row2, 'responsive-focus-top', n2_('Top'), $row2HeightOffsetValue, array(
'style' => 'width:200px;',
'values' => array($row2HeightOffsetValue)
));
new Text($row2, 'responsive-focus-bottom', n2_('Bottom'), '', array(
'style' => 'width:200px;'
));
$table = new ContainerTable($form->getContainer(), 'translate-url', n2_('Translate url'));
$row1 = $table->createRow('translate-url-1');
new Notice($row1, 'translate-url-instruction', n2_('Instruction'), n2_('You can change the frontend URL our assets are loading from. It can be useful after moving to a new domain.'));
$row2 = $table->createRow('translate-url-2');
$translateUrl = new MixedField($row2, 'translate-url', false, '|*|');
new Text($translateUrl, 'translate-url-1', n2_('From'), '', array(
'style' => 'width:200px;',
'tipLabel' => n2_('From'),
'tipDescription' => n2_('The old URL you want to replace. E.g. https://oldsite.com/')
));
new Text($translateUrl, 'translate-url-2', n2_('To'), '', array(
'style' => 'width:200px;',
'tipLabel' => n2_('To'),
'tipDescription' => n2_('The new URL you want to use. E.g. https://newsite.com')
));
echo $form->render();
echo '<input name="namespace" value="default" type="hidden">';
}
}