From: Matthias Schmidt Date: Mon, 3 May 2021 10:34:13 +0000 (+0200) Subject: Merge branch '5.3' X-Git-Tag: 5.4.0_Alpha_1~12 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=a534a7a2201f452d5e68e70def988f980cb03774;p=GitHub%2FWoltLab%2FWCF.git Merge branch '5.3' --- a534a7a2201f452d5e68e70def988f980cb03774 diff --cc wcfsetup/install/files/lib/system/html/output/node/HtmlOutputNodeTable.class.php index 2c405fb231,f2befd3238..92eca8673f --- a/wcfsetup/install/files/lib/system/html/output/node/HtmlOutputNodeTable.class.php +++ b/wcfsetup/install/files/lib/system/html/output/node/HtmlOutputNodeTable.class.php @@@ -13,35 -11,60 +13,62 @@@ use wcf\system\html\node\AbstractHtmlNo * @package WoltLabSuite\Core\System\Html\Output\Node * @since 3.0 */ -class HtmlOutputNodeTable extends AbstractHtmlOutputNode { - /** - * @inheritDoc - */ - protected $tagName = 'table'; - - /** - * @inheritDoc - */ - public function process(array $elements, AbstractHtmlNodeProcessor $htmlNodeProcessor) { - if ($this->outputType === 'text/html' || $this->outputType === 'text/simplified-html') { - /** @var \DOMElement $element */ - foreach ($elements as $element) { - // Detect cells which are visually in the last row of a table due to their - // `rowspan` property. - /** @var \DOMElement $td */ - foreach ($element->getElementsByTagName('td') as $td) { - $rowspan = $td->getAttribute('rowspan'); - if ($rowspan) { - $nextTrCount = 0; - $nextSibling = $td->parentNode->nextSibling; - while ($nextSibling) { - if ($nextSibling->nodeType === \XML_ELEMENT_NODE && $nextSibling->tagName === "tr") { - $nextTrCount++; - } - $nextSibling = $nextSibling->nextSibling; - } - - if ($rowspan - 1 === $nextTrCount) { - $class = $td->getAttribute('class'); - if ($class) { - $class .= " "; - } - $class .= "lastRow"; - - $td->setAttribute('class', $class); - } - } - } - - // check if table is not contained within another table - $parent = $element; - while ($parent = $parent->parentNode) { - if ($parent->nodeName === 'table') { - continue 2; - } - } - - $div = $element->ownerDocument->createElement('div'); - $div->setAttribute('class', 'messageTableOverflow'); - - $element->parentNode->insertBefore($div, $element); - $div->appendChild($element); - } - } - } +class HtmlOutputNodeTable extends AbstractHtmlOutputNode +{ + /** + * @inheritDoc + */ + protected $tagName = 'table'; + + /** + * @inheritDoc + */ + public function process(array $elements, AbstractHtmlNodeProcessor $htmlNodeProcessor) + { + if ($this->outputType === 'text/html' || $this->outputType === 'text/simplified-html') { + /** @var \DOMElement $element */ + foreach ($elements as $element) { ++ // Detect cells which are visually in the last row of a table due to their ++ // `rowspan` property. ++ /** @var \DOMElement $td */ ++ foreach ($element->getElementsByTagName('td') as $td) { ++ $rowspan = $td->getAttribute('rowspan'); ++ if ($rowspan) { ++ $nextTrCount = 0; ++ $nextSibling = $td->parentNode->nextSibling; ++ while ($nextSibling) { ++ if ($nextSibling->nodeType === \XML_ELEMENT_NODE && $nextSibling->tagName === "tr") { ++ $nextTrCount++; ++ } ++ $nextSibling = $nextSibling->nextSibling; ++ } ++ ++ if ($rowspan - 1 === $nextTrCount) { ++ $class = $td->getAttribute('class'); ++ if ($class) { ++ $class .= " "; ++ } ++ $class .= "lastRow"; ++ ++ $td->setAttribute('class', $class); ++ } ++ } ++ } ++ + // check if table is not contained within another table + $parent = $element; + while ($parent = $parent->parentNode) { + if ($parent->nodeName === 'table') { - continue; ++ continue 2; + } + } + + $div = $element->ownerDocument->createElement('div'); + $div->setAttribute('class', 'messageTableOverflow'); + + $element->parentNode->insertBefore($div, $element); + $div->appendChild($element); + } + } + } } diff --cc wcfsetup/install/files/style/ui/tabularBox.scss index c41f93de88,9458c4b99d..b364042660 --- a/wcfsetup/install/files/style/ui/tabularBox.scss +++ b/wcfsetup/install/files/style/ui/tabularBox.scss @@@ -264,8 -263,8 +264,8 @@@ &:hover > td { background-color: rgb(242, 242, 242); } - + - &:not(:last-child) > td { + &:not(:last-child) > td:not(.lastRow) { border-bottom: 1px solid $wcfContentBorderInner; } }