2012-02-01 66 views
1

我使用LessDrupal,我想让管理员用户可以为全球某些网站元素定义颜色。为了澄清,我们有一个特定类型的内容,称之为“级别”,管理员可以为网站添加一个级别。每个级别应该有一个关联的颜色,这将是某些div的边框颜色等。我希望管理员能够通过cms设置颜色,并将其反映在外部样式表中。我可以预处理一个较少的css文件吗?

DOM中所有受影响的元素都按类别进行索引。我能想到的唯一方法就是在Less文件中导入第二个Less或CSS文件,该文件将由Drupal动态生成。我只想确保没有任何东西丢失,例如一种将php内联到较少文件的方式,并在将php传递给浏览器或服务器端较少的编译器之前执行。

+1

是否需要减少?您可以轻松地将少量样式表与常规CSS混合使用。 – 2012-02-01 22:00:31

+0

您是否已经尝试过颜色模块? – chrisjlee 2012-02-26 03:31:01

回答

0

通过这种方法,您最终会得到数百个(或任何您的受众)生成的.less文件。不知道这是你想采取的方法。

让用户定义颜色并将其存储在数据库中,然后当用户登录时加载其设置并生成CSS代码,您只需将其嵌入到header.php中(或者在Drupal的每个页面上加载的类似文件):

<?php if ($user->logged_in) { ?> 
<style type="text/css"> 
    .header { 
    background-color: <?php echo $background-color; ?>; 
    color:   <?php echo $header-color; ?>; 
    } 
    .content { 
    ... 
    } 
    ... 
</style> 
<?php } ?> 

..其余的样式是在LESS文件中定义的。

默认用户(未登录)将为您在LESS文件中定义的这些元素获取默认颜色。以上内容将简单覆盖它们(因此请确保您将嵌入到以下,您称之为主样式表)。

我会这样做。

+0

我应该已经更清楚了:用户所做的更改是针对管理员的,并且会对网站进行全局更改。按用户分类的用户没有任何内容。基本上,我们有一些内容类型,称之为“级别”,我们用颜色代码,我想让用户(管理员)设置与他们添加到系统中的每个新级别相关的颜色。 – selfsimilar 2012-02-07 01:51:19

相关问题