<?php /* * Copyright (c) 2024 LatePoint LLC. All rights reserved. */ namespace LatePoint\Misc; class Step { public string $code; public string $label; public string $side_panel_heading; public string $side_panel_description; public string $main_panel_heading; public string $main_panel_content_before; public string $main_panel_content_after; public string $side_panel_custom_image_id; function __construct( $args = [] ) { $allowed_props = static::allowed_props(); foreach ( $args as $key => $arg ) { if ( in_array( $key, $allowed_props ) ) { $this->$key = $arg; } } } public function get_image_url_for_side_panel() : string { if ( $this->is_using_custom_image_for_side_panel() ) { return \OsImageHelper::get_image_url_by_id( $this->side_panel_custom_image_id, 'thumbnail', '' ); }else{ return ''; } } public function get_default_image_html_for_side_panel() { return \OsStepsHelper::get_default_side_panel_image_html_for_step_code( $this->code ); } public function is_using_custom_image_for_side_panel(): bool { return ! empty( $this->side_panel_custom_image_id ); } public static function create_from_settings( string $step_code, array $step_settings ): Step { return new Step( [ 'code' => $step_code, 'label' => \OsStepsHelper::get_step_label_by_code( $step_code ), 'side_panel_heading' => $step_settings['side_panel_heading'] ?? '', 'side_panel_description' => $step_settings['side_panel_description'] ?? '', 'main_panel_heading' => $step_settings['main_panel_heading'] ?? '', 'main_panel_content_before' => $step_settings['main_panel_content_before'] ?? '', 'main_panel_content_after' => $step_settings['main_panel_content_after'] ?? '', 'side_panel_custom_image_id' => $step_settings['side_panel_custom_image_id'] ?? '', ] ); } public static function allowed_props(): array { return [ 'code', 'label', 'side_panel_heading', 'side_panel_description', 'main_panel_heading', 'main_panel_content_before', 'main_panel_content_after', 'side_panel_custom_image_id', ]; } }