PHPackages                             rainlab/pages-plugin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. rainlab/pages-plugin

ActiveOctober-plugin

rainlab/pages-plugin
====================

Pages plugin for October CMS

v2.2.2(1mo ago)12252.4k↓24.1%99[2 issues](https://github.com/rainlab/pages-plugin/issues)4MITPHPPHP ^8.0.2

Since Aug 6Pushed 4mo ago20 watchersCompare

[ Source](https://github.com/rainlab/pages-plugin)[ Packagist](https://packagist.org/packages/rainlab/pages-plugin)[ Docs](https://octobercms.com/plugin/rainlab-pages)[ RSS](/packages/rainlab-pages-plugin/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (9)Dependencies (4)Versions (63)Used By (4)

Pages Plugin
============

[](#pages-plugin)

This plugin allows end users to create and edit static pages and menus with a simple WYSIWYG user interface.

Managing Static Pages
---------------------

[](#managing-static-pages)

Static pages are managed on the Pages tab of the Static Pages plugin. Static pages have three required parameters - **Title**, **URL** and **Layout**. The URL is generated automatically when the Title is entered, but it could be changed manually. URLs must start with the forward slash character. The Layout drop-down allows to select a layout created with the CMS. Only layouts that include the `staticPage` component are displayed in the drop-down.

[![image](https://raw.githubusercontent.com/rainlab/pages-plugin/master/docs/static-page.png)](https://raw.githubusercontent.com/rainlab/pages-plugin/master/docs/static-page.png) {.img-responsive .frame}

Pages are hierarchical. The page hierarchy is used when a new page URL is generated, but as URLs can be changed manually, the hierarchy doesn't really affect the routing process. The only place where the page hierarchy matters is the generated Menus. The generated menus reflect the page hierarchy. You can manage the page hierarchy by dragging pages in the page tree. The page drag handle appears when you move the mouse cursor over page item in the tree.

Optional properties of static pages are **Hidden** and **Hide in navigation**. The **Hidden** checkbox allows to hide a page from the front-end. Hidden pages are still visible for administrators who are logged into the back-end. The **Hide in navigation** checkbox allows to hide a page from generated menus and breadcrumbs.

Placeholders
------------

[](#placeholders)

If a static layout contains [placeholders](https://octobercms.com/docs/cms/layouts#placeholders), the static page editor will show tabs for editing the placeholder contents. The plugin automatically detects text and HTML placeholders and displays a corresponding editor for them - the WYSIWYG editor for HTML placeholders and a text editor for text placeholders.

Snippets
--------

[](#snippets)

Snippets is a [featured included with October CMS](https://docs.octobercms.com/3.x/cms/themes/snippets.html), with elements that can be added by a Static Page, in the rich text editor. They allow you to inject complex (and interactive) areas to pages. Snippets are configurable and have properties that users can manage with the Inspector.

[![image](https://raw.githubusercontent.com/rainlab/pages-plugin/master/docs/snippets-backend.png)](https://raw.githubusercontent.com/rainlab/pages-plugin/master/docs/snippets-backend.png)

Managing Menus
--------------

[](#managing-menus)

You can manage menus on the Menus tab of the Static Pages plugin. A website can contain multiple menus, for example the main menu, footer menu, sidebar menu, etc. A theme developer can include menus on a page layout with the `staticMenu` component.

Menus have two required properties - the menu **Name** and menu **Code**. The menu name is displayed in the menu list in the back-end. The menu code is required for referring menus in the layout code, it's the API parameter.

[![image](https://raw.githubusercontent.com/rainlab/pages-plugin/master/docs/menu-management.png)](https://raw.githubusercontent.com/rainlab/pages-plugin/master/docs/menu-management.png) {.img-responsive .frame}

Menus can contain multiple **menu items**, and menu items can be nested. Each menu item has a number of properties. There are properties common for all menu item types, and some properties depend on the item type. The common menu item properties are **Title** and **Type**. The Title defines the menu item text. The Type is a drop-down list which displays all menu item types available in your OctoberCMS copy.

[![image](https://raw.githubusercontent.com/rainlab/pages-plugin/master/docs/menu-item.png)](https://raw.githubusercontent.com/rainlab/pages-plugin/master/docs/menu-item.png) {.img-responsive .frame}

#### Standard Menu Item Types

[](#standard-menu-item-types)

The available menu item types depend on the installed plugins, but there are three basic item types that are supported out of the box.

###### Header {.subheader}

[](#header-subheader)

Items of this type are used for displaying text and don't link to anything. The text could be used as a category heading for other menu items. This type will only show a title property.

###### URL {.subheader}

[](#url-subheader)

Items of this type are links to a specific fixed URL. That could be an URL of an or internal page. Items of this type don't have any other properties - just the title and URL.

###### Static Page {.subheader}

[](#static-page-subheader)

Items of this type refer to static pages. The static page should be selected in the **Reference** drop-down list described below.

###### All Static Pages {.subheader}

[](#all-static-pages-subheader)

Items of this type expand to create links to all static pages defined in the theme. Nested pages are represented with nested menu items.

#### Custom Menu Item Types

[](#custom-menu-item-types)

Other plugins can supply new menu item types. For example, the [Blog plugin](https://octobercms.com/plugin/rainlab-blog) by [RainLab](https://octobercms.com/author/RainLab) supplies two more types:

###### Blog Category {.subheader}

[](#blog-category-subheader)

An item of this type represents a link to a specific blog category. The category should be selected in the **Reference** drop-down. This menu type also requires selecting a **CMS page** that outputs a blog category.

###### All Blog Categories {.subheader}

[](#all-blog-categories-subheader)

An item of this time expands into multiple items representing all blog existing categories. This menu type also requires selecting a **CMS page**.

#### Menu Item Properties

[](#menu-item-properties)

Depending on the selected menu item time you might need to provide other properties of the menu item. The available properties are described below.

###### Reference {.subheader}

[](#reference-subheader)

A drop-down list of objects the menu item should refer to. The list content depends on the menu item type. For the **Static page** item type the list displays all static pages defined in the system. For the **Blog category** item type the list displays a list of blog categories.

###### Allow Nested Items {.subheader}

[](#allow-nested-items-subheader)

This checkbox is available only for menu item types that suppose nested objects. For example, static pages are hierarchical, and this property is available for the **Static page** item type. On the other hand, blog categories are not hierarchical, and the checkbox is hidden.

###### Replace This Item With Its Generated Children {.subheader}

[](#replace-this-item-with-its-generated-children-subheader)

A checkbox determining whether the menu item should be replaced with generated menu items. This property is available only for menu item types that suppose automatic item generating, for example for the **Static page** menu item type. The **Blog category** menu item type doesn't have this property because blog categories cannot be nested and menu items of this type always point to a specific blog category. This property is very handy when you want to include generated menu items to the root of the menu. For example, you can create the **All blog categories** menu item and enable the replacing. As a result you will get a menu that lists all blog categories on the first level of the menu. If you didn't enable the replacing, there would be a root menu item, with blog categories listed under it.

###### CMS Page {.subheader}

[](#cms-page-subheader)

This drop-down is available for menu item types that require a special CMS page to refer to. For example, the **Blog category** menu item type requires a CMS page that hosts the `blogPosts` component. The CMS Page drop-down for this item type will only display pages that include this component.

###### Code {.subheader}

[](#code-subheader)

The Code field allows to assign the API code that you can use to set the active menu item explicitly in the page's `onInit()` handler described in the documentation.

See also
--------

[](#see-also)

Read the [Getting started with Static Pages](https://octobercms.com/blog/post/getting-started-static-pages) tutorial in the Blog.

Documentation
-------------

[](#documentation)

Read the [documentation](./DOCS.md) to learn more about this plugin.

###  Health Score

65

—

FairBetter than 99% of packages

Maintenance80

Actively maintained with recent releases

Popularity48

Moderate usage in the ecosystem

Community37

Small or concentrated contributor base

Maturity82

Battle-tested with a long release history

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~60 days

Recently: every ~136 days

Total

59

Last Release

54d ago

Major Versions

v1.5.12 → v2.0.12023-07-07

1.x-dev → v2.0.32023-07-08

PHP version history (2 changes)v1.2.9PHP &gt;=5.5.9

v2.0.1PHP ^8.0.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/106532?v=4)[october](/maintainers/october)[@october](https://github.com/october)

---

Top Contributors

[![daftspunk](https://avatars.githubusercontent.com/u/1392869?v=4)](https://github.com/daftspunk "daftspunk (226 commits)")[![octoberapp](https://avatars.githubusercontent.com/u/6543374?v=4)](https://github.com/octoberapp "octoberapp (50 commits)")[![alekseybobkov](https://avatars.githubusercontent.com/u/481606?v=4)](https://github.com/alekseybobkov "alekseybobkov (38 commits)")[![LukeTowers](https://avatars.githubusercontent.com/u/7253840?v=4)](https://github.com/LukeTowers "LukeTowers (34 commits)")[![bennothommo](https://avatars.githubusercontent.com/u/15900351?v=4)](https://github.com/bennothommo "bennothommo (20 commits)")[![samgeorges](https://avatars.githubusercontent.com/u/4927493?v=4)](https://github.com/samgeorges "samgeorges (20 commits)")[![acasar](https://avatars.githubusercontent.com/u/6329543?v=4)](https://github.com/acasar "acasar (9 commits)")[![jimcottrell](https://avatars.githubusercontent.com/u/1483197?v=4)](https://github.com/jimcottrell "jimcottrell (9 commits)")[![gergo85](https://avatars.githubusercontent.com/u/2959112?v=4)](https://github.com/gergo85 "gergo85 (8 commits)")[![jan-vince](https://avatars.githubusercontent.com/u/1104383?v=4)](https://github.com/jan-vince "jan-vince (8 commits)")[![gabsource](https://avatars.githubusercontent.com/u/1851314?v=4)](https://github.com/gabsource "gabsource (4 commits)")[![gpasztor87](https://avatars.githubusercontent.com/u/3843377?v=4)](https://github.com/gpasztor87 "gpasztor87 (4 commits)")[![cracki](https://avatars.githubusercontent.com/u/5469394?v=4)](https://github.com/cracki "cracki (4 commits)")[![mjauvin](https://avatars.githubusercontent.com/u/2013630?v=4)](https://github.com/mjauvin "mjauvin (4 commits)")[![vojtasvoboda](https://avatars.githubusercontent.com/u/374917?v=4)](https://github.com/vojtasvoboda "vojtasvoboda (3 commits)")[![FelixINX](https://avatars.githubusercontent.com/u/8009156?v=4)](https://github.com/FelixINX "FelixINX (3 commits)")[![mahony0](https://avatars.githubusercontent.com/u/2674488?v=4)](https://github.com/mahony0 "mahony0 (3 commits)")[![marininicola](https://avatars.githubusercontent.com/u/8117368?v=4)](https://github.com/marininicola "marininicola (3 commits)")[![tomaszstrojny](https://avatars.githubusercontent.com/u/8854428?v=4)](https://github.com/tomaszstrojny "tomaszstrojny (3 commits)")[![merodeador](https://avatars.githubusercontent.com/u/12444185?v=4)](https://github.com/merodeador "merodeador (2 commits)")

---

Tags

pagesoctoberoctobercms

### Embed Badge

![Health badge](/badges/rainlab-pages-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/rainlab-pages-plugin/health.svg)](https://phpackages.com/packages/rainlab-pages-plugin)
```

###  Alternatives

[rainlab/builder-plugin

Builder plugin for October CMS

17147.2k1](/packages/rainlab-builder-plugin)[rainlab/translate-plugin

Translate plugin for October CMS

12666.5k9](/packages/rainlab-translate-plugin)[rainlab/user-plugin

User plugin for October CMS

11954.3k13](/packages/rainlab-user-plugin)[rainlab/blog-plugin

Blog plugin for October CMS

17257.7k](/packages/rainlab-blog-plugin)[rainlab/notify-plugin

Notify plugin for October CMS

272.8k3](/packages/rainlab-notify-plugin)[rainlab/sitemap-plugin

Sitemap plugin for October CMS

2277.8k1](/packages/rainlab-sitemap-plugin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
