|
|
@@ -500,8 +500,87 @@ class EsgResource extends Resource
|
|
500
|
500
|
|
|
501
|
501
|
// 清理 HTML 標籤(如果需要)
|
|
502
|
502
|
foreach ($data['content']['text_content'] as $locale => $content) {
|
|
503
|
|
- \Log::info($content);
|
|
504
|
|
- \Log::info(stripslashes($content));
|
|
|
503
|
+ $data['content']['text_content'][$locale] = stripslashes($content);
|
|
|
504
|
+ }
|
|
|
505
|
+ break;
|
|
|
506
|
+ case "2":
|
|
|
507
|
+ // 確保有 text_blocks
|
|
|
508
|
+ if (!isset($data['content']['text_blocks'])) {
|
|
|
509
|
+ $data['content']['text_blocks'] = [];
|
|
|
510
|
+ }
|
|
|
511
|
+
|
|
|
512
|
+ // 處理每個文字區塊
|
|
|
513
|
+ foreach ($data['content']['text_blocks'] as $index => &$block) {
|
|
|
514
|
+ // 確保區塊有必要的欄位
|
|
|
515
|
+ $block['block_item_key'] = $block['block_item_key'] ?? Str::random();
|
|
|
516
|
+ $block['order'] = $block['order'] ?? ($index + 1);
|
|
|
517
|
+
|
|
|
518
|
+ $block["block_content"] = ["zh_TW" => $block["block_content_tw"] ?? "" , "en" => $block["block_content_en"] ?? ""];
|
|
|
519
|
+ // 移除臨時的分離欄位,只保留合併的 JSON 欄位
|
|
|
520
|
+ unset($block["block_content_tw"]);
|
|
|
521
|
+ unset($block["block_content_en"]);
|
|
|
522
|
+ // 清理區塊內容
|
|
|
523
|
+ if (isset($block['block_content'])) {
|
|
|
524
|
+ foreach ($block['block_content'] as $locale => $content) {
|
|
|
525
|
+ $block['block_content'][$locale] = stripslashes($content);
|
|
|
526
|
+ }
|
|
|
527
|
+ }
|
|
|
528
|
+ }
|
|
|
529
|
+ break;
|
|
|
530
|
+ case "3":
|
|
|
531
|
+ // 確保欄數設定
|
|
|
532
|
+ $columnCount = $data['content']['column_count'] ?? 2;
|
|
|
533
|
+
|
|
|
534
|
+ // 確保表頭存在
|
|
|
535
|
+ if (!isset($data['content']['headers'])) {
|
|
|
536
|
+ $data['content']['headers'] = ['zh_TW' => [], 'en' => []];
|
|
|
537
|
+ }
|
|
|
538
|
+
|
|
|
539
|
+ // 確保表格資料存在
|
|
|
540
|
+ if (!isset($data['content']['simple_table_rows'])) {
|
|
|
541
|
+ $data['content']['simple_table_rows'] = [];
|
|
|
542
|
+ }
|
|
|
543
|
+
|
|
|
544
|
+ // 處理表格資料,確保欄數一致
|
|
|
545
|
+ foreach ($data['content']['simple_table_rows'] as $rowIndex => &$row) {
|
|
|
546
|
+ // 確保每行都有正確的欄數
|
|
|
547
|
+ for ($i = 1; $i <= $columnCount; $i++) {
|
|
|
548
|
+ $row["col{$i}"] = ["zh_TW" => $row["col{$i}_tw"] ?? "" , "en" => $row["col{$i}_en"] ?? ""];
|
|
|
549
|
+ foreach ($row["col{$i}"] as $locale => $content) {
|
|
|
550
|
+ $row["col{$i}"][$locale] = $content;
|
|
|
551
|
+ }
|
|
|
552
|
+ unset($row["col{$i}_tw"]);
|
|
|
553
|
+ unset($row["col{$i}_en"]);
|
|
|
554
|
+ $row["align{$i}"] = ["zh_TW" => $row["align{$i}_tw"] ?? "" , "en" => $row["align{$i}_en"] ?? ""];
|
|
|
555
|
+ foreach ($row["align{$i}"] as $locale => $content) {
|
|
|
556
|
+ $row["align{$i}"][$locale] = $content;
|
|
|
557
|
+ }
|
|
|
558
|
+ unset($row["align{$i}_tw"]);
|
|
|
559
|
+ unset($row["align{$i}_en"]);
|
|
|
560
|
+ }
|
|
|
561
|
+
|
|
|
562
|
+ // 移除多餘的欄位
|
|
|
563
|
+ for ($i = $columnCount + 1; $i <= 4; $i++) {
|
|
|
564
|
+ unset($row["col{$i}_tw"]);
|
|
|
565
|
+ unset($row["col{$i}_en"]);
|
|
|
566
|
+ unset($row["align{$i}_tw"]);
|
|
|
567
|
+ unset($row["align{$i}_en"]);
|
|
|
568
|
+ }
|
|
|
569
|
+ }
|
|
|
570
|
+ break;
|
|
|
571
|
+ }
|
|
|
572
|
+ return $data;
|
|
|
573
|
+ })
|
|
|
574
|
+ ->mutateRelationshipDataBeforeCreateUsing(function (array $data): array {
|
|
|
575
|
+ switch($data["type"]){
|
|
|
576
|
+ case "1":
|
|
|
577
|
+ $data["content"]["text_content"] = ["zh_TW" => $data["content"]["text_content_tw"] ?? "" , "en" => $data["content"]["text_content_en"] ?? ""];
|
|
|
578
|
+ // 移除臨時的分離欄位,只保留合併的 JSON 欄位
|
|
|
579
|
+ unset($data["content"]["text_content_tw"]);
|
|
|
580
|
+ unset($data["content"]["text_content_en"]);
|
|
|
581
|
+
|
|
|
582
|
+ // 清理 HTML 標籤(如果需要)
|
|
|
583
|
+ foreach ($data['content']['text_content'] as $locale => $content) {
|
|
505
|
584
|
$data['content']['text_content'][$locale] = stripslashes($content);
|
|
506
|
585
|
}
|
|
507
|
586
|
break;
|