/** * Instantiate a Social Network provider * * @since 0.7.3 * * @param string $provider Provider name (ex. facebook, vkontakte, etc.) * @param string $prefix SCP options prefix (default: 'scp-') * @param array $options Options for specific provider * @return SCP_Provider */ public static function create($provider, $prefix, $options) { self::$prefix = $prefix; self::$options = $options; self::$tabs_id = self::tabs_id(); // FIXME: Переписать на проверку провайдера в массиве available_providers() switch ($provider) { case 'facebook': require_once dirname(__FILE__) . '/facebook.php'; return new SCP_Facebook_Provider(); break; case 'vkontakte': require_once dirname(__FILE__) . '/vkontakte.php'; return new SCP_VK_Provider(); break; case 'odnoklassniki': require_once dirname(__FILE__) . '/odnoklassniki.php'; return new SCP_Odnoklassniki_Provider(); break; case 'googleplus': require_once dirname(__FILE__) . '/googleplus.php'; return new SCP_GooglePlus_Provider(); break; case 'twitter': require_once dirname(__FILE__) . '/twitter.php'; return new SCP_Twitter_Provider(); break; case 'pinterest': require_once dirname(__FILE__) . '/pinterest.php'; return new SCP_Pinterest_Provider(); break; default: throw new Exception("Provider {$provider} is not implemented!"); } }