ProcessWire
   HOME

TheInfoList



OR:

ProcessWire is a free and
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized so ...
content management system A content management system (CMS) is computer software used to manage the creation and modification of digital content ( content management).''Managing Enterprise Content: A Unified Content Strategy''. Ann Rockley, Pamela Kostur, Steve Manning. New ...
(CMS),
content management framework Content management systems (CMS) are used to organize and facilitate collaborative content creation. Many of them are built on top of separate content management frameworks. The list is limited to notable services. Open source software :''T ...
(CMF) and
web application framework 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 an ...
(WAF) written in the PHP programming language. It is distributed under the
Mozilla Public License The Mozilla Public License (MPL) is a free and open-source weak copyleft license for most Mozilla Foundation software such as Firefox and Thunderbird The MPL license is developed and maintained by Mozilla, which seeks to balance the conce ...
2.0. ProcessWire is built around an API with usage and naming conventions similar to the JavaScript framework
jQuery jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax. It is free, open-source software using the permissive MIT License. As of Aug 2022, jQuery is u ...
. 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. 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.


Features

* jQuery-styled API with comprehensive documentation * Graphical web-based installer * All fields are custom fields, indexed for find operations in the API * Can be bootstrapped from other PHP applications or command-line scripts * Interactive and API-based image manipulation functions * Drag-and-drop tree-based page list * Drag-and-drop file and image uploads and editing functions * Support for larger scale (100k+ page) installations * Use of string-based selectors for API calls * Role-based access control system * Core development emphasis on security * Markup agnostic output, leaving all output to the developer * Template files are PHP-based, with no template engine used by default * Output caching of entire pages or individual parts * Multi-language support with multi-language text fields and URLs * Modular plugin architecture and available 3rd party modules * Field and input types are themselves plugin modules * Hook system enabling most core functions to be hooked and altered * Fields and groups of fields are repeatable using built-in Repeater field types * Support for rich text editing using
CKEditor CKEditor (formerly known as FCKeditor) is a WYSIWYG rich text editor which enables writing content directly inside of web pages or online applications. Its core code is written in JavaScript and it is developed by CKSource. CKEditor is availab ...


Audience

Before and during development of a website or application, the audience for ProcessWire consists largely of web developers and web designers. 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. 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.


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 Czech may refer to: * Anything from or related to the Czech Republic, a country in Europe ** Czech language ** Czechs, the people of the area ** Czech culture ** Czech cuisine * One of three mythical brothers, Lech, Czech, and Rus' Places * Czech, ...
,
Dutch Dutch commonly refers to: * Something of, from, or related to the Netherlands * Dutch people () * Dutch language () Dutch may also refer to: Places * Dutch, West Virginia, a community in the United States * Pennsylvania Dutch Country People E ...
,
French French (french: français(e), link=no) may refer to: * Something of, from, or related to France ** French language, which originated in France, and its various dialects and accents ** French people, a nation and ethnic group identified with Franc ...
,
German German(s) may refer to: * Germany (of or related to) **Germania (historical use) * Germans, citizens of Germany, people of German ancestry, or native speakers of the German language ** For citizens of Germany, see also German nationality law **Ge ...
,
Greek Greek may refer to: Greece Anything of, from, or related to Greece, a country in Southern Europe: *Greeks, an ethnic group. *Greek language, a branch of the Indo-European language family. **Proto-Greek language, the assumed last common ancestor ...
,
Hebrew Hebrew (; ; ) is a Northwest Semitic language of the Afroasiatic language family. Historically, it is one of the spoken languages of the Israelites and their longest-surviving descendants, the Jews and Samaritans. It was largely preserved ...
, Hungarian,
Italian Italian(s) may refer to: * Anything of, from, or related to the people of Italy over the centuries ** Italians, an ethnic group or simply a citizen of the Italian Republic or Italian Kingdom ** Italian language, a Romance language *** Regional Ita ...
,
Japanese Japanese may refer to: * Something from or related to Japan, an island country in East Asia * Japanese language, spoken mainly in Japan * Japanese people, the ethnic group that identifies with Japan through ancestry or culture ** Japanese diaspor ...
,
Portuguese Portuguese may refer to: * anything of, from, or related to the country and nation of Portugal ** Portuguese cuisine, traditional foods ** Portuguese language, a Romance language *** Portuguese dialects, variants of the Portuguese language ** Portu ...
,
Russian Russian(s) refers to anything related to Russia, including: *Russians (, ''russkiye''), an ethnic group of the East Slavic peoples, primarily living in Russia and neighboring countries *Rossiyane (), Russian language term for all citizens and peo ...
, Slovak,
Spanish Spanish might refer to: * Items from or related to Spain: **Spaniards are a nation and ethnic group indigenous to Spain **Spanish language, spoken in Spain and many Latin American countries **Spanish cuisine Other places * Spanish, Ontario, Can ...
,
Swedish Swedish or ' may refer to: Anything from or related to Sweden, a country in Northern Europe. Or, specifically: * Swedish language, a North Germanic language spoken primarily in Sweden and Finland ** Swedish alphabet, the official alphabet used by ...
, Turkish,
Ukrainian Ukrainian may refer to: * Something of, from, or related to Ukraine * Something relating to Ukrainians, an East Slavic people from Eastern Europe * Something relating to demographics of Ukraine in terms of demography and population of Ukraine * So ...
and Vietnamese. The central hub of the ProcessWire communities are found in the developer support forums.


Awards and publications

In November 2016 ProcessWire was awarded as CMS Critic's Best Small Business CMS. In July 2016 Smashing Magazine published ''A Beginners Guide to ProcessWire''. Since January 2016 Envato Tuts+ has published several articles and tutorials on ProcessWire. In January 2015 ProcessWire was awarded as CMS Critic's Best Free PHP CMS. In December 2014 PHP Architect published ''ProcessWire: Flexibility, Power, and a Generous Dose of Pure Fun''. In December 2012 ProcessWire was awarded as CMS Critic's Best Free CMS.


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. 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 GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, cont ...
and is also distributed on Softaculous,
Bitnami Bitnami is a library of installers or software packages for web applications and software stacks as well as virtual appliances. Bitnami is sponsored by Bitrock, a company founded in 2003 in Seville, Spain by Daniel Lopez Ridruejo and Erica Bresc ...
and Composer/Packagist. ProcessWire runs in the AMP (
Apache The Apache () are a group of culturally related Native American tribes in the Southwestern United States, which include the Chiricahua, Jicarilla, Lipan, Mescalero, Mimbreño, Ndendahe (Bedonkohe or Mogollon and Nednhi or Carrizaleño a ...
,
MySQL MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database ...
, 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.


References


External links

* {{Web frameworks PHP frameworks Free content management systems Free software programmed in PHP Cross-platform free software Software using the Mozilla license