[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.226.200.44: ~ $
<?php
namespace uncanny_learndash_toolkit;

if ( ! defined( 'WPINC' ) ) {
	die;
}

/**
 * Class Sample
 *
 * Sample Uncanny Toolkit for LearnDash class that can be used to build a module.
 * Module: A module on the wp-admin/admin.php?page=uncanny-toolkit page that is part
 * of the Uncanny Toolkit for LearnDash available for free in the WP plugin repo.
 *
 * @see src/boot.php
 *
 * A module is comprised of a title, description, link to the knowledge base article, settings pop-up modal,
 * icon, and on/off switch.
 *
 * Changes that need to be made:
 * @see get_details()
 * 1. Update class name and file name. File name must match class name for auto loader to find and include the file dynamically.
 * @see src/boot.php -> spl_autoload_register( array( __CLASS__, 'auto_loader' ) );
 *    The class name 'should' match the post_slug of it's associated knowledge base article but this is not always possible.
 *  - ex. SampleClass(class name) => sample-class.php(file name) => /knowledge-base/sample-class/(post_slug)
 *  - class name is camel cased
 *  - file name is lower cased with - between
 * 2. Update class's detail knowledge base article link.
 *  - @param $kb_link
 *  - @link https://www.uncannyowl.com/knowledge-base/sample-class
 * 3. Update class's detail title
 *  - @param $class_title
 * 4. Update class's module short description
 *  - @param $class_description
 * 5. Update class's settings
 *  - @param $class_settings
 * 6. Update class's dependencies
 *  - @param $class_dependents_available
 * 7. Update class's icon
 *  - @param $class_icon
 *
 * @package     uncanny_learndash_toolkit
 * @subpackage  uncanny_learndash_toolkit\Sample
 * @since       1.0.0
 * @since       1.3.3 Added more comments and documentation standards
 *
 */
class Sample extends Config implements RequiredFunctions {

	/**
	 * Class constructor
	 *
	 * The construct is only executed when the class is defined as active. If class is in the array retrieved by
	 * get_option( 'uncanny_toolkit_active_classes' )  will create a new class.
	 *
	 * @since 1.0.0
	 */
	public function __construct() {

		/*
		 * Add filters, actions, and/or functions here that need to be executed before plugins are loader.
		 * This is very uncommon. Use run_hooks action in most cases.
		 */

		add_action( 'plugins_loaded', array( __CLASS__, 'plugins_loaded' ) );
	}

	/*
	 * Initialize actions, filters, and/or custom functions
	 *
	 * Most, if not all, functions should be run after plugins have been loaded. This will give access to modify and/or
	 * override functions for any external plugin or theme. We can also check if a plugin or theme exists before
	 * executing any action, filters, and/or extending classes from it.
	 *
	 * @since 1.0.0
	 */
	public static function plugins_loaded() {

		// Check if the needed plugins and/or theme are available to hook into
		if ( true === self::dependants_exist() ) {

			// Add filters, actions, and/or functions

		}
	}

	/**
	 * Detailed description of module
	 *
	 * This information is only loaded in the admin settings page to create a module which includes an on/off switch
	 * and settings modal pop up that populates module options in the WP DB. The details are retrieve by creating a
	 * reflection class(http://php.net/manual/en/class.reflectionclass.php). The class does not need to be initialized to get the details
	 * @see uncanny_learndash_toolkit/AdminMenu::get_class_details()
	 *
	 * @since 1.0.0
	 *
	 * @return array $class_details
	 */
	public static function get_details() {

		/*
		 * Link to class's associated knowledge base article
		 *
		 * @type Null Will NOT show a link on the plugins settings page
		 * @type String Will show a link icon on the user facing module
		 */
		$kb_link = null;
		$kb_link = 'http://www.uncannyowl.com';

		// Title should match the post_title from Knowledge base article
		$class_title = esc_html__( 'Sample Title', 'uncanny-learndash-toolkit' );

		/*
		 * Description should be adapted from the post_content in the knowledge base article. Exclude any technical
		 * documentation including: shortcodes, attributes, use cases, images, and/or steps. (approx. 25-200 characters)
		 */
		$class_description = esc_html__( 'Sample Description B', 'uncanny-learndash-toolkit' );

		/*
		 * Settings define the inputs that are added to the settings modal pop. If no seetings are needed, false can be
		 * passed and a modal and settings icon like will not be added to the module
		 *
		 * @type Array will create an html output of input within a modal pop up
		 * @type Bool false Will exclude a settings link and modal pop-up
		 */
		$class_settings = self::get_class_settings( $class_title );
		$class_settings = false;

		/*
		 * Check if the class is dependant on another plugin and/or theme
		 * @see dependants_exist();
		 *
		 * @type bool true The class does not depend on any external plugins and/or themes
		 * @type function Checks for dependencies
		 */
		$class_dependents_available = true;
		$class_dependents_available = self::dependants_exist();

		/*
		 * An is mandaotry for each module. There are four different types of icons that are supported:
		 * - Any text string with a maximum of four characters
		 * - Native WP dashicon
		 * - Font Awesome icon (font awesome is enqueued by this plugin)
		 * - Image file loaded from assest/media. Image can be of varying complexity so custom styles should be used
		 *   to get proper size and placement.
		 */
		$class_icon  = '<span class="uo_icon_text">[ /]</span>';
		$class_icon  = '<span class="uo_icon_dashicon dashicons dashicons-admin-users"></span>';
		$class_icon  = '<i class="uo_icon_fa fa fa-calendar"></i>';
		$icon_styles = 'width: 40px;  padding-top: 5px; padding-left: 9px;';
		$class_icon  = '<img style="' . $icon_styles . '" src="' . self::get_admin_media( 'gravity-forms-icon.png' ) . '" />';
		$type        = 'free';
		$tags        = 'learndash'; //learndash | general | user-handling

		return array(
			'title'            => $class_title,
			'type'             => $type,
			'tags'             => $tags,
			'kb_link'          => $kb_link,
			'description'      => $class_description,
			'dependants_exist' => $class_dependents_available,
			'settings'         => $class_settings,
			'icon'             => $class_icon,
		);

		return $class_details;

	}

	/*
	 * Checks if the class is dependant on another variable, function, plugin and/or theme
	 *
	 * If the dependency does not exists then the on/off switch on the module is replace with a message.
	 *
	 * @since 1.0.0
	 *
	 * @return boolean || string
	 */
	public static function dependants_exist() {

		/*
		 * When checking for dependencies you should first check if the plugin or theme has a 'loaded hook' like gravity
		 * form below. If they do not offer an action to hook. Look for the first obvious global function or variable.
		 */

		// ex. Checks if LearnDash Plugin exists
		global $learndash_post_types;
		if ( ! isset( $learndash_post_types ) ) {
			return 'Plugin: LearnDash';
		}

		//ex. Checks if gravity forms plugin exists
		if ( ! has_action( 'gform_loaded' ) ) {
			return 'Plugin: Gravity Forms';
		}

		// Return true dependency is available
		return true;
	}


	/**
	 * Create an array that defines the html output of module modal settings inputs
	 *
	 * @since 1.0.0
	 *
	 * @param $class_title
	 *
	 * @return string HTML output
	 */
	public static function get_class_settings( $class_title ) {

		// ex. Get pages to populate a drop down steps 1-5
		// 1. setup arguments - @link https://codex.wordpress.org/Function_Reference/get_pages#Parameters
		$args = array(
			'sort_order'  => 'asc',
			'sort_column' => 'post_title',
			'post_type'   => 'page',
			'post_status' => 'publish',
		);
		// 2. Get pages
		$pages = get_pages( $args );
		// 3. Create empty array to store select element values
		$drop_down = array();
		// 4. The first options elements should have a 0 value if no setting is need
		array_push( $drop_down, array( 'value' => 0, 'text' => '- Select Page -' ) );
		//  5. Push page ids and page titles into array of values
		foreach ( $pages as $page ) {
			array_push( $drop_down, array( 'value' => $page->ID, 'text' => $page->post_title ) );
		}

		/*
		 * Settings are simplified as an array of data that is sent to a html generator script. The settings array
		 * accepts one text element and five input types.
		 */
		$settings = array(

			// Outputs a string contained in a div element
			array(
				'type'       => 'html',
				'class'      => 'uo-additional-information',
				'inner_html' => __( '<div>Some Extra Information for the user</div>', 'uncanny-learndash-toolkit' ),
			),

			// Check Box input type
			array(
				'type'        => 'checkbox',
				'label'       => esc_html__( 'Settings A', 'uncanny-learndash-toolkit' ),
				'option_name' => 'a',
			),

			// Text type
			array(
				'type'        => 'text',
				'label'       => esc_html__( 'Settings B', 'uncanny-learndash-toolkit' ),
				'option_name' => 'b',
			),

			// Radio type
			array(
				'type'       => 'radio',
				'label'      => esc_html__( 'Settings Gender', 'uncanny-learndash-toolkit' ),
				'radio_name' => 'uo_gender',
				'radios'     => array(
					array( 'value' => 'male', 'text' => 'Male' ),
					array( 'value' => 'female', 'text' => 'Female' ),
					array( 'value' => 'other', 'text' => 'Other' ),
				),
			),

			// Select input type
			array(
				'type'        => 'select',
				'label'       => esc_html__( 'Settings Car', 'uncanny-learndash-toolkit' ),
				'select_name' => 'car',
				'options'     => array(
					array( 'value' => 'volvo', 'text' => 'Volvo' ),
					array( 'value' => 'saab', 'text' => 'Saab' ),
					array( 'value' => 'ford', 'text' => 'Ford' ),
				),
			),

			// Select input type with drop down generated by pages example above
			array(
				'type'        => 'select',
				'label'       => esc_html__( 'Login Page', 'uncanny-learndash-toolkit' ),
				'select_name' => 'login_page',
				'options'     => $drop_down,
			),

			// Specialized text input type that loads the native wp color picker
			array(
				'type'        => 'text',
				'label'       => 'Accent Text Color',
				'class'       => 'uo-color-picker',
				'option_name' => 'accent_text_color',
			),

		);

		/*
		 * Build html output string
		 *
		 * @see Config:settings_output()
		 */
		$html = self::settings_output( array(
			'class'   => __CLASS__,
			'title'   => $class_title,
			'options' => $settings,
		) );

		return $html;
	}
}

Filemanager

Name Type Size Permission Actions
frontend-login Folder 0755
breadcrumbs.php File 18.39 KB 0644
disable-emails.php File 2.48 KB 0644
frontend-login-plus.php File 123.57 KB 0644
hide-admin-bar.php File 3.78 KB 0644
learn-dash-resume.php File 15.54 KB 0644
learndash-group-user-profile.php File 3.8 KB 0644
login-logout-menu.php File 11.89 KB 0644
login-redirect.php File 5.08 KB 0644
mark-lessons-complete.php File 12.81 KB 0644
menu-item-visibility.php File 8.39 KB 0644
quiz-completion-redirect.php File 6.23 KB 0644
redirect-not-enrolled.php File 7.23 KB 0644
sample.php File 10.26 KB 0644
show-certificates-shortcode.php File 9.75 KB 0644
show-hide-content.php File 2.34 KB 0644
user-switching.php File 6.97 KB 0644
widget-cert.php File 13.77 KB 0644