Documentation edition: 9 September 2026
Site overview and technical reference
Updated 9 September 2026. Paths below identify the maintained sections described by supplied files and recent changes. A path listed here is not proof that its latest package has been uploaded.
Main sections
| Section | Main paths | Purpose |
|---|---|---|
| Home | /index.php |
Entry point for Half-Mind resources |
| About | /about.php |
Site history and original founder account |
| Regional directory | /regionalwebsite/index.php, p_list1.php, theworld.php |
Find kennels and regional contacts |
| Club editing | /regionalwebsite/p_edit1.php, p_edit2.php |
Existing edit workflow; inspect current code before changing |
| Directory quality | /regionalwebsite/directory_health.php |
Directory Health report |
| Travel rankings | /where/index.php |
Individual hasher rankings |
| Kennel rankings | /where/awhere_kennel_leaderboard.php |
Aggregate participating members by profile kennel |
| Plates | /plates/index.php |
Plate gallery, captions and search |
| Songbooks | /songbooks.php |
Songbook introduction, PDF and scans |
| Scan viewer | /songbook/showpage.php?pg=06 |
A selected scan with previous/next navigation |
| Administration | /siteadmin/index.php |
Maintenance, backups and documentation |
On On Podcast is linked from the site but is a separate WordPress project. Its plugins, transcripts and episode operations are outside this manual.
Shared presentation
The shared root files are /2025header.php, /2025styles.css and /footer.php. Some modernized public pages use /legacy-pages.css and /legacy-footer.php. The Where section has its own /where/awhere_menustrip.php and footer. /where/legacy-where.css and legacy-where.js add scoped form/checklist enhancements to the supplied modernization pages.
The corrected kennel leaderboard loads the root header, then the current Where menu strip. A stale /where/2025header.php must not take precedence there. The latest supplied menu includes My Counts, Hare Places, My Milestones, Profile & Password, My Lists, maps, Races, Export and logout for members, plus public rankings/report links. The Kennel Leaderboards link is placed after Where Hared.
Account and report routes
File in /where/ |
Function |
|---|---|
awhere_login.php, awhere_logout.php |
Sign in/out |
awhere_register.php, awhere_verify.php |
Registration and email verification |
awhere_PasswordForgot.php, awhere_changepassword.php |
Password recovery |
awhere_aboutme.php |
Account/profile editing |
awhere_MyCounts.php, awhere_MyHares.php |
Hashed/hared place selections |
awhere_MyRaces.php, awhere_racerankings.php |
Race records and rankings |
awhere_MapEm.php, awhere_usmap.php, awhere_worldmap.php |
Lists and maps |
awhere_blog.php |
Bio page; the legacy filename remains |
awhere_iso.php, awhere-haresc.php, awhere_MapKennelworld.php |
Search and reports |
awhere_export.php, awhere_milestones.php |
Personal progress, continents, PDF preview/download and CSV export; source inspected |
Data and configuration
The supplied admin backup code loads /regionalwebsite/hminddbparams.php for the directory target and /where/p_207_where_params.php for travel data. They define $pdb_server, $pdb_user, $pdb_password, $pdb_database and, where needed, a table setting. /where/awhere_dbparams.php initializes a shared connection for several account pages.
The directory audit report names 2007_rdir as a table with 55 utf8 text columns. Use the configured table name: the verifier has a fallback spelling of rdir_2007, which is different and could cause a false missing-table report if the config lacks a table name. WhereUser has 31 reported text columns using utf8mb4; the report omits numeric columns by design.
The supplied report labeled directory includes both directory and Where tables. This suggests the targets may share a database, but compare the actual configurations before assuming that. Backup labels do not isolate tables: the supplied dumper exports all base tables in the selected database.
Implementation status and unresolved work
| Item | Evidence and limit |
|---|---|
| Legacy modernization | Replacement package prepared for supplied public pages and 17 Where pages; live installation not certified |
| Plates lightbox | Standalone JavaScript add-on delivered; current page needs its script include |
| Kennel leaderboard | Replacement and subsequent header/menu fix delivered; server testing required |
| Password reset kit | Local hash generator and updated bootstrap delivered; check installed bootstrap before reusing |
| Encoding audit | Live reports supplied: 231 files checked, 113 heuristic findings, not a complete site scan |
theworld.php |
Inspected: one Windows-1252 dash in a comment; absent explicit charset; correction not delivered in that inspection turn |
| Export/certificate, milestones and world-map continent badge | Latest source inspected and replacements prepared; see September 9 update below |
| Add-club, newer health dashboard | Current source/deployment not verified here |
| Broken-link cron monitor | Requested; executable, schedule and deployment not verified here |
| Additional table wrappers | Explicitly deferred; no new site-wide rollout assumed |
Source and testing boundaries
These guides reconcile the supplied admin files, menu, leaderboard source, encoding reports, inspected world-directory file and generated packages. PHP syntax-parser checks and selected simulated/aggregation tests were performed for generated code. Native PHP, live MySQL, real browser rendering and deployment were not validated in those packages unless explicitly stated. Do not describe them as fully tested production releases.
September 9: continents, milestones, map and export
| Component | Data and behavior |
|---|---|
wherecountry.wherecountry_continent |
Historical area; unchanged |
wherecountry.wherecountry_continent_real |
New nullable VARCHAR(20), one of seven continents |
/siteadmin/country_continents.php |
Authenticated per-country editor, search and unassigned filter |
/where/awhere_milestones.php |
3/4/5/6/7 clubs from selected country IDs and real classifications |
/where/awhere_worldmap.php |
Highest club and progress for the displayed hasher |
/where/awhere_export.php |
Private PDF preview/download and CSV with continents |
/where/certificate-fonts/ |
Required DejaVu Sans regular/bold TTFs and license |
The supplied reference export contained 229 countries/territories and nine areas. The migration seeds 216 proposals and leaves 13 entries for review. It preserves nonblank classifications on rerun and matches ID and country name.
Travel configuration uses $pdb_server, $pdb_user, $pdb_password and
$pdb_database. The first country-editor release incorrectly expected $db_*
variables. Use the corrected editor; do not change your passwords to fix that.
My Milestones and Export use country ID minus one with Y flags. The existing world map chooses country ID or ID-minus-one by comparison with the stored country total and accepts Y/1/T. Its badge follows the map's choice. This legacy heuristic may disagree with other pages. Do not rewrite flags without inspecting a real affected account and preserving a backup.
A missing classification suppresses the completed continent count/club rather than awarding a partial result. Optional continent lookup failures should not stop the map or the rest of the export. Counts are self-reported.
The certificate uses embedded fonts and measured text widths, with Windows-1252 conversion retained from its previous PDF generator. UTF-8 CSV preserves a broader character repertoire. The map's Burma/Myanmar alias is retained.
Verification boundary
The latest export passed lint in a WebAssembly PHP CLI runtime. Its actual PHP PDF generator ran with sample data; first/detail pages and a long-name seven- continent example were rendered and inspected. Earlier PHP changes used a static syntax parser. Migration seeds passed a SQLite fixture, not native MySQL DDL execution. Live database/authentication, host logo support and deployment still require server checks. None of these guides certifies live installation.