feat: Add complete Docker deployment with web-based setup wizard
Major additions: - Web-based setup wizard (setup.php, setup_wizard.php, setup-wizard.js) - Production Docker configuration (docker-compose.prod.yml, .env.production) - Database initialization SQL files (deploy/init_settings.sql) - Template builder system with drag-and-drop UI - Advanced features (OAuth, CDN, enhanced analytics, monetization) - Comprehensive documentation (deployment guides, quick start, feature docs) - Design system with accessibility and responsive layout - Deployment automation scripts (deploy.ps1, generate-secrets.ps1) Setup wizard allows customization of: - Platform name and branding - Domain configuration - Membership tiers and pricing - Admin credentials - Feature toggles Database includes 270+ tables for complete video streaming platform with advanced features for analytics, moderation, template building, and monetization. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -18,7 +18,7 @@ defined('_ISVALID') or header('Location: /error');
|
||||
class VUserinfo
|
||||
{
|
||||
/* valid username format */
|
||||
public function isValidUsername($username)
|
||||
public static function isValidUsername($username)
|
||||
{
|
||||
global $cfg;
|
||||
|
||||
@@ -42,12 +42,12 @@ class VUserinfo
|
||||
return true;
|
||||
}
|
||||
/* remove chars from string */
|
||||
public function clearString($username)
|
||||
public static function clearString($username)
|
||||
{
|
||||
return preg_replace('/[^a-zA-Z0-9@_.\-]/', '', $username);
|
||||
}
|
||||
/* check for existing username */
|
||||
public function existingUsername($username, $section = 'frontend')
|
||||
public static function existingUsername($username, $section = 'frontend')
|
||||
{
|
||||
global $db, $class_database;
|
||||
|
||||
@@ -76,7 +76,7 @@ class VUserinfo
|
||||
}
|
||||
}
|
||||
/* check for existing email */
|
||||
public function existingEmail($email, $section = 'frontend')
|
||||
public static function existingEmail($email, $section = 'frontend')
|
||||
{
|
||||
global $db, $class_filter;
|
||||
|
||||
@@ -105,7 +105,7 @@ class VUserinfo
|
||||
}
|
||||
}
|
||||
/* get user id from other fields */
|
||||
public function getUserID($user, $where_field = 'usr_user')
|
||||
public static function getUserID($user, $where_field = 'usr_user')
|
||||
{
|
||||
global $db, $class_filter;
|
||||
$user = $where_field == 'usr_user' ? self::clearString($user) : $class_filter->clr_str($user);
|
||||
@@ -113,14 +113,14 @@ class VUserinfo
|
||||
return $q->fields['usr_id'];
|
||||
}
|
||||
/* get user name from other fields */
|
||||
public function getUserName($user, $where_field = 'usr_id')
|
||||
public static function getUserName($user, $where_field = 'usr_id')
|
||||
{
|
||||
global $db, $class_filter;
|
||||
$q = $db->execute(sprintf("SELECT `usr_user` FROM `db_accountuser` WHERE `" . $where_field . "`='%s' LIMIT 1;", $class_filter->clr_str($user)));
|
||||
return $q->fields['usr_user'];
|
||||
}
|
||||
/* get email from user id */
|
||||
public function getUserEmail($user = '')
|
||||
public static function getUserEmail($user = '')
|
||||
{
|
||||
global $db, $smarty;
|
||||
switch ($user) {
|
||||
@@ -133,7 +133,7 @@ class VUserinfo
|
||||
return $usr_email;
|
||||
}
|
||||
/* get various user details */
|
||||
public function getUserInfo($user_id)
|
||||
public static function getUserInfo($user_id)
|
||||
{
|
||||
global $db;
|
||||
|
||||
@@ -163,7 +163,7 @@ class VUserinfo
|
||||
return $info;
|
||||
}
|
||||
/* username validation */
|
||||
public function usernameVerification($username, $section = 'frontend')
|
||||
public static function usernameVerification($username, $section = 'frontend')
|
||||
{
|
||||
global $cfg, $language;
|
||||
|
||||
@@ -182,7 +182,7 @@ class VUserinfo
|
||||
} else {return false;}
|
||||
}
|
||||
/* birthday input validation */
|
||||
public function birthdayVerification($date)
|
||||
public static function birthdayVerification($date)
|
||||
{
|
||||
global $cfg;
|
||||
|
||||
@@ -195,7 +195,7 @@ class VUserinfo
|
||||
|
||||
}
|
||||
/* age from date */
|
||||
public function ageFromString($date)
|
||||
public static function ageFromString($date)
|
||||
{
|
||||
if (!preg_match("/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/", $date, $arr)) {
|
||||
return false;
|
||||
@@ -211,7 +211,7 @@ class VUserinfo
|
||||
return $age;
|
||||
}
|
||||
/* generate random strings */
|
||||
public function generateRandomString($length = 10, $alphanumeric = false)
|
||||
public static function generateRandomString($length = 10, $alphanumeric = false)
|
||||
{
|
||||
if (!$alphanumeric) {
|
||||
$str = join('', array_map(function ($value) {return $value == 1 ? mt_rand(1, 3) : mt_rand(0, 9);}, range(1, $length)));
|
||||
@@ -226,7 +226,7 @@ class VUserinfo
|
||||
return $str;
|
||||
}
|
||||
/* check for available username */
|
||||
public function usernameAvailability($username, $section = 'frontend')
|
||||
public static function usernameAvailability($username, $section = 'frontend')
|
||||
{
|
||||
global $cfg, $language;
|
||||
|
||||
@@ -248,7 +248,7 @@ class VUserinfo
|
||||
}
|
||||
}
|
||||
/* truncating strings */
|
||||
public function truncateString($string, $max_length)
|
||||
public static function truncateString($string, $max_length)
|
||||
{
|
||||
return mb_strimwidth($string, 0, $max_length, '...', 'utf-8');
|
||||
|
||||
@@ -264,7 +264,7 @@ class VUserinfo
|
||||
}
|
||||
}
|
||||
/* days from date */
|
||||
public function timeRange($datetime)
|
||||
public static function timeRange($datetime)
|
||||
{
|
||||
global $language;
|
||||
|
||||
@@ -314,7 +314,7 @@ class VUserinfo
|
||||
}
|
||||
|
||||
/* days from date */
|
||||
public function timeRange_old($datetime)
|
||||
public static function timeRange_old($datetime)
|
||||
{
|
||||
global $language;
|
||||
|
||||
@@ -354,7 +354,7 @@ class VUserinfo
|
||||
}
|
||||
}
|
||||
/* unix timestamp */
|
||||
public function convert_datetime($str)
|
||||
public static function convert_datetime($str)
|
||||
{
|
||||
if ($str == '') {
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user