glFusion Documentation Project glFusion Wiki

# Static Pages Content

The Static Pages plugin was originally aimed at creating pages with static content (as opposed to the dynamic pages created by glFusion) - hence the name. Pages like an “about us” page, a mission statement, etc. would come to mind.

Since then, people have used the static pages for all kinds of things and with the inclusion of PHP into static pages, even the original name isn't quite right any more … Features

- supports use of PHP
- editable page ID to make more readable URLs
- Static pages can be displayed on glFusion's index and topic pages and can even replace it entirely (“splash screen”)
- “cloning” of existing pages
- Makes use of glFusion's URL rewrite feature
- Provides [staticpage:] and [staticpage_content:] autotags
- proper support for glFusion permissions

# Use of PHP

PHP in Staticpages is enabled by default on new install of glFusion. It is important to understand if you allow other users (members of the Static Page Admin group) to create staticpages, you may elect to disable the use of PHP in static pages.

## De-Activating PHP

To disaable PHP use, you will have to remove the 'staticpages.PHP' permission from the “Static Page Admin” group. To do this, log in as the Admin and from the Admin's Only block, select “Groups”. Find the “Static Page Admin” group and edit it by clicking on the name of the group. At the bottom of the page, you will find a list of “Rights” (permissions) that can be granted to all members of this group. Note that 'staticpages.delete' and 'staticpages.edit' are also checked. To remove the ability for members of the Static Page Admin group to use PHP in static pages, you will have to un-check the 'staticpages.PHP' checkbox and save your changes.

In addition to the 'staticpages.PHP' permission discussed above, there is also a global option to disable the use of PHP in static pages entirely. That option “Allow PHP?” can be found in the Configuration admin panel for the static pages plugin. When set to “False”, that option will override the 'staticpages.PHP ' permission and disable all use of PHP in static pages.

## Usage

The use of PHP in static pages may result in security issues if not used properly. Use this feature with care!

The use of PHP has to be enabled for each individual static page. Below the content edit field, you will find a drop-down menu with the following options:

do not execute PHP | When you select this option, any PHP code in the static page will not be executed but will instead be printed out as-is.
execute PHP (return) | If you select this option, PHP code in static pages will be executed. The 'return' indicates that the code should return any output it generates, using a PHP return statement, instead of printing it out directly.
execute PHP | Again, this option will enable execution of PHP. Only this time, the PHP code can actually use echo and print statements without having the output interfere with the page layout.

Please note that when embedding PHP code in a static page, your code should not be enclosed in the PHP <?php and ?> tags. Instead, it is assumed that the static page contains the PHP code that would normally go between those two tags.

When selecting the third of the above PHP execution options (“execute PHP”) you can switch back and forth between PHP and plain HTML like this:

    echo "Hello"; ?>, <b>world</b>, <?php echo "how are you?";

The above example would print out “Hello, world, how are you?”.

# Page ID

When creating a new static page, it will be assigned a page ID automatically. This ID consists of the date and time and up to three random digits. When you anticipate that the URL of this page may be used a lot, e.g. quoted in emails, it may make sense to use a more readable ID for the page.

The static pages editor will let you change the page ID. For example, you may want to rename the ID for your “about” page from “20030313100131123” to “about”, thus creating a URL like

    http://yoursite/staticpages/index.php?page=about

which looks much nicer when quoted (and is easier to remember). You could further improve this by making use of glFusion's URL rewrite feature.

Please note that you should only use letters and digits for the page ID. Avoid national special characters, most punctuation characters ('-' and '.' should be okay, though) and spaces. The static page editor will catch some illegal characters but not all of them … Using Static Pages on the index page

glFusion's Center Blocks concept allows plugins to place blocks in the center area of a glFusion site, i.e. among the stories.

When you check the “Centerblock” option for a static page, you can use the “Position” and “Topic” drop-downs to chose where this static page will be displayed. For “Position”, the options are “Top Of Page”, “After Featured Story”, “Bottom Of Page” (which should be self-explanatory) and “Entire Page”. That last option, “Entire Page”, will tell glFusion that this static page will replace the entire index page - it will not display any stories, but only the contents of this static page. This is useful e.g. for “splash” screens or Welcome pages.

When using a static page as a “splash” screen, you may need a link that takes your visitors to the normal index page, i.e. the list of current stories. To do this, create a link to index.php?display=all

The second drop-down, “Topic”, lets you restrict the display of a static page to only a certain topic, the homepage only, or all pages (i.e. all topic pages and the homepage). This is the same as the options you have for blocks.

You can combine these options with the permission settings. This will let you, for example, create a “welcome” page that is only displayed to anonymous users.

# Sorting

Centerblocks: When you have more than one static page that would appear in the same section of the center area (e.g. two static pages that would be displayed at the top of the index page), you can choose the order in which they appear from the Configuration admin panel for the static pages plugin. Your options are:

- Date (sort by last changed date)
- Page ID (sort by the page id; default)
- Page Title (sort by the page title)

Please note that this order will only apply to centerblocks from static pages. All other plugins creating centerblocks will not be in that order. Also note that the centerblock is not necessarily looking like a standard glFusion block. To achieve that, please check the field “Wrapping Static Pages in a block” below.

Menu entries: It's also possible to sort the static pages that are displayed in the site's menu (if you're using a theme that uses the {plg_menu_elements} variables in its header.thtml). This sort order can also be changed in the Configuration admin panel for the static pages plugin:

- Date (sort by last changed date)
- Label (sort by the menu label text; default)
- Page ID (sort by the page id)
- Page Title (sort by the page title)

# Wrapping Static Pages in a block

You can chose to have a static page wrapped in a glFusion block-layout by checking the “wrap static page in a block” option in the static pages editor. If selected, the page's title will be used as the block title. Further, you can, as with normal blocks, enter a help URL. If this URL is entered, the block will display a help icon linking to that URL.

The default for this option can be set in the Configuration admin panel for the static pages plugin. Cloning Static Pages

When you have a lot of similar static pages you may want to make a copy of an existing page and then edit that copy. This can easily be done by clicking on the [C] from the list of static pages. Doing so will create a copy of that page with a new page ID.

# URL rewriting

Please note that this feature is considered experimental and is known not to work with IIS.

glFusion supports a form of URL rewriting, i.e. change the look of URLs such that they are more search engine friendly. For example, instead of

     http://yoursite/staticpages/index.php?page=20030313100131123

the URL could look like this

     http://yoursite/staticpages/index.php/20030313100131123

Some search engines are known not to index pages when the URL includes characters like '?' and '='. You could further improve the chances of this page being indexed by replacing the numeric page ID with a word or expression (preferrably something that corresponds to the page's content), e.g.

     http://yoursite/staticpages/index.php/about

To make use of URL rewriting, you will need to set the option “Enable URL Rewriting” to True in glFusion's Configuration admin panel.

# Deleting pages with their owner

As all objects in glFusion, static pages have an owner (the user that created the static page). When that user's account is deleted for some reason, any static pages owned by that user can either be deleted as well or they can be assigned to another user in glFusion's Root group.

In the Configuration admin panel for the static pages plugin, you can set the “Delete Pages with Owner?” option to either “False” (which is also the default), meaning that static pages will not be deleted withtheir owner, but assigned to a member of the Root group instead (the user withthe lowest user ID, most likely the Admin). Setting the option to “True” means that static pages will be deleted when their owner's account is deleted.

# Static Pages Configuration Options

Allow PHP | Whether or not to allow PHP to execute in static pages.
Sort Centerblocks By | How to sort the center blocks.
Sort Menu Entries By | Order to sort menu entries.
Delete Pages with Owner | Defines what to do when a user is deleted that is the owner of a static page. When set to False, all static pages owned by the deleted user will be assigned to a user of the “Root” group (i.e. the site admin). When set to True, the static pages are deleted, including all the comments posted on that static page.
Wrap Pages in Block | Default setting for Wrap Page in Block - When a page is wrapped in a block, the page title will be displayed above the page contents.
Show Hits | Default setting to determine if the page views will be displayed on the page.
Show Date | Default setting to determine if the last modified date will be displayed on the page.
Filter HTML | Should the contents of the static page be run through the glFusion HTML filter.
Censor Content | Should the contents of the static page be run through the glFusion content filter.
After Saving Page | Where to go after saving a static page.
Max. Pages in Web Services Feed | Maximum number of pages to include in Web Services feed.