我正在尽我所能通过开发一个网站来学习混凝土5。因此,我创建了一个空的基本主题,并试图通过样式定制器实现一个变量——只是为了了解它是如何工作的。最重要的是,我得到了主题上的自定义按钮,但点击后,打开的新显示是空的——没有变量,没有设置标题,没有后退按钮。
我希望有人能帮我解决这个问题,没有当地社区可以问,也不认识任何人——所以这一切都取决于你:]
所以,我的代码。
主题名为"carmi",位于应用程序目录中"themes"下的"carmi"文件夹中。有一个包含template.less、styles.xml和index.html的CSS目录。还有一个未使用的printing.less。
css目录中有一个presets目录,其中少了两个文件:"defaults"answers"testPreset"。两者都至少有一个变量。
对于页面模板,我有default、front、full和view,所有这些都使用完全相同的代码(view除外)。
我在一个页面(不是一个页面)上测试代码,尝试了几种页面类型。
默认情况下的代码。php:
<?php
defined('C5_EXECUTE') or die ('you shall not pass');
$bodyClass = ($c->isEditMode() ? 'editMode' : '');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php Loader::element('header_required'); ?>
<link href="<?php echo $view->getStylesheet('template.less');?>" rel='stylesheet' type='text/css'>
<?php
//echo $html->css($view->getStylesheet('less/styles.less'));
?>
</head>
<body class="<?php echo $bodyClass; ?>" >
<?php $this->inc('elements/test.php');?>
<div class="test-class">test text</div>
<?php $a = new GlobalArea('Site Header'); $a->display();?>
<?php $a = new Area('Test'); $a->display($c);?>
<?php Loader::element('footer_required'); ?>
</body>
</html>
test.php元素只是一些文本来证明一点。
无模板中的代码
@import "presets/defaults.less";
*{
color: @primary-action-color;
}
.test-class {
color: @another-color;
}
defaults.less中的代码注意,如果没有3个第一个变量,这也不起作用。
@preset-name: "test";
@preset-icon: concrete-icon(#ffffff, #ff7600, #333333);
@preset-fonts-file: "fonts/defaults.less";
@primary-action-color: #ff7600;
@another-color: #aaaaaa;
styles.xml 中的代码
<?xml version="1.0"?>
<styles version="1.0">
<set name="test">
<style name="Primary Action Color" variable="primary-action" type="color" />
</set>
</styles>
testPreset.less 中的代码
@primary-action-color: #aaaaaa;
@another-color: #ff7600;
解析到页面中的内容越少。我可以看到它与导入的变量一起正常工作。但自定义面板上没有任何内容。
如果你选择花时间阅读这一切,非常感谢。我对此坐了很长时间,非常沮丧:[
我在具体论坛中得到了一些帮助。defaults.less@preset名称似乎必须是"Default"。我还没有得到开发人员的正式回应,但这对我和论坛上提供帮助的人都很有效。