Exemple #1
0
function sass_compile_less_mincss()
{
    include dirname(__FILE__) . '/compile_less_sass_class.php';
    $less_file = dirname(__FILE__) . '/assets/css/style.less';
    $css_file = dirname(__FILE__) . '/assets/css/style.css';
    $css_min_file = dirname(__FILE__) . '/assets/css/style.min.css';
    $compile = new Compile_Less_Sass();
    $compile->compileLessFile($less_file, $css_file, $css_min_file);
}
Exemple #2
0
 public function plugin_compile_less_mincss($sass, $css_file_name = '')
 {
     @ini_set('display_errors', false);
     $_upload_dir = wp_upload_dir();
     @chmod($_upload_dir['basedir'], 0777);
     if (!is_dir($_upload_dir['basedir'] . '/sass')) {
         @mkdir($_upload_dir['basedir'] . '/sass', 0777);
     } else {
         @chmod($_upload_dir['basedir'] . '/sass', 0777);
     }
     if (trim($css_file_name) == '') {
         $css_file_name = $this->css_file_name;
     }
     if ($css_file_name == '') {
         return;
     }
     if ($this->plugin_folder == '') {
         return;
     }
     $filename = $css_file_name;
     if (!file_exists($_upload_dir['basedir'] . '/sass/' . $filename . '.less')) {
         @file_put_contents($_upload_dir['basedir'] . '/sass/' . $filename . '.less', '');
         @file_put_contents($_upload_dir['basedir'] . '/sass/' . $filename . '.css', '');
         @file_put_contents($_upload_dir['basedir'] . '/sass/' . $filename . '.min.css', '');
     }
     $files = array_diff(scandir($_upload_dir['basedir'] . '/sass'), array('.', '..'));
     if ($files) {
         foreach ($files as $file) {
             @chmod($_upload_dir['basedir'] . '/sass/' . $file, 0777);
         }
     }
     $sass_data = '';
     if ($sass != '') {
         $sass_data = '@import "' . $this->plugin_dir . '/admin/less/assets/css/mixins.less";' . "\n";
         $sass_data .= $sass;
         $sass_data = str_replace(':;', ': transparent;', $sass_data);
         $sass_data = str_replace(': ;', ': transparent;', $sass_data);
         $sass_data = str_replace(': !important', ': transparent !important', $sass_data);
         $sass_data = str_replace(':px', ':0px', $sass_data);
         $sass_data = str_replace(': px', ': 0px', $sass_data);
         $less_file = $_upload_dir['basedir'] . '/sass/' . $filename . '.less';
         if (is_writable($less_file)) {
             if (!class_exists('Compile_Less_Sass')) {
                 include dirname(__FILE__) . '/compile_less_sass_class.php';
             }
             file_put_contents($less_file, $sass_data);
             $css_file = $_upload_dir['basedir'] . '/sass/' . $filename . '.css';
             $css_min_file = $_upload_dir['basedir'] . '/sass/' . $filename . '.min.css';
             $compile = new Compile_Less_Sass();
             $compile->compileLessFile($less_file, $css_file, $css_min_file);
         }
     }
 }
Exemple #3
0
 public function plugin_compile_less_mincss($sass, $css_file_name = '')
 {
     // just filter when compile less file
     add_filter('filesystem_method', array($this, 'custom_filesystem_method'));
     $form_url = wp_nonce_url(esc_url(add_query_arg('compile-sass', 'true')), 'compile-sass');
     if (!function_exists('request_filesystem_credentials')) {
         require_once ABSPATH . 'wp-admin/includes/file.php';
     }
     if (false === ($creds = request_filesystem_credentials($form_url, '', false, false, null))) {
         return true;
     }
     if (!WP_Filesystem($creds)) {
         // our credentials were no good, ask the user for them again
         request_filesystem_credentials($form_url, '', true);
         return true;
     }
     global $wp_filesystem;
     @ini_set('display_errors', false);
     $_upload_dir = wp_upload_dir();
     $wp_filesystem->chmod($_upload_dir['basedir'], 0755);
     if (!$wp_filesystem->is_dir($_upload_dir['basedir'] . '/sass')) {
         $wp_filesystem->mkdir($_upload_dir['basedir'] . '/sass', 0755);
     } else {
         $wp_filesystem->chmod($_upload_dir['basedir'] . '/sass', 0755);
     }
     if (trim($css_file_name) == '') {
         $css_file_name = $this->css_file_name;
     }
     if ($css_file_name == '') {
         return;
     }
     if ($this->plugin_folder == '') {
         return;
     }
     $filename = $css_file_name;
     if (!file_exists($_upload_dir['basedir'] . '/sass/' . $filename . '.less')) {
         $wp_filesystem->put_contents($_upload_dir['basedir'] . '/sass/' . $filename . '.less', '', 0644);
         $wp_filesystem->put_contents($_upload_dir['basedir'] . '/sass/' . $filename . '.css', '', 0644);
         $wp_filesystem->put_contents($_upload_dir['basedir'] . '/sass/' . $filename . '.min.css', '', 0644);
     }
     $mixins = $this->css_file_name . '_mixins';
     if (!file_exists($_upload_dir['basedir'] . '/sass/' . $mixins . '.less')) {
         $mixinsless = $this->plugin_dir . '/admin/less/assets/css/mixins.less';
         $a3rev_mixins_less = $_upload_dir['basedir'] . '/sass/' . $mixins . '.less';
         $wp_filesystem->copy($mixinsless, $a3rev_mixins_less, true);
     }
     $files = array_diff(scandir($_upload_dir['basedir'] . '/sass'), array('.', '..'));
     if ($files) {
         foreach ($files as $file) {
             $wp_filesystem->chmod($_upload_dir['basedir'] . '/sass/' . $file, 0644);
         }
     }
     $sass_data = '';
     if ($sass != '') {
         $sass_data = '@import "' . $mixins . '.less";' . "\n";
         $sass_data .= $sass;
         $sass_data = str_replace(':;', ': transparent;', $sass_data);
         $sass_data = str_replace(': ;', ': transparent;', $sass_data);
         $sass_data = str_replace(': !important', ': transparent !important', $sass_data);
         $sass_data = str_replace(':px', ':0px', $sass_data);
         $sass_data = str_replace(': px', ': 0px', $sass_data);
         $less_file = $_upload_dir['basedir'] . '/sass/' . $filename . '.less';
         if (is_writable($less_file)) {
             if (!class_exists('Compile_Less_Sass')) {
                 include dirname(__FILE__) . '/compile_less_sass_class.php';
             }
             $wp_filesystem->put_contents($less_file, $sass_data, 0644);
             $css_file = $_upload_dir['basedir'] . '/sass/' . $filename . '.css';
             $css_min_file = $_upload_dir['basedir'] . '/sass/' . $filename . '.min.css';
             $compile = new Compile_Less_Sass();
             $compile->compileLessFile($less_file, $css_file, $css_min_file);
         }
     }
 }