]> git.mxchange.org Git - friendica-addons.git/blob - showmore_dyn/showmore_dyn.php
Merge pull request #1294 from annando/no-boot
[friendica-addons.git] / showmore_dyn / showmore_dyn.php
1 <?php
2 /**
3  * Name: Showmore Dynamic
4  * Description: Dynamically limits height of posts
5  * Version: 1.0
6  * Author: Christian Wiwie
7  *
8  */
9
10 use Friendica\App;
11 use Friendica\Core\Hook;
12 use Friendica\Core\L10n;
13 use Friendica\Core\Logger;
14 use Friendica\Core\Renderer;
15 use Friendica\Core\Session;
16 use Friendica\Database\DBA;
17 use Friendica\DI;
18
19 function showmore_dyn_install()
20 {
21         Hook::register('page_end',  __FILE__, 'showmore_dyn_script');
22         Hook::register('head', __FILE__, 'showmore_dyn_head');
23         Hook::register('footer', __FILE__, 'showmore_dyn_footer');
24         Hook::register('addon_settings',  __FILE__, 'showmore_dyn_settings');
25         Hook::register('addon_settings_post',  __FILE__, 'showmore_dyn_settings_post');
26 }
27
28 function showmore_dyn_head(App $a, string &$body)
29 {
30         DI::page()->registerStylesheet(__DIR__ . '/showmore_dyn.css');
31 }
32
33 function showmore_dyn_footer(App $a, string &$body)
34 {
35         DI::page()->registerFooterScript(__DIR__ . '/showmore_dyn.js');
36 }
37
38 function showmore_dyn_settings_post()
39 {
40         if(!Session::getLocalUser()) {
41                 return;
42         }
43
44         if (isset($_POST['showmore_dyn-submit'])) {
45                 DI::pConfig()->set(Session::getLocalUser(), 'showmore_dyn', 'limitHeight', $_POST['limitHeight'] ?? 0);
46         }
47 }
48
49 function showmore_dyn_settings(App &$a, array &$data)
50 {
51         if(!Session::getLocalUser()) {
52                 return;
53         }
54
55         $limitHeight = DI::pConfig()->get(Session::getLocalUser(), 'showmore_dyn', 'limitHeight', 250);
56         DI::pConfig()->set(Session::getLocalUser(), 'showmore_dyn', 'limitHeight', $limitHeight);
57
58         $t = Renderer::getMarkupTemplate('settings.tpl', 'addon/showmore_dyn/');
59         $html = Renderer::replaceMacros($t, [
60                 '$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'],
61         ]);
62
63         $data = [
64                 'addon' => 'showmore_dyn',
65                 'title' => DI::l10n()->t('Show More Dynamic'),
66                 'html'  => $html,
67         ];
68 }
69
70 function showmore_dyn_script()
71 {
72         $limitHeight = intval(DI::pConfig()->get(Session::getLocalUser(), 'showmore_dyn', 'limitHeight', 250));
73         $showmore_dyn_showmore_linktext = DI::l10n()->t('Show more...');
74         DI::page()['htmlhead'] .= <<<EOT
75 <script>
76         var postLimitHeight = $limitHeight;
77         var showmore_dyn_showmore_linktext = "$showmore_dyn_showmore_linktext";
78 </script>
79 EOT;
80 }