Możesz modyfikować tylko dwie linie:
->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)
EDYCJA:
Pominięcie FALSE
parametr umieściłby znaczniki przed nawiasami i uczyniłby je częścią nazwy/wartości tabeli, czyniąc zapytanie bezużytecznym.
NULL
parametr istnieje tylko dlatego, że funkcja wymaga, aby drugi parametr był wartością, a ponieważ go nie mamy, wysyłamy NULL.