Files
citrus-cms/resources/views/admin-ajax/get-all-modules.blade.php
T
2026-04-28 21:15:09 +03:00

66 lines
1.5 KiB
PHP

@php
/**
* Get All Modules - Returns list of all enabled modules/types
*
* Used by Full Content Scanner to discover all translatable content
*
* Returns JSON:
* - success: boolean
* - modules: array of {slug, title}
*/
header('Content-Type: application/json');
use App\Types;
try {
// Get all enabled parent modules
$parentModules = Types::whereNull("kid")
->where("enabled", true)
->orderBy("s", "ASC")
->get(['slug', 'title']);
// Get all enabled child modules
$childModules = Types::whereNotNull("kid")
->where("enabled", true)
->orderBy("s", "ASC")
->get(['slug', 'title', 'kid']);
$modules = [];
// Add parent modules
foreach ($parentModules as $module) {
if (!empty($module->slug)) {
$modules[] = [
'slug' => $module->slug,
'title' => $module->title ?? $module->slug
];
}
}
// Add child modules
foreach ($childModules as $module) {
if (!empty($module->slug)) {
$modules[] = [
'slug' => $module->slug,
'title' => $module->title ?? $module->slug
];
}
}
echo json_encode([
'success' => true,
'modules' => $modules,
'total' => count($modules)
]);
} catch (\Exception $e) {
echo json_encode([
'success' => false,
'message' => 'Failed to load modules: ' . $e->getMessage(),
'modules' => []
]);
}
@endphp