【问题标题】:Separate promotion site单独的促销网站
【发布时间】:2010-12-16 16:39:27
【问题描述】:

我正在使用 Kohana 框架在 PHP 中构建一个项目。它最终将支持多个用户,例如登录屏幕等。我还有某种“促销网站”,它可能会说明产品有多好,并有帮助页面和常见问题解答等。

我的问题是:将我的项目和推广网站作为单独的网站有什么(不利)优势,例如推广网站在单独的目录中使用 Drupal 之类的东西?另一种方法是使用 Kohana 将页面构建为我项目的一部分。在同一主机的不同目录中拥有两个独立的框架(Drupal 和 Kohana)的工作情况如何? (我喜欢使用 Drupal 的所有东西来处理帮助页面的内容等)。

【问题讨论】:

    标签: php drupal web kohana


    【解决方案1】:

    如果drupal 的东西在不同的文件夹中,那么它根本不应该影响kohana。单独的文件夹也起作用,单独的文件夹。你也可以把它放在像 help.example.com 这样的子域上。不管你喜欢什么,应该都不是问题。我使用一个 wordpress 博客,我的主要网站是 Kohana。

    【讨论】:

      【解决方案2】:

      从长远来看,为内容/自定义开发提供单独的站点可能会导致更多的工作。每次您在 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 带来的臃肿。

      【讨论】:

      • 为什么这么多路线?您可以尝试全部捕获它们(使用最后一条路线),然后在控制器中检查页面是否存在。如果是 - 显示它,如果不是 - 显示 404 页面。
      • 是的,但是这样页面可以有任何 url - 例如,您可能需要嵌套页面,例如“products/toys/baby/super-toy-2000”。我想你可以用正则表达式做同样的事情,但这不会增加每个页面加载的开销吗?
      猜你喜欢
      • 1970-01-01
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      相关资源
      最近更新 更多