]> source.dussan.org Git - nextcloud-server.git/commitdiff
A sample app, at the moment far from showing everything possible
authorJakob Sack <kde@jakobsack.de>
Thu, 3 Mar 2011 22:09:36 +0000 (23:09 +0100)
committerJakob Sack <kde@jakobsack.de>
Thu, 3 Mar 2011 22:09:36 +0000 (23:09 +0100)
skeleton/admin.php [new file with mode: 0644]
skeleton/appinfo/app.sample.php [new file with mode: 0644]
skeleton/css/skeleton.css [new file with mode: 0644]
skeleton/css/special.css [new file with mode: 0644]
skeleton/img/put_images_here.txt [new file with mode: 0644]
skeleton/index.php [new file with mode: 0644]
skeleton/js/app.js [new file with mode: 0644]
skeleton/templates/admin.php [new file with mode: 0644]
skeleton/templates/index.php [new file with mode: 0644]

diff --git a/skeleton/admin.php b/skeleton/admin.php
new file mode 100644 (file)
index 0000000..f237e84
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+
+/**
+* ownCloud - Sample application
+*
+* @author Jakob Sack
+* @copyright 2011 Jakob Sack kde@jakobsack.de
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+// 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 (file)
index 0000000..12db715
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+/*
+ * This file is required. It makes owncloud aware of the app.
+ */
+
+// Hello, we are here
+OC_APP::register( array( "id" => "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 (file)
index 0000000..aa68a8b
--- /dev/null
@@ -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 (file)
index 0000000..8fd7591
--- /dev/null
@@ -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 (file)
index 0000000..8d1c8b6
--- /dev/null
@@ -0,0 +1 @@
diff --git a/skeleton/index.php b/skeleton/index.php
new file mode 100644 (file)
index 0000000..25a9f02
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+
+/**
+* ownCloud - ajax frontend
+*
+* @author Robin Appelman
+* @copyright 2010 Robin Appelman icewind1991@gmail.com
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+
+// 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 (file)
index 0000000..5d5b668
--- /dev/null
@@ -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 (file)
index 0000000..63fcd5c
--- /dev/null
@@ -0,0 +1,8 @@
+<?php
+/*
+ * Template for files admin page
+ *
+ * See index.php for details
+ */
+?>
+<h1>Admin</h1>
diff --git a/skeleton/templates/index.php b/skeleton/templates/index.php
new file mode 100644 (file)
index 0000000..f8d8440
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+/*
+ * Template for files
+ */
+?>
+<h1>Skeleton</h1>
+
+<? foreach( $_["array"] as $item ){ ?>
+       <p><? echo $item ?></p>
+<? } ?>
+
+<? echo $_["anothervar"] ?>