2012-09-24 04:20:36 -04:00
< ? php
/**
* Name : FromApp
* Description : Change the displayed application you are posting from
* Version : 1.0
* Author : Commander Zot
*
*/
2021-11-20 04:56:55 -05:00
use Friendica\App ;
2018-12-26 02:28:16 -05:00
use Friendica\Core\Hook ;
2018-10-29 19:40:18 -04:00
use Friendica\Core\Logger ;
2021-11-20 04:56:55 -05:00
use Friendica\Core\Renderer ;
2019-12-29 21:55:10 -05:00
use Friendica\DI ;
2012-09-24 04:20:36 -04:00
2018-01-22 14:03:11 -05:00
function fromapp_install ()
{
2018-12-26 02:28:16 -05:00
Hook :: register ( 'post_local' , 'addon/fromapp/fromapp.php' , 'fromapp_post_hook' );
Hook :: register ( 'addon_settings' , 'addon/fromapp/fromapp.php' , 'fromapp_settings' );
Hook :: register ( 'addon_settings_post' , 'addon/fromapp/fromapp.php' , 'fromapp_settings_post' );
2021-10-21 02:04:27 -04:00
Logger :: notice ( " installed fromapp " );
2012-09-24 04:20:36 -04:00
}
2018-01-22 14:03:11 -05:00
function fromapp_settings_post ( $a , $post )
{
2018-11-30 09:11:56 -05:00
if ( ! local_user () || empty ( $_POST [ 'fromapp-submit' ])) {
2012-09-24 04:20:36 -04:00
return ;
2018-01-22 14:03:11 -05:00
}
2012-09-24 04:20:36 -04:00
2020-01-18 10:54:49 -05:00
DI :: pConfig () -> set ( local_user (), 'fromapp' , 'app' , $_POST [ 'fromapp-input' ]);
DI :: pConfig () -> set ( local_user (), 'fromapp' , 'force' , intval ( $_POST [ 'fromapp-force' ]));
2012-09-24 04:20:36 -04:00
}
2021-11-20 04:56:55 -05:00
function fromapp_settings ( App & $a , array & $data )
2018-01-22 14:03:11 -05:00
{
if ( ! local_user ()) {
2012-09-24 04:20:36 -04:00
return ;
2018-01-22 14:03:11 -05:00
}
2012-09-24 04:20:36 -04:00
2020-01-18 10:50:56 -05:00
$fromapp = DI :: pConfig () -> get ( local_user (), 'fromapp' , 'app' , '' );
2021-11-20 04:56:55 -05:00
$force = intval ( DI :: pConfig () -> get ( local_user (), 'fromapp' , 'force' ));
$t = Renderer :: getMarkupTemplate ( 'settings.tpl' , 'addon/fromapp/' );
$html = Renderer :: replaceMacros ( $t , [
'$fromapp' => [ 'fromapp-input' , DI :: l10n () -> t ( 'The application name you would like to show your posts originating from. Separate different app names with a comma. A random one will then be selected for every posting.' ), $fromapp ],
'$force' => [ 'fromapp-force' , DI :: l10n () -> t ( 'Use this application name even if another application was used.' ), $force ],
]);
$data = [
'addon' => 'fromapp' ,
'title' => DI :: l10n () -> t ( 'FromApp Settings' ),
'html' => $html ,
];
2012-09-24 04:20:36 -04:00
}
2017-12-06 16:27:55 -05:00
function fromapp_post_hook ( & $a , & $item )
2017-12-06 16:02:21 -05:00
{
2017-12-06 16:27:55 -05:00
if ( ! local_user ()) {
2017-12-06 16:02:21 -05:00
return ;
}
2012-09-24 04:20:36 -04:00
2017-12-06 16:27:55 -05:00
if ( local_user () != $item [ 'uid' ]) {
2017-12-06 16:02:21 -05:00
return ;
}
2012-09-24 04:20:36 -04:00
2020-01-18 10:50:56 -05:00
$app = DI :: pConfig () -> get ( local_user (), 'fromapp' , 'app' );
$force = intval ( DI :: pConfig () -> get ( local_user (), 'fromapp' , 'force' ));
2012-09-24 04:20:36 -04:00
2017-12-06 16:27:55 -05:00
if ( is_null ( $app ) || ( ! strlen ( $app ))) {
2017-12-06 16:02:21 -05:00
return ;
}
2012-09-24 04:20:36 -04:00
2017-12-06 16:27:55 -05:00
if ( strlen ( trim ( $item [ 'app' ])) && ( ! $force )) {
2012-09-24 20:21:30 -04:00
return ;
2017-12-06 16:02:21 -05:00
}
2012-09-24 20:21:30 -04:00
2017-12-06 16:27:55 -05:00
$apps = explode ( ',' , $app );
$item [ 'app' ] = trim ( $apps [ mt_rand ( 0 , count ( $apps ) - 1 )]);
2017-12-06 16:02:21 -05:00
2012-09-24 04:20:36 -04:00
return ;
2013-11-19 07:57:51 -05:00
}