Du kan kun ændre de to linjer:
->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)
EDIT:
Udeladelse af FALSE
parameter ville have placeret backticks før parenteserne og gøre dem til en del af tabelnavnet/værdien, hvilket gør forespørgslen ubrugelig.
NULL
parameter er der, bare fordi funktionen kræver, at den anden parameter er en værdi, og da vi ikke har en, sender vi NULL.