Uname: Linux premium264.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
Software: LiteSpeed
PHP version: 8.3.22 [ PHP INFO ] PHP os: Linux
Server Ip: 69.57.162.13
Your Ip: 216.73.216.219
User: workvvfb (1129) | Group: workvvfb (1084)
Safe Mode: OFF
Disable Function:
NONE

name : BuilderTemplate.php
<?php

namespace AppBuilder\Classs;

defined( 'ABSPATH' ) || exit;

/**
 * Class BuilderTemplate
 *
 * @package AppBuilder\Template
 */
class BuilderTemplate {

	/**
	 * The app builder active template id.
	 *
	 * @var int template id.
	 */
	protected int $template_id;

	/**
	 * BuilderTemplate constructor.
	 */
	public function __construct() {
		$this->template_id = (int) get_option( 'app_builder_template_active_id', 0 );
	}

	/**
	 * Get template id.
	 *
	 * @return int template id.
	 */
	public function get_template_id(): int {
		return $this->template_id;
	}

	/**
	 * Set template id.
	 *
	 * @param int $template_id template id.
	 *
	 * @return void
	 */
	public function set_template_id( int $template_id ): void {
		$this->template_id = $template_id;
	}


	/**
	 * Get template data
	 *
	 * @return array|mixed
	 */
	public function get_data() {
		/**
		 * Get post by id
		 */
		$template = get_post( $this->template_id );

		/**
		 * Get at least one template in list
		 */
		if ( ! $template ) {
			$templates = get_posts(
				array(
					'post_type'   => 'app_builder_template',
					'status'      => 'publish',
					'numberposts' => 1,
				)
			);
			$template  = count( $templates ) > 0 ? $templates[0] : null;
		}

		return is_null( $template ) ? array() : json_decode( $template->post_content, true );
	}

	/**
	 * Get screen config data.
	 *
	 * @param string $screen screen.
	 * @param string $key key.
	 * @param string $field field.
	 * @param mixed  $default_value default value.
	 *
	 * @return false|mixed
	 */
	public function get_screen_data( string $screen, string $key, string $field, $default_value ) {
		$data = $this->get_data();

		if ( ! isset( $data['screens'][ $screen ]['widgets'][ $key ]['fields'][ $field ] ) ) {
			return $default_value;
		}

		return $data['screens'][ $screen ]['widgets'][ $key ]['fields'][ $field ];
	}

	/**
	 * Get settings general
	 *
	 * @param string $field field.
	 * @param mixed  $default_value default value.
	 *
	 * @return mixed
	 */
	public function get_settings_general( string $field, $default_value ) {
		$data = $this->get_data();

		if ( ! isset( $data['settings']['general']['widgets']['general']['fields'][ $field ] ) ) {
			return $default_value;
		}

		return $data['settings']['general']['widgets']['general']['fields'][ $field ];
	}
}
© 2025 GrazzMean