One bug with Graffiti that's been driving me nuts ever since I started using the app over a year ago is that it assumes that a commenter will naturally add the http://
to the beginning of their website name. If they don't, the code that displays the comment later will force the URL to be absolute (essentially by prepending the Graffiti application's base URL to the name). Of course that link is then nonsense and leads to a 404 if someone clicks on it later.
Since I use Scott Cate's 404 manager, I see the common 404s as they accumulate, and these comment website errors have been driving me nuts.
So, I've fixed all the comments that needed fixed on the site (I used SQL Server Management Studio rather than the Graffiti admin interface) and now I've fixed the code that saves a comment. If you have downloaded the source and upgraded your site the fix is pretty simple. Find comments.cs
in the Data folder of Graffiti.Core and change the code that sets up the WebSite
property to:
else { if (!string.IsNullOrEmpty(WebSite)) { WebSite = HttpUtility.HtmlEncode(WebSite).Trim(); if (!WebSite.StartsWith("http://", true, null)) { WebSite = String.Format("http://{0}", WebSite); } } if (!string.IsNullOrEmpty(Email)) Email = HttpUtility.HtmlEncode(Email);
In other words instead of just HTML encoding it, encode it, trim, and make sure it starts with http://
. Build, copy the new DLLs to the bin
folder of your web site, and you're done.
(Note: OK, OK, the test should be a little more sophisticated since it will screw up URLs that use another scheme apart from http
. Hasn't happened yet though.)
Now playing:
Yello - On Track [Doug Laurent's First Journey]
(from Eccentrix Remixes)
No Responses
Feel free to add a comment...
Leave a response
Note: some MarkDown is allowed, but HTML is not. Expand to show what's available.
_emphasis_
**strong**
[text](url)
`IEnumerable`
* an item
1. an item
> Now is the time...
Preview of response