2018-08-17 06:01:31 +00:00
< ? php
namespace Zotlabs\Module ;
use Zotlabs\Lib\Apps ;
use Zotlabs\Lib\Libsync ;
class Affinity extends \Zotlabs\Web\Controller {
function post () {
if ( ! ( local_channel () && Apps :: system_app_installed ( local_channel (), 'Affinity Tool' ))) {
return ;
}
2018-10-05 04:16:20 +00:00
if ( $_POST [ 'affinity-submit' ]) {
2018-08-17 06:01:31 +00:00
$cmax = intval ( $_POST [ 'affinity_cmax' ]);
if ( $cmax < 0 || $cmax > 99 )
$cmax = 99 ;
$cmin = intval ( $_POST [ 'affinity_cmin' ]);
if ( $cmin < 0 || $cmin > 99 )
$cmin = 0 ;
2019-04-02 02:04:08 +00:00
set_pconfig ( local_channel (), 'affinity' , 'cmin' , 0 );
2018-08-17 06:01:31 +00:00
set_pconfig ( local_channel (), 'affinity' , 'cmax' , $cmax );
2018-10-05 04:16:20 +00:00
info ( t ( 'Affinity Tool settings updated.' ) . EOL );
2018-08-17 06:01:31 +00:00
}
Libsync :: build_sync_packet ();
}
function get () {
$desc = t ( 'This app (when installed) presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship or <em>affinity</em> with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream.' );
$text = '<div class="section-content-info-wrapper">' . $desc . '</div>' ;
if ( ! ( local_channel () && Apps :: system_app_installed ( local_channel (), 'Affinity Tool' ))) {
return $text ;
}
2019-04-02 02:04:08 +00:00
$text .= EOL . t ( 'The number below represents the default maximum slider position for your network/stream page as a percentage.' ) . EOL . EOL ;
2018-08-17 06:01:31 +00:00
$setting_fields = $text ;
$cmax = intval ( get_pconfig ( local_channel (), 'affinity' , 'cmax' ));
$cmax = (( $cmax ) ? $cmax : 99 );
2019-04-02 02:04:08 +00:00
// $setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array(
// '$field' => array('affinity_cmax', t('Default maximum affinity level'), $cmax, t('0-99 default 99'))
// ));
if ( Apps :: system_app_installed ( local_channel (), 'Affinity Tool' )) {
$labels = array (
0 => t ( 'Me' ),
20 => t ( 'Family' ),
40 => t ( 'Friends' ),
60 => t ( 'Peers' ),
80 => t ( 'Connections' ),
99 => t ( 'All' )
);
call_hooks ( 'affinity_labels' , $labels );
$tpl = get_markup_template ( 'affinity.tpl' );
$x = replace_macros ( $tpl , [
'$cmin' => 0 ,
'$cmax' => $cmax ,
'$lbl' => t ( 'Default friend zoom in/out' ),
'$refresh' => t ( 'Refresh' ),
'$labels' => $labels ,
]);
$arr = array ( 'html' => $x );
call_hooks ( 'affinity_slider' , $arr );
$setting_fields .= $arr [ 'html' ];
}
2018-08-17 06:01:31 +00:00
$s .= replace_macros ( get_markup_template ( 'generic_app_settings.tpl' ), array (
2018-10-05 04:16:20 +00:00
'$addon' => array ( 'affinity' , '' . t ( 'Affinity Tool Settings' ), '' , t ( 'Submit' )),
2018-08-17 06:01:31 +00:00
'$content' => $setting_fields
));
return $s ;
}
}