使用Backbone / Knockout(等)与PHP CMS

时间:2013-12-28 18:51:14

标签: php backbone.js knockout.js content-management-system

我是一个以前端为中心的网络开发人员,对JS(主要是jQuery)以及在一些基于PHP的CMS模板语言(例如ProcessWire,{ExpressionEngine中使用的PHP的点点滴滴相当自信。 {3}})。我对骨干的想法很兴奋,但一直在努力寻找一种方法将它融入我目前的网络开发方法......

当前项目要求我构建一个编辑风格的网站,其中包含部分和文章,理想情况下,这些部分和文章将作为单页面应用程序运行,并加载内容。 Backbone看起来是一个很好的方法,但我无法弄清楚是什么(如果有的话)Backbone将与我以前使用的基于PHP的CMS协同工作。

我最近遇到的Gentlewoman magazine网站似乎运行了WordPress + Backbone所以它似乎有可能但我找不到任何提及使用预先存在的(PHP)CMS的骨干教程。

这是一棵值得吠叫的树吗?如果是的话,最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

我使用Backbone.js,Joomla或Wordpress和xml这样做。使用Joomla或Wordpress创建的每篇文章都可以轻松生成xml Feed。在Joomla中有插件,它提供了所有最新文章的详细信息的xml提要。我使用的插件称为Ninja RSS syndicator。在wordpress中,应该内置最新文章的提要。在Backbone模型中,您可以执行类似这样的操作来覆盖提取:

        fetch: function (options) {
            options = options || {};
            options.dataType = "xml";
            return Backbone.Collection.prototype.fetch.call(this, options);
        } 

然后,您将覆盖解析函数以解析xml Feed并创建模型/集合:

        parse: function (data) {

            xml = data;


            $(xml).find('item').each(function (index) {

                title = $(this).find('title').text();
                description = $(this).find('description').text();

                parsed.push({id:id, title: title, 
                            description:description});

               id++;
            });

            return parsed;
        },

实际上,Joomla或Wordpress仅作为CMS使用,前端与Backbone.js分开构建。我使用这种方法从Joomla / Wordpress网站构建Phonegaps应用程序。

答案 1 :(得分:0)

我没试过这个,所以我不会说你不应该这样做,一切皆有可能(理论上)。然而,说实话,听起来就像方孔中的圆钉一样。 Wordpress和类似的系统以某种方式完成他们的工作,而且它们是非常经典的基于服务器的内容管理系统,顶部有一些AJAX。

您当然可以尝试 - 提供没有内容的自定义主题,只包含占位符div,然后运行AJAX操作来装饰它们。我怀疑这里的儿童主题毫无意义,因为你要压倒一切。从头开始写一个主题。

在这里说的一件事就是我不建议将管理系统变成一个单页的AJAX应用程序。这不仅是一项繁重的工作,而且还要与许多插件和核心功能作斗争,这些插件和核心功能都假定它是一个服务器端应用程序。