INCLUDE Page Shortcode

Plugin Name:shortcodes.include (INCLUDE FILE)
Version:0.5
Description:Include other files in current files shortcode for Phile Markup.
Last Update:2013/10/23
Author:jacmgr
Comments: See Comment Section Tags:
docs/plugins/plugin.jacshortcode.include
/*
Title: INCLUDE Page Shortcode
description: Include other files in current files shortcode for Phile Markup.
pluginname: shortcodes.include (INCLUDE FILE)
version: 0.5
revisiondate: 23 OCT 2013
pluginauthor: jacmgr
Chapter: plugins.2
*/

## Include another page in current page

Requires the shortcodes plugin to be active.

Let's say there exists another file in your site called **testinclude.md** and it has content that looks like this:
~~~~
[include file=docs/plugins/testinclude.md raw=true]
~~~~

[[#ENDSUMMARY]]

You can include that page or any other page using the markup:

    [\include file=docs/plugins/testinclude.md]

Note that this requires using the pagename `with it's extension` (this case ".md").

The result of the above markup is:

[include file=docs/plugins/testinclude.md]


Basically it merges the two pages before they are passed through the parser.

### Break a long Document to sub pages

      [\include file=docs/part1.md]
      [\include file=docs/part2.md]
      [\include file=docs/part3.md]

## Core Changes

I added one function to the `\Phile\Model\Page` class.  Needed to get the raw content without the meta for a page object.  Here are the 3 methods I added, but this shortcode only uses the getContentRaw() method.

    //jacmgr: set some meta
    public function setMeta($key, $value) {
		$this->meta->set($key, $value);
	}      
        //jacmgr: Get the Content section of file without parsing
	public function getContentRaw() {
		return $this->content;
	}
        //jacmgr: Get the full page content
	public function getRawData() {
		return $this->rawData;
	}   



## Other formats

> WARNING: This is a dangerous shortcode.  It can include any file you want into the page. You should not have it active if someone is able to modeify any of your markdown files.

### Include php snippet

If the file is not found as a phile markdown file, the shortcode will try to include the file from the php filesystem.  You must provide a FULL PATH to the file. To do this I added a config variable for the folder path and allowed it to be used in the parser.

Suppose you have a folder in your content where you store snippets of php that you display in your pages as source php.  In the page you can

    [\include file=\%CONTENT_DIR%/codesnips/sample.01.php]
		or
	[\include file=\%SYSTEMFOLDER%plugins/jacshortcodes/Classes/Plugin.php]

Results in
   
~~~~
[include file="%CONTENT_DIR%/codesnips/sample.01.php"]
~~~~

Or include a markdown from another non-content location. AS long as it is a markdown file, we don't have to include the full path.

     [\include file=../README.md]

Results in 

[include file=../README.md]