Explorar el Código

:octocat: extract markup css class generation to QRMarkup::getCssClass()

smiley hace 3 años
padre
commit
851246003c
Se han modificado 3 ficheros con 31 adiciones y 8 borrados
  1. 5 0
      src/Output/QRMarkup.php
  2. 8 1
      src/Output/QRMarkupHTML.php
  3. 18 7
      src/Output/QRMarkupSVG.php

+ 5 - 0
src/Output/QRMarkup.php

@@ -54,6 +54,11 @@ abstract class QRMarkup extends QROutputAbstract{
 		return $data;
 	}
 
+	/**
+	 * returns a string with all css classes for the current element
+	 */
+	abstract protected function getCssClass(int $M_TYPE):string;
+
 	/**
 	 *
 	 */

+ 8 - 1
src/Output/QRMarkupHTML.php

@@ -23,7 +23,7 @@ class QRMarkupHTML extends QRMarkup{
 	protected function createMarkup(bool $saveToFile):string{
 		$html = empty($this->options->cssClass)
 			? '<div>'
-			: sprintf('<div class="%s">', $this->options->cssClass);
+			: sprintf('<div class="%s">', $this->getCssClass());
 
 		$html .= $this->options->eol;
 
@@ -50,4 +50,11 @@ class QRMarkupHTML extends QRMarkup{
 		return $html;
 	}
 
+	/**
+	 * @inheritDoc
+	 */
+	protected function getCssClass(int $M_TYPE):string{
+		return $this->options->cssClass;
+	}
+
 }

+ 18 - 7
src/Output/QRMarkupSVG.php

@@ -91,22 +91,33 @@ class QRMarkupSVG extends QRMarkup{
 				continue;
 			}
 
-			$cssClass = implode(' ', [
-				'qr-'.$M_TYPE,
-				($M_TYPE & QRMatrix::IS_DARK) === QRMatrix::IS_DARK ? 'dark' : 'light',
-				$this->options->cssClass,
-			]);
-
 			$format = empty($this->moduleValues[$M_TYPE])
 				? '<path class="%1$s" d="%2$s"/>'
 				: '<path class="%1$s" fill="%3$s" fill-opacity="%4$s" d="%2$s"/>';
 
-			$svg[] = sprintf($format, $cssClass, $path, $this->moduleValues[$M_TYPE], $this->options->svgOpacity);
+			$svg[] = sprintf(
+				$format,
+				$this->getCssClass($M_TYPE),
+				$path,
+				$this->moduleValues[$M_TYPE],
+				$this->options->svgOpacity)
+			;
 		}
 
 		return implode($this->options->eol, $svg);
 	}
 
+	/**
+	 * @inheritDoc
+	 */
+	protected function getCssClass(int $M_TYPE):string{
+		return implode(' ', [
+			'qr-'.$M_TYPE,
+			($M_TYPE & QRMatrix::IS_DARK) === QRMatrix::IS_DARK ? 'dark' : 'light',
+			$this->options->cssClass,
+		]);
+	}
+
 	/**
 	 * returns a path segment for a single module
 	 *