HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/thread-self/cwd/wp-content/plugins/ova-framework/ova-elementor/widgets/ova_history.php
<?php
namespace ova_framework\Widgets;

use Elementor\Widget_Base;
use Elementor\Controls_Manager;
use Elementor\Core\Schemes\Typography;
use Elementor\Group_Control_Typography;
use Elementor\Core\Schemes\Color;
use Elementor\Group_Control_Border;

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly


class ova_history extends Widget_Base {

	public function get_name() {
		return 'ova_history';
	}

	public function get_title() {
		return __( 'History', 'ova-framework' );
	}

	public function get_icon() {
		return 'eicon-history';
	}

	public function get_categories() {
		return [ 'ovatheme' ];
	}

	public function get_script_depends() {
		return [ 'script-elementor' ];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_content',
			[
				'label' => __( 'Content', 'ova-framework' ),
			]
		);


		$repeater = new \Elementor\Repeater();

		$repeater->add_control(
			'title',
			[
				'label' => __( 'Title', 'ova-framework' ),
				'type' => \Elementor\Controls_Manager::TEXTAREA,
				'row' => 2
			]
		);


		$repeater->add_control(
			'year',
			[
				'label' => __( 'Year', 'ova-framework' ),
				'type' => \Elementor\Controls_Manager::TEXT,
			]
		);

		$repeater->add_control(
			'image',
			[
				'label'   => 'Image',
				'type'    => \Elementor\Controls_Manager::MEDIA,
				'default' => [
					'url' => \Elementor\Utils::get_placeholder_image_src(),
				],
			]
		);

		$repeater->add_control(
			'desc',
			[
				'label' => __( 'Description', 'ova-framework' ),
				'type' => \Elementor\Controls_Manager::TEXTAREA,
				'row' => 5,
			]
		);

		$this->add_control(
			'tabs',
			[
				'label' => __( 'Tabs', 'ova-framework' ),
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'default' => [
					[
						'title' => __('City Council founded ', 'ova-framework'),
						'year' => 1875,
						'desc' => __('Branding network effects interaction design vesting period responsive web design. Leverage incubator twitter gen-z burn rate MVP termsheet entrepreneur holy grail infographic marketing founders learning curve gamification.', 'ova-framework'),
					],
					[
						'title' => __('First Election Conducted', 'ova-framework'),
						'year' => 1954,
						'desc' => __('Low hanging fruit rockstar iPhone channels founders MVP technology monetization customer disruptive. Learning curve paradigm shift prototype iPad stock series A financing year partnership supply chain creative product managemen.', 'ova-framework'),
					],
					[
						'title' => __('Expand the field of activity', 'ova-framework'),

						'year' => 1997,
						'desc' => __('Value proposition customer user experience valida MVP seed money. Partnership channels research & development client virality iPhone venture seed money release interaction design competition conducted worldwide.', 'ova-framework'),
					],

					[
						'title' => __('Becoming a Smart City', 'ova-framework'),

						'year' => 2018,
						'desc' => __('Branding network effects interaction design vesting period responsive web design. Leverage incubator twitter gen-z burn rate MVP termsheet entrepreneur holy grail infographic marketing founders learning curve gamification. ', 'ova-framework'),
					],
					
				],
				'title_field' => '{{{ title }}}',
			]
		);

		$this->end_controls_section();


		$this->start_controls_section(
			'section_title',
			[
				'label' => __( 'Title', 'ova-framework' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name'     => 'title_typography',
				'selector' => '{{WRAPPER}} .ova-history .wp-item .wp-year .title h3',
			]
		);

		$this->add_control(
			'color_title',
			[
				'label'     => __( 'Color', 'ova-framework' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .ova-history .wp-item .wp-year .title h3' => 'color : {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'margin_title',
			[
				'label'      => __( 'Margin', 'ova-framework' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors'  => [
					'{{WRAPPER}} .ova-history .wp-item .wp-year .title h3' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		


		$this->start_controls_section(
			'section_year',
			[
				'label' => __( 'Year', 'ova-framework' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name'     => 'year_typography',
				'selector' => '{{WRAPPER}} .ova-history .wp-item .wp-year .year',
			]
		);

		$this->add_control(
			'color_year',
			[
				'label'     => __( 'Color', 'ova-framework' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .ova-history .wp-item .wp-year .year' => 'color : {{VALUE}};',
				],
			]
		);


		$this->add_responsive_control(
			'margin_year',
			[
				'label'      => __( 'Margin', 'ova-framework' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors'  => [
					'{{WRAPPER}} .ova-history .wp-item .wp-year .year' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_desc',
			[
				'label' => __( 'Description', 'ova-framework' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name'     => 'desc_typography',
				'selector' => '{{WRAPPER}} .ova-history .wp-item .wp-year .desc p',
			]
		);

		$this->add_control(
			'color_desc',
			[
				'label'     => __( 'Color', 'ova-framework' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .ova-history .wp-item .wp-year .desc p' => 'color : {{VALUE}};',
				],
			]
		);


		$this->add_responsive_control(
			'margin_desc',
			[
				'label'      => __( 'Margin', 'ova-framework' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors'  => [
					'{{WRAPPER}} .ova-history .wp-item .wp-year .desc p' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_dot',
			[
				'label' => __( 'Dots', 'ova-framework' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			]
		);


		$this->add_control(
			'bg_color_dot',
			[
				'label'     => __( 'Color', 'ova-framework' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .ova-history .wp-item .wp-year .dot .dot1' => 'background-color : {{VALUE}};',
				],
			]
		);

		$this->end_controls_section();

	}

	protected function render() {
		$settings = $this->get_settings_for_display();
		$tabs = $settings['tabs'];
		?>
		<div class="ova-history ">
			<?php if (is_array($tabs)) : ?>
				<?php foreach($tabs as $item) : ?>
					<div class="wp-item">
						<div class="wp-content">
							
							<div class="content">
								<div class="ova-media">
									<img src="<?php echo esc_attr($item['image']['url']) ?>" alt="">
								</div>
							</div>
						</div>
						<div class="wp-year">
							<span class="dot">
								<span class="dot1"></span>
								<span  class="dot2"></span>
								<span  class="dot3"></span>
								<span  class="dot4"></span>
							</span>

							<p class="year second_font"><?php echo esc_html($item['year']) ?></p>

							<div class="title">
								<?php if($item['title']) : ?>
									<h3><?php echo $item['title'] ?></h3>
								<?php endif ?>
							</div>

							<div class="desc">
								<p><?php echo esc_html($item['desc']) ?></p>
							</div>

						</div>
					</div>
				<?php endforeach ?>
			<?php endif ?>
		</div>
		<?php
	}
}