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); }
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); } } }
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); } } }