<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://docs.e29inc.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://docs.e29inc.com/feed.php">
        <title>E29 Product Documentation developers:tutorials:serenity</title>
        <description></description>
        <link>http://docs.e29inc.com/</link>
        <image rdf:resource="http://docs.e29inc.com/lib/images/favicon.ico" />
       <dc:date>2010-09-10T14:51:43-07:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/hello-world-config.html?rev=1216688604"/>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/hello-world-db.html?rev=1216688604"/>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/hello-world-handler.html?rev=1216688605"/>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/hello-world-start.html?rev=1216688605"/>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/hello-world.html?rev=1216688605"/>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/hellow-world-with-sgen.html?rev=1216688606"/>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/sgen-data-struct.html?rev=1216934366"/>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/sgen-dynamic-content.html?rev=1216931844"/>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/sgen-parse-plugins.html?rev=1216935791"/>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/sgen-requirements.html?rev=1216926403"/>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/sgen-templates.html?rev=1216932830"/>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/sgen-widgets.html?rev=1216934845"/>
                <rdf:li rdf:resource="http://docs.e29inc.com/developers/tutorials/serenity/sgen-wrapper-config.html?rev=1216931295"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://docs.e29inc.com/lib/images/favicon.ico">
        <title>E29 Product Documentation</title>
        <link>http://docs.e29inc.com/</link>
        <url>http://docs.e29inc.com/lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/hello-world-config.html?rev=1216688604">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T18:03:24-07:00</dc:date>
        <title>Creating the Application</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/hello-world-config.html?rev=1216688604</link>
        <description>This document will outline how to create your application skeleton.

Generating the skeleton

 To create your first application, create the source directory under Serenity's Applications folder:

mkdir /path/to/webroot/sources/applications/$APP_KEY</description>
    </item>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/hello-world-db.html?rev=1216688604">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T18:03:24-07:00</dc:date>
        <title>Hello Database!  Working with data</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/hello-world-db.html?rev=1216688604</link>
        <description>Serenity AP has a unique data access architecture.  The data access follows a logical pattern, and is modeled after  Java's Hibernate system.  Instead of a database connection outlook, Serenity's data system focuses on creating objects from database tables.</description>
    </item>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/hello-world-handler.html?rev=1216688605">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T18:03:25-07:00</dc:date>
        <title>Editing the Action Handler</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/hello-world-handler.html?rev=1216688605</link>
        <description>So that our hello world app will actually print hello world, you'll need to edit the index handler for the application.

All action handlers will be created under the following directory:

/path/to/server/htdocs/applications/$APP_KEY

In this tutorial, the handler file will be:</description>
    </item>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/hello-world-start.html?rev=1216688605">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T18:03:25-07:00</dc:date>
        <title>Setting up the Serenity AP Environment</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/hello-world-start.html?rev=1216688605</link>
        <description>Obtaining the latest stable platform

First, obviously, you will want to get the Serenity Application Platform(tm).  The latest stable can always be downloaded from the following location: &lt;http://labs.e29inc.com/dist/index.php/serenity.html&gt;

If you are using a *nix server with command line access, you can directly download the package to your server via the following command:</description>
    </item>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/hello-world.html?rev=1216688605">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T18:03:25-07:00</dc:date>
        <title>Hello World using Serenity Application Platform</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/hello-world.html?rev=1216688605</link>
        <description>First, ensure that you are using the latest version of Serenity Application Platform(tm).  You can always obtain the latest version from: &lt;http://labs.e29inc.com/serenity/dist/STABLE.tar.gz&gt;</description>
    </item>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/hellow-world-with-sgen.html?rev=1216688606">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T18:03:26-07:00</dc:date>
        <title>Add a bit of style with sGen</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/hellow-world-with-sgen.html?rev=1216688606</link>
        <description>sGen started as the Style Generator Engine in 2001.  It's first iteration was as a simple template engine for a project, and evolved from there.

Today it is arguably one of the most powerful and robust style engines for PHP.  The template syntax follows a logical XHTML style, and the engine is wrapped into Serenity so that you can easily share dynamic data and even database returns with HTML without cluttering the web page with PHP markup.</description>
    </item>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/sgen-data-struct.html?rev=1216934366">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-24T14:19:26-07:00</dc:date>
        <title>sGen: Loading data from a database or array</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/sgen-data-struct.html?rev=1216934366</link>
        <description>One of sGen's greatest strengths is the ability to easily work with data from a database, without burdening the designer with a bizarre tag structure.

Completing this tutorial will require some knowledge of Serenity's data layer, which is covered in the Hello World tutorial ( at the end ).</description>
    </item>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/sgen-dynamic-content.html?rev=1216931844">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-24T13:37:24-07:00</dc:date>
        <title>sGen: Adding dynamic content</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/sgen-dynamic-content.html?rev=1216931844</link>
        <description>Using the action handler and template we've made so far, now we're going to add in some PHP controlled content. Open your tpl-global.php file from before and change the contents to the following:


&lt;html&gt;
&lt;head&gt;&lt;title&gt;&lt;sgen vars=&quot;title&quot; /&gt;&lt;/title&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;&lt;sgen config=&quot;style_path&quot; /&gt;/style.css&quot; type=&quot;text/css&quot; /&gt;
&lt;/head&gt;
&lt;body&gt;
This is the in the wrapper: &lt;sgen vars=&quot;username&quot; /&gt;

&lt;/body&gt;
&lt;/html&gt;</description>
    </item>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/sgen-parse-plugins.html?rev=1216935791">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-24T14:43:11-07:00</dc:date>
        <title>sGen: Parsing URLs and more through plugins</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/sgen-parse-plugins.html?rev=1216935791</link>
        <description>For our final sGen tutorial, we'll walk through how to use the powerful sgen.parse plugin system to handle any advanced logic or needs that might arise in your application.

As of this writing ( v2008.Summer.3 ), Serenity ships with two built in plugins, parse_url and parse_member.</description>
    </item>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/sgen-requirements.html?rev=1216926403">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-24T12:06:43-07:00</dc:date>
        <title>Setting up your application to use sGen</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/sgen-requirements.html?rev=1216926403</link>
        <description>To work with the Style Generator Engine ( sGen ), you'll need to create a few directories and set one configuration variable.

First, all sGen theme &amp;amp; template information is contained in the /cache folder system.  To create a sGen compatible theme, create the following folders and files:</description>
    </item>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/sgen-templates.html?rev=1216932830">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-24T13:53:50-07:00</dc:date>
        <title>sGen: Loading and printing template files</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/sgen-templates.html?rev=1216932830</link>
        <description>Given the size and complexity of most web applications, editing and maintaining thousands of pages worth of HTML isn't appealing.  Like most template layers, sGen supports including template bits inside the wrapper, and inside of other template bits.  A sGen template bit works just like the wrapper in that you can use any sGen tag inside the bit, and it will be parsed just like the wrapper itself.</description>
    </item>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/sgen-widgets.html?rev=1216934845">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-24T14:27:25-07:00</dc:date>
        <title>sGen: Adding widgets to a template</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/sgen-widgets.html?rev=1216934845</link>
        <description>NOTE: At the time of this writing, the widget tutorials are still being finished.
This example uses the SSO login widget, which is complete and shipped as of
Serenity Platform version 2008.Summer.3 


Another strong point of sGen and the Serenity platform as a whole is the use of widgets.  Serenity treats widgets like plugins that can be used across every application installed on Serenity.  Take a look at the widget tutorials to find out how to write your own reusable widget.</description>
    </item>
    <item rdf:about="http://docs.e29inc.com/developers/tutorials/serenity/sgen-wrapper-config.html?rev=1216931295">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-24T13:28:15-07:00</dc:date>
        <title>sGen: Loading the wrapper and setting the config</title>
        <link>http://docs.e29inc.com/developers/tutorials/serenity/sgen-wrapper-config.html?rev=1216931295</link>
        <description>The only required sGen template file is the wrapper.  In the previous article, we created the tpl-global.php file under /cache/style/$YOUR_APP_KEY/.  This file is what sGen considers the 'wrapper'.  Generally any consistent headers, footers, menus, or CSS information would be placed in this file.</description>
    </item>
</rdf:RDF>
