From a26b365809121b18b3c928316ca22a08a1ec9432 Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Wed, 14 Sep 2016 13:19:45 +0200 Subject: [PATCH] Added support for collapsible quotes --- com.woltlab.wcf/templates/codeBBCodeTag.tpl | 33 ------------------- com.woltlab.wcf/templates/codeMetaCode.tpl | 4 +-- com.woltlab.wcf/templates/quoteBBCodeTag.tpl | 26 --------------- com.woltlab.wcf/templates/quoteMetaCode.tpl | 17 ++++++++-- .../node/HtmlOutputNodeWoltlabQuote.class.php | 9 +++++ .../install/files/style/bbcode/quote.scss | 29 ++++++++++++++++ 6 files changed, 55 insertions(+), 63 deletions(-) delete mode 100644 com.woltlab.wcf/templates/codeBBCodeTag.tpl delete mode 100644 com.woltlab.wcf/templates/quoteBBCodeTag.tpl diff --git a/com.woltlab.wcf/templates/codeBBCodeTag.tpl b/com.woltlab.wcf/templates/codeBBCodeTag.tpl deleted file mode 100644 index 37743a4dc9..0000000000 --- a/com.woltlab.wcf/templates/codeBBCodeTag.tpl +++ /dev/null @@ -1,33 +0,0 @@ -
-
-
-

{@$highlighter->getTitle()}{if $filename}: {$filename}{/if}

-
- -
    - {assign var='lineNumber' value=$startLineNumber} - {foreach from=$content item=line} - {if $lineNumbers[$lineNumber]|isset} -
  1. {@$line}
  2. - {else} -
  3. {@$line}
  4. - {/if} - - {assign var='lineNumber' value=$lineNumber+1} - {/foreach} -
-
- - {if $lines > 10} - {lang}wcf.bbcode.button.showAll{/lang} - - {if !$__overlongCodeBoxSeen|isset} - {assign var='__overlongCodeBoxSeen' value=true} - - {/if} - {/if} -
diff --git a/com.woltlab.wcf/templates/codeMetaCode.tpl b/com.woltlab.wcf/templates/codeMetaCode.tpl index 8310015ef7..9a52c8554d 100644 --- a/com.woltlab.wcf/templates/codeMetaCode.tpl +++ b/com.woltlab.wcf/templates/codeMetaCode.tpl @@ -21,8 +21,8 @@ {if $lines > 10} {lang}wcf.bbcode.button.showAll{/lang} - {if !$__overlongCodeBoxSeen|isset} - {assign var='__overlongCodeBoxSeen' value=true} + {if !$__overlongBBCodeBoxSeen|isset} + {assign var='__overlongBBCodeBoxSeen' value=true} + {/if} + {/if} diff --git a/wcfsetup/install/files/lib/system/html/output/node/HtmlOutputNodeWoltlabQuote.class.php b/wcfsetup/install/files/lib/system/html/output/node/HtmlOutputNodeWoltlabQuote.class.php index f45d884690..2c10a3f78d 100644 --- a/wcfsetup/install/files/lib/system/html/output/node/HtmlOutputNodeWoltlabQuote.class.php +++ b/wcfsetup/install/files/lib/system/html/output/node/HtmlOutputNodeWoltlabQuote.class.php @@ -31,9 +31,17 @@ class HtmlOutputNodeWoltlabQuote extends AbstractHtmlOutputNode { foreach ($elements as $element) { switch ($this->outputType) { case 'text/html': + $collapse = false; + + // try to predict long content + if ($element->getElementsByTagName('p')->length > 5 || $element->getElementsByTagName('br')->length > 5) { + $collapse = true; + } + $nodeIdentifier = StringUtil::getRandomID(); $htmlNodeProcessor->addNodeData($this, $nodeIdentifier, [ 'author' => $element->getAttribute('data-author'), + 'collapse' => $collapse, 'url' => $element->getAttribute('data-link') ]); @@ -79,6 +87,7 @@ class HtmlOutputNodeWoltlabQuote extends AbstractHtmlOutputNode { } WCF::getTPL()->assign([ + 'collapseQuote' => $data['collapse'], 'quoteLink' => $data['url'], 'quoteAuthor' => $data['author'], 'quoteAuthorObject' => $quoteAuthorObject, diff --git a/wcfsetup/install/files/style/bbcode/quote.scss b/wcfsetup/install/files/style/bbcode/quote.scss index cf288f6b88..704f4a3d74 100644 --- a/wcfsetup/install/files/style/bbcode/quote.scss +++ b/wcfsetup/install/files/style/bbcode/quote.scss @@ -33,6 +33,35 @@ woltlab-quote, min-height: 104px; } + &.collapsed { + position: relative; + + > .quoteBoxContent { + overflow: hidden; + max-height: 100px; + } + + > .toggleButton { + bottom: 0; + box-shadow: 0 -10px 50px 10px opacify($wcfContentBackground, .9); + left: 0; + padding-bottom: 10px; + position: absolute; + right: 0; + z-index: 1; + } + } + + > .toggleButton { + background-color: opacify($wcfContentBackground, .9); + cursor: pointer; + display: block; + padding: 10px 20px 0 10px; + text-align: center; + + @include wcfFontSmall; + } + .quoteBox { min-height: 0; } -- 2.20.1