Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fehlende Platzhalter - auch in Templates und Artikelausgabe erkennen? #85

Open
alxndr-w opened this issue Dec 6, 2022 · 5 comments
Open

Comments

@alxndr-w
Copy link

alxndr-w commented Dec 6, 2022

public static function getMissingWildcards()
{
$wildcards = [];
if (\rex_addon::get('structure')->isAvailable() && \rex_plugin::get('structure', 'content')->isAvailable()) {
$sql = \rex_sql::factory();
// Slices der Artikel durchsuchen
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$fields = [
's.value' => range('1', '20'),
];
$searchFields = [];
$selectFields = [];
foreach ($fields as $field => $numbers) {
$concatFields = [];
foreach ($numbers as $number) {
$concatFields[] = $field.$number;
$searchFields[] = $field.$number.' RLIKE '.$sql->escape(preg_quote(trim(self::getOpenTag())).'.*'.preg_quote(trim(self::getCloseTag())));
}
$selectFields[] = 'CONCAT_WS("|", '.implode(',', $concatFields).') AS subject';
}
$fields = $searchFields;
$sql_query = ' SELECT s.article_id AS id,
s.clang_id,
s.ctype_id,
'.implode(', ', $selectFields).'
FROM '.\rex::getTable('article_slice').' AS s
LEFT JOIN
'.\rex::getTable('article').' AS a
ON (s.article_id = a.id AND s.clang_id = a.clang_id)
WHERE '.implode(' OR ', $fields).'
';
$sql->setDebug(false);
$sql->setQuery($sql_query);
if ($sql->getRows() >= 1) {
$items = $sql->getArray();
foreach ($items as $item) {
preg_match_all(self::getRegexp(), $item['subject'], $matchesSubject, PREG_SET_ORDER);
foreach ($matchesSubject as $match) {
$wildcard = $match['wildcard'];
$wildcards[$wildcard]['wildcard'] = $wildcard;
$wildcards[$wildcard]['url'] = \rex_url::backendController(
[
'page' => 'content/edit',
'article_id' => $item['id'],
'mode' => 'edit',
'clang' => $item['clang_id'],
'ctype' => $item['ctype_id'],
]
);
}
}
}
// Alle bereits angelegten Platzhalter entfernen
if (count($wildcards)) {
$sql = \rex_sql::factory();
$sql->setDebug(false);
$sql->setQuery('
SELECT wildcard
FROM '.\rex::getTable('sprog_wildcard').'
WHERE clang_id = :clang_id',
['clang_id' => \rex_clang::getStartId()]
);
if ($sql->getRows() >= 1) {
$items = $sql->getArray();
foreach ($items as $item) {
if (isset($wildcards[$item['wildcard']])) {
unset($wildcards[$item['wildcard']]);
}
}
}
}
return $wildcards;
}
return false;
}

Wo sollten diese im Backend auftauchen? Ich erinnere mich, dass es diese gab, aber sie werden mir nicht dargestellt:

image

Frontend:

image

Diesen Code verwende ich in einem Fragment, das über ein Template ausgegeben wird:

				<p><strong>{{bs5.footer.nav.headline}}</strong></p>
@tbaddade
Copy link
Owner

tbaddade commented Dec 7, 2022

Wo sollten diese im Backend auftauchen?

Unterhalb der Tabelle in deinem Screen.

Bisher werden nur Slices durchsucht, keine andere Daten wie u.a. Fragmente.

@alxndr-w
Copy link
Author

alxndr-w commented Dec 7, 2022

Ah, d.h. es wird die Ausgabe der slices herangezogen, nicht die komplette Ausgabe, bspw Templates oder auf Wunsch zur Laufzeit bei aktiviertem Debug-Modus. Ließe sich das komfortabel ändern?

@tbaddade
Copy link
Owner

tbaddade commented Dec 7, 2022

Ließe sich das komfortabel ändern?

Ändern lässt sich ja vieles. Hat für mich selbst nur keine Priorität.

@alxndr-w alxndr-w changed the title Wo erkenne ich die fehlenden Platzhalter? Fehlende Platzhalter - auch in Templates und Artikelausgabe erkennen? Dec 7, 2022
@alxndr-w
Copy link
Author

alxndr-w commented Dec 7, 2022

Das ist mir bewusst und auch, dass es ja letztendlich deine Zeit betrifft - die stelle ich nicht über meine. Lass' mich wissen, ob ich das begünstigen kann. Ansonsten muss ich halt sorgfältiger arbeiten ;)

Danke für die Auskunft jedenfalls.

@tbaddade
Copy link
Owner

tbaddade commented Dec 8, 2022

Hintergrund war mal, es für die Redakteure zu vereinfachen. Artikel ggf. mit Platzhalter schreiben und dann nach Sprog und ersetzen. Aus Sicht eines Admins habe ich den Part noch nie betrachtet :).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants