- check_compat.php: Translate comment to English
- changelog.php: Translate error message to English
- Translate comments in core/ files
- Translate comments in admin/modules/ files
- Translate comments in blocks/ files
- Standardize documentation language
Merging two histories:
- Local: 52 commits with
- GitHub: 17 commits from previous repository state
Both histories are now preserved.
Conflicts:
blocks/block-languages.php
blocks/block-user_info.php
blocks/block-voting.php
config/000config_global.php
config/changelog.php
config/comments.php
config/config_global.php
config/config_security.php
config/favorites.php
config/fields.php
config/lang.php
config/users.php
language/fr.php
modules/account/index.php
modules/contact/index.php
modules/forum/index.php
modules/voting/index.php
modules/whois/index.php
plugins/codemirror/mode/asn.1/index.html
plugins/codemirror/mode/mumps/index.html
plugins/codemirror/mode/nginx/index.html
plugins/codemirror/mode/pig/index.html
plugins/sxd/backup/.htaccess
plugins/sxd/cfg.php
plugins/sxd/img/icons.png
plugins/sxd/index.php
plugins/sxd/info.php
plugins/sxd/lang/list.php
plugins/sxd/lang/lng_en.php
plugins/sxd/lang/lng_ru.php
plugins/sxd/lang/lng_uk.php
plugins/sxd/lang/update.php
plugins/sxd/load.php
plugins/sxd/readme_en.txt
plugins/sxd/readme_ru.txt
plugins/sxd/ses.php
plugins/sxd/sxd.css
plugins/sxd/sxd.js
templates/admin/index.php
- Info files: Language name standardization (english→en, german→de, french→fr, etc.)
- Admin modules: Code improvements and consistency fixes
- Core system: Security and user management enhancements
- Config: Log file updates
- Removed .
- Removed
- Cleaned up project documentation structure
Fixed configuration persistence issues in the changelog module where GitHub repository and token values were not being saved correctly. Changes in admin/modules/changelog.php:
- Fixed global variable: $admin_file → $aroute (consistency)
- Fixed getVar() type for GitHub fields: 'var' → 'text'
- The 'var' type uses isVar() which only allows a-zA-Z0-9_-
- Repository names like 'SLAED-CMS-6.3-Pro' contain dots, which were rejected
- GitHub tokens contain underscores and were being filtered incorrectly
- Type 'text' uses save_text() which preserves special characters
Issue details:
- getVar() with type 'var' calls isVar() function
- isVar() pattern: /[^a-zA-Z0-9_\-]/ rejects dots and many characters
- 'SLAED-CMS-6.3-Pro' was converted to '0' due to dot rejection
- GitHub tokens 'ghp_...' were also filtered incorrectly
Solution:
- Use type 'text' for github_owner, github_repo, and github_token
- save_text() preserves necessary characters while still sanitizing input
- Configuration now saves correctly with full repository names and tokens
This fix enables proper GitHub API integration configuration.
Fixed GitHub API authorization header format and moved sensitive configuration to .gitignore for better security practices. Changes in admin/modules/changelog.php:
- Fixed Authorization header: 'Bearer' → 'token'
- GitHub Personal Access Tokens require 'token' prefix, not 'Bearer'
- 'Bearer' is used for OAuth 2.0 tokens only
Changes in .gitignore:
- Added /config/changelog.php to excluded files
- Prevents committing API tokens and sensitive credentials
- Grouped under new "API tokens and secrets" section
New file: config/changelog.php.example
- Template configuration file without sensitive data
- Users copy to changelog.php and add their own token
- Safe to commit to repository
Security improvement:
- GitHub tokens no longer tracked in version control
- Reduces risk of credential exposure
- Follows best practices for secret management
Major refactoring of admin modules with code modernization, security improvements, and new GitHub API integration for changelog functionality.
New Features
GitHub Integration (changelog.php)
Added commits() function to fetch commit history from GitHub API:
- Supports filtering by author, date range, search term
- Complete error handling with detailed HTTP status codes
- Bearer token authentication support
- Configurable commit limit (default: 50)
- Returns structured commit data: hash, author, date, message, files
Configuration added to config/changelog.php:
- github_owner: SLAED-CMS
- github_repo: SLAED-CMS-6.3-Pro
- github_token: API access token
- source: 'github' (local/github toggle)
New Monitor Module
Added admin/modules/monitor.php (~30KB):
- System monitoring and analytics dashboard
- Real-time performance metrics
- Resource usage tracking
Module Modernization
Function Naming Standardization
Unified navigation functions across all modules to generic navi():
- msgNavi() → navi() in messages.php
- privatNavi() → navi() in privat.php
- (consistently applied to all modules)
Security Improvements
SQL Injection Protection: Updated raw SQL queries to use prepared statements with named placeholders:
// BEFORE:
$db->sql_query("UPDATE ".$prefix."_message SET active = '0', expire = '0' WHERE mid = '".$mid."'");
// AFTER:
$db->sql_query('UPDATE '.$prefix.'_message SET active = :active, expire = :expire WHERE mid = :mid',
['active' => 0, 'expire' => 0, 'mid' => $mid]);
Config File Validation:
Replaced end_chmod() with checkConfigFile() helper:
// BEFORE:
include('config/config_privat.php');
$permtest = end_chmod('config/config_privat.php', 666);
if ($permtest) $cont .= tpl_warn('warn', $permtest, '', '', 'warn');
// AFTER:
$cont .= checkConfigFile('config_privat.php');
Code Style Standardization
Tabs → Spaces (PSR-12): Converted all indentation from tabs to 4 spaces in:
- messages.php
- privat.php
- groups.php
- categories.php
- favorites.php
- fields.php
Double Quotes → Single Quotes:
// BEFORE:
if (!defined("ADMIN_FILE")) die("Illegal file access");
// AFTER:
if (!defined('ADMIN_FILE')) die('Illegal file access');
Template Functions:
- tpl_eval() → setTemplateBasic()
- tpl_warn() → setTemplateWarning()
Global Variables:
- $admin_file → $aroute (consistent routing variable)
Function Signature Improvements
Type Hints and Return Types:
// BEFORE:
function privat() {
// AFTER:
function privat(): void {
Function Renaming for Clarity:
// BEFORE:
function privatConf() {
// AFTER:
function conf(): void {
Copyright Updates
Updated copyright years in all modified files:
- © 2005 - 2017 → © 2005 - 2026
Modules Modified
- admin/index.php - Minor routing update
- admin/modules/admins.php - Removed unused global $conf
- admin/modules/categories.php - Full modernization (40 changes)
- admin/modules/changelog.php - GitHub integration (+356 lines)
- admin/modules/favorites.php - Code style standardization (52 changes)
- admin/modules/fields.php - Modernization (93 changes)
- admin/modules/groups.php - Complete refactoring (163 changes)
- admin/modules/lang.php - Code cleanup (53 changes)
- admin/modules/messages.php - Full modernization (293 changes)
- admin/modules/privat.php - Complete refactoring (151 changes)
- config/changelog.php - GitHub configuration added
Statistics
- 11 files modified
- 1 new file (monitor.php)
- 651 insertions, 557 deletions (+94 lines net)
- ~1,200 lines refactored for code quality
Impact
- Modern PHP 8.4+ standards applied throughout
- Improved security with SQL injection protection
- Consistent code style (PSR-12)
- GitHub API integration enables cloud-based changelog management
- Better maintainability with standardized function names
- Cleaner codebase with removed legacy patterns
This commit continues the ISO 639-1 language code standardization, focusing on admin help documentation files and modernizing admin module code.
Admin Help Files Renamed (admin/info/)
Renamed 84 HTML help files from verbose language names to ISO 639-1 codes: Modules affected:
- admins: admins-english.html → admins-en.html (and fr, de, pl, ru, uk)
- blocks: blocks-english.html → blocks-en.html (and fr, de, pl, ru, uk)
- categories: categories-english.html → categories-en.html (etc.)
- comments: comments-english.html → comments-en.html (etc.)
- configure: configure-english.html → configure-en.html (etc.)
- database: database-english.html → database-en.html (etc.)
- editor: editor-english.html → editor-en.html (etc.)
- favorites: favorites-english.html → favorites-en.html (etc.)
- fields: fields-english.html → fields-en.html (etc.)
- groups: groups-english.html → groups-en.html (etc.)
- lang: lang-english.html → lang-en.html (etc.)
- messages: msg-english.html → messages-en.html (also renamed msg- → messages-)
- modules: modules-english.html → modules-en.html (etc.)
Total: 14 help file sets × 6 languages = 84 files standardized
Admin Modules Refactored (admin/modules/)
Navigation Function Standardization
Unified all module-specific navigation functions to generic navi():
- adminsNavi() → navi() in admins.php
- databaseNavi() → navi() in database.php
- (applied consistently across all modules)
Security Improvements
Added exit; after all header() redirects to prevent code execution:
// BEFORE:
header('Location: '.$aroute.'.php?name=admins&op=show');
// AFTER:
header('Location: '.$aroute.'.php?name=admins');
exit;
Applied to: admins.php, blocks.php, categories.php, changelog.php,
comments.php, database.php, editor.php
Code Modernization
Replaced opendir()/readdir() with scandir():
// BEFORE:
$handle = opendir('blocks');
while (false !== ($file = readdir($handle))) {
if (preg_match('/^block\-(.+)\.php/', $file, $matches)) {
// process file
}
}
closedir($handle);
// AFTER:
$files = scandir('blocks');
foreach ($files as $file) {
if (preg_match('/^block\-(.+)\.php/', $file, $matches)) {
// process file
}
}
Removed redundant checks:
// BEFORE:
if ($val != '') {
$result = $db->sql_query('SELECT bid FROM '.$prefix.'_blocks WHERE bposition = :val ORDER BY weight ASC', ['val' => $val]);
}
// AFTER:
$result = $db->sql_query('SELECT bid FROM '.$prefix.'_blocks WHERE bposition = :val ORDER BY weight ASC', ['val' => $val]);
Simplified redirects:
- Removed unnecessary
&op=showparameters from redirects - Redirects now use cleaner URLs:
?name=moduleinstead of?name=module&op=show
Code Cleanup
- Removed 80+ lines of commented-out legacy code in database.php
- Removed unused global variable declarations (e.g.,
$localein blocks.php) - Standardized parameter type hints in getVar() calls
Statistics
- 7 admin modules modified
- 179 insertions, 254 deletions (-75 lines, ~30% reduction)
- 84 help files renamed (old deleted, new with ISO codes)
- All
header()calls now properly terminated withexit;
Impact
- Consistent ISO 639-1 language code usage across entire admin system
- Improved security with proper redirect termination
- More maintainable code with modern PHP patterns
- Cleaner codebase with removed legacy code