BYPASS SHELL BY ./RAZORGANZ
Server: nginx/1.20.1
System: Linux iZdzfnv9mwfppeZ 5.10.134-19.2.al8.x86_64 #1 SMP Wed Oct 29 22:47:09 CST 2025 x86_64
User: apache (48)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins.bak/uncanny-learndash-toolkit/src/templates/admin-modules.php
<?php
namespace uncanny_learndash_toolkit;

/**
 * A variable with some data, for now it has:
 * - has_toolkit_pro:    Boolean to determinate if the user has the Pro version installed.
 *
 * @var Array
 */
$config = [
	'has_toolkit_pro' => ( defined( 'UNCANNY_TOOLKIT_PRO_VERSION' ) ) ? true : false,
	'get_toolkit_pro' => 'https://www.uncannyowl.com/downloads/uncanny-learndash-toolkit-pro/',
	'pro_name'        => __( 'Uncanny Toolkit Pro for LearnDash', 'uncanny-learndash-toolkit' ),
];

/**
 * Array that defines all the Toolkit Free and Pro modules
 * Each element will have:
 * - title:                The title of the module
 * - description:            The description of the module
 * - keywords:                A list of words separated by commas to use
 *                            when using the search algorithm
 * - is_active:            Boolean to determinate if the module is active
 * - version:                Boolean to determinate if this module is pro-only
 * - categories:            An array with the module categories
 * - dependencies:            An array with the dependencies of this module
 * - documentation:        The URL where users will be sent when they press on "Get more info"
 * - settings_id:            The ID of the modal box that loads the fields
 *
 *
 * Don't define these elements, we're going to define them later.
 * - can_use:                Boolean to define if the user can use or not this module.
 * - cant_use_notice:        The message the user will see if can't use the module.
 * - missing_dependencies:    An array with all the mising dependencies for this module.
 *
 * @var Array
 */

$modules = AdminMenu::$modules;

/**
 * Sort alphabetically
 */

$add_on_titles = array();

foreach ( $modules as $key => $row ) {
	$add_on_titles[ $key ] = $row['title'];
}

array_multisort( $add_on_titles, SORT_ASC, $modules );

/**
 * If Pro is disabled then push Pro modules to the bottom
 */

// Check if it doesn't have the pro version
if ( ! defined( 'UNCANNY_TOOLKIT_PRO_VERSION' ) ) {
	// Create arrays to separate free and pro modules
	$free_modules = [];
	$pro_modules  = [];

	// Iterate each module
	foreach ( $modules as $module_key => $module ) {
		// Check if it's a pro module
		if ( isset( $module['is_pro'] ) && $module['is_pro'] ) {
			// Add to the pro array
			$pro_modules[ $module_key ] = $module;
		} else {
			// Add to the free array
			$free_modules[ $module_key ] = $module;
		}
	}

	// Create array, inserting all the free modules first
	$modules = array_merge( $free_modules, $pro_modules );
}

/**
 * Determinate if each module can be used
 * we're going to check if the user has pro enabled and if it has the required dependencies
 */

?>

<script>
	<?php
	$js_modules = [];

	foreach ( $modules as $module ) {
		$js_modules[] = [
			'id'          => $module['id'],
			'title'       => $module['title'],
			'description' => $module['description'],
		];
	}
	?>
	var ultModules = <?php echo json_encode( $js_modules ); ?>;
</script>

<div class="container">

	<div class="ult">

		<div class="ult-directory">

			<?php do_action( 'ult_before_directory_actions', $modules ); ?>

			<div class="ult-directory-actions">

				<div class="ult-directory-filters">
					<div class="ult-directory-filter ult-directory-filter--version">
						<div class="ult-form-element">
							<div class="ult-form-element__field">
								<select name="version" data-name="version" class="ult-form-element__select">
									<option value="">
										<?php _e( 'All versions', 'uncanny-learndash-toolkit' ) ?>
									</option>
									<option value="free">
										<?php _e( 'Free only', 'uncanny-learndash-toolkit' ) ?>
									</option>
									<option value="pro">
										<?php _e( 'Pro only', 'uncanny-learndash-toolkit' ) ?>
									</option>
								</select>
							</div>
						</div>
					</div>
					<div class="ult-directory-filter ult-directory-filter--categories">
						<div class="ult-form-element">
							<div class="ult-form-element__field">
								<select name="category" data-name="category" class="ult-form-element__select">
									<option value="">
										<?php _e( 'All categories', 'uncanny-learndash-toolkit' ) ?>
									</option>
									<option value="learndash">
										<?php _e( 'LearnDash', 'uncanny-learndash-toolkit' ) ?>
									</option>
									<option value="wordpress">
										<?php _e( 'General WordPress', 'uncanny-learndash-toolkit' ) ?>
									</option>
								</select>
							</div>
						</div>
					</div>
					<div class="ult-directory-filter ult-directory-filter--statuses">
						<div class="ult-form-element">
							<div class="ult-form-element__field">
								<select name="status" data-name="status" class="ult-form-element__select">
									<option value="">
										<?php _e( 'All statuses', 'uncanny-learndash-toolkit' ) ?>
									</option>
									<option value="active">
										<?php _e( 'Active', 'uncanny-learndash-toolkit' ) ?>
									</option>
									<option value="inactive">
										<?php _e( 'Inactive', 'uncanny-learndash-toolkit' ) ?>
									</option>
								</select>
							</div>
						</div>
					</div>
				</div>

				<div class="ult-directory-search">
					<div class="ult-form-element">
						<div class="ult-form-element__field">
							<input type="text" id="ult-directory-search-input"
								   class="ult-directory-search-input ult-form-element__text"
								   placeholder="<?php _e( 'Search modules by title, description or keywords', 'uncanny-learndash-toolkit' ) ?>">
						</div>
					</div>
				</div>

				<div class="ult-directory-layout">
					<div id="ult-directory-layout-toggle">
						<div class="ult-directory-layout-item" data-view="grid">
							<span class="ult-icon ult-icon--th"></span>
						</div>
						<div class="ult-directory-layout-item" data-view="table">
							<span class="ult-icon ult-icon--th-list"></span>
						</div>
					</div>
				</div>

			</div>

			<?php do_action( 'ult_before_directory_modules', $modules ); ?>

			<div class="ult-directory-modules">

				<?php
				foreach ( $modules as $module ) {

					$css_classes = [];

					if ( ! isset( $module['can_use'] ) || ! $module['can_use'] ) {
						$css_classes[] = 'ult-directory-module--cant-use';
					}

					if ( isset( $module['version'] ) && $module['version'] ) {
						$css_classes[] = 'ult-directory-module--is-pro';
					}

					?>

					<div class="ult-directory-module <?php echo implode( ' ', $css_classes ); ?>"
						 data-id="<?php echo isset( $module['id'] ) ? $module['id'] : md5( time() ); ?>"
						 data-version="<?php echo isset( $module['version'] ) ? $module['version'] : 'free'; ?>"
						 data-status="<?php echo isset( $module['is_active'] ) && $module['is_active'] ? 'active' : 'inactive'; ?>"
						 data-category='<?php echo isset( $module['category'] ) ? json_encode( $module['category'] ) : json_encode( array() ); ?>'
					>

						<div class="ult-directory-module-content">
							<?php if ( ! empty( $module['cant_use_notice'] ) ) { ?>

								<div class="ult-directory-module-notice">
									<div class="ult-directory-module-notice__icon">
										<span class="ult-icon ult-icon--lock-alt"></span>
									</div>
									<div class="ult-directory-module-notice__text">
										<?php echo $module['cant_use_notice']; ?>
									</div>
								</div>

							<?php } ?>

							<div class="ult-directory-module-header">
								<div class="ult-directory-module-header-left">
									<div class="ult-directory-module__title">
										<?php echo $module['title']; ?>
									</div>

									<?php if ( isset( $module['version'] ) && 'pro' === $module['version'] ) { ?>

										<?php

										// Get the link
										// Check if the module ID is defined
										if ( ! empty( $module['utm_id'] ) ) {
											$get_toolkit_pro_link = Config::utm_parameters( $config['get_toolkit_pro'], 'modules', 'pro_badge_on_title-' . $module['utm_id'] );
										} else {
											$get_toolkit_pro_link = Config::utm_parameters( $config['get_toolkit_pro'], 'modules', 'pro_badge_on_title' );
										}

										?>

										<a href="<?php echo $get_toolkit_pro_link; ?>" target="_blank"
										   class="ult-directory-module__pro-label">
											<?php _e( 'Pro', 'uncanny-learndash-toolkit' ); ?>
										</a>

									<?php } ?>
								</div>

								<?php if ( isset( $module['can_use'] ) && $module['can_use'] ) { ?>

									<div class="ult-directory-module__status">

										<div class="ult-form-element">
											<div
												class="ult-form-checkbox ult-form-checkbox--toggle ult-form-checkbox--toggle-gutenberg">
												<label class="ult-form-checkbox__container">
													<input type="checkbox"
														   class="ult-directory-module__status-toggle ult-checkbox--hidden ult-checkbox--primary"
														   value="<?php echo $module['class_name']; ?>"
														<?php echo $module['is_active'] ? 'checked="checked"' : ''; ?>
													/>
													<div class="ult-checkbox--show"></div>
												</label>
											</div>
										</div>
									</div>

								<?php } ?>
							</div>

							<div class="ult-directory-module__description">
								<?php echo $module['description']; ?>
							</div>

							<div class="ult-directory-module-actions">

								<?php if ( isset( $module['can_use'] ) && $module['can_use'] ) { ?>

									<?php if ( false !== $module['has_settings'] ) { ?>

										<div
											class="ult-directory-module-settings ult-directory-module-settings--modal ult-directory-module__btn ult-btn ult-btn--primary"
											data-settings="<?php echo $module['settings_id']; ?>">
											<?php _e( 'Settings', 'uncanny-learndash-toolkit' ); ?>
										</div>

									<?php } ?>

								<?php }

								// Check if it has a KB article
								if ( ! empty( $module['kb_link'] ) ) {

									// Get the link
									// Check if the module ID is defined
									if ( ! empty( $module['utm_id'] ) ) {
										$module_kb_link = Config::utm_parameters( $module['kb_link'], 'modules', 'learn_more-' . $module['utm_id'] );
									} else {
										$module_kb_link = Config::utm_parameters( $module['kb_link'], 'modules', 'learn_more' );
									}

									// Add the link
									?>

									<a href="<?php echo $module_kb_link; ?>" target="_blank"
									   class="ult-directory-module-settings ult-directory-module-settings--kb-link ult-directory-module__btn ult-btn ult-btn--secondary">
										<?php _e( 'Learn More', 'uncanny-learndash-toolkit' ); ?>
									</a>

								<?php } ?>

							</div>
						</div>

					</div>

				<?php } ?>

			</div>

			<?php do_action( 'ult_after_directory_modules', $modules ); ?>

		</div>

	</div>