%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/higroup/wp-content/plugins/devmonsta/core/options/posts/
Upload File :
Create Path :
Current File : /var/www/html/higroup/wp-content/plugins/devmonsta/core/options/posts/view.php

<?php

namespace Devmonsta\Options\Posts;

use Devmonsta\Traits\Singleton;

class View
{

	use Singleton;

	protected $meta_owner = "post";



	/**
	 * Build the metbox for the post
	 *
	 * @access      public
	 * @return      void
	 */

	public function build($box_id, $controls)
	{


		echo '<div class="devm-box">'; // This html for wrapper purpose

		foreach ($controls as $control) {

			if ($control['box_id'] == $box_id) {
				$this->render($control);
			}
		}

		echo '</div>';
	}

	/**
	 * Render markup view for the control
	 * defined in theme. It will pass the data according to the
	 * control type
	 *
	 * @access      public
	 * @return      void
	 */
	public function render($control_content)
	{


		if (isset($control_content['type'])) {

			if ($control_content['type'] == 'repeater') {

				$this->build_repeater($control_content);
			}

			$this->build_controls($control_content);
		}
	}

	/**
	 * Build controls markup
	 *
	 * @access  public
	 * @return  void
	 */

	public function build_controls($control_content)
	{
		$class_name = explode('-', $control_content['type']);
		$class_name = array_map('ucfirst', $class_name);
		$class_name = implode('', $class_name);
		$control_class = 'Devmonsta\Options\Posts\Controls\\' . $class_name . '\\' . $class_name;

		if (class_exists($control_class)) {

			$control = new $control_class($control_content);
			$control->init();
			$control->enqueue($this->meta_owner);
			$control->render();

		} else {

			$file = plugin_dir_path(__FILE__) . 'controls/' . $control_content['type'] . '/' . $control_content['type'] . '.php';

			if (file_exists($file)) {

				include_once $file;

				if (class_exists($control_class)) {

					$control = new $control_class($control_content);
					$control->init();
					$control->enqueue($this->meta_owner);
					$control->render();
				}
			}
		}
	}

	/**
	 * Build repeater controls
	 *
	 * @access  public
	 * @return  void
	 */

	public function build_repeater($control_data)
	{
		/**
		 * Incomplete code , just testing , do not read or use
		 */
		if (isset($control_data['controls'])) {

			?>
			<div id="<?php echo esc_attr( $control_data['name'] ); ?>" class="devm-option form-field ">

				<div class='devm-option-column left'>
					<label class="devm-option-label"><?php echo esc_html( $control_data['label'] ); ?> </label>
				</div>


				<div class='devm-option-column devm-repeater-column right'>

					<div class="devm-repeater-control devm-repeater-sample">
						<a href="#" data-id="<?php echo esc_attr( $control_data['name'] ); ?>" class="devm-repeater-control-action">Control
							<button type="button" data-id="<?php echo esc_attr( $control_data['name'] ); ?>"
							        class="components-button devm-editor-post-trash is-link"><span
									class="dashicons dashicons-dismiss"></span></button>
						</a>

						<div class="devm-repeater-inner-controls" id="<?php echo esc_attr( $control_data['name'] ); ?>">
							<div class="devm-repeater-inner-controls-inner">
								<div class="devm-repeater-popup-heading">
									<span class="devm-repeater-popup-close dashicons dashicons-no-alt"></span>
								</div>
								<div class="devm-repeater-popup-data">
									<?php
									ob_start();
									$this->repeater_controls($control_data);
									$output = ob_get_clean();

									echo str_replace("active-script", '', $output);
									?>
								</div>
								<div class="devm-repeater-popup-footer">
								</div>
							</div>
						</div>
					</div>

					<div id="devm-repeater-control-list-<?php echo esc_attr( $control_data['name'] ); ?>"
					     class="devm-repeater-control-list">

					</div>


					<a href='' data-id='<?php echo esc_attr( $control_data['name'] ); ?>'
					   class='devm-repeater-add-new button'><?php echo esc_html( $control_data['add_new'] ); ?></a>
				</div>
			</div>

			<?php
		}
	}

	public function repeater_controls($control_data)
	{
		foreach ($control_data['controls'] as $control_content) {

			if ($control_content['type'] == 'repeater')
				$this->repeater_control_markup($control_content);

			$name = $control_content['name'];
			unset($control_content['name']);
			$control_content['name'] = $name;
			$class_name = explode('-', $control_content['type']);
			$class_name = array_map('ucfirst', $class_name);
			$class_name = implode('', $class_name);
			$control_class = 'Devmonsta\Options\Posts\Controls\\' . $class_name . '\\' . $class_name;

			if (class_exists($control_class)) {

				$control = new $control_class($control_content);
				$control->init();
				$control->render();

			} else {

				$file = plugin_dir_path(__FILE__) . 'controls/' . $control_content['type'] . '/' . $control_content['type'] . '.php';

				if (file_exists($file)) {

					include_once $file;

					if (class_exists($control_class)) {

						$control = new $control_class($control_content);
						$control->init();
						$control->render();
					}
				}
			}
		}
	}


	public function repeater_control_markup($control_content)
	{
		?>
		<div class='devm-option form-field devm-repeater-child'>
			<div class='devm-option-column left'>
				<label class='devm-option-label'><?php echo esc_html( $control_content['lable'] ); ?> </label>
			</div>
			<div class='devm-option-column right'>

				<div class='devm-option-column devm-repeater-column right'>

					<div class="devm-repeater-control devm-repeater-sample">
						<a href="#" data-id="<?php echo esc_attr( $control_content['name'] ); ?>"
						   class="devm-repeater-control-action">Control

							<button type="button" data-id="<?php echo esc_attr( $control_content['name'] ); ?>"
							        class="components-button devm-editor-post-trash is-link">
								<span class="dashicons dashicons-dismiss"></span>
							</button>

						</a>

						<div class="devm-repeater-inner-controls" id="<?php echo esc_attr( $control_content['name'] ); ?>">

							<div class="devm-repeater-inner-controls-inner">

								<div class="devm-repeater-popup-heading">
									<span class="devm-repeater-popup-close dashicons dashicons-no-alt"></span>
								</div>

								<div class="devm-repeater-popup-data">
									<?php
									ob_start();
									$this->sub_repeater_controls($control_content['controls']);
									$output = ob_get_clean();

									echo str_replace("active-script", '', $output);
									?>
								</div>

								<div class="devm-repeater-popup-footer"></div>

							</div>
						</div>
					</div>

					<div class="devm-repeater-control-list"></div>

					<a href='' data-id='<?php echo esc_attr( $control_content['name'] ); ?>' class='devm-repeater-add-new button'>Add
						New</a>
				</div>
			</div>
		</div>

		<?php

	}

	public function sub_repeater_controls($control_contents)
	{
		foreach ($control_contents as $control_content) {

			$this->build_controls($control_content);

		}

	}
}

Zerion Mini Shell 1.0