ProcessWire

Last updated
ProcessWire
Initial release2007
Stable release
3.0.210 [1] / 2023-03-06 [±]
Repository
Written in PHP
Available inEnglish, others as contributed
Type Content Management System
License Mozilla Public License 2.0
Website processwire.com

ProcessWire is a free and open source content management system (CMS), content management framework (CMF) and web application framework (WAF) written in the PHP programming language. It is distributed under the Mozilla Public License 2.0. ProcessWire is built around an API with usage and naming conventions similar to the JavaScript framework jQuery. The stated goal behind the API is to provide the level of accessibility and control to pages in a website that jQuery provides to the DOM. [2] Content is managed either via the API or the web-based admin control panel. ProcessWire is largely used for development of web sites, web applications, services, content feeds and related applications.

Contents

Features

Audience

Before and during development of a website or application, the audience for ProcessWire consists largely of web developers and web designers. [10] Within this audience, ProcessWire is used as both a development tool and a CMS.

Post-development the audience changes to individuals that manage content for web sites and applications, who typically are not web designer/developers. This audience uses ProcessWire primarily as a CMS to manage content.

History

ProcessWire has been in active development since 2003. From 2003 to 2007 it was developed under the name Dictator CMS. From 2007 to 2010 it was developed as ProcessWire 1.x. ProcessWire became an open source community project in 2010 and it is currently developed as ProcessWire 2.x and 3.x. [11]

ProcessWire has had 8 significant version releases, and more than 100 minor version releases since the first open source release. Version 3.0 released in September 2016 is the second major version release. [12]

Translations and community

ProcessWire has active, global end-user and developer communities. These communities have translated ProcessWire from English into their native languages, including: Chinese, Croatian, Czech, Dutch, French, German, Greek, Hebrew, Hungarian, Italian, Japanese, Portuguese, Russian, Slovak, Spanish, Swedish, Turkish, Ukrainian and Vietnamese. The central hub of the ProcessWire communities are found in the developer support forums. [10]

Awards and publications

In November 2016 ProcessWire was awarded as CMS Critic's Best Small Business CMS. [13]

In July 2016 Smashing Magazine published A Beginners Guide to ProcessWire. [14]

Since January 2016 Envato Tuts+ has published several articles and tutorials on ProcessWire. [15]

In January 2015 ProcessWire was awarded as CMS Critic's Best Free PHP CMS. [16]

In December 2014 PHP Architect published ProcessWire: Flexibility, Power, and a Generous Dose of Pure Fun. [17]

In December 2012 ProcessWire was awarded as CMS Critic's Best Free CMS. [18]

Architecture

ProcessWire is built around a page content tree (as opposed to a bucket system). The URL or path of each page is always reflective of its place in the hierarchy. One uses this same path to reference the page in the API. As a result, this connection of the path to the internal tree hierarchy defines the architecture of ProcessWire. Beyond the parent-child relationship implied by a content tree, ProcessWire supports relational one-to-one and one-to-many references between pages in the tree.

Template architecture

Templates in ProcessWire are a content type that contains one or more custom fields representing the definition of the content type. Every page in ProcessWire is assigned to a template which then represents the type of page. A template is typically shared among multiple pages. Templates also define access control, caching and other settings shared among pages using the template.

Templates optionally have an associated PHP file, referred to as the template-file. This file is executed whenever the URL for a page using the template is accessed. As a result, template-files are typically used for output purposes. The template-file is provided with several API variables, the most notable being the $page API variable, which contains all the fields and content of the current page being viewed. [19]

Template-files serve multiple contexts, depending on the application. ProcessWire's default web site profiles use template-files primarily for output of direct and dynamically generated HTML markup. Template-files may also be used as intermediate controllers between a model and a separate view. Because template-files are regular PHP files, they are able to call upon other web services or PHP applications where appropriate, without a separate parsing layer.

Field architecture

All fields in ProcessWire are custom fields defined by the user. A given field may be assigned to multiple templates, which in turn hold individual chunks of content for each page using that template. Every field has a type, referred to as the “fieldtype” (1 word), a type of plugin module. ProcessWire includes several fieldtype modules including those that support text, numbers, files, images, page references, URLs, email addresses, dates and comments. Additional fieldtype modules are installed as 3rd party modules.

Distribution and requirements

ProcessWire's source code is hosted on GitHub and is also distributed on Softaculous, Bitnami and Composer/Packagist.

ProcessWire runs in the AMP (Apache, MySQL, PHP) platform used by many hosting providers and web development environments. ProcessWire requires PHP version 5.3.8 or newer, and MySQL 5.0.15 or newer.

Related Research Articles

<span class="mw-page-title-main">Drupal</span> Web content management system

Drupal is a free and open-source web content management system (CMS) written in PHP and distributed under the GNU General Public License. Drupal provides an open-source back-end framework for at least 14% of the top 10,000 websites worldwide and 1.2% of the top 10 million websites—ranging from personal blogs to corporate, political, and government sites. Systems also use Drupal for knowledge management and for business collaboration.

<span class="mw-page-title-main">Adobe ColdFusion</span> Rapid Web app development platform

Adobe ColdFusion is a commercial rapid web-application development computing platform created by J. J. Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database. By version 2 (1996) it had become a full platform that included an IDE in addition to a full scripting language.

<span class="mw-page-title-main">XOOPS</span> Content management system software

XOOPS is a free open-source content management system (CMS), written in PHP. It uses a modular architecture allowing users to customize, update and theme their websites. XOOPS is released under the terms of the GNU General Public License (GPL) and is free to use, modify and redistribute.

A web content management system is a software content management system (CMS) specifically for web content. It provides website authoring, collaboration, and administration tools that help users with little knowledge of web programming languages or markup languages create and manage website content. A WCMS provides the foundation for collaboration, providing users the ability to manage documents and output for multiple author editing and participation. Most systems use a content repository or a database to store page content, metadata, and other information assets the system needs.

CherryPy is an object-oriented web application framework using the Python programming language. It is designed for rapid development of web applications by wrapping the HTTP protocol but stays at a low level and does not offer much more than what is defined in RFC 7231.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

<span class="mw-page-title-main">Catalyst (software)</span>

Catalyst is an open source web application framework written in Perl, that closely follows the model–view–controller (MVC) architecture, and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by frameworks such as Ruby on Rails, Maypole, and Spring.

Open Power Template is a web template engine written in PHP 5. A common strategy in designing web application is separation of the application logic from the presentation. OPT is a tool for implementing such separation. The presentation layer is represented by templates, text files with HTML code and extra instructions controlling the data substitution.

<span class="mw-page-title-main">Web template system</span> System in web publishing

A web template system in web publishing allows web designers and developers work with web templates to automatically generate custom web pages, such as the results from a search. This reuses static web page elements while defining dynamic elements based on web request parameters. Web templates support static content, providing basic structure and appearance. Developers can implement templates from content management systems, web application frameworks, and HTML editors.

<span class="mw-page-title-main">Silverstripe CMS</span> Content management system

Silverstripe CMS is a free and open source content management system (CMS) and framework for creating and maintaining websites and web applications. It provides an out of the box web-based administration panel that enables users to make modifications to parts of the website, which includes a WYSIWYG website editor. The core of the software is Silverstripe Framework, a PHP Web application framework.

<span class="mw-page-title-main">Big Medium</span>

Big Medium was a browser-based web content management system (CMS) written in the Perl programming language and developed by Global Moxie, the Paris-based company of independent developer Josh Clark.

Flow is a free and open source web application framework written in PHP. The first final version was released on October 20, 2011. It was primarily designed as a basis for the content management system Neos, but can also be used independently. It is generally suitable for PHP development of mid- or large-scaled web applications.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

<span class="mw-page-title-main">CMS Made Simple</span> Content management system

CMS Made Simple (CMSMS) is a free, open source (GPL) content management system (CMS) to provide developers, programmers and site owners a web-based development and administration area. In 2017 it won the CMS Critic annual award for Best Open Source Content Management.

Content migration is the process of moving information stored on a given computer information system (IS) to a new system. The IS may be a Web content management system (CMS), a digital asset management (DAM), or a document management system (DMS). The IS may also be based on flat HTML content, including HTML files, Active Server Pages (ASP), JavaServer Pages (JSP), PHP, or content stored in some type of HTML/JavaScript based system and can be either static or dynamic content.

Kajona is a PHP based content management framework, released and developed as an open source project using the GNU Lesser General Public License. The system requires a relational database system such as MySQL, PostgreSQL or SQLite. Due to the abstraction of the database provided by Kajona's database-layer, nearly all relational database systems can be connected. Kajona uses UTF-8 to store its content, resulting in a system suitable for international websites. Since the system is written as a framework, external developers are able to enrich the system with new functionalities using one of the many hooks / plugin concepts Kajona provides. There are HotSpots for nearly every aspect such as for widgets, search plugins, elements or modules.

Omni CMS (formerly OU Campus) is a web content management system (CMS) for colleges, universities, and other higher education institutions.

Magnolia is an open-source content management system (CMS). It is developed by Magnolia International Ltd., based in Basel, Switzerland. It is based on Content repository API for Java (JSR-283).

ASP.NET Web Forms is a web application framework and one of several programming models supported by the Microsoft ASP.NET technology. Web Forms applications can be written in any programming language which supports the Common Language Runtime, such as C# or Visual Basic. The main building blocks of Web Forms pages are server controls, which are reusable components responsible for rendering HTML markup and responding to events. A technique called view state is used to persist the state of server controls between normally stateless HTTP requests.

References

  1. "processwire / processwire". github.com. Retrieved 2023-05-11.
  2. "The concept behind the API".
  3. "ProcessWire API reference documentation".
  4. "Bootstrapping ProcessWire".
  5. "Selectors in ProcessWire".
  6. "ProcessWire Security".
  7. "Multi-language support".
  8. "Directory of modules".
  9. "ProcessWire Hooks".
  10. 1 2 "ProcessWire community".
  11. "ProcessWire history and background".
  12. "ProcessWire 3.0 changelog".
  13. "CMS Critic 2016 awards (November 2016)". 12 November 2012.
  14. "Smashing Magazine: A Beginners Guide to ProcessWire". 2016-07-22.
  15. "Envato Tuts+: ProcessWire tutorials and articles".
  16. "CMS Critic Best Free PHP CMS award (January 2015)". 2015-01-21.
  17. "ProcessWire published in PHP Architect Magazine (December 2014)".
  18. "CMS Critic Best Free CMS award (December 2012)". 2012-12-03.
  19. "The $page API variable".