View Single Post
PharaohsPaw
Senior Member
Join Date: Dec 2008
Old 02-23-2011 , 09:13   AdsQL: Known Issues & To-Do List
Reply With Quote #22

Known Issues / To-Do List
There are a couple things I would still like to do/fix yet with this plugin and web interface

1. Problem - Ads display two (or more) at a time sometimes - FIXED
This is a problem that has existed with the original sm_adsmysql plugin for quite some time on some games such as the Left 4 Dead series, and I also believe the potential was there for this problem to happen on other games when reloading advertisements. The plugin made no attempt to determine whether an ads display timer was already running when creating one, except when the ads display interval changed. Plugin code has been reworked to route ALL ads loading/reloading through one function, and use global boolean "gatekeeper" variables to control access to this function and ensure that only one ad display timer is running at a time. It seems to have fixed the problem.

2. Make the plugin re-check the serverid.txt file at each OnMapStart()- FIXED
Previously the serverid.txt file was being read only at plugin start, and never read again. serverid.txt is now checked at every map start - if the timestamp has changed, it will re-read the file and reload the ads if the server ID has changed.

3. Internet Explorer Problems Deleting/Re-ordering Ads - FIXED
This problem existed with the original sm_adsmysql for a long time, reported by many users. I'm not sure how many of them realized it only happened with Internet Explorer.... You can thank Microsoft for being stupid and refusing for several years now to honor established HTML standards every other browser complies with that specify that the VALUE of an image type input on a form should also be submitted, not just the X/Y coordinates. Because Microsoft chooses to be stupid over this, you have to make every image button on a form have a different name and then make the server iterate through its entire POST data searching for which button name was "set". Sheesh, what a bunch of morons.

4. Ads Support for Non-English Languages - MOSTLY FIXED
Mostly fixed? What is THAT supposed to mean? Here's the deal. The original adsmysql web interface, plugin, and database "setup" did not utilize UTF8 character set encoding everywhere it would have needed to. So in some cases, ads written in other languages that were stored correctly in UTF8 in the database would not display correctly by the plugin. Several changes have been made to try to force the plugin, web interface, and database table setup (on installs with a new database) to always use UTF8. This should fix the problem for anyone doing ads (or usernames, etc.) in other languages whose characters can be expressed in UTF8. Some special languages that cannot use UTF8 character sets will probably still have problems. Thanks to Psychonic for the help and Payalnick for the testing.

5. Optimize Ad Delete/Change Ad Order Submit Processing - FIXED
Thanks to the changes I had to make for #3 above causing extra work on the server, there would be a slight delay after clicking an ad's red X to delete it, or after clicking the green up or down arrow of an ad to move it up or down in the list -- before the ads page would reload in the brower. In my first "pass" over this (in the 1.7.5 web UI release) I did the "safe" thing in the loop to find which button was clicked, and just counted all the way from 1 to the total number of records. I knew this wasn't ideal. Now after a few changes to ads.php with 1.7.7, the lowest and highest SQL record ID of the set of ads displayed on a page are tracked, and these are used as lower and upper bounds for the "button search loop". This speeds up form submission processing considerably, especially for anyone with more than 25 ads.

6. Move sample top banner logos out of web/adsql directory for upgraders - DONE
Done with 1.7.7 release. It occurred to me that if I am going to encourage folks to just replace the entire adsql folder on their web host to upgrade to the latest web interface, I should probably move the sample adsql/images/logo02.jpg and adsql/images/logo03.jpg out of the images folder and update the install instructions to alert new installers. This way if you have created custom top logo banners, they will NOT be replaced by mine if you just unpack the latest .zip and upload the whole web/adsql/ folder to your web host. Same goes for config.php and style.css.

7. Public CVAR's don't show up on L4D1
Our L4D v1 servers don't show the plugin public cvar's in HLSW or on game-monitor. No idea why, even though the plugin works fine. Not sure what to make of it.

8. Web Interface Form Validation
Validate what the user inputs for Game Type and Server ID fields when creating or editing ads. If there is a known syntax problem, make them correct it before the ad will be saved to the database. In the meantime, the web interface does show appropriate warnings around the Game Type and Server ID input box.

Last edited by PharaohsPaw; 04-01-2011 at 09:49.
PharaohsPaw is offline