visuddhinanda 1 месяц назад
Родитель
Сommit
6edb8925cf

+ 3 - 2
api-v12/app/Http/Controllers/CorpusController.php

@@ -1066,11 +1066,12 @@ class CorpusController extends Controller
             $xmlString = "<root>" . $wbw . "</root>";
             try {
                 $xmlWord = simplexml_load_string($xmlString);
+                $wordsList = $xmlWord->xpath('//word');
             } catch (\Exception $e) {
                 Log::error('corpus', ['error' => $e]);
-                continue;
+                return false;
             }
-            $wordsList = $xmlWord->xpath('//word');
+
             foreach ($wordsList as $word) {
                 $case = \str_replace(['#', '.'], ['$', ''], $word->case->__toString());
                 $case = \str_replace('$$', '$', $case);

+ 4 - 3
api-v8/app/Http/Controllers/CorpusController.php

@@ -839,11 +839,12 @@ class CorpusController extends Controller
             $xmlString = "<root>" . $wbw . "</root>";
             try {
                 $xmlWord = simplexml_load_string($xmlString);
+                $wordsList = $xmlWord->xpath('//word');
             } catch (\Exception $e) {
-                Log::error('corpus', ['error' => $e]);
-                continue;
+                Log::error('corpus getWbw', ['error' => $e, 'data' => $xmlString]);
+                return false;
             }
-            $wordsList = $xmlWord->xpath('//word');
+
             foreach ($wordsList as $word) {
                 $case = \str_replace(['#', '.'], ['$', ''], $word->case->__toString());
                 $case = \str_replace('$$', '$', $case);

+ 0 - 0
dashboard-v6/src/components/tipitaka/components/CommentrayPad.tsx → dashboard-v6/src/components/tipitaka/components/CommentaryPad.tsx


+ 11 - 69
dashboard-v6/src/components/tipitaka/components/ParagraphRead.tsx

@@ -1,82 +1,24 @@
-import { Flex } from "antd";
 import { useSetting } from "../../../hooks/useSetting";
-import MdOrigin from "../../sentence/components/MdOrigin";
-import MdTranslation from "../../sentence/components/MdTranslation";
+
 import type { IWidgetSentEditInner } from "../../sentence/SentEdit";
-import CommentaryPad from "./CommentrayPad";
+
+import ParagraphReadPara from "./ParagraphReadPara";
+import ParagraphReadSent from "./ParagraphReadSent";
 
 interface IWidget {
   data?: IWidgetSentEditInner[];
 }
 const ParagraphRead = ({ data }: IWidget) => {
-  const direction = useSetting("setting.layout.direction");
-  const layoutCommentary = useSetting("setting.layout.commentary");
-  console.debug("direction", direction);
-
-  const channels: string[] = [];
-  data?.forEach((value) => {
-    value.translation?.forEach((trans) => {
-      if (!channels.includes(trans.channel.id)) {
-        channels.push(trans.channel.id);
-      }
-    });
-  });
-
-  let commentaries: number = 0;
-  data?.forEach((value) => {
-    value.commentaries?.forEach((comm) => {
-      if (comm.content && comm.content?.length > 0) {
-        commentaries++;
-      }
-    });
-  });
+  const paragraph = useSetting("setting.layout.paragraph");
 
   return (
-    <Flex vertical={layoutCommentary === "row"}>
-      <Flex gap="middle" vertical={direction === "row"} style={{ flex: 5 }}>
-        {/**原文区 */}
-        <div className="sent_read" style={{ flex: 5, padding: 4 }}>
-          {data?.map((item) => {
-            return item.origin?.map((org, id) => {
-              return <MdOrigin text={org.html} key={id} />;
-            });
-          })}
-        </div>
-        {/**译文区 */}
-        <div
-          className="sent_read"
-          style={{ display: "flex", flex: 5, padding: 4 }}
-        >
-          {channels.map((channel) => {
-            return (
-              <div>
-                {data?.map((item) => {
-                  return item.translation?.map((trans, id) => {
-                    if (trans.channel.id === channel) {
-                      return <MdTranslation text={trans.html} key={id} />;
-                    } else {
-                      return <span>no data</span>;
-                    }
-                  });
-                })}
-              </div>
-            );
-          })}
-        </div>
-      </Flex>
-      {/**注疏区 */}
-      {commentaries > 0 && (
-        <div style={{ flex: 5 }}>
-          <CommentaryPad>
-            {data?.map((item) => {
-              return item.commentaries?.map((item, id) => {
-                return <MdTranslation text={item.html} key={id} />;
-              });
-            })}
-          </CommentaryPad>
-        </div>
+    <div>
+      {paragraph === "paragraph" ? (
+        <ParagraphReadPara data={data} />
+      ) : (
+        <ParagraphReadSent data={data} />
       )}
-    </Flex>
+    </div>
   );
 };
 

+ 81 - 0
dashboard-v6/src/components/tipitaka/components/ParagraphReadPara.tsx

@@ -0,0 +1,81 @@
+import { Flex } from "antd";
+import { useSetting } from "../../../hooks/useSetting";
+import MdOrigin from "../../sentence/components/MdOrigin";
+import MdTranslation from "../../sentence/components/MdTranslation";
+import type { IWidgetSentEditInner } from "../../sentence/SentEdit";
+import CommentaryPad from "./CommentaryPad";
+
+interface IWidget {
+  data?: IWidgetSentEditInner[];
+}
+const ParagraphReadPara = ({ data }: IWidget) => {
+  const direction = useSetting("setting.layout.direction");
+  const layoutCommentary = useSetting("setting.layout.commentary");
+  console.debug("direction", direction);
+
+  const channels: string[] = [];
+  data?.forEach((value) => {
+    value.translation?.forEach((trans) => {
+      if (!channels.includes(trans.channel.id)) {
+        channels.push(trans.channel.id);
+      }
+    });
+  });
+
+  let commentaries: number = 0;
+  data?.forEach((value) => {
+    value.commentaries?.forEach((comm) => {
+      if (comm.content && comm.content?.length > 0) {
+        commentaries++;
+      }
+    });
+  });
+
+  return (
+    <Flex vertical={layoutCommentary === "row"}>
+      <Flex gap="middle" vertical={direction === "row"} style={{ flex: 5 }}>
+        {/**原文区 */}
+        <div className="sent_read" style={{ flex: 5, padding: 4 }}>
+          {data?.map((item) => {
+            return item.origin?.map((org, id) => {
+              return <MdOrigin text={org.html} key={id} />;
+            });
+          })}
+        </div>
+        {/**译文区 */}
+        <div
+          className="sent_read"
+          style={{ display: "block", flex: 5, padding: 4 }}
+        >
+          {channels.map((channel) => {
+            return (
+              <div>
+                {data?.map((item) => {
+                  return item.translation?.map((trans, id) => {
+                    if (trans.channel.id === channel) {
+                      return <MdTranslation text={trans.html} key={id} />;
+                    }
+                  });
+                })}
+              </div>
+            );
+          })}
+        </div>
+      </Flex>
+      {/**注疏区 */}
+      {commentaries > 0 && (
+        <div style={{ flex: 5 }}>
+          <CommentaryPad>
+            {data?.map((item) => {
+              return item.commentaries?.map((item, id) => {
+                return <MdTranslation text={item.html} key={id} />;
+              });
+            })}
+          </CommentaryPad>
+        </div>
+      )}
+    </Flex>
+  );
+};
+
+export default ParagraphReadPara;

+ 72 - 0
dashboard-v6/src/components/tipitaka/components/ParagraphReadSent.tsx

@@ -0,0 +1,72 @@
+import { Flex } from "antd";
+import { useSetting } from "../../../hooks/useSetting";
+import MdOrigin from "../../sentence/components/MdOrigin";
+import MdTranslation from "../../sentence/components/MdTranslation";
+import type { IWidgetSentEditInner } from "../../sentence/SentEdit";
+import CommentaryPad from "./CommentaryPad";
+
+interface IWidget {
+  data?: IWidgetSentEditInner[];
+}
+const ParagraphRead = ({ data }: IWidget) => {
+  const direction = useSetting("setting.layout.direction");
+  const layoutCommentary = useSetting("setting.layout.commentary");
+  console.debug("direction", direction);
+
+  const channels: string[] = [];
+  data?.forEach((value) => {
+    value.translation?.forEach((trans) => {
+      if (!channels.includes(trans.channel.id)) {
+        channels.push(trans.channel.id);
+      }
+    });
+  });
+
+  return (
+    <div>
+      {data?.map((item) => {
+        return (
+          <Flex vertical={layoutCommentary === "row"}>
+            <Flex
+              gap="middle"
+              vertical={direction === "row"}
+              style={{ flex: 5 }}
+            >
+              {/**原文区 */}
+              <div className="sent_read" style={{ flex: 5, padding: 4 }}>
+                {item.origin?.map((org, id) => {
+                  return <MdOrigin text={org.html} key={id} />;
+                })}
+              </div>
+              {/**译文区 */}
+              <div
+                className="sent_read"
+                style={{ display: "block", flex: 5, padding: 4 }}
+              >
+                {item.translation?.map((tran, id) => {
+                  return (
+                    <div>
+                      <MdTranslation text={tran.html} key={id} />
+                    </div>
+                  );
+                })}
+              </div>
+            </Flex>
+            {/**注疏区 */}
+            {item.commentaries && item.commentaries?.length > 0 && (
+              <div style={{ flex: 5 }}>
+                <CommentaryPad>
+                  {item.commentaries?.map((item, id) => {
+                    return <MdTranslation text={item.html} key={id} />;
+                  })}
+                </CommentaryPad>
+              </div>
+            )}
+          </Flex>
+        );
+      })}
+    </div>
+  );
+};
+
+export default ParagraphRead;