app/Customize/EventListener/TwigAddParamsListener.php line 317

Open in your IDE?
  1. <?php
  2. // /app/Customize/EventListener/TwigAddParamsListener.php
  3. namespace Customize\EventListener;
  4. use Customize\Repository\RankingRepository;
  5. use Eccube\Event\TemplateEvent;
  6. use Eccube\Repository\ProductRepository;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. class TwigAddParamsListener implements EventSubscriberInterface
  9. {
  10.     /**
  11.      * コンストラクタ
  12.      * 
  13.      * @param RankingRepository $rankingRepository 売上ランキングのリポジトリ
  14.      * @param ProductRepository $productRepository 商品リポジトリ
  15.      */
  16.     public function __construct(
  17.         RankingRepository $rankingRepository,
  18.         ProductRepository $productRepository
  19.     ) {
  20.         $this->rankingRepository $rankingRepository;
  21.         $this->productRepository $productRepository;
  22.     }
  23.     /**
  24.      * テンプレートイベントのリスナー
  25.      * 売上ランキングをテンプレートに渡すための処理
  26.      * 
  27.      * @param TemplateEvent $event テンプレートイベント
  28.      */
  29.     public function onRanking(TemplateEvent $event)
  30.     {
  31.         // 現在のテンプレートのパラメータを取得
  32.         $parameters $event->getParameters();
  33.         // 売上ランキングのデータを取得
  34.         $ProductClasses $this->rankingRepository->getProductsRanking(365);
  35.         $event->setParameters($parameters);
  36.         $sums = [];
  37.         $Products = [];
  38.         if (!empty($ProductClasses)) {
  39.             foreach ($ProductClasses as $item) {
  40.                 if (!isset($sums[$item['product_id']])) {
  41.                     $sums[$item['product_id']] = 0;
  42.                 }
  43.                 $sums[$item['product_id']] += $item['total_price'];
  44.             }
  45.             // 合計をtotal_priceで並び替え
  46.             arsort($sums);
  47.             // 結果を表示(必要に応じて)
  48.             foreach ($sums as $productId => $totalPrice) {
  49.                 // 商品IDに基づいて商品情報を取得
  50.                 $Products[] = current($this->productRepository->findBy(['id' => $productId]));
  51.             }
  52.             // メッセージを空にする
  53.             $parameters['rankingMessage'] = '';
  54.         } else {
  55.             // 売上がない場合はメッセージを設定
  56.             $parameters['rankingMessage'] = '現在、売上ランキングはありません。';
  57.         }
  58.         // // テンプレートにランキング商品を渡す
  59.         $parameters['rankingProducts'] = $Products;
  60.         $event->setParameters($parameters);
  61.     }
  62.     /**
  63.      * テンプレートイベントのリスナー02
  64.      * 売上個数、カテゴリ取得に適応した形に
  65.      * 売上ランキングをテンプレートに渡すための処理
  66.      * 
  67.      * @param TemplateEvent $event テンプレートイベント
  68.      */
  69.     public function onRanking02(TemplateEvent $event)
  70.     {
  71.         // 現在のテンプレートのパラメータを取得
  72.         $parameters $event->getParameters();
  73.         // 売上ランキングのデータを取得
  74.         // $ProductClasses = $this->rankingRepository->getProductsRanking02(365);
  75.         // 年間ランキングのデータを取得
  76.         // $yearlyProductClasses = $this->rankingRepository->getProductsRanking02(365);
  77.         $yearlyProductClasses $this->rankingRepository->getProductsRanking03(365null);
  78.         // 月間ランキングのデータを取得 
  79.         $monthlyProductClasses $this->rankingRepository->getProductsRanking03(30null);
  80.         // リングのデータを取得
  81.         $ringProductClasses $this->rankingRepository->getProductsRanking03(365113);
  82.         // ネックレスのデータを取得
  83.         $necklaceProductClasses $this->rankingRepository->getProductsRanking03(36514);
  84.         // ピアスのデータを取得
  85.         $pierceProductClasses $this->rankingRepository->getProductsRanking03(3657);
  86.         // イヤリングのデータを取得
  87.         $earringProductClasses $this->rankingRepository->getProductsRanking03(365137);
  88.         // ブレスレットのデータを取得
  89.         $braceletProductClasses $this->rankingRepository->getProductsRanking03(365115);
  90.         // $NecklaceProductClasses = $this->rankingRepository->getProductsRanking03(365,14);
  91.         $event->setParameters($parameters);
  92.         // $sums = [];
  93.         // $quantities = [];
  94.         // $Products = [];
  95.         // 年間ランキングの集計
  96.         $yearlyQuantities = [];
  97.         $yearlyProducts = [];
  98.         if (!empty($yearlyProductClasses)) {
  99.             foreach ($yearlyProductClasses as $item) {
  100.                 if (!isset($yearlyQuantities[$item['product_id']])) {
  101.                     $yearlyQuantities[$item['product_id']] = 0;
  102.                 }
  103.                 $yearlyQuantities[$item['product_id']] += $item['total_quantity'];
  104.             }
  105.             // echo '<pre>'; print_r(array_slice($yearlyQuantities, 0, 10, true)); echo '</pre>';
  106.             // 合計をtotal_priceで並び替え
  107.             arsort($yearlyQuantities);
  108.             // 結果を表示(必要に応じて)
  109.             // foreach ($yearlyQuantities as $productId => $totalQuantity) {
  110.             //     // 商品IDに基づいて商品情報を取得
  111.             //     $yearlyProducts[] = current($this->productRepository->findBy(['id' => $productId]));
  112.             // }
  113.             // 除外するID
  114.             $excludedProductIds = [737475];
  115.             foreach ($yearlyQuantities as $productId => $totalQuantity) {
  116.                 if (!in_array($productId$excludedProductIds)) {
  117.                     // $yearlyProducts[] = current($this->productRepository->findBy(['id' => $productId]));
  118.                     $product current($this->productRepository->findBy(['id' => $productId]));
  119.                     $product->total_quantity $totalQuantity// 合計数量を追加
  120.                     $yearlyProducts[] = $product;
  121.                 }
  122.             }
  123.             // メッセージを空にする
  124.             $parameters['rankingMessage'] = '';
  125.         } else {
  126.             // 売上がない場合はメッセージを設定
  127.             $parameters['rankingMessage'] = '現在、売上ランキングはありません。';
  128.         }
  129.         // 月間ランキングの集計
  130.         $monthlyProducts = [];
  131.         $monthlyQuantities = [];
  132.         if (!empty($monthlyProductClasses)) {
  133.             foreach ($monthlyProductClasses as $item) {
  134.                 if (!isset($monthlyQuantities[$item['product_id']])) {
  135.                     $monthlyQuantities[$item['product_id']] = 0;
  136.                 }
  137.                 $monthlyQuantities[$item['product_id']] += $item['total_quantity'];
  138.             }
  139.             arsort($monthlyQuantities);
  140.             // foreach ($monthlyQuantities as $productId => $totalQuantity) {
  141.             //     $monthlyProducts[] = current($this->productRepository->findBy(['id' => $productId]));
  142.             // }
  143.             // 除外するID
  144.             $excludedProductIds = [737475];
  145.             foreach ($monthlyQuantities as $productId => $totalQuantity) {
  146.                 if (!in_array($productId$excludedProductIds)) {
  147.                     $monthlyProducts[] = current($this->productRepository->findBy(['id' => $productId]));
  148.                 }
  149.             }
  150.             $parameters['monthlyRankingMessage'] = '';
  151.         } else {
  152.             $parameters['monthlyRankingMessage'] = '現在、月間売上ランキングはありません。';
  153.         }
  154.         // ringランキングの集計
  155.         $ringQuantities = [];
  156.         $ringProducts = [];
  157.         if (!empty($ringProductClasses)) {
  158.             foreach ($ringProductClasses as $item) {
  159.                 if (!isset($ringQuantities[$item['product_id']])) {
  160.                     $ringQuantities[$item['product_id']] = 0;
  161.                 }
  162.                 $ringQuantities[$item['product_id']] += $item['total_quantity'];
  163.             }
  164.             arsort($ringQuantities);
  165.             foreach ($ringQuantities as $productId => $totalQuantity) {
  166.                 $ringProducts[] = current($this->productRepository->findBy(['id' => $productId]));
  167.             }
  168.             $parameters['ringRankingMessage'] = '';
  169.         } else {
  170.             $parameters['ringRankingMessage'] = '現在、リング売上ランキングはありません。';
  171.         }
  172.         // ネックレスランキングの集計
  173.         $necklaceQuantities = [];
  174.         $necklaceProducts = [];
  175.         if (!empty($necklaceProductClasses)) {
  176.             foreach ($necklaceProductClasses as $item) {
  177.                 if (!isset($necklaceQuantities[$item['product_id']])) {
  178.                     $necklaceQuantities[$item['product_id']] = 0;
  179.                 }
  180.                 $necklaceQuantities[$item['product_id']] += $item['total_quantity'];
  181.             }
  182.             // echo '<pre>'; print_r(array_slice($necklaceQuantities, 0, 10, true)); echo '</pre>';
  183.             arsort($necklaceQuantities);
  184.             foreach ($necklaceQuantities as $productId => $totalQuantity) {
  185.                 $necklaceProducts[] = current($this->productRepository->findBy(['id' => $productId]));
  186.                 // echo '<pre>'; print_r($totalQuantity); echo '</pre>';
  187.             }
  188.             // 除外するID
  189.             // $excludedProductIds = [73, 74, 75];
  190.             // foreach ($necklaceQuantities as $productId => $totalQuantity) {
  191.             //     if (!in_array($productId, $excludedProductIds)) {
  192.             //         $necklaceProducts[] = current($this->productRepository->findBy(['id' => $productId]));
  193.             //     }
  194.             // }
  195.             $parameters['necklaceRankingMessage'] = '';
  196.         } else {
  197.             $parameters['necklaceRankingMessage'] = '現在、ネックレス売上ランキングはありません。';
  198.         }
  199.         // ピアスランキングの集計
  200.         $pierceQuantities = [];
  201.         $pierceProducts = [];
  202.         if (!empty($pierceProductClasses)) {
  203.             foreach ($pierceProductClasses as $item) {
  204.                 if (!isset($pierceQuantities[$item['product_id']])) {
  205.                     $pierceQuantities[$item['product_id']] = 0;
  206.                 }
  207.                 $pierceQuantities[$item['product_id']] += $item['total_quantity'];
  208.             }
  209.             arsort($pierceQuantities);
  210.             foreach ($pierceQuantities as $productId => $totalQuantity) {
  211.                 $pierceProducts[] = current($this->productRepository->findBy(['id' => $productId]));
  212.             }
  213.             $parameters['pierceRankingMessage'] = '';
  214.         } else {
  215.             $parameters['pierceRankingMessage'] = '現在、ピアス売上ランキングはありません。';
  216.         }
  217.         // イヤリングランキングの集計
  218.         $earringProducts = [];
  219.         $earringQuantities = [];
  220.         if (!empty($earringProductClasses)) {
  221.             foreach ($earringProductClasses as $item) {
  222.                 if (!isset($earringQuantities[$item['product_id']])) {
  223.                     $earringQuantities[$item['product_id']] = 0;
  224.                 }
  225.                 $earringQuantities[$item['product_id']] += $item['total_quantity'];
  226.             }
  227.             arsort($earringQuantities);
  228.             foreach ($earringQuantities as $productId => $totalQuantity) {
  229.                 $earringProducts[] = current($this->productRepository->findBy(['id' => $productId]));
  230.             }
  231.             $parameters['earringRankingMessage'] = '';
  232.         } else {
  233.             $parameters['earringRankingMessage'] = '現在、イヤリング売上ランキングはありません。';
  234.         }
  235.         // ブレスレットの集計
  236.         $braceletQuantities = [];
  237.         $braceletProducts = [];
  238.         if (!empty($braceletProductClasses)) {
  239.             foreach ($braceletProductClasses as $item) {
  240.                 if (!isset($braceletQuantities[$item['product_id']])) {
  241.                     $braceletQuantities[$item['product_id']] = 0;
  242.                 }
  243.                 $braceletQuantities[$item['product_id']] += $item['total_quantity'];
  244.             }
  245.             arsort($braceletQuantities);
  246.             foreach ($braceletQuantities as $productId => $totalQuantity) {
  247.                 $braceletProducts[] = current($this->productRepository->findBy(['id' => $productId]));
  248.             }
  249.             $parameters['braceletRankingMessage'] = '';
  250.         } else {
  251.             $parameters['braceletRankingMessage'] = '現在、ブレスレット売上ランキングはありません。';
  252.         }
  253.         // テンプレートにランキング商品を渡す
  254.         $parameters['rankingProducts'] = $yearlyProducts;
  255.         $parameters['monthlyRankingProducts'] = $monthlyProducts;
  256.         $parameters['ringRankingProducts'] = $ringProducts;
  257.         $parameters['necklaceRankingProducts'] = $necklaceProducts;
  258.         $parameters['pierceRankingProducts'] = $pierceProducts;
  259.         $parameters['earringRankingProducts'] = $earringProducts;
  260.         $parameters['braceletRankingProducts'] = $braceletProducts;
  261.         $event->setParameters($parameters);
  262.     }
  263.     /**
  264.      * テンプレートイベントのリスナー03
  265.      * クエリを一回に限定する
  266.      * 売上個数、カテゴリ取得に適応した形に
  267.      * 売上ランキングをテンプレートに渡すための処理
  268.      * 
  269.      * @param TemplateEvent $event テンプレートイベント
  270.      */
  271.     public function onRanking03(TemplateEvent $event)
  272.     {
  273.         // 現在のテンプレートのパラメータを取得
  274.         $parameters $event->getParameters();
  275.         // 全てのデータ取得へ
  276.         $allProductClasses $this->rankingRepository->getProductsRanking03(365);
  277.         // 月間データ取得(日付範囲が異なるため)
  278.         $monthlyProductClasses $this->rankingRepository->getProductsRanking03(30);
  279.         // // 配列の最初の5件を抽出 
  280.         // $slicedData = array_slice($allProductClasses, 0, 50, true); 
  281.         // // 抽出したデータを表示 
  282.         // echo '<pre>取得したアイテム</pre>';
  283.         // print_r($slicedData);
  284.         // 初期化
  285.         $yearlyQuantities = [];
  286.         $monthlyQuantities = [];
  287.         $ringQuantities = [];
  288.         $necklaceQuantities = [];
  289.         $pierceQuantities = [];
  290.         $earringQuantities = [];
  291.         $braceletQuantities = [];
  292.         // 年間ランキングの集計(カテゴリIDを指定しない)
  293.         foreach ($allProductClasses as $item) {
  294.             if (!isset($yearlyQuantities[$item['product_id']])) {
  295.                 $yearlyQuantities[$item['product_id']] = 0;
  296.             }
  297.             $yearlyQuantities[$item['product_id']] += (int)$item['total_quantity'];
  298.         }
  299.         arsort($yearlyQuantities);
  300.         // // 最初の10件だけ抽出 
  301.         // $top10YearlyQuantities = array_slice($yearlyQuantities, 0, 10, true);
  302.         // // 結果の確認 
  303.         // echo '<pre>Top 10 Necklace Quantities:</pre>';
  304.         // print_r($top10YearlyQuantities);
  305.         // // 重複調査
  306.         // $pCounts = [];
  307.         // foreach($allProductClasses as $item) {
  308.         //     if(!isset($productCounts[$item['product_id']])) {
  309.         //         $pCounts[$item['product_id']] = 0;
  310.         //     } 
  311.         //     $pCounts[$item['product_id']]++;
  312.         // }
  313.         // arsort($pCounts);
  314.         // $limitcount = array_slice($pCounts, 0, 10, true);
  315.         // echo '<pre>重複チェック</pre>';
  316.         // print_r($limitcount);
  317.         // 
  318.         $excludedProductIds = [737475];
  319.         $yearlyProducts = [];
  320.         foreach ($yearlyQuantities as $productId => $totalQuantity) {
  321.             if (!in_array($productId$excludedProductIds)) {
  322.                 $product current($this->productRepository->findBy(['id' => $productId]));
  323.                 $product->total_quantity $totalQuantity;
  324.                 $yearlyProducts[] = $product;
  325.             }
  326.         }
  327.         $parameters['yearlyRankingProducts'] = $yearlyProducts;
  328.         // 月間ランキングの集計(カテゴリIDを指定しない)
  329.         foreach ($monthlyProductClasses as $item) {
  330.             if (!isset($monthlyQuantities[$item['product_id']])) {
  331.                 $monthlyQuantities[$item['product_id']] = 0;
  332.             }
  333.             $monthlyQuantities[$item['product_id']] += (int)$item['total_quantity'];
  334.         }
  335.         arsort($monthlyQuantities);
  336.         $monthlyProducts = [];
  337.         foreach ($monthlyQuantities as $productId => $totalQuantity) {
  338.             if (!in_array($productId$excludedProductIds)) {
  339.                 $product current($this->productRepository->findBy(['id' => $productId]));
  340.                 $product->total_quantity $totalQuantity;
  341.                 $monthlyProducts[] = $product;
  342.             }
  343.         }
  344.         $parameters['monthlyRankingProducts'] = $monthlyProducts;
  345.         // リングの集計
  346.         $categoryRingMap = [];
  347.         foreach ($allProductClasses as $item) {
  348.             $product_id $item['product_id'];
  349.             $category_id $item['category_id'];
  350.             if (!isset($ringQuantities[$item['product_id']])) {
  351.                 $ringQuantities[$item['product_id']] = 0;
  352.                 $categoryRingMap[$product_id] = [];
  353.             }
  354.             $ringQuantities[$item['product_id']] += (int)$item['total_quantity'];
  355.             $categoryRingMap[$product_id][] = $category_id;
  356.         }
  357.         // 重複カテゴリを削除し、カテゴリidごとに。
  358.         foreach ($categoryRingMap as $pid => $categories) {
  359.             $categoryRingMap[$pid] = array_unique($categories);
  360.         }
  361.         // カテゴリ選別
  362.         $RingId 113;
  363.         $ringProducts = [];
  364.         arsort($ringQuantities);
  365.         foreach ($ringQuantities as $productId => $totalQuantity) {
  366.             if (in_array($RingId$categoryRingMap[$productId])) {
  367.                 $product current($this->productRepository->findBy(['id' => $productId]));
  368.                 $product->total_quantity $totalQuantity;
  369.                 $ringProducts[] = $product;
  370.             }
  371.         }
  372.         // $ringProducts = [];
  373.         // foreach ($ringQuantities as $productId => $totalQuantity) {
  374.         //     $product = current($this->productRepository->findBy(['id' => $productId]));
  375.         //     $product->total_quantity = $totalQuantity;
  376.         //     $ringProducts[] = $product;
  377.         // }
  378.         $parameters['ringRankingProducts'] = $ringProducts;
  379.         // ネックレスの集計 id14
  380.         $categoryMap = [];
  381.         foreach ($allProductClasses as $item) {
  382.             $product_id $item['product_id'];
  383.             $category_id $item['category_id'];
  384.             if (!isset($necklaceQuantities[$item['product_id']])) {
  385.                 $necklaceQuantities[$item['product_id']] = 0;
  386.                 $categoryMap[$product_id] = [];
  387.             }
  388.             $necklaceQuantities[$item['product_id']] += (int)$item['total_quantity'];
  389.             $categoryMap[$product_id][] = $category_id;
  390.         }
  391.         // 重複カテゴリを削除し、カテゴリidごとに。
  392.         foreach ($categoryMap as $pid => $categories) {
  393.             $categoryMap[$pid] = array_unique($categories);
  394.         }
  395.         // カテゴリ選別
  396.         $necklaceId 14;
  397.         $necklaceProducts = [];
  398.         arsort($necklaceQuantities);
  399.         foreach ($necklaceQuantities as $productId => $totalQuantity) {
  400.             if (in_array($necklaceId$categoryMap[$productId])) {
  401.                 $product current($this->productRepository->findBy(['id' => $productId]));
  402.                 $product->total_quantity $totalQuantity;
  403.                 $necklaceProducts[] = $product;
  404.             }
  405.         }
  406.         // $necklaceProducts = [];
  407.         // foreach ($necklaceQuantities as $productId => $totalQuantity) {
  408.         //     $product = current($this->productRepository->findBy(['id' => $productId]));
  409.         //     $product->total_quantity = $totalQuantity;
  410.         //     $necklaceProducts[] = $product;
  411.         // }
  412.         $parameters['necklaceRankingProducts'] = $necklaceProducts;
  413.         // ピアスの集計
  414.         $categoryPierceMap = [];
  415.         foreach ($allProductClasses as $item) {
  416.             $product_id $item['product_id'];
  417.             $category_id $item['category_id'];
  418.             if (!isset($pierceQuantities[$item['product_id']])) {
  419.                 $pierceQuantities[$item['product_id']] = 0;
  420.                 $categoryPierceMap[$product_id] = [];
  421.             }
  422.             $pierceQuantities[$item['product_id']] += (int)$item['total_quantity'];
  423.             $categoryPierceMap[$product_id][] = $category_id;
  424.         }
  425.         // 重複カテゴリを排除
  426.         foreach ($categoryPierceMap as $productId => $categories) {
  427.             $categoryPierceMap[$productId] = array_unique($categories);
  428.         }
  429.         arsort($pierceQuantities);
  430.         $pierceId 7;
  431.         $pierceProducts = [];
  432.         foreach ($pierceQuantities as $productId => $totalQuantity) {
  433.             if (in_array($pierceId$categoryPierceMap[$productId])) {
  434.                 $product current($this->productRepository->findBy(['id' => $productId]));
  435.                 $product->total_quantity $totalQuantity;
  436.                 $pierceProducts[] = $product;
  437.             }
  438.         }
  439.         $parameters['pierceRankingProducts'] = $pierceProducts;
  440.         // イヤリングの集計 137
  441.         $categoryEarringMap = [];
  442.         foreach ($allProductClasses as $item) {
  443.             $product_id $item['product_id'];
  444.             $category_id $item['category_id'];
  445.             if (!isset($earringQuantities[$item['product_id']])) {
  446.                 $earringQuantities[$item['product_id']] = 0;
  447.                 $categoryEarringMap[$product_id] = [];
  448.             }
  449.             $earringQuantities[$item['product_id']] += (int)$item['total_quantity'];
  450.             $categoryEarringMap[$product_id][] = $category_id;
  451.         }
  452.         // 重複カテゴリを排除
  453.         foreach ($categoryEarringMap as $productId => $categories) {
  454.             $categoryEarringMap[$productId] = array_unique($categories);
  455.         }
  456.         arsort($earringQuantities);
  457.         $earringId 137;
  458.         $earringProducts = [];
  459.         foreach ($earringQuantities as $productId => $totalQuantity) {
  460.             if (in_array($earringId$categoryEarringMap[$productId])) {
  461.                 $product current($this->productRepository->findBy(['id' => $productId]));
  462.                 $product->total_quantity $totalQuantity;
  463.                 $earringProducts[] = $product;
  464.             }
  465.         }
  466.         $parameters['earringRankingProducts'] = $earringProducts;
  467.         // ブレスレットの集計 115
  468.         $categoryBraceletMap = [];
  469.         foreach ($allProductClasses as $item) {
  470.             $product_id $item['product_id'];
  471.             $category_id $item['category_id'];
  472.             if (!isset($braceletQuantities[$item['product_id']])) {
  473.                 $braceletQuantities[$item['product_id']] = 0;
  474.                 $categoryBraceletMap[$product_id] = [];
  475.             }
  476.             $braceletQuantities[$item['product_id']] += (int)$item['total_quantity'];
  477.             $categoryBraceletMap[$product_id][] = $category_id;
  478.         }
  479.         // 重複カテゴリを排除
  480.         foreach($categoryBraceletMap as $productId => $categories) {
  481.             $categoryBraceletMap[$productId] = array_unique($categories);
  482.         }
  483.         arsort($braceletQuantities);
  484.         $braceletId 115;
  485.         $braceletProducts = [];
  486.         foreach ($braceletQuantities as $productId => $totalQuantity) {
  487.             if(in_array($braceletId$categoryBraceletMap[$productId])) {
  488.                 $product current($this->productRepository->findBy(['id' => $productId]));
  489.                 $product->total_quantity $totalQuantity;
  490.                 $braceletProducts[] = $product;
  491.             }
  492.         }
  493.         $parameters['braceletRankingProducts'] = $braceletProducts;
  494.         // パラメータをテンプレートに設定
  495.         $event->setParameters($parameters);
  496.     }
  497.     /**
  498.      * イベントサブスクライバーを定義
  499.      * 
  500.      * @return array イベントとメソッドのマッピング
  501.      */
  502.     public static function getSubscribedEvents()
  503.     {
  504.         return [
  505.             // 'Block/ranking.twig'テンプレートに対するイベントリスナーを登録
  506.             'Block/ranking.twig' => 'onRanking03',
  507.         ];
  508.     }
  509. }