ea-Geiercode
[ class tree: ea-Geier ] [ index: ea-Geier ] [ all elements ]

Source for file index.inc.php

Documentation is available at index.inc.php

  1. <?php
  2. /**
  3.  * state machine for main file
  4.  *
  5.  * LICENSE:
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.     See the
  13.  * GNU General Public License for more details.
  14.  * You should have received a copy of the GNU General Public License along
  15.  * with this program; if not, write to the Free Software Foundation, Inc.,
  16.  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  17.  *
  18.  * @package       ea-Geier
  19.  * @subpackage code
  20.  * @author       m2mtech <tech@m2m.at>
  21.  * @copyright  2007 m2m server software gmbh
  22.  * @license       http://www.gnu.org/licenses/gpl.html GNU General Public License Version 2
  23.  * @version       $Id: index.inc.php 150 2007-09-09 10:22:44Z m2mtech $
  24.  * @link       http://www.ea-geier.at/
  25.  */
  26.  
  27. /**
  28.  * database wrapper
  29.  */
  30. require_once('code/base/db.class.php');
  31.  
  32. /**
  33.  * input wrapper
  34.  */
  35. require_once('code/base/input.class.php');
  36.  
  37. /**
  38.  * main state machine
  39.  *
  40.  * @param    array    configuration data
  41.  * @return    array    output data
  42.  */
  43. function eaStateMachine(&$conf{
  44.  
  45.     // installation support
  46.     if (isset($conf['notInstalled']&& $conf['notInstalled']{
  47.         require_once('code/base/install.inc.php');
  48.         eaInstall($conf);
  49.     }
  50.  
  51.     // connect to db
  52.     $db new eaDB($conf);
  53.     if ($db->error()) die('database problem');
  54.  
  55.     // input data
  56.     $in new eaInput();
  57.  
  58.     $vars array('g:abc:state''p:txt:pass''p:mail:mail');
  59.  
  60.     $in->check($vars);
  61.     
  62.     $state '';
  63.     if ($dummy $in->get('state')) $state $dummy;
  64.     if ($dummy $in->post('state')) $state $dummy;    
  65.  
  66.     $user $db->checkLogin($in);
  67.     
  68.     // check language
  69.     $lang $in->getGet('lang-''abc');
  70.     if (!$lang && isset($_SESSION['language'])) $lang $_SESSION['language'];
  71.     if ($lang$_SESSION['language'$lang;
  72.     if (!$lang && $user && isset($conf['abcLanguage'])) 
  73.         $lang $conf['abcLanguage'];
  74.     $in->language $lang;
  75.     
  76.     // update support
  77.     if (isset($user['mail']&& ($user['mail'== eaSYSADMIN)) 
  78.         if (!isset($conf['txtVersion']|| ($conf['txtVersion'!= eaVERSION)) {
  79.             require_once('code/base/install.inc.php');
  80.             eaUpdate($db);        
  81.         }
  82.     
  83.     if ($user$db->getClients($in);
  84.  
  85.     switch ($state{
  86.         // cashbook
  87.         case 'cashbook':
  88.             if (!$user$state 'login'break}
  89.             require_once('code/cashbook.inc.php');
  90.             if (!genOptCashBook($db$in)) {
  91.                 if (!genOptCashBookItem($db$in)) $state 'main'break}
  92.                 $state 'cashbookitem';
  93.             }
  94.             break;
  95.         case 'cashbookitem':
  96.             if (!$user$state 'login'break}
  97.             require_once('code/cashbook.inc.php');
  98.             if (!genOptCashBookItem($db$in)) $state 'main'break}
  99.             if (saveCashBookItem($db$in)) $in->options['itemsaved'true;
  100.             break;
  101.         case 'cashbookprint'case 'cashbookcsv':
  102.             if (!$userexit;
  103.             require_once('code/cashbook.inc.php');
  104.             if (!genOptCashBookPrint($db$in)) exit;
  105.             break;
  106.         case 'cashbookitemprint'case 'cashbookitemcsv':
  107.             if (!$userexit;
  108.             require_once('code/cashbook.inc.php');
  109.             if (!genOptCashBookItem($db$in)) exit;
  110.             break;
  111.  
  112.         // assets book
  113.         case 'assets':
  114.             if (!$user$state 'login'break}
  115.             require_once('code/assets.inc.php');
  116.             if (!genOptAssets($db$in)) {
  117.                 if (!genOptAssetsItem($db$in)) $state 'main'break}
  118.                 $state 'assetsitem';
  119.             }
  120.             break;
  121.         case 'assetsprint'case 'assetscsv':
  122.             if (!$userexit;
  123.             require_once('code/assets.inc.php');
  124.             if (!genOptAssetsPrint($db$in)) exit;
  125.             break;
  126.         case 'assetsitem':
  127.             if (!$user$state 'login'break}
  128.             require_once('code/assets.inc.php');
  129.             if (!genOptAssetsItem($db$in)) $state 'main'break}
  130.             if (saveAssetsItem($db$in)) $in->options['itemsaved'true;
  131.             break;
  132.         case 'assetsitemprint'case 'assetsitemcsv':
  133.             if (!$userexit;
  134.             require_once('code/assets.inc.php');
  135.             if (!genOptAssetsItem($db$in)) exit;
  136.             break;
  137.             
  138.         // purchase book
  139.         case 'purchasebook':
  140.             if (!$user$state 'login'break}
  141.             require_once('code/purchasebook.inc.php');
  142.             if (!genOptPurchaseBook($db$in)) {
  143.                 if (!genOptPurchaseBookItem($db$in)) $state 'main'break}
  144.                 $state 'purchasebookitem';
  145.             }
  146.             break;
  147.         case 'purchasebookprint'case 'purchasebookcsv':
  148.             if (!$userexit;
  149.             require_once('code/purchasebook.inc.php');
  150.             if (!genOptPurchaseBookPrint($db$in)) exit;
  151.             break;
  152.         case 'purchasebookitem'
  153.             if (!$user$state 'login'break}
  154.             require_once('code/purchasebook.inc.php');
  155.             if (!genOptPurchaseBookItem($db$in)) $state 'main'break}
  156.             if (savePurchaseBookItem($db$in)) $in->options['itemsaved'true;
  157.             break;
  158.         case 'purchasebookitemprint'case 'purchasebookitemcsv':
  159.             if (!$userexit;
  160.             require_once('code/purchasebook.inc.php');
  161.             if (!genOptPurchaseBookItem($db$in)) exit;
  162.             break;
  163.  
  164.         // travelling expenses
  165.         case 'travel':
  166.             if (!$user$state 'login'break}
  167.             require_once('code/travel.inc.php');
  168.             if (!genOptTravel($db$in)) {
  169.                 if (!genOptTravelItem($db$in)) $state 'main'break}
  170.                 $state 'travelitem';
  171.             }
  172.             break;
  173.         case 'travelprint'case 'travelcsv':
  174.             if (!$userexit;
  175.             require_once('code/travel.inc.php');
  176.             if (!genOptTravelPrint($db$in)) exit;
  177.             break;
  178.         case 'travelitem'
  179.             if (!$user$state 'login'break}
  180.             require_once('code/travel.inc.php');
  181.             if (!genOptTravelItem($db$in)) $state 'main'break}
  182.             if (saveTravelItem($db$in)) $in->options['itemsaved'true;
  183.             break;
  184.         case 'travelitemprint'case 'travelitemcsv':
  185.             if (!$userexit;
  186.             require_once('code/travel.inc.php');
  187.             if (!genOptTravelItem($db$in)) exit;
  188.             break;
  189.  
  190.         // accounting balance
  191.         case 'balance':
  192.             if (!$user$state 'login'break}
  193.             require_once('code/balance.inc.php');
  194.             if (!genOptBalance($db$in)) $state 'main'break}
  195.             if (saveBalance($db$in)) $in->options['itemsaved'true;
  196.             break;
  197.         case 'balanceprint'case 'balancecsv':
  198.             if (!$userexit;
  199.             require_once('code/balance.inc.php');
  200.             if (!genOptBalance($db$in)) exit;
  201.             break;
  202.  
  203.         // base system
  204.         case 'login':
  205.             if (!$user{  // not logged in;
  206.                 if (!isset($_POST['buttonLogin'])) break;
  207.                 $in->error['mailLogin'true;
  208.                 $in->error['passLogin'true;
  209.                 break;
  210.             }
  211.             require_once('code/main.inc.php');
  212.             genOptMain($db$in);
  213.             $state 'main';
  214.             break;
  215.         case 'logout':
  216.             $db->logout();
  217.             $state 'login';
  218.             break;
  219.         case 'newuser':
  220.             require_once('code/base/newuser.inc.php');
  221.             if (saveNewUser($db$in)) $state 'usercreated';            
  222.             break;
  223.         case 'sendpw':
  224.             require_once('code/base/sendpw.inc.php');
  225.             if (sendPW($db$in)) $state 'pwsent';            
  226.             break;
  227.             
  228.         // configuration
  229.         case 'configuration'case 'userconfig':
  230.             if (!$user$state 'login'break}
  231.             require_once('code/base/config.inc.php');
  232.             genOptConfig($db$in$state);
  233.             if (saveUserConfig($db$in)) $in->options['usersaved'true;
  234.             $state 'config';        
  235.             break;            
  236.         case 'sysconfig':
  237.             if (!$user$state 'login'break}
  238.             require_once('code/base/config.inc.php');
  239.             genOptConfig($db$in$state);
  240.             if (saveSysConfig($db$in)) $in->options['syssaved'true;
  241.             $state 'config';        
  242.             break;            
  243.         case 'clientconfig':
  244.             if (!$user$state 'login'break}
  245.             require_once('code/base/config.inc.php');
  246.             genOptConfig($db$in$state);
  247.             if (saveClientConfig($db$in)) $in->options['clientsaved'true;
  248.             if (saveNewClient($db$in)) $in->options['newclientsaved'true;
  249.             if (saveNewClientUser($db$in)) $in->options['newclientusersaved'true;
  250.             if (saveDelClientUser($db$in)) $in->options['delclientusersaved'true;
  251.             $state 'config';        
  252.             break;        
  253.             
  254.         default:
  255.             if (!$user$state 'login';
  256.             else {
  257.                 require_once('code/main.inc.php');
  258.                 genOptMain($db$in);
  259.                 $state 'main';
  260.             }
  261.     }
  262.     $in->get['state'$state;
  263.     return $in;
  264. }
  265.  
  266. ?>

Documentation generated on Sun, 09 Sep 2007 17:08:51 +0200 by phpDocumentor 1.3.1