mirror of
				https://github.com/getgrav/grav-plugin-admin.git
				synced 2025-11-03 20:05:53 +01:00 
			
		
		
		
	store preset in asset:// rather than admin plugin
This commit is contained in:
		@@ -615,7 +615,7 @@ class AdminPlugin extends Plugin
 | 
				
			|||||||
        $assets->setCssPipeline(false);
 | 
					        $assets->setCssPipeline(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Compile a missing preset.css file
 | 
					        // Compile a missing preset.css file
 | 
				
			||||||
        $preset_css = 'plugin://admin/themes/grav/css-compiled/preset.css';
 | 
					        $preset_css = 'asset://admin-preset.css';
 | 
				
			||||||
        $preset_path = $this->grav['locator']->findResource($preset_css);
 | 
					        $preset_path = $this->grav['locator']->findResource($preset_css);
 | 
				
			||||||
        if (!$preset_path) {
 | 
					        if (!$preset_path) {
 | 
				
			||||||
            $this->grav['admin-whitebox']->compileScss($this->config->get('plugins.admin.whitebox'));
 | 
					            $this->grav['admin-whitebox']->compileScss($this->config->get('plugins.admin.whitebox'));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2165,20 +2165,20 @@ class AdminController extends AdminBaseController
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $preview = $this->data['preview'] ?? false;
 | 
					        $preview = $this->data['preview'] ?? false;
 | 
				
			||||||
        $data = ['color_scheme' => $this->data['whitebox']['color_scheme'] ?? null];
 | 
					        $data = ['color_scheme' => $this->data['whitebox']['color_scheme'] ?? null];
 | 
				
			||||||
 | 
					        $output_file = $preview ? 'admin-preset.css' : 'admin-preset__tmp.css';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($preview) {
 | 
					        $options = [
 | 
				
			||||||
            // send through some tmp filenames
 | 
					            'input' => 'plugin://admin/themes/grav/scss/preset.scss',
 | 
				
			||||||
            [$compile_status, $msg] = $this->grav['admin-whitebox']->compileScss($data, ['filename' => 'preset_tmp']);
 | 
					            'output' => 'asset://' .$output_file
 | 
				
			||||||
        } else {
 | 
					        ];
 | 
				
			||||||
            [$compile_status, $msg] = $this->grav['admin-whitebox']->compileScss($data);
 | 
					
 | 
				
			||||||
        }
 | 
					        [$compile_status, $msg] = $this->grav['admin-whitebox']->compileScss($data, $options);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $previewSuffix = $preview ? '_tmp' : '';
 | 
					 | 
				
			||||||
        $json_response = [
 | 
					        $json_response = [
 | 
				
			||||||
            'status'  => $compile_status ? 'success' : 'error',
 | 
					            'status'  => $compile_status ? 'success' : 'error',
 | 
				
			||||||
            'message' => ($preview ? 'Preview ' : 'SCSS ') . $msg,
 | 
					            'message' => ($preview ? 'Preview ' : 'SCSS ') . $msg,
 | 
				
			||||||
            'files' => [
 | 
					            'files' => [
 | 
				
			||||||
                'color_scheme' => $this->grav['twig']->twig_vars['base_url_relative']. "/user/plugins/admin/themes/grav/css-compiled/preset${previewSuffix}.css"
 | 
					                'color_scheme' => Utils::url($options['output'])
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@
 | 
				
			|||||||
namespace Grav\Plugin\Admin;
 | 
					namespace Grav\Plugin\Admin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use Grav\Common\Grav;
 | 
					use Grav\Common\Grav;
 | 
				
			||||||
 | 
					use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Whitebox
 | 
					class Whitebox
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -14,7 +15,10 @@ class Whitebox
 | 
				
			|||||||
        $this->scss = new ScssCompiler();
 | 
					        $this->scss = new ScssCompiler();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function compileScss($config, $options = ['filename' => 'preset'])
 | 
					    public function compileScss($config, $options = [
 | 
				
			||||||
 | 
					            'input' => 'plugin://admin/themes/grav/scss/preset.scss',
 | 
				
			||||||
 | 
					            'output' => 'asset://admin-preset.css'
 | 
				
			||||||
 | 
					        ])
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if (is_array($config)) {
 | 
					        if (is_array($config)) {
 | 
				
			||||||
            $color_scheme   = $config['color_scheme'];
 | 
					            $color_scheme   = $config['color_scheme'];
 | 
				
			||||||
@@ -23,17 +27,20 @@ class Whitebox
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($color_scheme) {
 | 
					        if ($color_scheme) {
 | 
				
			||||||
 | 
					            /** @var UniformResourceLocator $locator */
 | 
				
			||||||
            $locator = $this->grav['locator'];
 | 
					            $locator = $this->grav['locator'];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            $admin_in_base        = $locator->findResource('plugin://admin/themes/grav/scss');
 | 
					            $input_scss       = $locator->findResource($options['input']);
 | 
				
			||||||
            $custom_out_base      = $locator->findResource('plugin://admin/themes/grav/css-compiled');
 | 
					            $output_css      = $locator->findResource(($options['output']), true, true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            $preset_in_path       = $admin_in_base .'/preset.scss';
 | 
					            $input_path = dirname($input_scss);
 | 
				
			||||||
            $preset_out_path      = $custom_out_base . '/'. $options['filename'] . '.css';
 | 
					            $imports = [$locator->findResource('plugin://admin/themes/grav/scss')];
 | 
				
			||||||
 | 
					            if (!in_array($input_path, $imports)) {
 | 
				
			||||||
 | 
					                $imports[] = $input_path;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
                $this->compilePresetScss($color_scheme, $preset_in_path, $preset_out_path);
 | 
					                $this->compilePresetScss($color_scheme, $input_scss, $output_css, $imports);
 | 
				
			||||||
            } catch (\Exception $e) {
 | 
					            } catch (\Exception $e) {
 | 
				
			||||||
                return [false, $e->getMessage()];
 | 
					                return [false, $e->getMessage()];
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -44,12 +51,12 @@ class Whitebox
 | 
				
			|||||||
        return [false, ' Could not be recompiled, missing color scheme...'];
 | 
					        return [false, ' Could not be recompiled, missing color scheme...'];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function compilePresetScss($colors, $in_path, $out_path)
 | 
					    public function compilePresetScss($colors, $in_path, $out_path, $imports)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $compiler = $this->scss->reset();
 | 
					        $compiler = $this->scss->reset();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $compiler->setVariables($colors['colors'] + $colors['accents']);
 | 
					        $compiler->setVariables($colors['colors'] + $colors['accents']);
 | 
				
			||||||
        $compiler->setImportPaths(dirname($in_path));
 | 
					        $compiler->setImportPaths($imports);
 | 
				
			||||||
        $compiler->compile($in_path, $out_path);
 | 
					        $compiler->compile($in_path, $out_path);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1300
									
								
								themes/grav/css-compiled/preset.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1300
									
								
								themes/grav/css-compiled/preset.css
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
{% do assets.addCss(theme_url~'/css-compiled/nucleus.css') %}
 | 
					{% do assets.addCss(theme_url~'/css-compiled/nucleus.css') %}
 | 
				
			||||||
{% do assets.addCss(theme_url~'/css-compiled/template.css') %}
 | 
					{% do assets.addCss(theme_url~'/css-compiled/template.css') %}
 | 
				
			||||||
{% do assets.addCss(theme_url~'/css-compiled/preset.css') %}
 | 
					{% do assets.addCss(base_url_frontend~'/assets/admin-preset.css') %}
 | 
				
			||||||
{% if config.plugins.admin.google_fonts %}
 | 
					{% if config.plugins.admin.google_fonts %}
 | 
				
			||||||
    {% do assets.addCss(theme_url~'/css-compiled/fonts.css') %}
 | 
					    {% do assets.addCss(theme_url~'/css-compiled/fonts.css') %}
 | 
				
			||||||
{% else %}
 | 
					{% else %}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user