PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 3.1.0
Defender Security – Malware Scanner, Login Security & Firewall v3.1.0
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
defender-security / vendor / gettext / languages / src / Exporter / Html.php

Html.php in Defender Security – Malware Scanner, Login Security & Firewall 3.1.0, at vendor/gettext/languages/src/Exporter/Html.php

70 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Gettext\Languages\Exporter;
4
5 class Html extends Exporter
6 {
7 /**
8 * {@inheritdoc}
9 *
10 * @see \Gettext\Languages\Exporter\Exporter::getDescription()
11 */
12 public static function getDescription()
13 {
14 return 'Build a HTML table';
15 }
16
17 /**
18 * {@inheritdoc}
19 *
20 * @see \Gettext\Languages\Exporter\Exporter::toStringDo()
21 */
22 protected static function toStringDo($languages)
23 {
24 return self::buildTable($languages, false);
25 }
26
27 protected static function h($str)
28 {
29 return htmlspecialchars($str, ENT_COMPAT, 'UTF-8');
30 }
31
32 protected static function buildTable($languages, $forDocs)
33 {
34 $prefix = $forDocs ? ' ' : '';
35 $lines = array();
36 $lines[] = $prefix . '<table' . ($forDocs ? ' class="table table-bordered table-condensed table-striped"' : '') . '>';
37 $lines[] = $prefix . ' <thead>';
38 $lines[] = $prefix . ' <tr>';
39 $lines[] = $prefix . ' <th>Language code</th>';
40 $lines[] = $prefix . ' <th>Language name</th>';
41 $lines[] = $prefix . ' <th># plurals</th>';
42 $lines[] = $prefix . ' <th>Formula</th>';
43 $lines[] = $prefix . ' <th>Plurals</th>';
44 $lines[] = $prefix . ' </tr>';
45 $lines[] = $prefix . ' </thead>';
46 $lines[] = $prefix . ' <tbody>';
47 foreach ($languages as $lc) {
48 $lines[] = $prefix . ' <tr>';
49 $lines[] = $prefix . ' <td>' . $lc->id . '</td>';
50 $name = self::h($lc->name);
51 if (isset($lc->supersededBy)) {
52 $name .= '<br /><small><span>Superseded by</span> ' . $lc->supersededBy . '</small>';
53 }
54 $lines[] = $prefix . ' <td>' . $name . '</td>';
55 $lines[] = $prefix . ' <td>' . count($lc->categories) . '</td>';
56 $lines[] = $prefix . ' <td>' . self::h($lc->formula) . '</td>';
57 $cases = array();
58 foreach ($lc->categories as $c) {
59 $cases[] = '<li><span>' . $c->id . '</span><code>' . self::h($c->examples) . '</code></li>';
60 }
61 $lines[] = $prefix . ' <td><ol' . ($forDocs ? ' class="cases"' : '') . ' start="0">' . implode('', $cases) . '</ol></td>';
62 $lines[] = $prefix . ' </tr>';
63 }
64 $lines[] = $prefix . ' </tbody>';
65 $lines[] = $prefix . '</table>';
66
67 return implode("\n", $lines);
68 }
69 }
70