View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0016764||phpList 3 application||Interface - Administrator||public||27-03-13 15:06||28-03-13 13:14|
|Target Version||Fixed in Version||2.11.8|
|Summary||0016764: HTML generted for navigation area by the WebblerListing class|
|Description||Found in the SVN trunk version.|
Trying to get my statistics plugin to display its pager control using the WebblerListing class, I found problem with the html generated by that class.
See file admin/commonlib/lib/interface.lib lines 387-389
The html for the page is invalid. If you view, say, the users page and then view source in firefox, the html for the paging div is shown in red
because it is within a table but not within a td element.
A related problem is that the navigation is being displayed at the wrong point. It is displayed after the listingStart() and listingHeader() calls, so would be displayed after the column headings. But Firefox has actually compensated by displaying the div before the table, so when viewing the page the paging area seems to be in the correct position.
I suggest moving the insideNav() call to either:
before listingStart(), so it is a div outside but immediately before the table,
or after listingStart(), in which case it needs to be wrapped in table row/data elements
|Tags||No tags attached.|
||indeed. I placed it before the header, but inside the table, wrapped in a TR TD.|
Just to check your change. If it is simply
$html .= '<tr><td>' . $this->insideNav . '</tr></td>';
then it will be limited to the width of the first column. To allow the area to extend the full width of the table specify 0 for colspan:
$html .= '<tr><td colspan="0">' . $this->insideNav . '</tr></td>';
ah, interesting didn't know about colspan="0" does that work on all browsers?
I do a column calculation, but didn't test it
The colspan="0" works for Firefox and Chromium, but doesn't work on IE 7, which is the only version of IE that I have.
Can you modify your change so that insideNav is not within the sprintf formatting string. Otherwise it will be interpreted by sprintf.
$html .= sprintf('<tr><td colspan="%d">%s</td></tr>',sizeof($this->columns)+1, $this->insideNav);
||yes, good point. Done|