Coldfusion Trackback

Se volete attivare sul vostro sito un sistema di trackback, per ricevere i ping dei vari blog che implementano il protocollo ideato da movabletype, e avete il sito in coldfusion ecco il codice che fa per voi. Io per l’esempio converto il form ricevuto in WDDX e lo salvo in un file di log, ma è solo un esempio.

<!--- http://www.petefreitag.com/item/293.cfm --->
--->
<cfsetting enablecfoutputonly="yes">
<cfscript>
/**
* A quick way to test if a string is a URL
*
* @param stringToCheck      The string to check.
* @return Returns a boolean.
* @author Nathan Dintenfass (nathan@changemedia.com)
* @version 1, November 22, 2001
*/
function isURL(stringToCheck){
        return REFindNoCase("^(((https?:|ftp:|gopher:)\/\/))[-[:alnum:]\?%,\.\/&##!@:=\+~_]+[A-Za-z0-9\/]$",stringToCheck) NEQ 0;
    }
</cfscript>
<cfif isDefined("form.url") and isURL(form.url)>
    <cfif not isDefined("form.title")><cfset form.title = "-senza titolo-"></cfif>
    <cfif not isDefined("form.blog_name")><cfset form.blog_name = "-senza nome-"></cfif>
    <cfif not isDefined("form.excerpt")><cfset form.excerpt = ""></cfif>
    <cfwddx action="cfml2wddx" input="#form#" output="formJS">
    <cffile action="write" addnewline="yes" charset="utf-8" file="#expandPath("trackback.log")#" output="#formJS#" fixnewline="no">

    <cfset res = true>
<cfelse>
    <cfset res = false>
</cfif>

<!-- procedura non a buon fine --->
<cfheader name="Content-Type" value="text/xml">
<cfif res>
<cfoutput>
<?xml version="1.0" encoding="utf-8"?>
<response>
<error>0</error>
</response>
</cfoutput>
<cfelse>
<cfoutput>
<?xml version="1.0" encoding="utf-8"?>
<response>
<error>1</error>
<message>Your pingback is not correctly formatted.</message>
</response>
</cfoutput>
</cfif>

[ad name=”postintra”]

Due cose importanti. Vedete di attivare la moderazione nell’output del trackback al pubblico, perchè il mondo è pieno di pingback spammer. Ricordatevi di inserire sul vostro sito il tag di autorintracciamento della vostra pingback page.

<link rel="pingback" href="http://<domainName>/<path>" />

Come al solito infiniti ringraziamenti a Pete Freitag!

Loading Facebook Comments ...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *