it-swarm.com.de

Bearbeitung des Front-End-Moduls

Was wäre der beste Weg, um Front-End-Änderungen auf einer leeren Seite zu öffnen? Wenn ich einen Client für die Verwendung der Front-End-Bearbeitung trainiere, wird er verwirrt, wenn er einen Bildlauf durchführen muss, um den Bearbeitungsbildschirm zu finden, der immer im Hauptinhaltsbereich angezeigt wird. Könnten wir dies nicht so gestalten, dass es immer geöffnet ist, sodass NUR der aktuell bearbeitete Inhalt angezeigt wird? Vielen Dank!

2
Karen

Die einfachste Lösung wäre, ein Template Override für die folgende Datei zu erstellen:

komponenten/com_config/view/modules/tmpl/default.php

Fügen Sie anschließend beim Überschreiben das folgende PHP hinzu:

JFactory::getDocument()->addScriptDeclaration("
    document.addEventListener('DOMContentLoaded', function() {
        var form = document.getElementById('modules-form');
        form.scrollIntoView({behavior: 'smooth'});
    });
");

Dadurch wird der Benutzer automatisch zum Modulbearbeitungsformular gescrollt.

Ein fortgeschrittenerer Ansatz wäre, ein System-Plugin zu erstellen, das prüft, welche Ansicht und welcher Controller derzeit verwendet werden, und dann den obigen Code wie folgt auszuführen:

$jinput = JFactory::getApplication()->input;
if ($jinput->get('option') === 'com_config' && $jinput->get('controller') === 'config.display.modules')
{
    JFactory::getDocument()->addScriptDeclaration("
        document.addEventListener('DOMContentLoaded', function() {
            var form = document.getElementById('modules-form');
            form.scrollIntoView({behavior: 'smooth'});
        });
    ");
}
2
Lodder

Sie können Joomla zwingen, jedes Mal, wenn der Benutzer versucht, das Modul zu bearbeiten, eine andere Vorlage zu verwenden (möglicherweise eine einfache Vorlage). Ich habe ein Plugin für ähnliche Zwecke erstellt, aber zum Bearbeiten von Artikeln in hier .

Sie können das Plugin ändern, um die Modulbearbeitung zu unterstützen, indem Sie editortemplate.php Datei in den Zeilen 23 - 26, von

$view     = $app->input->get('view');
if ($view == 'form')

zu

$view     = $app->input->get('view');
$controller     = $app->input->get('controller');
if (($view == 'form')||($controller== 'config.display.modules') )
2
webchun