X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=mathjax%2Fmathjax.php;h=9734457d616b11e4888d41c21b5fa0bee6df17d0;hb=2ed46eeefe70b7957961e8575157342cdcf368df;hp=fc18b51d7e0654ba84904e9c27bdad07b193dc41;hpb=0afd633346b517894ff8e92c705bd5d052dd06a2;p=friendica-addons.git diff --git a/mathjax/mathjax.php b/mathjax/mathjax.php index fc18b51d..9734457d 100644 --- a/mathjax/mathjax.php +++ b/mathjax/mathjax.php @@ -1,86 +1,57 @@ + * Description: Addon for Friendica to include MathJax (LaTeX math syntax) + * Version: 2.0 + * Author: Tobias Diekershoff + * Author: Hypolite Petovan * License: 3-clause BSD license */ -use Friendica\Core\Addon; -use Friendica\Core\Config; -use Friendica\Core\PConfig; -function mathjax_install() { - Addon::registerHook('page_header', 'addon/mathjax/mathjax.php', 'mathjax_page_header'); - Addon::registerHook('plugin_settings', 'addon/mathjax/mathjax.php', 'mathjax_settings'); - Addon::registerHook('plugin_settings_post', 'addon/mathjax/mathjax.php', 'mathjax_settings_post'); - logger('installed js_math plugin'); -} -function mathjax_uninstall() { - Addon::unregisterHook('page_header', 'addon/mathjax/mathjax.php', 'mathjax_page_header'); - Addon::unregisterHook('plugin_settings', 'addon/mathjax/mathjax.php', 'mathjax_settings'); - Addon::unregisterHook('plugin_settings_post', 'addon/mathjax/mathjax.php', 'mathjax_settings_post'); -} -function mathjax_settings_post ($a, $post) { - if (! local_user()) - return; - // don't check statusnet settings if statusnet submit button is not clicked - if (!x($_POST,'mathjax-submit')) - return; - PConfig::set(local_user(),'mathjax','use',intval($_POST['mathjax_use'])); -} -function mathjax_settings (&$a, &$s) { - if (! local_user()) - return; - $use = PConfig::get(local_user(),'mathjax','use'); - $usetext = (($use) ? ' checked="checked" ' : ''); - $s .= ''; - $s .= '

MathJax '.t('Settings').'

'; - $s .= '
'; - $s .= ''; +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'); } -/* 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 = 'http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'; - if (! local_user()) { - $b .= ''; - } else { - $use = PConfig::get(local_user(),'mathjax','use'); - if ($use) { - $b .= ''; - } - } -} -function mathjax_plugin_admin_post (&$a) { - $baseurl = ((x($_POST, 'baseurl')) ? trim($_POST['baseurl']) : 'http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'); - Config::set('mathjax','baseurl',$baseurl); - info( 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_plugin_admin (&$a, &$o) { - $t = get_markup_template( "admin.tpl", "addon/mathjax/" ); - if (Config::get('mathjax','baseurl','') == '') { - Config::set('mathjax','baseurl','http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'); + +function mathjax_settings(App $a, &$s) +{ + if (!local_user()) { + return; } - $o = replace_macros( $t, [ - '$submit' => t('Save Settings'), - '$baseurl' => ['baseurl', t('MathJax Base URL'), Config::get('mathjax','baseurl' ), 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.')], + $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'); + } +}