View file Web Template Ktpl/package/system/controllers/ktpl/backend/forms/form_options.php

File size: 21.44Kb
<?php

class formKtplOptions extends cmsForm {
	
	public $is_tabbed = true;

	public function init(){

		return array(

			array(
				'type' => 'fieldset',
				'title' => 'Общие настройки<style>.tabs-menu .tab fieldset{clear:both;}</style>',
				'childs' => array(
				
					new fieldCheckbox('styler_on', array(
						'title' => 'Подключить дополнительные стили шаблона',
					)),

					new fieldCheckbox('awesome_on', array(
						'title' => 'Подключить иконки Font Awesome',
						'hint' => 'Страница с <a target="_blank" href="http://fontawesome.io/icons/">иконками Font Awesome</a>'
					)),
			
				)
				
			),
		
			array(
				'type' => 'fieldset',
				'title' => 'Ссылки',
				'childs' => array(
				
					new fieldColor('links_color', array(
						'title' => 'Цвет ссылок',
					)),

					new fieldColor('links_hover_color', array(
						'title' => 'Цвет ссылок при наведении',
					)),

					new fieldCheckbox('links_underline', array(
						'title' => 'Подчеркивание ссылок',
						'default' => true
					)),
			
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'Фон',
				'childs' => array(
				
					new fieldColor('body_color', array(
						'title' => 'Цвет фона',
					)),

					new fieldImage('body_bg_image', array(
						'title' => 'Фоновое изображение сайта',
						'options' => array(
							'sizes' => array('small', 'original'),
							'allow_import_link' => true
						)
					)),

					new fieldList('body_bg_image_pos', array(
						'title' => 'Расположение фона',
						'items' => array(
							'top' => 'По центру вверху',
							'top left' => 'В левом верхнем углу',
							'right top' => 'В правом верхнем углу',
							'left' => 'По левому краю и по центру',
							'center' => 'По центру',
							'right' => 'По правому краю и по центру',
							'bottom left' => 'В левом нижнем углу',
							'bottom' => 'По центру внизу',
							'bottom right' => 'В правом нижнем углу'
						)
					)),

					new fieldList('body_bg_image_repeat', array(
						'title' => 'Повторять фон',
						'items' => array(
							'repeat' => 'Повторять фон',
							'no-repeat' => 'Не повторять',
							'repeat-x' => 'Повторять по горизонтали',
							'repeat-y' => 'Повторять по вертикали'
						)
					)),

					new fieldCheckbox('body_bg_image_fix', array(
						'title' => 'Зафиксировать фон',
					)),
			
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'Шапка',
				'childs' => array(
				
					new fieldNumber('brand_width', array(
						'title' => 'Высота шапки сайта',
						'hint' => 'В px (пикселях). Если не указано используется 100px'
					)),

					new fieldColor('brand_color', array(
						'title' => 'Цвет фона шапки',
					)),

					new fieldImage('brand_bg_image', array(
						'title' => 'Фоновое изображение шапки',
						'options' => array(
							'sizes' => array('small', 'original'),
							'allow_import_link' => true
						)
					)),

					new fieldList('brand_bg_image_pos', array(
						'title' => 'Расположение фона',
						'items' => array(
							'top' => 'По центру вверху',
							'top left' => 'В левом верхнем углу',
							'right top' => 'В правом верхнем углу',
							'left' => 'По левому краю и по центру',
							'center' => 'По центру',
							'right' => 'По правому краю и по центру',
							'bottom left' => 'В левом нижнем углу',
							'bottom' => 'По центру внизу',
							'bottom right' => 'В правом нижнем углу'
						)
					)),

					new fieldList('brand_bg_image_repeat', array(
						'title' => 'Повторять фон',
						'items' => array(
							'repeat' => 'Повторять фон',
							'no-repeat' => 'Не повторять',
							'repeat-x' => 'Повторять по горизонтали',
							'repeat-y' => 'Повторять по вертикали'
						)
					)),

					new fieldCheckbox('body_bg_off', array(
						'title' => 'Отключить фоновое изображение',
					)),
			
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'Виджеты',
				'childs' => array(

					new fieldNumber('widget_title_height', array(
						'title' => 'Высота заголовков, px',
					)),

					new fieldNumber('widget_title_font_size', array(
						'title' => 'Размер шрифта, px',
					)),
				
					new fieldColor('widget_title_bg_color', array(
						'title' => 'Цвет фона заголовка',
					)),

					new fieldColor('widget_title_text_color', array(
						'title' => 'Цвет текста заголовка',
					)),

					new fieldColor('widget_title_link_bg_color', array(
						'title' => 'Цвет фона ссылок в заголовках',
					)),

					new fieldColor('widget_title_link_bg_hover_color', array(
						'title' => 'Цвет фона ссылок в заголовках при наведении',
					)),

					new fieldColor('widget_title_link_text_color', array(
						'title' => 'Цвет текста ссылок заголовках',
					)),
			
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'Шрифты сайта',
				'childs' => array(
				
					new fieldText('fonts', array(
						'title' => 'Подключить шрифты',
						'hint' => 'Подключение шрифтов из внешнего источника через @import<br />Можно указать несколько, каждое подключение с новой строки<br />Например: @import url(\'https://fonts.googleapis.com/css?family=Roboto\');<br />Шрифты для сайта: <a target="_blank" href="https://fonts.google.com">GoogleFonts</a>'
					)),

					new fieldString('main_font', array(
						'title' => 'Основной шрифт сайта',
						'hint' => 'Укажите из подключенных к сайту шрифтов. Например: Roboto'
					)),
			
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'Главное меню',
				'childs' => array(
				
					new fieldNumber('m_menu_height', array(
						'title' => 'Высота меню, px',
					)),

					new fieldColor('m_menu_bg_color', array(
						'title' => 'Цвет фона',
					)),

					new fieldColor('m_menu_bg_hover_color', array(
						'title' => 'Цвет фона при наведении',
					)),

					new fieldColor('m_menu_bg_active_color', array(
						'title' => 'Цвет фона активного пункта',
					)),

					new fieldNumber('m_menu_font_size', array(
						'title' => 'Размер шрифта, px',
					)),

					new fieldColor('m_menu_font_color', array(
						'title' => 'Цвет шрифта',
					)),
			
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'Верхнее меню',
				'childs' => array(
				
					new fieldColor('t_menu_bg_color', array(
						'title' => 'Цвет фона',
					)),

					new fieldColor('t_menu_font_color', array(
						'title' => 'Цвет ссылок',
					)),

					new fieldColor('t_menu_font_hover_color', array(
						'title' => 'Цвет при наведении',
					)),

					new fieldColor('t_menu_font_active_color', array(
						'title' => 'Цвет активного пункта',
					)),

					new fieldNumber('t_menu_font_size', array(
						'title' => 'Размер шрифта, px',
					)),
			
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'Нижнее меню',
				'childs' => array(
				
					new fieldColor('f_menu_bg_color', array(
						'title' => 'Цвет фона',
					)),

					new fieldColor('f_menu_font_color', array(
						'title' => 'Цвет ссылок',
					)),

					new fieldColor('f_menu_font_hover_color', array(
						'title' => 'Цвет при наведении',
					)),

					new fieldNumber('f_menu_font_size', array(
						'title' => 'Размер шрифта, px',
					)),
			
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'CSS',
				'childs' => array(
					
					new fieldText('main_css', array(
						'title' => 'Пользовательский CSS сайта',
						'hint' => 'Здесь вы можете добавить свои стили для сайта<style>textarea#main_css{height:300px;font-size:12px;line-height:14px;}</style>. Без необходимости исправлять файлы CSS.'
					)),
					
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'Head',
				'childs' => array(
					
					new fieldText('main_head', array(
						'title' => 'Пользовательский код в head<style>textarea#main_head{height:300px;font-size:12px;line-height:14px;}</style>',
					)),
					
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'FavIcon',
				'childs' => array(

					new fieldImage('favicon', array(
						'title' => 'Favicon 16x16',
						'hint' => 'В формате png. Размер: 16х16px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('favicon_32', array(
						'title' => 'Favicon 32x32',
						'hint' => 'В формате png. Размер: 32х32px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('favicon_96', array(
						'title' => 'Favicon 96x96',
						'hint' => 'В формате png. Размер: 96х96px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('favicon_192', array(
						'title' => 'Favicon 192',
						'hint' => 'В формате png. Размер: 192х192px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),
			
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'AppleIcon',
				'childs' => array(

					new fieldImage('apple_icon_57', array(
						'title' => 'Apple Touch Icon 57x57',
						'hint' => 'В формате png. Размер: 57х57px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('apple_icon_60', array(
						'title' => 'Apple Touch Icon 60x60',
						'hint' => 'Рекомендуется в формате png. Размер: 60х60px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('apple_icon_72', array(
						'title' => 'Apple Touch Icon 72x72',
						'hint' => 'В формате png. Размер: 72х72px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('apple_icon_76', array(
						'title' => 'Apple Touch Icon 76x76',
						'hint' => 'В формате png. Размер: 76х76px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('apple_icon_114', array(
						'title' => 'Apple Touch Icon 114x114',
						'hint' => 'В формате png. Размер: 114х114px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('apple_icon_120', array(
						'title' => 'Apple Touch Icon 120x120',
						'hint' => 'В формате png. Размер: 120х120px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('apple_icon_144', array(
						'title' => 'Apple Touch Icon 144x144',
						'hint' => 'В формате png. Размер: 144х144px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('apple_icon_152', array(
						'title' => 'Apple Touch Icon 152x152',
						'hint' => 'В формате png. Размер: 152х152px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('apple_icon_180', array(
						'title' => 'Apple Touch Icon 180x180',
						'hint' => 'В формате png. Размер: 180х180px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),
			
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'Яндекс.Виджет',
				'childs' => array(
				
					new fieldColor('yw_bg_color', array(
						'title' => 'Цвет фона закладки в Яндекс.Браузере',
					)),

					new fieldImage('yw_image', array(
						'title' => 'Логотип для закладки в Яндекс.Браузере',
						'hint' => 'Картинка должна быть в формате png с прозрачным фоном. Высота не более 50px. Ширина не более 150px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),
			
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'Windows.Плитка',
				'childs' => array(
				
					new fieldColor('win_color', array(
						'title' => 'Цвет фона плитки',
					)),

					new fieldImage('win_70', array(
						'title' => 'Windows Icon 70x70',
						'hint' => 'В формате png. Размер: 70х70px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('win_144', array(
						'title' => 'Windows Icon 144x144',
						'hint' => 'В формате png. Размер: 144x144px',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('win_150', array(
						'title' => 'Windows Icon 150x150',
						'hint' => 'В формате png. Размер: 150х150px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('win_310x150', array(
						'title' => 'Windows Icon 310x150',
						'hint' => 'В формате png. Размер: 310х150px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),

					new fieldImage('win_310', array(
						'title' => 'Windows Icon 310x310',
						'hint' => 'В формате png. Размер: 70х70px.',
						'options' => array(
							'sizes' => array('small', 'original')
						)
					)),
			
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'Скины',
				'childs' => array(
					
					new fieldText('skins', array(
						'title' => 'Подключение скинов',
						'hint' => 'Каждый скин с новой строки. Можно использовать маску url через знак |'
					)),
				
				)
				
			),

			array(
				'type' => 'fieldset',
				'title' => 'Шаблоны сайта',
				'childs' => array(
					
					new fieldText('tpl', array(
						'title' => 'Изменить шаблон сайта',
						'hint' => 'Каждый шаблон с новой строки. Можно использовать маску url через знак |'
					)),
				
				)
				
			),

			array(
                'type'   => 'fieldset',
                'title'  => 'Фильтр текста',
                'childs' => array(

                	new fieldString('filter_fields', array(
						'title' => 'Поля для фильтрации',
						'hint' => 'Укажите через запятую системные имена полей, в которых необходимо включить фильтр. Это применимо как к типа контента так и к профилю пользователя.'
					)),

                	new fieldCheckbox('filter_on_content', array(
						'title' => 'Включить фильтр в контенте',
					)),

					new fieldCheckbox('filter_on_profile', array(
						'title' => 'Включить фильтр в профиле пользователя',
					)),

                	new fieldCheckbox('filter_on_comments', array(
						'title' => 'Включить фильтр в комментариях',
					)),

					new fieldCheckbox('filter_on_wall', array(
						'title' => 'Включить фильтр на стене',
					)),
					
					new fieldText('filter_text', array(
						'title' => 'Замена текста<style>textarea#filter_text{height:300px;font-size:12px;line-height:14px;}</style>',
						'hint' => 'Через разделитель "|". Пример: белый|черный - везде где встречается, слово "белый"" будет заменено на "черный"'
					)),

					new fieldText('filter_regular', array(
						'title' => 'Регулярные выражения<style>textarea#filter_regular{height:300px;font-size:12px;line-height:14px;}</style>',
						'hint' => 'Через разделитель "|". Можно использовать регулярные выражения.'
					)),

					new fieldText('filter_link', array(
						'title' => 'Перелинковка<style>textarea#filter_link{height:300px;font-size:12px;line-height:14px;}</style>',
						'hint' => 'Заменить слова на указанные ссылки. Через разделитель "|". Пример: новости|/news.'
					)),
					
				)
            ),

            array(
                'type'   => 'fieldset',
                'title'  => 'Вкладка',
                'childs' => array(

                	new fieldString('comments_tab_title', array(
						'title' => 'Заголовок вкладки'
					)),

                	new fieldText('comments_tab_html', array(
						'title' => 'Содержание вкладки'
					)),
					
				)
            ),

            array(
                'type'   => 'fieldset',
                'title'  => 'Редиректы',
                'childs' => array(

                	new fieldText('redirect', array(
						'title' => 'Правила для редиректов<style>textarea#redirect{height:300px;font-size:12px;line-height:14px;}</style>',
						'hint' => 'Через разделитель "Старая страница|Новая страница".<br />Можно поставлять * вместо случайных значений.<br />Каждое правило с новой строки.'
					)),
					
				)
            ),

            array(
                'type'   => 'fieldset',
                'title'  => '404',
                'childs' => array(

					new fieldList('error404', array(
                        'title' => 'Шаблон страницы 404',
                        'generator' => function($cat){
							
							$items = array();

							$items[null] = 'По умолчанию';

                            $skins = files_tree_to_array('templates/ktpl/assets/errors/skins/');

                            if ($skins){
								
                                foreach($skins as $key=>$item){
									
									$items[$key] = $key;

                                }
								
                            }

                            return $items;

                        }
                    )),
					
				)
            ),

            array(
                'type'   => 'fieldset',
                'title'  => 'Robots.txt',
                'childs' => array(

                	new fieldText('robots', array(
						'title' => 'Файл Robots.txt<style>textarea#robots{height:300px;font-size:12px;line-height:14px;}</style>',
						'hint' => 'Используется, если отсутствует файл robots.txt в корне сайта'
					)),
					
				)
            ),

            array(
				'type' => 'fieldset',
				'title' => 'Гостевой доступ',
				'childs' => array(
				
					new fieldNumber('guest_id', array(
						'title' => 'Анонимный пользователь',
						'hint' => 'Укажите id пользователя, который будет представляться анонимом'
					)),

					new fieldList('ctypes_guest_pub', array(
						'is_multiple' => true,
						'title' => 'Типы контента',
						'hint' => 'В каких типах контента разрешить гостевую публикацию?',
						'generator' => function ($data) {
							
							$ctypes = cmsCore::getModel('content')->getContentTypes();
							
                            if ($ctypes) {
                                foreach ($ctypes as $ctype) {                                    
                                    $items[$ctype['name']] = $ctype['title'];
                                }
                            }

                            return $items;
							
						}
						
						)
					),
					
				)
				
			),
			
		);
		
	}
	
}