2012-04-12 57 views
0

我有很多PHP应用程序(和PHP比其他太)不是很适合要建立在CMS的顶部,由于应用程序或遗留实施的复杂性。什么是将CMS功能引入应用程序的好方法?在过去,我一直在服务器端使用包含在页面中的HTML片段。片段通过HTML工具(如Dreamweaver或CushyCMS)进行维护。这使我可以拥有管理员可以维护的一些内容区域。然而,我对CushyCMS(也不是独立的DW)并不满意,因为它的能力有限。我一直在想使用类似的Wordpress来维护直接包含在服务器页面上的内容。但实际问题是... :)CMS集成到PHP应用程序

会是什么好办法没有建立整个网站与CMS像Wordpress或类似获得CMS功能。

回答

1

还有一个原因是CMS变得复杂 - 您可以通过添加简单的文章管理保存到任何文件或sqlite的开始..然后你需要几个用户..然后树状菜单,权限系统,文章锁定或版本控制..然后你想要更好的性能和可扩展性,所以你迁移到真正的数据库..然后,你想动态数据像小部件或表。然后模块化结构。一个商店模块,时事通讯等等。所以,你最终会遇到一个复杂的引擎,只有你知道它是如何工作的。

所以,如果你想有一个维护CMS从长期来看,利用现有的开源解决方案,即使是像WordPress的内部难看。您可能需要将其中一个整合到另一个中,即双方都需要API。

+0

接通CMS的顶部现有的软件并不总是对的选择,我不喜欢创造我自己的CMS,所以我只是想不同的选择这一问题。 – tomtom 2012-04-12 12:29:02

0

好,有些东西你可以做的是建立一个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的框架。

相关问题