From c324c809693396446930ee3e2f010bea8b1b31d5 Mon Sep 17 00:00:00 2001 From: alekseybobkov Date: Sat, 19 Jul 2014 13:05:50 +1100 Subject: [PATCH] Added the theme selector --- modules/backend/assets/css/october.css | 12 ++ .../assets/less/controls/breadcrumb.less | 4 + .../backend/assets/less/layout/layout.less | 4 + modules/cms/ServiceProvider.php | 17 +++ .../cms/assets/css/october.theme-selector.css | 112 ++++++++++++++ .../assets/images/default-theme-preview.png | Bin 0 -> 3779 bytes .../assets/less/october.theme-selector.less | 139 ++++++++++++++++++ modules/cms/classes/Theme.php | 106 ++++++++++++- modules/cms/controllers/Theme.php | 50 +++++++ modules/cms/controllers/theme/_theme_list.htm | 51 +++++++ modules/cms/controllers/theme/index.htm | 21 +++ modules/cms/lang/en/lang.php | 7 +- themes/demo/assets/images/theme-preview.png | Bin 0 -> 47521 bytes themes/demo/theme.yaml | 4 + 14 files changed, 525 insertions(+), 2 deletions(-) create mode 100644 modules/cms/assets/css/october.theme-selector.css create mode 100644 modules/cms/assets/images/default-theme-preview.png create mode 100644 modules/cms/assets/less/october.theme-selector.less create mode 100644 modules/cms/controllers/Theme.php create mode 100644 modules/cms/controllers/theme/_theme_list.htm create mode 100644 modules/cms/controllers/theme/index.htm create mode 100644 themes/demo/assets/images/theme-preview.png create mode 100644 themes/demo/theme.yaml diff --git a/modules/backend/assets/css/october.css b/modules/backend/assets/css/october.css index 674351cf2..0c1df8bc3 100644 --- a/modules/backend/assets/css/october.css +++ b/modules/backend/assets/css/october.css @@ -7323,6 +7323,9 @@ body { .layout > .layout-row > .layout-cell.min-size { width: 0; } +.layout > .layout-row > .layout-cell.min-height { + height: 0; +} .layout > .layout-row > .layout-cell.center { text-align: center; } @@ -7363,6 +7366,9 @@ body { .layout > .layout-row > .layout-cell.min-size { width: 0; } +.layout > .layout-row > .layout-cell.min-height { + height: 0; +} .layout > .layout-row > .layout-cell.center { text-align: center; } @@ -7411,6 +7417,9 @@ body { .layout > .layout-cell.min-size { width: 0; } +.layout > .layout-cell.min-height { + height: 0; +} .layout > .layout-cell.center { text-align: center; } @@ -11521,6 +11530,9 @@ ul.status-list li span.status.info { .control-breadcrumb + .content-tabs { margin-top: -20px; } +.control-breadcrumb.no-bottom-margin { + margin-bottom: 0; +} body.slim-container .control-breadcrumb { margin-left: 0; margin-right: 0; diff --git a/modules/backend/assets/less/controls/breadcrumb.less b/modules/backend/assets/less/controls/breadcrumb.less index 48316b278..549383a5e 100644 --- a/modules/backend/assets/less/controls/breadcrumb.less +++ b/modules/backend/assets/less/controls/breadcrumb.less @@ -43,6 +43,10 @@ + .content-tabs { margin-top: -20px; } + + &.no-bottom-margin { + margin-bottom: 0; + } } body.slim-container { diff --git a/modules/backend/assets/less/layout/layout.less b/modules/backend/assets/less/layout/layout.less index fb23adf52..985358e88 100644 --- a/modules/backend/assets/less/layout/layout.less +++ b/modules/backend/assets/less/layout/layout.less @@ -68,6 +68,10 @@ body { width: 0; } + &.min-height { + height: 0; + } + &.center { text-align: center; } diff --git a/modules/cms/ServiceProvider.php b/modules/cms/ServiceProvider.php index 2a528b8b4..78557ac8b 100644 --- a/modules/cms/ServiceProvider.php +++ b/modules/cms/ServiceProvider.php @@ -6,6 +6,7 @@ use BackendMenu; use BackendAuth; use Backend\Classes\WidgetManager; use October\Rain\Support\ModuleServiceProvider; +use System\Classes\SettingsManager; class ServiceProvider extends ModuleServiceProvider { @@ -89,6 +90,7 @@ class ServiceProvider extends ModuleServiceProvider 'cms.manage_pages' => ['label' => 'Manage pages', 'tab' => 'Cms'], 'cms.manage_layouts' => ['label' => 'Manage layouts', 'tab' => 'Cms'], 'cms.manage_partials' => ['label' => 'Manage partials', 'tab' => 'Cms'], + 'cms.manage_themes' => ['label' => 'Manage themes', 'tab' => 'Cms'] ]); }); @@ -99,6 +101,21 @@ class ServiceProvider extends ModuleServiceProvider $manager->registerFormWidget('Cms\FormWidgets\Components'); }); + /* + * Register settings + */ + SettingsManager::instance()->registerCallback(function($manager){ + $manager->registerSettingItems('October.Cms', [ + 'theme' => [ + 'label' => 'cms::lang.theme.settings_menu', + 'description' => 'cms::lang.theme.settings_menu_description', + 'category' => 'CMS', + 'icon' => 'icon-picture-o', + 'url' => Backend::URL('cms/theme'), + 'sort' => 200 + ] + ]); + }); } /** diff --git a/modules/cms/assets/css/october.theme-selector.css b/modules/cms/assets/css/october.theme-selector.css new file mode 100644 index 000000000..92d8cca90 --- /dev/null +++ b/modules/cms/assets/css/october.theme-selector.css @@ -0,0 +1,112 @@ +.theme-selector-layout .layout-cell { + padding: 24px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.theme-selector-layout .theme-thumbnail { + width: 288px; + background: #ecf0f1; + border-bottom: 1px solid #e3e7e9; +} +.theme-selector-layout .theme-thumbnail img { + opacity: 0.6; + filter: alpha(opacity=60); + width: 240px; +} +.theme-selector-layout .theme-description { + border-bottom: 1px solid #f2f3f4; +} +.theme-selector-layout .theme-description h3, +.theme-selector-layout .theme-description p { + opacity: 0.6; + filter: alpha(opacity=60); +} +.theme-selector-layout .theme-description h3 { + margin: 0 0 25px 0; + font-size: 28px; + color: #2b3e50; + display: inline-block; +} +.theme-selector-layout .theme-description p.author { + font-size: 13px; + display: inline-block; + color: #808c8d; +} +.theme-selector-layout .theme-description p.description { + color: #2b3e50; + font-size: 14px; + line-height: 180%; + margin-bottom: 30px; +} +.theme-selector-layout .theme-description .controls button i.icon-star { + margin-right: 5px; + color: #f1a84e; + font-size: 16px; + vertical-align: middle; +} +.theme-selector-layout .layout-row.active .theme-thumbnail { + background: #bdc3c7; + border-bottom-color: #bdc3c7; +} +.theme-selector-layout .layout-row.active .thumbnail-container { + position: relative; +} +.theme-selector-layout .layout-row.active .thumbnail-container:after { + content: ''; + display: block; + width: 0; + height: 0; + border-top: 14px solid transparent; + border-bottom: 14px solid transparent; + border-left: 15px solid #bdc3c7; + position: absolute; + right: -35px; + top: 50%; + margin-top: -14px; +} +.theme-selector-layout .layout-row.active .theme-description h3, +.theme-selector-layout .layout-row:hover .theme-description h3, +.theme-selector-layout .layout-row.active .theme-description p, +.theme-selector-layout .layout-row:hover .theme-description p { + opacity: 1; + filter: alpha(opacity=100); +} +.theme-selector-layout .layout-row.active .theme-thumbnail img, +.theme-selector-layout .layout-row:hover .theme-thumbnail img { + opacity: 1; + filter: alpha(opacity=100); +} +.theme-selector-layout .layout-row.last .theme-description, +.theme-selector-layout .layout-row.last .theme-thumbnail { + border-bottom: none!important; +} +.theme-selector-layout .find-more-themes { + background: #ecf0f1; + color: #2b3e50; + text-decoration: none; + display: block; + padding: 20px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.theme-selector-layout .find-more-themes:hover { + background: #1795f1; + color: white; +} +@media (max-width: 768px) { + .theme-selector-layout .layout-cell, + .theme-selector-layout .layout-row { + display: block!important; + width: auto!important; + height: auto!important; + } + .theme-selector-layout .theme-thumbnail img { + width: 100%; + } + .theme-selector-layout .layout-row.links .theme-thumbnail { + background: transparent; + padding: 0; + } +} diff --git a/modules/cms/assets/images/default-theme-preview.png b/modules/cms/assets/images/default-theme-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..37d340d0282bfa151b7a761bb63c34dc14deee34 GIT binary patch literal 3779 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 Ia9hH^0G{nBdjJ3c literal 0 HcmV?d00001 diff --git a/modules/cms/assets/less/october.theme-selector.less b/modules/cms/assets/less/october.theme-selector.less new file mode 100644 index 000000000..1da56c885 --- /dev/null +++ b/modules/cms/assets/less/october.theme-selector.less @@ -0,0 +1,139 @@ +@import "../../../backend/assets/less/core/boot.less"; + +.theme-selector-layout { + .layout-cell { + padding: 24px; + .box-sizing(border-box); + } + + .theme-thumbnail { + width: 288px; + background: #ecf0f1; + border-bottom: 1px solid #e3e7e9; + + img { + .opacity(0.6); + width: 240px; + } + } + + .theme-description { + border-bottom: 1px solid #f2f3f4; + + h3, p { + .opacity(0.6); + } + + h3 { + margin: 0 0 25px 0; + font-size: 28px; + color: #2b3e50; + display: inline-block; + } + + p.author { + font-size: 13px; + display: inline-block; + color: #808c8d; + } + + p.description { + color: #2b3e50; + font-size: 14px; + line-height: 180%; + margin-bottom: 30px; + } + + .controls { + button i.icon-star { + margin-right: 5px; + color: #f1a84e; + font-size: 16px; + vertical-align: middle; + } + } + } + + .layout-row.active { + .theme-thumbnail { + background: #bdc3c7; + border-bottom-color: #bdc3c7; + + } + + .thumbnail-container { + position: relative; + + &:after { + .triangle(right, 15px, 28px, #bdc3c7); + position: absolute; + right: -35px; + top: 50%; + margin-top: -14px; + } + } + } + + .layout-row { + &.active, &:hover { + .theme-description { + h3, p { + .opacity(1); + } + } + + .theme-thumbnail { + img { + .opacity(1); + } + } + } + + &.last { + .theme-description, .theme-thumbnail { + border-bottom: none!important; + } + } + } + + .find-more-themes { + background: #ecf0f1; + color: #2b3e50; + text-decoration: none; + display: block; + padding: 20px; + .border-radius(4px); + + &:hover { + background: @link-color; + color: white; + } + } +} + +// +// Screen specific +// + +@media (max-width: @screen-sm) { + .theme-selector-layout { + .layout-cell, .layout-row { + display: block!important; + width: auto!important; + height: auto!important; + } + + .theme-thumbnail { + img { + width: 100%; + } + } + + .layout-row.links { + .theme-thumbnail { + background: transparent; + padding: 0; + } + } + } +} \ No newline at end of file diff --git a/modules/cms/classes/Theme.php b/modules/cms/classes/Theme.php index 338cc9d89..9e5dc8e77 100644 --- a/modules/cms/classes/Theme.php +++ b/modules/cms/classes/Theme.php @@ -4,7 +4,12 @@ use File; use Lang; use Event; use Config; +use URL; +use Cache; +use DB; +use DirectoryIterator; use System\Classes\SystemException; +use October\Rain\Support\Yaml; /** * This class represents the CMS theme. @@ -21,6 +26,11 @@ class Theme */ protected $dirName; + /** + * @var mixed Keeps the cached configuration file values. + */ + protected $configCache = null; + /** * Loads the theme. */ @@ -84,7 +94,16 @@ class Theme */ public static function getActiveTheme() { - $activeTheme = Config::get('cms.activeTheme'); + $configKey = 'cms.activeTheme'; + + $activeTheme = Config::get($configKey); + + $dbResult = DB::table('system_settings') + ->where('item', '=', $configKey) + ->remember(1440, $configKey) + ->pluck('value'); + if ($dbResult !== null) + $activeTheme = $dbResult; $apiResult = Event::fire('cms.activeTheme', [], true); if ($apiResult !== null) @@ -101,6 +120,20 @@ class Theme return $theme; } + /** + * Sets the active theme. + * The active theme code is stored in the database and overrides the configuration cms.activeTheme parameter. + * @param string $code Specifies the active theme code. + */ + public static function setActiveTheme($code) + { + $configKey = 'cms.activeTheme'; + + DB::table('system_settings')->where('item', '=', $configKey)->delete(); + DB::table('system_settings')->insert(['item'=>$configKey, 'value'=>$code]); + Cache::forget($configKey); + } + /** * Returns the edit theme. * By default the edit theme is loaded from the cms.editTheme parameter, @@ -130,4 +163,75 @@ class Theme return $theme; } + + /** + * Returns a list of all themes. + * @return array Returns an array of the Theme objects. + */ + public static function all() + { + $path = base_path().Config::get('cms.themesDir'); + + $it = new DirectoryIterator($path); + $result = []; + foreach ($it as $fileinfo) { + if ($fileinfo->isDot() ||(substr($fileinfo->getFilename(), 0, 1) == '.')) + continue; + + $theme = new self(); + $theme->load($fileinfo->getFilename()); + + $result[] = $theme; + + + } + + return $result; + } + + /** + * Reads the theme.yaml file and returns the theme configuration values. + * @return array Returns the parsed configuration file values. + */ + public function getConfig() + { + if ($this->configCache !== null) + return $this->configCache; + + $path = $this->getPath().'/theme.yaml'; + if (!File::exists($path)) + return $this->configCache = []; + + return $this->configCache = Yaml::parseFile($path); + } + + /** + * Returns a value from the theme configuration file by its name. + * @param string $name Specifies the configuration parameter name. + * @param mixed $default Specifies the default value to return in case if the parameter doesn't exist in the configuration file. + * @return mixed Returns the parameter value or a default value + */ + public function getConfigValue($name, $default = null) + { + $config = $this->getConfig(); + if (isset($config[$name])) + return $config[$name]; + + return $default; + } + + /** + * Returns the theme preview image URL. + * If the image file doesn't exist returns the placeholder image URL. + * @return string Returns the image URL. + */ + public function getPreviewImageUrl() + { + $previewPath = '/assets/images/theme-preview.png'; + $path = $this->getPath().$previewPath; + if (!File::exists($path)) + return URL::asset('modules/cms/assets/images/default-theme-preview.png'); + + return URL::asset('themes/'.$this->getDirName().$previewPath); + } } diff --git a/modules/cms/controllers/Theme.php b/modules/cms/controllers/Theme.php new file mode 100644 index 000000000..99c72c7be --- /dev/null +++ b/modules/cms/controllers/Theme.php @@ -0,0 +1,50 @@ +addJs('/modules/cms/assets/js/themeselector/themeselector.js', 'core'); + $this->addCss('/modules/cms/assets/css/october.theme-selector.css', 'core'); + + $this->pageTitle = Lang::get('cms::lang.theme.settings_menu'); + BackendMenu::setContext('October.System', 'system', 'settings'); + } + + public function index() + { + + } + + public function index_onSetActiveTheme() + { + CmsTheme::setActiveTheme(Input::get('theme')); + + return [ + '#theme-list' => $this->makePartial('theme_list') + ]; + } +} \ No newline at end of file diff --git a/modules/cms/controllers/theme/_theme_list.htm b/modules/cms/controllers/theme/_theme_list.htm new file mode 100644 index 000000000..f7622ae35 --- /dev/null +++ b/modules/cms/controllers/theme/_theme_list.htm @@ -0,0 +1,51 @@ +$theme): + $isLast = $index == $cnt-1; + $isActive = $activeTheme->getDirName() == $theme->getDirName(); + $author = $theme->getConfigValue('author'); +?> +
+
+
+
+
+

getConfigValue('name', $theme->getDirName())) ?>

+ +

by

+ +

getConfigValue('description', 'The theme description is not provided.')) ?>

+
+ + + + + +
+
+
+ + \ No newline at end of file diff --git a/modules/cms/controllers/theme/index.htm b/modules/cms/controllers/theme/index.htm new file mode 100644 index 000000000..7f5a47ef0 --- /dev/null +++ b/modules/cms/controllers/theme/index.htm @@ -0,0 +1,21 @@ + +
+
+
+
    +
  • +
  • pageTitle) ?>
  • +
+
+
+ +
+ 'return false']) ?> +
+ makePartial('theme_list') ?> +
+ +
+ +
+ \ No newline at end of file diff --git a/modules/cms/lang/en/lang.php b/modules/cms/lang/en/lang.php index 2b0cc6967..0915f730a 100644 --- a/modules/cms/lang/en/lang.php +++ b/modules/cms/lang/en/lang.php @@ -20,7 +20,12 @@ return [ 'not_set' => "The edit theme is not set.", 'not_found' => "The edit theme is not found.", 'not_match' => "The object you're trying to access doesn't belong to the theme being edited. Please reload the page." - ] + ], + 'settings_menu' => 'Front-end theme', + 'settings_menu_description' => 'Preview the list of installed themes and select an active theme.', + 'find_more_themes' => 'Find more themes on OctoberCMS Theme Marketplace.', + 'activate_btn' => 'Activate', + 'active_btn' => 'Activate', ], 'page' => [ 'not_found' => [ diff --git a/themes/demo/assets/images/theme-preview.png b/themes/demo/assets/images/theme-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..2f4c7d1139b9cc38b6150ec5a51660f536b117a1 GIT binary patch literal 47521 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 T5fp6t2Y%$FlqD;~jo