Leider wird nicht beschrieben, in welche Compo-Dateien der Code
"Examples with JDatabase" kommen könnte. Ich sehe es moment. nicht ...
Habe einerseits das Problem, dass unten die Treffer-Anzahl-Anzeige nicht klappt, also gewünschte 20, 50, ...
Den Select-Wert kann ich aufklappen und wählen. Das hat aber keinen Einfluß auf irgendein Verhalten, erzeugt nichts. Es bleiben 20.
Könnte das an dem noch nicht verwerteten "Examples-Code" liegen?
Wo kommt dieser "Example-Code" hin?
Zum Anderen, dass nach einer Formularsuche die where-Strings, oder der ganze Query-string, über o.g. "Blättertool" (m.E. Javascript) durchgegeben werden muß, da ich im model - in einer Funktion, per if() getrennt - drei querys zur Verfügung stehen habe (einmal alles zeigen und einmal Auswahl ...). Nur die aktuelle query muss zum Blättern wieder aufgenommen werden.
Wie bringt man ein where oder die query mit dem Blättertool durch?
Nun bekomme ich das "Blättern" leider noch nicht ganz so hin, wie es sein sollte:
Die Compo soll so aussehn: beim einfachen Compo-Aufruf wird einmal alles (#__lit-Tabelleninhalt) kategoriesiert und paginiert angezeigt (u.A. als Suchmaschinenfutter gedacht), zudem gibt es eine Formularsuche. Optional soll so per Gliederung navigiert werden oder per Stichwortsuche das Ergebnis eingeschränkt werden können. Formularsuche und Gliederung wird mittels Reiter / Tabb gewechselt.
Anbei dazu die Komponente com_lit.
Aus meiner Formularsuche heraus werden richtige Treffer, Seiten-Anzahl und -Links angezeigt, der Klick auf "Seite 2" führt aber wieder zu einer Anzeige des gesamten Tabelleninhalts, paginiert in alle Seiten.
Ich nehme an, das liegt im model, an der Eingangs-Bedingung in der "_loadData".
Prinzipiell ist das oben von elkuku vorgeschlagene Paging-Script doch so gedacht, dass eine query nur für ein erste Abfrage eine Rolle spielt.
Mein Model-Script-Teil läuft aber immer wieder in _loadData() rein und erhält so eine neue query(?). Durch das "vorgesehene" if (empty($this->_data) && empty($this->_total)) sollte doch eigentlich die query übersprungen werden - damit das array_slice in getData() greift??
_data und _total sind jedoch immer leer (auch wenn "Declare variables" auskommentiert). Wieso? bzw. was könnte ich hier einsetzen, damit keine "neue" query erfolgt?
Die "LimitBox" unten aus der Templ-default.php führt nicht zu einem neu-Laden der Seite mit entsprechender Trefferzahl. Zudem verschwindet sie nicht, wenn nichts zu "blättern" ist. Wieso und wo wird hier die (Standard-) "20" festgelegt / eingestellt?
so superkompliziert ist das bisschen Compo für euch doch nicht.
Wieso funktioniert dieser Trefferanzahlwechsel onchange="this.form.submit()" nicht??
(obige compo)
(Den Unterschied zwischen dem (1.) Seitenaufruf-result
und einem (Folge) result aus der Formularsuche, also die Paging-Url habe ich jetzt in
der Templ.-default.php über <form action=...)
mir ist bewusst das du in erster linie hilfe bei der pagination erwartest. ein blick in den code sagt mir jedoch, dass du nochmal bei null anfangen solltest.
es wuerde den rahmen hier sprengen auf alle einzelheiten einzugehen, die in der komponente nicht stimmen. angefangen bei der struktur bis hin zur sicherheitsrelevanten dingen.
mir bleibt hier leider nur wenig spielraum, ausser dich auf die "bekannten" online tutorials zur erstellung von komponenten hinzuweisen. bevor du eine mehrseitige ansicht oder blaetter-funktion in eine view integrierst, beginne mit einfachen dingen und steigere dich dann. zum jetzigen zeitpunkt wuerde deine komponente recht schnell in der liste unsicherer erweiterungen landen. (file inclusion)
Hi Matrikular,
nun gut. Danke! gewusst/geahnt habe ich das. strg+alt+entf geht bei mir nicht.
die Tutorials und Hilfen gaben (für mich) eben nicht mehr her, daher gehe ich eher sukzessiv eigene Wege. Ich kann die Tuts nicht nochmal lesen! Die Kompo ist eine zusammengeclippte Arbeitskompo (aus Altem), die vor nem Einsatz noch joomlamäßig geglättet wird - falls sich jemand an fehlenden JRequests und anderem stößt ... und - sie funktioniert doch fast. Erstmal soll das Ding laufen, dann wird nach bestem Wissen geglättet / verbessert ... daraus lerne ich, nicht aus diesen "Tutorails".
Gruß, w.
Lesezeichen