Sie können nur die beiden Zeilen ändern:
->where('(library.available_until >=', date("Y-m-d H:i:s"), FALSE)
->or_where("library.available_until = '00-00-00 00:00:00')", NULL, FALSE)
BEARBEITEN:
Weglassen des FALSE
Parameter hätte die Backticks vor die Klammern gesetzt und sie zu einem Teil des Tabellennamens/-werts gemacht, wodurch die Abfrage unbrauchbar geworden wäre.
Der NULL
Parameter ist nur da, weil die Funktion verlangt, dass der zweite Parameter ein Wert ist, und da wir keinen haben, senden wir NULL.