http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=10466 Bug ID: 10466 Summary: Lists: Use "size" as names/hash keys leads to an unexpected results when using Template::Toolkit (name of a virtual method there) Classification: Unclassified Change sponsored?: --- Product: Koha Version: master Hardware: All OS: All Status: NEW Severity: minor Priority: P5 - low Component: Templates Assignee: oleonard@myacpl.org Reporter: dcook@prosentient.com.au This is an old bug that has been spotted again. This time, it's been noticed in the Lists/Virtual Shelves... Basically, itemsloo.size produces different results depending on the type of data that is in the itemsloo hash (within the itemsloop array): 1) If "size" has a value, that value will be printed out. 2) If "size" is null/undef, a seemingly random number will print out. 3) If there is no "size" key in the hash, a seemingly random number will print out. (N.B. In fact, this "random" number is the number of keys in the itemsloo hash. "Size" is a virtual method in the template toolkit. http://www.template-toolkit.org/docs/manual/VMethods.html.) -- Currently, elsewhere in Koha (bug 6374 which covers search.pl, addbooks.pl, opac-search.pl), we're checking to see if a "size" key exists, and if not, we're inserting a "size" key with a value of "". In this case, as long as the SQL query includes the size column, there will always be a "size" key (so scenario 3 is irrelevant). We need to check if "size" is "defined", and if it's not (scenario 2 from above), then we change it to a blank (e.g. "") value, so that it just prints out nothing. The fact that "size" does print a value is probably a bug in TT, so I don't think this is the best long-term solution. It would probably make more sense to rename the variable that we're passing to TT, because if TT gets "fixed" so that "size" always operates as a method rather than fetching the value of a hash, we are going to have to do this all over again. -- You are receiving this mail because: You are watching all bug changes.