modx注册码

MODX is a content management system that was first released in 2005 by Ryan Thrash, Raymond Irving and Jason Coward. They created it to give them freedom of design and yet retain robust security which they felt other CMSs didn’t allow.

MODX是内容管理系统,由Ryan Thrash,Raymond Irving和Jason Coward于2005年首次发布。 他们创建它的目的是让他们自由设计,同时保留其他CMS不允许的强大安全性。

MODX logo

In 2009, MODX was released as Evolution and Revolution. Evolution was built and maintained on the original codebase, while Revolution was entirely rewritten. This article is based on Revolution.

2009年,MODX发行为Evolution and Revolution 。 Evolution是在原始代码库上构建和维护的,而Revolution被完全重写了。 本文基于Revolution。

Within the MODX manager, you have access to a built-in package library which contains most of what any developer would need for common tasks. Creating your own plugins and scripts is quite trivial, and there are some good for-pay extras out there too.

在MODX管理器中,您可以访问内置的软件包库,其中包含任何开发人员执行常见任务所需的大部分内容。 创建自己的插件和脚本非常简单,而且那里还有一些不错的付费功能。

Visit the MODX Home and about pages for more history and feature information.

访问MODX主页以及有关更多历史和功能信息的页面。

我们见过吗? (Have We Met?)

If you’ve never heard of MODX before now, just realize it’s a long-lived and pretty powerful engine that is often compared with the likes of Joomla and Drupal. Some also compare it to WordPress, but that’s not apples to apples. WordPress is meant to be usable out of the box by non-technical people. In fact, MODX has been described by some as the best CMS you’ve never used.

如果您以前从未听说过MODX,请意识到它是一个寿命长且功能强大的引擎,经常与Joomla和Drupal之类的引擎进行比较。 有些人也将其与WordPress进行了比较,但这不是苹果与苹果。 WordPress应该可以由非技术人员立即使用。 实际上,有人将MODX描述为您从未使用的最佳CMS

In general I would summarize MODX as a framework for developers to build with, and not an out-of-the-box, point-n-click website builder. MODX would not be the best choice of CMS for a person with no PHP or HTML skills. There are no menu builders or lists of modules to drag and drop in predefined theme positions.

通常,我将MODX概括为开发人员可以使用的框架,而不是开箱即用的“单击即点”网站构建器。 对于没有PHP或HTML技能的人来说,MODX并不是CMS的最佳选择。 没有菜单构建器或模块列表可拖放到预定义的主题位置。

MODX may be better described as a CMF (content management framework) than a CMS. You could use just the API purely to control endpoints and scripts with no pages or posts at all, if you wanted.

与CMS相比,将MODX更好地描述为CMF(内容管理框架)。 如果需要,您可以仅使用API​​来完全控制端点和脚本,而没有页面帖子

深层发掘 (Digging Deeper)

MODX, like many popular frameworks, is built with PHP. It can run on popular servers such as Apache, IIS, Lighttpd and nginx. Its database of choice is MySQL, and it uses xPDO as an ORB (object-relational bridge). xPDO is built directly on PDO, and uses an active record style pattern for database access. It can be compared to the likes of Doctrine or Propel, for example.

像许多流行的框架一样,MODX是用PHP构建的。 它可以在流行的服务器上运行,例如Apache,IIS,Lighttpd和nginx。 它的首选数据库是MySQL,它使用xPDO作为ORB (对象关系桥)。 xPDO直接建立在PDO上,并使用活动记录样式模式进行数据库访问。 例如,可以将其与教义或Propel之类的东西进行比较。

The Manager is built with ExtJS, Smarty templates, and MODX’s own API. Editing the manager itself and its dashboards, menus and other features is an ability built right in to the UI. You have fine control over everything in the Manager as far as what you want your clients to have access to.

管理器使用ExtJS,Smarty模板和MODX自己的API构建。 编辑管理器本身及其仪表板,菜单和其他功能是内置在UI中的功能。 只要您希望客户可以访问,您就可以很好地控制Manager中的所有内容。

Custom menus, and very fine-grained ACLs (access control lists) round out your back-end options. Security is probably one of the top features MODX fans love about it, though understanding it fully involves a significant learning curve.

自定义菜单和非常精细的ACL(访问控制列表)完善了您的后端选项。 安全性可能是MODX爱好者钟爱的最重要功能之一,尽管了解它完全涉及一条重要的学习曲线。

MODX itself is backed by an LLC, which is MODX, LLC. They offer other products such as cloud hosting and consulting services. MODX is not an SGP (some guy’s project); it has a bit more staying power than some other modern CMSs that just popped up, created by one person, managed in their spare time. You can be pretty confident that if you choose MODX for your projects, it’s not going to disappear any time soon, and good support is available.

MODX本身由LLC (即MODX,LLC)支持。 他们提供其他产品,例如云托管和咨询服务。 MODX不是SGP (某人的项目); 它比其他一些由一个人创建并在空闲时间进行管理的现代CMS更具持久力。 您可以完全有信心,如果为您的项目选择MODX,它不会很快消失,并且会提供良好的支持。

教育与文献 (Education and Documentation)

MODX is well documented, including videos, books, and the standard community forums. The forums, incidentally, are built on MODX itself, using freely available extras, and you can find threads over 10 years old still lingering.

MODX有充分的文档记录,包括视频 , 书籍和标准社区论坛 。 顺便说一句,这些论坛是基于MODX本身构建的,使用的是免费提供的附加功能,您可以发现10多年以上的帖子仍然存在。

All in all, you will want to check out the Revolution Manager Tour, watch the Video Quick-Start Series, and browse the documentation such as the Overview to get well acquainted.

总而言之,您将需要查看Revolution Manager导览 ,观看Video Quick-Start Series并浏览诸如Overview之类的文档,以熟悉它们。

MODX also has a fairly active Slack channel where friendly people are always available to answer quick questions and gotchas.

MODX还有一个相当活跃的Slack频道,在这里,友好的人总是可以回答快速的问题和陷阱。

安装 (The Installation)

MODX is only currently installed by downloading the ZIP and extracting to your web folder.

当前仅通过下载ZIP并将其解压缩到您的Web文件夹来安装MODX。

Download MODX

As far as updates go, there’s no self-updater in the core product. However, there is an extra which does the upgrade for you just as easily. All of the extras themselves can be updated through the manager.

就更新而言,核心产品中没有自我更新器。 但是,还有一个额外功能可以轻松为您升级。 所有附加功能本身都可以通过管理器进行更新。

The project is managed on GitHub, which will always contain the latest snapshots of the project. You could install this way, but downloading from the main website is the preferred and normal method.

该项目在GitHub上进行管理,它将始终包含该项目的最新快照。 您可以通过这种方式安装,但是从主要网站下载是首选的常规方法。

为什么很棒 (Why It’s Awesome)

MODX is something of a power user’s CMS. Out of the box you get a blank template to design with, and hundreds of settings to change how things work. There are no wizards, drag and droppers, menu builders, widget organizers, template settings, strange forced file system hierarchy structures or magic functions to throw everywhere.

MODX是高级用户的CMS。 开箱即用,您可以使用空白模板进行设计,并提供数百种设置来更改事物的工作方式。 没有向导,拖放,菜单构建器,小部件组织器,模板设置,奇怪的强制文件系统层次结构或魔术函数可以无处不在。

I was hunting for a CMS some years ago as a means of converting some older, hand-coded sites into a CMS. Nothing I found made this very easy without a lot of tweaking and learning complex template structures. When I installed MODX, there was this link to BaseTemplate; I pasted my HTML in there, and it just worked, no fuss no muss, as they say, and nothing broke.

几年前,我正在寻找CMS,以将一些较旧的手工编码网站转换为CMS。 如果不进行大量调整和学习复杂的模板结构,我发现没有什么事情变得如此简单。 当我安装MODX时,有指向BaseTemplate的链接; 我将我HTML粘贴到了那里,然后就可以正常工作了,正如他们所说的那样,没有大惊小怪的事情,没有任何麻烦。

In fact, if you’re typically a hand coder, MODX may be the best CMS for you. The learning curve to creating hand-coded websites is extremely small.

实际上,如果您通常是手动编码器,则MODX可能是最适合您的CMS。 创建手工编码网站的学习曲线非常小。

When you want to develop multi-language, multi-site websites with separate paywalled content and a customized manager for your clients, then you’ll experience what MODX can do!

如果您要开发具有单独付费墙内容和针对客户的自定义经理的多语言,多站点网站,那么您将体验MODX可以做什么!

Everything about MODX is rather unassuming. For any given task you need to complete, there are typically multiple ways of getting it done.

关于MODX的所有内容都不算什么。 对于您需要完成的任何给定任务,通常有多种方法可以完成它。

From simple to complex, MODX can do it all. It’s been used to build API endpoints, forums, blogs, business sites, brochure pages and multimedia sites. It can handle languages, advanced security permissions, and customizing of the manager for client logins.

从简单到复杂,MODX都能做到。 它已用于构建API端点,论坛,博客,商业网站,手册页和多媒体网站。 它可以处理语言,高级安全权限以及定制用于客户端登录的管理器。

组装网页 (Assembling a Web Page)

MODX uses a stack of pieces to assemble a web page. It uses what are called Templates, Snippets, Chunks, Template Variables, and its own template tag system. These are all called Elements:

MODX使用一堆碎片来组装一个网页。 它使用了所谓的模板,摘要,块,模板变量以及它自己的模板标签系统。 这些都称为Elements

Elements tree

You can get any system data from within templates — such as logged in user data, current page data, metadata, system-wide settings, template variables, chunks, snippets and placeholders — by using tags.

您可以使用标签从模板中获取任何系统数据,例如登录的用户数据,当前页面数据,元数据,系统范围的设置,模板变量,块,代码片段和占位符。

The MODX workflow involves coding your HTML templates and parsing out reusable HTML into Chunks and reusable dynamic PHP stuff into Snippets. You can set up any custom fields needed for that template as well. Next you’d create a Resource, assign it to the template, fill in the fields, and Bob’s your uncle!

MODX工作流程涉及对HTML模板进行编码,将可重用HTML解析为 ,将可重用的动态PHP内容解析为片段 。 您也可以设置该模板所需的任何自定义字段。 接下来,您将创建一个Resource ,将其分配给模板,填写字段,然后Bob是您的叔叔!

A Resource is the basic definition of an endpoint; it’s something found at a URL. You could call resources pages, but they can be used for much more than that. You can set the actual content type of a resource to be something other than HTML, such as PDF or binary data. Then you can set the content to either download from the browser, or display directly. A resource could even just point to a file, or link to an outside page, or be used as a symlink to other content on the site.

资源是端点的基本定义; 在URL上找到的东西。 您可以调用资源页面 ,但它们的用途不止于此。 您可以将资源的实际内容类型设置为HTML以外的其他内容,例如PDF或二进制数据。 然后,您可以将内容设置为从浏览器下载或直接显示。 资源甚至可以仅指向文件,链接到外部页面,或用作指向站点上其他内容的符号链接。

A Template is the frame around which your resource will be displayed. All resources are assigned a template.

模板是将在其周围显示资源的框架。 所有资源都分配有一个模板。

A Chunk is reusable HTML or JS or whatever you need that isn’t PHP.

是可重用HTML或JS,或者您需要的不是PHP的任何东西。

Snippets can contain PHP. They have access to the MODX core and all its objects.

片段可以包含PHP。 他们可以访问MODX核心及其所有对象。

A snippet can call a chunk, a chunk can call a snippet, templates can call either, and so can resources. Really they are the 4 horseman and can pretty much assemble any conceivable content required while maintaining darn good separation of concerns.

片段可以调用一个块,一个片段可以调用一个片段,模板可以调用任何一个,资源也可以调用。 确实,他们是4名骑兵,几乎可以汇编所需的任何可能的内容,同时又能保持良好的关注点分离。

A Plugin can extend the core by hooking into one or more of many events.

插件可以通过挂钩许多事件中的一个或多个来扩展核心。

A Template Variable is any custom data a template might need, and for which a resource is able to set. For example, it’s common to have a TV for a custom image like a page banner, but then each resource can assign a different image for the template to show. They would be like custom fields in WordPress, but more powerful.

模板变量是模板可能需要的任何自定义数据,并且可以为其设置资源。 例如,通常有一台电视机用于自定义图像(例如页面横幅),但是随后每种资源都可以为模板分配不同的图像以进行显示。 它们就像WordPress中的自定义字段 ,但功能更强大。

You can organize any of these elements by using Categories. Be sure to make use of categories so that your chunks and snippets don’t get out of hand and cluttered!

您可以使用Categories组织任何这些元素。 请务必使用类别,以免您的大块和摘要变得一发不可收拾!

All nicely tucked in a simple tree that you just saw.

所有人都很好地藏在刚才看到的一棵简单的树上。

快速浏览管理器 (A Quick Look at the Manager)

The manager is built with ExtJS. With that comes interesting abilities with drag and drop, form customizations, dynamic tables, right-click context menus, and more.

该管理器是使用ExtJS构建的。 随之而来的是有趣的功能,包括拖放,表单自定义,动态表,右键单击上下文菜单等等。

You can right-click resources for various options — including Quick Edit — which will let you edit the resource in a popup while keeping another resource open under it.

您可以右键单击资源以选择各种选项,包括“ 快速编辑” ,这将使您可以在弹出窗口中编辑资源,同时在其下保持打开另一个资源。

A handy feature of media management is that you can set up media sources which are then controlled by security. The end result is you can have it be that when clients log in, they will only be able to see the folders you assign for them, and even assign read-only access.

媒体管理的一个方便功能是您可以设置媒体源,然后由安全性控制它们。 最终结果是,您可以确保客户端登录时,他们只能看到您为其分配的文件夹,甚至可以分配只读访问权限。

The system settings are based on namespaces. You can even create a namespace for yourself and invent arbitrary settings you may use elsewhere in your app. I’ve done silly things like create a company namespace and settings such as primary company phone so that I can use the same number through the site. Then if the number changes, it’s only changed in one location. I give users access to changing these settings.

系统设置基于名称空间 。 您甚至可以为自己创建一个名称空间,并发明可在应用程序其他位置使用的任意设置。 我做了一些愚蠢的事情,例如创建公司名称空间和设置(例如主要公司电话),这样我就可以在网站上使用相同的号码。 然后,如果数字发生变化,则只会在一个位置发生变化。 我为用户提供了更改这些设置的权限。

All in all the manager is not complicated to get around in, despite the advanced features available.

总而言之,尽管可以使用高级功能,但管理器并不复杂。

The default dashboard

语境 (Contexts)

Resource tree

Notice the text Website in the image above. This is a Context, which basically means the context that viewers are in when they look at your website. When logged in to the manager, you are actually part of the Mgr context. Different contexts can have completely different resource trees, user permissions, access controls, language — the whole nine yards. The Mgr context is hidden from the tree by default.

注意上图中的“ 网站 ”文本。 这是一个Context ,基本上是指访问者在查看您的网站时所处的上下文。 登录到管理器后,您实际上是Mgr上下文的一部分。 不同的上下文可以具有完全不同的资源树,用户权限,访问控制,语言-整个9码。 默认情况下, Mgr上下文从树中隐藏。

Think of a context as being an entirely different website; even advanced sites may rarely take advantage of creating additional contexts. One common use of a context would be to create a type of member only website within the main website for authenticated users. All you would have to do is not allow public (guest) access to the context, among other things.

将上下文视为完全不同的网站; 即使是高级站点,也很少会利用创建其他上下文的优势。 上下文的一种常见用法是在主网站内为经过身份验证的用户创建一种仅会员网站。 您要做的就是不允许公共(来宾)访问上下文。

I’ve also seen contexts used simply to organize similar resources like a set of static files, or when serving non-HTML content types. Use them however you like! One caveat is that if a user is logged in to one context, it doesn’t mean they have access to all of them. If you wanted a type of single sign-on for all contexts, it would need extra development.

我还看到上下文仅用于组织类似的资源,例如一组静态文件,或者用于提供非HTML内容类型时。 随便使用它们吧! 一个警告是,如果用户登录到一个上下文,这并不意味着他们可以访问所有上下文。 如果要在所有上下文中使用单点登录类型,则需要进行额外的开发。

A context could be used (without security) to simply separate site areas, like a message board, blog, or a store. Some use it for alternate content for different languages. It’s one of the relatively hidden power features of MODX that many never even notice or make use of!

可以使用上下文(没有安全性)来简单地分隔站点区域,例如留言板,博客或商店。 有些人将其用于其他语言的替代内容。 这是MODX相对隐蔽的功能之一,许多人甚至从未注意到或使用!

模板和标签 (Templates and Tags)

I mentioned that MODX has a built-in template tag system. Here’s how it works, briefly.

我提到过MODX具有内置的模板标签系统。 简要介绍一下它的工作原理。

Each tag begins and ends with double brackets [[ ... ]].

每个标签都以双括号[[ ... ]]开头和结尾。

A character is used to denote if you are calling a chunk or a resource field or system settings etc. They are:

字符用于表示您是否正在调用块或资源字段或系统设置等。它们是:

  • [[*...]]: An asterisk retrieves resource fields. That is, specific data entered for the current resource, such as the page title or even the main content. It also looks up template variables.

    [[*...]] :星号检索资源字段。 也就是说,为当前资源输入的特定数据,例如页面标题甚至主要内容。 它还查找模板变量。

  • [[++...]]: This is looking up a system setting, such as site_url or a custom setting like company_phone1 if you’ve created one.

    [[++...]] :这是在查找系统设置,例如site_url或自定义设置,例如company_phone1(如果已创建)。

  • [[+...]]: This is a placeholder.

    [[+...]] :这是一个占位符。

  • [[~##]]: This generates a URL to a resource by its ID, such as [[~32]].

    [[~##]] :这会通过其ID生成一个指向资源的URL,例如[[~32]]

  • [[$...]]: This pulls in the HTML from a chunk.

    [[$...]] :这从大块中提取HTML。

  • [[...]]: No symbol at all will call a snippet.

    [[...]] :根本没有符号会调用代码段。

  • [[%...]]: Pulls a language string.

    [[%...]] :拉出语言字符串。

  • [[-...]]: MODX comment.

    [[-...]] :MODX评论。

  • [[!...]]: The exclamation point tells MODX not to cache the output of the tag; use it in conjunction with previous symbols. If you called [[!$SomeChunk]] then the output would be parsed each time, rather than pulled from the cache. Sometimes caching can bite you! Learn about it here. Did I mention MODX has a powerful cache built right in?

    [[!...]] :感叹号告诉MODX不要缓存标签的输出; 与以前的符号结合使用。 如果您调用[[!$SomeChunk]]则每次都会解析输出,而不是从缓存中提取输出。 有时缓存会咬你! 在这里了解它。 我是否提到过MODX内置了强大的缓存?

标签参数 (Tag Parameters)

Tags can use parameters and filters to customize their output. For example, you can add some parameters to an auto-generated URL like this:

标签可以使用参数和过滤器来自定义其输出。 例如,您可以将一些参数添加到自动生成的URL中,如下所示:

<a href="[[~17? &section=`food` &sort=`asc`]]">Here</a>

As you can see, the syntax of using parameters is not unlike parameters in a normal URL query string. A question mark denotes the start of a list of parameters, and each parameter starts with & and places the value in backticks.

如您所见,使用参数的语法与普通URL查询字符串中的参数没有什么不同。 问号表示参数列表的开头,每个参数均以&开头,并将值放在反引号中

The output of the above would be:

上面的输出将是:

<a href="yourpage?section=food&sort=asc">Here</a>

A snippet can receive extra data when called in a similar manner:

以类似方式调用时,代码片段可以接收额外的数据:

[[!MyCustomSnippet? &input=`something tasty`]]

Here, a snippet named MyCustomSnippet is called, and given the extra data named input, with a value of something tasty. In PHP, you would get a variable automatically created called $input, which you can access in the snippet.

在这里,一个名为MyCustomSnippet的代码段被调用,并给出了名为input的额外数据,其值something tasty 。 在PHP中,您将获得一个自动创建的名为$input的变量,您可以在代码段中进行访问。

Tags can be embedded within each other. A very common tag is this one:

标签可以相互嵌入。 这是一个非常常见的标签:

<a href="[[~[[*id]]]]">Link to this page</a>

There’s a resource field [[*id]] embedded in the link tag [[~#]]. Inner tags are parsed before outer tags.

链接标记[[~#]]嵌入了一个资源字段[[*id]] [[~#]] 。 内部标签在外部标签之前进行解析。

In another case, where you might be calling an HTML chunk and passing it some dynamic data pulled from a snippet, it might look like this:

在另一种情况下,您可能正在调用HTML块并向其传递从摘要中提取的一些动态数据,该数据可能看起来像这样:

[[$AChunk? &data=`[[!GetTheData]]`]]

The chunk tag is sending data to the chunk, but uses a snippet to figure out what that data actually is.

块标签正在将数据发送到块,但是使用代码段来确定该数据实际什么。

Because the above tag is calling a chunk, which is only HTML, how does it read the data values? They are automatically available with a placeholder tag like so:

因为上面的标记正在调用仅是HTML的块,所以它如何读取数据值? 它们自动带有占位符标签,如下所示:

<h2>A title</h2>
<p>[[+data]]</p>

Placeholders are used most frequently in chunks like this.

占位符最经常在这样的块中使用。

输出滤波器 (Output Filters)

Tags accept more than just parameters; they can also utilize output filters. Filters run post-processing code against the output. Multiple filters can be chained together. The easiest example would be changing the case of a string.

标签不仅仅接受参数。 他们还可以利用输出滤波器 。 过滤器针对输出运行后处理代码。 多个过滤器可以链接在一起。 最简单的示例是更改字符串的大小写。

[[SomeSnippet:ucase]]

A filter begins with a colon; it must come before your parameters. Here are a few chained filters:

过滤器以冒号开头; 它必须在您的参数之前。 以下是一些链接的过滤器:

[[SomeSnippet:ucase:replace=`this==that`? &param1=`Go big`]]

Here, the Snippet result is first converted to uppercase, then it runs a special replace filter to change all occurrences of this to that. After the filters, the parameters are listed, starting with the question mark as usual.

在这里,摘录结果首先被转换为大写,那么它运行一个特殊的过滤器更换来改变一切发生了这一点 。 在过滤器之后,列出参数,从通常的问号开始。

There are quite a few default filters, so check them out here.

有很多默认过滤器,因此请在此处进行检查。

Even cooler than the built-in filters is that you can use any snippet as a filter. All you have to do is use your snippet name like a filter:

比内置过滤器还酷的是,您可以使用任何代码段作为过滤器。 您所要做的就是将代码段名称用作过滤器:

[[$CallingChunk:mySnippet]]

Whatever HTML is sent by the CallingChunk code, your mySnippet can access and change it however you like with your own PHP. The value of $CallingChunk would be available in your PHP with an $input variable, and you would simply return the edited value. (See here for more details.)

无论CallingChunk代码发送了什么HTML,您的mySnippet都可以使用自己PHP进行访问和更改。 $CallingChunk的值将在PHP中带有$input变量,您只需return编辑后的值即可。 (有关更多详细信息,请参见此处 。)

Filters can be used for logic, with full if then else flow.

过滤器可用于逻辑, 如果没有,则充满。

如果那还不够 (If That Weren’t Enough)

There are so many things not touched on: structuring the tree, handling repeatable content, accessing the database or creating custom tables.

有很多事情没有涉及:构建树,处理可重复的内容,访问数据库或创建自定义表。

You can categorize content, have parent/child relationships, create containers, publish/unpublish dates, group content for security purposes, create plugins to validate data your clients may enter.

您可以对内容进行分类,具有父/子关系,创建容器,发布/取消发布日期,出于安全目的对内容进行分组,创建插件来验证客户可能输入的数据。

The list goes on and on. You can edit your content types and MIME data, page extensions (use ‘.html’ or not), or create an Amazon S3 bucket as a media source.

清单不胜枚举。 您可以编辑内容类型和MIME数据,页面扩展名(或不使用'.html'),或创建Amazon S3存储桶作为媒体源。

You can edit in the default raw text/HTML or install extras that enable TinyMCE, CodeMirror, or ACE. There’s an editor for Markdown. And there are even extras for tracking revisions or exporting your custom code for use in other MODX websites or to share with other developers.

您可以在默认的原始文本/ HTML中进行编辑,也可以安装启用TinyMCE,CodeMirror或ACE的其他功能。 Markdown有一个编辑器。 甚至还有其他功能可用于跟踪修订或导出自定义代码以在其他MODX网站中使用或与其他开发人员共享。

Elements have properties which are like system settings, but only for that element, so if you create an awesome snippet of amazing PHP, you can use properties as a way to create default settings for it, which users can then change with their own property sets.

元素具有与系统设置类似的属性,但仅适用于该元素,因此,如果您创建了很棒PHP片段,则可以使用属性来为其创建默认设置,然后用户可以使用自己的属性集进行更改。

Template variables can be assigned categories so that they can be grouped together when editing resources. Very handy stuff when creating custom content that clients can change.

可以为模板变量分配类别,以便在编辑资源时可以将它们分组在一起。 创建客户可以更改的自定义内容时非常方便的操作。

缺点 (Cons)

The codebase of Revolution is showing its age, and doesn’t utilize some modern PSR standards such as autoloading and namespaces, nor does it use Composer for packaging.

Revolution的代码库正在显示其时代,并且不使用某些现代PSR标准(例如自动加载和名称空间),也不使用Composer进行打包。

The third rewrite of the platform, dubbed MODX 3, will move the core into modernity. Don’t let this prevent you from trying MODX though: with age comes wisdom, and the entire MODX platform is quite capable, mature, secure, and extensible. However, you’ll see developers criticize the older code patterns.

该平台的第三次改写被称为MODX 3,它将把核心带入现代化。 但是,不要让这阻止您尝试使用MODX:随着年龄的增长,智慧不断涌现,并且整个MODX平台都具有强大的功能,成熟的,安全的和可扩展的。 但是,您会看到开发人员批评较旧的代码模式。

A second issue is the use of ExtJS. This framework is quite nice, but the issue is MODX is pretty much stuck using an older version of it. The current manager cannot be updated or it will break many 3rd party add-ons.

第二个问题是ExtJS的使用。 这个框架很好,但是问题是使用旧版本的MODX卡住了。 当前管理器无法更新,否则将破坏许多第三方加载项。

Future versions of the manager will likely not use ExtJS at all, or be locked in to any library for that matter.

将来的管理器版本可能根本不会使用ExtJS,或者为此将其锁定在任何库中。

Beside those issues, the only problems I’ve ever had with MODX stem from server configuration. This has caused conversation about who are the best MODX friendly hosts, such as this MODX forum thread.

除了这些问题,我对MODX唯一遇到的问题还来自服务器配置。 这引起了关于谁是最佳MODX友好主持人的讨论,例如此MODX论坛主题 。

结论 (Conclusion)

Edit home resource

I’ve covered a lot here and hope I’ve sparked your interest to give MODX a try.

我在这里介绍了很多内容,希望我激发了您的兴趣,可以尝试一下MODX。

Like any tool, it has specific use cases where it fits best. MODX is not my recommendation for a non-technical person to build a website, but it’s a great choice for a developer who needs to give clients protected access to editing content.

像任何工具一样,它具有最适合的特定用例。 对于非技术人员,我不建议使用MODX来构建网站,但对于需要为客户提供受保护的编辑内容访问权限的开发人员,这是一个不错的选择。

MODX is excellent, with a pretty strait learning curve, if you’re a developer and want freedom to design how you wish.

如果您是开发人员并且想要自由地设计自己想要的东西,那么MODX就是很好的学习工具。

Since SitePoint has never really covered MODX, I’m curious who has tried it. Did you love it or hate it? Do you have any more questions about it? And would you like to see some more coverage of it? Let me know in the comments.

由于SitePoint从未真正涵盖过MODX,所以我很好奇谁曾尝试过它。 您是爱还是恨? 您还有其他疑问吗? 并且您想了解更多有关它的信息吗? 在评论中让我知道。

翻译自: https://www.sitepoint.com/modx-the-best-cms-youve-never-used/

modx注册码

modx注册码_MODX:您从未使用过的最佳CMS?相关推荐

  1. 我从未看过荒原写作背景_您从未听说过的最佳数据科学认证

    我从未看过荒原写作背景 重点 (Top highlight) **Update 8/15: it's recently come to my attention that the certificat ...

  2. Windows 下 PHP 开发环境配置系列二(使用 MODx CMS)

    Windows 下 PHP 开发环境配置系列一(PHP+Apache+MySql; Zend Debugger+PDT) 软件的下载地址在系列一中有列出 1. 需安装软件 PHP:   php-5.2 ...

  3. ultraedit15.00.0.1046注册码

      ultraedit注册码,版本:15.00.0.1043··········  用户名 MAYBELOVE 注册码 LFKKM-KIMMX-OSFEB-PMISO-ELILS-IIIHO-KKHL ...

  4. 强化学习-动态规划_强化学习-第5部分

    强化学习-动态规划 有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU's Yo ...

  5. 辍学的名人_辍学效果如此出色的5个观点

    辍学的名人 Dropout works by randomly blocking off a fraction of neurons in a layer during training. Then, ...

  6. monk js_使用Monk AI进行手语分类

    monk js 计算机视觉 , 深度学习 (Computer Vision, Deep Learning) The Monk AI library is a low code library, for ...

  7. 向量 矩阵 张量_张量,矩阵和向量有什么区别?

    向量 矩阵 张量 机器学习代数 (MACHINE LEARNING ALGEBRA) Algebra is an important element of mathematics and has a ...

  8. 打破学习的玻璃墙_打破Google背后的创新深度学习

    打破学习的玻璃墙 What Google Translate does is nothing short of amazing. In order to engineer the ability to ...

  9. 编写分段函数子函数_编写自己的函数

    编写分段函数子函数 PYTHON编程 (PYTHON PROGRAMMING) In Python, you can define your own functions. 在Python中,您可以定义 ...

最新文章

  1. R语言ggplot2使用geom_line函数geom_point函数可视化哑铃图、并对哑铃图进行排序(reorder dumbbell plot)
  2. 屏幕元素属性的控制盒屏幕事件的中止
  3. STL标准库六大组件
  4. (转)光照模型及cg实现
  5. Codeforces Round #541 (Div. 2) C.Birthday
  6. 排序算法入门之冒泡排序优化
  7. django的视图与模板
  8. cocos2dx[3.2](11)——新回调函数std::bind
  9. 最详细的quartz表达式解释
  10. swagger 怎么去掉get delete_橡皮擦英文单词怎么读
  11. 天大18年c语言离线作业,2018春 Python语言程序设计(天津大学仁爱学院)-中国大学mooc-题库零氪...
  12. 高效能人士七个习惯(三)
  13. 角谷猜想:所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘 3 加 1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到 1。如假定初始整数为 5,计算过程分别为 16、
  14. 关于计算机名的相关讨论 【好帖 好帖 哈哈。。】
  15. 绘制一只奥特曼DIY
  16. 发光二极管之—工作原理图解分析
  17. [ XJTUSE ]JAVA语言基础知识——2.2 Java基本数据类型
  18. shardingsphere读写分离+分表【笔记】
  19. 如何使用stc12c5a60s2控制蜂鸣器
  20. 如有回忆,我情愿和你化作一团火焰!

热门文章

  1. ScrollView/HorizontalScrollView常用技巧,附源码
  2. 如何评价唐卫国公李靖的战功、军事才能、政治才能?
  3. 【JPA】SpringData JPA
  4. 人工智能时代下,Python与C/C++谁将成为人工智能核心算法选择?
  5. word中图片不显示怎么办
  6. __dirname与__filename
  7. 王道俊教育学第7版笔记和课后答案
  8. Clion注册码与注册机
  9. php统计邮件打开率,监控 Amazon SES 电子邮件的打开率、点击率和退回率
  10. 人工智能证书有什么作用?