有关构建分布式CMS的建议?

时间:2008-09-16 20:32:55

标签: php content-management-system

我正在设计一个基于PHP的内容管理系统供个人使用,最终将被分发。我知道有很多CMS已经存在,但我真的没有找到满足我所有需求的产品,我也希望有学习经验。安全性是一个重点,可扩展性和易用性也是如此。对于那些建立了自己的CMS的人,您可以提供哪些建议?哪些功能对核心至关重要?什么是必须有附加组件?在开始之前你想知道什么?什么是最大的潜在障碍/问题?欢迎提出任何建议。

编辑:任何关于营销的建议和不做的建议也将受到赞赏。

8 个答案:

答案 0 :(得分:6)

在构建CMS的几次迭代时,一些关键的事情证明是:

  • 拥有一个优秀的富文本编辑器 - 最终用户真的不想做HTML。共识似乎是FCKEditor是最好的 - 最近在这里有几个问题
  • 允许人们添加新页面并轻松创建菜单/标签结构或页面之间的交叉链接
  • 确定如何使内容适合模板和/或允许用户自己开发模板
  • 弄清楚如何(以及是否)让人们从Microsoft Word粘贴内容 - 转换魔术引号,emdashes和怪异的Wordish HTML
  • 包含一个拼写检查功能(虽然Firefox内置了一些内容,而且iespell可以为IE做这个工作)

一些不太重要但有用的功能是:    - 能够动态创建可读和SEO友好的URL(StackOverflow方式也不错)    - 能够在修改后显示早期版本的内容    - 能够为内容提供沙箱,以便在发布之前对其进行校对或检查    - 处理多种语言和非英语/非ASCII字符

答案 1 :(得分:4)

好吧,构建自己的CMS实际上意味着它不是企业级产品。这意味着您将无法实际实现使CMS用户满意的所有功能。甚至没有大多数功能。我想澄清一下,CMS实际上是指创建Web应用程序或网站的平台,而不是博客平台或缩小版本。根据个人经验,我可以告诉你CMS中我最想要的东西 1.可扩展 - 提供一个干净而强大的API,以便程序员可以通过代码完成大部分工作,而不是使用UI 2.轻松创建和编辑页面 - 使用模板,为单个页面提供多个URL,提供URL重写的选项 3.使其基于组件。允许用户添加自定义功能。让某人轻松添加他的代码来做某事 4.使它对SEO友好。这包括元数据,URL重写,良好的站点地图等。

现在我也喜欢这些企业功能,但我怀疑你是否希望从一开始就深入了解它们的实现。它们包括工作流程(内容创建的批准过程,可自定义),用于常见功能的内置模块(博客,电子商务,新闻),编写自己的模块的能力,不同用户的权限,内置联合等。

毕竟我从开发人员的角度说话,我的意见可能不是主流,所以你最终必须自己决定。正如ahockley所说 - 你必须知道为什么你需要建立自己的CMS。

答案 2 :(得分:2)

如果您向100位不同的CMS用户询问有关其CMS的最重要信息,您可能会得到80多个不同的答案。

最大的障碍可能是人们问你为什么要从头开始构建一个新的CMS。  如果你不知道这个问题的答案,我不确定你为什么要走这条路。

要记住的一件事是,对于互联网CMS,人们会想要与许多“常规”服务集成点。在构建您自己的专有解决方案之前,利用照片共享网站,Twitter,OpenID等现有服务。

答案 3 :(得分:2)

我写了一个供个人使用的CMS,并将其发布给有史以来最大的唧唧喳喳合唱团!不过没什么大不了的。我确实学到了很多,我鼓励你继续前进。我的客户使用它并喜欢它并保持良好状态。

但如果我重新开始(我可能),这是我给自己的建议:

  1. 清除从用户
  2. 输入的所有所有 所有内容
  3. 用户管理是产品差异化因素。能够处理某人从WORD复制/粘贴的奖励积分。
  4. 可扩展性。我得到的评论中有90%来自想要使用cms来托管“部分”网站页面而不是其他网站页面的开发人员。或者他们想要将自定义脚本嵌入到内容中的页面中。我的下一个cms将是模块化的,我可以处理。
  5. 很多人对干净的网址非常狂热。

答案 4 :(得分:1)

从营销角度来看:

1)使模板能够

2)制作CMS SEF并拥有SEOed URL。

答案 5 :(得分:1)

如果您需要构建自定义功能,其中CMS实际上是其他业务层的窗口,那么请使用基于CodeIgniter框架的PyroCMS或FuelCMS。

开发人员通常会在Drupal和Joomla的杂草中迷路!随着时间的推移,/ Wordpress迅速成为意大利面条代码。它已经从Kool-aid打孔碗中喝了多少。

答案 6 :(得分:0)

我知道这不是您正在寻找的直接答案,但如果您还没有看过它,我建议您查看CMS made simple。它比其他CMS更少膨胀,并且快速有效。它是开源的,因此它可能是您遇到的任何问题的一个很好的参考点。

答案 7 :(得分:-2)

只需使用Drupal。

开箱即用它非常轻快。你几乎可以为所有东西添加模块,所以这可能令人生畏,但它太棒了。

它的安全性(美国国家航空航天局和白宫使用它),它的模块化,它的开源,它得到很好的支持,有着干净的API的声誉,并有从SEO到Wysiwyg的数百个模块....