diff options
| author | Greg Roach <fisharebest@webtrees.net> | 2018-07-16 08:20:33 +0100 |
|---|---|---|
| committer | Greg Roach <fisharebest@webtrees.net> | 2018-07-16 08:20:33 +0100 |
| commit | c1010eda29c0909ed4d5d463f32d32bfefdd4dfe (patch) | |
| tree | fbb656ebc014aa1295ac8e6176f41e89f94b91e7 /app/Report/ReportHtmlText.php | |
| parent | 782f08d9bd2bfa06635da947ee34f8e1afd65088 (diff) | |
| download | webtrees-c1010eda29c0909ed4d5d463f32d32bfefdd4dfe.tar.gz webtrees-c1010eda29c0909ed4d5d463f32d32bfefdd4dfe.tar.bz2 webtrees-c1010eda29c0909ed4d5d463f32d32bfefdd4dfe.zip | |
Use PSR2 code style
Diffstat (limited to 'app/Report/ReportHtmlText.php')
| -rw-r--r-- | app/Report/ReportHtmlText.php | 310 |
1 files changed, 164 insertions, 146 deletions
diff --git a/app/Report/ReportHtmlText.php b/app/Report/ReportHtmlText.php index f054953a9e..89dc8d5c27 100644 --- a/app/Report/ReportHtmlText.php +++ b/app/Report/ReportHtmlText.php @@ -18,159 +18,177 @@ namespace Fisharebest\Webtrees\Report; /** * Class ReportHtmlText */ -class ReportHtmlText extends ReportBaseText { - /** - * Render the elements. - * - * @param ReportHtml $renderer - * @param int $curx - * @param bool $attrib Is is called from a different element? - */ - public function render($renderer, $curx = 0, $attrib = true) { +class ReportHtmlText extends ReportBaseText +{ + /** + * Render the elements. + * + * @param ReportHtml $renderer + * @param int $curx + * @param bool $attrib Is is called from a different element? + */ + public function render($renderer, $curx = 0, $attrib = true) + { - // Setup the style name - if ($renderer->getCurrentStyle() != $this->styleName) { - $renderer->setCurrentStyle($this->styleName); - } - $temptext = str_replace('#PAGENUM#', $renderer->pageNo(), $this->text); - // underline «title» part of Source item - $temptext = str_replace(['«', '»'], ['<u>', '</u>'], $temptext); + // Setup the style name + if ($renderer->getCurrentStyle() != $this->styleName) { + $renderer->setCurrentStyle($this->styleName); + } + $temptext = str_replace('#PAGENUM#', $renderer->pageNo(), $this->text); + // underline «title» part of Source item + $temptext = str_replace([ + '«', + '»', + ], [ + '<u>', + '</u>', + ], $temptext); - // If any text at all - if (!empty($temptext)) { - // If called by an other element - if (!$attrib) { - $renderer->write($temptext, $this->color); - } else { - // Save the start positions - $startX = $renderer->getX(); - $startY = $renderer->getY(); - $width = $renderer->getRemainingWidth(); - // If text is wider then page width then wrap it - if ($renderer->getStringWidth($temptext) > $width) { - $lines = explode("\n", $temptext); - foreach ($lines as $line) { - echo '<div style="position:absolute;top:', $startY, 'pt;', $renderer->alignRTL, ':', $startX, 'pt;width:', $width, 'pt;">'; - $line = $renderer->textWrap($line, $width); - $startY += $renderer->getTextCellHeight($line); - $renderer->setY($startY); - $renderer->write($line, $this->color); - echo "</div>\n"; - } - } else { - echo '<div style="position:absolute;top:', $startY, 'pt;', $renderer->alignRTL, ':', $startX, 'pt;width:', $width, 'pt;">'; - $renderer->write($temptext, $this->color); - echo "</div>\n"; - $renderer->setX($startX + $renderer->getStringWidth($temptext)); - if ($renderer->countLines($temptext) != 1) { - $renderer->setXy(0, ($startY + $renderer->getTextCellHeight($temptext))); - } - } - } - } - } + // If any text at all + if (!empty($temptext)) { + // If called by an other element + if (!$attrib) { + $renderer->write($temptext, $this->color); + } else { + // Save the start positions + $startX = $renderer->getX(); + $startY = $renderer->getY(); + $width = $renderer->getRemainingWidth(); + // If text is wider then page width then wrap it + if ($renderer->getStringWidth($temptext) > $width) { + $lines = explode("\n", $temptext); + foreach ($lines as $line) { + echo '<div style="position:absolute;top:', $startY, 'pt;', $renderer->alignRTL, ':', $startX, 'pt;width:', $width, 'pt;">'; + $line = $renderer->textWrap($line, $width); + $startY += $renderer->getTextCellHeight($line); + $renderer->setY($startY); + $renderer->write($line, $this->color); + echo "</div>\n"; + } + } else { + echo '<div style="position:absolute;top:', $startY, 'pt;', $renderer->alignRTL, ':', $startX, 'pt;width:', $width, 'pt;">'; + $renderer->write($temptext, $this->color); + echo "</div>\n"; + $renderer->setX($startX + $renderer->getStringWidth($temptext)); + if ($renderer->countLines($temptext) != 1) { + $renderer->setXy(0, ($startY + $renderer->getTextCellHeight($temptext))); + } + } + } + } + } - /** - * Returns the height in points of the text element - * The height is already calculated in getWidth() - * - * @param ReportHtml $html - * - * @return float - */ - public function getHeight($html) { - $ct = substr_count($this->text, "\n"); - if ($ct > 0) { - $ct += 1; - } - $style = $html->getStyle($this->styleName); + /** + * Returns the height in points of the text element + * The height is already calculated in getWidth() + * + * @param ReportHtml $html + * + * @return float + */ + public function getHeight($html) + { + $ct = substr_count($this->text, "\n"); + if ($ct > 0) { + $ct += 1; + } + $style = $html->getStyle($this->styleName); - return ($style['size'] * $ct) * $html->cellHeightRatio; - } + return ($style['size'] * $ct) * $html->cellHeightRatio; + } - /** - * Get the width of text and wrap it too - * - * @param ReportHtml $html - * - * @return array - */ - public function getWidth($html) { - // Setup the style name - if ($html->getCurrentStyle() != $this->styleName) { - $html->setCurrentStyle($this->styleName); - } + /** + * Get the width of text and wrap it too + * + * @param ReportHtml $html + * + * @return array + */ + public function getWidth($html) + { + // Setup the style name + if ($html->getCurrentStyle() != $this->styleName) { + $html->setCurrentStyle($this->styleName); + } - // Check for the largest font size in the box - $fsize = $html->getCurrentStyleHeight(); - if ($fsize > $html->largestFontHeight) { - $html->largestFontHeight = $fsize; - } + // Check for the largest font size in the box + $fsize = $html->getCurrentStyleHeight(); + if ($fsize > $html->largestFontHeight) { + $html->largestFontHeight = $fsize; + } - // Get the line width for the text in points - $lw = $html->getStringWidth($this->text); - // Line Feed counter - Number of lines in the text - $lfct = $html->countLines($this->text); - // If there is still remaining wrap width... - if ($this->wrapWidthRemaining > 0) { - // Check with line counter too! - if ($lw >= $this->wrapWidthRemaining || $lfct > 1) { - $newtext = ''; - $wrapWidthRemaining = $this->wrapWidthRemaining; - $lines = explode("\n", $this->text); - // Go throught the text line by line - foreach ($lines as $line) { - // Line width in points + a little margin - $lw = $html->getStringWidth($line); - // If the line has to be wraped - if ($lw > $wrapWidthRemaining) { - $words = explode(' ', $line); - $addspace = count($words); - $lw = 0; - foreach ($words as $word) { - $addspace--; - $lw += $html->getStringWidth($word . ' '); - if ($lw <= $wrapWidthRemaining) { - $newtext .= $word; - if ($addspace != 0) { - $newtext .= ' '; - } - } else { - $lw = $html->getStringWidth($word . ' '); - $newtext .= "\n$word"; - if ($addspace != 0) { - $newtext .= ' '; - } - // Reset the wrap width to the cell width - $wrapWidthRemaining = $this->wrapWidthCell; - } - } - } else { - $newtext .= $line; - } - // Check the Line Feed counter - if ($lfct > 1) { - // Add a new line feed as long as it’s not the last line - $newtext .= "\n"; - // Reset the line width - $lw = 0; - // Reset the wrap width to the cell width - $wrapWidthRemaining = $this->wrapWidthCell; - } - $lfct--; - } - $this->text = $newtext; - $lfct = substr_count($this->text, "\n"); + // Get the line width for the text in points + $lw = $html->getStringWidth($this->text); + // Line Feed counter - Number of lines in the text + $lfct = $html->countLines($this->text); + // If there is still remaining wrap width... + if ($this->wrapWidthRemaining > 0) { + // Check with line counter too! + if ($lw >= $this->wrapWidthRemaining || $lfct > 1) { + $newtext = ''; + $wrapWidthRemaining = $this->wrapWidthRemaining; + $lines = explode("\n", $this->text); + // Go throught the text line by line + foreach ($lines as $line) { + // Line width in points + a little margin + $lw = $html->getStringWidth($line); + // If the line has to be wraped + if ($lw > $wrapWidthRemaining) { + $words = explode(' ', $line); + $addspace = count($words); + $lw = 0; + foreach ($words as $word) { + $addspace--; + $lw += $html->getStringWidth($word . ' '); + if ($lw <= $wrapWidthRemaining) { + $newtext .= $word; + if ($addspace != 0) { + $newtext .= ' '; + } + } else { + $lw = $html->getStringWidth($word . ' '); + $newtext .= "\n$word"; + if ($addspace != 0) { + $newtext .= ' '; + } + // Reset the wrap width to the cell width + $wrapWidthRemaining = $this->wrapWidthCell; + } + } + } else { + $newtext .= $line; + } + // Check the Line Feed counter + if ($lfct > 1) { + // Add a new line feed as long as it’s not the last line + $newtext .= "\n"; + // Reset the line width + $lw = 0; + // Reset the wrap width to the cell width + $wrapWidthRemaining = $this->wrapWidthCell; + } + $lfct--; + } + $this->text = $newtext; + $lfct = substr_count($this->text, "\n"); - return [$lw, 1, $lfct]; - } - } - $l = 0; - $lfct = substr_count($this->text, "\n"); - if ($lfct > 0) { - $l = 2; - } + return [ + $lw, + 1, + $lfct, + ]; + } + } + $l = 0; + $lfct = substr_count($this->text, "\n"); + if ($lfct > 0) { + $l = 2; + } - return [$lw, $l, $lfct]; - } + return [ + $lw, + $l, + $lfct, + ]; + } } |
