2010-12-15 55 views
0

我使用Kohana框架在PHP中構建項目。它最終會支持多個用戶,所以登錄屏幕等。我也有某種「促銷網站」,這可能會說明產品的性能如何,並且有幫助頁面和FAQ等。單獨的推廣網站

我的問題是:將我的項目和促銷網站作爲單獨的網站(例如促銷網站在某個單獨的目錄中使用Drupal之類的東西)有什麼優勢?另一種方法是使用Kohana將頁面作爲我項目的一部分。有兩個獨立的框架(Drupal和Kohana)在同一個託管的可能不同的目錄中工作有多好? (我喜歡將Drupal的所有內容用於幫助頁面的內容等)。

回答

0

如果drupal的東西在不同的文件夾中,那麼它真的不應該影響kohana。單獨的文件夾也可以起到獨立的文件夾的作用。你也可以把它放在像help.example.com這樣的子域中。無論你喜歡什麼,都不應該成爲問題。我用我的主站點Kohana來使用wordpress博客。

0

從長遠來看,擁有獨立的內容/定製開發網站可能會導致更多的工作。每當您更新Drupal的主題時,您都需要在Kohana項目上更新它。此外,也許將來你需要更多的集成 - 例如,你可能希望某些頁面只能被登錄的用戶看到。

對於像這樣的情況,我通常爲內容部分開發一個非常基本的CMS的網站。這不是一項太大的任務 - 製作一個'CMS'模塊,以便您可以在其他項目中重用您的代碼。創建一個「頁面」表格和模型來存儲頁面。使用TinyMCE或類似的頁面編輯界面。

在CMS模塊的init.php,您可以創建一個循環遍歷所有網頁,併爲他們創造路線

<?php 
$pages = Model::factory('page')->find_all(); 
foreach($pages as $page){ 
    Route::set('page_'.$page->id, $page->uri) 
     ->defaults(array(
      'controller' => 'pages', 
      'action' => 'display')); 
} 
(這會默認<控制器>/<行動>路線前檢查)

如果您只打算自己編輯內容頁面,則可以跳過整個頁面編輯界面,只需編輯數據庫中的原始HTML即可。並不像Drupal那麼優雅,但是你將擁有更緊密的整合,並且可以節省Drupal附帶的膨脹。

+0

爲什麼這麼多路線?你可以試着抓住它們(用最後一條路線),然後在控制器中檢查頁面是否存在。如果確實如此 - 顯示它,如果不顯示404頁面。 – egis 2010-12-16 08:56:04

+0

確實如此,但這種方式頁面可以有任何url - 例如,您可能需要嵌套頁面,如「products/toys/baby/super-toy-2000」。 我想你可以用正則表達式做同樣的事情,但不會爲每個頁面加載增加開銷嗎? – Jordan 2010-12-16 09:24:01