Ich migriere eine sehr alte App (derzeit in CF8 ausgeführt) nach Lucee. Aber ich stoße auf ein Problem mit einem benutzerdefinierten Tag.Wie finde ich eine benutzerdefinierte Tag-Instanziierung in einer coldFusion App
Ich habe versucht, sicherzustellen, dass alle virtuellen Verzeichnisse in IIS für die alte und die neue Installation identisch sind. Stellen Sie sicher, dass die Mapping- und benutzerdefinierten Tag-Pfade in CFIDE und in Lucee Admin identisch sind.
Aber ich bekomme diesen Fehler. Und kann nicht herausfinden, wie diese cflink
instanziiert wird.
Ich habe die Lage des erroring code on line 300 die utils.cfc Datei
ich verwendet habe keine benutzerdefinierten Tags gefunden in eine lange Zeit, aber Gedanken Sie wurden im Allgemeinen mit einem Unterstrich aufgerufen und der Code sollte eher wie <cf_link pageid="#LinkPageID#" Init="start">
aussehen, wenn dies als benutzerdefiniertes Tag aufgerufen wurde.
Wenn ich gehe, um den den aktuellen CF-Server, der diese App läuft ich finden kann, dass eine cfclass Datei HAT Von einer Datei namens cflink.cfm in einem Verzeichnis „Tags“, obwohl es scheint zu sein, genannt geschaffen Keine Zuordnung für das "Tags" -Verzeichnis, noch ist es unter "Benutzerdefinierte Tags Pfade" im Administrator aufgeführt.
Diese App wurde im Jahr 2003 gestartet und wie Sie sich vorstellen können, hat sich in eine Fehlabstimmung von Spaghetti-Code gewachsen und niemand von Anfang an ist gefragt, wie dieses Tag instanziiert wird.
Hat jemand mit Erfahrung in Legacy-Code andere Ideen, wo ich versuchen sollte, um dies zu arbeiten? Das Unternehmen hat derzeit nur eine Produktionsumgebung und wenn ich es auf die Arbeit mit Lucee bringen kann, wird es nicht nur eine Entwicklungsumgebung sein, die es hier in 10 Jahren noch nicht gegeben hat, sondern eine großartige Möglichkeit für mich, Lucee weiterhin zu präsentieren ein großer CFML Motor
Hinzufügen Zusatz Info
Leigh gefragt hatte, ob die init ein Glas Referenz sein könnte, aber in der cflink.cfm Datei sehe ich diesen Code:
<cfif Attributes.Init IS "start">
<cfset Request.PageID = Attributes.PageID>
<cfset Request.Page_Width = Variables.qParentInfo.Page_Width>
<cfset Request.Page_Height = Variables.qParentInfo.Page_Height>
<cfset Request.Page_TypeID = Variables.qParentInfo.Page_TypeID>
<cfset Request.AddPath = "">
<cfif IsDefined("Attributes.Anchor")>
<cfset Request.Anchor = Attributes.Anchor>
<cfelse>
<cfset Request.Anchor = "">
</cfif>
<cfset Request.IsInternalLink = false>
<cfexit method="EXITTAG">
</cfif>
Es gibt auch Verweise auf cflink im Code in Tags \ cflink.cfm
<cfif Len(Variables.qParentInfo.ParentID) GT 0>
<!--- Add the page title to the end of the path --->
<cfset Request.AddPath = ReplaceNoCase(Variables.qParentInfo.Nav_Title," ","_","ALL") & "/" & Request.AddPath>
<cflink init="working" pageid="#Variables.qParentInfo.ParentID#" popcode="#Attributes.popcode#">
<cfelse> ......</cfif>
Obwohl dies Rekursion gegeben werden es im Jahr 2004 geschrieben wurde, ich bezweifle Art es
Screenshots Suche Hinzufügen
Schuss im Dunkeln, aber für alle 'cfimport' Anrufe haben überprüfen? Sie können einige kreative Dinge mit Tag-Bibliotheken tun. – Leigh
Versuchen Sie eine Suche auf Ihrem Server auf 'link.cfm'. Es muss irgendwo sein –
Gesungen, wie sie das taten: "* ... Aus einer Datei namens cflink.cfm in einem Verzeichnis namens" Tags "... *? – Leigh