Webmastersite.net

Search    Register    Log In   


By on Dec 18, 2018 at 7:56 PM (Edited Dec 18, 2018 at 7:58 PM)

The changes I made a couple weeks ago to the $leaveencoded and $nomemberinfo flags have had more than their share of hard to notice side effects. The latest I've found are the menu manager delete buttons not showing and the manage redirects page acting as if all switches were off when they're not. Hopefully I've caught all the recently-messed-up admin pages now.

There was also a problem with the category level selector for the add url list option, caused by having more than one level selector on the same page... I thought I'd fixed it before but apparently not fully until now. Then there was a little error message at the end of CSV exports that I fixed, which I hadn't noticed before because LibreOffice Calc automatically edits it out as being bad data. And an error on the admin stats page that was happening when there were no stats in the database yet.

I've gotten started on calendar enhancements. First, I added all the same location fields that links have to events (address, address2, city, state, country). I made the preexisting events "location" field into a location name field, since for events (unlike links) the location name is not likely to be the same as the event title. Then I ported the postal code autofill from links so it works for events. I was able to add the submit/edit map to the add/edit events pages. In imlementing an event details map, I found that there wasn't actually an event details page yet -- only a day page that showed all events for the day -- so I went ahead and added an event details template and page. Also added an event pin template to control what shows on the pin. In the future, I hope to add map on the calendar page that shows pins for where all upcoming events take place.

All the event mapping features can be toggled on or off with the "Calendar event maps" switch.


By on Dec 14, 2018 at 2:12 PM

Due mainly to 16 years of legacy, WSN uses tables as the default way to arrange your category and listings layouts. This has the advantage of making it easy to control the number of columns per row (via the settings at Admin -> Settings -> General), but the disadvantages of being considered poor practice and not reflowing easily on mobile devices.

To address the mobile problem, a year or two ago I added mobile override options on the mobile settings page. This allowed you to have for example 3 columns of categories on desktops/laptops but 1 column on mobile devices to fit into small screens without horizontal scrolling. Until now, only WSN Links had this set up by default on new installs -- today I've set all scripts to have 1 column per row on mobile by default, and have applied it to upgraders too (unless another value has been manually set or there are 0 columns per row) since there's really only one reason for another value.

That one reason was the big issue I had to deal with today: tableless layouts. For many years, WSN has allowed you to set the columns per row to 0 in order to stop WSN from auto-inserting any table cell code, so that you can remove the tables from your templates and use a div layout (autowrapping div floats or whatever you like). This created a sort of hidden conflict with the mobile override, because you might set the category columns per row to 0 at Admin -> Settings -> General -- but if there were a mobile override value of 1, you wouldn't realize you had to change that to 0 too. What I've done is I've made WSN automatically change the mobile override column values to 0 when you change the non-mobile values to 0, and change the mobile override column values to 1 when you change the non-mobile values from 0 to another number (reinstating tables).

This should allow a seemless experience where sites will fit mobile screens by default without your having to fiddle, and you'll still be able to change to a tableless layout with...

Read Full Blog Entry


By on Dec 13, 2018 at 11:12 PM

Someone today found the indent -s in the category level selectors confusingly unexpected. On consideration, the indent only makes sense for non-level selectors. Thus I've added a separate option for level selector option html compared to non-level selector option html, and have removed {CATINDENT} from the level selector one. I've also removed the category selector denied permission option html setting, which was using optgroups for MSIE7 support... it makes more sense these days to simply automatically apply the disabled attribute to the options since all browsers since MSIE8 support it. Although it looks like the current behavior is to just not show what can't be used, anyway.

I've also been running into several people who feel that WSN Links is broken because they've activated the show links in frameset switch. This switch worked fine back in the day, but with most modern websites being HTTPS and most modern web browsers being increasingly strict about security, it seems that browsers will refuse to render many sites in a frameset due to security policies on mixed content. To dissuade people from thoughtlessly using the switch, I've just moved it to the advanced options page.

Came upon a series of geolocation problems earlier this week. First there was an error that was making sites appear dead to unregistered guests when facebook connect was enabled but the new version of maxmind geolocation wasn't downloaded yet. Then there was a corrupted maxmind database download on one of my sites that was taking the site offline (a problem which is likely more frequent now because the new maxmind files are about 50 MB instead of 10 MB) -- I've fixed that by making it delete the file when the database can't be read.

My next major task will be an overhaul of the calendar system to add location and mapping and RSVP caps to events. This will probably lead to a new script WSN Group which will be optimized for group collaboration and meetups. I'm also giving thought to sta...

Read Full Blog Entry


By on Dec 09, 2018 at 9:24 PM (Edited Dec 09, 2018 at 10:34 PM)

Today, I've been working mostly on updating the WSN KB blog theme. That's the theme this blog is based on.

The main change I wanted to make was to add a simple subscription button. It's much better for a blog to have a button to click on the front page for members to subscribe to email notifications of all new blog entries, instead of expecting people to edit their profile and set "Notify of all new blogs" to "yes". To do this I had to change the backend to make it possible to subscribe with a click. And then it seemed like a good idea to have the button available to guests too, by making it take them to a registration page configured to automatically subscribe them when they complete their registration. And an unsubscribe button seemed like a good idea. The end result of all this was the following template code which you can use in any WSN script as of 10.3.20 Beta 3:
<IF {THISMEMBERISREGISTERED} and {THISMEMBERNOTIFYOFLINKS} is yes>
<div class="addnewblog"><a href="index.php?action=unsubscribelistings" class="btn btn-info btn-lg"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span> {LANG_GENERAL_UNSUBSCRIBEEMAIL}</a></div>
<ELSE>
<div class="addnewblog"><a href="index.php?action=subscribelistings" class="btn btn-info btn-lg"><span class="glyphicon glyphicon-cloud-download" aria-hidden="true"></span> {LANG_GENERAL_SUBSCRIBEEMAIL}</a></div>
</IF>

I noticed the blog theme, and so presumably other upgraded old themes as well, had a repeating pattern of magnifying glasses in the search input background due to the CSS rule #searchbox input { background-image: url('../images_blog/search.png'); } in the stylesheet. I think that was originally meant to be just shown on the left side of the input once and the base.css rule that made it only appear once must've been removed at some point after the idea was dropped f...

Read Full Blog Entry


By on Dec 07, 2018 at 4:51 PM (Edited Dec 07, 2018 at 4:51 PM)

Next to installing broken custom mod_security rules, the second most annoying thing web hosts do is set rediculously low maximum file upload sizes. Often they'll have upload limits of 2 MB, which isn't even enough to upload a photo taken from a phone. Confusingly, sometimes they have a large limit set for max_upload_filesize but then a small limit for max_post_size which also indirectly acts as a limit on the uploaded file size.

Because this results in a lot of support issues for me, in recent months I made WSN automatically configure the Admin -> Settings -> Files -> Max Attachment File Size to make it smaller than the php.ini limits set by the host. And yet, this ended up creating a different issue. After people go to their web hosts and ask for the limit to be increased, they're confused that they still get a message saying they can't upload larger files -- because they don't realize there's a setting they have to change.

The solution I implemented this week doesn't apply to old installations (for which this generally isn't an issue) but does apply to all new installs of 10.3. In all new installs, the Admin -> Settings -> Files -> Max Attachment File Size value is blank until manually filled in. A blank value is interpreted to mean "make the maximum be just below what the php.ini allows". WSN calculates the lower of the upload_max_filesize and post_max_size php.ini values in real time and makes that the dynamic upload size limit. The upshot of this is that when the host fixes the php.ini there's no need to change anything in WSN for larger files to start working. Most people get as large of files allowed as they can, and anyone who cares to set a low upload limit to protect their server disk space still has the option.


By on Nov 30, 2018 at 6:36 PM

Last night was openlayers (Open Street Map) headache night. Spent many hours pouring through contradictory documentation from the bazillion different versions of openlayers, and eventually discovered that there's a fundamental bug in it (or at least the version of it I'm using) where WebGL browser animations on the map cause the moveend and dragend events to fire about 50 times in a row. Eventually, the really ugly hack I came up with to be able to dynamically load more map pins on moveend/dragend was a timer which only adds more pins if it's been at least 5 seconds since last time. I can imagine this will lead to unpleasant little bugs where some pins don't show up after a quick series of zooms or pans. So it goes. At least Open Street Map now has some sort of support for dynamic pins. I was also able to make manual map location selection on the submit/edit map work for OSM. The biggest missing piece now is driving directions.

Today is video headache day. After spending the whole morning trying to get WSN to play videos and wondering why it wouldn't, I found a couple of problems. First, the easy one, I added $nobuffering = true; to download.php to prevent output buffering from messing up streaming video. The harder issue is that it turnes out HTML5 video only supports MP4, WebM and OGG. All other formats require the Flash browser plugin, which is no longer enabled by default in Chrome. This is a particularly big problem for all of you who've been using the convert to FLV switch and now have thousands of FLVs that a lot of people can't view.

So there's two things I needed to do for this. First, I needed to change the conver to FLV switch into a convert to MP4 switch -- so that videos people upload in unsupported formats get converted to a supported format. Then I needed a utility admins can run to convert existing videos. The latter will be far too resource-intensive to run automatically, so there's a prompt for it on the front page of the admin panel and then you'l...

Read Full Blog Entry


By on Nov 29, 2018 at 11:07 AM

When you upload a video to WSN and then play it on the listing details page, it plays through a javascript player interface called Flowplayer. Flowplayer is not actually included with the files of WSN, though. Instead, the javascript and CSS is referenced directly from flowplayer.org into your site. Partly this is because WSN is huge enough already, but mostly it's because Flowplayer is licensed under the GPLv3 and it's unclear what the legal implications would be if I distributed it (and I don't have money for a lawyer to find out). When picking WSN components, I normally choose MIT, BSD or LGPL licensed software because I know those licenses don't add any obligations for me to other code which I ship along side it, they only impact their own redistribution rights.

So anyway, normally it's no problem having flowplayer load from flowplayer.org instead of locally. But yesterday someone was having a problem with it because he was trying to play videos on a localhost installation on a computer that has no internet connection. In order to make it possible to use flowplayer without internet, I've added do-it-yourself support for a locally hosted version of flowplayer. All you need to do is save http://releases.flowplayer.org/6.0.3/skin/functional.css to jquery/flowplayerskin.css and save http://releases.flowplayer.org/6.0.3/flowplayer.min.js to jquery/flowplayer.min.js and then WSN will automatically use those local files instead of the flowplayer.org versions. This can also protect you in the event that flowplayer.org goes down, of course.



In other news, I've added openroute geocoding. Lots of redundant geocoding options now. We'll need openroute eventually for Open Street Map driving directions too. Since OpenCage provides a handy way to detect when the 2500 requests have been used, I'll make WSN automatically switch to openroute when OpenCage requires have been exhausted. Essentially you'll get 5000 geocodes per day now through the automatic combination of the two s...

Read Full Blog Entry


By on Nov 27, 2018 at 12:58 PM

Here's something everybody can use. Grab a free copy of the latest WSN Links 10.3.15, use the new bookmarks importer tool at Admin -> Links -> Add Links, and viola: you've got your personal favorite web directory with all the searching and sorting features you could want. You can let WSN automatically prune dead links or convert them to wayback machine versions during import. Link descriptions (meta description), tags (meta keywords) and associated RSS feeds can be imported automatically. The category structure, of course, will mirror the structure of your bookmarks folders.

I've tested this mostly on Chrome bookmarks, but verified Firefox works too at least for simple cases. Not sure about other browsers. There may be people with more complex bookmark structures than me who will need to report bugs, but I've got several levels of folders with 482 links importing nicely.

This could be a good way to share your bookmarks with your friends too, even enable the social tools to let them comment.


By on Nov 24, 2018 at 7:19 AM

Turns out Geocodio only supports USA and Canada, and for some reason they don't bother to mention that anywhere prominent. So I had to quickly do more research and found that OpenCage appears the best worldwide geocoding option, with a permissive TOS. OpenCage's data is "interpolated" rather than "rooftop" level accuracy, meaning the pin should be close enough to see your destination but not necessarily exactly precise, so Geocodio is better for USA/Canada addresses. I've set up WSN so that (if all the API keys have been entered) it uses Geocodio on addresses that contain "United States" or "Canada" but uses OpenCage for all other countries. If you still want to use the google maps geocoder even though it breaks the TOS, WSN will fall back to that if you have no other API keys entered.

Today's project is for WSN Links. As you've no doubt noticed, link rot is a big problem these days -- websites are coming and going all the time, and reorganizing their URLs without leaving redirects too. WSN's dead link checker and content checker help you catch these, but just having to delete stuff all the time isn't ideal. Thus, I'm adding an option to convert the listings found dead into archive.org wayback machine links. The wayback machine, as you probably know, keeps an incomplete but extensive archive of historical webpages.

Now, there's a couple ways to do that. One way is to just request the latest archived version of the URL -- simple. But what if the website has changed or might eventually change into a spammy page full of viagra links? Archive.org would happily archive the spammy page and serve it up. So I think it's better to instead request a version of the page from a specific time in the past when we know the site was good. The date on which the link was submitted to your site makes the most sense to me. So, when you tell WSN to convert a link to the wayback machine version, it will automatically request the version from the date of the link submission. Archive.org w...

Read Full Blog Entry


By on Nov 21, 2018 at 10:48 AM

Discovered today that thumbshots.com died on November 10th. Obituary at www.thumbshots.com/Support/...3/EntryID/47/Default.aspxa
Odd spammy text at the bottom of the page makes it look like they've either gone insane or been hacked too.

Some of you have been using thumbshots.com thumbshots in WSN. It used to be the default, but for the past few years pagepeeker has been the default with thumbshots.com available via the thumbshotskey tweak. With today's WSN releases, I've retired the thumbshotskey tweak and switched all sites to pagepeeker.
<< April 2019 >>
SunMonTueWedThuFriSat
123456
78910111213
14151617181920
21222324252627
282930

Recent Comments