Paginierung von Listen im Backend - Wie füge ich eine benutzerdefinierte Listengröße hinzu?

9

Wie kann ich in Joomla 3.X einen benutzerdefinierten Wert zu Site-Einstellungen > Standardlistenlimit hinzufügen?

Ich kann dort ein Dropdown-Menü mit den Werten 5, 10, 15, 20, 25, 30, 50, 100 sehen .

Ich möchte Artikel 500 hinzufügen .

Kann die Wahl Unlimited auch einfach hinzugefügt / implementiert werden?

miroxlav
quelle

Antworten:

6

In der Backend-Einstellung wird die Option "Alle" nicht angezeigt, die angezeigt wird, wenn ein Listenlimitelement in der paginierten Ansicht angezeigt wird, aber vorhanden ist. Daher sollten Sie in der Konfiguration keine Option "Unbegrenzt" benötigen, da diese beim Erstellen des Paginierungsobjekts zur Grenzwertliste hinzugefügt wird.

Sie können beispielsweise die Option "Alle" unten in dieser Auswahl sehen.

Joomla 3.3 Paginierungsgrenzwertauswahl

Mir ist kein direkter Weg bekannt. In der Vergangenheit haben wir den Kern gehackt, aber wir empfehlen dies nicht aufgrund der Probleme, die dies verursacht, wenn Sie Aktualisierungen nachträglich anwenden. Ich vermute, Sie möchten eine dauerhafte Änderung, die nicht durch Joomla-Updates überschrieben wird, die in Zukunft veröffentlicht werden.

Dies ist nur eine Spekulation, aber Sie müssen wahrscheinlich ein System- / Inhalts-Plugin schreiben, um das Verhalten von Joomla an zwei Stellen zu ändern. Zuerst müssen Sie das com_configFormular für die Joomla-Anwendung ( application.xml) hinzufügen und die zusätzlichen Werte hinzufügen, die Sie möchten das Formularelement list_limit. Ich würde wahrscheinlich damit beginnen, die onBeforeRenderoder onContentPrepareFormAuslöser zu versuchen .

Dann stelle ich mir vor, dass Sie das JPagination-Objekt so ändern müssen, dass es auch Ihre zusätzlichen Werte anzeigt. Als Paginierung Objekte in Manager Ansicht (zumindest im Backend) verwendet werden , ich bin mir nicht sicher , welches Ereignis Sie erfassen möchten würde, würde ich untersuchen onAfterInitialise, onAfterRoute, onBeforeRender, onContentPrepareund onContentBeforeDisplay.

Diese ersten drei Auslöser befinden sich sehr früh im Leben der Apps, aber ich bin mir nicht sicher, wie früh / spät Sie die erforderlichen Änderungen vornehmen können.

Craig
quelle
Wie wäre es, wenn Sie nur einen Tracker-Gegenstand anheben, um dies im Kern zu ändern?
Peter Wiseman
Ich gehe davon aus, dass das OP jetzt eine Lösung will. Es wurde sicherlich schon früher vorgeschlagen und eingereicht, aber ich bin mir nicht sicher, ob es seit dem Wechsel zu Github so ist.
Craig
2

Sie können dies versuchen, aber es ist ein Kern-Hack und nicht der richtige Weg (für Joomla 3.3.0):

  1. Öffnen Sie die Datei /administrator/components/com_config/models/forms/application.xml
  2. Suche danach

        <field
        name="list_limit"
        type="list"
        default="20"
        label="COM_CONFIG_FIELD_DEFAULT_LIST_LIMIT_LABEL"
        description="COM_CONFIG_FIELD_DEFAULT_LIST_LIMIT_DESC"
        filter="integer">
        <option value="5">J5</option>
        <option value="10">J10</option>
        <option value="15">J15</option>
        <option value="20">J20</option>
        <option value="25">J25</option>
        <option value="30">J30</option>
        <option value="50">J50</option>
        <option value="100">J100</option>
    </field>
    
  3. Fügen Sie so Ihre eigenen Werte hinzu

    <option value="500">J500</option>

Joomla Agentur
quelle