Я работаю с Magento 2. Я хочу установить цвета и другие менее переменные в блоке расширения, например: @primary__color
,
Кто-нибудь знает, как это сделать?
Я сделал это, сгенерировав собственный файл CSS из файла шаблона phtml с настройками цвета администратора.
protected function generateStoreCss($type, $storeId) {
$store = $this->_storeManager->getStore($storeId);
if(!$store->isActive())
return;
$storeCode = $store->getCode();
$str1 = '_'.$storeCode;
$str2 = $type.$str1.'.css';
$str3 = $this->_cssconfigData->getCssConfigDir().$str2;
$str4 = 'mypath/css/'.$type.'.phtml';
$this->_coreRegistry->register('cssgen_store', $storeCode);
try {
$block = $this->_layoutManager->createBlock('Vendor\Module\Block\Template')->setData('area','frontend')->setTemplate($str4)->toHtml();
if(!file_exists($this->_cssconfigData->getCssConfigDir())) {
@mkdir($this->_cssconfigData->getCssConfigDir(), 0777);
}
$file = @fopen($str3,"w+");
@flock($file, LOCK_EX);
@fwrite($file,$block);
@flock($file, LOCK_UN);
@fclose($file);
if(empty($block)) {
throw new \Exception( __("Template file is empty or doesn't exist: ".$str4) );
}
} catch (\Exception $e) {
$this->_messageManager->addError(__('Failed generating CSS file: '.$str2.' in '.$this->_cssconfigData->getCssConfigDir()).'<br/>Message: '.$e->getMessage());
}
$this->_coreRegistry->unregister('cssgen_store');
}
Затем импортируйте этот файл CSS в макет.
Других решений пока нет …