ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilContext.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
13 class ilContext
14 {
15  protected static $class_name; // [string]
16  protected static $type; // [int]
17 
18  const CONTEXT_WEB = 1;
19  const CONTEXT_CRON = 2;
20  const CONTEXT_RSS = 3;
21  const CONTEXT_ICAL = 4;
22  const CONTEXT_SOAP = 5;
23  const CONTEXT_WEBDAV = 6;
24  const CONTEXT_RSS_AUTH = 7;
28  const CONTEXT_UNITTEST = 11;
29  const CONTEXT_REST = 12;
30  const CONTEXT_SCORM = 13;
31  const CONTEXT_WAC = 14;
32 
39  public static function init($a_type)
40  {
41  $class_name = self::getClassForType($a_type);
42  if($class_name)
43  {
44  include_once "Services/Context/classes/class.".$class_name.".php";
45  self::$class_name = $class_name;
46  self::$type = $a_type;
47  return true;
48  }
49  return false;
50  }
51 
58  protected function getClassForType($a_type)
59  {
60  switch($a_type)
61  {
62  case self::CONTEXT_WEB:
63  return "ilContextWeb";
64 
65  case self::CONTEXT_CRON:
66  return "ilContextCron";
67 
68  case self::CONTEXT_RSS:
69  return "ilContextRss";
70 
71  case self::CONTEXT_ICAL:
72  return "ilContextIcal";
73 
74  case self::CONTEXT_SOAP:
75  return "ilContextSoap";
76 
77  case self::CONTEXT_WEBDAV:
78  return "ilContextWebdav";
79 
80  case self::CONTEXT_RSS_AUTH:
81  return "ilContextRssAuth";
82 
83  case self::CONTEXT_WEB_ACCESS_CHECK:
84  return "ilContextWebAccessCheck";
85 
86  case self::CONTEXT_SESSION_REMINDER:
87  return "ilContextSessionReminder";
88 
89  case self::CONTEXT_SOAP_WITHOUT_CLIENT:
90  return "ilContextSoapWithoutClient";
91 
92  case self::CONTEXT_UNITTEST:
93  return "ilContextUnitTest";
94 
95  case self::CONTEXT_REST:
96  return 'ilContextRest';
97 
98  case self::CONTEXT_SCORM:
99  return 'ilContextScorm';
100 
101  case self::CONTEXT_WAC:
102  return 'ilContextWAC';
103  }
104  }
105 
112  protected static function callContext($a_method)
113  {
114  if(!self::$class_name)
115  {
116  self::init(self::CONTEXT_WEB);
117  }
118  return call_user_func(array(self::$class_name, $a_method));
119  }
120 
126  public static function supportsRedirects()
127  {
128  global $ilCtrl;
129 
130  // asynchronous calls must never be redirected
131  if($ilCtrl && $ilCtrl->isAsynch())
132  {
133  return false;
134  }
135 
136  return (bool)self::callContext("supportsRedirects");
137  }
138 
144  public static function hasUser()
145  {
146  return (bool)self::callContext("hasUser");
147  }
148 
154  public static function usesHTTP()
155  {
156  return (bool)self::callContext("usesHTTP");
157  }
158 
164  public static function hasHTML()
165  {
166  return (bool)self::callContext("hasHTML");
167  }
168 
174  public static function usesTemplate()
175  {
176  return (bool)self::callContext("usesTemplate");
177  }
178 
184  public static function initClient()
185  {
186  return (bool)self::callContext("initClient");
187  }
188 
194  public static function doAuthentication()
195  {
196  return (bool)self::callContext("doAuthentication");
197  }
198 
204  public static function getType()
205  {
206  return self::$type;
207  }
208 }
209 
210 ?>
static hasUser()
Based on user authentication?
const CONTEXT_WAC
const CONTEXT_RSS
static usesHTTP()
Uses HTTP aka browser.
const CONTEXT_WEBDAV
const CONTEXT_UNITTEST
const CONTEXT_CRON
const CONTEXT_SCORM
const CONTEXT_RSS_AUTH
const CONTEXT_SESSION_REMINDER
global $ilCtrl
Definition: ilias.php:18
getClassForType($a_type)
Get class name for type id.
static usesTemplate()
Uses template engine.
const CONTEXT_REST
static callContext($a_method)
Call current content.
const CONTEXT_WEB_ACCESS_CHECK
static hasHTML()
Has HTML output.
const CONTEXT_ICAL
const CONTEXT_SOAP_WITHOUT_CLIENT
static init($a_type)
Init context by type.
Service context (factory) class.
static $class_name
static initClient()
Init client.
const CONTEXT_WEB
static getType()
Get context type.
const CONTEXT_SOAP
static doAuthentication()
Try authentication.
static supportsRedirects()
Are redirects supported?