| Linux hosting5.siteguarding.com 3.10.0-962.3.2.lve1.5.88.el7.x86_64 #1 SMP Fri Sep 26 14:06:42 UTC 2025 x86_64 Path : /home/devsafetybis/op4103.dev.safetybis.com/admin1qw/controller/common/ |
| Current File : /home/devsafetybis/op4103.dev.safetybis.com/admin1qw/controller/common/developer.php |
<?php
namespace Opencart\Admin\Controller\Common;
/**
* Class Developer
*
* Can be loaded using $this->load->controller('common/developer');
*
* @package Opencart\Admin\Controller\Common
*/
class Developer extends \Opencart\System\Engine\Controller {
/**
* Index
*
* @return void
*/
public function index(): void {
$this->load->language('common/developer');
$data['developer_sass'] = $this->config->get('developer_sass');
$data['user_token'] = $this->session->data['user_token'];
$this->response->setOutput($this->load->view('common/developer', $data));
}
/**
* Edit
*
* @return void
*/
public function edit(): void {
$this->load->language('common/developer');
$json = [];
if (!$this->user->hasPermission('modify', 'common/developer')) {
$json['error'] = $this->language->get('error_permission');
}
if (!$json) {
// Setting
$this->load->model('setting/setting');
$this->model_setting_setting->editSetting('developer', $this->request->post, 0);
$json['success'] = $this->language->get('text_developer_success');
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
/**
* Cache
*
* @return void
*/
public function cache(): void {
$this->load->language('common/developer');
$json = [];
if (!$this->user->hasPermission('modify', 'common/developer')) {
$json['error'] = $this->language->get('error_permission');
}
if (!$json) {
$files = glob(DIR_CACHE . 'cache.*');
if ($files) {
foreach ($files as $file) {
if (is_file($file)) {
unlink($file);
}
}
}
$json['success'] = $this->language->get('text_cache_success');
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
/**
* Theme
*
* @return void
*/
public function theme(): void {
$this->load->language('common/developer');
$json = [];
if (!$this->user->hasPermission('modify', 'common/developer')) {
$json['error'] = $this->language->get('error_permission');
}
if (!$json) {
$directories = glob(DIR_CACHE . 'template/*', GLOB_ONLYDIR);
if ($directories) {
foreach ($directories as $directory) {
$files = glob($directory . '/*');
foreach ($files as $file) {
if (is_file($file)) {
unlink($file);
}
}
if (is_dir($directory)) {
rmdir($directory);
}
}
}
$json['success'] = $this->language->get('text_theme_success');
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
/**
* Sass
*
* @return void
*/
public function sass(): void {
$this->load->language('common/developer');
$json = [];
if (!$this->user->hasPermission('modify', 'common/developer')) {
$json['error'] = $this->language->get('error_permission');
}
if (!$json) {
// Before we delete we need to make sure there is a sass file to regenerate the css
$file = DIR_APPLICATION . 'view/stylesheet/bootstrap.css';
if (is_file($file) && is_file(DIR_APPLICATION . 'view/stylesheet/scss/bootstrap.scss')) {
unlink($file);
}
$files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/scss/bootstrap.scss');
foreach ($files as $file) {
$file = substr($file, 0, -20) . '/bootstrap.css';
if (is_file($file)) {
unlink($file);
}
}
$files = glob(DIR_CATALOG . 'view/theme/*/stylesheet/stylesheet.scss');
foreach ($files as $file) {
$file = substr($file, 0, -16) . '/stylesheet.css';
if (is_file($file)) {
unlink($file);
}
}
$json['success'] = $this->language->get('text_sass_success');
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
/**
* Vendor
*
* Generate new autoloader file
*
* @return void
*/
public function vendor(): void {
$this->load->language('common/developer');
$json = [];
if (!$this->user->hasPermission('modify', 'common/developer')) {
$json['error'] = $this->language->get('error_permission');
}
if (!$json) {
// Generate php autoload file
$code = '<?php' . "\n";
$files = glob(DIR_STORAGE . 'vendor/*/*/composer.json');
foreach ($files as $file) {
$output = json_decode(file_get_contents($file), true);
$code .= '// ' . $output['name'] . "\n";
if (isset($output['autoload'])) {
$directory = substr(dirname($file), strlen(DIR_STORAGE . 'vendor/'));
// Autoload psr-4 files
if (isset($output['autoload']['psr-4'])) {
$autoload = $output['autoload']['psr-4'];
foreach ($autoload as $namespace => $path) {
if (!is_array($path)) {
$code .= '$autoloader->register(\'' . rtrim($namespace, '\\') . '\', DIR_STORAGE . \'vendor/' . $directory . '/' . rtrim($path, '/') . '/' . '\', true);' . "\n";
} else {
foreach ($path as $value) {
$code .= '$autoloader->register(\'' . rtrim($namespace, '\\') . '\', DIR_STORAGE . \'vendor/' . $directory . '/' . rtrim($value, '/') . '/' . '\', true);' . "\n";
}
}
}
}
// Autoload psr-0 files
if (isset($output['autoload']['psr-0'])) {
$autoload = $output['autoload']['psr-0'];
foreach ($autoload as $namespace => $path) {
if (!is_array($path)) {
$code .= '$autoloader->register(\'' . rtrim($namespace, '\\') . '\', DIR_STORAGE . \'vendor/' . $directory . '/' . rtrim($path, '/') . '/' . '\', true);' . "\n";
} else {
foreach ($path as $value) {
$code .= '$autoloader->register(\'' . rtrim($namespace, '\\') . '\', DIR_STORAGE . \'vendor/' . $directory . '/' . rtrim($value, '/') . '/' . '\', true);' . "\n";
}
}
}
}
// Autoload classmap
if (isset($output['autoload']['classmap'])) {
$autoload = [];
$classmaps = $output['autoload']['classmap'];
foreach ($classmaps as $classmap) {
$directories = [dirname($file) . '/' . $classmap];
while (count($directories) != 0) {
$next = array_shift($directories);
if (is_dir($next)) {
foreach (glob(trim($next, '/') . '/{*,.[!.]*,..?*}', GLOB_BRACE) as $file) {
if (is_dir($file)) {
$directories[] = $file . '/';
}
if (is_file($file)) {
$namespace = substr(dirname($file), strlen(DIR_STORAGE . 'vendor/' . $directory . $classmap) + 1);
if ($namespace) {
$autoload[$namespace] = substr(dirname($file), strlen(DIR_STORAGE . 'vendor/'));
}
}
}
}
}
}
foreach ($autoload as $namespace => $path) {
$code .= '$autoloader->register(\'' . rtrim($namespace, '\\') . '\', DIR_STORAGE . \'vendor/' . rtrim($path, '/') . '/' . '\', true);' . "\n";
}
}
// Autoload files
if (isset($output['autoload']['files'])) {
$files = $output['autoload']['files'];
foreach ($files as $file) {
$code .= 'if (is_file(DIR_STORAGE . \'vendor/' . $directory . '/' . $file . '\')) {' . "\n";
$code .= ' require_once(DIR_STORAGE . \'vendor/' . $directory . '/' . $file . '\');' . "\n";
$code .= '}' . "\n";
}
}
}
$code .= "\n";
}
file_put_contents(DIR_SYSTEM . 'vendor.php', trim($code));
$json['success'] = $this->language->get('text_vendor_success');
}
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode($json));
}
}