summaryrefslogtreecommitdiff
path: root/app/Report/ReportHtmlText.php
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2018-07-16 08:20:33 +0100
committerGreg Roach <fisharebest@webtrees.net>2018-07-16 08:20:33 +0100
commitc1010eda29c0909ed4d5d463f32d32bfefdd4dfe (patch)
treefbb656ebc014aa1295ac8e6176f41e89f94b91e7 /app/Report/ReportHtmlText.php
parent782f08d9bd2bfa06635da947ee34f8e1afd65088 (diff)
downloadwebtrees-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.php310
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,
+ ];
+ }
}