<?php
/**
 * Name: Showmore Dynamic
 * Description: Dynamically limits height of posts
 * Version: 1.0
 * Author: Christian Wiwie
 *
 */

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('page_end', 'addon/showmore_dyn.php/showmore_dyn.php', 'showmore_dyn_script');
	Hook::register('head'  , __FILE__, 'showmore_dyn_head');
	Hook::register('footer', __FILE__, 'showmore_dyn_footer');
	Hook::register('addon_settings', 'addon/showmore_dyn/showmore_dyn.php', 'showmore_dyn_settings');
        Hook::register('addon_settings_post', 'addon/showmore_dyn/showmore_dyn.php', 'showmore_dyn_settings_post');
}

function showmore_dyn_uninstall()
{
	Hook::unregister('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script');
	Hook::unregister('head'  , __FILE__, 'showmore_dyn_head');
	Hook::unregister('footer', __FILE__, 'showmore_dyn_footer');
        Hook::unregister('addon_settings', 'addon/showmore_dyn/showmore_dyn.php', 'showmore_dyn_settings');
        Hook::unregister('addon_settings_post', 'addon/showmore_dyn/showmore_dyn.php', 'showmore_dyn_settings_post');
}

function showmore_dyn_head(App $a, &$b)
{
	DI::page()->registerStylesheet(__DIR__ . '/showmore_dyn.css');
}

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'])){
		$limitHeight = $_POST['showmore_dyn_height'];
		DI::pConfig()->set(local_user(), 'showmore_dyn', 'limitHeight', $limitHeight);
        }
}

function showmore_dyn_settings(&$a,&$o) {
    if(! local_user())
                return;


        $limitHeight = DI::pConfig()->get(local_user(), 'showmore_dyn', 'limitHeight' );
        if ($limitHeight=='') { $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'),
                '$title' => "Showmore Dynamic",
                '$label' => DI::l10n()->t('Limit Height'),
                '$limitHeight' => $limitHeight,
        ]);

}

function showmore_dyn_script() {
	$limitHeight = DI::pConfig()->get(local_user(), 'showmore_dyn', 'limitHeight' );
	$showmore_dyn_showmore_linktext = DI::l10n()->t('Show more ...');
	DI::page()['htmlhead'] .= '<script>var postLimitHeight = ' . intval($limitHeight) . '; var showmore_dyn_showmore_linktext = "' . $showmore_dyn_showmore_linktext . '"</script>';
}