Skip to content

Weiterleiten auf das Original-YTemplate #15

@christophboecker

Description

@christophboecker

Nur mal so als Idee:

In den YTemplates ist ein Teil des Code aus den Original-Templates hineinkopiert und wird aufgerufen, wenn kein Accordion-Effekt angefordert ist.

// -------------------------------------------------------------------
// Kein Accordion? → Original-Verhalten 1:1
// -------------------------------------------------------------------
if (!$isAccordion) {
$class_group = trim('form-group ' . $this->getHTMLClass());

Es könnte zudem sein, dass über andere Addon ebenfalls modifizierte gleichnamige Scripte vorliegen. In dem Fall könnte es sogar passieren, dass der Fallback eben nicht auf das Originnal erfolgen sollte.

Und man muss bei Änderungen des Originals diese immer korrekt und zeitnah übernehmen.

Mein Vorschlag: Weiterleiten auf das Script, das ohne yform_accordion_relation dran wäre, egal ob Original oder was dazwischen. Freundlicher weise ist die Liste der registrierten YTemplate-Verzeichnisse public verfügbar. Einfach den eigenen Pfadnamen löschen, neu parsen und den vorgerigen Zustand wieder herstellen.

Das Script sähe so aus:

if (!$isAccordion) {

    /**
     * Den eigenen Pfad aus dem Template-Path entfernen
     * Mit den verbliebenen über den internen Mechanismus das Feld rendern
     * Pfade wieder auf den vollen Satz zurücksetzen
     */
    $originalTemplatePaths = rex_yform::$TemplatePaths;
    rex_yform::$TemplatePaths = array_values(array_filter(
        $originalTemplatePaths,
        function(string $path) { return !str_ends_with($path,'/yform_accordion_relation/ytemplates');},
    ));
    echo $this->parse($template, $params);
    rex_yform::$TemplatePaths = $originalTemplatePaths;
    return;

} else {
....
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions