Divarion-D
ab9e8c8d18
fix(layout): prevent double footer rendering breaking Bootstrap dropdowns
...
renderUnifiedLayoutFooter() was called twice - once from view files and
once from BaseAdminController::render(). Since admin/footer.php uses
require (not require_once), this loaded vendor.min.js twice, recreating
jQuery and destroying Bootstrap's document-level dropdown handlers.
- Add static $rendered guard to renderUnifiedLayoutFooter() for idempotency
- Remove redundant footer call from BaseAdminController::render()
- Remove split-mode (.scripts.php) mechanism from BaseAdminController
- Add rRegisteredUsers, rLine to footer globals passthrough
2026-04-20 20:33:41 +03:00
Divarion-D
a00974b5c5
refactor(controllers): add data-preparation logic to admin controllers
...
- Move data queries, permission checks, and variable setup from views
into individual admin controllers (Controller → Service → Repository)
- Each controller now prepares $rViewData before rendering the view
- Controllers handle redirects, permission enforcement, and data loading
2026-04-16 22:35:07 +03:00
Divarion-D
131266dab4
fix: render() and view safety
...
- BaseAdminController: extract(data, EXTR_SKIP)
- ServerListController: compact('rServers')
- servers.php: watchdog defaults for bytes_sent, bytes_received
2026-04-13 21:51:08 +03:00
Divarion-D
6cc892f9a7
refactor: eliminate proxy functions, migrate to direct class method calls
...
312 files changed, 2866 insertions(+), 24110 deletions(-)
Proxy function replacements (130+ functions):
- goHome() -> AdminHelpers::goHome()
- checkPermissions() -> PageAuthorization::checkPermissions()
- getBouquet/getCategory/etc -> Service::getById()
- deleteStream/deleteLine/etc -> Repository/Service::delete()
- APIRequest/systemapirequest -> ApiClient::request/systemRequest()
- prepareArray/preparecolumn -> QueryHelper methods
- confirmIDs/parserelease/etc -> AdminHelpers methods
- getSettings/clearSettingsCache -> SettingsManager methods
- destroySession -> SessionManager::clearContext()
- getMag/getEnigma/deleteMAG/etc -> MagService/EnigmaService
- getSeriesTrailer/getMovieTMDB/etc -> TMDbService methods
Removed legacy files:
- src/includes/admin.php (main proxy hub)
- src/includes/libs/ (35+ files moved to core/modules)
- src/includes/python/ (moved to bin/python)
- src/includes/api/ (moved to Controllers)
- src/includes/ts.php, reseller_api.php
- src/infrastructure/legacy/admin_proxies.php
- tools/run_scan.sh, update_redis_conf.sh
Additional fixes:
- SQL query placeholder migration (BouquetService, CategoryService)
- PHP 8.x null-safe access (live.php, server_view.php, stream.php)
- TmdbCron: extracted variable for repeated similar_text calls
2026-04-09 21:24:48 +03:00
Divarion-D
738973c5db
docs(php): add standardized file headers across codebase
...
- Add @author, @copyright, @link, @version, @license to 399 PHP files
- MERGE mode: inject metadata into 243 existing docblocks (preserving docs)
- INSERT mode: create new docblocks for 156 files without headers
- Skip 3 files that already had correct headers
- Exclude third-party libs (TMDb, mobiledetect, Dropbox, etc.)
- Exclude bin/, ministra/, content/, tmp/, resources/, module views
- Update tools/add_headers.php to v2 with MERGE strategy
2026-04-05 22:38:36 +03:00
Divarion-D
7b61d2ed82
Moved admin to public/Views/admin
2026-03-11 19:46:02 +03:00
Divarion-D
ce30971af1
Moved reseler to public/Views/reseler
2026-03-08 22:13:35 +03:00
Divarion-D
3d8abedafd
Stage 8 has been completed
2026-03-07 21:53:45 +03:00
Divarion-D
9a45d94bd0
Moved interfaces/Http -> public folder
2026-02-28 18:47:56 +03:00