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 VRecovery
|
||||
{
|
||||
/* validate password recovery */
|
||||
public function processForm($section)
|
||||
public static function processForm($section)
|
||||
{
|
||||
global $language, $class_filter, $class_database;
|
||||
|
||||
@@ -35,7 +35,7 @@ class VRecovery
|
||||
return $error_message;
|
||||
}
|
||||
/* reset password */
|
||||
public function doPasswordReset($section)
|
||||
public static function doPasswordReset($section)
|
||||
{
|
||||
global $db, $class_filter;
|
||||
|
||||
@@ -59,7 +59,7 @@ class VRecovery
|
||||
|
||||
}
|
||||
/* validation of recovery link */
|
||||
public function validCheck($section, $type = 'recovery')
|
||||
public static function validCheck($section, $type = 'recovery')
|
||||
{
|
||||
global $cfg, $class_database, $language;
|
||||
$get = $_GET['s'] != '' ? $_GET['s'] : ($_GET['sid'] != '' ? $_GET['sid'] : null);
|
||||
@@ -78,7 +78,7 @@ class VRecovery
|
||||
|
||||
}
|
||||
/* mark recovery as used */
|
||||
public function updateRecoveryUsage($type = 'recovery')
|
||||
public static function updateRecoveryUsage($type = 'recovery')
|
||||
{
|
||||
global $db, $class_filter;
|
||||
|
||||
@@ -86,27 +86,27 @@ class VRecovery
|
||||
$db->execute(sprintf("UPDATE `db_usercodes` SET `code_used`=`code_used`+1, `%s`='%s' WHERE `type`='%s' AND `%s`='%s' LIMIT 1;", 'use_date', date("Y-m-d H:i:s"), $type, 'pwd_id', $class_filter->clr_str($get)));
|
||||
}
|
||||
/* recovery status */
|
||||
public function getRecoveryStatus($reset_id)
|
||||
public static function getRecoveryStatus($reset_id)
|
||||
{
|
||||
global $class_database, $class_filter;
|
||||
return $class_database->singleFieldValue('db_usercodes', 'code_active', 'pwd_id', $class_filter->clr_str($reset_id));
|
||||
}
|
||||
/* recovery create date */
|
||||
public function getRecoveryCDate()
|
||||
public static function getRecoveryCDate()
|
||||
{
|
||||
global $class_database, $class_filter;
|
||||
$get = $_GET['s'] != '' ? $_GET['s'] : ($_GET['sid'] != '' ? $_GET['sid'] : null);
|
||||
return $class_database->singleFieldValue('db_usercodes', 'create_date', 'pwd_id', $class_filter->clr_str($get));
|
||||
}
|
||||
/* get user id of recovery */
|
||||
public function getRecoveryID($reset_id, $type = 'recovery')
|
||||
public static function getRecoveryID($reset_id, $type = 'recovery')
|
||||
{
|
||||
global $class_filter, $db;
|
||||
$q = $db->execute(sprintf("SELECT `usr_id` FROM `db_usercodes` WHERE `pwd_id`='%s' AND `type`='%s' LIMIT 1;", $class_filter->clr_str($reset_id), $type));
|
||||
return $q->fields['usr_id'];
|
||||
}
|
||||
/* log recovery usage */
|
||||
public function addRecoveryEntry($user_id, $reset_id, $type = '', $addTo = '')
|
||||
public static function addRecoveryEntry($user_id, $reset_id, $type = '', $addTo = '')
|
||||
{
|
||||
global $db, $class_database, $cfg, $class_filter;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user