src/Product/BasicData/RenderBasicProductData.php line 56

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Klaravik\Product\BasicData;
  4. use Klaravik\Model\ProductValue;
  5. use Klaravik\Translate\Trans;
  6. use stdClass;
  7. class RenderBasicProductData
  8. {
  9.     private Trans $trans;
  10.     private stdClass $productObject;
  11.     /**
  12.      * @param Trans $trans
  13.      * @param stdClass $productObject
  14.      */
  15.     public function __construct(Trans $transstdClass $productObject)
  16.     {
  17.         $this->trans $trans;
  18.         $this->productObject $productObject;
  19.     }
  20.     /**
  21.      * @return array
  22.      */
  23.     private function highLightMakeModel(): array
  24.     {
  25.         if (empty($this->productObject->fabrikat)) {
  26.             $this->productObject->fabrikat $this->trans->get('text_label_page-product_highlight-unknown');
  27.         }
  28.         if (empty($this->productObject->model)) {
  29.             $this->productObject->model $this->trans->get('text_label_page-product_highlight-unknown');
  30.         }
  31.         $productValueMake  = (new ProductValue())->setValue($this->productObject->fabrikat);
  32.         $productValueModel = (new ProductValue())->setValue($this->productObject->model);
  33.         return [
  34.             $this->trans->get('text_label_page-product_highlight-model') => $productValueMake,
  35.             $this->trans->get('text_label_productEditor_base_model')     => $productValueModel
  36.         ];
  37.     }
  38.     /**
  39.      * @param int $products_id
  40.      * @param int $categories_id
  41.      * @return string
  42.      */
  43.     public function renderHtml(int $products_idint $categories_id): array
  44.     {
  45.         $getProductBasicData = (new BasicProductData($this->trans))->getProductBasicData($products_id$categories_id);
  46.         $getProductBasicData['highLight'] = array_merge($this->highLightMakeModel(), $getProductBasicData['highLight']);
  47.         $htmlOutput '';
  48.         if (!empty($getProductBasicData['highLight'])) {
  49.             $htmlOutput .=  '<div class="object-information__highlight">';
  50.             foreach ($getProductBasicData['highLight'] as $productFieldValue => $basicDataModel) {
  51.                 $htmlOutput .=  '
  52.                 <div class="object-information__highlight-item">
  53.                     <div class="object-information__highlight-key">'.$productFieldValue.':</div>
  54.                     <div class="object-information__highlight-value">'.$basicDataModel->getValue().'</div>
  55.                 </div>';
  56.             }
  57.             $htmlOutput .=  '</div>';
  58.         }
  59.         if (!empty($getProductBasicData['basicData'])) {
  60.             $htmlOutput .= '
  61.             <div class="object-information expander-script" data-expander="basicData">
  62.                 <div class="expander-script__container">';
  63.                 foreach ($getProductBasicData['basicData'] as $headLine => $headLineGroup) {
  64.                     if (empty($headLineGroup)) {
  65.                         continue;
  66.                     }
  67.                     $htmlOutput .= '
  68.                     <div class="object-information">
  69.                         <span class="object-information__title">'$headLine .':</span>
  70.                         <div class="object-information__items">';
  71.                         foreach ($headLineGroup as $basicDataName => $basicDataType) {
  72.                             foreach ($basicDataType as $basicDataModel) {
  73.                                 $htmlOutput .=
  74.                                 '<div class="object-information__item">
  75.                                     <span class="object-information__item-key">'.$basicDataName.'</span>
  76.                                     <span class="object-information__item-value">'.$basicDataModel->getValue().'</span>
  77.                                 </div>';
  78.                             }
  79.                         }
  80.                     $htmlOutput .='
  81.                         </div>
  82.                     </div>';
  83.                 }
  84.             $htmlOutput .= '
  85.                 </div>
  86.                 <div class="expander-script__toggle button--primary button--outlined button--large" data-expander="basicData">
  87.                     <span class="toggler-text">'$this->trans->get("text_label_page-product_extra-vehicle-dropdown") .'</span>
  88.                     <span class="arrow-icon"><i class="ri-arrow-down-s-line"></i></span>
  89.                 </div>
  90.             </div>';
  91.         }
  92.         return [
  93.             'htmlOutput'      => $htmlOutput,
  94.             'loadingHelp'     => $getProductBasicData['loadingHelp'],
  95.             'loadingHelpText' => $getProductBasicData['loadingHelpText']
  96.         ];
  97.     }
  98. }