如何动态设置属性到模板(包括css)PHP
Posted
技术标签:
【中文标题】如何动态设置属性到模板(包括css)PHP【英文标题】:How to dynamically set properties to a template (including css) PHP 【发布时间】:2012-08-28 16:06:58 【问题描述】:我必须做一个网站,允许管理员创建其他用户可以注册的“事件”。 每个“事件”都有自己的用户。 当管理员创建事件时,他必须从预定义的模板(当然是我之前创建的)中选择一个设计,当我说设计时,我的意思是菜单和其他东西的位置。 但这里有一个“问题”,例如,管理员从调色板中选择菜单的背景或文本颜色。
由于每个设计模板都有自己的 CSS 文件,我不知道如何将背景设置为之前创建的“事件”的特定区域。
我在想,当我选择颜色时,我可以将它放入带有“事件”的数据库中,当有人想要查看事件时,我从数据库中获取它,使用 php 的 file_gets_contents 并替换Here is some property value 和颜色值。你觉得怎么样?。 还有另一种方法吗? 感谢您花时间回答和记住:D
【问题讨论】:
【参考方案1】:将自定义颜色值保存在数据库或其他东西中。然后只需在 html 标头中的 style
标记中设置这些 CSS 属性。这样,您只需设置可以在一个地方更改的属性。
类似:
<style type="text/css">
custom_text_color color: $prop1_color;
custom_background background-color: $prop2_color;
</style>
那么下面的 html 输出将在页面后面保持不变:
<span class="custom_text_color">This is text in your custom color!</span>
【讨论】:
甚至不要在 html 标头中修改它。将样式表保存为.php
,将header("Content-type: text/css", true);
添加到php 文件中,并使用会话来确定参考ID,以便从数据库中提取信息。 (修改你原来的答案)
我考虑过推荐它——但我认为考虑到这个问题可能有点过于复杂。尤其是当您检查文件是否已经存在、正确刷新缓存文件等时。我敢打赌,在每个页面请求上写入文件是这个用户会做的事情,这很糟糕。
好吧,我还是建议。 OP 可以查看 cmets 并决定他想做什么。
是的,gavin 的回答看起来很简单很好,谢谢你们的回答,我想我一定会这样做的;)再见。
@rentless,如果它适合你,请记住接受这个答案。以上是关于如何动态设置属性到模板(包括css)PHP的主要内容,如果未能解决你的问题,请参考以下文章
如何在 WordPress 中通过模板为 HTML 标签动态添加类