diff --git a/mod/babel.php b/mod/babel.php index a2d197599..442941ab8 100644 --- a/mod/babel.php +++ b/mod/babel.php @@ -13,64 +13,105 @@ function visible_lf($s) function babel_content() { - $o = '

Babel Diagnostic

'; + $results = []; + if (!empty($_REQUEST['text'])) { + switch(defaults($_REQUEST, 'type', 'bbcode')) { + case 'bbcode': + $bbcode = trim($_REQUEST['text']); + $results[] = [ + 'title' => L10n::t('Source input'), + 'content' => visible_lf($bbcode) + ]; - $o .= '
'; - $o .= L10n::t("Source \x28bbcode\x29 text:") . EOL; - $o .= '' . EOL; - $o .= '
'; + $html = Text\BBCode::convert($bbcode); + $results[] = [ + 'title' => L10n::t("BBCode::convert \x28raw HTML\x28"), + 'content' => htmlspecialchars($html) + ]; - $o .= '

'; + $results[] = [ + 'title' => L10n::t('BBCode::convert'), + 'content' => $html + ]; - $o .= '
'; - $o .= L10n::t("Source \x28Diaspora\x29 text to convert to BBcode:") . EOL; - $o .= '' . EOL; - $o .= '
'; + $bbcode2 = Text\HTML::toBBCode($html); + $results[] = [ + 'title' => L10n::t('BBCode::convert => HTML::toBBCode'), + 'content' => visible_lf($bbcode2) + ]; - $o .= '

'; + $markdown = Text\BBCode::toMarkdown($bbcode); + $results[] = [ + 'title' => L10n::t('BBCode::toMarkdown'), + 'content' => visible_lf($markdown) + ]; - if (x($_REQUEST, 'text')) { - $text = trim($_REQUEST['text']); - $o .= '

' . L10n::t('Source input: ') . '

' . EOL . EOL; - $o .= visible_lf($text) . EOL . EOL; + $html2 = Text\Markdown::convert($markdown); + $results[] = [ + 'title' => L10n::t('BBCode::toMarkdown => Markdown::convert'), + 'content' => $html2 + ]; - $html = Text\BBCode::convert($text); - $o .= '

' . L10n::t("BBCode::convert \x28raw HTML\x28: ") . '

' . EOL . EOL; - $o .= htmlspecialchars($html) . EOL . EOL; + $bbcode3 = Text\Markdown::toBBCode($markdown); + $results[] = [ + 'title' => L10n::t('BBCode::toMarkdown => Markdown::toBBCode'), + 'content' => visible_lf($bbcode3) + ]; - $o .= '

' . L10n::t('BBCode::convert: ') . '

' . EOL . EOL; - $o .= $html . EOL . EOL; + $bbcode4 = Text\HTML::toBBCode($html2); + $results[] = [ + 'title' => L10n::t('BBCode::toMarkdown => Markdown::convert => HTML::toBBCode'), + 'content' => visible_lf($bbcode4) + ]; + break; + case 'markdown': + $markdown = trim($_REQUEST['text']); + $results[] = [ + 'title' => L10n::t('Source input \x28Diaspora format\x29'), + 'content' => '
' . $markdown . '
' + ]; - $bbcode = Text\HTML::toBBCode($html); - $o .= '

' . L10n::t('BBCode::convert => HTML::toBBCode: ') . '

' . EOL . EOL; - $o .= visible_lf($bbcode) . EOL . EOL; + $bbcode = Text\Markdown::toBBCode($markdown); + $results[] = [ + 'title' => L10n::t('Markdown::toBBCode'), + 'content' => '
' . $bbcode . '
' + ]; + break; + case 'html' : + $html = trim($_REQUEST['text']); + $results[] = [ + 'title' => L10n::t("Raw HTML input"), + 'content' => htmlspecialchars($html) + ]; - $diaspora = Text\BBCode::toMarkdown($text); - $o .= '

' . L10n::t('BBCode::toMarkdown: ') . '

' . EOL . EOL; - $o .= visible_lf($diaspora) . EOL . EOL; + $results[] = [ + 'title' => L10n::t('HTML Input'), + 'content' => $html + ]; - $html = Text\Markdown::convert($diaspora); - $o .= '

' . L10n::t('BBCode::toMarkdown => Markdown::convert: ') . '

' . EOL . EOL; - $o .= $html . EOL . EOL; + $bbcode = Text\HTML::toBBCode($html); + $results[] = [ + 'title' => L10n::t('HTML::toBBCode'), + 'content' => visible_lf($bbcode) + ]; - $bbcode = Text\Markdown::toBBCode($diaspora); - $o .= '

' . L10n::t('BBCode::toMarkdown => Markdown::toBBCode: ') . '

' . EOL . EOL; - $o .= visible_lf($bbcode) . EOL . EOL; - - $bbcode = Text\HTML::toBBCode($html); - $o .= '

' . L10n::t('BBCode::toMarkdown => Markdown::convert => HTML::toBBCode: ') . '

' . EOL . EOL; - $o .= visible_lf($bbcode) . EOL . EOL; + $text = Text\HTML::toPlaintext($html); + $results[] = [ + 'title' => L10n::t('HTML::toPlaintext'), + 'content' => '
' . $text . '
' + ]; + } } - if (x($_REQUEST, 'd2bbtext')) { - $d2bbtext = trim($_REQUEST['d2bbtext']); - $o .= '

' . L10n::t("Source input \x28Diaspora format\x29: ") . '

' . EOL . EOL; - $o .= '
' . $d2bbtext . '
' . EOL . EOL; + $tpl = get_markup_template('babel.tpl'); + $o = replace_macros($tpl, [ + '$text' => ['text', L10n::t('Source text'), defaults($_REQUEST, 'text', ''), ''], + '$type_bbcode' => ['type', L10n::t('BBCode') , 'bbcode' , '', defaults($_REQUEST, 'type', 'bbcode') == 'bbcode'], + '$type_markdown' => ['type', L10n::t('Markdown'), 'markdown', '', defaults($_REQUEST, 'type', 'bbcode') == 'markdown'], + '$type_html' => ['type', L10n::t('HTML') , 'html' , '', defaults($_REQUEST, 'type', 'bbcode') == 'html'], - $bb = Text\Markdown::toBBCode($d2bbtext); - $o .= '

' . L10n::t('Markdown::toBBCode: ') . '

' . EOL . EOL; - $o .= '
' . $bb . '
' . EOL . EOL; - } + '$results' => $results + ]); return $o; } diff --git a/view/templates/babel.tpl b/view/templates/babel.tpl new file mode 100644 index 000000000..659864af3 --- /dev/null +++ b/view/templates/babel.tpl @@ -0,0 +1,29 @@ +

Babel Diagnostic

+
+
+
+ {{include file="field_textarea.tpl" field=$text}} +
+
+ {{include file="field_radio.tpl" field=$type_bbcode}} + {{include file="field_radio.tpl" field=$type_markdown}} + {{include file="field_radio.tpl" field=$type_html}} +
+

+
+
+ +{{if $results}} +
+ {{foreach $results as $result}} +
+
+

{{$result.title}}

+
+
+ {{$result.content}} +
+
+ {{/foreach}} +
+{{/if}} \ No newline at end of file