Verzeichnisstruktur phpBB-3.2.0
- Veröffentlicht
- 06.01.2017
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
XSLT.php
01 <?php
02
03 /*
04 * @package s9e\TextFormatter
05 * @copyright Copyright (c) 2010-2016 The s9e Authors
06 * @license http://www.opensource.org/licenses/mit-license.php The MIT License
07 */
08 namespace s9e\TextFormatter\Configurator\RendererGenerators;
09 use s9e\TextFormatter\Configurator\Helpers\TemplateHelper;
10 use s9e\TextFormatter\Configurator\RendererGenerator;
11 use s9e\TextFormatter\Configurator\RendererGenerators\XSLT\Optimizer;
12 use s9e\TextFormatter\Configurator\Rendering;
13 use s9e\TextFormatter\Renderers\XSLT as XSLTRenderer;
14 class XSLT implements RendererGenerator
15 {
16 public $optimizer;
17 public function __construct()
18 {
19 $this->optimizer = new Optimizer;
20 }
21 public function getRenderer(Rendering $rendering)
22 {
23 return new XSLTRenderer($this->getXSL($rendering));
24 }
25 public function getXSL(Rendering $rendering)
26 {
27 $groupedTemplates = array();
28 $prefixes = array();
29 $templates = $rendering->getTemplates();
30 TemplateHelper::replaceHomogeneousTemplates($templates, 3);
31 foreach ($templates as $tagName => $template)
32 {
33 $template = $this->optimizer->optimizeTemplate($template);
34 $groupedTemplates[$template][] = $tagName;
35 $pos = \strpos($tagName, ':');
36 if ($pos !== \false)
37 $prefixes[\substr($tagName, 0, $pos)] = 1;
38 }
39 $xsl = '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"';
40 $prefixes = \array_keys($prefixes);
41 \sort($prefixes);
42 foreach ($prefixes as $prefix)
43 $xsl .= ' xmlns:' . $prefix . '="urn:s9e:TextFormatter:' . $prefix . '"';
44 if (!empty($prefixes))
45 $xsl .= ' exclude-result-prefixes="' . \implode(' ', $prefixes) . '"';
46 $xsl .= '><xsl:output method="html" encoding="utf-8" indent="no"';
47 $xsl .= '/>';
48 foreach ($rendering->getAllParameters() as $paramName => $paramValue)
49 {
50 $xsl .= '<xsl:param name="' . \htmlspecialchars($paramName) . '"';
51 if ($paramValue === '')
52 $xsl .= '/>';
53 else
54 $xsl .= '>' . \htmlspecialchars($paramValue) . '</xsl:param>';
55 }
56 foreach ($groupedTemplates as $template => $tagNames)
57 {
58 $xsl .= '<xsl:template match="' . \implode('|', $tagNames) . '"';
59 if ($template === '')
60 $xsl .= '/>';
61 else
62 $xsl .= '>' . $template . '</xsl:template>';
63 }
64 $xsl .= '</xsl:stylesheet>';
65 return $xsl;
66 }
67 }