<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" 
	>
<channel>
	<title>
	Comments on: LH Places	</title>
	<atom:link href="https://lhero.org/portfolio/lh-places/feed/" rel="self" type="application/rss+xml" />
	<link>https://lhero.org/portfolio/lh-places/</link>
	<description>Digital Sovereignty for everyone</description>
	<lastBuildDate>Thu, 22 Oct 2026 21:07:34 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>
		By: Peter Shaw		</title>
		<link>https://lhero.org/portfolio/lh-places/#comment-1537649</link>

		<dc:creator><![CDATA[Peter Shaw]]></dc:creator>
		<pubDate>Thu, 22 Oct 2026 21:07:34 +0000</pubDate>
		<guid isPermaLink="false">https://lhero.org/?p=570#comment-1537649</guid>

					<description><![CDATA[Static-analysis fixes, no behaviour change. When reading GPS coordinates from raw EXIF, the check that rejects a 0,0 position now compares as floats explicitly. PHPStan could not infer the type, so it reported the comparison as always false. The map&#039;s data-zoom attribute now passes a string to esc_attr() instead of an int. PHPStan level 5 is clean after this release.]]></description>
			<content:encoded><![CDATA[<p>Static-analysis fixes, no behaviour change. When reading GPS coordinates from raw EXIF, the check that rejects a 0,0 position now compares as floats explicitly. PHPStan could not infer the type, so it reported the comparison as always false. The map&#8217;s data-zoom attribute now passes a string to esc_attr() instead of an int. PHPStan level 5 is clean after this release.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Peter Shaw		</title>
		<link>https://lhero.org/portfolio/lh-places/#comment-1537648</link>

		<dc:creator><![CDATA[Peter Shaw]]></dc:creator>
		<pubDate>Thu, 22 Oct 2026 21:05:42 +0000</pubDate>
		<guid isPermaLink="false">https://lhero.org/?p=570#comment-1537648</guid>

					<description><![CDATA[Standards clean-up release (lh-tasks #149947), with no change to hooks, meta keys, REST routes or block names. The main file header now carries License: GPLv3 or later, License URI, Requires at least: 6.3 (the map block uses block.json apiVersion 3 and a render file) and Requires PHP: 7.4, so the compiled readmes no longer warn about missing fields. The hard-coded LH_PLACES_VERSION constant, stuck at 1.30, is gone. Script versions now come from a new plugin_version() that reads the Version header, so browser caches of the classic-editor script, the block-editor geo panel and the Leaflet map script now refresh on every release. The class follows the LH plugin structure: plugin_name() and plugin_version() identity methods, a private constructor, an initialised singleton property, and an lh_places_init_plugin filter in plugin_init() that lets a site disable the plugin without deactivating it. The class_exists() wrapper around the whole file is removed, because that pattern caused the lh-tasks early-binding outage. The wp-geometa-lib loader still runs at file level so its version arbitration happens before plugins_loaded. register_activation_hook() was being passed two stray arguments, which are now removed. This release also includes the 1.30.3 status filtering for the map block, documented in that release.]]></description>
			<content:encoded><![CDATA[<p>Standards clean-up release (lh-tasks #149947), with no change to hooks, meta keys, REST routes or block names. The main file header now carries License: GPLv3 or later, License URI, Requires at least: 6.3 (the map block uses block.json apiVersion 3 and a render file) and Requires PHP: 7.4, so the compiled readmes no longer warn about missing fields. The hard-coded LH_PLACES_VERSION constant, stuck at 1.30, is gone. Script versions now come from a new plugin_version() that reads the Version header, so browser caches of the classic-editor script, the block-editor geo panel and the Leaflet map script now refresh on every release. The class follows the LH plugin structure: plugin_name() and plugin_version() identity methods, a private constructor, an initialised singleton property, and an lh_places_init_plugin filter in plugin_init() that lets a site disable the plugin without deactivating it. The class_exists() wrapper around the whole file is removed, because that pattern caused the lh-tasks early-binding outage. The wp-geometa-lib loader still runs at file level so its version arbitration happens before plugins_loaded. register_activation_hook() was being passed two stray arguments, which are now removed. This release also includes the 1.30.3 status filtering for the map block, documented in that release.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
