X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=showmore_dyn%2Fshowmore_dyn.php;h=a6f414117c9d4796ab2986790e3708728feb79ff;hb=024ccb117f2df6f3ca257f8349f37d66a8aa45a2;hp=9b0ec24e7f77ee469aca457c1952edbedf18848d;hpb=8ff88b2eee0001ea6ff29bf92709aefe7905fc98;p=friendica-addons.git diff --git a/showmore_dyn/showmore_dyn.php b/showmore_dyn/showmore_dyn.php index 9b0ec24e..a6f41411 100644 --- a/showmore_dyn/showmore_dyn.php +++ b/showmore_dyn/showmore_dyn.php @@ -9,26 +9,71 @@ use Friendica\App; use Friendica\Core\Hook; +use Friendica\Core\L10n; +use Friendica\Core\Logger; +use Friendica\Core\Renderer; +use Friendica\Database\DBA; use Friendica\DI; -function showmore_dyn_install() { - Hook::register('head' , __FILE__, 'showmore_dyn_head'); - Hook::register('footer', __FILE__, 'showmore_dyn_footer'); +function showmore_dyn_install() +{ + Hook::register('page_end', __FILE__, 'showmore_dyn_script'); + Hook::register('head', __FILE__, 'showmore_dyn_head'); + Hook::register('footer', __FILE__, 'showmore_dyn_footer'); + Hook::register('addon_settings', __FILE__, 'showmore_dyn_settings'); + Hook::register('addon_settings_post', __FILE__, 'showmore_dyn_settings_post'); } -function showmore_dyn_uninstall() +function showmore_dyn_head(App $a, string &$body) { - Hook::unregister('head' , __FILE__, 'showmore_dyn_head'); - Hook::unregister('footer', __FILE__, 'showmore_dyn_footer'); + DI::page()->registerStylesheet(__DIR__ . '/showmore_dyn.css'); } -function showmore_dyn_head(App $a, &$b) +function showmore_dyn_footer(App $a, string &$body) { - DI::page()->registerStylesheet(__DIR__ . '/showmore_dyn.css'); + DI::page()->registerFooterScript(__DIR__ . '/showmore_dyn.js'); +} + +function showmore_dyn_settings_post() +{ + if(!local_user()) { + return; + } + + if (isset($_POST['showmore_dyn-submit'])) { + DI::pConfig()->set(local_user(), 'showmore_dyn', 'limitHeight', $_POST['limitHeight'] ?? 0); + } } -function showmore_dyn_footer(App $a, &$b) +function showmore_dyn_settings(App &$a, array &$data) { - DI::page()->registerFooterScript(__DIR__ . '/showmore_dyn.js'); + if(!local_user()) { + return; + } + + $limitHeight = DI::pConfig()->get(local_user(), 'showmore_dyn', 'limitHeight', 250); + DI::pConfig()->set(local_user(), 'showmore_dyn', 'limitHeight', $limitHeight); + + $t = Renderer::getMarkupTemplate('settings.tpl', 'addon/showmore_dyn/'); + $html = Renderer::replaceMacros($t, [ + '$limitHeight' => ['limitHeight', DI::l10n()->t('Limit Height'), $limitHeight, DI::l10n()->t('The maximal pixel height of posts before the Show More link is added, 0 to disable'), '', '', 'number'], + ]); + + $data = [ + 'addon' => 'showmore_dyn', + 'title' => DI::l10n()->t('Show More Dynamic'), + 'html' => $html, + ]; } +function showmore_dyn_script() +{ + $limitHeight = intval(DI::pConfig()->get(local_user(), 'showmore_dyn', 'limitHeight', 250)); + $showmore_dyn_showmore_linktext = DI::l10n()->t('Show more...'); + DI::page()['htmlhead'] .= << + var postLimitHeight = $limitHeight; + var showmore_dyn_showmore_linktext = "$showmore_dyn_showmore_linktext"; + +EOT; +}