在我的一個項目中,我的用戶將擁有我的網站({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