Site Notes

Table of Contents

At A Glance Stat Errors:

Member List report shows 19 members of type AM, at a glance shows 18.  This is due to member #412 being type SP in member table, but product type AM in hosting table.  (ERROR)

Member List report shows 28 members of type DF, at a glance shows 27.  This is due to member #117 (ME) being type HM in member table, but product type DF in hosting table.  (ERROR)

Member List report shows 55 members of type DFC, at a glance shows 54.  This is due to member #989 being type SP in member table, but product type DFC in hosting table.  (ERROR)

Member List report shows 659 members of type DM, at a glance shows 651.  This is due to member #973, #843, #6, #421, #473, #197, #13, #274, #415, #591, #417, #207 all being type SP in member table, but product type DM in hosting table.  (ERROR) (DOUBLE ERROR!!!!  THIS IS 12 RECORDS BUT 659-651 = 8)

Member List report shows 99 members of type DS, at a glance shows 96.  This is due to member #961, #204, #129 all being type SP in member table, but product type DS in hosting table.  (ERROR)

Member List report shows 85 members of type DSS, at a glance shows 84.  This is due to member #850 being type SP in member table, but product type DSS in hosting table.  (ERROR)

Terry's comment on glance having 34 SM but hosting only 15.  This is because the selection criteria for SM was pulling types 'SM' and 'SP' in member table.  There are 19 'SP' types and 15 SM types (19 + 15 = 34) (ERROR) (THERE SHOULD BE NO RECORDS OF TYPE 'SP'!!!!!!)

Why are there 989 records in tblclients, 989 records in mod_delano_members, but only 986 records in tblhosting?

File Deleting & Re-Adding:

Deleted DK Staff Listing.pdf successfully, but unable to add again with same name.   Found that unlink() failed due to  leading "/" missing in file path.  File was not being physically deleted but it was being deleted from the database. 

Fixed this issue.  Leading "/" added,

Added code to prevent deletion from database if physical file action fails.

Added code to allow moving files from one location to another (ie: from /docs/newsletters to /docs/reunions) , keeping same database ID, display name, and actual file name.

Version 2 wish list: allow admin to upload totally new file to replace old file, and keep same database ID, display name, and file name. 

Logging:

Add in admin activity logging to inform admins of actions in backend on both successful and failed editing attempts on files, pages, posts, and members.

Have added this feature to add-on.  See Utilities -> Logs -> Activity Log

WHMCS Billing Cycle vs Delano Billing Cycle:

WHMCS allows us to set a product as 'free', but then there is no way for us to set a nextduedate because WHMCS does NOT show the field in client profile.  So need to use free, and forego nextduedate in hosting table, instead using primary member's nextduedate. 

Alternatively, we set all secondary billing cycles to match primary's billing cycle and nextduedates as well.

User migration script is going with first method. Sets secondaries to cycle free, thus no nextduedate.  Frontend and automation needs to do nothing on secondaries except suspend, unsuspend, and terminate as the primary changes.  

Automation needs written to process deceased DS and DF members' secondaries.

State Codes vs State Names:

WHMCS does not provide anything related to shipping rules and regulations.  The full state names are stored in tblcllients. 

Version 2 wish list: reports and other interfaces have special function to convert full name to abbreviation. 

Added full state -> abbreviation functionality.  Mailing list now has two letter abbreviations for state.  

Order System:

When ordering DF, users cannot add children 18 years of age and over.

Have implemented code in the shopping cart that prevents users from going past step #4 of DF membership if they have attempted to add a child over 18 to cart.

It is possible for users to view the cart contents with a membership in the cart even if they have NOT completed the membership configuration steps.  Need to trap the checkout process to PREVENT an order from getting to checkout if a membership is not fully configured.  Either the user deletes the membership from the cart, or they configure it 100%.

Have added code to prevent getting to checkout stage from the shopping cart if the user has not configured the membership completely.  Users are not required to complete steps with checkbox options as those can default to No.  The configurations required are for certain membership types only, like ancestor, spouse, and children entry.

Protected vs Requires Login:

New site design views protected content differently than Terry and other Delano staff.  In new system, any content that requires members to log in in order to read, download, etc, is considered 'requires login'.  The new site does not necessarily need to show a padlock next to links pointing to content that requires login.  This is because the site will auto-direct users to the log in page any time they attempt to access content that requires login.  'Protected', on the other hand means any PDF file that is copyright restricted and is to load in the protected file viewer.  The new design allows content to have one or both of these control flags set.  

  1. Content can be protected only meaning the public can see it but only within the protected viewer, or
  2. Require login only meaning users must be logged in to see the content, or
  3. A combination of the two

Sidebar

Sidebar design needs development review.  It currently contains both static and dynamic content.  The backend sidebar code generator needs to build a common array of pages, files, topics, documents, meetings, etc with all associated flags set.  The frontend sidebar template needs re-written to use the common array, thus allowing admins to edit the template and control what is seen by members and non-members. All static hard-coded links should not be present.

System now builds unique arrays for ALL files, newsletters, pages, and topics.  Sidebar template has been recoded to allow admins to have more control over what is shown in sidebar. 

Sidebar template has been optimized to remove redundant {if}{else}{/if} test logic based on logged in status of user.  There is now one section for each group, and the sections themselves control what is shown.

New section added to sidebar REFERENCE LIBRARY and all files that are stored in /docs/reference are shown in this section.

Sidebar template still requires some hard-coded entries for GENERAL INFORMATION and MEMBERSHIP LINKS sections due to varying types of links in them.  The GENERAL INFORMATION section contains links to site pages, but the system does not have flags to indicate pages should be shown in sidebar.  To add or remove page links to the sidebar, admins should manually edit the template.  The MEMBERSHIP LINKS section contains diverse links to docs, pages, and even shopping cart. This section also requires manual edit of the template.

To Do:

1) Need a topic editor. Topics are what posts are tagged to.  There is a topic intro shown on frontend when browsing all posts in that topic (can contain shortcodes). There is a topic intro shown in front end when posting something new to the topic (cannot contain shortcodes).  And flags indicating if topic is a public topic, and whether or not members can add new posts to the topic. A very basic topic editor would help take care of this.

2) Need a image manager.  Basic system to upload images and to where.  These are not protected and uploaded to add-on image repository.  But a gallery shortcode system would be a nice plus.  Basically need a way to put in a gallery shortcode for several images on a single page in some type of slider and/or thumbnail viewer.  And need a way to put in a shortcode for a simple single responsive image.

3) Actually accept an order and create all the needed records

4) Actually pay an invoice and test order fulfillment

5) Get At A Glance showing correct numbers!!!!  ASAP!!!!!!!

6) Create admin logins for officers / directors, etc.

7) Fully test the login using wordpress credentials as well as whmcs credentials.

8) Test WHMCS automation Suspension functionality. It appears to be auto-suspending all free accounts if client/member not active. Not sure we want that.

9)

WHMCS Data vs DELANO Data:

Unlike WordPress, the WHMCS system is a complete client billing management system.  It is primarily geared for businesses hosting web sites and domains, but it does provide the tools for other hosting service types.  'Hosting' is synonomous with routinely charging clients for a recurring service and automatically controlling the service state based on payment state.  A lot of data that the Delano Kindred collects and stores on its members are actually required fields in a WHMCS client profile and a WHMCS hosting record.

All data that was migrated from WordPress and that mapped to existing WHMCS client profile fields were (and are) stored within WHMCS.  All other data member-specific data was (and is) stored in a custom database table.  There is a one-to-one table relationship between the WHMCS clients table and the add-on member table.

The member data migrated from WordPress pertaining to a member's membership, paid thru, 1-2-3 year term and that mapped to existing WHMCS hosting fields were (and are) also stored within WHMCS.  There is a one-to-many table relationship between the WHMCS hosting table and the WHMCS clients table, and a one-to-many table relationship between the WHMCS hosting table and the add-on member table.

The add-on at no time should interfere with standard WHMCS processing.  WHMCS has provided developers the means with which to 'extend' the functionality of the WHMCS framework--not override it.  As such, the add-on focuses on bringing the Delano membership to life and adding a WordPress-like blogging frontend.  The add-on does NOT interfere with edited and updating standard data fields of a client profile.

Currencies

Several users migrated from WordPress do not reside in the United States.  Because of this, and in response to email from Terry on how to handle the different currencies, we have enabled multiple currencies in WHMCS.  We have added a currency code for each of the unique countries found during user migration: (AU, CA, CL, MX, NL, UK, US). WHMCS auto-updates the base conversion rates during the daily cron tasks.  To learn more about currencies within WHMCS, please review WHMCS knowledgebase.  At this time, users can shop the Delano site using their preferred currency.  PayPal will automatically do the conversions of foreign exchange rates for you.