2016-03-28 16:29:05 +02:00
< ? php
2017-04-30 06:07:00 +02:00
use Friendica\App ;
2017-10-23 20:26:31 +02:00
use Friendica\Core\Config ;
2018-01-22 13:29:50 +01:00
use Friendica\Core\L10n ;
2017-10-23 15:16:23 +02:00
use Friendica\Core\PConfig ;
2017-08-26 08:04:21 +02:00
use Friendica\Core\System ;
2017-04-30 06:07:00 +02:00
2018-01-22 13:29:50 +01:00
require_once 'view/theme/frio/php/Image.php' ;
2016-03-28 16:29:05 +02:00
2018-04-25 02:05:20 +02:00
function theme_post ( App $a )
{
2016-12-20 11:56:34 +01:00
if ( ! local_user ()) {
return ;
}
2016-03-28 16:29:05 +02:00
2017-10-23 15:16:23 +02:00
if ( isset ( $_POST [ 'frio-settings-submit' ])) {
2018-04-25 02:26:14 +02:00
PConfig :: set ( local_user (), 'frio' , 'scheme' , $_POST [ 'frio_scheme' ]);
2018-04-25 02:12:43 +02:00
PConfig :: set ( local_user (), 'frio' , 'nav_bg' , $_POST [ 'frio_nav_bg' ]);
PConfig :: set ( local_user (), 'frio' , 'nav_icon_color' , $_POST [ 'frio_nav_icon_color' ]);
PConfig :: set ( local_user (), 'frio' , 'link_color' , $_POST [ 'frio_link_color' ]);
PConfig :: set ( local_user (), 'frio' , 'background_color' , $_POST [ 'frio_background_color' ]);
PConfig :: set ( local_user (), 'frio' , 'contentbg_transp' , $_POST [ 'frio_contentbg_transp' ]);
PConfig :: set ( local_user (), 'frio' , 'background_image' , $_POST [ 'frio_background_image' ]);
PConfig :: set ( local_user (), 'frio' , 'bg_image_option' , $_POST [ 'frio_bg_image_option' ]);
2017-10-23 15:16:23 +02:00
PConfig :: set ( local_user (), 'frio' , 'css_modified' , time ());
}
2016-03-28 16:29:05 +02:00
}
2018-04-25 02:05:20 +02:00
function theme_admin_post ( App $a )
{
2017-10-23 20:26:31 +02:00
if ( ! local_user ()) {
return ;
}
if ( isset ( $_POST [ 'frio-settings-submit' ])) {
2018-04-25 02:26:14 +02:00
Config :: set ( 'frio' , 'scheme' , $_POST [ 'frio_scheme' ]);
2018-04-25 02:12:43 +02:00
Config :: set ( 'frio' , 'nav_bg' , $_POST [ 'frio_nav_bg' ]);
Config :: set ( 'frio' , 'nav_icon_color' , $_POST [ 'frio_nav_icon_color' ]);
Config :: set ( 'frio' , 'link_color' , $_POST [ 'frio_link_color' ]);
Config :: set ( 'frio' , 'background_color' , $_POST [ 'frio_background_color' ]);
Config :: set ( 'frio' , 'contentbg_transp' , $_POST [ 'frio_contentbg_transp' ]);
Config :: set ( 'frio' , 'background_image' , $_POST [ 'frio_background_image' ]);
Config :: set ( 'frio' , 'bg_image_option' , $_POST [ 'frio_bg_image_option' ]);
Config :: set ( 'frio' , 'login_bg_image' , $_POST [ 'frio_login_bg_image' ]);
Config :: set ( 'frio' , 'login_bg_color' , $_POST [ 'frio_login_bg_color' ]);
2017-10-23 20:26:31 +02:00
Config :: set ( 'frio' , 'css_modified' , time ());
}
}
2018-04-25 02:05:20 +02:00
function theme_content ( App $a )
{
2016-12-20 11:56:34 +01:00
if ( ! local_user ()) {
return ;
}
2018-01-15 14:05:12 +01:00
$arr = [];
2016-12-20 11:56:34 +01:00
2018-04-25 02:26:14 +02:00
$arr [ 'scheme' ] = PConfig :: get ( local_user (), 'frio' , 'scheme' );
2018-04-25 02:12:43 +02:00
$arr [ 'nav_bg' ] = PConfig :: get ( local_user (), 'frio' , 'nav_bg' );
$arr [ 'nav_icon_color' ] = PConfig :: get ( local_user (), 'frio' , 'nav_icon_color' );
$arr [ 'link_color' ] = PConfig :: get ( local_user (), 'frio' , 'link_color' );
$arr [ 'bgcolor' ] = PConfig :: get ( local_user (), 'frio' , 'background_color' );
$arr [ 'contentbg_transp' ] = PConfig :: get ( local_user (), 'frio' , 'contentbg_transp' );
$arr [ 'background_image' ] = PConfig :: get ( local_user (), 'frio' , 'background_image' );
$arr [ 'bg_image_option' ] = PConfig :: get ( local_user (), 'frio' , 'bg_image_option' );
2017-10-23 15:16:23 +02:00
return frio_form ( $arr );
2016-03-28 16:29:05 +02:00
}
2018-04-25 02:05:20 +02:00
function theme_admin ( App $a )
{
2017-10-23 20:26:31 +02:00
if ( ! local_user ()) {
return ;
}
2018-01-15 14:05:12 +01:00
$arr = [];
2017-10-23 20:26:31 +02:00
2018-04-25 02:26:14 +02:00
$arr [ 'scheme' ] = Config :: get ( 'frio' , 'scheme' );
2018-04-25 02:12:43 +02:00
$arr [ 'nav_bg' ] = Config :: get ( 'frio' , 'nav_bg' );
$arr [ 'nav_icon_color' ] = Config :: get ( 'frio' , 'nav_icon_color' );
$arr [ 'link_color' ] = Config :: get ( 'frio' , 'link_color' );
$arr [ 'bgcolor' ] = Config :: get ( 'frio' , 'background_color' );
$arr [ 'contentbg_transp' ] = Config :: get ( 'frio' , 'contentbg_transp' );
$arr [ 'background_image' ] = Config :: get ( 'frio' , 'background_image' );
$arr [ 'bg_image_option' ] = Config :: get ( 'frio' , 'bg_image_option' );
$arr [ 'login_bg_image' ] = Config :: get ( 'frio' , 'login_bg_image' );
$arr [ 'login_bg_color' ] = Config :: get ( 'frio' , 'login_bg_color' );
2017-10-23 20:26:31 +02:00
return frio_form ( $arr );
}
2017-10-23 15:16:23 +02:00
2018-04-25 02:05:20 +02:00
function frio_form ( $arr )
{
2018-04-25 02:26:14 +02:00
require_once 'view/theme/frio/php/scheme.php' ;
2017-01-09 13:06:08 +01:00
2018-04-25 02:26:14 +02:00
$scheme_info = get_scheme_info ( $arr [ 'scheme' ]);
2018-04-25 02:12:43 +02:00
$disable = $scheme_info [ 'overwrites' ];
2017-10-23 15:16:23 +02:00
if ( ! is_array ( $disable )) {
2018-01-15 14:05:12 +01:00
$disable = [];
2017-10-23 15:16:23 +02:00
}
2016-04-29 01:49:09 +02:00
2018-01-15 14:05:12 +01:00
$scheme_choices = [];
2018-04-25 02:12:43 +02:00
$scheme_choices [ '---' ] = L10n :: t ( 'Default' );
2018-04-25 02:26:14 +02:00
$files = glob ( 'view/theme/frio/scheme/*.php' );
2017-10-23 15:16:23 +02:00
if ( $files ) {
foreach ( $files as $file ) {
2018-04-25 02:12:43 +02:00
$f = basename ( $file , '.php' );
2017-10-23 15:16:23 +02:00
if ( $f != 'default' ) {
2016-03-28 16:29:05 +02:00
$scheme_name = $f ;
$scheme_choices [ $f ] = $scheme_name ;
}
}
}
2018-04-25 02:12:43 +02:00
$background_image_help = '<strong>' . L10n :: t ( 'Note' ) . ': </strong>' . L10n :: t ( 'Check image permissions if all users are allowed to visit the image' );
2016-03-28 16:29:05 +02:00
$t = get_markup_template ( 'theme_settings.tpl' );
2018-01-15 14:05:12 +01:00
$ctx = [
2018-01-22 13:29:50 +01:00
'$submit' => L10n :: t ( 'Submit' ),
2017-10-23 15:16:23 +02:00
'$baseurl' => System :: baseUrl (),
2018-04-25 02:12:43 +02:00
'$title' => L10n :: t ( 'Theme settings' ),
2018-04-25 02:26:14 +02:00
'$scheme' => [ 'frio_scheme' , L10n :: t ( 'Select scheme' ), $arr [ 'scheme' ], '' , $scheme_choices ],
2018-04-25 02:12:43 +02:00
'$nav_bg' => array_key_exists ( 'nav_bg' , $disable ) ? '' : [ 'frio_nav_bg' , L10n :: t ( 'Navigation bar background color' ), $arr [ 'nav_bg' ], '' , false ],
'$nav_icon_color' => array_key_exists ( 'nav_icon_color' , $disable ) ? '' : [ 'frio_nav_icon_color' , L10n :: t ( 'Navigation bar icon color ' ), $arr [ 'nav_icon_color' ], '' , false ],
'$link_color' => array_key_exists ( 'link_color' , $disable ) ? '' : [ 'frio_link_color' , L10n :: t ( 'Link color' ), $arr [ 'link_color' ], '' , false ],
'$bgcolor' => array_key_exists ( 'bgcolor' , $disable ) ? '' : [ 'frio_background_color' , L10n :: t ( 'Set the background color' ), $arr [ 'bgcolor' ], '' , false ],
'$contentbg_transp' => array_key_exists ( 'contentbg_transp' , $disable ) ? '' : [ 'frio_contentbg_transp' , L10n :: t ( 'Content background opacity' ), (( isset ( $arr [ 'contentbg_transp' ]) && $arr [ 'contentbg_transp' ] != '' ) ? $arr [ 'contentbg_transp' ] : 100 ), '' ],
'$background_image' => array_key_exists ( 'background_image' , $disable ) ? '' : [ 'frio_background_image' , L10n :: t ( 'Set the background image' ), $arr [ 'background_image' ], $background_image_help , false ],
2017-10-23 15:16:23 +02:00
'$bg_image_options' => Image :: get_options ( $arr ),
2018-01-15 14:05:12 +01:00
];
2018-01-14 19:19:24 +01:00
2018-04-25 02:12:43 +02:00
if ( array_key_exists ( 'login_bg_image' , $arr ) && ! array_key_exists ( 'login_bg_image' , $disable )) {
2018-04-25 02:05:20 +02:00
$ctx [ '$login_bg_image' ] = [ 'frio_login_bg_image' , L10n :: t ( 'Login page background image' ), $arr [ 'login_bg_image' ], $background_image_help , false ];
2018-01-17 16:33:27 +01:00
}
2018-04-25 02:12:43 +02:00
if ( array_key_exists ( 'login_bg_color' , $arr ) && ! array_key_exists ( 'login_bg_color' , $disable )) {
2018-04-25 02:05:20 +02:00
$ctx [ '$login_bg_color' ] = [ 'frio_login_bg_color' , L10n :: t ( 'Login page background color' ), $arr [ 'login_bg_color' ], L10n :: t ( 'Leave background image and color empty for theme defaults' ), false ];
}
2018-01-14 19:19:24 +01:00
2018-02-12 16:50:05 +01:00
$o = replace_macros ( $t , $ctx );
2016-03-28 16:29:05 +02:00
return $o ;
}