Vous pouvez modifier uniquement les deux lignes :
->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)
MODIFIER :
Omettre le FALSE
Le paramètre aurait placé les backticks avant les crochets et les aurait intégrés au nom/à la valeur de la table, rendant la requête inutilisable.
Le NULL
Le paramètre est là simplement parce que la fonction requiert que le deuxième paramètre soit une valeur, et puisque nous n'en avons pas, nous envoyons NULL.