2020-03-12 18:24:54 -04:00
< ? php
/**
* Name : Showmore Dynamic
* Description : Dynamically limits height of posts
* Version : 1.0
* Author : Christian Wiwie
*
*/
use Friendica\App ;
use Friendica\Core\Hook ;
2020-03-14 17:09:30 -04:00
use Friendica\Core\L10n ;
use Friendica\Core\Logger ;
use Friendica\Core\Renderer ;
use Friendica\Database\DBA ;
2020-03-12 18:24:54 -04:00
use Friendica\DI ;
2020-03-15 08:34:51 -04:00
function showmore_dyn_install ()
2020-03-12 18:24:54 -04:00
{
2020-03-15 08:34:51 -04:00
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' );
2020-03-12 18:24:54 -04:00
}
2022-06-23 01:16:22 -04:00
function showmore_dyn_head ( App $a , array & $b )
2020-03-12 18:24:54 -04:00
{
2020-03-13 17:09:21 -04:00
DI :: page () -> registerStylesheet ( __DIR__ . '/showmore_dyn.css' );
2020-03-12 18:24:54 -04:00
}
2022-06-23 01:16:22 -04:00
function showmore_dyn_footer ( App $a , array & $b )
2020-03-12 18:24:54 -04:00
{
2020-03-13 17:09:21 -04:00
DI :: page () -> registerFooterScript ( __DIR__ . '/showmore_dyn.js' );
2020-03-12 18:24:54 -04:00
}
2020-03-15 08:34:51 -04:00
function showmore_dyn_settings_post ()
{
if ( ! local_user ()) {
return ;
}
if ( isset ( $_POST [ 'showmore_dyn-submit' ])) {
2020-12-31 09:13:00 -05:00
DI :: pConfig () -> set ( local_user (), 'showmore_dyn' , 'limitHeight' , $_POST [ 'limitHeight' ] ? ? 0 );
2020-03-15 08:34:51 -04:00
}
2020-03-14 17:09:30 -04:00
}
2021-11-20 04:56:55 -05:00
function showmore_dyn_settings ( App & $a , array & $data )
2020-03-15 08:34:51 -04:00
{
if ( ! local_user ()) {
return ;
}
2020-03-14 17:09:30 -04:00
2020-03-15 08:34:51 -04:00
$limitHeight = DI :: pConfig () -> get ( local_user (), 'showmore_dyn' , 'limitHeight' , 250 );
DI :: pConfig () -> set ( local_user (), 'showmore_dyn' , 'limitHeight' , $limitHeight );
2020-03-14 17:09:30 -04:00
2020-03-15 08:34:51 -04:00
$t = Renderer :: getMarkupTemplate ( 'settings.tpl' , 'addon/showmore_dyn/' );
2021-11-20 04:56:55 -05:00
$html = Renderer :: replaceMacros ( $t , [
2020-12-31 09:16:52 -05:00
'$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' ],
2020-03-15 08:34:51 -04:00
]);
2020-03-14 17:09:30 -04:00
2021-11-20 04:56:55 -05:00
$data = [
'addon' => 'showmore_dyn' ,
'title' => DI :: l10n () -> t ( 'Show More Dynamic' ),
'html' => $html ,
];
2020-03-14 17:09:30 -04:00
}
2020-03-15 08:34:51 -04:00
function showmore_dyn_script ()
{
2020-12-31 09:13:00 -05:00
$limitHeight = intval ( DI :: pConfig () -> get ( local_user (), 'showmore_dyn' , 'limitHeight' , 250 ));
2020-12-31 09:16:52 -05:00
$showmore_dyn_showmore_linktext = DI :: l10n () -> t ( 'Show more...' );
2020-03-15 08:34:51 -04:00
DI :: page ()[ 'htmlhead' ] .= <<< EOT
< script >
var postLimitHeight = $limitHeight ;
var showmore_dyn_showmore_linktext = " $showmore_dyn_showmore_linktext " ;
</ script >
EOT ;
2020-03-14 17:09:30 -04:00
}