示例#1
0
 public static function start($settings = array())
 {
     if (!isset(self::$instance) || self::$instance === null) {
         self::$instance = new self($settings);
     }
     return self::$instance;
 }
示例#2
0
 private function __construct()
 {
     // General utility functions
     require_once CLEF_PATH . 'includes/lib/utils.inc';
     require_once CLEF_PATH . 'includes/class.clef-utils.php';
     require_once CLEF_PATH . 'includes/class.clef-translation.php';
     require_once CLEF_PATH . 'includes/class.clef-session.php';
     // Site options
     require_once CLEF_PATH . 'includes/class.clef-internal-settings.php';
     $settings = ClefInternalSettings::start();
     global $clef_ajax;
     require_once CLEF_PATH . 'includes/class.clef-ajax.php';
     $clef_ajax = ClefAjax::start($settings);
     // Onboarding settings
     require_once CLEF_PATH . 'includes/class.clef-onboarding.php';
     $onboarding = ClefOnboarding::start($settings);
     require_once CLEF_PATH . 'includes/class.clef-user-settings.php';
     $user_settings = ClefUserSettings::start($settings);
     // Clef login functions
     require_once CLEF_PATH . 'includes/class.clef-login.php';
     $login = ClefLogin::start($settings);
     // Clef logout hook functions
     require_once CLEF_PATH . 'includes/class.clef-logout.php';
     $logout = ClefLogout::start($settings);
     // Badge display options
     require_once CLEF_PATH . 'includes/class.clef-badge.php';
     $badge = ClefBadge::start($settings, $onboarding);
     $badge->hook_display();
     // Admin functions and hooks
     require_once CLEF_PATH . 'includes/class.clef-admin.php';
     $admin = ClefAdmin::start($settings);
     require_once CLEF_PATH . 'includes/class.clef-network-admin.php';
     $network_admin = ClefNetworkAdmin::start($settings);
     require_once CLEF_PATH . 'includes/pro/class.clef-pro.php';
     $pro = ClefPro::start($settings);
     // Plugin setup hooks
     require_once CLEF_PATH . 'includes/class.clef-setup.php';
     $this->settings = $settings;
     $this->badge = $badge;
     $this->onboarding = $onboarding;
     // Register public hooks
     if ($admin) {
         add_action('clef_render_settings', array($admin, 'general_settings'));
     }
     add_action('clef_plugin_uninstall', array('ClefSetup', 'uninstall_plugin'));
     add_action('clef_plugin_updated', array($this, 'plugin_updated'), 10, 2);
     add_action('wp_enqueue_scripts', array($this, 'load_base_styles'));
     // Run migrations and other hooks upon plugin update
     $old_version = $settings->get('version');
     $current_version = CLEF_VERSION;
     if (!$old_version || $current_version != $old_version) {
         do_action('clef_plugin_updated', $current_version, $old_version);
     }
     if (CLEF_IS_BASE_PLUGIN) {
         do_action('clef_hook_admin_menu');
     }
 }
 public function settings_form()
 {
     $form = ClefSettings::forID(self::FORM_ID, CLEF_OPTIONS_NAME, $this->settings);
     $settings = $form->addSection('clef_settings', __('API Settings', 'wpclef'));
     $settings->addField('app_id', __('Application ID', "wpclef"), Settings_API_Util_Field::TYPE_TEXTFIELD);
     $settings->addField('app_secret', __('Application Secret', "wpclef"), Settings_API_Util_Field::TYPE_TEXTFIELD);
     $settings->addField('register', __('Register with Clef', 'wpclef'), Settings_API_Util_Field::TYPE_CHECKBOX);
     $pw_settings = $form->addSection('clef_password_settings', __('Password Settings', 'wpclef'), '');
     $pw_settings->addField('disable_passwords', __('Disable passwords for Clef users', "wpclef"), Settings_API_Util_Field::TYPE_CHECKBOX);
     $pw_settings->addField('disable_certain_passwords', __('Disable certain passwords', "wpclef"), Settings_API_Util_Field::TYPE_SELECT, "Disabled", array("options" => array_merge(array(""), ClefUtils::$default_roles)));
     $custom_roles = ClefUtils::get_custom_roles();
     if (count($custom_roles) > 0) {
         $pw_settings->custom_roles = $custom_roles;
         foreach ($custom_roles as $role => $role_obj) {
             $pw_settings->addField("disable_passwords_custom_role_{$role}", $role_obj['name'], Settings_API_Util_Field::TYPE_CHECKBOX);
         }
     }
     $pw_settings->addField('force', __('Disable all passwords', "wpclef"), Settings_API_Util_Field::TYPE_CHECKBOX);
     $pw_settings->addField('xml_allowed', __('Allow XML', 'wpclef'), Settings_API_Util_Field::TYPE_CHECKBOX);
     $form_settings = $form->addSection('clef_form_settings', __('Form settings', 'wpclef'), '');
     $form_settings->addField('embed_clef', __('Embed Clef wave in the login form', 'wpclef'), Settings_API_Util_Field::TYPE_CHECKBOX);
     $override_settings = $form->addSection('clef_override_settings', __('Override Settings', 'wpclef'));
     $override_settings->addField('key', __("Override key", "wpclef"), Settings_API_Util_Field::TYPE_TEXTFIELD);
     $support_clef_settings = $form->addSection('support_clef', __('Support Clef', "wpclef"));
     $support_clef_settings->addField('badge', __("Support Clef by automatically adding a link!", "wpclef"), Settings_API_Util_Field::TYPE_SELECT, "disabled", array("options" => array(array(__("Badge", "wpclef"), "badge"), array(__("Link", "wpclef"), "link"), array(__("Disabled", "wpclef"), "disabled"))));
     $invite_users_settings = $form->addSection('invite_users', __('Invite Users', "wpclef"));
     $pro = ClefPro::start();
     $pro->add_settings($form);
     return $form;
 }