【问题标题】:Integrating CMS to PHP application将 CMS 集成到 PHP 应用程序
【发布时间】:2012-04-24 14:34:00
【问题描述】:

由于应用程序或遗留实现的复杂性,我有许多 PHP 应用程序(以及 PHP 以外的其他应用程序)不太适合在 CMS 之上构建。将 CMS 功能引入应用程序的好方法是什么?过去,我一直在服务器端使用 HTML sn-ps,它们包含在页面中,片段是通过 Dreamweaver 或 CushyCMS 等 HTML 工具维护的。这让我有一些管理员可以维护的内容区域。但是我对 CushyCMS(也不是独立的 DW)不太满意,因为它的功能有限。我一直在考虑使用类似的 Wordpress 来维护直接包含在服务器页面中的内容。但实际的问题是...... :)

在不使用 CMS(如 Wordpress 或类似内容)构建整个网站的情况下获得 CMS 功能的好方法是什么?

【问题讨论】:

    标签: php content-management-system


    【解决方案1】:

    CMS 变得复杂是有原因的——你首先添加简单的文章管理,保存到文件或 sqlite 中。然后你需要几个用户。然后是树状菜单、权限系统、文章锁定或版本控制..然后你想要更好的性能和可伸缩性,所以你迁移到真正的数据库..然后你想要像小部件或表格这样的动态数据。然后是模块化结构。商店模块、时事通讯等。因此,您最终会得到一个只有您知道其工作原理的复杂引擎。

    因此,如果您想要一个可长期维护的 CMS,请使用现有的开源解决方案,即使它们像 Wordpress 那样内部丑陋。您可能需要将一个集成到另一个中,这就是您需要双方都使用 API 的地方。

    【讨论】:

    • 在 CMS 上切换现有软件并不总是可行的,我不喜欢创建自己的 CMS,所以我只是在考虑解决这个问题的不同选择。
    【解决方案2】:

    好吧,您可以做的事情是创建一个 CMS 扩展来处理 CMS 中的路由,然后将结果委托给底层应用程序。

    举个例子,让我们考虑一下 drupal 7。在这个 CMS 中,您可以创建一个包含两个文件的文件夹:一个用于模块的数据,另一个用于模块的代码。

    my_module/my_module.info

    name = My Module
    description = A description of what your module does.
    core = 7.x
    

    my_module/my_module.module

    <?php
    /**
    * Respond to a drupal's URL with a callback.
    */
    function my_module_menu() {
        $menu = array();
        $menu["App"] = array(
            "page callback" => "my_module_run",
            "access callback" => true,
        );
        return $menu;
    }
    
    /*
    * Do the job
    */
    function my_module_run() {
        ob_start();
        // Call your application by including it's index.php file or whatever
        // operation needed.....
        // Capture the result of the application.
        $result = ob_get_clean();
    
        // If the request is ajax, echo the result.
        if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) 
           && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
            echo $result;
        } else {
            //Otherwise, return it, so it is rendered as part of the 
            // CMS content.
            return $result;
        }
    }
    ?>
    

    使用此基本代码,您可以将您的应用程序“集成”到drupal,您只需将其安装为任何drupal 模块,然后转到htt://your-cool-site/App 来执行您的应用程序。

    更多关于drupal模块创作here

    希望对你有帮助:)

    Here 是一个考虑到这一点的框架,它与 drupal(6、7 和 8)和 joomla 绑定。

    【讨论】:

      猜你喜欢
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多