PHP Classes

File: restsite/index.php

Recommend this page to a friend!
  Classes of philippe thomassigny   Xamboo   restsite/index.php   Download  
File: restsite/index.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Xamboo
Content management framework to serve Web sites
Author: By
Last change: patch 3.0.0
Date: 8 years ago
Size: 6,029 bytes
 

Contents

Class file image Download
<?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;

?>