Here you go.
Instructions for their use are pretty straight forward:
TagHelp.cfm, DirectoryList.cfm and TagChooser.cfm should be placed in a
directory under the webroot.
Edit the first few lines of TagHelp.cfm if required to specify the
directories where the relevant.
Browse to TagHelp.cfm. It should output only the word 'complete' when it is
finished.
Inside the same directory as TagHelp.cfm should be a new directory called
output. There should be a readme in the output directory explaining what to
do next.
let me know if there are any issues with the script (I will try to make it
a bit more user friendly sometime soon).
Also I have a full set of finished files if you don't manage to get it to
work. Just drop me a line and I will send you a copy - I can't seem to
upload anything to the developers exchange for some reason.
happy browsing :)
spike
At 09:05 04/08/2000 -0400, you wrote:
>Great. Could you send me the script whrough email please?
>
>Thanks.
>
>Yirong
>
>On Thu, 03 Aug 2000 22:44:10 +0200
> Spike <[EMAIL PROTECTED]> wrote:
> > Hi all,
> >
> > I have written a script that will automagically create
> > tag insight, tag
> > chooser, tag completion and tag editors for spectra tags
> > as well as an
> > enhanced spectra toolbar.
> >
> > I only have one machine with spectra installed on it at
> > the office and need
> > some willing guinea pigs to test it on other machines.
> >
> > if anyone is willing to give it a try drop me a line and
> > I will send you a
> > copy. Once it has been tested a bit more thoroughly I
> > will post it to the
> > developers exchange.
> >
> > spike
> > Stephen Milligan
> > Internet Developer and Allaire training guru
> > Tel: +34 686 021171
> > Email: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> > "In the land of the blind, the one-eyed man is king!"
> >
> >
> ------------------------------------------------------------------------------
> > To Unsubscribe visit
> http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/spectra_talk
> > or send a message to [EMAIL PROTECTED]
> > with 'unsubscribe' in the body.
>
>------------------------------------------------------------------------------
>To Unsubscribe visit
>http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/spectra_talk
>or send a message to [EMAIL PROTECTED] with
>'unsubscribe' in the body.
<!---
Template: DirectoryList.cfm
Author: Simeon Simeonov
Source Control: $Header: /ColdFusion/Docs/directorylist.cfm 4
8/19/98 3:15p Ereiber $
DirectoryList:
Lists the entries in a directory tree in a format compatible with CFDirectory
To handle recursion, a new query column 'Path' is added. Path contains the
full path to a file/directory.
Limitations:
Directory names are built using DOS/Win backslashes.
Usage:
<CF_DirectoryList Directory=... Filter=... Recurse=... ResultQuery=...
AppendToResultQuery=...>
Attributes:
Directory (required, string)
The root of the directory tree, for example, "c:\wwwroot"
Filter (optional, string, default: *)
Filter (search specification) to use.
Recurse (optional, boolean, default: false)
Determines whether a recursive directory search is performed.
ResultQuery (required, variable name)
The name of the query that the tag creates in the caller scope.
AppendToResultQuery (optional, boolean, default: false)
Determines whether a new result query is created in the caller scope
or whether rows get appended to an existing query by this name
--->
<!---
Validate attribute set
--->
<cfparam name="attributes.directory">
<cfparam name="attributes.filter" default="*">
<cfparam name="attributes.recurse" default=false>
<cfparam name="attributes.resultQuery">
<cfparam name="attributes.appendToResultQuery" default=false>
<!---
Make sure you are using OS-friendly paths
--->
<cfif server.os.name contains "Windows">
<cfset dirSep = '\'>
<cfelse>
<cfset dirSep = '/'>
</cfif>
<!---
Create or bind to a result query
--->
<cfif attributes.appendToResultquery>
<cfparam name="Caller.#attributes.resultQuery#">
<cfset resultQuery = Evaluate("Caller.#attributes.resultQuery#")>
<cfif not isQuery(resultQuery)>
<cfabort showerror="CF_DirectoryList: variable
'Caller.#attributes.resultQuery#' is not a query">
</cfif>
<cfelse>
<cfset resultQuery =
QueryNew("Name,Path,Size,Type,DateLastModified,Attributes,Mode")>
</cfif>
<!---
Run the initial directory search
--->
<cfdirectory
action=list
directory=#attributes.directory#
filter=#attributes.filter#
name=dirList>
<!---
Iterate over the directory listing of matching specification
--->
<cfloop query=dirList>
<!--- Add the current entry to the result query --->
<cfset temp = queryAddRow(resultQuery)>
<cfset temp = querySetCell(resultQuery, "Path",
"#attributes.directory##dirSep##name#")>
<cfset temp = querySetCell(resultQuery, "Name", name)>
<cfset temp = querySetCell(resultQuery, "Size", size)>
<cfset temp = querySetCell(resultQuery, "DateLastModified", dateLastModified)>
<cfset temp = querySetCell(resultQuery, "Type", type)>
<cfset temp = querySetCell(resultQuery, "Attributes", attributes)>
<cfset temp = querySetCell(resultQuery, "Mode", mode)>
</cfloop>
<!---
Check whether recursing is required
--->
<cfif attributes.recurse>
<!---
Take a full listing, if a special search was used
--->
<cfif attributes.filter is not "*" AND attributes.filter is not "*.*">
<cfdirectory
action=list
directory=#attributes.directory#
name=dirList>
</cfif>
<!---
Iterate over the full directory listing to look for directories to
recurse into
--->
<cfloop query=dirList>
<!--- Make a special check for directories that are not . and ..--->
<cfif type is "Dir" and name is not "." and name is not "..">
<!-- Recurse into the directory-->
<CF_DirectoryList
directory="#attributes.directory##dirSep##name#"
filter=#attributes.filter#
recurse=true
resultQuery=resultQuery
appendToResultQuery=true>
</cfif>
</cfloop>
</cfif>
<!---
Set result in caller scope
--->
<cfset "Caller.#attributes.resultQuery#" = resultQuery>
<CFSETTING ENABLECFOUTPUTONLY="Yes">
<CFSET StudioDir = "C:\Program Files\Allaire\ColdFusion Studio 4.5\">
<CFSET SpectraTagsDir = "C:\Program Files\Allaire\Spectra\CustomTags\System">
<CFIF NOT FileExists("#StudioDir#Extensions\MarkUpTags.vtm")>
<CFOUTPUT>Please edit the template file CFATagChooser.cfm to change the directory
locations to reflect your Cold Fusion Studio Install.</CFOUTPUT><CFABORT>
</CFIF>
<CFIF NOT DirectoryExists("#SpectraTagsDir#")>
<CFOUTPUT>Please edit the template file TagChooser.cfm at line 9 to change the
directory location to reflect your installation of allaire spectra.</CFOUTPUT><CFABORT>
</CFIF>
<!--- Directory for Spectra System Custom Tags --->
<CFSET Dir="#SpectraTagsDir#">
<CF_DIRECTORYLIST directory="#Variables.Dir#" recurse="Yes" resultquery="fileList">
<CFSET stCategories = Structnew()>
<CFLOOP query="FileList">
<CFIF Len(FileList.Name) GT 4 AND FindNoCase(".cfm", FileList.Name,
Len(FileList.Name) -4) AND FindNoCase("CFA",FileList.Name,1)>
<CFSET TagName = RemoveChars(FileList.Name, Len(FileList.Name) -3,4)>
<CFSET TagPath = RemoveChars(FileList.Path,1,Len(Dir)+1)>
<!--- Cast the directory information into a structure hierarchy --->
<CFSET PathList = Replace(TagPath,"\",",","All")>
<CFLOOP from="1" to="#Evaluate(ListLen(Variables.PathList)-1)#"
index="i">
<CFSWITCH expression="#i#">
<CFCASE value="1"><!---
<CFSET TempArray = Evaluate("stCategories." &
ListGetAT(Variables.PathList,i) & ".TagArray")>--->
<CFIF StructKeyList(stCategories) DOES NOT CONTAIN
ListGetAt(Variables.PathList,i)>
<CFSET
"stCategories.#ListGetAt(Variables.PathList,i)#" = StructNew()>
<CFELSEIF i EQ ListLen(Variables.PathList)-1>
<CFIF StructKeyList(Evaluate("stCategories." &
ListGetAT(Variables.PathList,i))) DOES NOT CONTAIN "TagArray">
<CFSET
"stCategories.#ListGetAT(Variables.PathList,i)#.TagArray" = ArrayNew(1)>
<CFSET NextElement = 1>
<CFELSE>
<CFSET NextElement = ArrayLen("stCategories."
& ListGetAT(Variables.PathList,i) & ".TagArray") +1>
</CFIF>
<!---
<CFSET
"stCategories.#ListGetAt(Variables.PathList,i)#.TagArray[#NextElement#]" =
Variables.TagName>--->
</CFIF>
</CFCASE>
<CFCASE value="2">
<CFIF StructKeyList(Evaluate("stCategories." &
ListGetAt(Variables.PathList,i-1))) DOES NOT CONTAIN ListGetAt(Variables.Pathlist,i)>
<CFSET
"stCategories.#ListGetAt(Variables.PathList,i-1)#.#ListGetAt(Variables.PathList,i)#" =
StructNew()>
</CFIF>
<CFIF i EQ ListLen(Variables.PathList)-1>
<CFIF StructKeyList(Evaluate("stCategories." &
ListGetAt(Variables.PathList,i-1) & "." & ListGetAt(Variables.PathList,i))) DOES NOT
CONTAIN "TagArray">
<CFSET TempArray = ArrayNew(1)>
<CFSET Null =
ArrayAppend(TempArray,Variables.TagName)>
<CFSET
"stCategories.#ListGetAt(Variables.PathList,i-1)#.#ListGetAt(Variables.PathList,i)#.TagArray"
= TempArray>
<CFELSE>
<CFSET Null = ArrayAppend(TempArray,Variables.TagName)>
<CFSET
"stCategories.#ListGetAt(Variables.PathList,i-1)#.#ListGetAt(Variables.PathList,i)#.TagArray"
= TempArray>
</CFIF>
</CFIF>
</CFCASE>
<CFCASE value="3">
<CFIF StructKeyList(Evaluate("stCategories." &
ListGetAt(Variables.PathList,i-2) &"." & ListGetAT(Variables.PathList,i-1))) DOES NOT
CONTAIN ListGetAt(Variables.Pathlist,i)>
<CFSET
"stCategories.#ListGetAt(Variables.PathList,i-2)#.#ListGetAt(Variables.PathList,i-1)#.#ListGetAt(Variables.PathList,i)#"
= StructNew()>
</CFIF>
<CFIF i EQ ListLen(Variables.PathList)-1>
<CFIF StructKeyList(Evaluate("stCategories." &
ListGetAt(Variables.PathList,i-2) &"." & ListGetAT(Variables.PathList,i-1) & "." &
ListGetAt(Variables.PathList,i))) DOES NOT CONTAIN "TagArray">
<CFSET TempArray = ArrayNew(1)>
<CFSET Null =
ArrayAppend(TempArray,Variables.TagName)>
<CFSET
"stCategories.#ListGetAt(Variables.PathList,i-2)#.#ListGetAt(Variables.PathList,i-1)#.#ListGetAt(Variables.PathList,i)#.TagArray"
= TempArray>
<CFELSE>
<CFSET Null = ArrayAppend(TempArray,Variables.TagName)>
<CFSET
"stCategories.#ListGetAt(Variables.PathList,i-2)#.#ListGetAt(Variables.PathList,i-1)#.#ListGetAt(Variables.PathList,i)#.TagArray"
= TempArray>
</CFIF>
</CFIF>
</CFCASE>
</CFSWITCH>
</CFLOOP>
</CFIF>
</CFLOOP>
<CFOUTPUT>
<CAT CAPTION="Spectra Tags" DESC='A collection of more than <FONT
COLOR="FF0000"><B>100</B></FONT> Spectra tags.'><CFLOOP COLLECTION="#stCategories#"
ITEM="CAT1">
<CAT CAPTION="#CAT1#" ICON="Elements" DESC='#CAT1# Tags'><CFLOOP
COLLECTION="#Evaluate('stCategories.' & CAT1)#" ITEM="CAT2">
<CAT CAPTION="#CAT2#" ICON="Elements" DESC='#CAT2# Tags'><CFLOOP
COLLECTION="#Evaluate('stCategories.' & CAT1 & "." & CAT2)#" ITEM="CAT3">
<CFIF IsArray(Evaluate("stCategories." & CAT1 & "." & CAT2 & "." &
CAT3))><CFLOOP FROM="1" TO="#ArrayLen(Evaluate("stCategories." & CAT1 & "." & CAT2 &
"." & CAT3))#" INDEX="CAT4"><CFSET MyArray = Evaluate("stCategories." & CAT1 & "." &
CAT2 & "." & CAT3)><CFIF
FileExists("#url.outdir#\Spectratagsnew\#MyArray[CAT4]#.html")>
<E CAPTION="#MyArray[CAT4]#" VALUE='<#MyArray[CAT4]#'
HELPFILE='Docs/SpectraTagsNew/#MyArray[CAT4]#.html'/></CFIF></CFLOOP><CFELSE>
<CAT CAPTION="#CAT3#" ICON="Elements" DESC='#CAT3# Tags'><CFIF
IsArray(Evaluate("stCategories." & CAT1 & "." & CAT2 & "." & CAT3 &
".TagArray"))><CFSET MyArray2 = Evaluate('stCategories.' & CAT1 & "." & CAT2 & "." &
CAT3 & ".TagArray")><CFLOOP FROM="1" TO="#ArrayLen(MyArray2)#" INDEX="CAT5"><CFIF
FileExists("#url.outdir#\spectratagsnew\#MyArray[CAT5]#.html")>
<E CAPTION="#MyArray2[CAT5]#"
VALUE='<#MyArray2[CAT5]#'
HELPFILE='Docs/SpectraTagsNew/#MyArray[CAT5]#.html'/></CFIF>
</CFLOOP></CFIF></CAT></CFIF></CFLOOP>
</CAT></CFLOOP>
</CAT></CFLOOP>
</CAT></CFOUTPUT>
<CFSETTING ENABLECFOUTPUTONLY="No">
<CFSETTING SHOWDEBUGOUTPUT="No">
<CFSETTING ENABLECFOUTPUTONLY="Yes">
<CFSET ReferenceDir =
"D:\Inetpub\wwwroot\allaire\spectra\docs\Allaire_Spectra_Reference\02_System_and_App_Services\tier0tags03.htm">
<CFSET ReferenceURL =
"http://127.0.0.1/allaire/spectra/docs/Allaire_Spectra_Reference">
<CFSET StudioDir = "C:\Program Files\Allaire\ColdFusion Studio 4.5\">
<CFSET thisdir =
Replace(GetCurrentTemplatePath(),GetFileFromPath(GetCurrentTemplatePath()),'')>
<CFIF NOT
DirectoryExists(Replace(GetCurrentTemplatePath(),GetFileFromPath(GetCurrentTemplatePath()),'')
& '\output')>
<CFDIRECTORY ACTION="CREATE"
DIRECTORY="#thisdir#output">
</CFIF>
<!---
###############################################################################
Start: Get the urls for the spectra tag help files and put them into a list
###############################################################################
--->
<CFFILE ACTION="READ"
FILE="#ReferenceDir#"
VARIABLE="docs">
<CFSET GoodStuffStart = find("<p><div>",docs,1)>
<CFSET GoodStuffEnd = find("</div>",docs,GoodStuffStart)-GoodStuffStart>
<CFSET docs = mid(docs,GoodStuffStart,GoodStuffEnd)>
<CFSET DocUrlList = ''>
<CFLOOP CONDITION="1 IS 1">
<CFSET ThisUrlStart = FindNoCase('<a href="',docs,1)>
<CFIF Not ThisUrlStart>
<CFBREAK>
</CFIF>
<CFSET ThisUrlEnd = FindNoCase('##',docs,ThisUrlStart)-ThisUrlStart>
<CFSET ThisUrl = mid(docs,Evaluate(ThisUrlStart +11),Evaluate(ThisUrlEnd-11))>
<CFSET DocUrlList = ListAppend(DocUrlList,ThisUrl)>
<CFSET Docs = mid(docs,Evaluate(ThisUrlStart+10),Len(docs))>
</CFLOOP>
<!---
###############################################################################
End: Get the urls for the spectra tag help files and put them into a list
###############################################################################
--->
<!---
###############################################################################
Start: Grab the current tag insight list, remove any current spectra tags,
split the current list at the most likely alphabetical insertion
point for the spectra tags
###############################################################################
--->
<CFFILE ACTION="READ"
FILE="#StudioDir#UserData\TagList.dat"
VARIABLE="taglist">
<CFSET taglist =
REReplace(taglist,"#CHR(10)#(cfa_|CFA_)[[:alpha:]]+#CHR(13)#","","All")>
<CFSET taglist =
REReplace(taglist,"#CHR(13)##CHR(10)##CHR(13)##CHR(10)#","#CHR(13)##CHR(10)#","All")>
<CFSET taglist = REReplace(taglist,"[#CHR(13)#]+","#CHR(13)#","All")>
<CFSET tagliststart =
mid(taglist,1,find(chr(13),taglist,findnocase('center',taglist,1))+1)>
<CFSET taglistend = mid(taglist,findnocase('cfabort',taglist,1),len(taglist))>
<CFFILE ACTION="write"
FILE="#thisdir#output\taglist.dat"
OUTPUT="#tagliststart#"
ADDNEWLINE="No">
<!---
###############################################################################
End: Grab the current tag insight list, remove any current spectra tags,
split the current list at the most likely alphabetical insertion
point for the spectra tags
###############################################################################
--->
<!---
###############################################################################
Start: Do the same for tag completion as we just did for tag insight
###############################################################################
--->
<CFFILE ACTION="READ"
FILE="#StudioDir#UserData\TagComp.dat"
VARIABLE="tagcomp">
<CFSET tagcomp =
REReplace(tagcomp,"#CHR(10)#(cfa_|CFA_)[[:alpha:]>]+#CHR(13)#","","All")>
<CFSET tagcomp =
REReplace(tagcomp,"#CHR(13)##CHR(10)##CHR(13)##CHR(10)#","#CHR(13)##CHR(10)#","All")>
<CFSET tagcomp = REReplace(tagcomp,"[#CHR(13)#]+","#CHR(13)#","All")>
<CFSET tagcompstart =
mid(tagcomp,1,find(chr(13),tagcomp,findnocase('center',tagcomp,1)))>
<CFSET tagcompend = mid(tagcomp,findnocase('cfcase',tagcomp,1),len(tagcomp))>
<CFFILE ACTION="write"
FILE="#thisdir#output\tagcomp.dat"
OUTPUT="#tagcompstart#"
ADDNEWLINE="No">
<!---
###############################################################################
End: Do the same for tag completion as we just did for tag insight
###############################################################################
--->
<!---
###############################################################################
Start: Create the directories for the help files and the vtms
###############################################################################
--->
<CFIF NOT
DirectoryExists(Replace(GetCurrentTemplatePath(),GetFileFromPath(GetCurrentTemplatePath()),'')
& '\output\spectra')>
<CFDIRECTORY ACTION="CREATE"
DIRECTORY="#thisdir#output\spectra">
</CFIF>
<CFIF NOT
DirectoryExists(Replace(GetCurrentTemplatePath(),GetFileFromPath(GetCurrentTemplatePath()),'')
& '\output\SpectraTagsNew')>
<CFDIRECTORY ACTION="CREATE"
DIRECTORY="#thisdir#output\SpectraTagsNew">
</CFIF>
<!---
###############################################################################
End: Create the directories for the help files and the vtms
###############################################################################
--->
<CFSET OutlineProfile = "<OUTLINEPROFILE NAME=""Spectra - Tags With Help Files"">
<RECOGNIZEDTAGS>">
<CFLOOP LIST="#DocUrlList#" INDEX="i">
<CFHTTP URL="#ReferenceURL##i#" METHOD="GET" RESOLVEURL="false">
<CFSET Start = findNoCase('<H1>',CFHTTP.FileContent,1)+4>
<CFSET End = findNoCase('</H1>',CFHTTP.FileContent,1) - start>
<CFSET Helpfile = mid(CFHTTP.FileContent,start,len(cfhttp.filecontent))>
<CFSET FileName = mid(cfhttp.FileContent,start,end)>
<CFSET SyntaxStart = findNoCase('<pre>',HelpFile,1)+9>
<CFSET SyntaxEnd = findNoCase('</pre>',HelpFile,SyntaxStart)-SyntaxStart-6>
<CFSET TagSyntax = mid(HelpFile,SyntaxStart,SyntaxEnd)>
<CFSET TagSyntax = Trim(Replace(TagSyntax,filename,''))>
<CFSET DescStart = findNoCase('<p>',HelpFile,1)+3>
<CFSET DescEnd = findNoCase('</p>',HelpFile,DescStart)-DescStart>
<CFSET TagDescription = mid(HelpFile,DescStart,DescEnd)>
<CFSET VTMRows = ListLen(TagSyntax,'=')-1>
<CFSET Attributes = ''>
<CFSET Control = ''>
<CFSET AttributeList = ''>
<CFSET Count = 1>
<CFLOOP LIST="#TagSyntax#" DELIMITERS="#Chr(13)#" INDEX="i">
<CFIF find('=',i,1)>
<CFSET ThisAttribute =
REReplace(StripCR(Trim(mid(i,1,find('=',i,1)-1))),"<[/[:alpha:]]+>","","all")>
<CFSET ThisFriendlyAttribute =
REReplace(ThisAttribute,"\[|\]|<[/[:alpha:]]+>","","all")>
<CFSET ThisLabel =
REReplace(ListLast(AttributeList),"<[/[:alpha:]]+>","","all")>
<CFSET ThisFriendlyLabel =
REReplace(ThisLabel,"\[|\]|<[/[:alpha:]]+>","","all")>
<CFIF Len(ThisAttribute)>
<CFIF Count IS 1>
<CFSET Control = Control & '
<CONTROL NAME="lbl#ThisFriendlyAttribute#" TYPE="Label"
CAPTION="#ThisFriendlyAttribute#:" DOWN="10" RIGHT="10" WIDTH="150"/>
<CONTROL NAME="txt#ThisFriendlyAttribute#" TYPE="TextBox"
EDITABLE="Yes" ANCHOR="lbl#ThisFriendlyAttribute#" CORNER="NE" WIDTH="MAXIMUM"/>' &
Chr(13) & Chr(10)>
<CFELSE>
<CFSET Control = Control & '
<CONTROL NAME="lbl#ThisFriendlyAttribute#" TYPE="Label"
CAPTION="#ThisAttribute#:" ANCHOR="lbl#ThisFriendlyLabel#" CORNER="SW" DOWN=10
WIDTH="150"/>
<CONTROL NAME="txt#ThisFriendlyAttribute#" TYPE="TextBox"
EDITABLE="Yes" ANCHOR="lbl#ThisFriendlyAttribute#" CORNER="NE" WIDTH="MAXIMUM"/>' &
Chr(13) & Chr(10)>
</CFIF>
<CFSET Attributes = Attributes & '<ATTRIB NAME="#ThisAttribute#"
CONTROL="txt#ThisFriendlyAttribute#" TYPE="text"/>' & Chr(13) & Chr(10)>
<CFSET AttributeList = ListAppend(AttributeList,ThisAttribute)>
</CFIF>
</CFIF>
<CFSET Count = Count +1>
</CFLOOP>
<CFSET EditorHeight = Evaluate(20*count +40)>
<CFSET VTM1 ='<TAG NAME="#FileName#">
<EDITORLAYOUT HEIGHT="#EditorHeight#">
<CONTAINER NAME="MainTabDialog" TYPE="TabDialog" MAXWIDTHPADDING="0"
MAXHEIGHTPADDING="0" WIDTH="MAXIMUM" HEIGHT="MAXIMUM" VERTRESIZE="BODY"
HORIZRESIZE="BODY">
<CONTAINER NAME="TabPage1" TYPE="TabPage" CAPTION="#FileName# Tag">'>
<CFSET VTM2 = '
</CONTAINER>
</CONTAINER>
</EDITORLAYOUT>
<ATTRIBUTES>
'>
<CFSET VTM3 = "
</ATTRIBUTES>
<ATTRIBCATEGORIES>
<ATTRIBGROUP NAME=""Misc"" ELEMENTS=""#AttributeList#""/>
</ATTRIBCATEGORIES>
<TAGLAYOUT>
<WIZIF OPTIONLinearLayout EQ 'true'>
<WIZSET SpacingGap = ' ' >
<WIZELSE>
<WIZSET SpacingGap = Chr(13) & Chr(10) & ' ' >
</WIZIF>
<$${DefaultCase(""#filename#"")}<WIZIF 1 NEQ 1></WIZIF>">
<CFSET vtm4 = ''>
<CFLOOP LIST="#AttributeList#" INDEX="i">
<CFSET i1 = REReplace(i,"\[|\]|<[/[:alpha:]]+>","","all")>
<CFSET vtm4 = vtm4 & "
<WIZIF txt#i1# NEQ ''>$${SpacingGap}$${DefaultCase(""#i#"")}=""$${txt#i1#}""</WIZIF>">
</CFLOOP>
<CFSET vtm4 = vtm4 & "
<WIZIF TAGDATAUnknownAttributes NEQ
''>$${SpacingGap}$${TAGDATAUnknownAttributes}</WIZIF>>
</TAGLAYOUT><TAGDESCRIPTION>
<B>#filename#</b>
<P>
#TagDescription#
</TAGDESCRIPTION>
</TAG>">
<CFSET ThisVTM = VTM1 & Control & VTM2 & Attributes & VTM3 & VTM4>
<CFFILE ACTION="WRITE"
FILE="#thisdir#output\spectra\#filename#.vtm"
OUTPUT="#thisvtm#"
ADDNEWLINE="Yes">
<CFFILE ACTION="APPEND"
FILE="#thisdir#output\taglist.dat"
OUTPUT="#filename#"
ADDNEWLINE="Yes">
<CFSET StartNav = findNoCase('<div class="navigation">',HelpFile,1)>
<CFSET EndNav = findNoCase('</div',Helpfile,StartNav)>
<CFSET HelpFile = RemoveChars(HelpFile,StartNav,EndNav)>
<CFIF CFHTTP.FileContent Contains '</#filename#'>
<CFFILE ACTION="APPEND"
FILE="#thisdir#output\TagComp.dat"
OUTPUT="#mid(cfhttp.FileContent,start,end)#"
ADDNEWLINE="Yes">
<CFSET OutlineProfile = OutlineProfile & "
<RECOGNIZEDTAG NAME='#filename#' UNENCLOSEDTAGWARNING='yes'>">
<CFELSE>
<CFSET OutlineProfile = OutlineProfile & "
<RECOGNIZEDTAG NAME='#filename#'>">
</CFIF>
<CFIF NOT DirectoryExists("#thisdir#output\SpectraTagsNew\")>
<CFDIRECTORY ACTION="CREATE" DIRECTORY="#thisdir#output\SpectraTagsNew">
</CFIF>
<CFFILE ACTION="WRITE" FILE="#thisdir#output\SpectraTagsNew\#Filename#.html"
OUTPUT="#Helpfile#" ADDNEWLINE="No" NAMECONFLICT="OVERWRITE">
</CFLOOP>
<CFSET OutlineProfile = OutlineProfile & "
</RECOGNIZEDTAGS>
</OUTLINEPROFILE>">
<CFFILE ACTION="WRITE"
FILE="#thisdir#output\Spectra 1.01 Tags.vtm"
OUTPUT="#outlineprofile#"
ADDNEWLINE="NO">
<CFFILE ACTION="APPEND"
FILE="#thisdir#output\taglist.dat"
OUTPUT="#taglistend#"
ADDNEWLINE="No">
<CFFILE ACTION="APPEND"
FILE="#thisdir#output\tagcomp.dat"
OUTPUT="#tagcompend#"
ADDNEWLINE="No">
<CFFILE ACTION="READ"
FILE="#studiodir#\Extensions\MarkUpTags.vtm"
VARIABLE="MarkUpTags">
<CFSET StartSpectraTags = Find("<CAT CAPTION=""Spectra Tags",MarkUpTags,1)>
<CFIF StartSpectraTags>
<CFSET EndSpectraTags =
REFind("</CAT>[#Chr(13)##Chr(10)##Chr(32)#]+</CAT>[#Chr(13)##Chr(10)#]+</CAT>",MarkUpTags,StartSpectraTags)>
</CFIF>
<CFIF StartSpectraTags AND EndSpectraTags>
<CFSET MarkUpTags = RemoveChars(MarkUpTags,StartSpectraTags,Evaluate(EndSpectraTags -
StartSpectraTags +25))>
</CFIF>
<CFHTTP
URL="http://#CGI.Server_Name##Replace(CGI.Script_Name,GetFileFromPath(GetCurrentTemplatePath()),"")#TagChooser.cfm?outdir=#thisdir#output"
METHOD="GET" RESOLVEURL="false">
<CFFILE ACTION="WRITE"
FILE="#thisdir#output\MarkUpTags.vtm"
OUTPUT="#MarkUpTags##cfhttp.filecontent#"
ADDNEWLINE="No">
<CFSET Toolbar = "[ToolBar]
Version=4.0
AllowDelete=1
[ToolButtons]
Button0_Cmd=cmdCustom
Button0_ImageFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\webtop\images\register.bmp
Button0_ScriptFile=C:\Program Files\Allaire\ColdFusion Studio 4.5\webtop\reg_server.js
Button0_Hint=Register Spectra Application
Button1_Cmd=cmdSeparator
Button2_Cmd=cmdCustom
Button2_ImageFile=C:\Program Files\Allaire\ColdFusion Studio 4.5\webtop\images\type.bmp
Button2_ScriptFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\webtop\type_browser.js
Button2_Hint=Type Browser
Button3_Cmd=cmdCustom
Button3_ImageFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\webtop\images\object.bmp
Button3_ScriptFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\webtop\object_browser.js
Button3_Hint=Object Browser
Button4_Cmd=cmdCustom
Button4_ImageFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\webtop\images\typewizard.bmp
Button4_ScriptFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\webtop\type_creation.js
Button4_Hint=Type Creation Wizard
Button5_Cmd=cmdSeparator
Button6_Cmd=cmdCustom
Button6_ImageFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\webtop\images\autoupdate.bmp
Button6_ScriptFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\webtop\update_webtop.js
Button6_Hint=WebTop Auto-Update
Button7_Cmd=cmdSeparator
Button8_Cmd=cmdCustom
Button8_Caption=Oc
Button8_VtmFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\Extensions\TagDefs\spectra\cfa_contentobjectcreate.vtm
Button8_Hint=cfa_contentobjectcreate
Button9_Cmd=cmdCustom
Button9_Caption=Od
Button9_VtmFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\Extensions\TagDefs\spectra\cfa_contentobjectdelete.vtm
Button9_Hint=cfa_contentobjectdelete
Button10_Cmd=cmdCustom
Button10_Caption=O
Button10_VtmFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\Extensions\TagDefs\spectra\cfa_contentobject.vtm
Button10_Hint=cfa_contentobject
Button11_Cmd=cmdSeparator
Button12_Cmd=cmdCustom
Button12_Caption=Ha
Button12_VtmFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\Extensions\TagDefs\spectra\cfa_handler.vtm
Button12_Hint=cfa_handler
Button13_Cmd=cmdCustom
Button13_Caption=Pa
Button13_VtmFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\Extensions\TagDefs\spectra\cfa_page.vtm
Button13_Hint=cfa_page
Button14_Cmd=cmdCustom
Button14_Caption=Cn
Button14_VtmFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\Extensions\TagDefs\spectra\cfa_container.vtm
Button14_Hint=cfa_container
Button15_Cmd=cmdSeparator
Button16_Cmd=cmdCustom
Button16_Caption=Ap
Button16_VtmFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\Extensions\TagDefs\spectra\cfa_applicationInitialize.vtm
Button16_Hint=cfa_applicationInitialize
Button17_Cmd=cmdCustom
Button17_Caption=Se
Button17_VtmFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\Extensions\TagDefs\spectra\cfa_secure.vtm
Button17_Hint=cfa_secure
Button18_Cmd=cmdSeparator
Button19_Cmd=cmdCustom
Button19_Caption=Dv
Button19_VtmFile=C:\Program Files\Allaire\ColdFusion Studio
4.5\Extensions\TagDefs\spectra\cfa_dump.vtm
Button19_Hint=cfa_dump
Button20_Cmd=cmdCustom
Button20_Caption=Ds
Button20_TagStart=##Request.cfa.objectstore.dsn##
Button21_Cmd=tagCFComment">
<CFFILE ACTION="WRITE"
FILE="#thisdir#output\Allaire Spectra.tbr"
OUTPUT="#toolbar#"
ADDNEWLINE="NO">
<CFSET OBJECTSELECTOR = "<!--
Filename : _object_selector.htm
Last modified by : jmueller
Created : 06/01/1999 11:32:32
Last Updated : 09/01/1999 15:14:43
Comments :
-->
<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">
<HTML STYLE=""height:20em; width:50em"">
<HEAD>
<TITLE>Object Browser</TITLE>
<LINK REL=""stylesheet"" TYPE=""text/css"" HREF=""webtop.css"">
<SCRIPT LANGUAGE=""JavaScript"" SRC=""_webtop_utils.js""></SCRIPT>
<SCRIPT LANGUAGE=""JavaScript"" TYPE=""text/javascript"">
<!--
var app;
var wddxDeserializer;
var objHTTP;
var objCurServer, aTypes, objObjects;
var isBusy = false;
var tableHeader = ""<TABLE BORDER=1 WIDTH=\""100%\"" CELLSPACING=0
FRAME=\""void\"" RULES=\""cols\"" ><COL WIDTH=200><COL WIDTH=77><COL WIDTH=77><COL
WIDTH=118>"";
var tableFooter = ""</TABLE>"";
var aObs;
var VTOMPath = ""/allaire/spectra/system/vtom/"";
function window.onload() {
isBusy = true;
// initialize global objects
wddxDeserializer = new ActiveXObject(""WDDX.Deserializer.1"");
app = new ActiveXObject(""AllaireClientApp.TAllaireClientApp"");
objHTTP = app.HTTPProvider;
objHTTP.Agent = ""Allaire Spectra VTOM UI"";
// retrieve the active server info
objCurServer = getActiveServer("""" + app.AppPath);
if (objCurServer == null) {
isBusy = false;
window.close();
return;
}
curServer.innerText = objCurServer.getProp(""description"");
doConnect();
isBusy = false;
}
function window.onunload() {
objHTTP.Abort();
if (!isBusy) {
// destroy global objects
wddxDeserializer = null;
app = null;
aTypes = null;
objObjects = null;
objCurServer = null;
}
}
function doConnect() {
var bForce = false;
if (typeof(arguments[0]) != ""undefined"") bForce = arguments[0];
var cacheFile, strWDDX;
var cachePath = app.AppPath + ""webtop\\cache\\"" +
objCurServer.getProp(""appID"") + ""_typelist.xml"";
var objFileSys = new ActiveXObject(""Scripting.FileSystemObject"");
errorText.style.visibility = ""hidden"";
fillerText.style.visibility = ""visible"";
mainScreen.style.visibility = ""hidden"";
// Load XML from cache if appropriate
var bCached = false;
if (objFileSys.FileExists(cachePath) && !bForce) {
app.Wait(10);
var fileProps = objFileSys.GetFile(cachePath);
var MinMilli = 1000 * 60;
var HrMilli = MinMilli * 60;
var DyMilli = HrMilli * 24;
if ((new Date().getTime() - new
Date(Date.parse(fileProps.DateLastModified)).getTime()) < (HrMilli * 12)) {
// only read from cache if cache file is less than 12
hours old
cacheFile = objFileSys.OpenTextFile(cachePath, 1,
false);
strWDDX = cacheFile.ReadAll();
cacheFile.Close();
cacheFile = null;
if (strWDDX.length > 0 &&
strWDDX.indexOf(""wddxPacket"") > -1) bCached = true;
}
}
if (!bCached || bForce) {
// grab a list of the object types
with (objHTTP) {
URL = ""http://"" + objCurServer.getProp(""hostname"")
+ VTOMPath + ""typelist.cfm?appID="" + escape(objCurServer.getProp(""appID"")) +
""&username="" + escape(objCurServer.getProp(""username"")) + ""&password="" +
escape(unscramble(objCurServer.getProp(""password""))) + ""&system="" +
objCurServer.getProp(""system"");
GetAsync();
// Wait until done...
while (State != httpReady) {
app.Wait(100);
}
var strWDDX = ReceivedStreamAsString;
}
}
if (strWDDX.length > 0 && strWDDX.indexOf(""wddxPacket"") > -1) {
// Get the types from the packet
aTypes = wddxDeserializer.deserialize(strWDDX);
aTypes = new VBArray(aTypes).toArray();
errorText.style.visibility = ""hidden"";
fillerText.style.visibility = ""hidden"";
mainScreen.style.visibility = ""visible"";
if (!bCached || bForce) {
// Cache the downloaded types.
if (!objFileSys.FolderExists(app.AppPath +
""webtop\\cache"")) {
objFileSys.CreateFolder(app.AppPath +
""webtop\\cache"");
}
cacheFile = objFileSys.CreateTextFile(cachePath, true);
cacheFile.Write(strWDDX);
cacheFile.Close();
cacheFile = null;
}
updateDisplay();
} else {
fillerText.style.visibility = ""hidden"";
mainScreen.style.visibility = ""hidden"";
errorText.style.visibility = ""visible"";
alert(""Error connecting to the server \"""" +
objCurServer.getProp(""description"") + "".\"""");
}
objFileSys = null;
}
function updateDisplay() {
var i = 0;
var element;
var aTemp;
lstTypes.options.length = 0;
element = document.createElement(""OPTION"");
element.text = ""Select an Object Type"";
element.value = """";
lstTypes.add(element);
for (i=0; i < aTypes.length; i++) {
element = document.createElement(""OPTION"");
aTemp = new VBArray(aTypes[i]).toArray();
element.text = aTemp[1];
element.value = aTemp[0];
lstTypes.add(element);
}
objectTable.innerHTML = tableHeader + ""<TR><TD COLSPAN=4 ALIGN=CENTER
VALIGN=MIDDLE>Select an Object Type</TD></TR>"" + tableFooter;
}
function getObjects(typeID, sort) {
var i = 0;
var aTemp, element;
objectTable.innerHTML = tableHeader + ""<TR><TD COLSPAN=4 ALIGN=CENTER
VALIGN=MIDDLE>Loading...</TD></TR>"" + tableFooter;
// grab a list of the object types
with (objHTTP) {
URL = ""http://"" + objCurServer.getProp(""hostname"") +
VTOMPath + ""objectlist.cfm?appID="" + escape(objCurServer.getProp(""appID"")) +
""&typeID="" + escape(typeID) + ""&sort="" + sort + ""&username="" +
escape(objCurServer.getProp(""username"")) + ""&password="" +
escape(unscramble(objCurServer.getProp(""password"")));
GetAsync();
// Wait until done...
while (State != httpReady) {
app.Wait(100);
}
var strWDDX = ReceivedStreamAsString;
}
if (strWDDX.length > 0 && strWDDX.indexOf(""wddxPacket"") > -1) {
// Get the types from the packet
aObs = arrayCOM2JS(wddxDeserializer.deserialize(strWDDX));
drawTable();
} else {
objectTable.innerHTML = tableHeader + ""<TR><TD COLSPAN=4
ALIGN=CENTER VALIGN=MIDDLE>No objects of this type...</TD></TR>"" + tableFooter;
}
}
function insertUUID(source) {
var active = app.ActiveDocument;
active.InsertText(source, true);
window.close();
}
function copyUUID(source) {
window.clipboardData.setData(""text"", source);
app.SetStatusText(""UUID copied to clipboard."");
}
function drawTable() {
var strTable = new String();
var i;
if (aObs.length > 0) {
strTable = tableHeader;
var appID, username, password;
appID = escape(objCurServer.getProp(""appID""));
username = escape(objCurServer.getProp(""username""));
password =
escape(unscramble(objCurServer.getProp(""password"")));
if (typeof(arguments[0]) == ""undefined"") {
for (i=0; i < aObs.length; i++) {
strTable += ""<TR BGCOLOR=\"""" + ((i % 2 ==
0) ? ""##ffffff"" : ""##eeeecc"") + ""\"" TITLE=\"""" + aObs[i][0] + ""\"">"";
strTable += ""<TD WIDTH=100
STYLE=\""font-size:9pt\""><A HREF=\""http://"" + objCurServer.getProp(""hostname"") +
""/allaire/spectra/webtop/systemdesign/siteobjectdesigner/objectfinder/object.cfm?username=""
+ username + ""&password="" + password + ""&objectid="" + escape(aObs[i][0]) +
""&applicationID="" + appID + ""\"" TARGET=\""_blank\"">"" + ""<IMG
SRC=\""images/object.gif\"" HEIGHT=16 WIDTH=16 BORDER=0 ALIGN=\""absmiddle\""> "" +
((aObs[i][1].trim().length > 0) ? aObs[i][1] : ""[unlabeled]"") + ""</A></TD>"";
strTable += ""<TD WIDTH=220 ALIGN=right
STYLE=\""font-size:9pt\"" NOWRAP>"" + aObs[i][0] + ' <BUTTON name=""insert""
id=""insert"" accesskey=""i"" style=""font-size: 8pt;""
onClick=""insertUUID(aObs['+i+'][0])"" TITLE=""Insert UUID into current
document""><SPAN class=""hotkey"">I</SPAN>nsert</BUTTON> ' +""</TD>"";
strTable += ""<TD WIDTH=77 ALIGN=right
STYLE=\""font-size:9pt\"">"" + aObs[i][2] + ""</TD>"";
strTable += ""<TD WIDTH=77 ALIGN=right
STYLE=\""font-size:9pt\"">"" + aObs[i][3] + ""</TD>"";
strTable += ""<TD WIDTH=59 ALIGN=center
STYLE=\""font-size:9pt\"">"" + ((aObs[i][4].length > 0) ? aObs[i][4] : "" "") +
""</TD>"";
strTable += ""<TD WIDTH=59 ALIGN=center
STYLE=\""font-size:9pt\"">"" + ((aObs[i][5].length > 0) ? aObs[i][5] : "" "") +
""</TD></TR>"";
}
} else {
var aSorted = arguments[0];
for (i=0; i < aSorted.length; i++) {
strTable += ""<TR BGCOLOR=\"""" + ((i % 2 ==
0) ? ""##ffffff"" : ""##eeeecc"") + ""\"" TITLE=\"""" + aObs[aSorted[i]][0] + ""\"">"";
strTable += ""<TD WIDTH=100
STYLE=\""font-size:9pt\""><A HREF=\""http://"" + objCurServer.getProp(""hostname"") +
""/allaire/spectra/webtop/systemdesign/siteobjectdesigner/objectfinder/object.cfm?username=""
+ username + ""&password="" + password + ""&objectid="" + escape(aObs[aSorted[i]][0])
+ ""&applicationID="" + appID + ""\"" TARGET=\""_blank\"">"" + ""<IMG
SRC=\""images/object.gif\"" HEIGHT=16 WIDTH=16 BORDER=0 ALIGN=\""absmiddle\""> "" +
((aObs[aSorted[i]][1].trim().length > 0) ? aObs[aSorted[i]][1] : ""[unlabeled]"")
+""</A></TD>"";
strTable += ""<TD WIDTH=220 ALIGN=right
STYLE=\""font-size:9pt\"" NOWRAP>"" + aObs[aSorted[i]][0] + ' <BUTTON name=""insert""
id=""insert"" accesskey=""i"" style=""font-size: 8pt;""
onClick=""insertUUID(aObs['+aSorted[i]+'][0])"" TITLE=""Insert UUID into current
document""><SPAN class=""hotkey"">I</SPAN>nsert</BUTTON> ' +""</TD>"";
strTable += ""<TD WIDTH=77 ALIGN=right
STYLE=\""font-size:9pt\"">"" + aObs[aSorted[i]][2] + ""</TD>"";
strTable += ""<TD WIDTH=77 ALIGN=right
STYLE=\""font-size:9pt\"">"" + aObs[aSorted[i]][3] + ""</TD>"";
strTable += ""<TD WIDTH=59 ALIGN=center
STYLE=\""font-size:9pt\"">"" + ((aObs[aSorted[i]][4].length > 0) ? aObs[aSorted[i]][4]
: "" "") + ""</TD>"";
strTable += ""<TD WIDTH=59 ALIGN=center
STYLE=\""font-size:9pt\"">"" + ((aObs[aSorted[i]][5].length > 0) ? aObs[aSorted[i]][5]
: "" "") + ""</TD></TR>"";
}
}
strTable += tableFooter;
objectTable.innerHTML = strTable;
} else {
objectTable.innerHTML = tableHeader + ""<TR><TD COLSPAN=4
ALIGN=CENTER VALIGN=MIDDLE>No objects of this type...</TD></TR>"" + tableFooter;
}
}
function doSort(col, type, element) {
if (lstTypes.value.length > 0) {
window.setTimeout(""drawTable(arraySort2(aObs, "" + col + "", '"" +
type + ""', '"" + element.direction + ""'))"", 1);
element.direction = (element.direction == 'asc') ? 'desc' : 'asc';
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<DIV ID=""mainScreen"" STYLE=""position:absolute; width:100%; visibility:hidden"">
Type: <SELECT NAME=""lstTypes"" ID=""lstTypes"" onChange=""if
(this.value.length > 0) window.setTimeout('getObjects(\'' + this.value + '\',
\'label\')', 5)""></SELECT>
<BUTTON ID=""btnRefresh"" ACCESSKEY=""r"" onClick=""doConnect(true)""
STYLE=""font-size: 9pt; margin-left:180px; width:100px; height:22px""><SPAN
CLASS=""hotkey"">R</SPAN>efresh Types</BUTTON>
<HR SIZE=""1"" NOSHADE COLOR=""buttonshadow"">
<DIV ALIGN=""center"" WIDTH=""100%"">
<TABLE WIDTH=""600"" RULES=""none"" BORDER=""1"" CELLSPACING=""0""
STYLE=""background-color: white"">
<COL WIDTH=""100""><COL WIDTH=""220""><COL WIDTH=""77""><COL
WIDTH=""77""><COL WIDTH=""64""><COL WIDTH=""72"">
<THEAD STYLE=""background-color:menu; font-family: 'Arial',
'sans-serif'; font-size: 9pt; text-decoration: underline;"">
<TR>
<TH STYLE=""cursor:hand"" onClick=""doSort(1,
'string', this)"" direction=""asc"" TITLE=""Click to sort by label"">Label</TH>
<TH>ObjectID</TH>
<TH STYLE=""cursor:hand"" onClick=""doSort(2, 'date',
this)"" direction=""asc"" TITLE=""Click to sort by date created"">Created</TH>
<TH STYLE=""cursor:hand"" onClick=""doSort(3, 'date',
this)"" direction=""asc"" TITLE=""Click to sort by date last modified"">Updated</TH>
<TH STYLE=""cursor:hand"" onClick=""doSort(4,
'number', this)"" direction=""asc"" TITLE=""Click to sort by Active flag"">Active</TH>
<TH ALIGN=""left"" STYLE=""cursor:hand""
onClick=""doSort(5, 'number', this)"" direction=""asc"" TITLE=""Click to sort by
Published flag"">Published</TH>
</TR>
</THEAD>
<TBODY>
<TR><TD COLSPAN=6>
<DIV ID=""objectTable"" STYLE=""width:100%; height:200px;
overflow:auto;"">
</DIV>
</TD></TR>
</TBODY>
</TABLE>
</DIV>
</DIV>
<DIV STYLE=""position:absolute; margin-top:20em"">
<SPAN CLASS=""tinyLabel"">Active Application: <SPAN STYLE=""color:blue;cursor:hand""
onClick=""changeServer()"" ID=""curServer""></SPAN></SPAN>
</DIV>
<DIV ID=""fillerText"" ALIGN=""center""
STYLE=""width:100%;position:absolute;margin-top:9em"">
<SPAN ID=""loadMessage""
style=""font-size:14pt;font-weight:bold"">Loading...</SPAN>
</DIV>
<DIV ID=""errorText"" ALIGN=""center""
STYLE=""width:100%;position:absolute;margin-top:8em; visibility:hidden"">
<TABLE>
<TR>
<TD><IMG SRC=""images/warning.gif"" WIDTH=28 HEIGHT=28 BORDER=0
ALT=""""></TD>
<TD ID=""errorMsg""
style=""font-size:12pt;font-weight:bold""> Error contacting server.</TD>
</TR>
</TABLE>
<P><SPAN STYLE=""color:blue;cursor:hand"" onClick=""doConnect()"">Retry
Connection</SPAN></P>
</DIV>
</BODY>
</HTML>
">
<CFFILE ACTION="WRITE"
FILE="#thisdir#output\_object_selector.htm"
OUTPUT="#objectselector#"
ADDNEWLINE="NO">
<CFFILE ACTION="WRITE"
FILE="#thisdir#output\readme.txt"
output="
Create a backup of:
Program Files\Allaire\ColdFusion Studio 4.5\Extensions\MarkUptags.vtm
AND
Program Files\Allaire\ColdFusion Studio 4.5\UserData\tagcomp.dat
AND
Program Files\Allaire\ColdFusion Studio 4.5\UserData\TagList.dat
AND
Program Files\Allaire\ColdFusion Studio 4.5\UserData\ToolBars\Allaire Spectra.tbr
AND
Program Files\Allaire\ColdFusion Studio 4.5\webtop\_object_selector.htm
AND (If it already Exists)
Program Files\Allaire\ColdFusion Studio 4.5\Extensions\Outline Profiles\Spectra 1.01
Tags.vtm
then copy the new files to the same locations.
##########################################################################
Create a backup of the directory:
Program Files\Allaire\ColdFusion Studio 4.5\Extensions\TagDefs\Spectra\
Then copy the new spectra directory to the same location.
You will probably want to copy any files from the backup directory to the
new one, as the vtms created here are very basic and almost certainly not
as good as any which already exist. They were created primarily so that
tag insight would be available for all Spectra tags.
NOTE: Cold Fusion Studio tag insight doesn't seem to work for tags with
an underscore in the name. But you can still get attribute insight for
the tags once you have typed in the full name.
##########################################################################
Create a backup of the directory (If it exists):
Program Files\Allaire\ColdFusion Studio 4.5\Extensions\Docs\SpectraTagsNew
Then copy the new SpectraTagsNew directory to the same location.
##########################################################################
Close Cold Fusion Studio if it is open and re-open it. You should now have tag insight,
tag chooser, tag completion and tag editors for spectra tags as well as an enhanced
spectra toolbar.">
<CFOUTPUT>Complete!</CFOUTPUT>
<CFSETTING ENABLECFOUTPUTONLY="No">
<CFSETTING SHOWDEBUGOUTPUT="No">