From bea9dd89a00d7654796549a28c4282a699984672 Mon Sep 17 00:00:00 2001 From: Paul Pestov Date: Fri, 1 Oct 2021 17:49:05 +0200 Subject: [PATCH 1/5] Handle choice tag with abbr and expan --- src/Controller/Tei2SolrController.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Controller/Tei2SolrController.php b/src/Controller/Tei2SolrController.php index e36fd80..92ee0c1 100755 --- a/src/Controller/Tei2SolrController.php +++ b/src/Controller/Tei2SolrController.php @@ -944,6 +944,7 @@ class Tei2SolrController extends AbstractController $element->nodeName === 'address' || $element->nodeName === 'closer' || $element->nodeName === 'list' || + $element->nodeName === 'choice' || ($element->nodeName === 'signed' && 'closer' !== $element->parentNode->nodeName) )) { @@ -959,6 +960,7 @@ class Tei2SolrController extends AbstractController && ($childElement->parentNode->nodeName !== 'abbr' && ($childElement->nodeName !== 'del' || $childElement->parentNode->nodeName !== 'add')) && $childElement->parentNode->nodeName !== 'note' && $childElement->parentNode->nodeName !== 'seg' && $childElement->parentNode->nodeName !== 'ref' + && $childElement->parentNode->nodeName !== 'expan' ) { if (isset($add) && !empty($add)) { $tText .= ' ⟨' . $childElement->data . ' ' . $add; @@ -1122,6 +1124,14 @@ class Tei2SolrController extends AbstractController } } } + } elseif ('abbr' === $childElement->nodeName && 'choice' === $childElement->parentNode->nodeName) { + if (isset($childElement->firstChild) && $childElement->firstChild->nodeName === '#text') { + $tText .= $childElement->firstChild->data; + } + } elseif ('expan' === $childElement->nodeName && 'choice' === $childElement->parentNode->nodeName) { + if (isset($childElement->firstChild) && $childElement->firstChild->nodeName === '#text') { + $eText .= $childElement->firstChild->data; + } } elseif ('name' === $childElement->nodeName && (isset($childElement->attributes[1]->value) && !empty($childElement->attributes[1]->value)) && (isset($childElement->attributes[0]->value) && !empty($childElement->attributes[0]->value))) { $entityName = $this->getEntityName($childElement); $uuid = $this->getUuid(); -- GitLab From a1107cf49bd36afa83934df55e50f0c15340cba8 Mon Sep 17 00:00:00 2001 From: Paul Pestov Date: Mon, 4 Oct 2021 16:02:14 +0200 Subject: [PATCH 2/5] Handle del tag with "scrb" in the attribute --- src/Controller/Tei2SolrController.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Controller/Tei2SolrController.php b/src/Controller/Tei2SolrController.php index 92ee0c1..062abd6 100755 --- a/src/Controller/Tei2SolrController.php +++ b/src/Controller/Tei2SolrController.php @@ -1082,7 +1082,18 @@ class Tei2SolrController extends AbstractController if (!empty($childElement->attributes)) { foreach ($childElement->attributes as $attribute) { if ('hand' === $attribute->nodeName) { - $del = 'str. ' . str_replace('_', ' ', trim($attribute->nodeValue, '#')) . ']'; + if (strpos($attribute->nodeValue, 'scrb') !== false) { + $valueArr = explode('scrb', $attribute->nodeValue); + if (isset($valueArr[1])) { + $valueArr = explode('_', ltrim($valueArr[1], '_')); + if (count($valueArr) === 2) { + $del = 'str Schrhd.' . $valueArr[0] . ' ' . $valueArr[1] . ''; + } + } + } else { + $del = 'str. ' . str_replace('_', ' ', trim($attribute->nodeValue, '#')) . ''; + } + $del .= ']'; } } } else { -- GitLab From 525d9743ce3d101d8b6a8e819c654367786b88ce Mon Sep 17 00:00:00 2001 From: Paul Pestov Date: Mon, 4 Oct 2021 22:31:08 +0200 Subject: [PATCH 3/5] Refactor end bracket at del tag --- src/Controller/Tei2SolrController.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Controller/Tei2SolrController.php b/src/Controller/Tei2SolrController.php index 062abd6..cdca08e 100755 --- a/src/Controller/Tei2SolrController.php +++ b/src/Controller/Tei2SolrController.php @@ -1093,11 +1093,14 @@ class Tei2SolrController extends AbstractController } else { $del = 'str. ' . str_replace('_', ' ', trim($attribute->nodeValue, '#')) . ''; } - $del .= ']'; } } } else { - $del = 'str.]'; + $del = 'str.'; + } + + if (!empty($del)) { + $del .= ']'; } } } elseif ('handShift' === $childElement->nodeName && 'signed' === $childElement->parentNode->nodeName) { -- GitLab From 87e724c44cd258d2b56861df4564d756027060c3 Mon Sep 17 00:00:00 2001 From: Paul Pestov Date: Mon, 4 Oct 2021 22:35:49 +0200 Subject: [PATCH 4/5] Handle add tag with "scrb" in attribute value --- src/Controller/Tei2SolrController.php | 28 +++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/Controller/Tei2SolrController.php b/src/Controller/Tei2SolrController.php index cdca08e..e38b0e8 100755 --- a/src/Controller/Tei2SolrController.php +++ b/src/Controller/Tei2SolrController.php @@ -1067,14 +1067,22 @@ class Tei2SolrController extends AbstractController $pattern = '/^#[a-z_]*$/i'; foreach ($childElement->attributes as $attribute) { if ('hand' === $attribute->nodeName) { - $match = preg_match($pattern, $attribute->nodeValue, $matches); - if ($match) { - $add = 'erg. ' . str_replace('_', ' ', trim($attribute->nodeValue, '#')) . '⟩ '; + if (strpos($attribute->nodeValue, 'scrb') !== false) { + $add = $this->transformAddScrb($attribute->nodeValue); + } else { + $match = preg_match($pattern, $attribute->nodeValue, $matches); + if ($match) { + $add = 'erg. ' . str_replace('_', ' ', trim($attribute->nodeValue, '#')) . ''; + } } } } } else { - $add = 'erg.⟩ '; + $add = 'erg.'; + } + + if (!empty($add)) { + $add .= '⟩ '; } } } elseif ('del' === $childElement->nodeName) { @@ -1293,6 +1301,18 @@ class Tei2SolrController extends AbstractController return $elementText; } + private function transformAddScrb($attributeValue): ?string + { + $valueArr = explode('scrb', $attributeValue); + if (isset($valueArr[1])) { + $valueArr = explode('_', ltrim($valueArr[1], '_')); + if (count($valueArr) === 2) { + return 'str Schrhd.' . $valueArr[0] . ' ' . $valueArr[1] . ''; + } + } + return null; + } + /** * @Route("gitlab") */ -- GitLab From 08f75a88bceb81faf06e4f0436c5641d66031502 Mon Sep 17 00:00:00 2001 From: Paul Pestov Date: Tue, 5 Oct 2021 13:14:01 +0200 Subject: [PATCH 5/5] Revert "Handle choice tag with abbr and expan" This reverts commit bea9dd89a00d7654796549a28c4282a699984672. --- src/Controller/Tei2SolrController.php | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/Controller/Tei2SolrController.php b/src/Controller/Tei2SolrController.php index bc0360d..976c62b 100755 --- a/src/Controller/Tei2SolrController.php +++ b/src/Controller/Tei2SolrController.php @@ -944,7 +944,6 @@ class Tei2SolrController extends AbstractController $element->nodeName === 'address' || $element->nodeName === 'closer' || $element->nodeName === 'list' || - $element->nodeName === 'choice' || ($element->nodeName === 'signed' && 'closer' !== $element->parentNode->nodeName) )) { @@ -960,7 +959,6 @@ class Tei2SolrController extends AbstractController && ($childElement->parentNode->nodeName !== 'abbr' && ($childElement->nodeName !== 'del' || $childElement->parentNode->nodeName !== 'add')) && $childElement->parentNode->nodeName !== 'note' && $childElement->parentNode->nodeName !== 'seg' && $childElement->parentNode->nodeName !== 'ref' - && $childElement->parentNode->nodeName !== 'expan' ) { if (isset($add) && !empty($add)) { $tText .= ' ⟨' . $childElement->data . ' ' . $add; @@ -1168,14 +1166,6 @@ class Tei2SolrController extends AbstractController } } } - } elseif ('abbr' === $childElement->nodeName && 'choice' === $childElement->parentNode->nodeName) { - if (isset($childElement->firstChild) && $childElement->firstChild->nodeName === '#text') { - $tText .= $childElement->firstChild->data; - } - } elseif ('expan' === $childElement->nodeName && 'choice' === $childElement->parentNode->nodeName) { - if (isset($childElement->firstChild) && $childElement->firstChild->nodeName === '#text') { - $eText .= $childElement->firstChild->data; - } } elseif ('name' === $childElement->nodeName && (isset($childElement->attributes[1]->value) && !empty($childElement->attributes[1]->value)) && (isset($childElement->attributes[0]->value) && !empty($childElement->attributes[0]->value))) { $entityName = $this->getEntityName($childElement); $uuid = $this->getUuid(); -- GitLab