This commit is contained in:
root
2025-04-06 05:14:08 -04:00
parent f8d24aee90
commit cb7ac9cca1
36 changed files with 1506 additions and 1522 deletions

View File

@@ -2,6 +2,9 @@
namespace Zotlabs\Theme;
use ScssPhp\ScssPhp\Compiler;
use ScssPhp\ScssPhp\OutputStyle;
class UssrbasicpubConfig {
function get_schemas() {
@@ -36,16 +39,16 @@ class UssrbasicpubConfig {
return;
}
$arr = array();
$arr['primary_color'] = get_pconfig(local_channel(),'ussrbasicpub', 'primary_color');
$arr['success_color'] = get_pconfig(local_channel(),'ussrbasicpub', 'success_color');
$arr['info_color'] = get_pconfig(local_channel(),'ussrbasicpub', 'info_color');
$arr['warning_color'] = get_pconfig(local_channel(),'ussrbasicpub', 'warning_color');
$arr['danger_color'] = get_pconfig(local_channel(),'ussrbasicpub', 'danger_color');
$arr['dark_mode'] = get_pconfig(local_channel(),'ussrbasicpub', 'dark_mode');
$arr['navbar_dark_mode'] = get_pconfig(local_channel(),'ussrbasicpub', 'navbar_dark_mode');
$arr['narrow_navbar'] = get_pconfig(local_channel(),'ussrbasicpub', 'narrow_navbar' );
$arr['nav_bg'] = get_pconfig(local_channel(),'ussrbasicpub', 'nav_bg' );
$arr['nav_bg_dark'] = get_pconfig(local_channel(),'ussrbasicpub', 'nav_bg_dark' );
$arr['link_color'] = get_pconfig(local_channel(),'ussrbasicpub', 'link_color' );
$arr['link_color_dark'] = get_pconfig(local_channel(),'ussrbasicpub', 'link_color_dark' );
$arr['link_hover_color'] = get_pconfig(local_channel(),'ussrbasicpub', 'link_hover_color' );
$arr['link_hover_color_dark'] = get_pconfig(local_channel(),'ussrbasicpub', 'link_hover_color_dark' );
$arr['bgcolor'] = get_pconfig(local_channel(),'ussrbasicpub', 'background_color' );
$arr['bgcolor_dark'] = get_pconfig(local_channel(),'ussrbasicpub', 'background_color_dark' );
$arr['background_image'] = get_pconfig(local_channel(),'ussrbasicpub', 'background_image' );
@@ -65,15 +68,99 @@ class UssrbasicpubConfig {
}
if (isset($_POST['ussrbasicpub-settings-submit'])) {
if (isset($_POST['ussrbasicpub_primary_color']) || isset($_POST['ussrbasicpub_radius'])) {
$primary_color = '';
$success_color = '';
$info_color = '';
$warning_color = '';
$danger_color = '';
$radius = floatval($_POST['ussrbasicpub_radius']);
if (preg_match('/^#([A-Fa-f0-9]{3}){1,2}$/', $_POST['ussrbasicpub_primary_color'])) {
$primary_color = $_POST['ussrbasicpub_primary_color'];
}
if (preg_match('/^#([A-Fa-f0-9]{3}){1,2}$/', $_POST['ussrbasicpub_success_color'])) {
$success_color = $_POST['ussrbasicpub_success_color'];
}
if (preg_match('/^#([A-Fa-f0-9]{3}){1,2}$/', $_POST['ussrbasicpub_info_color'])) {
$info_color = $_POST['ussrbasicpub_info_color'];
}
if (preg_match('/^#([A-Fa-f0-9]{3}){1,2}$/', $_POST['ussrbasicpub_warning_color'])) {
$warning_color = $_POST['ussrbasicpub_warning_color'];
}
if (preg_match('/^#([A-Fa-f0-9]{3}){1,2}$/', $_POST['ussrbasicpub_danger_color'])) {
$danger_color = $_POST['ussrbasicpub_danger_color'];
}
if ($primary_color || $success_color || $info_color || $warning_color || $danger_color || $radius) {
try {
$cache_dir = 'store/[data]/[scss]/';
if(!is_dir($cache_dir)) {
os_mkdir($cache_dir, STORAGE_DEFAULT_PERMISSIONS, true);
}
$options = [
'cacheDir' => $cache_dir,
'prefix' => 'ussrbasicpub_',
'forceRefresh' => false
];
$compiler = new Compiler($options);
$compiler->setImportPaths('vendor/twbs/bootstrap/scss');
$compiler->setOutputStyle(OutputStyle::COMPRESSED);
// Set Variables
if ($primary_color) {
$variables['$primary'] = $primary_color;
}
if ($success_color) {
$variables['$success'] = $success_color;
}
if ($info_color) {
$variables['$info'] = $info_color;
}
if ($warning_color) {
$variables['$warning'] = $warning_color;
}
if ($danger_color) {
$variables['$danger'] = $danger_color;
}
if ($radius) {
$variables['$border-radius'] = $radius . 'rem';
$variables['$border-radius-sm'] = $radius/1.5 . 'rem';
$variables['$border-radius-lg'] = $radius*1.333 . 'rem';
$variables['$border-radius-xl'] = $radius*2.666 . 'rem';
$variables['$border-radius-xxl'] = $radius*5.333 . 'rem';
}
// Replace Bootstrap Variables with Customizer Variables
$compiler->replaceVariables($variables);
$bs = $compiler->compileString('@import "bootstrap.scss";');
set_pconfig(local_channel(), 'ussrbasicpub', 'bootstrap', $bs->getCss());
} catch (\Exception $e) {
logger('scssphp: Unable to compile content');
}
}
else {
set_pconfig(local_channel(), 'ussrbasicpub', 'bootstrap', '');
}
}
set_pconfig(local_channel(), 'ussrbasicpub', 'primary_color', $_POST['ussrbasicpub_primary_color']);
set_pconfig(local_channel(), 'ussrbasicpub', 'success_color', $_POST['ussrbasicpub_success_color']);
set_pconfig(local_channel(), 'ussrbasicpub', 'info_color', $_POST['ussrbasicpub_info_color']);
set_pconfig(local_channel(), 'ussrbasicpub', 'warning_color', $_POST['ussrbasicpub_warning_color']);
set_pconfig(local_channel(), 'ussrbasicpub', 'danger_color', $_POST['ussrbasicpub_danger_color']);
set_pconfig(local_channel(), 'ussrbasicpub', 'narrow_navbar', $_POST['ussrbasicpub_narrow_navbar']);
set_pconfig(local_channel(), 'ussrbasicpub', 'navbar_dark_mode', $_POST['ussrbasicpub_navbar_dark_mode']);
set_pconfig(local_channel(), 'ussrbasicpub', 'dark_mode', $_POST['ussrbasicpub_dark_mode']);
set_pconfig(local_channel(), 'ussrbasicpub', 'nav_bg', $_POST['ussrbasicpub_nav_bg']);
set_pconfig(local_channel(), 'ussrbasicpub', 'nav_bg_dark', $_POST['ussrbasicpub_nav_bg_dark']);
set_pconfig(local_channel(), 'ussrbasicpub', 'link_color', $_POST['ussrbasicpub_link_color']);
set_pconfig(local_channel(), 'ussrbasicpub', 'link_color_dark', $_POST['ussrbasicpub_link_color_dark']);
set_pconfig(local_channel(), 'ussrbasicpub', 'link_hover_color', $_POST['ussrbasicpub_link_hover_color']);
set_pconfig(local_channel(), 'ussrbasicpub', 'link_hover_color_dark', $_POST['ussrbasicpub_link_hover_color_dark']);
set_pconfig(local_channel(), 'ussrbasicpub', 'background_color', $_POST['ussrbasicpub_background_color']);
set_pconfig(local_channel(), 'ussrbasicpub', 'background_color_dark', $_POST['ussrbasicpub_background_color_dark']);
set_pconfig(local_channel(), 'ussrbasicpub', 'background_image', $_POST['ussrbasicpub_background_image']);
@@ -84,6 +171,9 @@ class UssrbasicpubConfig {
set_pconfig(local_channel(), 'ussrbasicpub', 'top_photo', $_POST['ussrbasicpub_top_photo']);
set_pconfig(local_channel(), 'ussrbasicpub', 'reply_photo', $_POST['ussrbasicpub_reply_photo']);
set_pconfig(local_channel(), 'ussrbasicpub', 'advanced_theming', $_POST['ussrbasicpub_advanced_theming']);
// This is used to refresh the cache
set_pconfig(local_channel(), 'system', 'style_update', time());
}
}
@@ -103,24 +193,25 @@ class UssrbasicpubConfig {
'$dark' => t('Dark style'),
'$light' => t('Light style'),
'$common' => t('Common settings'),
'$primary_color' => array('ussrbasicpub_primary_color', t('Primary theme color'), $arr['primary_color'], '<i class="bi bi-circle-fill text-primary"></i> ' . t('Current color, leave empty for default')),
'$success_color' => array('ussrbasicpub_success_color', t('Success theme color'), $arr['success_color'], '<i class="bi bi-circle-fill text-success"></i> ' . t('Current color, leave empty for default')),
'$info_color' => array('ussrbasicpub_info_color', t('Info theme color'), $arr['info_color'], '<i class="bi bi-circle-fill text-info"></i> ' . t('Current color, leave empty for default')),
'$warning_color' => array('ussrbasicpub_warning_color', t('Warning theme color'), $arr['warning_color'], '<i class="bi bi-circle-fill text-warning"></i> ' . t('Current color, leave empty for default')),
'$danger_color' => array('ussrbasicpub_danger_color', t('Danger theme color'), $arr['danger_color'], '<i class="bi bi-circle-fill text-danger"></i> ' . t('Current color, leave empty for default')),
'$dark_mode' => array('ussrbasicpub_dark_mode',t('Default to dark mode'),$arr['dark_mode'], '', array(t('No'),t('Yes'))),
'$navbar_dark_mode' => array('ussrbasicpub_navbar_dark_mode',t('Always use light icons for navbar'),$arr['navbar_dark_mode'], t('Enable this option if you use a dark navbar color in light mode'), array(t('No'),t('Yes'))),
'$narrow_navbar' => array('ussrbasicpub_narrow_navbar',t('Narrow navbar'),$arr['narrow_navbar'], '', array(t('No'),t('Yes'))),
'$nav_bg' => array('ussrbasicpub_nav_bg', t('Navigation bar background color'), $arr['nav_bg']),
'$nav_bg_dark' => array('ussrbasicpub_nav_bg_dark', t('Dark navigation bar background color'), $arr['nav_bg_dark']),
'$link_color' => array('ussrbasicpub_link_color', t('Link color'), $arr['link_color']),
'$link_color_dark' => array('ussrbasicpub_link_color_dark', t('Dark link color'), $arr['link_color_dark']),
'$link_hover_color' => array('ussrbasicpub_link_hover_color', t('Link hover color'), $arr['link_hover_color']),
'$link_hover_color_dark' => array('ussrbasicpub_link_hover_color_dark', t('Dark link hover color'), $arr['link_hover_color_dark']),
'$bgcolor' => array('ussrbasicpub_background_color', t('Set the background color'), $arr['bgcolor']),
'$bgcolor_dark' => array('ussrbasicpub_background_color_dark', t('Set the dark background color'), $arr['bgcolor_dark']),
'$background_image' => array('ussrbasicpub_background_image', t('Set the background image'), $arr['background_image']),
'$background_image_dark' => array('ussrbasicpub_background_image_dark', t('Set the dark background image'), $arr['background_image_dark']),
'$font_size' => array('ussrbasicpub_font_size', t('Set font-size for the entire application'), $arr['font_size'], t('Examples: 1rem, 100%, 16px')),
'$radius' => array('ussrbasicpub_radius', t('Set radius of corners'), $arr['radius'], t('Example: 4px')),
'$radius' => array('ussrbasicpub_radius', t('Set radius of corners in rem'), $arr['radius'], t('Leave empty for default radius')),
'$converse_width' => array('ussrbasicpub_converse_width',t('Set maximum width of content region in rem'),$arr['converse_width'], t('Leave empty for default width')),
'$top_photo' => array('ussrbasicpub_top_photo', t('Set size of conversation author photo'), $arr['top_photo']),
'$reply_photo' => array('ussrbasicpub_reply_photo', t('Set size of followup author photos'), $arr['reply_photo']),
'$top_photo' => array('ussrbasicpub_top_photo', t('Set size of conversation author photo'), $arr['top_photo'], t('Leave empty for default size')),
'$reply_photo' => array('ussrbasicpub_reply_photo', t('Set size of followup author photos'), $arr['reply_photo'], t('Leave empty for default size')),
'$advanced_theming' => ['ussrbasicpub_advanced_theming', t('Show advanced settings'), $arr['advanced_theming'], '', [t('No'), t('Yes')]]
));

View File

@@ -1,32 +1,48 @@
<?php
if(! App::$install) {
if(!App::$install) {
// Get the UID of the channel owner
$uid = get_theme_uid();
if($uid) {
load_pconfig($uid,'ussrbasicpub');
}
// Load the owners pconfig
load_pconfig($uid, 'ussrbasicpub');
// Load the owners pconfig
$nav_bg = get_pconfig($uid, 'ussrbasicpub', 'nav_bg');
$nav_bg_dark = get_pconfig($uid, 'ussrbasicpub', 'nav_bg_dark');
$narrow_navbar = get_pconfig($uid,'ussrbasicpub','narrow_navbar');
$link_color = get_pconfig($uid, 'ussrbasicpub', 'link_color');
$link_color_dark = get_pconfig($uid, 'ussrbasicpub', 'link_color_dark');
$link_hover_color = get_pconfig($uid, 'ussrbasicpub', 'link_hover_color');
$link_hover_color_dark = get_pconfig($uid, 'ussrbasicpub', 'link_hover_color_dark');
$bgcolor = get_pconfig($uid, 'ussrbasicpub', 'background_color');
$bgcolor_dark = get_pconfig($uid, 'ussrbasicpub', 'background_color_dark');
$schema = get_pconfig($uid,'ussrbasicpub','schema');
$background_image = get_pconfig($uid, 'ussrbasicpub', 'background_image');
$background_image_dark = get_pconfig($uid, 'ussrbasicpub', 'background_image_dark');
$font_size = get_pconfig($uid, 'ussrbasicpub', 'font_size');
$radius = get_pconfig($uid, 'ussrbasicpub', 'radius');
$converse_width=get_pconfig($uid,'ussrbasicpub','converse_width');
$top_photo=get_pconfig($uid,'ussrbasicpub','top_photo');
$reply_photo=get_pconfig($uid,'ussrbasicpub','reply_photo');
$custom_bs = get_pconfig($uid, 'ussrbasicpub', 'bootstrap');
$nav_bg = get_pconfig($uid, 'ussrbasicpub', 'nav_bg');
$nav_bg_dark = get_pconfig($uid, 'ussrbasicpub', 'nav_bg_dark');
$narrow_navbar = get_pconfig($uid,'ussrbasicpub','narrow_navbar');
$bgcolor = get_pconfig($uid, 'ussrbasicpub', 'background_color');
$bgcolor_dark = get_pconfig($uid, 'ussrbasicpub', 'background_color_dark');
$schema = get_pconfig($uid,'ussrbasicpub','schema');
$background_image = get_pconfig($uid, 'ussrbasicpub', 'background_image');
$background_image_dark = get_pconfig($uid, 'ussrbasicpub', 'background_image_dark');
$font_size = get_pconfig($uid, 'ussrbasicpub', 'font_size');
$converse_width = get_pconfig($uid,'ussrbasicpub','converse_width');
$top_photo = get_pconfig($uid,'ussrbasicpub','top_photo');
$reply_photo = get_pconfig($uid,'ussrbasicpub','reply_photo');
}
}
$site_bs_path = 'vendor/twbs/bootstrap/dist/css/bootstrap.min.css';
if (file_exists('view/theme/ussrbasicpub/css/bootstrap-custom.css')) {
// Compiled custom site bootstrap from sass
// Run this script from the document root for an example:
// php vendor/bin/pscss view/theme/ussrbasicpub/css/sample.scss view/theme/ussrbasicpub/css/bootstrap-custom.css
$site_bs_path = 'view/theme/ussrbasicpub/css/bootstrap-custom.css';
}
$bs = $custom_bs ?: file_get_contents($site_bs_path);
if (file_exists('view/css/bootstrap-red.css')) {
$bs = $bs . file_get_contents('view/css/bootstrap-red.css');
}
if(file_exists('view/theme/ussrbasicpub/schema/' . $schema . '.css')) {
$schemecss = file_get_contents('view/theme/ussrbasicpub/schema/' . $schema . '.css');
}
// Now load the scheme. If a value is changed above, we'll keep the settings
@@ -71,50 +87,16 @@ if ((!$schema) || ($schema == '---')) {
//Set some defaults - we have to do this after pulling owner settings, and we have to check for each setting
//individually. If we don't, we'll have problems if a user has set one, but not all options.
if (! $nav_bg)
$nav_bg = 'rgba(248, 249, 250, 1)';
if (! $nav_bg_dark)
$nav_bg_dark = 'rgba(43, 48, 53, 1)';
if (! $link_color)
$link_color = '#0d6efd';
if (! $link_color_dark)
$link_color_dark = '#6ea8fe';
if (! $link_hover_color)
$link_hover_color = '#0a58ca';
if (! $link_hover_color_dark)
$link_hover_color_dark = '#9ec5fe';
if (! $bgcolor)
$bgcolor = '#fff';
if (! $bgcolor_dark)
$bgcolor_dark = '#212529';
if (! $background_image)
$background_image = '';
if (! $background_image_dark)
$background_image_dark = '';
if (! $font_size)
$font_size = '0.875rem';
if (! $radius)
$radius = '0.375rem';
if (! $converse_width)
$converse_width = '52'; //unit: rem
if(! $top_photo)
$top_photo = '2.3rem';
if(! $reply_photo)
$reply_photo = '2.3rem';
$nav_bg = $nav_bg ?: 'rgba(248, 249, 250, 1)';
$nav_bg_dark = $nav_bg_dark ?: 'rgba(43, 48, 53, 1)';
$bgcolor = $bgcolor ?: '#fff';
$bgcolor_dark = $bgcolor_dark ?: '#212529';
$background_image = $background_image ?: '';
$background_image_dark = $background_image_dark ?: '';
$font_size = $font_size ?: '0.875rem';
$converse_width = $converse_width ?: '52'; //unit: rem
$top_photo = $top_photo ?: '2.9rem';
$reply_photo = $reply_photo ?: '2.9rem';
// Apply the settings
if(file_exists('view/theme/ussrbasicpub/css/style.css')) {
@@ -140,16 +122,11 @@ if(file_exists('view/theme/ussrbasicpub/css/style.css')) {
$options = array (
'$nav_bg' => $nav_bg,
'$nav_bg_dark' => $nav_bg_dark,
'$link_color' => $link_color,
'$link_color_dark' => $link_color_dark,
'$link_hover_color' => $link_hover_color,
'$link_hover_color_dark' => $link_hover_color_dark,
'$bgcolor' => $bgcolor,
'$bgcolor_dark' => $bgcolor_dark,
'$background_image' => $background_image,
'$background_image_dark' => $background_image_dark,
'$font_size' => $font_size,
'$radius' => $radius,
'$converse_width' => $converse_width,
'$top_photo' => $top_photo,
'$reply_photo' => $reply_photo,
@@ -158,8 +135,12 @@ if(file_exists('view/theme/ussrbasicpub/css/style.css')) {
'$right_aside_width' => $right_aside_width
);
echo strtr($x, $options);
$o = strtr($x, $options);
header('Cache-Control: max-age=2592000');
echo $bs . $o;
}
// Set the schema to the default schema in derived themes. See the documentation for creating derived themes how to override this.

View File

@@ -5,7 +5,7 @@
* * Description: ussr.win public theme based on Hubzilla standard theme
* * Version: 2.2
* * MinVersion: 8.9
* * MaxVersion: 10.0
* * MaxVersion: 11.0
* * Author: Fabrixxm
* * Maintainer: ivan zlax
* * Theme_Color: rgb(248, 249, 250)

View File

@@ -1,10 +1,11 @@
<?php
use Zotlabs\Lib\Config;
require_once('view/php/theme_init.php');
head_add_css('/library/fork-awesome/css/fork-awesome.min.css');
head_add_css('/vendor/twbs/bootstrap/dist/css/bootstrap.min.css');
head_add_css('/vendor/twbs/bootstrap-icons/font/bootstrap-icons.min.css');
head_add_css('/library/bootstrap-tagsinput/bootstrap-tagsinput.css');
head_add_css('/view/css/bootstrap-red.css');
head_add_css('/library/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css');
head_add_js('/vendor/twbs/bootstrap/dist/js/bootstrap.bundle.min.js');
@@ -26,8 +27,8 @@ if (App::$profile_uid) {
}
if (!$ussrbasicpub_mode) {
$ussrbasicpub_mode = ((get_config('ussrbasicpub', 'dark_mode')) ? 'dark' : 'light');
$ussrbasicpub_navbar_mode = ((get_config('ussrbasicpub', 'navbar_dark_mode')) ? 'dark' : 'light');
$ussrbasicpub_mode = ((Config::Get('ussrbasicpub', 'dark_mode')) ? 'dark' : 'light');
$ussrbasicpub_navbar_mode = ((Config::Get('ussrbasicpub', 'navbar_dark_mode')) ? 'dark' : 'light');
}
App::$page['color_mode'] = 'data-bs-theme="' . $ussrbasicpub_mode . '"';