2008-09-16 45 views
3

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

编辑:任何关于营销的建议做的和不要的也不胜感激。

回答

4

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

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

毕竟我从开发者的角度讲话,我的观点可能不是主流,所以最终你必须自己决定。就像ahockley所说 - 你必须知道你为什么需要建立自己的CMS。

0

我知道这不是直接回答你要找的东西,但如果你还没有看过它,我建议检查CMS made simple。它比其他CMS的膨胀小得多,而且速度快,效率高。它是开源的,所以它可能是你遇到的任何问题的一个很好的参考点。

6

在建设的CMS的几个迭代,一些关键的东西竟然是:

  • 拥有一个良好的富文本编辑器 - 最终用户真的不想做的HTML。最近的一致看来,FCKEditor是最好的 - 最近在这里有几个问题
  • 允许人们添加新页面并轻松创建菜单/选项卡结构或页面之间的交叉链接
  • 确定如何将内容合并到模板中和/或允许用户自行开发模板
  • 弄清楚如何(以及是否)让人们从Microsoft Word中粘贴内容 - 转换魔术引号,emdashes和奇怪的Wordish HTML
  • 包括拼写检查功能(虽然Firefox有内置的东西,iespell可以为IE做这项工作)

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

2

如果向100位不同的CMS用户询问有关CMS最重要的事情,获得80多个不同的答案。

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

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

2

嗯,我写了个人使用的CMS,并将它发布到啁啾蟋蟀的最大合唱!尽管如此,没有什么大不了的。我确实学到了很多,我鼓励你前进。我的客户使用它,喜欢它,它保持良好。

但如果我是重新开始(我可能)这里的意见,我会给自己:

  1. 擦洗一切一切一切从用户输入
  2. 用户管理是一种产品区别。能够处理某人从WORD复制/粘贴的积分。
  3. 可扩展性。我收到的评论中有90%是来自希望使用cms托管“部分”网页而不是其他网站页面的开发人员。或者他们想要将自定义脚本嵌入到内容中的页面中。我的下一个cms将会像我可以处理的那样模块化。
  4. 很多人都对清洁网站绝对狂热。
1

从市场营销的角度来看:

1)让它模板能够

2)制作CMS SEF并制作搜索引擎优化网址。

-2

只需使用Drupal。

开箱即用,非常轻巧,快速。你为几乎所有东西都添加模块,这样可以让人望而生畏,但它太棒了。

它的安全性(美国国家航空航天局和白宫使用它),它的模块化,开放源代码,它得到了很好的支持,拥有良好的API声誉,并且拥有数百个从搜索引擎到Wysiwyg的模块......

+0

你不应该通过告诉人们如果想开发自己的东西来使用现成的创新而不鼓励创新。重新发明车轮使我们有经验的采用更好的东西从头开始学习基础知识。 – Lenin 2012-12-13 15:15:18

1

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

开发人员通常会在Drupal和Joomla的杂草中迷失方向!/WordPress随着时间的推移,很快就会变成意大利面代码。它已经从Kool-aid冲杯中喝了多少。

+0

“随着时间的推移,意大利面代码包含doozies”我希望我可以给你更多的投票。哈哈哈! – ProfK 2011-12-29 04:21:44