Webmastersite.net


By on Nov 15, 2016 at 11:17 AM

Normally, WSN's CAPTCHA option is sufficient to stop spammers from submitting to your site. It can be a bit annoying to the submitter, though, and hard to read at times. It can also be defeated by the more advanced or specifically-targeted bots.

Now you have another option: google's reCAPTCHA. reCAPTCHA has several advantages. First, it can be "solved" with just a click in most cases thus saving the submitter time and effort. Second, when it suspects the user of being a bot, it presents them with problems that are impossible for current AI systems -- such as choosing which of a series of pictures contain a certain thing. Third, the complexity is configurable so you can decide whether to make things easier or more secure.

The drawback of reCAPTCHA is that you have to sign up for keys for each domain name to use it. When you select it from the spam prevention menu at Admin -> Settings -> General, two boxes will immediately appear prompting you for the site key and secret key and there'll be a link above the boxes telling you where to register to get the keys.

reCAPTCHA is available in WSN versions 10.0.32 Beta 3 and later.


By on Sep 24, 2016 at 11:02 AM

It just got a lot easier to do a one state directory. By that I mean a directory where the category structure is all counties of a particular US state, or cities by county... not a directory of businesses in Yevgeny Zamyatin's dystopian One State.

For a while, we've had options in the auto setup to choose a category structure of counties by state or cities by county by state. That works well for a national directory, but in many cases people just want a directory for a particular state. Removing the undesired states was no simple matter, and then since having a single superflous top level category is undesirable you'd want to make all the subcategories into top level categories. With WSN 10.0.22 Beta 3 and the latest version of autosetup.php, all the required queries have been automated. All you do is select "Counties of single state" or "Cities by county of single state" under "Pre-Load Data" during setup, and then select your desired state from the dropdown that appears. As an additional convenience, either of these selections will also automatically trim your countries list at Admin -> Settings -> Localization to just "United States" and states list to just your selected state, so that submitters don't have a chance to mess up the address.

A further improvement I have in mind for the future is to create a "cities as autocategories" switch which will remove the category selection process from submitting listings, and instead automatically choose a category based on the city/state provided as the listings address. This of course would require that all listings have an address. It would also need to automatically create new subcategories for city names that don't yet have categories, and would have to wait until after validation to do so in order to prevent spammy category names.


By on Sep 17, 2016 at 6:58 AM

The blog theme, similar to what you see on this blog (though a little better because I haven't updated the version here for a bit), is now available in the Add Themes page in WSN Knowedge Base 10.0.20. It's mostly bootstrap, with several templates a bit of language customized for blog use. If there's anything you like to see added to it, let me know.


By on Sep 13, 2016 at 8:15 AM (Edited Sep 13, 2016 at 8:19 AM)

I've just released 10.0.19. Besides a bunch of minor fixes, an update to the bxslider component and the auctions system and cache mentioned in recent previous blogs, the rest of the changes relate to the saved listings system.

In the past, there've been two parallel saved listings systems -- one in the database for members and one in browser localstorage for guests. 10.0.19 unifies that by importing the guest localstorage data to the database, and sending a cookie to the browser to act as a unique identifier for that guest's database entries. This means it's now possible to show how many guests have saved a particular listing, as well as how many members. This unification process also made it easier for me to bring a guest's saved listings with them when they become a member, which wasn't happening before but is now (automatically).

A major under the hood structural change to saved listings is that they've been moved to their own separate table now instead of being tracked in the listing savedby field. The only way this will affect most of you is that you can now create toplists of saved listings in the toplist generator by selecing the savedlinks table. If by some chance you created a toplist with a custom SQL filter based on the savedby field, it will no longer work until you convert it -- fortunately I think it's unlikely that anyone has done so since the format of the field wasn't documented. The underlying reason for the change was to enable manual drag and drop ordering of saved listings, which isn't enabled by default but is available with the new manualsortsaved tweak. If not using manualsortsaved, the old sorting selector still works.

Another change is that saved listings collections can now be shared publically between your members. When the new "public saved listings" switch is turned on, each member's profile page shows a link to view that member's saved listings. If comments are switched on, members can also discuss each other's saved listing collect...

Read Full Blog Entry


By on Sep 09, 2016 at 12:22 AM (Edited Sep 09, 2016 at 12:25 AM)

I've been working through the recommendations in google's mobile site speed test. Two big things that I found missing are gzip compression and caching rules, and I've just added a new setting on the SEO page for that. When the caching/compression setting is enabled, WSN will now set all images css and js files to be cached for a long period. To try to prevent this from being problematic when you try to update them, I've also added an eTag rule which should force caches to update whenever the file size changes. Then for compression, all applicable file types are set to automatically be gzip compressed -- if your server has mod_deflate, can't help you if it doesn't.

I can only hope there won't be any apache configurations which barf on these rules, I've conditionalized everything that I know is conditional. If you have a problem with it on your apache server, do let me know. Those of you not on Apache will not be able to take advantage of this, unfortunately -- with the possible exception of litespeed and such slimmed apache look-alikes, but haven't tested them.

There is a risk that the etag definitions may not work on all sites -- some of the internet has reported it only working from httpd.conf and not from .htaccess. If that's your situation, you may end up finding that you and your visitors keep seeing old versions of files after you've changed them. In that case, you will need to turn off the caching/compression option.

Next up will be CSS minification. I'll need to integrate a CSS minifier script and switch all references in the source from the current stylesheets to new .min.js versions, perhaps in a templates/styles/production/ subdirectory. This will have the disadvantage of making it impossible to immediately see changes if editing the regular .css file via FTP (rather than through the admin panel), so I may make it optional.


By on Aug 30, 2016 at 11:10 AM (Edited Aug 30, 2016 at 11:37 AM)

Two big developments in WSN Classifieds yesterday (actually in all the scripts but Classifieds users are most likely to be interested), expanding the type of sales websites you can use it for.

First, I've added quantity tracking. When enabled, the listing submitter and set a quantity of the product they have available. Whenever a purchase is processed through WSN's system (paypal/2co/etc IPNs) it automatically deducts one from the available quantity. It will even work for payments sent to listing submitters if the purchase is through paypal, since WSN's generated paypal button for that sets the IPN to call back to WSN. The default (but configurable) action is for the listing to automatically hide itself when the quantity hits 0. This will be useful for any site that sells less than an infinite number of each item -- even if you only sell 1 of each, enabling quantities will allow the listing to autohide after being purchased.

I've also added an auctions system. When enabled, the listing submitter can select to make their listing an auction which will last a number of days they specify (configurable default is 7 days). The price field then acts as the minimum starting bid. Any logged in member can then place a bid, which must be at least 10 cents more than the current leading bid. The configurable default is to autohide the listing after the auction completes, and of course it emails the winner to ask them to make payment and emails the seller to tell them who won, and gives both of them the other's email address to facilitate communication.

These are of course fresh experimental features at the moment, do let me know if you find any probelms or have any ideas to enhance these systems.


By on Aug 23, 2016 at 10:34 AM (Edited Aug 23, 2016 at 10:36 AM)

For the 10.0.18 release, I've finished the long project of merging the default and bootstrap templates. The bootstrap theme from 10.0.18 onward will simply be a custom stylesheet for the default theme. This means bootstrap is no longer at risk of getting out of date, either on my end or due to customized templates during your upgrades. If you have an older version of the bootstrap theme you may want to reinstall it in 10.0.18, though you'll have to be careful to reapply your customizations after.

In other recent developments, I've begun automatically updating 9.0 and 9.1 versions to 9.2. Those two series haven't had a release since last year, and it would be complex for me to update them since they're not compatible with PHP 7 which is what I'm running on my development server now. So I figure the best thing for everybody is to just move everyone up to 9.2. Fortunately this doesn't require any admin interaction and all the customized templates can be safely preserved without much risk. Based on my testing, I don't foresee any problems arising, though this is the first time I've tried automated series updates. Of course this only happens when the site is set to automatically upgrade.

Unfortunately it's not so simple to automatically update 7.1 and 8.0 series sites, because there are major changes to the style and fields systems between those versions which would present too much risk of messing up somebody's site while they're not looking. If you are on any pre-9.2 series you do need to upgrade though. I'm planning to write a script to collect a list of known outdated installations and email the owners of those sites to ask them to upgrade, probably sometime within the next month.


By on Jul 07, 2016 at 1:40 PM

Since June 22nd, Google has begun requiring an API key in order to use google maps on your website. Without the key, you see an "Oops! Something went wrong." notice instead of the map. This affects anyone using WSN's maps features on a new website. Pre-existing websites are exempted from this requirement, at least for the moment, as google doesn't wish to break the entire internet -- but they warn that the quality of service will be lower for the legacy keyless sites and recommend getting a key.

This unfortunately means WSN will no longer be able to automatically display maps reliably without asking you to manually generate a key via google's process. Today's latest releases 9.2.61 and 10.0.11 prompt you to get a key whenever you update the switches page and have the maps switch turned on (and don't have a key saved yet). Sorry for the inconvenience, but it's google's fault.


By on Jun 18, 2016 at 9:00 PM (Edited Jun 18, 2016 at 9:01 PM)

If you're in the European Union, or some of your clients are, you're probably aware of the EU requirement to notify visitors that your website uses cookies. In today's WSN 10.0.9 Beta 1 release, I've added an "EU cookie privacy notice" switch at Admin Panel -> Settings -> Switches. Enabling this switch automatically handles your legal obligations by adding a cookie notice in a semi-transparent bar at the bottom of the screen. The visitor can dismiss the notice by clicking the X (which, appropriately enough, sets a cookie lasting one year to remember that they've dismissed it).

If you'd like to customize the look of the cookie notice bar, style .cookienotice in the stylesheet or edit the notice area in the wrapper template just above </footer>. To change the text on an english-only installation just edit the wrapper template... on a multilingual installation, go to Admin -> Customizations -> Language and search for general_cookienotice.

The notice links to your privacy policy, which uses the "Privacy Policy" template. In multilingual installations, the text of the policy is in the language item privacy_info.


By on Jun 17, 2016 at 2:21 PM

For a long time, it has been easy to convert a WSN site to use https:// secure URLs by default: simply change the http to https in the URL at Admin -> Settings -> System Configuration -> WSN Links Installation Details -> URL. But this misses two common scenarios: the case where you want non-secure to be the default but want to allow people to use a secure version if they choose, and the case where you want to forcibly redirect to the secure version of each URL.

What if you want to optionally enable https, while leaving http as the default? Leaving the installation URL as the http version results in the secure version of the page looking broken due to all the insecure resources it calls which the web browser blocks by default. WSN 10.0.8 solves this problem by automatically detecting when the secure version of the page is being accessed and temporarily acting as if the installation URL is https, without changing it.

What about when defaulting to https isn't good enough and you instead want to force it? WSN 10.0.8 adds a rewriting option at Admin -> Settings -> SEO - > Force Secure URLs which will automatically redirect visitors to the secure version of any page they request. I've implemented this on links.webmastersite.net now, for example.

Note that you can get a free SSL certificate from https://letsencrypt.org

RSS feed

Latest Comments

<< February 2017 >>
SunMonTueWedThuFriSat
1234
567891011
12131415161718
19202122232425
262728