3 * Name: Showmore Dynamic
4 * Description: Dynamically limits height of posts
6 * Author: Christian Wiwie
11 use Friendica\Core\Hook;
12 use Friendica\Core\L10n;
13 use Friendica\Core\Logger;
14 use Friendica\Core\Renderer;
15 use Friendica\Database\DBA;
18 function showmore_dyn_install() {
19 Hook::register('page_end', 'addon/showmore_dyn.php/showmore_dyn.php', 'showmore_dyn_script');
20 Hook::register('head' , __FILE__, 'showmore_dyn_head');
21 Hook::register('footer', __FILE__, 'showmore_dyn_footer');
22 Hook::register('addon_settings', 'addon/showmore_dyn/showmore_dyn.php', 'showmore_dyn_settings');
23 Hook::register('addon_settings_post', 'addon/showmore_dyn/showmore_dyn.php', 'showmore_dyn_settings_post');
26 function showmore_dyn_uninstall()
28 Hook::unregister('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script');
29 Hook::unregister('head' , __FILE__, 'showmore_dyn_head');
30 Hook::unregister('footer', __FILE__, 'showmore_dyn_footer');
31 Hook::unregister('addon_settings', 'addon/showmore_dyn/showmore_dyn.php', 'showmore_dyn_settings');
32 Hook::unregister('addon_settings_post', 'addon/showmore_dyn/showmore_dyn.php', 'showmore_dyn_settings_post');
35 function showmore_dyn_head(App $a, &$b)
37 DI::page()->registerStylesheet(__DIR__ . '/showmore_dyn.css');
40 function showmore_dyn_footer(App $a, &$b)
42 DI::page()->registerFooterScript(__DIR__ . '/showmore_dyn.js');
45 function showmore_dyn_settings_post(){
48 if (isset($_POST['showmore_dyn-submit'])){
49 $limitHeight = $_POST['showmore_dyn_height'];
50 DI::pConfig()->set(local_user(), 'showmore_dyn', 'limitHeight', $limitHeight);
53 $str=file_get_contents('addon/showmore_dyn/showmore_dyn.css');
54 $str=preg_replace("/(max-height: )\d+(px;)/i", "max-height: " . $limitHeight . "px;" ,$str);
55 file_put_contents('addon/showmore_dyn/showmore_dyn.css', $str);
57 $str=file_get_contents('addon/showmore_dyn/showmore_dyn.js');
58 $str=preg_replace('/if \(\$item.height\(\) \< \d+\) \{/i', 'if ($item.height() < ' . $limitHeight . ') {' ,$str);
59 file_put_contents('addon/showmore_dyn/showmore_dyn2.js', $str);*/
63 function showmore_dyn_settings(&$a,&$o) {
68 $limitHeight = DI::pConfig()->get(local_user(), 'showmore_dyn', 'limitHeight' );
69 if ($limitHeight=='') { $limitHeight = 250; DI::pConfig()->set(local_user(), 'showmore_dyn', 'limitHeight', $limitHeight); }
71 $t = Renderer::getMarkupTemplate("settings.tpl", "addon/showmore_dyn/");
72 $o .= Renderer::replaceMacros($t, [
73 '$submit' => DI::l10n()->t('Save Settings'),
74 '$title' => "Showmore Dynamic",
75 '$label' => DI::l10n()->t('Limit Height'),
76 '$limitHeight' => $limitHeight,
81 function showmore_dyn_script() {
82 $limitHeight = DI::pConfig()->get(local_user(), 'showmore_dyn', 'limitHeight' );
83 DI::page()['htmlhead'] .= '<script>var postLimitHeight = ' . intval($limitHeight) . ';</script>';