Merge pull request #1098 from nupplaphil/feat/check_messages
[friendica-addons.git/.git] / showmore_dyn / showmore_dyn.php
index 4840201..bf8f560 100644 (file)
@@ -9,17 +9,19 @@
 
 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_uninstall()
+function showmore_dyn_install()
 {
-       Hook::unregister('head'  , __FILE__, 'showmore_dyn_head');
-       Hook::unregister('footer', __FILE__, 'showmore_dyn_footer');
+       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_head(App $a, &$b)
@@ -32,3 +34,43 @@ function showmore_dyn_footer(App $a, &$b)
        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_settings(App &$a, &$o)
+{
+       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/');
+       $o .= Renderer::replaceMacros($t, [
+               '$submit' => DI::l10n()->t('Save Settings'),
+               '$header' => DI::l10n()->t('Show More Dynamic'),
+               '$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'],
+       ]);
+
+}
+
+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'] .= <<<EOT
+<script>
+       var postLimitHeight = $limitHeight;
+       var showmore_dyn_showmore_linktext = "$showmore_dyn_showmore_linktext";
+</script>
+EOT;
+}