adminer/adminer-plugins/AdminerPrism.php
2025-04-16 19:24:34 +02:00

51 lines
1.9 KiB
PHP

<?php
/** Display XML values as table in edit
* @link https://www.adminer.org/plugins/#use
* @author Pau Capó, https://www.paucapo.com/
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
*/
class AdminerPrism
{
function head()
{
?>
<script<?= Adminer\nonce() ?>>
document.addEventListener('DOMContentLoaded', function () {
const languages = ['json', 'xml'];
languages.forEach(function (lang) {
document.querySelectorAll('.jush-' + lang).forEach(function ($item) {
const current_class = $item.getAttribute('class').trim();
const language_class = current_class.replace('jush-', 'language-');
$item.setAttribute('class', language_class);
});
});
// document.querySelectorAll('[class^=jush-]').forEach(function ($item) {
// const current_class = $item.getAttribute('class').trim();
// const language_class = current_class.replace('jush-', 'language-');
// $item.setAttribute('class', language_class);
// });
// document.querySelectorAll('code').forEach(function ($item) {
// const current_class = ($item.getAttribute('class') || '').trim();
// if (current_class === '') {
// $item.setAttribute('class', 'language-plain');
// }
// })
});
</script>
<link rel="stylesheet" type="text/css" href="assets/prism.css?<?= filemtime(__DIR__ . '/../assets/prism.css') ?>"/>
<script <?= Adminer\nonce() ?> src="assets/prism.js?<?= filemtime(__DIR__ . '/../assets/prism.js') ?>"></script>
<script<?= Adminer\nonce() ?>>
// Prism.hooks.add('before-highlight', function (env) {
// env.code = env.element.innerText;
// });
Prism.hooks.add('before-sanity-check', function (env) {
env.element.innerHTML = env.element.innerHTML.replace(/<br>/g, '\n');
env.code = env.element.textContent;
});
</script>
<?php
}
}