It appears that you're running an Ad-Blocker. This site is monetized by Advertising and by User Donations; we ask that if you find this site helpful that you whitelist us in your Ad-Blocker, or make a Donation to help aid in operating costs.

UBB.MemberMap · Wiki

What Is Covered

Summary
About the Modification
Additional Files
Caching
Demonstration
Install Instructions
Usage Instructions
Settings
     • Configuration Settings
     • Database Connection Information
     • Cache & Optimization Options
Human Readable Permalinks
Human Readable XML Styling
Submissions
UBB.threads Version & URLs
Changelog
Frequently Asked Questions
     • What does purchasing a license entitle me to?
     • What is a Sitemap?
Useful Links
Thank You


 

Summary


This page represents the full documentation for the UBB.Membermap script by VNC Web Services.


 

About the Modification


Requirements: UBB.threads 7.x (not compatible with UBB.threads 6.x or below)
Current Version: 20191222
License Information: This script is not freeware, it requires a license; by purchasing a license you're granted usage on 1 (one) UBB.threads installation. Any additional installations require an additional license. Updates are available for 1 year after initial purchase; after this timeframe, to aid in development costs, you must renew your access to updates (see the purchase link below for further information). You cannot freely provide this script to others without written permission from the author.
Pricing: $30 (Purchase Here)
Support: Support is available on the UBBDev thread [7.x] UBB.Membermap.

UBB.Membermap was created to allow webmasters a quick and easy way of feeding links to their member database into Search Engines by way of a Sitemap.

This script aids in the "discovery" portion of search engine crawling; instead of waiting and hoping that your URL's get crawled, an XML Sitemap alerts Google (or any crawlers which allow sitemaps) as to what URLs exist on your forums, so they know what to crawl based on what you tell them.

Most search engines will check your feed every so often (timeframe unknown) run through the links in order to determine any new new URLs, on a Google Webmaster Tools account, you can browse exactly how many URLs have been included, as well as when the last time they have hit your site.

Please note however, that Google will still crawl your site and try to perform its own discovery, so please do not use a robots.txt entry to block it (as it must be able to crawl the content provided in the sitemap in order to populate your entries).

The configuration options allow you to specify which type of sitemap you wish to use and whether you wish to plugin threaded or flat view. The sitemap type and view type can both be set either by hard coding the appropriate variable or via a URL string.


 

File Listing


Your install archive will contain several files, namely:
• cache/sitemap/ - A blank directory to show the proper nesting for the default cache directory.
• css/sitemap.css - A CSS Stylesheet for XML Feeds.
• readme.txt - A brief readme which gives basic tips on getting started, and a link here to the full documentation.
• robots.txt - A listing of instructions for crawlers which support robots.txt; see below for a listing of the supplied instructions.
• sitemap.xsl - An XSL Style.
• ubb.membermap.php - The UBB.Membermap script itself.


 

Caching


The cache option will build a copy of the output and store it for a defined period of time, any user accessing the file during this period will be served the cached file vs the live file (with the exception of the initial visiting user who will be served the live file.

The exception header option will allow you to set a date "in the future" when the content of the file "should" change, we default this to 24 hours so the client should cache this file on their side for this time frame.

To utilize caching you will need a cache/sitemap/ folder (from the script instance) that is chmodded 777. The Test URL (discussed below) should always bypass the cache.


 

Demonstration


The UBB.Membermap script offers several sitemap generation styles, these are:
UBB.Sitemaps - ASP Sitemap
UBB.Sitemaps - Link Sitemap
UBB.Sitemaps - RSS Sitemap
UBB.Sitemaps - Sitemap Index
UBB.Sitemaps - Text Sitemap
UBB.Sitemaps - XML Sitemap

You can style your XML and Test output pages, which make them more human readable (and functional in the case of the XSL style):
UBB.Sitemaps - Style (CSS)
UBB.Sitemaps - Style (XSL)


 

Install Instructions


Open the ubb.membermap.php file in a plain text editor (such as notepad or EditPlus) and adjust the variables for your environment; all of the settings include comments which give information on the setting as well as the defaults.

Note
The default configuration settings will generate an XML sitemap which will be fine for any search engines that support them (Google and Bing most notably).


After customizing the script settings you'll need to upload the script to your web root; some search engines will require that your Sitemap be in the webroot of your primary domain (http://www.example.com/).


 

Usage Instructions


We've built the sitemap generator to be quite flexible, there are several options and parameters that you can customize for your live feed of your sitemap for numerous uses scenarios as:
• Sitemap Types: 0/Test, 1/XML, 2/Text, 3/html, 4/RSS, 5/ASP, 6/SitemapIndex (Default: 6/SitemapIndex)
• Use SE Friendly or Search Engine Optimized URLs (Default: 1/Yes)
• Offsetting links to break up large forum sitemaps into manageable chunks. (Valid values are from 0-50000; Default: 10000)

And all variables can output either "as default" by directly accessing ubb.membermap.php or by defining a parameter in the URL, such as:
Google would be happiest with: http://www.example.com/ubb.membermap.php?type=6&se=1 or http://www.example.com/ubb.membermap.php?type=1&se=1 (That's type=6 for a Sitemap Index (or type=1 for XML), and se=1 for SEO/Spider Friendly URL's. We recommend that everyone just default to using a SitemapIndex as it future-proofs your site (as a Sitemap can only have up to 50k links; however, loading the ceiling maximum of data, to be loaded at once, can cause strain on your server. Using a SitemapIndex will break your Sitemap up into more manageable chunks).

In the past, yahoo was more comfortable with RSS feeds, but recently they've also adapted to work well with Google's XML sitemaps.

As this script pulls data live from the database, it is unwise to link directly to the various output options unless it's being fed into search engines as there is a potential for a lot data output. We recommend always using the caching option.

To test to ensure that your sitemap is working before providing the feed URL's to search engines, please load your sitemap generator with the following parameters (as the preview uses a small limit it shouldn't take longer than a couple of seconds to execute):
http://www.example.com/ubb.membermap.php?type=0&se=1

The sitemap index only works with XML sitemap feeds based off of the sitemaps.org standard; as these are only valid under XML sitemaps they display the output according to that standard only. To grab the sitemap index (should you have the need to utilize the offset option) please access it as:
http://www.example.com/ubb.membermap.php?type=6&se=1

If you are _NOT_ going to use a SitemapIndex and want to load the entire dataset at once, you'll want to change the "offsets" option to not utilize them, otherwise it'll load the amount of data up to the default offset chunk size (of 10k).


 

Settings


 

Configuration Settings


     
     $conf["banned"] = 1; // Display banned users. (0/No, 1*/Yes)
     $conf["connection"] = 1; // 0 = Set DB Info (below); 1* = Pull data from UBB.threads Config.
     $conf["custom"] = 0; // Require a custom field to be filled out. (0*/No, 1/Yes)
     $conf["domain"] = ""; // The domain that your forum is installed on (Ex: example.com); if blank will read the "_SERVER["HTTP_HOST"]" PHP variable (recommended).
     $conf["extension"] = 1; // Use HTML extension? 0/No, 1/Yes*
     $conf["folder"] = "forum"; // The folder that your UBB.threads is located in, Example: https://www.example.com/forums/ would be "forums/" (without trailing slash)
     $conf["frequency"] = 4; // 0 = Never, 1 = Always, 2 = Hourly, 3 = Daily, 4* = Weekly, 5 = Monthly, 6 = Yearly, 9 = No Display
     $conf["friendly"] = 1; // Use SE Friendly/SEO Links? 0 = No, 1* = Yes
     $conf["offsets"] = 1; // 0 = No, 1* = Yes if SitemapIndex (See "Type" Above)
     $conf["posts"] = 0; // 0* = Any, # = Minimum Posts
     $conf["rewrite"] = 0; // Respect Apache Rewrite Rules? 0* = No, 1 = Yes
     $conf["ssl"] = 0; // 0* = Native (based on url accessed), 1 = Always Show SSL URLs
     $conf["style"]["xml"] = 0; // 0* = No, 1 = CSS (sitemap.css), 2 = XSL (sitemap.xsl)
     $conf["style"]["name"] = "sitemap.xsl"; // The name of the sitemap style; an example css/sitemap.css and sitemap.xsl are supplied.
     $conf["timezone"] = "America/Los_Angeles"; // Your localized timezone; default: America/Los_Angeles. See: http://php.net/manual/en/timezones.php
     $conf["title"] = "Community Name"; // You can set this to change the name of your feed. By leaving this by default (or blank) and selecting to use data from your config (below) it will use your community name.
     $conf["type"] = 6; // What type to use by default? (See Above: 1/2/3/4/5/6*/7)
     $conf["version"] = 1; // 0 = v7.5 Series, 1* = v7.6 Series

 

Database Connection Information


     $conf["db"]["password"] = "sql_password"; // This should be the password to your database.
     $conf["db"]["prefix"] = "ubbt_"; // This should be the table prefix of your UBB.threads installation.
     $conf["db"]["name"] = "sql_database"; // This should be your database which holds your UBB.threads installation.
     $conf["db"]["server"] = "localhost"; // This should be the hostname that you use to connect to MySQL.
     $conf["db"]["username"] = "sql_username"; // This should be the username to your database.

Note
You can opt to either allow the script to read out your UBB.threads configuration or connect directly to the UBB.threads database with the information supplied in this section; you can adjust this behavior by adjusting the $conf["connection"] setting (see Configuration Settings).


 

Cache & Optimization Options


     $conf["expires"]["status"] = 1; // Should we set an expires header? = 0 = No, 1 = Yes (Default: 1)
     $conf["expires"]["time"] = 86400; // In Seconds (Default: 86400)
     $conf["cache"]["directory"] = "cache/sitemap/"; // The directory you intend to use for the storage of any cache files; requires $conf["cache"]["status"] to be 1. Example: "cache/sitemap/"; directory MUST be chmodded 777.
     $conf["cache"]["status"] = 0; // Should we use the cache? (Requires the "cache_dir" value to be populated.) 0 = No, 1 = Yes (Default: 0)
     $conf["cache"]["time"] = 86400; // In Seconds, (Default: 86400)
     $conf["gzip"] = 1; // Use GZip Compression for serving pages (can add some CPU load). 0 = No, 1 = Yes (Default: 1)

Note
The GZip option will allow your server to send a compressed version of the output to the client requesting it; it should aid in speeding the delivery portion of the request. Please note that using GZip has been known to cause some minor CPU load, however most virtual hosting servers should be more than antiquate to allow this option.



 

Human Readable Permalinks


In v0.2 we added the ability to specify human readable permalinks. These links are programmed into both sitemap scripts (UBB.Sitemaps and UBB.Membermap) and function via Apache Rewrite Rules. These rules go into your .htaccess file (if supported by your web server) and will redirect the following urls:
http://example.com/sitemap_index.xml -> Sitemap Index page -> ubb.sitemap.php?type=6&se=1
http://example.com/sitemap_listing.xml -> Forum Listing page -> ubb.sitemap.php?type=7&se=1
http://example.com/sitemap_members.xml -> UBB.Sitemap Member Listing -> ubb.membermap.php?type=6&se=1
http://example.com/sitemap_testing.xml -> UBB.Sitemaps Test Page -> ubb.sitemap.php?type=0&se=1
http://example.com/ubb_membermap/### -> Offset Pages
http://example.com/ubb_membermap/###.html -> Offset Pages
http://example.com/ubb_sitemap/### -> Offset Pages
http://example.com/ubb_sitemap/###.html -> Offset Pages

Note · .htaccess Code
# UBB.threads Sitemap Apache Rules
RewriteEngine On
RewriteBase /
RewriteRule ^sitemap_index.xml$ /ubb.sitemap.php?type=6&se=1 [L]
RewriteRule ^sitemap_listing.xml$ /ubb.sitemap.php?type=7&se=1 [L]
RewriteRule ^sitemap_members.xml$ /ubb.membermap.php?type=6&se=1 [L]
RewriteRule ^sitemap_testing.xml$ /ubb.sitemap.php?type=0&se=1 [L]
RewriteRule ^ubb_membermap/([0-9]+) /ubb.membermap.php?type=1&se=1&offset=$1 [L]
RewriteRule ^ubb_membermap/([0-9]+).html /ubb.membermap.php?type=1&se=1&offset=$1 [L]
RewriteRule ^ubb_sitemap/([0-9]+) /ubb.sitemap.php?type=1&se=1&offset=$1 [L]
RewriteRule ^ubb_sitemap/([0-9]+).html /ubb.sitemap.php?type=1&se=1&offset=$1 [L]
# UBB.threads Sitemap Apache Rules



 

Human Readable XML Styling


You can enable styling of any output of XML feeds so that a human can better read and interact with your sitemap. This is controlled with the $conf["style"]["xml"] and $conf["style"]["name"] variables within the Configuration Settings.

You can opt to use a simple CSS Stylesheet or a XSL Style which was supplied by id242; the XSL file is what we recommend using as it makes the XML output interactive. A demo of this can be found in the Demonstration section above.


 

Submissions


Not all search engines will check back automatically to re-check your sitemap; in fact, we've only noticed that Google will re-check on its own. You'll need to check back with other search engines to re-submit your sitemap if they do not auto-check it for you.

We recommend providing the following URL to search engines that support XML sitemaps:
http://www.example.com/ubb.membermap.php?type=6&se=1

Those switches, as mentioned in the Usage Instructions will generate a Sitemap Index with links to various XML sitemaps with Search Engine Friendly/SEO URLs


 

UBB.threads Version & URLs


URLs (and associated variables) have changed several times in the coarse of UBB.threads, below is some brief information for the $conf["version"] variable:
0 = v7.5 Series - v7.5 introduces SE Friendly URLs, which provides the topic title within the link itself.
1* = v7.6 Series - v7.6.0 introduces Search Engine Optimized (SEO) URLs, which provides the topic title within the link itself, and optimized the display for.

Note
There was a security issue in previous releases, which was patched in v7.5.8 which updated how URLs are written within UBB.threads; however, this patch was written poorly and introduced/allowed characters which are not valid in a URL (see RFC3986). As such, these URLs are not, and will never be, supported by this script (as all parts of this script, much like us, remain standards compliant). Users with unsupported versions (v7.5.8-v7.5.9) can opt to install id242's modification "Better URL Sanitization for SEO" (7.6.0 URLs utilize this same code)



 

Changelog


 20191222 (December 22nd, 2019)
• Added: Debug mode (ubb.membermap.php?debug=1) will allow you to see your UBB.Membermap settings and a forum overview in an easy to read page.
• Added: A new version check will display a version notice on the debug page.
• Added: A switch has been added for the beta group which will display if you're running a beta release or not. This will allow the new version check to be able to display notices for final builds.
• Added: Introduced basic mobile compatibility on HTML generated pages (type=3)
• Added: You can now restrict the results to users who supply a location.

 v0.2 (August 28th, 2018)
• Added a config option to specify a .html extension for links.
• Added an option to not display the frequency line.
• Added an option to not display the .html extension for sitemap files.
• Added support to always produce HTTPS (SSL) URLs (useful for sites on a CDN where the local server may still try to produce non-HTTPS links when using wildcard HTTPS urls).
• Added support for including the UBB.threads configuration for sites running UBB.threads from the webroot (not in a folder).
• Added support for specifying a domain (useful if your UBB.threads install is on a subdomain and you wish to have UBB.Sitemaps located on your main domain).
• Added support for human readable permalinks with Apache Rewrite Rules
• Removed the need for a trailing slash in the folder config.
• Changed the MySQL database connection to utilize MySQLi for PHP7 support.
• Minor code changes for script performance.

 v0.1 (October 8, 2016)
• Initial version released to the public.


 

Frequently Asked Questions


 

What does purchasing a license entitle me to?


By purchasing a license to the UBB.Sitemap script you're entitled to lifetime support of the script for the lifetime period of the script. You also receive access to a year of updates for free. After the year period; updates are purchased in blocks of 1 year for $30/yr to cover development costs. Please note that you are entitled to install this script on ONE domain per license; additional domains will require additional licenses.


 

What is a Sitemap?


A sitemap will take and provide all of your current threads to search engines, thus eliminating the wait of "new discovery" of new pages on your forums.

You can read about the benefits of using sitemaps via the below quoted article from Google Webmaster Tools.

Note · Quoting Google's Webmaster Help
What is a sitemap, and why should I have one?
A Sitemap file lets you tell us about all the pages on your site, and optionally, information about those pages, such as which are most important and how often they change. By submitting a Sitemap file, you can take control of the first part of the crawling/indexing processes: our discovery of the pages.

This may be particularly helpful if your site has dynamic content, pages that aren't easily discovered by following links, or if your site is new and has few links to it.

Sitemaps help speed up the discovery of your pages, which is an important first step in crawling and indexing your pages, but there are many other factors that influence the crawling/indexing processes. Sitemaps lets you tell us information about your pages (which ones you think are most important, how often the pages change), so you can have a voice in these subsequent steps. Other factors include how many sites link to you, if your content is unique and relevant, if we can crawl the pages successfully, and everything outlined in our webmaster guidelines.

A Sitemap provides an additional view into your site (just as your home page and HTML site map do). This program does not replace our normal methods of crawling the web. Google still searches and indexes your sites the same way it has done in the past whether or not you use this program. Sites are never penalized for using this service. This is a beta program, so we cannot make any predictions or guarantees about when or if your URLs will be crawled or added to our index. Over time, we expect both coverage and time-to-index to improve as we refine our processes and better understand webmasters' needs.

Once you have created your Sitemap, you can add it to your Google Sitemaps account and update it as your site changes.


Note
The UBB.Membermap script will only generate links for your users of your UBB.threads install; it will not generate links for your entire site. We recommend generating a sitemap for your site content outside of this script versus trying to hijack built in routines, as you're only allowed a certain amount of links in a sitemap (50k) and UBB.Membermap adjusts itself accordingly if you're using a sitemap index with offsets.



 

Useful Links


UBBDev discussion for UBB.Membermap
Script Information on VNC Web Services
Bing Webmaster Center
Google Webmaster Tools


 

Thank You


I'd like to take the time to fully acknowledge id242 for assisting me with several tasks for this script, and for renewing my interests in everything when I was at my wit's end. Thanks to your support, hard work, and friendship, everything is looking up :).


Note
The UBB.Membermap script is not freeware, it is licenseware; a separate license is required for every unique instance of the sitemap script that exists on your server.

Posted By Gremelin Posted on November 10th, 2015 · Updated on December 19th, 2019
▼ Sponsored Links ▼
▲ Sponsored Links ▲

Comments

( Posted)