Follow Us:


User Guide


Welcome to the ForgeIgniter User Guide.

We hope that you find ForgeIgniter really intuitive, but for the bits you can't work out on your own we made a friendly user guide, just for you.

Please note from this point onwards ForgeIgniter may be referred to as FI, it's shorthand name.

In the documentation you will find out how to use FI and its modules, how to customize your own templates and also full reference for all the tags..

If you don't find answers to your questions here, feel free to jump on the Forums and join the community of FI developers who should be able to help you.

What is ForgeIgniter ?

FI is an easy-to-use, multi-site publishing platform with built-in modules such as Blog and E-Commerce. It's focus is to be as easy to use as possible, if you're a Designer,Developer or someone just wanting to setup your first website, you should feel right at home here.

FI is built upon the CodeIgniter PHP framework which makes Halogy fast, secure and easily extendible.

Tree Roots

Remembering The Roots

FI was not always known as ForgeIgniter, not so long back it was once known as Halogy that dates back to 2010 when Stu Green first started the project, since then Jesse Orndorff had taken over the project for a couple of years but the updates were short and few due to personal reasons. In that time a Community Version had been released supporting the latest versions of CodeIgniter and patching holes here and there. Unfortunately now, Halogy has come to an end and can no longer continue under the name.

It's not all doom and gloom from there though, in this process a new name, logo and CMS is forged, continuing to support the user base that is left and welcome new comers.

Getting Started With FI


FI is packaged with an installer to ease and guide you on your first steps, following those steps you should'nt encounter any problems, if you do however run into a problem be sure to post on the Forums


FI uses templates to construct it's pages. Those templates work off a powerful system which converts raw HTML and {tags} in to dynamic web pages.


Tags (or 'curly brackets' to you and me) are where non-static content is inserted. For example static content would be some HTML, but with the addition of a dynamic area such as { navigation } you can insert aspects of FI in to your pages (such as the Navigation).


Includes are chunks of code that you can insert in to your pages. They can be either HTML snippets (containing tags if you wish), CSS code or Javascript code. You reference the includes in your templates using a curly bracket . For CSS and Javascript you an access these via the URLs /css and /js. So basically if you want to repeat somthing on multiple pages instead of copying the content over every time you can use Includes instead.


Blocks are editable regions used within pages. So your template might consist of Includes for the header and footer, some dynamic areas for things like navigation and finally it would need Blocks for the editable regions inside pages.

The way FI is built means that you can build set templates which form the construct of your site, and then create a new permission group that only allows the users access to the pages (with their Blocks or editable regions) and not the templates. This gives content managers a lot of power and it can be very useful for larger sites.

Blocks use a syntax called Markdown which makes Halogy different from most other CMS out there. In other CMS you might find a clunky rich text editor within the Edit Page window. In Halogy this is removed and you simply just type in the text with basic formatting should you need it.

Why do we not use rich text editors? Because the rich text editors often used can be slow, cumbersome, large and also tend to produce horrible markup (HTML code) used in websites - which we really don't like. It also means you can edit lots of regions in a single page very quickly. How cool. Advancments in Web Editors have come a long way though, we are currently working on a choice so you can pick if you want a full blown WYSIWYG Editor or to just keep things nice and simple.


Modules in FI are what really add the power. As good as the CMS might be, what really makes things useful is when you can easily drop in a Forum for community discussions, or maybe sell products using the Shop. The modules in FI all work together and are easily configurable.

What's more, the modules in FI are fully customizable through the template system. You can make everything look and feel just as you like with your own HTML/CSS/JS.

Modules are all installed by default and can be accessed by going to /shop, /blog, or /events (etc). If you want to disable modules selectively you can do this from the Site manager (accessible only to superusers).


Images can be uploaded via the admin system and then referenced using the { image:REFERENCE } syntax. All images can also be found using /images or /gfx followed by the reference of your image (and then the extension).

For example say you uploaded an image and called it My Logo. The reference would get automatically made as "my-logo" and the file was a JPEG. You can then insert the image either by { image:my-logo } or you can use your own custom HTML and find the image under "/images/my-logo.jpg".


You can create an unlimited number of pages in FI. Each page has a unique path, a template and can be version controlled so you can keep track of all changes. Pages can be edited from within the administration portal, or directly on the site providing that you're logged in as an administrator.

Table of Contents

Creating Pages

To create a page you must first be logged in to your website and have administrator permissions, you can then follow the simple steps provided below.

  1. Click on Pages
  2. Click on Add Page
  3. Fill in the required information such as Page Name
    (which should automatically populate the Path and Title fields)
  4. Select a template that is appropriate for the page
  5. Click on Content (or View Page to edit directly)
  6. Click Edit on the Blocks you want to write copy for
  7. Click Save Changes
  8. Finally click Publish Page to make your changes viewable to the World Wide Web

Nesting Pages

Nested pages are pages that reside inside another page (which becomes the 'parent'). To make a nested page you will simply need to go to Edit Page and select the Parent Page from the drop down, then click Save Changes. This page will then become a nested page of that parent and the path will be automatically set (for example parent-page/nested-page).

If you want the nested page to become a normal page and not a nested page, then you can select "Top Level" from the Parent Page drop down. This will put the page on an equal tier to the other top level pages and adjust the path accordingly.


Navigation is output by using the { navigation } tag from within a Template or Include. The produced output will be a set of listed items for each page that has "Display in Navigation" set to Yes, in the order that you set from Pages in the administration portal.

To change the order of the navigation, simply drag and drop the page in to the order that you want it to appear in the navigation. If you want to make sure a page is hidden from the navigation then edit the page and set the "Display in Navigation" field to No. This will hide the page from the navigation.

Nested pages will appear as sub-navigation (Often handy for sidebars) items (unordered lists with the class of "subnav"), inside each navigation list item. These nested pages can be hidden globally with CSS, or individually by setting the "Display in Navigation" field to No for each nested page.

Navigation for Nested Pages

To display only the nested pages for the currently active parent (for example say you are on a page called /services and you want to see the nested pages for this parent page), you can use the { navigation:children } tag from with a Template or Include. This will output only the nested pages (or children) for the active parent page.

Navigation for Parents Only

To display only the parent navigation items without any nested pages in the markup you can use the tag
{ navigation:parents } . This will remove any sub-navigation and only output the parent (Top Level) pages.


Blocks are editable regions within a page. They are defined in the Template (or Include) and allow for easy and quick editing of content on a page. One advantage to using multiple blocks is the designer can control the editable regions on a template and ensure that the integrity of the design is not broken as a page is edited.

Blocks can simply be a few lines of text, or full pages that contain different formatting such as headings, bold tags, links and even HTML snippets (e.g. for embedded videos). Such as this very page you're reading, it contains Blocks.

Table of Contents

To create a block you need to have access to the Templates section of the administration portal. From within a Template the administrator simply needs to add { blockX } (where X is the unique number of the block) to the template markup. If you're only putting one block on a page you only need to put { block }

In the example below we have two columns which have a block in each column.

<div class="columns">
	<div class="col1">
		{ block1 }
	<div class="col2">
		{ block2 }

Editing Blocks

When you click Edit on a block, an editor should appear with buttons at the top to help with formatting. You can then start writing your text within the block and when you are finished click the green tick at the top right of the block and your changes will be saved. You can also edit a block by double clicking on it.

Note: When you click the green tick then your changes will be saved for the draft only. For the world to see your changes you will need to click on Publish Page.

Formatting the blocks can be done by either using the helper buttons at the top of the active block, or you can follow the Syntax Guide below to get formatting such as Bold, Headings and Links.

Syntax Guide

When editing blocks it is good to know the 'syntax' for formatting the text. The helper buttons at the top of the block should help you in most cases, but this guide explains the syntax and how to edit blocks.


To make headings you simply place a hash at the beginning of the text.

# Primary Heading
## Secondary Heading
### Tertiary Heading

Bold and Italics

You can get bold and italic text by wrapping the text with a single or double asterisk.

For bold wrap the text with two asterisks **like this**
For italic wrap the text with one asterisk *like this*

Links can be done in two ways, either by using square brackets then round brackets, or by just using angle brackets (the simplest way).

If you use angle brackets, emails will be automatically converted to "mailto:" links and will be 'spammer-safe'.

[Click here](/the/path/to-my-page)
< >
< >


You can make un-ordered lists and ordered lists by simply.

- List item one
- List item two
- List item three

1. Ordered list item one
2. Ordered list item two
3. Ordered list item three

Special Characters

You might need to get characters like hashes and asterisks which normally would be used for formatting. If so you simply place a back-slash before the character to prevent the Markdown working.

\# This is a real hash

\* This is a real asterisk

New Lines Instead Of Paragraphs

Pressing return at the end of the line normally doesn't create a line break and two line breaks creates a paragraph. So to get a single line break simply add two spaces to the end of the text.

The quick brown fox
jumped over the lazy hen


Tables can be made by drawing them with hyphens and underscores. Ideally you should ask your designer or developer to make a table for you in the templates view, but should you need to make a table inside a block you can do the following.

Table Header One | Header Two
My cell | My second cell
My third cell | My fourth cell

Note: The example above doesn't exactly look correct depending on your browser but it's advised to put spaces in the table so the lines match up correctly.


Tags are used to get dynamic content in to your Templates and Includes. For example, if you want to output a list of your pages, then you simply create a UL and then use the { navigation } tag inside, or if you want to output the name of the page you can use the { page:title } tag. Most tags will only work from within a Template or Include, but some tags will work at block level for example image tags.

Table of Contents

General Tags

{ blockX } - For multiple editable regions, where X is the number of the region.
{ image:REFERENCE } - Produces an image based on the reference
{ thumb:REFERENCE } - Produces an thumbnail based on the reference
{ file:REFERENCE } - Produces a download link for a file based on the reference
{ include:REFERENCE } - Produces code from an Include based on the reference
{ webform:REFERENCE } - Produces a web form based on the reference

Page Tags

{ page:title } - Title of page
{ page:heading } -Heading of page (used by modules)
{ page:description } - Description of page (meta)
{ page:keywords } - Keywords / tags (meta)
{ page:date } - Date page was created
{ page:date-modified } - Date page was last modified
{ page:uri } - URI or path of page
{ page:uri-encoded } - Encoded URI or path of page
{ page:uri:segment(1) } - The first segment of the URI (the parent)
{ page:uri:segment(2) } - The second segment of the URI (the nested page)
{ page:uri:segment(3) } - The third segment of the URI

{ navigation } - Navigation items in list format without enclosing UL
{ navigation:parents } - Just the parents (no children or sub-navigation)
{ navigation:children } - Just the children of the currently active parent page

Site Tags

{ site:name } - Name of website
{ site:domain } - Domain of website
{ site:url } - URL of website
{ site:email } - Email of website
{ site:tel } - Telephone number of website
{ site:currency } - Currency of website
{ site:currency-symbol } - Currency symbol of website (e.g. $)

User Session Tags

{ userdata:id } - ID of logged in user
{ userdata:email } - Email of logged in user
{ userdata:username } - Username of logged in user
{ userdata:name } - Full name of logged in user
{ userdata:first-name } - First name of logged in user
{ userdata:last-name } - Last name of logged in user

Date Tags

{ date } - Today's date based on site preferences (e.g. time zone and MMDD order)
{ date:unixtime } - Today's date in a UNIX time

Headline Tags

{ headlines:MODULE } - Show headlines based on module reference
{ headlines:MODULE:category(REFERENCE) } - Shows headlines based on category
{ headlines:MODULE:category(REFERENCE):limit(5) } - Shows headlines based on category with a limit
{ headline:title } - Title of headline (e.g. the blog post)
{ headline:link } - Link to the headline article
{ headline:date } - Date that headline article was posted
{ headline:day } - Day the headline article was posted (DD)
{ headline:month } - Month the headline article was posted (MMM)
{ headline:year } - Year the headline article was posted (YY)
{ headline:body } - Body of the headline article
{ headline:excerpt } - Excerpt of the headline article
{ headline:comments } - Number of comments the headline article has (for Blog module)
{ headline:author } - Full name of the author of the headline article
{ headline:author-id } - ID of the author of the headline article
{ headline:class } - Alternate class of the headline (e.g. even articles get a class of 'alt')

NOTE: Headlines are loop tags which must be closed at the end of the loop using the same opening tag
(e.g. { /headlines:MODULE }).

Misc Tags

{ errors } - Any errors that might have resulted from a posted form
{ message } - Any message (usually a success) that might have resulted from a form
{ clear } - Produces code that rectifies any image alignment problems
{ more } - Produces a link to the blog post (for Blog module)
{ logged-in } - Boolean for whether the user is logged in or not
{ admin } - Boolean for whether the user is an administrator or not
{ ajax } - Boolean for whether the request is AJAX or not
{ mobile } - Boolean for whether the browser is a mobile or not


Templates control the layout of pages. They are an integral part of the Halogy architecture and can be completely customized with your own HTML markup. Templates can be created for each page individually (e.g. Home, About), or can be shared by multiple pages and contain varying layouts (e.g. 2 Column, 3 Column etc).

Templates can contain static markup (e.g. a simple imported HTML file), tags for dynamic areas (such as editable regions), Includes (snippets of code which are re-used) or mixture of all three. Templates are also used for the modules such as Blog and Shop, and they too can be completely customized.

Table of Contents

FI is built upon the CodeIgniter PHP framework which makes Halogy fast, secure and easily extendible.

Creating and Using Templates

A template can be created and edited from within the administration portal providing the administrator has the correct permissions. To add a template simply click on Templates, then Add Template. The template must have a name, and also contain some HTML markup in the body. Once you have created a template you can then select it when you edit pages.

Below is an example of a template using a mixture of static content, includes and some editable regions (blocks).

NOTE: Spaces would have to be removed from the tags when using the example below:

{ include:header }
<h1>{ page:title }</h1>
<div class="columns">
    <div class="col1">
        { block1 }
    <div class="col2">
        { block2 }
{ include:footer }


Includes are snippets or code that can be re-used. Most commonly they are used as header and footer for templates so that this common code (e.g. the Doctype and copyright information) doesn't have to be used in every single template that you create. Another advantage is if you want to make a change across hundreds of pages you only need to edit that one Include, providing it is referenced in the template that is shared across those pages.

To make an Include select Includes from the Templates menu in the administration portal, click Add Include, enter a reference for the include (e.g. my-header), then enter the markup for the include.

Then you simply reference that Include from your template, for example { include:my-header }. The markup you used in the Include will be produced within the template, and therefore in your pages too. Includes can also be used at block level.

Includes can be included within other includes, which makes the templating engine very powerful and useful for large sites that needs lots of re-used code.

CSS and Javascript

CSS and Javascript Files are effectively Includes as they are snippets of code which get included in a template. However accessing them requires you to link directly to them via a 'virtual path'.

First of all you can create your CSS and Javascript in the Template menu of the administrator portal. Click either CSS or Javascript from the menu, then Add CSS, create a reference with the extension (e.g. my-style.css), and then click Save Changes.

NOTE: With CSS and Javascript you must add the relevant extension (e.g. .css or .js), otherwise the system will think that the code is a regular Include.

Once you have created your CSS or Javascript you can include it as you would normally through HTML using the following path:

For CSS use: /css/REFERENCE.css
For Javascript use: /js/REFERENCE.js

An example below is taken from a header include which references both CSS and Javascript:

<!DOCTYPE html>
    <meta charset="UTF-8">
    <title>{ page:title }</title>
    <link rel="stylesheet" type="text/css" href="/css/my-style.css">
    <script type="text/javascript" src="/js/my-javascript.js"></script>
  <!-- end header -->

Conditional Statements

The template engine contains basic logical statements such as if and else. This can be useful if you want to check that a tag exists before outputting it. You can also use boolean tags such as { logged-in } which will check whether the user is logged in, or { mobile } to check whether the browser is a mobile browser.

Conditional statements used in conjunction with Includes can make the templating engine very powerful indeed as you could include different Include files based on whether the browser is a mobile browser, or whether the request is AJAX. For example, the code below is a header include used in every single template:

NOTE: Spaces would have to be removed from the tags when using the example below:

{ if mobile }
    { include:header-mobile }
{ else }
    { include:header-default }
{ /if }

Importing Themes

Themes can be imported by going to the Templates page and clicking on Import Theme. The file must be a ZIP file which can include HTML, CSS, Javascript, and image files. Once a theme is imported, Templates, Includes, CSS, JS and images will get created automatically for use in your pages saving a lot of time.

Note: MAC and WINDOWS system may include a .ds or .dll file that should not be included in the zip.

More information can be found on the Themes page.

Images & Files

Images and files can be uploaded and accessed completely through Halogy eliminating the need for FTP and complicated file browsers. The images and files simply get uploaded through the administration portal, given a reference and 'virtual path', and then can be placed anywhere on the site by way of a tag.

Table of Contents

Uploading Images

To upload an image click on Uploads > Images from within the administration portal, then click Upload Image. In the form that appears you simply click Browse to find the image that you want to upload, then you can optionally give the image a description.

Once the image is uploaded a reference will be created automatically. This reference is used for the image tag and virtual path, which are both ways to output the image (described later). If you do not enter a description then the image reference will be created based on the filename, otherwise the reference will be based on the description, for example: a-picture-of-cats.

Should you want to change the reference, for example if you want to make it shorter and simpler, then click the blue Edit button near the image, and then change the reference in the form that appears. From this form you can also change the image itself (via the Browse button), the description, alignment of the image and the maximum dimension in pixels (if the image needs resizing).

When viewing pages directly, all images referenced via tags (explained later) will present a button when you hover over the image. When you click on this image you can edit the image directly, for example if you want to change the alignment of the image inside a blog post, or if you want to change the Description (Alt tag). This means you can edit the image on the page without having to go back to the administration portal every time.

Locating and Referencing Images

Images that are uploaded via the Uploads system will be given a reference which you can use for outputting images inside a Block, Template or Include. You can either use this reference inside a tag, or link to it directly using its virtual path.

To reference the image via a tag then you simply use { image:REFERENCE } and the HTML will be automatically generated for that image. If you place the image tag inside a block you should see the image as soon as you click on the green tick button.

To directly access the image via its virtual path you simply use /images/REFERENCE.EXTENSION, for example /images/picture-of-cats.png or /images/mypicture.jpg. Make sure that the extension is the same as the type of file you uploaded originally. If you are not sure you will need to look at the original file you uploaded.

The virtual path will be necessary when using CSS. So from within your CSS file you simply use url(../images/mypicture.jpg) no-repeat.


Thumbnails are created automatically for images larger than 100px. If you want to access the thumbnail for the image you can use either a tag of { thumb:REFERENCE } or you can link directly to the thumbnail via /thumbs/REFERENCE.EXTENSION.

Zip Files

You can upload a ZIP file full of images if you want to save time individually uploading images. If you do this all descriptions will be set to "Image" and the references will be based on the file name. Thumbnails will not be created for images uploaded this way.

Uploading Files

Files such as PDF, DOC, ICO, ZIP and MP3 can be uploaded using the Files system and referenced via tag or linked to directly. To upload a file click on Uploads > Files and then click on Upload File. The file will be given a reference based on the file name and the type of file will be represented with an icon.

The following file types are currently supported:

  • PDF
  • DOC
  • MP3
  • ZIP
  • JS
  • SWF
  • FLV
  • MP4
  • CSS
  • ICO
  • TXT
  • XLS
  • PPT
  • TTF
  • CFF
  • SVG
  • WOFF
  • EOT

If there's a file type not on the list but you'd like supported please just let us know on the Forums.

Locating and Referencing Files

Once you have uploaded a file you can output a link to that file from a Template, Include or Block. Alternatively you can go directly to the file via its virtual path at which point you will be presented with a download screen.

To reference the file via a tag then you simply use Download and a HTML link to the file will be outputted. This code can be styled through CSS by using the class "file".

To directly access the image via its virtual path you simply use /files/REFERENCE.EXTENSION, for example /files/favion.ico. Make sure that the extension is the same as the type of file you uploaded originally. If you are not sure you will need to look at the original file you uploaded.

Web Forms

Web Forms are simple ways to allow users to get in touch with the website administrator through a form. Once a web form is submitted emails are sent to both the user and the administrator and a ticket is created containing the content of the message, the fields that were posted as well information on the user.

Table of Contents

Creating a Web Form

To create a web form click on Web Forms > All Web Forms, from within the administration portal, then click on Add Web Form. You then simply give the web form a name which will form the reference, and then fill out the form based on what you want the system to do, once the user has posted the form (the Outcome), for example, sending the user to a different page or presenting a custom message.

Referencing a Web Form

Web forms can be outputted in templates by simply using the { webform:REFERENCE } tag, where REFERENCE is the automatically produced reference of the web form (found in the All Web Forms page).

The code that will be automatically produce will be a parent div, a label and the input field for every form field in the set. For example the default field set 'Enquiry Form' will produce a name field, email field and message field. These fields can be styled through CSS.

The containing form will need to be placed in the template manually, as well as the Submit button. This allows the template developer to gain complete control of the look and feel of the web form. For example in the template code below an Enquiry web form has been referenced inside a form with a Submit button under that.

<form name="my-form" method="post" action="">
   { webform:my-enquiry-form }
   <input type="submit" value="Submit Enquiry!">

NOTE: Web forms require additional tags in the template which present errors and message based on the outcome. Please make sure your template includes { message } and { errors } tags.

Using Tickets

For all posted web forms a ticket will be produced. This ticket will be sent through email to the user and to the website administrator (or the CC email address set up in the web form). It will also be stored in the administration portal and will be shown in the Dashboard when a new and unseen ticket is created.

Each ticket can be opened or closed by an administrator or any user with the appropriate permissions. This helps staff to track the status of each ticket and leave notes if necessary. Once a ticket has been looked at the bold status will be removed.

Tickets can not be replied to from within the system itself, but by clicking on the Email link you can reply to the ticket through your regular mail client and the ticket ID will be automatically placed in the subject.

Custom Web Forms

Custom Web Forms can be created by selecting "Custom" from the Field Sets drop down. This will prevent any form fields being automatically added to the code but the default web form code will still be added.

By adding custom fields such as in the example below, you collect whatever data you want to and not be limited by a default field set. For example you could collect the address of the user or perhaps an age range.

You can also specify which fields are required by using a field by the name of "required" and using a pipe to separate the fields.

<form name="my-form" method="post" action="">
   { webform:my-custom-form }
   <input type="text" name="required" value="Name|Age">
   <input type="text" name="Name">
   <select name="Age">
       <option value="">Select age...</select>
       <option value="Under 18">Under 18</option>
   <input type="text" name="What do you think of my website?">
   <input type="submit" value="Submit Enquiry!">


Headlines are a way of globally showing the latest items from modules, such as most recent blog posts or recent shop products. Headlines are generally used in Includes, for example in the Footer of a site, as a way to get users to visit the module regardless of what page they are currently on. As you cannot output module tags outside of the module, the headlines system becomes very useful for doing this.

Table of Contents

Using Headlines Within Templates

Headlines are looped tags, so they must be opened and closed with the same tag. For example in the code below you will see a template for a home page that shows the most recent blog posts (limited by 5). The headlines are opened with a tag, the repeatable markup is placed inside the loop and then headlines are closed with the same tag.

{ headlines:blog:limit(5) }
    <div class="repeating">
        <div class="date">
            <span>{ headline:day }</span><br/>
            { headline:month }
        <div class="body">
            <h2><a href="{ headline:link }">{ headline:title }</a></h2>
            <p>{ headline:excerpt }</p>
{ /headlines:blog:limit(5) }

Shopping Cart Headlines

Headlines can also be used to output the shopping cart. For example you can show the items in your shopping cart as well as the total. This is useful for sites using the E-Commerce module. The same looped tag rules apply, though in the example below the tags are slightly different. Also in the example below you will see the use of 'conditional statements' to check that there are actually items in the cart first.

{ if headlines:shop:cartitems }
    <ul id="cart">
        { headlines:shop:cartitems }
                <a href="{ headline:link }">{ headline:title }</a><br />
                <small>({ headline:quantity }x - { headline:price })</small>
        { /headlines:shop:cartitems }
    <p>Total: <strong>{ headlines:shop:subtotal }</strong></p>
{ else }
    <p>Your cart is empty.</p>
{ /if }

NOTE: Spaces would need to be removed from the conditional tags.

Tag Reference

{ headlines:MODULE } - Show headlines based on module reference
{ headlines:MODULE:category(REFERENCE) } - Shows headlines based on category
{ headlines:MODULE:category(REFERENCE):limit(5) } - Shows headlines based on category with a limit
{ headlines:shop:cartitems } - Show headlines for shopping cart
{ headline:title } - Title of headline (e.g. the blog post)
{ headline:link } - Link to the headline article
{ headline:date } - Date that headline article was posted
{ headline:day } - Day the headline article was posted (DD)
{ headline:month } - Month the headline article was posted (MMM)
{ headline:year } - Year the headline article was posted (YY)
{ headline:body } - Body of the headline article
{ headline:excerpt } - Excerpt of the headline article
{ headline:comments } - Number of comments the headline article has (for Blog module)
{ headline:author } - Full name of the author of the headline article
{ headline:author-id } - ID of the author of the headline article
{ headline:quantity } - Quantity of item in the cart (for Shop module)
{ headline:price } - Price of item in the cart (for Shop module)
{ headline:class } - Alternate class of the headline (e.g. even articles get a class of 'alt')

Latest Downloads

You can grab the latest forged version of FI from Github, once a full version is complete you can also download FI from Codeplex.

Github Download Codeplex Download

What Version ?

Github and Codeplex both contain the same version, although the codeplex version is only updated when a full version is complete.

What's this CI-2 stuff all about ?

CI-2 states the CodeIgniter version, this version will continue to be updated with security and bug fixes until the CI Team drop support. You can also find the old admin themes here in a branch called Simple-Themes.


We promise not to send you spam.
Seriously, the mailing list is private and you'll only receive an e-mail once a month with a summary of all the latest goings-on with ForgeIgniter.
Remember you're always free to Unsubscribe if you're not happy for an unknown reason only known to you.

© 2010 - 2020, ForgeIgniter. All Rights Reserved.