68 lines
No EOL
1.7 KiB
PHP
68 lines
No EOL
1.7 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Captcha providers handler class.
|
|
*
|
|
* @author Time.ly Network Inc.
|
|
* @since 2.2
|
|
*
|
|
* @package AI1EC
|
|
* @subpackage AI1EC.Captcha
|
|
*/
|
|
class Ai1ec_Captcha_Providers extends Ai1ec_Base {
|
|
|
|
/**
|
|
* List of available captcha providers.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $_providers = null;
|
|
|
|
/**
|
|
* Returns list of available providers.
|
|
*
|
|
* @return array List of providers.
|
|
*/
|
|
public function get_providers() {
|
|
if ( null !== $this->_providers ) {
|
|
return $this->_providers;
|
|
}
|
|
$built_in = array(
|
|
'Ai1ec_Captcha_Recaptcha_Provider',
|
|
'Ai1ec_Captcha_Nocaptcha_Provider',
|
|
);
|
|
$all_providers = apply_filters( 'ai1ec_captcha_providers', $built_in );
|
|
if ( empty( $all_providers ) ) {
|
|
return array();
|
|
}
|
|
$providers = array();
|
|
foreach ( $all_providers as $provider_class ) {
|
|
$provider = new $provider_class( $this->_registry );
|
|
if ( ! $provider instanceof Ai1ec_Captcha_Provider ) {
|
|
continue;
|
|
}
|
|
$providers[] = $provider;
|
|
}
|
|
|
|
return $providers;
|
|
}
|
|
|
|
/**
|
|
* Returns providers settings.
|
|
*
|
|
* @return array Providers settings.
|
|
*/
|
|
public function get_providers_as_settings() {
|
|
$all_providers = $this->get_providers();
|
|
$settings = array();
|
|
foreach ( $all_providers as $provider ) {
|
|
$settings[] = array(
|
|
'text' => $provider->get_name(),
|
|
'value' => get_class( $provider ),
|
|
'settings' => $provider->get_settings(),
|
|
);
|
|
}
|
|
|
|
return $settings;
|
|
}
|
|
} |