在我的一个项目中,我的用户将拥有我的网站({username} .example.org)的专用部分。在那个子域中,我打算让他们轻松地改变设计。 我看了一些已经这样做的在线网站,如Tumblr,Posterous和Shopify。允许用户更改模板的最佳方式是什么?
关于此应用程序的语言,我有Django的,这是我“的基础上默认为备用网址名称模板渲染”(http://someuser.example.com将加载succeedly实施开始它模板/ someuser/*中的模板或者模板/ generic/*中的模板(如果未在第一个中找到)。 但是如果它们更适合我的需求,我可以将它导出到PHP或Play!Framework。
使用的模板引擎是Jinja2,因为它是作为Django的模板引擎一样简单,易学,安全(无Python的coode能(通常应该!)执行)。
以下是我找到的每个解决方案的优点/缺点。我真的很感激你的想法,你会怎么做,为什么。谢谢。
注意:用户将对HTML/CSS有很好的了解。
更改瓦尔(如标题颜色等)
优点:
- 简单&安全
缺点:
- 太有限了,希望个性化自己的网站将无法使用此解决方案
这样做只能上传CSS
优点的用户:
- 易于整合
- 安全
缺点:
- 有限公司
- 当用户图像存储?(标志,背景,一些梯度等)
允许用户编辑模板(存储在数据库中)
优点:
- 变化是更重要的
- 用户几乎可以自由地做他想做的事(实现GA,FeedBur NER等)
缺点:
- 他们在哪里把静态文件(标志,背景图片,一些特殊效果(梯度))?
- 模板存储在数据库中,这需要对每个页面多了一个SQL请求显示
允许用户编辑模板(存储在文件中)
优点:
- 变化更重要
- 用户(几乎)自由地做任何他想做的(实现GA,FeedBurner的等)
- 一个FTP访问可以启用,生根在他的模板目录的用户。
缺点:
- 同样的问题对于静态文件
而且,当我卡是如何处理静态文件(图片,CSS js):我看不到如何在Apache(或NGinx)中定义一个VirtualHost,它会请求数据库查看哪个用户属于这个URL。
感谢您的帮助,我很感谢!
您必须非常小心地让用户自定义页面布局(使用原始HTML),因为如果您希望稍后重新设计基本站点,最终可能会遇到支持头痛的问题。 – 2011-04-27 07:32:48
你好想过那个,这就是为什么我选择了一个模板引擎(Jinja2,我更新了我的帖子)。那么你建议做什么?我需要让他们改变整个设计以适应他们的需要,并且还要添加新的页面(平坦的)。我有点卡住:/ – 2011-04-27 07:41:30