| Server IP : 37.9.174.138 / Your IP : 216.73.216.117 Web Server : Apache System : Linux vps6.backend.sk 6.12.100+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.100-1 (2026-07-30) x86_64 User : ftpuser ( 1001) PHP Version : 8.4.24 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/ttjs.cz/dev/app/classes/ |
Upload File : |
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of Modules
*
* @author Maroš
*/
namespace app\classes;
class AdminModules {
private static $ms_instance;
private $ms_modules = array();
private $ms_head = false;
private $ms_footer = false;
private $ms_content = false;
private $ms_widgetsList = array();
private $ms_modulesArray;
private function __construct() {
$path = DOCUMENT_ROOT . "modules";
foreach (scandir($path) as $module) {
if ($module === "." || $module === "..") {
continue;
}
$this->ms_modulesArray[] = $module;
$this->ms_modules[$module] = array();
$leftMenu = $path . "/" . $module . "/admin/templates/left-menu.php";
file_exists($leftMenu) ? $this->ms_modules[$module]["left-menu"] = $leftMenu : "";
}
}
/**
* @return AdminModules
*/
public static function getInstance() {
if (AdminModules::$ms_instance == NULL) {
AdminModules::$ms_instance = new AdminModules();
}
return AdminModules::$ms_instance;
}
public function renderLeftMenu() {
foreach ($this->ms_modules as $key => $module) {
if (key_exists("left-menu", $module)) {
require $module["left-menu"];
}
}
}
public function verifyPath($module, $modulePage, $prepare = true) {
$module = str_replace("..", "", $module);
$modulePage = str_replace("..", "", $modulePage);
$moduleNameArray = explode("-", $module);
$moduleName = is_array($moduleNameArray) ? lcfirst(implode("", array_map("ucfirst", $moduleNameArray))) : $module;
if (realpath(DOCUMENT_ROOT . "modules" . "/" . $moduleName) && realpath(DOCUMENT_ROOT . "modules" . "/" . $moduleName . "/admin/templates/" . $modulePage)) {
if ($prepare) {
$this->ms_content = realpath(DOCUMENT_ROOT . "modules" . "/" . $moduleName . "/admin/templates/" . $modulePage . "/content.php");
$this->ms_head = realpath(DOCUMENT_ROOT . "modules" . "/" . $moduleName . "/admin/templates/" . $modulePage . "/head.php");
$this->ms_footer = realpath(DOCUMENT_ROOT . "modules" . "/" . $moduleName . "/admin/templates/" . $modulePage . "/footer.php");
$this->ms_prepare = realpath(DOCUMENT_ROOT . "modules" . "/" . $moduleName . "/admin/templates/" . $modulePage . "/prepare.php");
}
return true;
}
return false;
}
public function getContent() {
return $this->ms_content;
}
public function getPrepare() {
return $this->ms_prepare;
}
public function prepare() {
$this->ms_prepare === false ? "" : require $this->ms_prepare;
}
public function renderContent() {
$this->ms_content === false ? "" : require $this->ms_content;
}
public function renderHead() {
$this->ms_head === false ? "" : require $this->ms_head;
}
public function renderFooter() {
$this->ms_footer === false ? "" : require $this->ms_footer;
}
public function getWidgetsList() {
if (count($this->ms_widgetsList) === 0) {
foreach ($this->ms_modulesArray as $module) {
foreach (scandir(DOCUMENT_ROOT . "modules/" . $module . "/widgets") as $widget) {
if ($widget === "." || $widget === "..") {
continue;
}
$widgetClassPath = "modules\\" . $module . "\\widgets\\" . $widget . "\\" . ucfirst($widget) . "Widget";
if (is_subclass_of($widgetClassPath, "app\\classes\\Widget")) {
$this->ms_widgetsList[$widgetClassPath] = call_user_func($widgetClassPath . '::getName');
}
}
}
}
return $this->ms_widgetsList;
}
}