2012-05-23 03:05:39 +02:00
< ? php
/**
* Name : Start Page
* Description : Set a preferred page to load on login from home page
* Version : 1.0
* Author : Mike Macgirvin < http :// macgirvin . com / profile / mike >
2018-01-01 03:04:02 +01:00
*
2012-05-23 03:05:39 +02:00
*/
2021-11-20 10:56:55 +01:00
use Friendica\App ;
2018-12-26 08:28:16 +01:00
use Friendica\Core\Hook ;
2021-11-20 10:56:55 +01:00
use Friendica\Core\Renderer ;
2019-12-30 03:55:10 +01:00
use Friendica\DI ;
2012-05-23 03:05:39 +02:00
function startpage_install () {
2018-12-26 08:28:16 +01:00
Hook :: register ( 'home_init' , 'addon/startpage/startpage.php' , 'startpage_home_init' );
Hook :: register ( 'addon_settings' , 'addon/startpage/startpage.php' , 'startpage_settings' );
Hook :: register ( 'addon_settings_post' , 'addon/startpage/startpage.php' , 'startpage_settings_post' );
2012-05-23 03:05:39 +02:00
}
2022-06-23 07:16:22 +02:00
function startpage_home_init ( App $a , $b )
2018-08-08 08:24:47 +02:00
{
2022-10-20 23:51:49 +02:00
if ( ! DI :: userSession () -> getLocalUserId ()) {
2012-05-23 03:05:39 +02:00
return ;
2018-08-08 08:24:47 +02:00
}
2012-05-23 03:05:39 +02:00
2022-10-20 23:51:49 +02:00
$page = DI :: pConfig () -> get ( DI :: userSession () -> getLocalUserId (), 'startpage' , 'startpage' );
2018-08-08 08:24:47 +02:00
if ( strlen ( $page )) {
2019-12-30 03:55:10 +01:00
DI :: baseUrl () -> redirect ( $page );
2012-05-23 03:05:39 +02:00
}
return ;
}
/**
*
* Callback from the settings post function .
* $post contains the $_POST array .
* We will make sure we ' ve got a valid user account
* and if so set our configuration setting for this person .
*
*/
2022-06-23 07:16:22 +02:00
function startpage_settings_post ( App $a , $post )
2018-08-08 08:24:47 +02:00
{
2022-10-20 23:51:49 +02:00
if ( ! DI :: userSession () -> getLocalUserId ()) {
2012-05-23 03:05:39 +02:00
return ;
2018-08-08 08:24:47 +02:00
}
if ( ! empty ( $_POST [ 'startpage-submit' ])) {
2022-10-20 23:51:49 +02:00
DI :: pConfig () -> set ( DI :: userSession () -> getLocalUserId (), 'startpage' , 'startpage' , strip_tags ( trim ( $_POST [ 'startpage' ])));
2018-08-08 08:24:47 +02:00
}
2012-05-23 03:05:39 +02:00
}
/**
*
2018-01-20 14:57:41 +01:00
* Called from the Addon Setting form .
2012-05-23 03:05:39 +02:00
* Add our own settings info to the page .
*
*/
2021-11-20 10:56:55 +01:00
function startpage_settings ( App & $a , array & $data )
2018-08-08 08:24:47 +02:00
{
2022-10-20 23:51:49 +02:00
if ( ! DI :: userSession () -> getLocalUserId ()) {
2012-05-23 03:05:39 +02:00
return ;
2018-08-08 08:24:47 +02:00
}
2012-05-23 03:05:39 +02:00
2022-10-20 23:51:49 +02:00
$startpage = DI :: pConfig () -> get ( DI :: userSession () -> getLocalUserId (), 'startpage' , 'startpage' );
2012-05-23 03:05:39 +02:00
2021-11-20 10:56:55 +01:00
$t = Renderer :: getMarkupTemplate ( 'settings.tpl' , 'addon/startpage/' );
$html = Renderer :: replaceMacros ( $t , [
'$startpage' => [ 'startpage' , DI :: l10n () -> t ( 'Home page to load after login - leave blank for profile wall' ), $startpage , DI :: l10n () -> t ( 'Examples: "network" or "notifications/system"' )],
]);
2012-05-23 03:05:39 +02:00
2021-11-20 10:56:55 +01:00
$data = [
'addon' => 'startpage' ,
'title' => DI :: l10n () -> t ( 'Startpage' ),
'html' => $html ,
];
2012-05-23 03:05:39 +02:00
}