templates/content-index.tpl.html: the `TT²` algorithm can be simplified
because the new query returns less. We get the date of the show
before the free slot, and can increment it differently depending on
whether the previous show is on a Friday or not - catering for
weekends in other words!
templates/queries-index-mysql.tpl.html,
templates/queries-index-sqlite.tpl.html: using a 'find unused index
numbers' query available in many places on the Internet, but
modified to return the id number and date for the show *before* the
next free slot.
templates/content-index.tpl.html: Now contains TT² code and an in-built
query to determine the next free slot. No need for an external
query. Old code that used to use this has been deleted.
templates/queries-index-mysql.tpl.html,
templates/queries-index-sqlite.tpl.html: Old queries called
'query_next_available_episode' removed since no longer needed.
templates/queries-index-mysql.tpl.html,
templates/queries-index-sqlite.tpl.html:
Rather than driving the search from the eps table itself, this
version makes a counter that generates slot numbers from the current
show number to the highest show number in the system. The counter is
used to interrogate the eps table to find the first empty slot. This
sems to be a more reliable approach (but time will tell).
templates/queries-index-mysql.tpl.html,
templates/queries-index-sqlite.tpl.html: Enhanced the query that finds
the next free slot (query_next_available_episode). Also made it
compute the days to the slot from the current day. The query returns
data for calling Date::Calc to compute the number of days, but this
calculation is no longer necessary. Next release will remove this.
templates/content-index.tpl.html: The number of days to the next free
slot is reported here. The original Date::Calc computation which did
this is no longer needed and has been removed since the query
(query_next_available_episode) does it.
site-generator:
Added all the modules that the script and the templates use to make
it explicit what is required.
templates/shared-utils.tpl.html:
Added a new TT² macro called 'absolute_url' which takes two
arguments, the base and the path or relative URL. It's fairly
primitive but seems to work.
templates/content-about.tpl.html,
templates/content-recording.tpl.html,
templates/content-request_a_slot.tpl.html,
templates/content-requested_topics.tpl.html,
templates/page.tpl.html:
All calls to 'absolute_url' changed to use two arguments, and the
link definitions adjusted to match this change.
templates/shared-call_for_shows.tpl.html:
- Cosmetic change
templates/queries-call_for_shows-mysql.tpl.html:
templates/queries-call_for_shows-sqlite.tpl.html:
- In a period of 10 days the minimum number of weekday-only shows
is 6, not 7. Adjusted the queries appropriately.
site-generator:
Cosmetic adjustments. Additions to the POD documentation.
Additions to module list.
Additions to work better with UTF-8.
Addition of functions 'parse_csv' and 'xml_entity'
templates/queries-episodes-sqlite.tpl.html:
templates/shared-utils.tpl.html:
Cosmetic changes
templates/rss-query-hpr-mysql.tpl.xml:
templates/rss-query-hpr-sqlite.tpl.xml:
templates/rss-query-hpr_total-mysql.tpl.xml:
templates/rss-query-hpr_total-sqlite.tpl.xml:
Enhancements to allow the query to collect the audio length from the
'assets' table. The audio file extension is passed as an argument to
the 'execute' statement.
templates/rss.tpl.xml:
Cosmetic changes
Changed one 'php' URL to 'html'.
templates/shared-episode-summary.tpl.html:
Change to 'display_tags' macro to turn the 'eps.tags' field into
a list of links. This works, but needs further development because
using the tag strings as anchor ids is not reliable.
templates/shared-item.tpl.xml:
Cosmetic changes.
Addition of filter 'HTML.strip' which is used as a means of removing
HTML tags from '<itunes:summary>' strings.
Using new filter 'xml_entity' which converts all non-ASCII
characters in the notes to numeric hexadecimal entities for
'<itunes:summary>'.
The '<enclosure>' tag now uses 'episode.length' rather than
'episode.duration' which has been extracted from the 'assets' table.
- added redirect via hpr_hub .htaccess file
- added links to mastodon, matrix, and mumble
Removed contact and stuff you need to know pages as these are now in the about page
public_html/css/hpr.css: Commented out the 'font-size: 75%;' in the CSS
definition for '#maincontent footer p'. It was this that shrank the
lower "step navigation" list in comparison to the upper one. The
upper is in a '<header>' block and the lower in a '<footer>' block.
templates/content-episode.tpl.html: Fixed a typo.
templates/content-theme.tpl.html: Changed "This can be added" to "This
is automatically added"
templates/queries-episode-sqlite.tpl.html: Fixed a transcription error
from the 'mysql' version
templates/shared-utils.tpl.html: Modified the layout of the
'step_navigation' macro to remove tabs which are being copied to the
HTML. Just a minor cosmetic issue. Added a Vim modeline to the file
to help with this.
site-generator: fixed an error in the POD documentation and added an
example. Reformatted 'GetOptions' arguments. Fixed 'parse_page_arg'
which started its returned array with an empty arrayref. Fixed code
using this array which skipped this unwanted extra value. Fixed
'get_ids_from_db' which turns a CSV list of shows into an array, but
includes a blank element. Removed a few trailing spaces.
templates/content-correspondents.tpl.html: Capitalised "License". Added
'order by h.host' to the internal query to get hosts sorted
alphabetically.
templates/content-episode.tpl.html: Added a call to macro
'zero_pad_left' to add leading zeroes to show number in the title.
Added a call to 'FILTER html_para' when displaying comments (which
are plain text). Added a test for whether the show being displayed
is in the 20-show window before the current one to determine whether
the short or long comment form is required. Added the code to
generate the two form types depending on the earlier test.
templates/content-sitemap.tpl.html: Corrected the entry for "Show
Comments" which contained an invalid URL.
templates/page.tpl.html: Grammar corrections in the '<head>' section.
templates/queries-episode-mysql.tpl.html: Adjusted the date tests in the
CTE's which compare the episode date with today's date plus one day.
Why add a day when the test is whether the episode date is less than
or equal to the current one? Also, it seemed that MySQL/MariaDB
might need to work with the UTC date rather than the local dat
implied by 'NOW()'.
templates/queries-episode-sqlite.tpl.html: Similar adjustment to date
tests in CTE's to the MySQL version. SQLite defaults to UTC however.
templates/queries-episodes-mysql.tpl.html: See above for notes about
date tests and MySQL UTC dates. Same arguments here.
templates/queries-episodes-sqlite.tpl.html: Date test adjustment
described above.
templates/queries-ids-episode-mysql.tpl.html: Removed the date test from
the query so all episode numbers are returned. Added an 'order by'
since the table can (could in the past) return numbers out of
numerical sequence.
templates/queries-ids-episode-sqlite.tpl.html: Same change as for the
MySQL version.
templates/queries-index-mysql.tpl.html: There are three queries here,
returned as TT² variables. The one called 'query_latest_episodes'
has been adjusted to use UTC and to avoid adding a day to the
current date. The query called 'query_last_5_weeks_episodes' has
been similarly adjusted.
templates/queries-index-sqlite.tpl.html: Changes for the same two
queries, but just for the tests requiring today's date plus one day.
templates/rss-comments.tpl.xml: Grammar corrections in the
'<channel><description>' section.
templates/rss.tpl.xml: Grammar corrections in various subsections of the
'<channel>' section.
templates/shared-call_for_shows.tpl.html: Removed the "FTP server"
message. Slight tidying.
Get episode ID and episode tags from eps.
Generate the Tags page by looping through the tags, order by their first character.
Added tags page to the config.