HEX
Server: nginx/1.18.0
System: Linux vcwordpress 5.15.0-174-generic #184-Ubuntu SMP Fri Mar 13 18:41:50 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/bharti-foundation.stgviitor.com/wp-content/themes/lifeline/includes/Classes/Setup.php
<?php

/**
 * @package     LifeLine
 * @author      webinane team <[email protected]>
 * @since       5.0.0
 */

namespace Lifeline\Classes;

use Lifeline\Classes\PageLoader;
use Lifeline\Classes\Enqueue;
use Lifeline\Classes\Ajax;
use Lifeline\Classes\WoocommerceCustomize;
use Lifeline\Classes\Breadcrumb;
use Lifeline\Classes\LicenseManager;

class Setup {

	static function init() {
		add_filter( 'the_content', 'lifeline_color', 1000 );
		load_theme_textdomain( 'lifeline', get_template_directory() . '/languages' );

		self::registerMenus();
		self::imageSizes();
		self::supports();
		self::tinyMceButton();
		self::adminMenus();

		if ( ! isset( $content_width ) ) {
			$content_width = 900;
		}
	}

	static function other_init() {
		add_action( 'widgets_init', array( __CLASS__, 'sidebars' ) );

		if ( ! is_admin() ) {
			PageLoader::boot();
		}

		// self::demo_import();

		Enqueue::setup();
		( new Ajax )->actions();

		if ( function_exists( 'WC' ) ) {
			WoocommerceCustomize::init();
		}

		self::theme_update_check();

		Breadcrumb::boot();
		
		// Initialize license manager
		new LicenseManager();
	}

	static function sidebars() {
		$default_sidebar = apply_filters(
			// phpcs:ignore WordPress
			'lifeline/sidebar/main',
			array(
				'name'          => esc_html__( 'Lifeline: Main Sidebar', 'lifeline-plugin' ),
				'id'            => 'sidebar-1',
				'description'   => esc_html__( 'Widgets in this area will be shown on all posts and pages.', 'lifeline-plugin' ),
				'before_widget' => '<div id="%1$s" class="widget %2$s widget-box2 mt-50 w-100">',
				'after_widget'  => '</div>',
				'before_title'  => '<h3 class="widget-title">',
				'after_title'   => '</h3>',
			)
		);
		if ( ! empty( $default_sidebar ) ) {
			register_sidebar( $default_sidebar );
		}

		$footer_sidebar = apply_filters(
			// phpcs:ignore WordPress
			'lifeline/sidebar/footer',
			array( 
				'name'          => esc_html__( 'Lifeline: Footer Sidebar', 'lifeline-plugin' ),
				'id'            => 'footer',
				'description'   => esc_html__( 'Widgets in this area will be shown on all posts and pages.', 'lifeline-plugin' ),
				'before_widget' => '<div class="col-md-3 col-sm-6 col-lg-3"><div id="%1$s" class="widget mt-50 %2$s widget-box">',
				'after_widget'  => '</div></div>',
				'before_title'  => '<h3 class="text-white">',
				'after_title'   => '</h3>',
			)
		);
		if ( ! empty( $footer_sidebar ) ) {
			register_sidebar( $footer_sidebar );
		}
	}

	static function registerMenus() { // phpcs:ignore WordPress
		$menu_list = apply_filters(
			// phpcs:ignore WordPress
			'lifeline/menus',
			array(
				'main_menu' => esc_html__( 'Main Menu', 'lifeline' ),
				'footer'    => esc_html__( 'Footer Menu', 'lifeline' ),
			)
		);

		register_nav_menus( $menu_list );
	}

	static function imageSizes() { // phpcs:ignore WordPress
		$sizes = array(
			'lifeline_570x421'  => array( 570, 421, true ),
			'lifeline_270x207'  => array( 270, 207, true ),
			'lifeline_350x460'  => array( 350, 460, true ),
			'lifeline_140x180'  => array( 140, 180, true ),
			'lifeline_350x370'  => array( 350, 370, true ),
			'lifeline_80x80'  => array( 80, 80, true ),
			'lifeline_955x530'  => array( 955, 530, true ),
			'lifeline_870x410'  => array( 870, 410, true ),
			'lifeline_290x290'  => array( 290, 290, true ),
			'lifeline_350x350'  => array( 350, 350, true ),
			'lifeline_320x310'  => array( 320, 310, true ),
			'lifeline_870x470'  => array( 870, 470, true ),
			'lifeline_350x350'  => array( 350, 350, true ),
			'lifeline_350x280'  => array( 350, 280, true ),
			'lifeline_448x557'  => array( 448, 557, true ),
			'lifeline_110x110'   => array( 110, 110, true ),
		);
		// phpcs:ignore WordPress
		$sizes = apply_filters( 'lifeline/image/sizes', $sizes );

		foreach ( $sizes as $name => $value ) {
			add_image_size( $name, $value[0], $value[1], lifeline_get( $value, 2, false ) );
		}
	}

	static function supports() {
		add_theme_support( 'widgets' );
		$defaults = array(
			'height'      => null,
			'width'       => null,
			'flex-height' => true,
			'flex-width'  => true,
			'header-text' => array( 'site-title', 'site-description' ),
		);
		add_theme_support( 'custom-logo', $defaults );

		$post_format = apply_filters(
			// phpcs:ignore WordPress
			'lifeline/post/format',
			array(
				'standard',
				'video',
				'gallery',
				'audio',
				'style1',
				'style2',
			)
		);
		add_theme_support( 'post-formats', $post_format );
		add_theme_support( 'woocommerce' );
		add_theme_support( 'wc-product-gallery-zoom' );
		add_theme_support( 'title-tag' );
		add_theme_support( 'automatic-feed-links' );
		add_theme_support( 'editor-styles' );
		add_theme_support( 'align-wide' );
		add_theme_support( 'align-left' );
		add_theme_support( 'post-thumbnails' );
		$args = array(
			'default-color' => '0000ff',
		);
		add_theme_support( 'custom-background', $args );
	}

	static function tinyMceButton() { // phpcs:ignore WordPress
		add_filter( 'tiny_mce_before_init', array( __CLASS__, 'tinyMceFontsizeFormats' ) );
		add_filter( 'mce_buttons', array( __CLASS__, 'mceButtons1' ) );
		add_filter( 'mce_buttons_2', array( __CLASS__, 'mceButtons2' ) );
	}

	static function mceButtons1( $buttons ) { // phpcs:ignore WordPress
		$buttons[0]  = 'formatselect';
		$buttons[1]  = 'bold';
		$buttons[2]  = 'italic';
		$buttons[3]  = 'underline';
		$buttons[4]  = 'bullist';
		$buttons[5]  = 'numlist';
		$buttons[6]  = 'blockquote';
		$buttons[7]  = 'alignleft';
		$buttons[8]  = 'aligncenter';
		$buttons[9]  = 'alignright';
		$buttons[10] = 'alignjustify';
		$buttons[11] = 'link';
		$buttons[12] = 'wp_more';
		$buttons[13] = 'spellchecker';
		$buttons[14] = 'dfw';
		$buttons[15] = 'wp_adv';

		return $buttons;
	}

	static function mceButtons2( $buttons ) { // phpcs:ignore WordPress
		array_unshift( $buttons, 'superscript' );
		array_unshift( $buttons, 'subscript' );
		array_unshift( $buttons, 'fontselect' );
		array_unshift( $buttons, 'fontsizeselect' );

		return $buttons;
	}

	static function tinyMceFontsizeFormats( $settings ) { // phpcs:ignore WordPress
		$settings['fontsize_formats'] = implode( 'px ', range( 5, 80 ) ) . 'px';

		return $settings;
	}

	/**
	 * demo_import
	 *
	 * @return void
	 */
	// static function demo_import() {
	// 	require_once get_theme_file_path( 'webinane_import/class-merlin.php' );
	// 	require_once get_theme_file_path( 'webinane_import/merlin-config.php' );
	// 	require_once get_theme_file_path( 'webinane_import/merlin-filters.php' );
	// }

	static function theme_update_check() {
		$themes = array(
			'lifeline-corona-virus',
			'lifeline-global-warming',
			'lifeline-population',
		);
		foreach ( $themes as $theme ) {
			new \Lifeline\Libraries\ThemeUpdateChecker( $theme, get_template_directory_uri() . "/assets/json/{$theme}.json" );
		}
	}

	/**
	 * Register admin menus for Lifeline Panel
	 */
	static function adminMenus() {
		// Add main Lifeline Panel menu
		add_menu_page(
			'Lifeline Panel',                    // Page title
			'Lifeline Panel',                    // Menu title
			'manage_options',                    // Capability
			'lifeline-panel',                    // Menu slug
			array( __CLASS__, 'lifelinePanelMainPage' ), // Callback function
			get_template_directory_uri() . '/assets/images/panel-icon.png', // Icon URL
			3                                    // Position (after Dashboard)
		);

		// Add submenu pages
		add_submenu_page(
			'lifeline-panel',                    // Parent slug
			'Dashboard',                         // Page title
			'Dashboard',                         // Menu title
			'manage_options',                    // Capability
			'lifeline-panel',                    // Menu slug (same as parent for first submenu)
			array( __CLASS__, 'lifelinePanelMainPage' ), // Callback function
			
		);

		add_submenu_page(
			'lifeline-panel',                    // Parent slug
			'Addons',                            // Page title
			'Addons',                            // Menu title
			'manage_options',                    // Capability
			'lifeline-panel-addons',             // Menu slug
			array( __CLASS__, 'lifelinePanelAddonsPage' ), // Callback function
			1                                    // Position
		);

		add_submenu_page(
			'lifeline-panel',                    // Parent slug
			'Support',                           // Page title
			'Support',                           // Menu title
			'manage_options',                    // Capability
			'lifeline-panel-support',            // Menu slug
			array( __CLASS__, 'lifelinePanelSupportPage' ), // Callback function
			2                                    // Position
		);



		// Add Import Lifeline Demo Data submenu
		// Note: This is handled by the ocdi/plugin_page_setup filter in Functions.php
		// which sets parent_slug to 'lifeline-panel'

		// Add Theme Assistant submenu
		// Note: This is handled by the admin-menu.php file in ai-assistant directory
		// The Theme Assistant is now properly integrated as a submenu under Lifeline Panel

		// Add Lifeline Options as a submenu under Lifeline Panel
		// add_submenu_page(
		// 	'lifeline-panel',                    // Parent slug
		// 	'Theme Options',                     // Page title
		// 	'Theme Options',                     // Menu title
		// 	'manage_options',                    // Capability
		// 	'lifeline_option',                   // Menu slug (use the existing lifeline_option slug)
		// 	''                                   // No callback - let the plugin handle it
		// );

		// Enqueue admin styles for Lifeline Panel
		add_action( 'admin_enqueue_scripts', array( __CLASS__, 'lifelinePanelAdminStyles' ) );
	}

	/**
	 * Main Lifeline Panel page callback
	 */
	static function lifelinePanelMainPage() {
		include get_template_directory() . '/includes/lifeline-panel/admin-pages/dashboard.php';
	}

	/**
	 * Addons page callback
	 */
	static function lifelinePanelAddonsPage() {
		include get_template_directory() . '/includes/lifeline-panel/admin-pages/addons.php';
	}

	/**
	 * Support page callback
	 */
	static function lifelinePanelSupportPage() {
		include get_template_directory() . '/includes/lifeline-panel/admin-pages/support.php';
	}


	

	/**
	 * Enqueue admin styles for Lifeline Panel
	 */
	static function lifelinePanelAdminStyles($hook) {
		
		wp_enqueue_style(
			'lifeline-panel-admin',
			get_template_directory_uri() . '/includes/lifeline-panel/admin-styles.css',
			array(),
			filemtime(get_template_directory() . '/includes/lifeline-panel/admin-styles.css')
		);
	}
}