From c5825479e9570705cae3c23788f74bb40ab95234 Mon Sep 17 00:00:00 2001
From: pafnuty
Date: Fri, 19 Oct 2018 21:34:41 +0400
Subject: [PATCH] Initial commit
---
.editorconfig | 13 +
.github/ISSUE_TEMPLATE.md | 7 +
.gitignore | 232 +++++
CHANGELOG.md | 40 +
LICENSE | 2 +-
README.md | 24 +-
catface_installer.php | 103 ++
catface_uninstaller.php | 96 ++
engine/editor/catface_description.php | 281 +++++
engine/editor/catface_description_pages.php | 281 +++++
engine/inc/catface.php | 533 ++++++++++
engine/modules/catface.php | 199 ++++
engine/skins/application.css | 1018 +++++++++++++++++++
engine/skins/images/catface.png | Bin 0 -> 14380 bytes
templates/Default/catface.tpl | 7 +
15 files changed, 2834 insertions(+), 2 deletions(-)
create mode 100644 .editorconfig
create mode 100644 .github/ISSUE_TEMPLATE.md
create mode 100644 .gitignore
create mode 100644 CHANGELOG.md
create mode 100644 catface_installer.php
create mode 100644 catface_uninstaller.php
create mode 100644 engine/editor/catface_description.php
create mode 100644 engine/editor/catface_description_pages.php
create mode 100644 engine/inc/catface.php
create mode 100644 engine/modules/catface.php
create mode 100644 engine/skins/application.css
create mode 100644 engine/skins/images/catface.png
create mode 100644 templates/Default/catface.tpl
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..ec67311
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,13 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = tab
+indent_size = 4
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+insert_final_newline = false
+trim_trailing_whitespace = false
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000..9e053cb
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,7 @@
+# Описание ошибки:
+
+- При каких условиях воспроизводится ошибка
+- Страница, на которой наблюдается ошибка
+- Вносились ли модификации в движок
+- Версия DLE: 10.3
+- Версия PHP: 5.6
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1c8c791
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,232 @@
+# Redactors
+/.idea/
+
+
+# Installed DLE
+/engine/cache/*.tmp
+/engine/cache/system/*.php
+/engine/data/*.txt
+/engine/data/*.php
+
+# DLE 11.1 sources
+/.htaccess
+/admin.php
+/backup/.htaccess
+/backup/index.html
+/cron.php
+/engine/ajax/addcomments.php
+/engine/ajax/adminfunction.php
+/engine/ajax/allvotes.php
+/engine/ajax/antivirus.php
+/engine/ajax/bbcode.php
+/engine/ajax/calendar.php
+/engine/ajax/clean.php
+/engine/ajax/comments.php
+/engine/ajax/complaint.php
+/engine/ajax/deletecomments.php
+/engine/ajax/editcomments.php
+/engine/ajax/editnews.php
+/engine/ajax/favorites.php
+/engine/ajax/feedback.php
+/engine/ajax/find_relates.php
+/engine/ajax/find_tags.php
+/engine/ajax/keywords.php
+/engine/ajax/message.php
+/engine/ajax/newsletter.php
+/engine/ajax/pm.php
+/engine/ajax/poll.php
+/engine/ajax/profile.php
+/engine/ajax/quote.php
+/engine/ajax/rating.php
+/engine/ajax/ratingcomments.php
+/engine/ajax/rebuild.php
+/engine/ajax/registration.php
+/engine/ajax/replycomments.php
+/engine/ajax/rss.php
+/engine/ajax/search.php
+/engine/ajax/sitemap.php
+/engine/ajax/templates.php
+/engine/ajax/typograf.php
+/engine/ajax/updates.php
+/engine/ajax/upload.php
+/engine/ajax/vote.php
+/engine/api/
+/engine/cache/*
+/engine/cache/system/*
+/engine/classes/.htaccess
+/engine/classes/antivirus.class.php
+/engine/classes/calendar/calendar.css
+/engine/classes/calendar/calendar.js
+/engine/classes/comments.class.php
+/engine/classes/download.class.php
+/engine/classes/flashplayer/*
+/engine/classes/google.class.php
+/engine/classes/highlight/
+/engine/classes/highslide/
+/engine/classes/html5player/*
+/engine/classes/js/*
+/engine/classes/mail.class.php
+/engine/classes/mail/class.phpmailer.php
+/engine/classes/masha/*
+/engine/classes/min/*
+/engine/classes/mobiledetect.class.php
+/engine/classes/mysql.php
+/engine/classes/parse.class.php
+/engine/classes/recaptcha.php
+/engine/classes/rss.class.php
+/engine/classes/social.class.php
+/engine/classes/stopspam.class.php
+/engine/classes/templates.class.php
+/engine/classes/thumb.class.php
+/engine/classes/typograf.class.php
+/engine/classes/uploads/*
+/engine/data/.htaccess
+/engine/data/emoticons/*
+/engine/download.php
+/engine/editor/*
+/engine/engine.php
+/engine/go.php
+/engine/inc/.htaccess
+/engine/inc/addnews.php
+/engine/inc/banners.php
+/engine/inc/blockip.php
+/engine/inc/categories.php
+/engine/inc/check.php
+/engine/inc/clean.php
+/engine/inc/cmoderation.php
+/engine/inc/comments.php
+/engine/inc/complaint.php
+/engine/inc/dboption.php
+/engine/inc/dumper.php
+/engine/inc/editnews.php
+/engine/inc/editusers.php
+/engine/inc/editvote.php
+/engine/inc/email.php
+/engine/inc/files.php
+/engine/inc/googlemap.php
+/engine/inc/help.php
+/engine/inc/include/.htaccess
+/engine/inc/include/functions.inc.php
+/engine/inc/include/init.php
+/engine/inc/include/inserttag.php
+/engine/inc/iptools.php
+/engine/inc/links.php
+/engine/inc/logs.php
+/engine/inc/main.php
+/engine/inc/mass_static_actions.php
+/engine/inc/mass_user_actions.php
+/engine/inc/massactions.php
+/engine/inc/newsletter.php
+/engine/inc/options.php
+/engine/inc/preview.php
+/engine/inc/question.php
+/engine/inc/rebuild.php
+/engine/inc/rss.php
+/engine/inc/rssinform.php
+/engine/inc/search.php
+/engine/inc/social.php
+/engine/inc/static.php
+/engine/inc/tagscloud.php
+/engine/inc/templates.php
+/engine/inc/userfields.php
+/engine/inc/usergroup.php
+/engine/inc/videoconfig.php
+/engine/inc/wordfilter.php
+/engine/inc/xfields.php
+/engine/init.php
+/engine/modules/.htaccess
+/engine/modules/addcomments.php
+/engine/modules/addnews.php
+/engine/modules/antibot/*
+/engine/modules/banned.php
+/engine/modules/banners.php
+/engine/modules/bbcode.php
+/engine/modules/calendar.php
+/engine/modules/changemail.php
+/engine/modules/comments.php
+/engine/modules/cron.php
+/engine/modules/deletenews.php
+/engine/modules/favorites.php
+/engine/modules/feedback.php
+/engine/modules/functions.php
+/engine/modules/lastcomments.php
+/engine/modules/links.php
+/engine/modules/lostpassword.php
+/engine/modules/main.php
+/engine/modules/offline.php
+/engine/modules/pm.php
+/engine/modules/pm_alert.php
+/engine/modules/poll.php
+/engine/modules/profile.php
+/engine/modules/register.php
+/engine/modules/rssinform.php
+/engine/modules/search.php
+/engine/modules/show.custom.php
+/engine/modules/show.full.php
+/engine/modules/show.short.php
+/engine/modules/sitelogin.php
+/engine/modules/social.php
+/engine/modules/static.php
+/engine/modules/stats.php
+/engine/modules/tagscloud.php
+/engine/modules/topnews.php
+/engine/modules/vote.php
+/engine/opensearch.php
+/engine/preview.php
+/engine/print.php
+/engine/rss.php
+/engine/skins/.htaccess
+/engine/skins/codemirror/css/default.css
+/engine/skins/codemirror/js/LICENSE
+/engine/skins/codemirror/js/code.js
+/engine/skins/default.skin.php
+/engine/skins/fonts/*
+/engine/skins/images/*
+/engine/skins/javascripts/application.js
+/engine/skins/stylesheets/application.css
+/engine/skins/stylesheets/frame.css
+/index.php
+/install.php
+/language/.htaccess
+/language/Russian/admincheck.lng
+/language/Russian/adminlogs.lng
+/language/Russian/adminpanel.lng
+/language/Russian/help.lng
+/language/Russian/website.lng
+/robots.txt
+/templates/.htaccess
+/templates/Default/*
+/templates/Gemini/*
+/templates/Green/*
+/templates/Pisces/*
+/templates/Red/*
+/templates/banned.tpl
+/templates/opensearch.tpl
+/templates/rss.tpl
+/templates/smartphone/*
+/upgrade/*
+/uploads/*
+
+# DLE 11.3 sources
+/engine/ajax/commentssubscribe.php
+/engine/ajax/twofactor.php
+/engine/classes/htmlpurifier/*
+/engine/classes/memcache.class.php
+/engine/inc/lostpassword.php
+/engine/inc/redirects.php
+/engine/inc/twofactor.php
+
+# DLE 12 sources
+/engine/inc/metatags.php
+/language/English/admincheck.lng
+/language/English/adminlogs.lng
+/language/English/adminpanel.lng
+/language/English/help.lng
+/language/English/website.lng
+
+# Place your custom files here
+
+!/engine/skins/images/catface.png
+!/engine/skins/application.css
+!/engine/editor/catface_*
+!/templates/Default/catface.tpl
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..9232a18
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,40 @@
+
+## v.2.3 — 23.05.2014
+- Полностью обновлен и переработан внешний вид модуля.
+- Исправлено переключение редакторов (BBCODES, WYSIWYG) для новых версий DLE.
+- Исправлена ошибка на PHP версии 5.4 и выше.
+
+## v.2.2 — 31.10.2013
+- Полный отказ от DLE_API — теперь модуль работает намного быстрее и потребляет гораздо меньше ресурсов.
+- Исправлена ошибка, когда для раздела не было никаких настроек и модуль посылал каждый раз запрос в БД даже при включенном кешировании.
+- Небольшие исправления, оптимизация и улучшения кода модуля.
+- За обновление отдельное спасибо Паше ПафНутиЙ.
+
+## v.2.1 — 13.06.2012
+- Визуальный редактор теперь подстраивается под версию DLE, то есть работает как в версии DLE 9.6, так и в более ранних версиях.
+- Исправлен недочет в анинсталлере, когда при удалении модуля, таблица с данными не удалялась из базы.
+
+## v.2.0 — 03.06.2012
+- Добавлено кеширование.
+- Добавлены специальные теги для вставки в catface.tpl — [show_name][/show_name] и [show_description][/show_description].
+- Обновлён инсталлер и анинсталлер.
+- Обновлен внешний вид, заменена иконка модуля.
+
+## v.1.1 — 04.08.2011
+- Появилась новая опция «Где активировать модуль», которая позволяет скрыть на страницах категории не только название и описание, но и все остальное содержимое tpl-шаблона.
+
+## v.1.0.10 — 01.08.2011
+- Исправлена проблема с отображением пустого тега H1 если выбрана опция «скрывать» для заголовка категории.
+
+## v.1.0.9 — 01.06.2011
+- Решена проблема с выводом знаков ??? вместо букв.
+- Обновлена таблица в базе данных (добавлен первичный ключ и явно указана кодировка cp1251).
+
+## v.1.0.7 — 16.05.2011
+- Исправлена ошибка с WYSIWYG-редактором для версий DLE ниже 9.2.
+
+## v.1.0.6 — 16.05.2011
+- Исправлена ошибка из-за которой не работал скрипт, скрывающий описание для остальных страниц при выключенном WYSIWYG-редакторе.
+
+## v.1.0 — 12.05.2011
+- Паблик релиз, идентичен девеловерской версии 1.0.5.
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
index 91ab692..e5b522e 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2018 Pavel Belousov
+Copyright (c) 2018 Александр Алаев
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index 0ab92f5..f3be00c 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,23 @@
-# DLE-CatFace
\ No newline at end of file
+# DLE-CatFace
+![version](https://img.shields.io/badge/version-2.3.1-red.svg?style=flat-square "Version")
+![DLE](https://img.shields.io/badge/DLE-8.[b]2[/b]-green.svg?style=flat-square "DLE Version")
+[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/dle-modules/DLE-StarterKit/blob/master/LICENSE)
+
+Модуль CatFace — SEO оптимизация категорий для DLE Datalife Engine
+
+## Установка модуля:
+
+- Распакуйте архив с модулем;
+- Скопируйте содержимое архива (кроме /templates/) на сервер;
+- Содержимое папки /templates/Default/ поместите в папку своего шаблона;
+- Запустите файл catface_installer.php и следуйте его инструкциям;
+- Удалите файл catface_installer.php с сервера;
+- Откройте файл main.tpl своего шаблона и в нужное место добавьте следующий код:`[aviable=cat|main]{include file="engine/modules/catface.php"}[/aviable]`
+- Процесс установки завершен, переходите к настройке модуля.
+
+## Удаление модуля
+
+- Загрузите файл catface_uninstaller.php на сервер, в папку где установлен DLE;
+- Запустите файл http://site.ru/catface_uninstaller.php и следуйте инструкциям;
+- Удалите все файлы модуля, загруженные при установке;
+- Не забудьте также удалить файл catface_uninstaller.php.
\ No newline at end of file
diff --git a/catface_installer.php b/catface_installer.php
new file mode 100644
index 0000000..bf9c096
--- /dev/null
+++ b/catface_installer.php
@@ -0,0 +1,103 @@
+
+
+
+ CatFace
+
+
+
+
+
+
+
+
+
+ CatFace!';
+ $output .= '
';
+ $output .= '! catface_installer.php !
';
+
+ // $_POST catface_install, ,
+ if(!empty($_POST['catface_install']))
+ {
+ // config
+ include_once ('engine/data/config.php');
+
+ // DLE API
+ include ('engine/api/api.class.php');
+
+ // ( )
+ $query = "DROP TABLE IF EXISTS `".PREFIX."_category_face`;";
+ $dle_api->db->query($query);
+
+ // C
+ $query = "CREATE TABLE `".PREFIX."_category_face` (
+ `category_id` int(11) NOT NULL,
+ `name` varchar(255) NOT NULL,
+ `name_pages` varchar(255) NOT NULL,
+ `description` text NOT NULL,
+ `description_pages` text NOT NULL,
+ `module_placement` enum('nowhere','first_page','all_pages') NOT NULL,
+ `show_name` enum('show','default','hide') NOT NULL,
+ `show_description` enum('show','default','hide') NOT NULL,
+ `name_placement` enum('first_page','all_pages') NOT NULL,
+ `description_placement` enum('first_page','all_pages') NOT NULL,
+ PRIMARY KEY (`category_id`)
+ ) DEFAULT CHARSET=cp1251;";
+ $dle_api->db->query($query);
+
+ //
+ $dle_api->install_admin_module('catface', 'CatFace - SEO ', ' , ', 'catface.png');
+
+ //
+ $output .= '';
+ $output .= ' ! ! !';
+ $output .= '
';
+ }
+
+ // $_POST ,
+ else
+ {
+ //
+ $output .= '';
+ $output .= '
';
+ $output .= '
';
+ }
+
+ $output .= '';
+ $output .= ' ';
+ $output .= '
';
+
+ // ,
+ return $output;
+ }
+
+?>
diff --git a/catface_uninstaller.php b/catface_uninstaller.php
new file mode 100644
index 0000000..01ff185
--- /dev/null
+++ b/catface_uninstaller.php
@@ -0,0 +1,96 @@
+
+
+
+ CatFace
+
+
+
+
+
+
+
+
+
+ CatFace!';
+ $output .= '! catface_uninstaller.php !
';
+ $output .= '';
+ $output .= ' , :';
+ $output .= '
';
+ $output .= '- /engine/modules/catface.php
';
+ $output .= '- /engine/inc/catface.php
';
+ $output .= '- /engine/editor/catface_description.php
';
+ $output .= '- /engine/editor/catface_description_pages.php
';
+ $output .= '- /engine/skins/images/catface.png
';
+ $output .= '- /templates/ /catface.tpl
';
+ $output .= '
';
+ $output .= '';
+
+ // $_POST catface_uninstall, ,
+ if(!empty($_POST['catface_uninstall']))
+ {
+ // config
+ include_once ('engine/data/config.php');
+
+ // DLE API
+ include ('engine/api/api.class.php');
+
+ // category_face
+ $query = "DROP TABLE IF EXISTS `".PREFIX."_category_face`;";
+ $dle_api->db->query($query);
+
+ //
+ $dle_api->uninstall_admin_module('catface');
+
+ //
+ $output .= '';
+ $output .= ' !';
+ $output .= '
';
+ }
+
+ // $_POST ,
+ else
+ {
+ //
+ $output .= '';
+ $output .= '
';
+ $output .= '';
+ }
+
+ $output .= '';
+ $output .= ' ';
+ $output .= '
';
+
+ // ,
+ return $output;
+ }
+
+?>
\ No newline at end of file
diff --git a/engine/editor/catface_description.php b/engine/editor/catface_description.php
new file mode 100644
index 0000000..e0ac1f9
--- /dev/null
+++ b/engine/editor/catface_description.php
@@ -0,0 +1,281 @@
+
+
+
+
+
+
+HTML;
+}
+
+else
+{
+ $p_name = urlencode($member_id['name']);
+
+echo <<
+
+
+
+
+
+
+HTML;
+}
+
+?>
\ No newline at end of file
diff --git a/engine/editor/catface_description_pages.php b/engine/editor/catface_description_pages.php
new file mode 100644
index 0000000..3c2b443
--- /dev/null
+++ b/engine/editor/catface_description_pages.php
@@ -0,0 +1,281 @@
+
+
+
+
+
+
+HTML;
+}
+
+else
+{
+ $p_name = urlencode($member_id['name']);
+
+echo <<
+
+
+
+
+
+
+HTML;
+}
+
+?>
\ No newline at end of file
diff --git a/engine/inc/catface.php b/engine/inc/catface.php
new file mode 100644
index 0000000..6e4a598
--- /dev/null
+++ b/engine/inc/catface.php
@@ -0,0 +1,533 @@
+dle_api = $dle_api;
+ }
+
+
+ /*
+ * CategoryFaceAdmin - ,
+ */
+ public function run()
+ {
+ // action ; action=list ( )
+ $action = !empty($_REQUEST['action'])?$_REQUEST['action']:'list';
+
+ // action,
+ switch($action)
+ {
+ //
+ case 'list':
+ $output = $this->actionList();
+ $headerText = ' ';
+ break;
+
+ //
+ case 'form':
+ $output = $this->actionForm();
+ $headerText = '<< ';
+ break;
+
+ //
+ case 'save':
+ $output = $this->actionSave();
+ $headerText = ' ';
+ break;
+
+ // - action
+ default:
+ $headerText = '! !';
+ break;
+ }
+
+ $this->showOutput($headerText, $output);
+ }
+
+
+ /*
+ *
+ * @return string
+ */
+ public function actionList()
+ {
+ return '
+
+
+
+ ID |
+ |
+ |
+
+
+ 0 |
+ |
+ [] |
+
+ '.$this->createCatsTable().'
+
+
+
+
+ ';
+ }
+
+
+ /*
+ *
+ * @param $parentId - -
+ * @param $subLevelMarker -
+ * @return string
+ */
+ public function createCatsTable($parentId = 0, $subLevelMarker = '')
+ {
+ //
+ $cats = $this->dle_api->load_table (PREFIX."_category", 'id, name', 'parentid = '.$parentId, true, 0, false, 'posi', 'ASC');
+
+ // $catsTable
+ $catsTable = '';
+
+ // - ,
+ if($cats)
+ {
+ foreach($cats as $cat)
+ {
+ //
+ $catsTable .= '
+
+ '.$cat['id'].' |
+ '.$subLevelMarker.' '.$cat['name'].' |
+ [] [] |
+
';
+
+ //
+ $catsTable .= $this->createCatsTable($cat['id'], $subLevelMarker.'--');
+ }
+ }
+
+ return $catsTable;
+ }
+
+
+
+ /*
+ *
+ * @return string
+ */
+ public function actionForm()
+ {
+ // id
+ $id = (int)$_REQUEST['id'];
+
+ // category_face
+ $categoryFace = $this->dle_api->load_table (PREFIX."_category_face", '*', 'category_id = '.$id, false);
+
+ //
+ global $lang, $config, $user_group, $member_id, $dle_login_hash;
+
+ //
+ include_once ENGINE_DIR . '/classes/parse.class.php';
+ $parse = new ParseFilter( Array (), Array (), 1, 1 );
+
+ // wysiwyg
+ if($this->dle_api->dle_config['allow_admin_wysiwyg'] && ($this->dle_api->dle_config['allow_admin_wysiwyg'] != "no") )
+ {
+ $categoryFace['description'] = $parse->decodeBBCodes($categoryFace['description'], true, $this->dle_api->dle_config['allow_admin_wysiwyg']);
+ $categoryFace['description_pages'] = $parse->decodeBBCodes($categoryFace['description_pages'], true, $this->dle_api->dle_config['allow_admin_wysiwyg']);
+
+ ob_start();
+ include (ENGINE_DIR . '/editor/catface_description.php');
+ ob_implicit_flush(false);
+ $editor_description = ob_get_clean();
+
+ ob_start();
+ include (ENGINE_DIR . '/editor/catface_description_pages.php');
+ ob_implicit_flush(false);
+ $editor_description_pages = ob_get_clean();
+ }
+
+ // bbcode
+ else
+ {
+ $categoryFace['description'] = $parse->decodeBBCodes($categoryFace['description'], false);
+ $categoryFace['description_pages'] = $parse->decodeBBCodes($categoryFace['description_pages'], false);
+
+ $bb_editor = true;
+ include (ENGINE_DIR . '/inc/include/inserttag.php');
+ $editor_description = '
+ ';
+
+ $editor_description_pages = '
+ ';
+ }
+
+ return '
+
+
+
+ ';
+ }
+
+
+ /*
+ * SEO - category_face
+ * @return string
+ */
+ public function actionSave()
+ {
+ //
+ global $dle_login_hash, $user_group, $member_id, $config;
+
+ //
+ if( $_REQUEST['user_hash'] == "" or $_REQUEST['user_hash'] != $dle_login_hash )
+ {
+ die( "Hacking attempt! User not found" );
+ }
+
+ // id
+ if($_POST['id'] == '')
+ {
+ die(' !');
+ }
+
+ //
+ include_once ENGINE_DIR . '/classes/parse.class.php';
+ $parse = new ParseFilter( Array (), Array (), 1, 1 );
+
+ //
+ $id = $_POST['id'];
+ $name = !empty($_POST['name'])?$_POST['name']:'';
+ $name_pages = !empty($_POST['name_pages'])?$_POST['name_pages']:'';
+ $module_placement = !empty($_POST['module_placement'])?$_POST['module_placement']:'all_pages';
+ $show_name = !empty($_POST['show_name'])?$_POST['show_name']:'show';
+ $name_placement = !empty($_POST['name_placement'])?$_POST['name_placement']:'all_pages';
+ $description = !empty($_POST['description'])?$_POST['description']:'';
+ $description_pages = !empty($_POST['description_pages'])?$_POST['description_pages']:'';
+ $show_description = !empty($_POST['show_description'])?$_POST['show_description']:'show';
+ $description_placement = !empty($_POST['description_placement'])?$_POST['description_placement']:'first_page';
+
+ //
+ $id = intval($id);
+ // $name = $this->dle_api->db->safesql($parse->process(trim(htmlspecialchars($name))));
+ $name = $this->dle_api->db->safesql ($parse->process (trim (htmlspecialchars ($name, ENT_COMPAT, $config['charset']))));
+ // $name_pages = $this->dle_api->db->safesql($parse->process(trim(htmlspecialchars($name_pages))));
+ $name_pages = $this->dle_api->db->safesql ($parse->process (trim (htmlspecialchars ($name_pages, ENT_COMPAT, $config['charset']))));
+ $module_placement = $this->dle_api->db->safesql($parse->process(trim(htmlspecialchars($module_placement))));
+ $show_name = $this->dle_api->db->safesql($parse->process(trim(htmlspecialchars($show_name))));
+ $name_placement = $this->dle_api->db->safesql($parse->process(trim(htmlspecialchars($name_placement))));
+ $show_description = $this->dle_api->db->safesql($parse->process(trim(htmlspecialchars($show_description))));
+ $description_placement = $this->dle_api->db->safesql($parse->process(trim(htmlspecialchars($description_placement))));
+
+ //
+ if (!$user_group[$member_id['user_group']]['allow_html'] )
+ {
+ $description = strip_tags($description);
+ $description_pages = strip_tags($description_pages);
+ }
+ if($this->dle_api->dle_config['allow_admin_wysiwyg'] && ($this->dle_api->dle_config['allow_admin_wysiwyg'] != "no"))
+ {
+ $parse->allow_code = false;
+ }
+
+ $description = $parse->process($description);
+ $description_pages = $parse->process($description_pages);
+
+ if($this->dle_api->dle_config['allow_admin_wysiwyg'] && ($this->dle_api->dle_config['allow_admin_wysiwyg'] != "no"))
+ {
+ $description = $this->dle_api->db->safesql($parse->BB_Parse($description));
+ $description_pages = $this->dle_api->db->safesql($parse->BB_Parse($description_pages));
+ }
+ else
+ {
+ $description = $this->dle_api->db->safesql($parse->BB_Parse($description, false));
+ $description_pages = $this->dle_api->db->safesql($parse->BB_Parse($description_pages, false));
+ }
+
+ // , -
+ if($parse->not_allowed_text)
+ {
+ msg( "error", ' ', ' ', "javascript:history.go(-1)" );
+ }
+
+ // , category_face
+ $categoryFace = $this->dle_api->load_table (PREFIX."_category_face", 'category_id', 'category_id = '.$id, false);
+
+ // ,
+ if(!empty($categoryFace))
+ {
+ $this->dle_api->db->query(
+ "UPDATE ".PREFIX."_category_face SET ".
+ "`name` = '$name', ".
+ "`name_pages` = '$name_pages', ".
+ "`module_placement` = '$module_placement', ".
+ "`show_name` = '$show_name', ".
+ "`name_placement` = '$name_placement', ".
+ "`description` = '$description', ".
+ "`description_pages` = '$description_pages', ".
+ "`show_description` = '$show_description', ".
+ "`description_placement` = '$description_placement' ".
+ "WHERE `category_id` = $id"
+ );
+ }
+
+ // ,
+ else
+ {
+ $this->dle_api->db->query(
+ "INSERT INTO ".PREFIX."_category_face ".
+ "(`category_id`, `name`, `name_pages`, `module_placement`, `show_name`, `name_placement`, `description`, `description_pages`, `show_description`, `description_placement`) ".
+ "VALUES($id, '$name', '$name_pages', '$module_placement', '$show_name', '$name_placement', '$description', '$description_pages', '$show_description', '$description_placement')"
+ );
+ }
+
+ //
+ msg("info", ' !', ' !', '?mod=catface');
+ }
+
+
+ /*
+ *
+ * @param $headerText -
+ * @param $output -
+ */
+ public function showOutput($headerText, $output)
+ {
+ //
+ echoheader('CatFace', ' SEO- ');
+ echo '
+
+'.($config['version_id'] >= 10.2 ? '' : '').'
+
+
+
+ ';
+
+ //
+ echofooter();
+ }
+ }
+ /*---End Of CategoryFaceAdmin Class---*/
+
+ // CategoryFaceAdmin
+ $CategoryFaceAdmin = new CategoryFaceAdmin;
+
+ //
+ $CategoryFaceAdmin->run();
+
+?>
\ No newline at end of file
diff --git a/engine/modules/catface.php b/engine/modules/catface.php
new file mode 100644
index 0000000..59944ee
--- /dev/null
+++ b/engine/modules/catface.php
@@ -0,0 +1,199 @@
+dle_config = $config;
+ $this->db = $db;
+ }
+
+
+ /*
+ * CategoryFace
+ */
+ public function run() {
+ //
+ global $dle_module, $cat_info, $category_id;
+
+ // $cat_info $category_id,
+ $categoryInfo = $cat_info;
+ $categoryId = $category_id;
+
+ // ( )
+ if (($dle_module == 'cat' && $categoryId > 0 && !empty($categoryInfo[$categoryId])) || ($dle_module == 'main')) {
+ // ,
+ if ($dle_module == 'main') {
+ $categoryId = 0;
+ $categoryInfo[0]['name'] = $this->dle_config['home_title'];
+ $categoryInfo[0]['descr'] = $this->dle_config['description'];
+ }
+
+ //
+ $page = intval($_REQUEST['cstart']);
+
+ //
+ $output = false;
+
+ $output = dle_cache('catface_', md5($categoryId . '_' . $page) . $this->dle_config['skin']);
+
+ // ,
+ if ($output !== false) {
+ $this->showOutput($output);
+ return;
+ }
+
+ // category_face
+ $categoryFace = $this->db->super_query("SELECT * FROM " . PREFIX . "_category_face WHERE category_id = '" . $categoryId . "'");
+
+ // ,
+ if (!empty($categoryFace) && $categoryFace['module_placement'] != 'nowhere' && ($categoryFace['module_placement'] == 'all_pages' || $page < 2)) {
+ //
+ if ($categoryFace['name_placement'] == 'all_pages' || $page < 2) {
+ switch ($categoryFace['show_name']) {
+ case 'show':
+ if ($categoryFace['name'] != '') {
+ $name = stripslashes($categoryFace['name']);
+ }
+ break;
+ case 'default':
+ if ($categoryInfo[$categoryId]['name'] != '') {
+ $name = stripslashes($categoryInfo[$categoryId]['name']);
+ }
+ break;
+ case 'hide':
+ break;
+ }
+ }
+
+ // ,
+ elseif ($page >= 2 && $categoryFace['name_pages'] != '') {
+ $name = stripslashes($categoryFace['name_pages']);
+ }
+
+ //
+ if ($categoryFace['description_placement'] == 'all_pages' || $page < 2) {
+ switch ($categoryFace['show_description']) {
+ case 'show':
+ if ($categoryFace['description'] != '') {
+ $description = stripslashes($categoryFace['description']);
+ }
+ break;
+ case 'default':
+ if ($categoryInfo[$categoryId]['descr'] != '') {
+ $description = stripslashes($categoryInfo[$categoryId]['descr']);
+ }
+ break;
+ case 'hide':
+ break;
+ }
+ }
+
+ // ,
+ elseif ($page >= 2 && $categoryFace['description_pages'] != '') {
+ $description = stripslashes($categoryFace['description_pages']);
+ }
+
+ $output = $this->applyTemplate('catface',
+ array(
+ '{name}' => $name,
+ '{description}' => $description,
+ ),
+ array(
+ "'\[show_name\\](.*?)\[/show_name\]'si" => !empty($name) ? "\\1" : '',
+ "'\[show_description\\](.*?)\[/show_description\]'si" => !empty($description) ? "\\1" : '',
+ )
+ );
+ }
+
+ // ,
+ else {
+ // ( +1 ).
+ $output = 'empty';
+ }
+ }
+
+
+ //
+ create_cache('catface_', $output, md5($categoryId . '_' . $page) . $this->dle_config['skin']);
+
+
+ $this->showOutput($output);
+ }
+
+
+ /*
+ *
+ * @param $output -
+ */
+ public function showOutput($output) {
+ if ($output != 'empty') {
+ echo $output;
+ }
+ }
+
+
+ /*
+ * tpl-,
+ * @param $template - ,
+ * @param $vars -
+ * @param $vars -
+ *
+ * @return string tpl-, $data
+ */
+ public function applyTemplate($template, $vars = array(), $blocks = array()) {
+ // $template.tpl,
+ if (!isset($tpl)) {
+ $tpl = new dle_template();
+ $tpl->dir = TEMPLATE_DIR;
+ }
+ else {
+ $tpl->result[$template] = '';
+ }
+ $tpl->load_template($template . '.tpl');
+
+ //
+ $tpl->set('', $vars);
+
+ //
+ foreach ($blocks as $block => $value) {
+ $tpl->set_block($block, $value);
+ }
+
+ // ( ;))
+ $tpl->compile($template);
+
+ //
+ return $tpl->result[$template];
+ }
+}
+
+/*---End Of CategoryFace Class---*/
+
+// CategoryFace
+$CategoryFace = new CategoryFace;
+
+//
+$CategoryFace->run();
+
+?>
\ No newline at end of file
diff --git a/engine/skins/application.css b/engine/skins/application.css
new file mode 100644
index 0000000..193f6c2
--- /dev/null
+++ b/engine/skins/application.css
@@ -0,0 +1,1018 @@
+a {
+ background:transparent;
+}
+a:focus {
+ outline:thin dotted;
+}
+a:active,a:hover {
+ outline:0;
+}
+hr {
+ -moz-box-sizing:content-box;
+ box-sizing:content-box;
+ height:0;
+}
+small {
+ font-size:80%;
+}
+button,input,select,textarea {
+ font-size:100%;
+ margin:0;
+}
+button,input {
+ line-height:normal;
+}
+button,select {
+ text-transform:none;
+}
+button,html input[type="button"],input[type="reset"],input[type="submit"] {
+ -webkit-appearance:button;
+ cursor:pointer;
+}
+input[type="checkbox"],input[type="radio"] {
+ box-sizing:border-box;
+ padding:0;
+}
+button::-moz-focus-inner,input::-moz-focus-inner {
+ border:0;
+ padding:0;
+}
+textarea {
+ overflow:auto;
+ vertical-align:top;
+}
+table {
+ border-collapse:collapse;
+ border-spacing:0;
+}
+
+table td[class*="col-"], table th[class*="col-"] {
+ float: none;
+ display: table-cell;
+}
+
+*,*:before,*:after {
+ -webkit-box-sizing:border-box;
+ -moz-box-sizing:border-box;
+ box-sizing:border-box;
+}
+input,button,select,textarea {
+ font-size:inherit;
+ line-height:inherit;
+}
+a {
+ color:#78808a;
+ text-decoration:none;
+}
+ a:hover, a:focus {
+ color:#5a6573;
+ text-decoration:underline;
+}
+ a:focus {
+ outline:thin dotted #333;
+ outline:5px auto -webkit-focus-ring-color;
+ outline-offset:-2px;
+}
+hr {
+ margin-top:20px;
+ margin-bottom:20px;
+ border:0;
+ border-top:1px solid #eeeeee;
+}
+p {
+ margin:0 0 10px;
+}
+small,.small {
+ font-size:85%;
+}
+h1, h2, h3, h4, h5, h6,.h1, .h2, .h3, .h4, .h5, .h6 {
+ line-height:1.1;
+ color:inherit;
+}
+ h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small {
+ line-height:1;
+ color:#999999;
+}
+h1,h2,h3 {
+ margin-top:20px;
+ margin-bottom:10px;
+}
+ h1 small, h2 small, h3 small {
+ font-size:65%;
+}
+h4,h5,h6 {
+ margin-top:10px;
+ margin-bottom:10px;
+}
+ h4 small, h5 small, h6 small {
+ font-size:75%;
+}
+h1, .h1 {
+ font-size:36px;
+}
+h2, .h2 {
+ font-size:30px;
+}
+h3, .h3 {
+ font-size:24px;
+}
+h4, .h4 {
+ font-size:18px;
+}
+h5, .h5 {
+ font-size:14px;
+}
+h6, .h6 {
+ font-size:12px;
+}
+.page-header {
+ padding-bottom:9px;
+ margin:40px 0 20px;
+ border-bottom:1px solid #eeeeee;
+}
+ul,ol {
+ margin-top:0;
+ margin-bottom:10px;
+}
+ ul ul, ul ol, ol ul, ol ol {
+ margin-bottom:0;
+}
+
+.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12 {
+ position:relative;
+ min-height:1px;
+ padding-left:15px;
+ padding-right:15px;
+}
+.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11 {
+ float:left;
+}
+.col-xs-1 {
+ width:8.33333%;
+}
+.col-xs-2 {
+ width:16.66667%;
+}
+.col-xs-3 {
+ width:25%;
+}
+.col-xs-4 {
+ width:33.33333%;
+}
+.col-xs-5 {
+ width:41.66667%;
+}
+.col-xs-6 {
+ width:50%;
+}
+.col-xs-7 {
+ width:58.33333%;
+}
+.col-xs-8 {
+ width:66.66667%;
+}
+.col-xs-9 {
+ width:75%;
+}
+.col-xs-10 {
+ width:83.33333%;
+}
+.col-xs-11 {
+ width:91.66667%;
+}
+.col-xs-12 {
+ width:100%;
+}
+
+
+table {
+ max-width:100%;
+ background-color:transparent;
+}
+th {
+ text-align:left;
+}
+.table {
+ width:100%;
+ margin-bottom:20px;
+}
+ .table > thead > tr > th, .table > thead > tr > td, .table > tbody > tr > th, .table > tbody > tr > td, .table > tfoot > tr > th, .table > tfoot > tr > td {
+ padding:8px;
+ line-height:1.42857;
+ vertical-align:top;
+ border-top:1px solid #dddddd;
+}
+ .table > thead > tr > th {
+ vertical-align:bottom;
+ border-bottom:2px solid #dddddd;
+}
+ .table > caption + thead > tr:first-child > th, .table > caption + thead > tr:first-child > td, .table > colgroup + thead > tr:first-child > th, .table > colgroup + thead > tr:first-child > td, .table > thead:first-child > tr:first-child > th, .table > thead:first-child > tr:first-child > td {
+ border-top:0;
+}
+ .table > tbody + tbody {
+ border-top:2px solid #dddddd;
+}
+ .table .table {
+ background-color:white;
+}
+
+label {
+ display:inline-block;
+ margin-bottom:5px;
+}
+input[type="radio"],input[type="checkbox"] {
+ margin:4px 0 0;
+ margin-top:1px;
+ line-height:normal;
+}
+input[type="file"] {
+ display:block;
+}
+select[multiple],select[size] {
+ height:auto;
+}
+select optgroup {
+ font-size:inherit;
+ font-style:inherit;
+}
+input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus {
+ outline:thin dotted #333;
+ outline:5px auto -webkit-focus-ring-color;
+ outline-offset:-2px;
+}
+
+.label {
+ display:inline;
+ padding:.2em .6em .3em;
+ font-size:75%;
+ line-height:1;
+ color:white;
+ text-align:center;
+ white-space:nowrap;
+ vertical-align:baseline;
+ border-radius:.25em;
+}
+ .label[href]:hover, .label[href]:focus {
+ color:white;
+ text-decoration:none;
+ cursor:pointer;
+}
+ .label:empty {
+ display:none;
+}
+.clearfix:before, .clearfix:after {
+ content:" ";
+ /* 1 */
+ display:table;
+ /* 2 */
+ }
+.clearfix:after {
+ clear:both;
+}
+.pull-right {
+ float:right !important;
+}
+.pull-left {
+ float:left !important;
+}
+
+* {
+ margin: 0px;
+ padding: 0px;
+ text-decoration: none;
+ outline: none; }
+
+
+a {
+ color: #78808a; }
+
+ a:hover, a:active, a:focus {
+ cursor: pointer;
+ outline: 0px none;
+ text-decoration: none;
+ color: #5a6573; }
+
+
+.label {
+ font-size: 10px;
+ text-shadow: none; }
+
+
+
+.main-content {
+ position: relative;
+ margin-left: 251px; }
+
+
+
+h1, h2, h3, h4, h5, h6, th {
+ color: #5f5f5f;
+ }
+
+
+
+
+.note {
+ color: #909090;
+ font-style: italic;
+ font-size: 11px;
+ margin-bottom: 10px; }
+
+
+.box {
+ box-shadow: 0 0 10px 0 #cccccc;
+ background: #fbfbfb;
+ border: 1px solid #cdcdcd;
+ border-radius: 3px;
+ margin-bottom: 20px; }
+
+ .box .box-header, .box .box-footer {
+ *zoom: 1;
+ background: #eaeaea;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZkZmRmZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2VhZWFlYSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #fdfdfd), color-stop(100%, #eaeaea));
+ background-image: -webkit-linear-gradient(top, #fdfdfd, #eaeaea);
+ background-image: -moz-linear-gradient(top, #fdfdfd, #eaeaea);
+ background-image: -o-linear-gradient(top, #fdfdfd, #eaeaea);
+ background-image: linear-gradient(top, #fdfdfd, #eaeaea);
+ text-shadow: 0 1px white;
+ border-bottom: 1px solid #CDCDCD;
+ color: #636363;
+ }
+
+ .box .box-header:before, .box .box-header:after, .box .box-footer:before, .box .box-footer:after {
+ display: table;
+ content: "";
+ line-height: 0; }
+
+ .box .box-header:after, .box .box-footer:after {
+ clear: both; }
+
+ .box .box-header .title, .box .box-footer .title {
+ float: left;
+ display: block;
+ padding: 10px;
+ font-size: 12px;
+ }
+
+ .box .box-header .box-toolbar, .box .box-footer .box-toolbar {
+ margin: 0;
+ padding: 0;
+ float: right;
+ list-style: none; }
+
+ .box .box-header .box-toolbar .ibutton-container, .box .box-footer .box-toolbar .ibutton-container {
+ margin-top: 6px; }
+
+ .box .box-header .box-toolbar > li, .box .box-footer .box-toolbar > li {
+ position: relative;
+ float: left;
+ margin-left: 15px;
+ line-height: 37px;
+ padding-right: 10px;
+ color: #636363;
+ font-size: 12px; }
+
+ .box .box-header .box-toolbar > li ul, .box .box-footer .box-toolbar > li ul {
+ left: auto;
+ right: 0; }
+
+ .box .box-header .box-toolbar > li.toolbar-link, .box .box-footer .box-toolbar > li.toolbar-link {
+ padding-right: 0; }
+
+ .box .box-header .box-toolbar > li.toolbar-link > a, .box .box-footer .box-toolbar > li.toolbar-link > a {
+ border-left: 1px solid #cecece;
+ height: 37px;
+ line-height: 37px;
+ display: block;
+ padding: 0 10px; }
+
+ .box .box-header .box-toolbar > li.toolbar-link > a i, .box .box-footer .box-toolbar > li.toolbar-link > a i {
+ font-size: 16px; }
+
+ .box .box-header .box-toolbar > li.toolbar-link > a:hover, .box .box-footer .box-toolbar > li.toolbar-link > a:hover {
+ background: #efefef;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2VmZWZlZiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(100%, #efefef));
+ background-image: -webkit-linear-gradient(top, #ffffff, #efefef);
+ background-image: -moz-linear-gradient(top, #ffffff, #efefef);
+ background-image: -o-linear-gradient(top, #ffffff, #efefef);
+ background-image: linear-gradient(top, #ffffff, #efefef); }
+
+ .box .box-header .box-toolbar > li.toolbar-link > a:active, .box .box-footer .box-toolbar > li.toolbar-link > a:active {
+ background: #e5e5e5; }
+
+ .box .box-header .box-toolbar > li > i, .box .box-footer .box-toolbar > li > i {
+ font-size: 14px;
+ height: 37px;
+ line-height: 37px; }
+
+ .box .box-header .box-toolbar > li.open > a, .box .box-footer .box-toolbar > li.open > a {
+ background: #eee; }
+
+ .box .box-header {
+ -moz-border-radius-topright: 3px;
+ -webkit-border-top-right-radius: 3px;
+ border-top-right-radius: 3px;
+ -moz-border-radius-topleft: 3px;
+ -webkit-border-top-left-radius: 3px;
+ border-top-left-radius: 3px; }
+
+ .box .box-footer {
+ -moz-border-radius-bottomright: 3px;
+ -webkit-border-bottom-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ -moz-border-radius-bottomleft: 3px;
+ -webkit-border-bottom-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ border-bottom: none;
+ border-top: 1px solid #dddddd; }
+
+ .box .box-footer .pagination {
+ margin: 0; }
+
+ .box .box-footer.flat {
+ border-top: none;
+ background: #f1f1f1;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZiZmJmYiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2YxZjFmMSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #fbfbfb), color-stop(100%, #f1f1f1));
+ background-image: -webkit-linear-gradient(top, #fbfbfb, #f1f1f1);
+ background-image: -moz-linear-gradient(top, #fbfbfb, #f1f1f1);
+ background-image: -o-linear-gradient(top, #fbfbfb, #f1f1f1);
+ background-image: linear-gradient(top, #fbfbfb, #f1f1f1); }
+
+
+.box-list {
+ list-style: none;
+ margin: 0; }
+
+ .box-list > li {
+ line-height: 24px;
+ *zoom: 1;
+ background: #f1f1f1;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZiZmJmYiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2YxZjFmMSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #fbfbfb), color-stop(100%, #f1f1f1));
+ background-image: -webkit-linear-gradient(top, #fbfbfb, #f1f1f1);
+ background-image: -moz-linear-gradient(top, #fbfbfb, #f1f1f1);
+ background-image: -o-linear-gradient(top, #fbfbfb, #f1f1f1);
+ background-image: linear-gradient(top, #fbfbfb, #f1f1f1);
+ text-shadow: 0 1px white;
+ padding: 10px;
+ border-bottom: 1px solid #ddd; }
+
+ .box-list > li:before, .box-list > li:after {
+ display: table;
+ content: "";
+ line-height: 0; }
+
+ .box-list > li:after {
+ clear: both; }
+
+ .box-list > li:last-child {
+ border-bottom: none; }
+
+ .box-list .fields li {
+ line-height: 23px; }
+
+
+.box-section {
+ border-bottom: 1px solid #ddd;
+ margin-left: 0;
+ margin-right: 0;
+ border-top: 1px solid #fff;
+ padding: 15px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box; }
+
+ .box-section:last-child {
+ border-bottom: none; }
+
+
+
+.box .box-header .nav {
+ margin-bottom: 0; }
+
+.box .box-header .nav-tabs + .title {
+ float: right; }
+
+.box .box-header .nav-tabs {
+ border-bottom: none; }
+
+ .box .box-header .nav-tabs > .active > a, .box .box-header .nav-tabs > .active > a:hover {
+ background: #fbfbfb;
+ border-left-color: #dddddd;
+ border-right-color: #dddddd;
+ border-top-color: transparent;
+ border-radius: 0; }
+
+ .box .box-header .nav-tabs.nav-tabs-left {
+ float: left; }
+
+ .box .box-header .nav-tabs.nav-tabs-left li:first-child a {
+ border-left: 0;
+ -moz-border-radius-topleft: 3px;
+ -webkit-border-top-left-radius: 3px;
+ border-top-left-radius: 3px; }
+
+ .box .box-header .nav-tabs.nav-tabs-right {
+ float: right; }
+
+ .box .box-header .nav-tabs.nav-tabs-right li:last-child a {
+ border-right: 0;
+ -moz-border-radius-topright: 3px;
+ -webkit-border-top-right-radius: 3px;
+ border-top-right-radius: 3px;
+ margin-right: 0; }
+
+.box .box-header .nav > li > a:hover {
+ border-color: transparent;
+ background: none; }
+
+
+.box-header .tooltip {
+ line-height: 20px !important;
+ text-shadow: none; }
+
+.box-header .progress {
+ margin-top: 15px; }
+
+.box-header .input-with-submit input {
+ margin-bottom: 0;
+ margin-top: 5px; }
+
+
+
+
+.to-right .dropdown-menu {
+ top: 0px;
+ left: 100%;
+ margin-left: 10px;
+ border-radius: 4px;
+ float: none;
+ width: 100%;
+ box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1) inset;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box; }
+
+ .to-right .dropdown-menu:before {
+ content: '';
+ display: inline-block;
+ border-top: 7px solid transparent !important;
+ border-left: 7px solid transparent !important;
+ border-right: 8px solid #11161A;
+ border-bottom: 7px solid transparent !important;
+ position: absolute;
+ top: 12px;
+ left: -15px; }
+
+
+
+
+
+
+
+.box form {
+ padding: 0; }
+
+
+form {
+ margin-bottom: 0; }
+
+
+.input-group, .input-group {
+ height: 36px;
+ line-height: 36px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ position: relative;
+ z-index: 1; }
+
+ .input-group .input-group-addon i, .input-group .input-group-addon i {
+ line-height: 26px; }
+
+ .input-group *, .input-group * {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box; }
+
+ .input-group a.input-group-addon, .input-group span.input-group-addon, .input-group a.input-group-addon, .input-group span.input-group-addon {
+ min-width: 36px;
+ color: #5a6573;
+ position: absolute;
+ height: 100%;
+ z-index: 2;
+ box-shadow: inset 0 1px 2px white;
+ border: 1px solid #ccc;
+ background: #eaeaea;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZkZmRmZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2VhZWFlYSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #fdfdfd), color-stop(100%, #eaeaea));
+ background-image: -webkit-linear-gradient(top, #fdfdfd, #eaeaea);
+ background-image: -moz-linear-gradient(top, #fdfdfd, #eaeaea);
+ background-image: -o-linear-gradient(top, #fdfdfd, #eaeaea);
+ background-image: linear-gradient(top, #fdfdfd, #eaeaea);
+ padding-left: 10px;
+ padding-right: 10px; }
+
+ .input-group a.input-group-addon:active, .input-group span.input-group-addon:active, .input-group a.input-group-addon:active, .input-group span.input-group-addon:active {
+ background: #eee; }
+
+ .input-group ul.input-group-addon, .input-group ul.input-group-addon {
+ list-style: none;
+ position: absolute;
+ z-index: 2;
+ background: none;
+ border: none;
+ padding: 0;
+ margin: 0;
+ height: 100%;
+ top: 1px;
+ right: 2px; }
+
+ .input-group ul.input-group-addon li, .input-group ul.input-group-addon li {
+ float: left;
+ margin-left: 10px;
+ line-height: 32px;
+ height: 32px; }
+
+ .input-group ul.input-group-addon li a, .input-group ul.input-group-addon li button, .input-group ul.input-group-addon li a, .input-group ul.input-group-addon li button {
+ vertical-align: middle; }
+
+ .input-group ul.input-group-addon li a.btn, .input-group ul.input-group-addon li button.btn, .input-group ul.input-group-addon li a.btn, .input-group ul.input-group-addon li button.btn {
+ border-radius: 3px; }
+
+ .input-group ul.input-group-addon li .btn, .input-group ul.input-group-addon li .btn {
+ padding: 0;
+ line-height: 25px;
+ height: 25px;
+ padding-left: 10px;
+ padding-right: 10px;
+ margin-right: 5px; }
+
+ .input-group input[type="text"], .input-group input[type="password"], .input-group input[type="email"], .input-group input[type="number"], .input-group input[type="text"], .input-group input[type="password"], .input-group input[type="email"], .input-group input[type="number"] {
+ height: 36px;
+ width: 100%;
+ z-index: 1;
+ border-radius: 4px; }
+
+
+.box .input-group, .box .input-group {
+ margin-bottom: 0; }
+
+
+
+
+
+
+
+input[type="text"] {
+ box-shadow: none;
+ border-radius: 0;
+ font-size: 12px;
+ color: #858585;
+ padding: 0 0 0 5px;
+ border: 1px solid #d7d7d7;
+ display: inline-block;
+ background: #fdfdfd;
+ height: 26px;
+ line-height: 26px; }
+
+textarea {
+ box-shadow: none;
+ border-radius: 0;
+ font-size: 12px;
+ color: #474747;
+ padding: 0 0 0 5px;
+ border: 1px solid #d7d7d7;
+ display: inline-block;
+ background: #fdfdfd;
+ line-height: 20px; }
+
+ input[type="text"]:focus {
+ box-shadow: none;
+ border: 1px solid #68A6CE; }
+
+ textarea:focus {
+ box-shadow: none;
+ }
+
+textarea {
+ height: auto; }
+
+
+label {
+ font-size: 12px;
+ color: #5F5F5F; }
+
+
+
+
+.input-with-submit {
+ position: relative; }
+
+ .input-with-submit button {
+ background: transparent;
+ border: none;
+ position: absolute;
+ right: 2px;
+ top: 7px;
+ height: 22px;
+ line-height: 22px; }
+
+ .input-with-submit i {
+ color: #909090; }
+
+
+
+.table-normal {
+ margin-bottom: 0;
+ color: #5a6573; }
+
+ .table-normal tbody td, .table-normal thead td {
+ border-left: 1px solid #eaebef; }
+
+ .table-normal tbody td:first-child, .table-normal thead td:first-child {
+ border-left: none; }
+
+ .table-normal tbody td {
+ border-top: 1px solid #eaebef; }
+
+ .table-normal thead td {
+ text-align: center;
+ font-size: 11px;
+ padding: 3px 5px 2px 5px;
+ color: #666;
+ height: 25px;
+ line-height: 25px;
+ font-size: 12px;
+ text-shadow: 0 1px rgba(255, 255, 255, 0.5);
+ background: #eaeaea;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZkZmRmZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2VhZWFlYSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #fdfdfd), color-stop(100%, #eaeaea));
+ background-image: -webkit-linear-gradient(top, #fdfdfd, #eaeaea);
+ background-image: -moz-linear-gradient(top, #fdfdfd, #eaeaea);
+ background-image: -o-linear-gradient(top, #fdfdfd, #eaeaea);
+ background-image: linear-gradient(top, #fdfdfd, #eaeaea);
+ border-left: 1px solid #d1d2da;
+ border-right: 1px solid #d1d2da;
+ border-bottom: 1px solid #d1d2da; }
+
+ .table-normal thead td:first-child {
+ border-left: none; }
+
+ .table-normal thead td:last-child {
+ border-right: none; }
+
+ .table-normal tbody td {
+ padding: 7px 11px;
+ vertical-align: middle; }
+
+ .table-normal tbody tr {
+ border-top: 1px solid #eaebef; }
+
+ .table-normal tbody tr:nth-child(even) {
+ background: #F3F4F8; }
+
+ .table-normal .icon {
+ width: 30px;
+ text-align: center; }
+
+.help-button{
+ display:inline-block;
+ height:20px;
+ width:20px;
+ line-height:17px;
+ text-align:center;
+ padding:0;
+ background-color:#418ce4;
+ color:#FFF;
+ font-size:12px;
+ cursor:pointer;
+ margin-left:4px;border-radius:100%;
+ border-color:#FFF;
+ border:2px solid #FFF;-webkit-box-shadow:0 1px 0 1px rgba(0,0,0,0.2);
+ box-shadow:0 1px 0 1px rgba(0,0,0,0.2);
+}
+
+.editor_button {
+ float:left;
+ cursor:pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+}
+
+.editor_buttoncl {
+ float:left;
+ cursor:pointer;
+ padding-left: 1px;
+ padding-right: 1px;
+ border-left: 1px solid #BBB;
+ border-right: 1px solid #BBB;
+}
+
+.editbclose {
+ float:right;
+ cursor:pointer;
+}
+
+.findrelated {
+ width:600px;
+ background: #ffc;border:1px solid #9E9E9E;
+ padding: 5px;margin-top: 7px;
+ margin-right: 10px;
+}
+
+.settingstd {
+ vertical-align:middle !important;
+}
+.settingsgr td {
+ vertical-align:middle !important;
+}
+
+
+
+.form-group {
+ margin-bottom:15px;
+}
+.form-horizontal .form-group {
+ margin-left:-15px;
+ margin-right:-15px;
+}
+ .form-horizontal .form-group:before, .form-horizontal .form-group:after {
+ content:" ";
+ /* 1 */
+ display:table;
+ /* 2 */
+ }
+ .form-horizontal .form-group:after {
+ clear:both;
+}
+
+
+.btn {
+ color: #fff;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
+ font-size: 11px;
+ font-weight: 600;
+ text-shadow: 0 -1px #6f6f6f; }
+
+ .btn:hover, .btn:active, .btn:focus {
+ color: #fff; }
+
+ .btn.btn-lg {
+ font-size: 12px; }
+
+ .btn.btn-default {
+ border: 1px solid #d4d4d4;
+ -webkit-box-shadow: inset 0 1px 2px white;
+ -moz-box-shadow: inset 0 1px 2px white;
+ box-shadow: inset 0 1px 2px white;
+ background: #e9e9e9;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZkZmRmZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2U5ZTllOSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #fdfdfd), color-stop(100%, #e9e9e9));
+ background-image: -webkit-linear-gradient(top, #fdfdfd, #e9e9e9);
+ background-image: -moz-linear-gradient(top, #fdfdfd, #e9e9e9);
+ background-image: -o-linear-gradient(top, #fdfdfd, #e9e9e9);
+ background-image: linear-gradient(top, #fdfdfd, #e9e9e9); }
+
+ .btn.btn-red {
+ border: 1px solid #a54747;
+ -webkit-box-shadow: inset 0 1px 2px #cd8b8b;
+ -moz-box-shadow: inset 0 1px 2px #cd8b8b;
+ box-shadow: inset 0 1px 2px #cd8b8b;
+ background: #b95d5d;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2M1Nzk3OSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2I5NWQ1ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #c57979), color-stop(100%, #b95d5d));
+ background-image: -webkit-linear-gradient(top, #c57979, #b95d5d);
+ background-image: -moz-linear-gradient(top, #c57979, #b95d5d);
+ background-image: -o-linear-gradient(top, #c57979, #b95d5d);
+ background-image: linear-gradient(top, #c57979, #b95d5d); }
+
+ .btn.btn-green {
+ border: 1px solid #6d963b;
+ -webkit-box-shadow: inset 0 1px 2px #a2c873;
+ -moz-box-shadow: inset 0 1px 2px #a2c873;
+ box-shadow: inset 0 1px 2px #a2c873;
+ background: #82b346;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzk2YzE2MSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzgyYjM0NiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #96c161), color-stop(100%, #82b346));
+ background-image: -webkit-linear-gradient(top, #96c161, #82b346);
+ background-image: -moz-linear-gradient(top, #96c161, #82b346);
+ background-image: -o-linear-gradient(top, #96c161, #82b346);
+ background-image: linear-gradient(top, #96c161, #82b346); }
+
+ .btn.btn-blue {
+ border: 1px solid #337ca1;
+ -webkit-box-shadow: inset 0 1px 2px #6eb0d1;
+ -moz-box-shadow: inset 0 1px 2px #6eb0d1;
+ box-shadow: inset 0 1px 2px #6eb0d1;
+ background: #3d94c0;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzViYTVjYiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzNkOTRjMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5ba5cb), color-stop(100%, #3d94c0));
+ background-image: -webkit-linear-gradient(top, #5ba5cb, #3d94c0);
+ background-image: -moz-linear-gradient(top, #5ba5cb, #3d94c0);
+ background-image: -o-linear-gradient(top, #5ba5cb, #3d94c0);
+ background-image: linear-gradient(top, #5ba5cb, #3d94c0); }
+
+ .btn.btn-gray {
+ border: 1px solid #626e7f;
+ -webkit-box-shadow: inset 0 1px 2px #9aa4b1;
+ -moz-box-shadow: inset 0 1px 2px #9aa4b1;
+ box-shadow: inset 0 1px 2px #9aa4b1;
+ background: #758294;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzhjOTdhNiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzc1ODI5NCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #8c97a6), color-stop(100%, #758294));
+ background-image: -webkit-linear-gradient(top, #8c97a6, #758294);
+ background-image: -moz-linear-gradient(top, #8c97a6, #758294);
+ background-image: -o-linear-gradient(top, #8c97a6, #758294);
+ background-image: linear-gradient(top, #8c97a6, #758294); }
+
+ .btn.btn-black {
+ border: 1px solid #5a5a5a;
+ -webkit-box-shadow: inset 0 1px 2px #909090;
+ -moz-box-shadow: inset 0 1px 2px #909090;
+ box-shadow: inset 0 1px 2px #909090;
+ background: #6f6f6f;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzgzODM4MyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzZmNmY2ZiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #838383), color-stop(100%, #6f6f6f));
+ background-image: -webkit-linear-gradient(top, #838383, #6f6f6f);
+ background-image: -moz-linear-gradient(top, #838383, #6f6f6f);
+ background-image: -o-linear-gradient(top, #838383, #6f6f6f);
+ background-image: linear-gradient(top, #838383, #6f6f6f); }
+
+ .btn.btn-lightblue {
+ border: 1px solid #3692bb;
+ -webkit-box-shadow: inset 0 1px 2px #81bfdb;
+ -moz-box-shadow: inset 0 1px 2px #81bfdb;
+ box-shadow: inset 0 1px 2px #81bfdb;
+ background: #4da5cc;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzZkYjVkNSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzRkYTVjYyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #6db5d5), color-stop(100%, #4da5cc));
+ background-image: -webkit-linear-gradient(top, #6db5d5, #4da5cc);
+ background-image: -moz-linear-gradient(top, #6db5d5, #4da5cc);
+ background-image: -o-linear-gradient(top, #6db5d5, #4da5cc);
+ background-image: linear-gradient(top, #6db5d5, #4da5cc); }
+
+ .btn.btn-gold {
+ border: 1px solid #a87a27;
+ -webkit-box-shadow: inset 0 1px 2px #daaf61;
+ -moz-box-shadow: inset 0 1px 2px #daaf61;
+ box-shadow: inset 0 1px 2px #daaf61;
+ background: #c9922f;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Q1YTQ0YyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2M5OTIyZiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #d5a44c), color-stop(100%, #c9922f));
+ background-image: -webkit-linear-gradient(top, #d5a44c, #c9922f);
+ background-image: -moz-linear-gradient(top, #d5a44c, #c9922f);
+ background-image: -o-linear-gradient(top, #d5a44c, #c9922f);
+ background-image: linear-gradient(top, #d5a44c, #c9922f); }
+
+ .btn.btn-sea {
+ border: 1px solid #39534f;
+ -webkit-box-shadow: inset 0 1px 2px #64928d;
+ -moz-box-shadow: inset 0 1px 2px #64928d;
+ box-shadow: inset 0 1px 2px #64928d;
+ background: #496b67;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzVhODM3ZSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzQ5NmI2NyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5a837e), color-stop(100%, #496b67));
+ background-image: -webkit-linear-gradient(top, #5a837e, #496b67);
+ background-image: -moz-linear-gradient(top, #5a837e, #496b67);
+ background-image: -o-linear-gradient(top, #5a837e, #496b67);
+ background-image: linear-gradient(top, #5a837e, #496b67); }
+
+
+ .btn.btn-brown {
+ border: 1px solid #856733;
+ -webkit-box-shadow: inset 0 1px 2px #c29e61;
+ -moz-box-shadow: inset 0 1px 2px #c29e61;
+ box-shadow: inset 0 1px 2px #c29e61;
+ background: #a27e3f;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JiOTM0ZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2EyN2UzZiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #bb934f), color-stop(100%, #a27e3f));
+ background-image: -webkit-linear-gradient(top, #bb934f, #a27e3f);
+ background-image: -moz-linear-gradient(top, #bb934f, #a27e3f);
+ background-image: -o-linear-gradient(top, #bb934f, #a27e3f);
+ background-image: linear-gradient(top, #bb934f, #a27e3f); }
+
\ No newline at end of file
diff --git a/engine/skins/images/catface.png b/engine/skins/images/catface.png
new file mode 100644
index 0000000000000000000000000000000000000000..f43cd16660b8baf370a956261af2a95c72566328
GIT binary patch
literal 14380
zcmV+{IMc_8P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T
zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p
z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i
z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW
zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X
zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4
zfg=2N-7=cNnjjOr{yriy6mMFgG#l
znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U
zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya?
z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y
zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB
zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt
z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C
z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB
zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe
zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0
z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$
z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4
z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu
zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu
z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E
ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw
zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX
z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i&
z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01
z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R
z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw
zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD
zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3|
zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy
zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z
zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}
z001plNkl-uQjLZwu!f&-IsC=*&MjAhVg5D>HX3$-)In
*6FVFNi4Xz=
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
+[/show_name]
+
+[show_description]
+ {description}
+[/show_description]
\ No newline at end of file