<?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 Customer Relationship Management	</title>
	<atom:link href="https://lhero.org/portfolio/lh-crm/feed/" rel="self" type="application/rss+xml" />
	<link>https://lhero.org/portfolio/lh-crm/</link>
	<description>Digital Sovereignty for everyone</description>
	<lastBuildDate>Sun, 01 Nov 2026 02:11:00 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>
		By: Peter Shaw		</title>
		<link>https://lhero.org/portfolio/lh-crm/#comment-1537825</link>

		<dc:creator><![CDATA[Peter Shaw]]></dc:creator>
		<pubDate>Sun, 01 Nov 2026 02:11:00 +0000</pubDate>
		<guid isPermaLink="false">https://lhero.org/?post_type=lh-portfolio&#038;p=147699#comment-1537825</guid>

					<description><![CDATA[The enquiry details&#039; contact card link now comes from LH Contacts, which replaces LH Vcard: it calls LH_Contacts::return_signed_download_url() and shows only to users with LH Contacts&#039; view capability (LH_Contacts::return_view_capability(), publish_posts by default). The link is labelled Contact card instead of Vcard. Without LH Contacts active the link is left out.]]></description>
			<content:encoded><![CDATA[<p>The enquiry details&#8217; contact card link now comes from LH Contacts, which replaces LH Vcard: it calls LH_Contacts::return_signed_download_url() and shows only to users with LH Contacts&#8217; view capability (LH_Contacts::return_view_capability(), publish_posts by default). The link is labelled Contact card instead of Vcard. Without LH Contacts active the link is left out.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Peter Shaw		</title>
		<link>https://lhero.org/portfolio/lh-crm/#comment-1537700</link>

		<dc:creator><![CDATA[Peter Shaw]]></dc:creator>
		<pubDate>Sun, 25 Oct 2026 00:18:47 +0000</pubDate>
		<guid isPermaLink="false">https://lhero.org/?post_type=lh-portfolio&#038;p=147699#comment-1537700</guid>

					<description><![CDATA[Clearer message when an enquiry is rejected because the form&#039;s security field was never filled in. That field is filled by the page script, so an empty one means JavaScript did not run (switched off or blocked, or the visitor is not a real browser); the form had not expired. These visitors now see &quot;JavaScript needed&quot;, with a request to switch JavaScript on or try another browser, instead of &quot;Form expired&quot;. A field that is filled but no longer valid still shows &quot;Form expired&quot;. Logging and the 403 response are unchanged.]]></description>
			<content:encoded><![CDATA[<p>Clearer message when an enquiry is rejected because the form&#8217;s security field was never filled in. That field is filled by the page script, so an empty one means JavaScript did not run (switched off or blocked, or the visitor is not a real browser); the form had not expired. These visitors now see &#8220;JavaScript needed&#8221;, with a request to switch JavaScript on or try another browser, instead of &#8220;Form expired&#8221;. A field that is filled but no longer valid still shows &#8220;Form expired&#8221;. Logging and the 403 response are unchanged.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
