<?php
/**
 * Definitions of all included examples
 *
 * $Id: index_sections.php 58 2009-06-17 08:18:04Z gerd $
 *
 * @package		patSession
 * @subpackage	Examples
 * @author		Sebastian Mordziol <argh@php-tools.net>
 * @author		gERD Schaufelberger <gerd@php-tools.net>
 */

	$appName	=	'patSession';
	$mainDesc	=	'These examples show the functionality of '.$appName.' in detail. '
				.	'This overview lists all examples with a small description, and to '
				.	'navigate the examples, use the navigation on the left.';
	$sections	=	array(
	
		/**
		 * basic usage of patSession
		 */
		'Basics'	=>	array(
			'descr'		=>	'These examples show how to setup patSession for basic useage.',
			'basename'	=>	'example_basic_',
			'pages'		=>	array(
				'first' => array(
					'title'	=>	'First steps',
					'descr'	=>	'Very first steps in patSession.'
				),
				'singleton' => array(
					'title'	=>	'Singleton',
					'descr'	=>	'Using a the singleton-pattern forces a single instance of patSession.'
				),
				'factory' => array(
					'title'	=>	'Factory',
					'descr'	=>	'The factory-method allows to create multiple instances of patSession',
				),
				'parameter' => array(
					'title'	=>	'Parameters for patSession',
					'descr'	=>	'This example shows how to use parameters for creating different patSession-objects.'
				),
				'options' => array(
					'title'	=>	'Options explained',
					'descr'	=>	'A list of standard-options and how to use them'
				),
				'destroy' => array(
					'title'	=>	'Destroy sessions',
					'descr'	=>	'Shows how to terminate a session. Destroying a session also means to flush all session values.'
				),
				'restart' => array(
					'title'	=>	'Restart',
					'descr'	=>	'Inactive session may restarted - of course, this will not restore the previous session values. '
						. 'Restarting a session means that you start over with an empty session container - but at least, the session will be active again!'
				),
				'count' => array(
					'title'	=>	'Session counter',
					'descr'	=>	'The internal session counter show you how many request were made in this session.'
				),
                'namespace' => array(
                    'title' =>  'Internal namespace',
                    'descr' =>  'patSession itself uses the session container to store some internal values. In order to avoid conflicts, the namespace "patSession" is used as a prefix for all values.'
                ),
                'includedir' => array(
                    'title' =>  'Custom include dir',
                    'descr' =>  'patSession allows to load sesstion storage classes from folders outside of patSession. Hence you can add your own code without interfearing with patSession\'s files'
                ),
                )
		),
		/**
		 * security-features
		 */
		'Security'	=>	array(
			'descr'		=>	'Session and Security is a very important topic. These examples shows how to use patSession for a secure environment',
			'basename'	=>	'example_secure_',
			'pages'		=>	array(
				'expire' => array(
					'title'	=>	'Expire',
					'descr'	=>	'Expire idle sessions'
				),
				'fixbrowser' => array(
					'title'	=>	'Fix browser',
					'descr'	=>	'patSession allows to fix a session to a browser. Therefore all session data will be destroyed if the users tries to continue the session wit a different browser',
				),
				'fixip' => array(
					'title'	=>	'Fix IP address',
					'descr'	=>	'This feature avoids to continue any session from a different IP address then it was started.',
				),
				'fixreferer' => array(
					'title'	=>	'Fix referer',
					'descr'	=>	'Fixiation of the referer forces to stay on the same referer.',
				),
				'useToken' => array(
					'title'	=>	'Use token',
					'descr'	=>	'Ping-Pong disposible token for each request.',
				),
				'fork' => array(
					'title'	=>	'Forking',
					'descr'	=>	'Forking a session clones the current session values and continues with a new session',
				),
			)
		),
		/**
		 * array access
		 */
		'SPL'	=>	array(
			'descr'		=>	'SPL features of patSession',
			'basename'	=>	'example_spl_',
			'pages'		=>	array(
				'array' => array(
					'title'	=>	'ArrayAccess',
					'descr'	=>	'Use array syntax $sess[] instead of get(), set(), has() and clear()'
				),
                'iterator' => array(
                    'title' =>  'Iterator',
                    'descr' =>  'Use foreach to iterate through session variables'
                ),
                'property' => array(
                    'title' =>  'Property-a-like',
                    'descr' =>  'Use property syntax to shortcut function calls'
                ),
			)
		),
        /**
         * testing examples
         */
        'Testing'   =>  array(
            'descr'     =>  'Some testing php-files used during development',
            'basename'  =>  'example_test_',
            'pages'     =>  array(
                'tostring' => array(
                    'title' =>  'Output session container',
                    'descr' =>  '__toString()'
                ),
                'driver' => array(
                    'title' =>  'Wrong Driver',
                    'descr' =>  'Try to load a non existing driver'
                ),
                'null' => array(
                    'title' =>  'Null Driver',
                    'descr' =>  'Test the dummy driver: Null'
                ),
                'cli' => array(
                    'title' =>  'Cli Driver',
                    'descr' =>  'Test the PHP-CLI driver: Cli.'
                ),
            )
        )
	);

?>