X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=mathjax%2Fmathjax.php;h=9734457d616b11e4888d41c21b5fa0bee6df17d0;hb=4791838cfd8693eb624ead82bb9e94799641a041;hp=7d1a81340694412bcd4c89ff235e1be5e6f41c9d;hpb=2e2e8858193a28e0c56035620e9d30013028b767;p=friendica-addons.git diff --git a/mathjax/mathjax.php b/mathjax/mathjax.php index 7d1a8134..9734457d 100644 --- a/mathjax/mathjax.php +++ b/mathjax/mathjax.php @@ -1,88 +1,57 @@ + * Author: Hypolite Petovan * License: 3-clause BSD license */ + use Friendica\App; -use Friendica\Core\Addon; -use Friendica\Core\Config; -use Friendica\Core\L10n; -use Friendica\Core\PConfig; +use Friendica\Core\Hook; +use Friendica\Core\Renderer; +use Friendica\DI; -function mathjax_install() { - Addon::registerHook('page_header', 'addon/mathjax/mathjax.php', 'mathjax_page_header'); - Addon::registerHook('addon_settings', 'addon/mathjax/mathjax.php', 'mathjax_settings'); - Addon::registerHook('addon_settings_post', 'addon/mathjax/mathjax.php', 'mathjax_settings_post'); - logger('installed js_math addon'); -} -function mathjax_uninstall() { - Addon::unregisterHook('page_header', 'addon/mathjax/mathjax.php', 'mathjax_page_header'); - Addon::unregisterHook('addon_settings', 'addon/mathjax/mathjax.php', 'mathjax_settings'); - Addon::unregisterHook('addon_settings_post', 'addon/mathjax/mathjax.php', 'mathjax_settings_post'); -} -function mathjax_settings_post ($a, $post) { - if (! local_user()) - return; - if (!x($_POST,'mathjax-submit')) - return; - PConfig::set(local_user(),'mathjax','use',intval($_POST['mathjax_use'])); +function mathjax_install() +{ + Hook::register('footer' , __FILE__, 'mathjax_footer'); + Hook::register('addon_settings' , __FILE__, 'mathjax_settings'); + Hook::register('addon_settings_post', __FILE__, 'mathjax_settings_post'); } -function mathjax_settings (&$a, &$s) { - if (! local_user()) - return; - $use = PConfig::get(local_user(),'mathjax','use'); - $usetext = (($use) ? ' checked="checked" ' : ''); - $s .= ''; - $s .= '

MathJax '.L10n::t('Settings').'

'; - $s .= '
'; - $s .= ''; -} -/* we need to add one JavaScript include command to the html output - * note that you have to check the jsmath/easy/load.js too. - */ -function mathjax_page_header($a, &$b) { - // if the visitor of the page is not a local_user, use MathJax - // otherwise check the users settings. - $url = Config::get ('mathjax','baseurl'); - if(! $url) { - $url = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML'; - } - if (! local_user()) { - $b .= ''; - } else { - $use = PConfig::get(local_user(),'mathjax','use'); - if ($use) { - $b .= ''; - } - } -} -function mathjax_addon_admin_post (&$a) { - $baseurl = ((x($_POST, 'mjbaseurl')) ? trim($_POST['mjbaseurl']) : 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML'); - Config::set('mathjax','baseurl',$baseurl); - info(L10n::t('Settings updated.'). EOL); +function mathjax_settings_post($a) +{ + if (!local_user() || empty($_POST['mathjax-submit'])) { + return; + } + + DI::pConfig()->set(local_user(), 'mathjax', 'use', intval($_POST['mathjax_use'])); } -function mathjax_addon_admin (App $a, &$o) { - $t = get_markup_template( "admin.tpl", "addon/mathjax/" ); - if (Config::get('mathjax','baseurl','') == '') { - Config::set('mathjax','baseurl','https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML'); +function mathjax_settings(App $a, &$s) +{ + if (!local_user()) { + return; } - $o = replace_macros( $t, [ - '$submit' => L10n::t('Save Settings'), - '$mjbaseurl' => ['mjbaseurl', L10n::t('MathJax Base URL'), Config::get('mathjax','baseurl' ), L10n::t('The URL for the javascript file that should be included to use MathJax. Can be either the MathJax CDN or another installation of MathJax.'), 'required'] + $use = DI::pConfig()->get(local_user(), 'mathjax', 'use', false); + + $tpl = Renderer::getMarkupTemplate('settings.tpl', 'addon/mathjax'); + $s .= Renderer::replaceMacros($tpl, [ + '$title' => 'MathJax', + '$description' => DI::l10n()->t('The MathJax addon renders mathematical formulae written using the LaTeX syntax surrounded by the usual $$ or an eqnarray block in the postings of your wall,network tab and private mail.'), + '$mathjax_use' => ['mathjax_use', DI::l10n()->t('Use the MathJax renderer'), $use, ''], + '$savesettings' => DI::l10n()->t('Save Settings'), ]); } + +function mathjax_footer(App $a, &$b) +{ + // if the visitor of the page is not a local_user, use MathJax + // otherwise check the users settings. + if (!local_user() || DI::pConfig()->get(local_user(), 'mathjax', 'use', false)) { + DI::page()->registerFooterScript(__DIR__ . '/asset/MathJax.js?config=TeX-MML-AM_CHTML'); + DI::page()->registerFooterScript(__DIR__ . '/mathjax.js'); + } +}