66 lines
1.5 KiB
PHP
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
|