| 
<?php
 // CONFIGURATION OBJECT, uncomment/modify what you need:
 // You may load this from any config file, database, or whatever you want.
 
 $config = array(
 /* Path to the repository of site pages */
 'PAGESDIR' => '../repository/',
 
 /* container of REST pages */
 'PAGESCONTAINER' => 'restpages/',
 
 /*
 // optional parameters
 
 // You can uncomment the whole block, each config parameter is set with its own default value
 // or just get the parameters you need outside the comments.
 
 // The container of the pages into the PAGESDIR. Default value is pages/,
 // so the default build directory is ../repository/pages/
 'PAGESCONTAINER' => 'pages/',
 
 // Set to true or 1 if you want an automatic history of changes of pages
 // This parameter will tell the system to keep the history of changes of code repository (.page, .instance, .code, .template, .language)
 // the .lib PHP libraries pages are not include in the history changes because they are not compiled or version tested.
 'HISTORY' => false,
 // If previous parameter is set to true, specify the directory to put the history logs
 'HISTORYDIR' => null,
 // Set to true if you want to use first level cache
 // The first level cache is the compilation of the .code, .template and .language pages for a faster access.
 // It is highly recommended to activade level 1 cache.
 'CACHE1' => false,
 // The directory where to put the level 1 caches.
 'CACHE1DIR' => null,
 // Set to true if you want to use second level cache
 // The second level cache are the HTML pages already build, ready to dispatch to the browser.
 // It is highly recommended to use a second level cache when you have lots of static or semi static pages.
 // Every page may or may not be included in the cache based on individual parameters.
 'CACHE2' => false,
 // The directory where to put the level 2 caches.
 'CACHE2DIR' => null,
 
 // Set to true if you want the system using the shared memory.
 // The shared memory extension must work.
 'SHMLOAD' => false,
 // The size of shared memory to use. It is recomemded to use at least 1Mb of shared memory per page.
 'SHMSIZE' => null,
 // The system wide shared memory ID
 'SHMID' => null,
 
 // If you want to activate skins on the system
 'SKIN' => null,
 // The default version of pages. It is by default 'base' and should never be changed
 'DefaultVersion' => 'base',
 // The default language of the pages. It is english and should never be changed
 'DefaultLanguage' => 'en',
 // The default version of the pages for this site. It is highly recommended to never change 'base' unless you perfectly know what you are doing (advanced configuration)
 'Version' => 'base',
 // The default language of the pages for this site. You may change with your local language
 'Language' => 'en',
 
 // The pain default page of the site. You may change anytime you want a new page as default.
 'mainpage' => 'home',
 // The error page (i.e if URL canot be resolved, this page is invoked)
 'errorpage''error',
 // The error block page (i.e if a block canot be resolved, this blockis invoked)
 'errorblock''errorblock'
 */
 );
 
 // ==== YOU SHOULD NOT TOUCH ANYTHING PAST THIS LINE UNLESS YOU REALLY KNOW WHAT YOU ARE DOING ======
 
 /* @DESCR -- Do not edit
 
 index.php, Xamboo
 Xamboo main wrapper, REST site index
 (c) 2015 Philippe Thomassigny
 
 This file is part of Xamboo
 
 Xamboo is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
 
 Xamboo 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 General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with Xamboo.  If not, see <http://www.gnu.org/licenses/>.
 
 Creation: 2012-03-01
 Changes:
 2015-04-22: Phil, added $config variable and comments on parameters
 
 @End_DESCR */
 
 error_reporting(E_ALL);
 ini_set('display_errors', true);
 
 // implements __autoload
 include_once "../include/__autoload.lib";
 
 // we setup some variables we need
 $URI = $QUERY = $BASE_P = $base = null;
 
 // we create the base object with very basic config parameters
 // Only 1 parameter is absolutly necesary: PAGESDIR.
 include_once 'Base.lib';
 $base = new Base($config);
 \core\WAMessage::setMessagesFile('../messages/message.'.$base->Language.'.xml');
 
 // verify token REST params
 $method = $_SERVER['REQUEST_METHOD'];
 // You can activate an API KEY and a DIGEST for security purpose
 // $key = isset($_GET['api_key'])?$_GET['api_key']:null;
 // $digest = isset($_GET['digest'])?$_GET['digest']:null;
 
 // control of OPTIONS method to answer what we can listen (can be configurable by code modifying this)
 if ($method == 'OPTIONS')
 {
 header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
 return;
 }
 
 /*
 if (!$key && !$digest)
 {
 echo "Welcome to the Xamboo REST-API Framework<br />";
 echo "Please connect to the API with your key and digest<br />";
 return;
 }
 
 // VERIFY YOUR KEY AND DIGEST HERE
 
 if (not a valid key)
 {
 header('HTTP/1.0 500 Internal Server Error');
 print json_encode(array('error' => 401, 'mensaje' => 'Bad API Key'));
 return; // gracefull end
 }
 
 */
 
 $QUERY = '';
 $COMMAND = $_SERVER['REQUEST_URI'];
 if (strpos($COMMAND, '?') !== false)
 {
 $QUERY = substr($COMMAND, strpos($COMMAND, '?'));
 $COMMAND = substr($COMMAND, 0, strpos($COMMAND, '?'));
 }
 else
 {
 $QUERY = '';
 }
 
 if (!$BASE_P)
 $BASE_P = $COMMAND;
 
 // Call the engine with the page
 $engine = new \xamboo\engine(null);
 $text = $engine->run($BASE_P, null, null, null, null, strtoupper($method));
 $base->HTTPResponse->buildHeaders();
 print $text;
 
 ?>
 |