101 lines
3.0 KiB
PHP
101 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use App\Controllers\BaseController;
|
|
use CodeIgniter\HTTP\ResponseInterface;
|
|
|
|
class TestingController extends BaseController
|
|
{
|
|
public function logo_renaming(){
|
|
|
|
$directory = ROOTPATH . 'public/uploads/logo/';
|
|
|
|
if (!is_dir($directory)) {
|
|
die("Directory not found: $directory");
|
|
}
|
|
|
|
$files = scandir($directory);
|
|
|
|
$client_logo_files = $this->get_client_logo_files();
|
|
|
|
$rename_files = "";
|
|
$failed_rename_files = "";
|
|
|
|
foreach ($files as $file) {
|
|
// Skip system entries
|
|
if ($file === '.' || $file === '..' ) {
|
|
continue;
|
|
}
|
|
|
|
$oldPath = $directory . $file;
|
|
|
|
if (is_file($oldPath) && in_array(trim($file) , $client_logo_files)) {
|
|
|
|
// Remove all spaces from filename
|
|
$newFileName = preg_replace('/\s+|\x{00A0}|\x{200B}|\x{200C}|\x{200D}|\x{FEFF}/u', '', $file);
|
|
|
|
$newPath = $directory . $newFileName;
|
|
|
|
// Only rename if the name changed
|
|
if ($oldPath !== $newPath) {
|
|
if (rename($oldPath, $newPath)) {
|
|
$rename_files .= "\n Renamed: $file → $newFileName \n";
|
|
} else {
|
|
$failed_rename_files .= "\n Failed file: $file \n";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$dbUpdated = $this->update_client_logo_files();
|
|
|
|
log_message('error', 'Renamed Files: ' . $rename_files);
|
|
log_message('error', 'Failed Renames: ' . $failed_rename_files);
|
|
log_message('error', 'Database Update Status: ' . ($dbUpdated ? 'Success' : 'No Changes Made or Failed'));
|
|
|
|
return $this->response->setJSON(['status' => 'success',
|
|
'message' => 'Logo renaming completed. kindly check backend logs for details',
|
|
'data' => [
|
|
'renamed_files' => $rename_files,
|
|
'failed_renames' => $failed_rename_files
|
|
]
|
|
])->setStatusCode(200);
|
|
}
|
|
|
|
public function get_client_logo_files(){
|
|
|
|
$db = \Config\Database::connect();
|
|
|
|
$sql = "SELECT client_logo FROM clients WHERE client_logo IS NOT NULL AND TRIM(client_logo) <> '' ";
|
|
|
|
$query = $db->query($sql);
|
|
|
|
$results = $query->getResultArray() ?? [];
|
|
|
|
$files = array_map(function($item) {
|
|
return trim($item['client_logo']);
|
|
}, $results);
|
|
|
|
return $files;
|
|
}
|
|
|
|
public function update_client_logo_files(){
|
|
|
|
$db = \Config\Database::connect();
|
|
|
|
$sql = "UPDATE clients
|
|
SET client_logo = REPLACE(REPLACE(REPLACE(client_logo, CHAR(160), ''), ' ', ''), '\t', '')
|
|
WHERE client_logo IS NOT NULL
|
|
AND TRIM(client_logo) <> ''
|
|
";
|
|
|
|
$query = $db->query($sql);
|
|
|
|
return $db->affectedRows() > 0;
|
|
|
|
|
|
}
|
|
|
|
}
|