]> git.mxchange.org Git - friendica.git/blob - mod/babel.php
Add external template to mod/babel
[friendica.git] / mod / babel.php
1 <?php
2 /**
3  * @file mod/babel.php
4  */
5
6 use Friendica\Content\Text;
7 use Friendica\Core\L10n;
8
9 function visible_lf($s)
10 {
11         return str_replace("\n", '<br />', $s);
12 }
13
14 function babel_content()
15 {
16         $results = [];
17         if (!empty($_REQUEST['text'])) {
18                 switch(defaults($_REQUEST, 'type', 'bbcode')) {
19                         case 'bbcode':
20                                 $bbcode = trim($_REQUEST['text']);
21                                 $results[] = [
22                                         'title' => L10n::t('Source input'),
23                                         'content' => visible_lf($bbcode)
24                                 ];
25
26                                 $html = Text\BBCode::convert($bbcode);
27                                 $results[] = [
28                                         'title' => L10n::t("BBCode::convert \x28raw HTML\x28"),
29                                         'content' => htmlspecialchars($html)
30                                 ];
31
32                                 $results[] = [
33                                         'title' => L10n::t('BBCode::convert'),
34                                         'content' => $html
35                                 ];
36
37                                 $bbcode2 = Text\HTML::toBBCode($html);
38                                 $results[] = [
39                                         'title' => L10n::t('BBCode::convert => HTML::toBBCode'),
40                                         'content' => visible_lf($bbcode2)
41                                 ];
42
43                                 $markdown = Text\BBCode::toMarkdown($bbcode);
44                                 $results[] = [
45                                         'title' => L10n::t('BBCode::toMarkdown'),
46                                         'content' => visible_lf($markdown)
47                                 ];
48
49                                 $html2 = Text\Markdown::convert($markdown);
50                                 $results[] = [
51                                         'title' => L10n::t('BBCode::toMarkdown => Markdown::convert'),
52                                         'content' => $html2
53                                 ];
54
55                                 $bbcode3 = Text\Markdown::toBBCode($markdown);
56                                 $results[] = [
57                                         'title' => L10n::t('BBCode::toMarkdown => Markdown::toBBCode'),
58                                         'content' => visible_lf($bbcode3)
59                                 ];
60
61                                 $bbcode4 = Text\HTML::toBBCode($html2);
62                                 $results[] = [
63                                         'title' => L10n::t('BBCode::toMarkdown =>  Markdown::convert => HTML::toBBCode'),
64                                         'content' => visible_lf($bbcode4)
65                                 ];
66                                 break;
67                         case 'markdown':
68                                 $markdown = trim($_REQUEST['text']);
69                                 $results[] = [
70                                         'title' => L10n::t('Source input \x28Diaspora format\x29'),
71                                         'content' => '<pre>' . $markdown . '</pre>'
72                                 ];
73
74                                 $bbcode = Text\Markdown::toBBCode($markdown);
75                                 $results[] = [
76                                         'title' => L10n::t('Markdown::toBBCode'),
77                                         'content' => '<pre>' . $bbcode . '</pre>'
78                                 ];
79                                 break;
80                         case 'html' :
81                                 $html = trim($_REQUEST['text']);
82                                 $results[] = [
83                                         'title' => L10n::t("Raw HTML input"),
84                                         'content' => htmlspecialchars($html)
85                                 ];
86
87                                 $results[] = [
88                                         'title' => L10n::t('HTML Input'),
89                                         'content' => $html
90                                 ];
91
92                                 $bbcode = Text\HTML::toBBCode($html);
93                                 $results[] = [
94                                         'title' => L10n::t('HTML::toBBCode'),
95                                         'content' => visible_lf($bbcode)
96                                 ];
97
98                                 $text = Text\HTML::toPlaintext($html);
99                                 $results[] = [
100                                         'title' => L10n::t('HTML::toPlaintext'),
101                                         'content' => '<pre>' . $text . '</pre>'
102                                 ];
103                 }
104         }
105
106         $tpl = get_markup_template('babel.tpl');
107         $o = replace_macros($tpl, [
108                 '$text' => ['text', L10n::t('Source text'), defaults($_REQUEST, 'text', ''), ''],
109                 '$type_bbcode'   => ['type', L10n::t('BBCode')  , 'bbcode'  , '', defaults($_REQUEST, 'type', 'bbcode') == 'bbcode'],
110                 '$type_markdown' => ['type', L10n::t('Markdown'), 'markdown', '', defaults($_REQUEST, 'type', 'bbcode') == 'markdown'],
111                 '$type_html'     => ['type', L10n::t('HTML')    , 'html'    , '', defaults($_REQUEST, 'type', 'bbcode') == 'html'],
112
113                 '$results' => $results
114         ]);
115
116         return $o;
117 }