common.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. /*
  3. @nom: common
  4. @auteur: Idleman (http://blog.idleman.fr)
  5. @description: Page incluse dans tous (ou presque) les fichiers du projet, inclus les entitées SQL et récupère/traite les variables de requetes
  6. */
  7. define('LEED_VERSION_NUMBER','1.8.3');
  8. define('LEED_VERSION_NAME','dev');
  9. /* Assure la compatibilité des greffons utilisant ces anciennes constantes.
  10. * Cela doit rester en place jusque Leed v2.0.
  11. */
  12. if (!defined('VERSION_NUMBER')) define('VERSION_NUMBER', LEED_VERSION_NUMBER);
  13. if (!defined('VERSION_NAME')) define('VERSION_NAME', LEED_VERSION_NAME);
  14. /* ---------------------------------------------------------------- */
  15. // Mise en place d'un timezone par default pour utiliser les fonction de date en php
  16. $timezone_default = 'Europe/Paris'; // valeur par défaut :)
  17. date_default_timezone_set($timezone_default);
  18. $timezone_phpini = ini_get('date.timezone');
  19. if (($timezone_phpini!='') && (strcmp($timezone_default, $timezone_phpini))) {
  20. date_default_timezone_set($timezone_phpini);
  21. }
  22. /* ---------------------------------------------------------------- */
  23. $cookiedir = '';
  24. if(dirname($_SERVER['SCRIPT_NAME'])!='/') $cookiedir=dirname($_SERVER["SCRIPT_NAME"]).'/';
  25. session_set_cookie_params(0, $cookiedir);
  26. session_start();
  27. mb_internal_encoding('UTF-8'); // UTF8 pour fonctions mb_*
  28. $start=microtime(true);
  29. require_once('constant.php');
  30. require_once('RainTPL.php');
  31. require_once('i18n.php');
  32. require_once('otphp/lib/otphp.php');
  33. class_exists('Functions') or require_once('Functions.class.php');
  34. class_exists('Plugin') or require_once('Plugin.class.php');
  35. class_exists('MysqlEntity') or require_once('MysqlEntity.class.php');
  36. class_exists('Update') or require_once('Update.class.php');
  37. class_exists('Feed') or require_once('Feed.class.php');
  38. class_exists('Event') or require_once('Event.class.php');
  39. class_exists('User') or require_once('User.class.php');
  40. class_exists('Folder') or require_once('Folder.class.php');
  41. class_exists('Configuration') or require_once('Configuration.class.php');
  42. class_exists('Opml') or require_once('Opml.class.php');
  43. class_exists('Logger') or require_once('Logger.class.php');
  44. //error_reporting(E_ALL);
  45. //Calage de la date
  46. date_default_timezone_set('Europe/Paris');
  47. $configurationManager = new Configuration();
  48. $conf = $configurationManager->getAll();
  49. $theme = $configurationManager->get('theme');
  50. //Instanciation du template
  51. $tpl = new RainTPL();
  52. //Definition des dossiers de template
  53. raintpl::configure("base_url", null );
  54. raintpl::configure("tpl_dir", './templates/'.$theme.'/' );
  55. raintpl::configure("cache_dir", "./cache/tmp/" );
  56. $resultUpdate = Update::ExecutePatch();
  57. $userManager = new User();
  58. $myUser = (isset($_SESSION['currentUser'])?unserialize($_SESSION['currentUser']):false);
  59. if (empty($myUser)) {
  60. /* Pas d'utilisateur dans la session ?
  61. * On tente de récupérer une nouvelle session avec un jeton. */
  62. $myUser = User::existAuthToken();
  63. $_SESSION['currentUser'] = serialize($myUser);
  64. }
  65. $feedManager = new Feed();
  66. $eventManager = new Event();
  67. $folderManager = new Folder();
  68. // Sélection de la langue de l'interface utilisateur
  69. if (!$myUser) {
  70. $languages = Translation::getHttpAcceptLanguages();
  71. } else {
  72. $languages = array($configurationManager->get('language'));
  73. }
  74. i18n_init($languages, dirname(__FILE__).'/templates/'.$theme.'/');
  75. if ($resultUpdate) die (_t('LEED_UPDATE_MESSAGE'));
  76. $view = '';
  77. $tpl->assign('myUser',$myUser);
  78. $tpl->assign('feedManager',$feedManager);
  79. $tpl->assign('eventManager',$eventManager);
  80. $tpl->assign('userManager',$userManager);
  81. $tpl->assign('folderManager',$folderManager);
  82. $tpl->assign('configurationManager',$configurationManager);
  83. $tpl->assign('synchronisationCode',$configurationManager->get('synchronisationCode'));
  84. $articleDisplayAnonymous = $configurationManager->get('articleDisplayAnonymous');
  85. $tpl->assign('articleDisplayAnonymous',$articleDisplayAnonymous);
  86. $isAlwaysDisplayed = ($articleDisplayAnonymous=='1') || ($myUser!=false);
  87. $tpl->assign('isAlwaysDisplayed',$isAlwaysDisplayed);
  88. //Récuperation et sécurisation de toutes les variables POST et GET
  89. $_ = array();
  90. foreach($_POST as $key=>$val){
  91. $_[$key]=Functions::secure($val, 2); // on ne veut pas d'addslashes
  92. }
  93. foreach($_GET as $key=>$val){
  94. $_[$key]=Functions::secure($val, 2); // on ne veut pas d'addslashes
  95. }
  96. $tpl->assign('_',$_);
  97. $tpl->assign('action','');
  98. //Inclusion des plugins
  99. Plugin::includeAll();
  100. // pour inclure aussi les traductions des plugins dans les js
  101. $tpl->assign('i18n_js',$i18n_js);
  102. ?>