From ab22dfde8a2b34b14c8024d68a16131fc7deefa5 Mon Sep 17 00:00:00 2001 From: Jakob Sack Date: Thu, 3 Mar 2011 23:09:36 +0100 Subject: [PATCH] A sample app, at the moment far from showing everything possible --- skeleton/admin.php | 56 ++++++++++++++++++++++++++++ skeleton/appinfo/app.sample.php | 15 ++++++++ skeleton/css/skeleton.css | 4 ++ skeleton/css/special.css | 3 ++ skeleton/img/put_images_here.txt | 1 + skeleton/index.php | 64 ++++++++++++++++++++++++++++++++ skeleton/js/app.js | 3 ++ skeleton/templates/admin.php | 8 ++++ skeleton/templates/index.php | 12 ++++++ 9 files changed, 166 insertions(+) create mode 100644 skeleton/admin.php create mode 100644 skeleton/appinfo/app.sample.php create mode 100644 skeleton/css/skeleton.css create mode 100644 skeleton/css/special.css create mode 100644 skeleton/img/put_images_here.txt create mode 100644 skeleton/index.php create mode 100644 skeleton/js/app.js create mode 100644 skeleton/templates/admin.php create mode 100644 skeleton/templates/index.php diff --git a/skeleton/admin.php b/skeleton/admin.php new file mode 100644 index 00000000000..f237e84d852 --- /dev/null +++ b/skeleton/admin.php @@ -0,0 +1,56 @@ +. +* +*/ + +// Do not prepare the file system (for demonstration purpose) +// We HAVE TO set this var before including base.php +$RUNTIME_NOSETUPFS = true; + +// Init owncloud +require_once('../lib/base.php'); + +// We need the file system although we said do not load it! Do it by hand now +OC_UTIL::setupFS(); + +// We load OC_TEMPLATE, too. This one is not loaded by base +oc_require( 'template.php' ); + +// The user should have admin rights. This is an admin page! +if( !OC_USER::isLoggedIn() || !OC_USER::ingroup( $_SESSION['username'], 'admin' )){ + // Bad boy! Go to the very first page of owncloud + header( "Location: ".OC_HELPER::linkTo( "index.php" )); + exit(); +} + +// Do some crazy Stuff over here +$myvar = 2; +$myarray = array( "foo" => array( 0, 1, 2 ), "bar" => "baz" ); + +// Preparing for output! +$tmpl = new OC_TEMPLATE( "skeleton", "admin", "admin" ); // Programname, template, mode +// Assign the vars +$tmpl->assign( "var", $myvar ); +$tmpl->assign( "array", $myarray ); +// Print page +$tmpl->printPage(); + +?> diff --git a/skeleton/appinfo/app.sample.php b/skeleton/appinfo/app.sample.php new file mode 100644 index 00000000000..12db7154c2b --- /dev/null +++ b/skeleton/appinfo/app.sample.php @@ -0,0 +1,15 @@ + "skeleton", "name" => "Files", "order" => 1000 )); + +// Add application to navigation +OC_UTIL::addNavigationEntry( array( "id" => "skeleton_index", "order" => 1000, "href" => OC_HELPER::linkTo( "skeleton", "index.php" ), "icon" => OC_HELPER::imagePath( "skeleton", "app.png" ), "name" => "Example app" )); + +// Add an admin page +OC_UTIL::addAdminPage( array( "order" => 1, "href" => OC_HELPER::linkTo( "skeleton", "admin.php" ), "name" => "Example app options" )); + +?> diff --git a/skeleton/css/skeleton.css b/skeleton/css/skeleton.css new file mode 100644 index 00000000000..aa68a8be867 --- /dev/null +++ b/skeleton/css/skeleton.css @@ -0,0 +1,4 @@ +/* + * To include this css file, call "OC_UTIL::addStyle( "skeleton", "skeleton" )" + * in your app. (appname) (cssname) + */ \ No newline at end of file diff --git a/skeleton/css/special.css b/skeleton/css/special.css new file mode 100644 index 00000000000..8fd75917bf2 --- /dev/null +++ b/skeleton/css/special.css @@ -0,0 +1,3 @@ +/* + * If you want to you can use more css files ... + */ diff --git a/skeleton/img/put_images_here.txt b/skeleton/img/put_images_here.txt new file mode 100644 index 00000000000..8d1c8b69c3f --- /dev/null +++ b/skeleton/img/put_images_here.txt @@ -0,0 +1 @@ + diff --git a/skeleton/index.php b/skeleton/index.php new file mode 100644 index 00000000000..25a9f0297dc --- /dev/null +++ b/skeleton/index.php @@ -0,0 +1,64 @@ +. +* +*/ + + +// Init owncloud +require_once('../lib/base.php'); +oc_require( 'template.php' ); + +// Check if we are a user +if( !OC_USER::isLoggedIn()){ + header( "Location: ".OC_HELPER::linkTo( "index.php" )); + exit(); +} + +// Load the files we need +OC_UTIL::addStyle( "files", "files" ); +OC_UTIL::addScript( "files", "files" ); + +// Load the files +$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : ''; + +$files = array(); +foreach( OC_FILES::getdirectorycontent( $dir ) as $i ){ + $i["date"] = date( $CONFIG_DATEFORMAT, $i["mtime"] ); + $files[] = $i; +} + +// Make breadcrumb +$breadcrumb = array(); +$pathtohere = "/"; +foreach( explode( "/", $dir ) as $i ){ + if( $i != "" ){ + $pathtohere .= "$i/"; + $breadcrumb[] = array( "dir" => $pathtohere, "name" => $i ); + } +} + +// return template +$tmpl = new OC_TEMPLATE( "files", "index", "user" ); +$tmpl->assign( "files", $files ); +$tmpl->assign( "breadcrumb", $breadcrumb ); +$tmpl->printPage(); + +?> diff --git a/skeleton/js/app.js b/skeleton/js/app.js new file mode 100644 index 00000000000..5d5b668eeb5 --- /dev/null +++ b/skeleton/js/app.js @@ -0,0 +1,3 @@ +// Include this file whenever you need it. A simple +// "OC_UTIL::addScript( "skeleton", "app" )" will do this. +// Put your jquery-Stuff here diff --git a/skeleton/templates/admin.php b/skeleton/templates/admin.php new file mode 100644 index 00000000000..63fcd5cd39f --- /dev/null +++ b/skeleton/templates/admin.php @@ -0,0 +1,8 @@ + +

Admin

diff --git a/skeleton/templates/index.php b/skeleton/templates/index.php new file mode 100644 index 00000000000..f8d8440817f --- /dev/null +++ b/skeleton/templates/index.php @@ -0,0 +1,12 @@ + +

Skeleton

+ + +

+ + + -- 2.39.5