function testPatching() { $file = 'stylesheet/backend/stat.css'; $path = ClassLoader::getRealPath('public.') . $file; $css = new CssFile($file); $css->clearPatchRules(); $css->deleteSelector('#stat table'); $css->save(); $this->assertTrue(strpos(file_get_contents($css->getPatchedFilePath()), '#stat table') == 0); $css->deleteProperty('#stat .label', 'font-weight'); $css->save(); $this->assertTrue(strpos(file_get_contents($css->getPatchedFilePath()), 'font-weight') == 0); $css->clearPatchRules(); }
public function saveCss() { $params = json_decode($this->request->get('result'), true); $theme = $params['theme']; if (!$theme) { $theme = 'barebone'; } // save custom CSS $css = new CssFile('upload/css/' . $theme . '.css'); $css->setSource($params['css']); $css->save(); // deleted rules foreach ($params['deletedRules'] as $file => $selectors) { $css = CssFile::getInstanceFromUrl($file, $theme); foreach ($selectors as $selector) { $css->deleteSelector($selector); } $css->save(); } // deleted properties foreach ($params['deletedProperties'] as $file => $selectors) { $css = CssFile::getInstanceFromUrl($file, $theme); foreach ($selectors as $selector => $properties) { foreach ($properties as $property => $value) { $css->deleteProperty($selector, $property); } } $css->save(); } }