yxc
This commit is contained in:
@@ -148,6 +148,11 @@ function addKeyToData(array &$data, string $key, ?string $defaultValue = null):
|
||||
return;
|
||||
}
|
||||
|
||||
// Dynamische Keys mit Variablen wie pages.$pageKey.meta.title ignorieren
|
||||
if (strpos($key, '$') !== false) {
|
||||
return;
|
||||
}
|
||||
|
||||
$default = ($defaultValue !== null && $defaultValue !== '')
|
||||
? $defaultValue
|
||||
: $key;
|
||||
@@ -161,7 +166,7 @@ function addKeyToData(array &$data, string $key, ?string $defaultValue = null):
|
||||
|
||||
/**
|
||||
* Extrahiert den „aktuellen Inhalt“ eines data-i18n-Elements
|
||||
* ganz grob über Regex:
|
||||
* grob über Regex:
|
||||
* ... data-i18n="key"> Inhalt </...
|
||||
* Ist nur ein Best-Effort; bei komplexeren Strukturen fällt es auf null zurück.
|
||||
*/
|
||||
@@ -235,6 +240,12 @@ function collectKeysFromFile(string $file): array
|
||||
)) {
|
||||
foreach ($m2 as $match) {
|
||||
$key = trim($match[2]);
|
||||
|
||||
// Dynamische Keys mit Variablen wie pages.$pageKey.* hier sofort ignorieren
|
||||
if (strpos($key, '$') !== false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$default = isset($match[5]) ? trim($match[5]) : null;
|
||||
|
||||
if ($default !== null && $default !== '') {
|
||||
@@ -257,6 +268,12 @@ function collectKeysFromFile(string $file): array
|
||||
)) {
|
||||
foreach ($m3 as $match) {
|
||||
$key = trim($match[2]);
|
||||
|
||||
// Auch hier dynamische Keys mit $ ignorieren
|
||||
if (strpos($key, '$') !== false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$default = isset($match[5]) ? trim($match[5]) : null;
|
||||
|
||||
if ($default !== null && $default !== '') {
|
||||
@@ -336,6 +353,50 @@ foreach ($foundKeys as $key => $defaultText) {
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------
|
||||
// 5b) Metadaten für alle Landingpages ergänzen
|
||||
// /public/landingpage/{slug}/ → pages.{slug}.meta.{title,description}
|
||||
// -------------------------------
|
||||
$landingRoot = $baseDir . '/public/landingpage';
|
||||
if (is_dir($landingRoot)) {
|
||||
foreach (new DirectoryIterator($landingRoot) as $entry) {
|
||||
if ($entry->isDot() || !$entry->isDir()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$slug = $entry->getFilename();
|
||||
|
||||
// sehr simple Heuristik: Landingpage gilt als "aktiv", wenn irgendeine .php drin liegt
|
||||
$hasPhp = false;
|
||||
foreach (new DirectoryIterator($entry->getPathname()) as $file) {
|
||||
if ($file->isFile() && strtolower($file->getExtension()) === 'php') {
|
||||
$hasPhp = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$hasPhp) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$titleKey = "pages.$slug.meta.title";
|
||||
$descKey = "pages.$slug.meta.description";
|
||||
|
||||
if (!dotKeyExists($data, $titleKey)) {
|
||||
$defaultTitle = '{{primary_domain}} – ' . ucfirst($slug);
|
||||
addDotKey($data, $titleKey, $defaultTitle);
|
||||
$newKeys[] = $titleKey;
|
||||
$addedCount++;
|
||||
}
|
||||
|
||||
if (!dotKeyExists($data, $descKey)) {
|
||||
$defaultDesc = 'Beschreibung für ' . ucfirst($slug) . ' auf {{primary_domain}}';
|
||||
addDotKey($data, $descKey, $defaultDesc);
|
||||
$newKeys[] = $descKey;
|
||||
$addedCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------
|
||||
// 6) de.json zurückschreiben
|
||||
// -------------------------------
|
||||
@@ -373,7 +434,6 @@ if (!empty($newKeys)) {
|
||||
if ($isCli) {
|
||||
echo $output;
|
||||
} else {
|
||||
// Header nur setzen, wenn noch nichts gesendet wurde
|
||||
if (!headers_sent()) {
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user