yakamara / yform

YForm für REDAXO 5 – Formulare im Frontend und Backend mit Verwaltung von Datenbank-Tabellen.
MIT License
77 stars 55 forks source link

Yorm : getAll Methode löschen #377

Closed tbaddade closed 6 years ago

tbaddade commented 6 years ago

https://github.com/yakamara/redaxo_yform/blob/master/plugins/manager/lib/yform/manager/dataset.php#L109

Ich überschreibe diese Methode sehr oft mit :

public static function getAll($ignoreOffline = false)

was im Kontext aber falsch ist. Auch passe ich den Query zumeist noch mal an, so dass ich auch für alle Datensätze eine bestimmte Reihenfolgen habe.

Hier ein Beispiel, wo der Query über mehrere Methoden dieselbe Reihenfolge der Datensätze zurückgibt.


class News extends \rex_yform_manager_dataset
{
    public static function getAll($ignoreOffline = false)
    {
        $query = self::query();
        if ($ignoreOffline) {
            $query->where('status', '1')
        }
        $query
            ->orderBy('date', 'DESC')
            ->orderBy('id', 'DESC');
            ->find();
    }

    public function getPrevious()
    {
        return self::query()
            ->where('status', '1')
            ->whereRaw('id != :id and (date > :date or date = :date and id > :id)', ['id' => $this->id, 'date' => $this->date])
            ->orderBy('date', 'ASC')
            ->orderBy('id', 'ASC');
            ->findOne();
    }

    public function getNext()
    {
        return self::query()
            ->where('status', '1')
            ->whereRaw('id != :id and (date < :date or date = :date and id < :id)', ['id' => $this->id, 'date' => $this->date])
            ->orderBy('date', 'DESC')
            ->orderBy('id', 'DESC');
            ->findOne();
    }
}
dergel commented 6 years ago

ist doch genau richtig so .. es gibt den Defaultaufruf und du machst deine spezifische Änderung. Meines Erachtens passt das..

tbaddade commented 6 years ago

ist doch genau richtig so

Nicht ganz. Die Parameter unterscheiden sich.

dergel commented 6 years ago

stimmt.. dann aber lieber eine eigene Methode benennen. Ich würde das so belassen.