A flexible super-lightweight PHP framework with PHP templates
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
COPYING
README.txt
Site.inc.php

README.txt

The juju-framework is a minimalistic framework, that can be used for simple template-driven pages.

Contact me via http://bondconsult.no/Contact, or github.com/bond - for submitting patches or questions.

The framework is very lightweight and flexible and can be used in many ways, it is intended for php developers. Here is a quick example of how to use it:

First, drop the juju-framework in your library-folder, in example "yourproject/lib/juju-framework". Create a index.php file that will describe your site:

<?php

$root = $_SERVER['DOCUMENT_ROOT'];
$lib = "$root/lib";

// include framework
require_once "$lib/juju-framework/Site.inc.php";

// define site
$site = new Site;
$site->name = 'My homepage';

// The script expects to have URLs rewritten to /index.php?url=$1, if you prefer to use PATH_INFO and rewrite to /index.php/$1 use this:
// $site->use_path_info();

// Add a page to the $site. This page will react to '/' URI, the page name (ie, for use in titles - will be 'welcome'. 
// The second option to the new page, is a array of options. The template-option is required. The template named 'welcome', will be translated into 'templates/welcome.php'. The options can be accessed via $page->opts['option_name']. IE, an option for including jquery can be set on the pages that needs jquery.
// The third option to $site->add_page(), 'main', is which menu's the site should be included in. This can also be an array, if you wish to include the page into multiple menus.
// the menu's can be fetched with: $site->get_menu('main'), or the name that was given to it.

$site->add_page('/', 
	new Page('welcome', 
		array(
			'template' => 'welcome',
		)
	),
  'main'
);

$site->add_page('/test',
  new Page('test',
    array(
      'template' => 'test',
    )
  )
);

// check if the current request is valid
if ($page = $site->load_requested_page()) {
      // valid request, render the usual layout-file. the layout file is where all your html design goes. Usually you will: "<?php include($page->template()) ?>" where you want the pages content to go.
      include( $page->layout() );
} else {
	$site->http_error('404');
  echo "<html><body><h1>404: Page not found</h1></body></html>";
  exit();
}

?>