feat: Add comprehensive documentation suite and reorganize project structure

- Created complete documentation in docs/ directory
- Added PROJECT_OVERVIEW.md with feature highlights and getting started guide
- Added ARCHITECTURE.md with system design and technical details
- Added SECURITY.md with comprehensive security implementation guide
- Added DEVELOPMENT.md with development workflows and best practices
- Added DEPLOYMENT.md with production deployment instructions
- Added API.md with complete REST API documentation
- Added CONTRIBUTING.md with contribution guidelines
- Added CHANGELOG.md with version history and migration notes
- Reorganized all documentation files into docs/ directory for better organization
- Updated README.md with proper documentation links and quick navigation
- Enhanced project structure with professional documentation standards
This commit is contained in:
SamiAhmed7777
2025-10-21 00:39:45 -07:00
commit 0b7e2d0a5b
6080 changed files with 1332936 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
<?php
/*******************************************************************************************************************
| Software Name : EasyStream
| Software Description : High End YouTube Clone Script with Videos, Shorts, Streams, Images, Audio, Documents, Blogs
| Software Author : (c) Sami Ahmed
|*******************************************************************************************************************
|
|*******************************************************************************************************************
| This source file is subject to the EasyStream Proprietary License Agreement.
|
| By using this software, you acknowledge having read this Agreement and agree to be bound thereby.
|*******************************************************************************************************************
| Copyright (c) 2025 Sami Ahmed. All rights reserved.
|*******************************************************************************************************************/
defined('_ISVALID') or header('Location: /error');
class VForm
{
/* check for empty fields */
public function checkEmptyFields($allowedFields, $requiredFields, $replace = '')
{
global $language, $smarty, $cfg;
if (is_array($replace)) {
if ($cfg['paid_memberships'] == 0) {
unset($replace['frontend_membership_type']);
}
foreach ($replace as $rv) {
$pv = $_POST[$rv];
$lang = $language[str_replace('_', '.', $rv)];
if (str_replace($lang, '', $pv) == '' or str_replace($lang . ': ', '', $pv) == '') {
$_POST[$rv] = '';
}
}
}
if (is_array($allowedFields)) {
foreach ($_POST as $key => $value) {
if (in_array($key, $allowedFields)) {
if (in_array($key, $requiredFields) and ($value == '' or $value == '---')) {
$error_message = '<span class="bold">' . $language['notif.error.required.field'] . '</span>&nbsp;<span class="bold underlined">' . $language[str_replace('_', '.', $key)] . ' </span>';
break;
}
}
}
}
return $error_message;
}
/* clear tags */
public function clearTag($tag, $url = '')
{
$rep = $url == '' ? " " : "-";
$clear = array("~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "+", "`", "=", "[", "]", "\\", "{", "}", "|", ";", "'", ".", ",", "/", ":", '"', "<", ">", "?", "_", "-", "\n", "\r", "\t");
if ($url == 1) {
$tag = html_entity_decode($tag, ENT_QUOTES, 'UTF-8');
$clear[] = " ";
}
return preg_replace('/\s\s+/', ' ', trim(str_replace($clear, $rep, $tag)));
}
}