29 if (function_exists(
'imageftbbox')) {
46 strpos(
$name,
'isActiveFor') === 0 ||
47 strpos(
$name,
'setActiveFor') === 0
51 $method_parts = explode(
'_', strtolower(preg_replace(
'/([a-z])([A-Z])/',
'$1_$2',
$name)));
52 $requested_context = strtolower($method_parts[count($method_parts) - 1]);
53 if (!isset($requested_context, self::$context_map)) {
54 throw new BadMethodCallException(
'Method ' .
$name .
' called for a non existing context.');
57 if (
'set' == $method_parts[0]) {
58 $settings->set(
'activate_captcha_anonym_' . $supported_contexts[$requested_context], (
int) $arguments[0]);
61 return self::checkFreetype() && (bool) $settings->get(
'activate_captcha_anonym_' . $supported_contexts[$requested_context],
false);
64 throw new BadMethodCallException(
'Call to an undefined static method ' .
$name .
' in class ' . __CLASS__ .
'.');
71 public static function getPreconditionsMessage()
80 $lng->loadLanguageModule(
'cptch');
81 return "<a target='_blank' href='http://php.net/manual/en/image.installation.php'>" .
$lng->txt(
'cptch_freetype_support_needed') .
"</a>";
89 if (
null !== self::$context_map) {
93 self::$context_map = array();
95 $r =
new ReflectionClass(
new self());
96 $constants =
$r->getConstants();
97 foreach ($constants as
$name => $value) {
98 if (strpos(
$name,
'CONTEXT_') === 0) {
99 self::$context_map[strtolower(substr(
$name, strlen(
'CONTEXT_')))] = $value;
An exception for terminatinating execution or to throw for unit testing.
static getSupportedContexts()
static checkFreetype()
Check whether captcha support is active.
static __callStatic($name, array $arguments=array())
const CONTEXT_REGISTRATION
static getLogger($a_component_id)
Get component logger.