✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ premium290.web-hosting.com ​🇻​♯➤ 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2025

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 63.250.38.37 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.217.36
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /home/tdhomesa/public_html/wp-content/plugins/forminator/admin/pages//integrations-page.php
<?php
/**
 * Forminator Integrations Page
 *
 * @package Forminator
 */

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

/**
 * Class Forminator_Integrations_Page
 *
 * @since 1.1
 */
class Forminator_Integrations_Page extends Forminator_Admin_Page {

	/**
	 * Addon list as array
	 *
	 * @var array
	 */
	public $addons_list = array();

	/**
	 * Connected addon list
	 *
	 * @var array
	 */
	public $addons_list_grouped_by_connected = array();

	/**
	 * Nonce
	 *
	 * @var string
	 */
	public $addon_nonce = '';

	/**
	 * Addon page
	 *
	 * @var array
	 */
	private $addon_page = array();

	/**
	 * Page action
	 *
	 * @var string
	 */
	public static $addon_nonce_page_action = 'forminator_addon_nonce_page';

	/**
	 * Executed Action before render the page
	 *
	 * @since 1.1
	 * @since 1.2 add extra section for addon
	 */
	public function before_render() {
		// cleanup addons on integrations page.
		Forminator_Integration_Loader::get_instance()->cleanup_activated_addons();

		$this->addons_list                      = forminator_get_registered_addons_list();
		$this->addons_list_grouped_by_connected = forminator_get_registered_addons_grouped_by_connected();

		Forminator_Integration_Admin_Ajax::get_instance()->generate_nonce();
		$this->addon_nonce = Forminator_Integration_Admin_Ajax::get_instance()->get_nonce();
		add_filter( 'forminator_data', array( $this, 'add_addons_js_data' ) );

		$this->validate_addon_page();
	}

	/**
	 * Add js data
	 *
	 * @param mixed $data Addon data to add.
	 * @return mixed
	 */
	public function add_addons_js_data( $data ) {
		if ( Forminator::is_addons_feature_enabled() ) {
			$data['addons']      = forminator_get_registered_addons_list();
			$data['addon_nonce'] = $this->addon_nonce;
		}

		return $data;
	}

	/**
	 * Render custom output of addon when validated
	 *
	 * @since 1.2
	 */
	protected function render_page_content() {
		if ( ! empty( $this->addon_page ) ) {
			// html output here are expected.
			echo $this->addon_page['output'];// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		} else {
			parent::render_page_content();
		}
	}

	/**
	 * Render Addon title as header on addon page
	 *
	 * @since 1.2
	 */
	public function render_header() {
		if ( ! empty( $this->addon_page ) ) {
			?>
			<header class="sui-header">
				<h1 class="sui-header-title"><?php echo esc_html( $this->addon_page['title'] ); ?></h1>
				<div class="sui-actions-right">
					<?php if ( forminator_is_show_documentation_link() ) : ?>
						<a href="https://wpmudev.com/docs/wpmu-dev-plugins/forminator/#integrations" target="_blank" class="sui-button sui-button-ghost">
							<i class="sui-icon-academy"></i> <?php esc_html_e( 'View Documentation', 'forminator' ); ?>
						</a>
					<?php endif; ?>
				</div>
			</header>
			<?php
		} else {
			parent::render_header();
		}
	}

	/**
	 * Nonce generation for addon page
	 *
	 * @since 1.2
	 * @return string
	 */
	public static function get_addon_page_nonce() {
		return wp_create_nonce( self::$addon_nonce_page_action );
	}

	/**
	 * Validate required query arg for displaying addon page
	 *
	 * @since 1.2
	 *
	 * @return bool
	 */
	public function validate_addon_page() {
		$nonce = Forminator_Core::sanitize_text_field( 'nonce' );
		if ( $nonce && ! wp_verify_nonce( $nonce, self::$addon_nonce_page_action ) ) {
			return false;
		}
		$query_args = $_GET;
		// main component.
		/**
		 * - slug : addon slug (eg. trello)
		 * - nonce: nonce validation
		 * - section: callback
		 */
		if ( isset( $query_args['nonce'] ) ) {
			unset( $query_args['nonce'] );
		}
		if ( ! isset( $query_args['slug'] ) ) {
			return false;
		}
		$slug = $query_args['slug'];
		unset( $query_args['slug'] );
		$addon = forminator_get_addon( $slug );
		if ( ! $addon ) {
			return false;
		}

		if ( ! isset( $query_args['section'] ) ) {
			return false;
		}
		$section = $query_args['section'];
		unset( $query_args['section'] );
		$callback = $addon->get_integration_section_callback( $section );// returned callback must be an array.

		if ( ! is_array( $callback ) ) {
			return false;
		}

		if ( ! is_callable( $callback ) ) {
			return false;
		}

		forminator_maybe_attach_addon_hook( $addon );

		$output = call_user_func( $callback, $query_args );

		$this->addon_page = array(
			'title'  => $addon->get_title(),
			'output' => $output,
		);

		return true;
	}
}


Current_dir [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
20 Aug 2025 10.03 AM
tdhomesa / tdhomesa
0755
addons-page.php
1.65 KB
3 Feb 2025 5.11 PM
tdhomesa / tdhomesa
0644
dashboard-page.php
1.162 KB
2 Sep 2024 3.32 PM
tdhomesa / tdhomesa
0644
entries-page.php
7.853 KB
2 Sep 2024 3.32 PM
tdhomesa / tdhomesa
0644
integrations-page.php
4.262 KB
2 Sep 2024 3.32 PM
tdhomesa / tdhomesa
0644
reports-page.php
7.93 KB
7 May 2025 4.49 PM
tdhomesa / tdhomesa
0644
settings-page.php
8.032 KB
18 Aug 2025 3.48 PM
tdhomesa / tdhomesa
0644
templates-page.php
2.074 KB
2 Sep 2024 3.32 PM
tdhomesa / tdhomesa
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF