'Option Explicit
Dim courseToConvert, objFSO, scoFolder, lineFromLessonData, lessonTitle, htmlPageText, pageTitleFile, fileWriteLog, htmlPageCounter, scoFolderCounter, lessonCounter, lessonDatCounter, modDataSeed, modDataEnd, lessonTitleForMod, pageTitleFileLoad, dataScoName
modDataSeed = "<?xml version=""1.0"" encoding=""ISO-8859-1""?>" & vbCrLf & "<popups>" & vbCrLf & "<course_name>Civilian Cyber Fundamentals Course</course_name>" & vbCrLf & "<defaultBlockTitle></defaultBlockTitle>" & vbCrLf
modDataEnd = "</popups>"
Dim titleArrInt
Dim lessonTitleArr
Dim pageNameArrInt
lessonTitleArr = Array(0)
titleArrInt = 0
pageNameArrInt = 0
lessonDatCounter = 0
'regexForContDiv = "<div id=""page_content_top_stage\b[^>]*>(.*?)</div>"
htmlPageCounter = 0
scoFolderCounter = 0
lessonCounter = 0
'iSCONum = 1
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set thisfolder = objFSO.GetFolder(".")
Set outPutFolder = objFSO.CreateFolder(thisfolder & "\outPutFolder")
Set courseToConvert = objFSO.GetFolder(thisfolder & "\ccfcOld")
'Set testLog = objFSO.CreateTextFile(thisfolder & "\log.txt", True)
ShowSubfolders objFSO.GetFolder(courseToConvert)
Sub ShowSubFolders(Folder)
Dim iHTMLFileNum, sHTMLSource, sHTMLDest
For Each Subfolder in Folder.SubFolders
'scoName = "sco_" & Right("00" & iSCONum, 2)
If Left(Subfolder.Name, 4)= "sco_" Then 'Now we are in the sco folder
scoFileCheck1 = Right(Subfolder.Name, 2)
If Left(scoFileCheck1, 1) = 0 Then
scoFileCheck1 = Right(scoFileCheck1, 1)
End If
'iSCONum = iSCONum + 1
Set scoFolder = objFSO.GetFolder(Subfolder)
'Set htmlPageFiles = scoFolder.Files
If objFSO.FileExists(scoFolder &"\_lesson_data.txt") Then 'Here we grab the lesson data file which lists the lessons
Set lessonDataFile = objFSO.GetFile(scoFolder &"\_lesson_data.txt") 'Read the 'lesson_data.txt' file, use it to create lesson folders
Set lessonDataStream = lessonDataFile.OpenAsTextStream(ForReading, TristateUseDefault)
'Now get the page titles for this sco
If objFSO.FileExists(scoFolder &"\_page_titles_01.txt") Then
pageTitleFileLoad = "\_page_titles_01.txt"
ElseIf objFSO.FileExists(scoFolder &"\_page_titles_02.txt") Then
pageTitleFileLoad = "\_page_titles_02.txt"
ElseIf objFSO.FileExists(scoFolder &"\_page_titles_03.txt") Then
pageTitleFileLoad = "\_page_titles_03.txt"
ElseIf objFSO.FileExists(scoFolder &"\_page_titles_04.txt") Then
pageTitleFileLoad = "\_page_titles_04.txt"
ElseIf objFSO.FileExists(scoFolder &"\_page_titles_05.txt") Then
pageTitleFileLoad = "\_page_titles_05.txt"
ElseIf objFSO.FileExists(scoFolder &"\_page_titles_06.txt") Then
pageTitleFileLoad = "\_page_titles_06.txt"
Else
msgbox "Can't find a page title file."
End If
Do While lessonDataStream.AtEndOfStream <> True
lineFromLessonData = lessonDataStream.ReadLine
If InStr(lineFromLessonData, scoFileCheck1 & "_name=") Then
'Create a folder with this lesson name
lessonTitle = Mid(lineFromLessonData, InStr(lineFromLessonData, "=") + 1)
lessonTitle = Left(lessonTitle, Len(lessonTitle) - 1)
'lessonTitleForMod
'<page
' url="lessonTitle/pages/pageTitle.html"
' pageTitle=pageTitle
'/>
lessonTitle = LCase(lessonTitle)
lessonTitle = Replace(lessonTitle, " ", "_")
If Not objFSO.FolderExists(outPutFolder & "\" & lessonTitle) Then 'If lesson folder does not exist, create it and populate
Set lessonFolder = objFSO.CreateFolder(outPutFolder & "\" & lessonTitle)
Set pagesFolder = objFSO.CreateFolder(thisfolder & "\outPutFolder\" & lessonTitle & "\pages")
End If
If objFSO.FileExists(scoFolder & pageTitleFileLoad) Then 'Grab the page titles file, use to rename html files
Set pageTitleFile = objFSO.GetFile(scoFolder & pageTitleFileLoad)
'msgbox pageTitleFile
Set pageTitleStream = pageTitleFile.OpenAsTextStream(ForReading, TristateUseDefault)
iHTMLFileNum = 0
Do While pageTitleStream.AtEndOfStream <> True
'msgbox Subfolder & "*******"
lineFromPageTitles = pageTitleStream.ReadLine
If Len(lineFromPageTitles) > 0 Then
lineFromPageTitles = Mid(lineFromPageTitles, InStr(lineFromPageTitles, "=")+1)
lineFromPageTitles = LCase(Left(lineFromPageTitles, Len(lineFromPageTitles) - 1))
lineFromPageTitles = Replace(lineFromPageTitles, " ", "_")
lineFromPageTitles = LCase(Left(lineFromPageTitles, Len(lineFromPageTitles) - 1))
'msgbox Subfolder & " ***AND*** " & lineFromPageTitles & " ***AND*** " & lessonTitle
'msgbox iHTMLFileNum & " Folder " & Subfolder
iHTMLFileNum = iHTMLFileNum + 1
sHTMLSource = scoFolder & "\page_" & Right("00" & iHTMLFileNum, 2) & ".html"
sHTMLDest = outPutFolder & "\" & lessonTitle & "\pages\" & lineFromPageTitles & ".html"
If Not lessonDataStream.AtEndOfStream Then
lineFromLessonData = lessonDataStream.ReadLine
If InStr(lineFromLessonData, "_url=") Then
dataScoName = Mid(lineFromLessonData, InStr(lineFromLessonData, "_url=")+5)
dataScoName = Left(dataScoName, Len(dataScoName) - 1)
'msgbox Subfolder.Name & " In " & lineFromLessonData & " AND " & dataScoName
End If
End If
'msgbox Subfolder & " IS IT " & sHTMLSource & " AND " & dataScoName & " DEST " & sHTMLDest & " AND " & iHTMLFileNum
fileWriteLog = fileWriteLog & sHTMLSource & " AND " & sHTMLDest & vbCrLf & vbCrLf
objFSO.CopyFile sHTMLSource, sHTMLDest
'If Subfolder.Name = dataScoName Then
'End If
End If
Loop
'msgbox "out of page title loop"
'objFSO.CopyFolder Folder & "\" & Subfolder.name, thisfolder & "\outPutFolder\" & lessonTitle
End If
End If
Loop
'titleArrInt = 0
'End If
End If
End If 'End the sco folder If
ShowSubFolders Subfolder
Next
'Set htmlPageLog = objFSO.CreateTextFile(thisfolder & "\htmlPageLog.txt", True)
'htmlPageLog.Write fileWriteLog
'htmlPageLog.Close
End Sub
msgbox "HTML Pages: " & htmlPageCounter & vbCrLf & " SCO Folders: " & scoFolderCounter & vbCrLf & vbCrLf & " Lesson Data: " & lessonDatCounter
Set htmlPageLog = objFSO.CreateTextFile(thisfolder & "\htmlPageLog.txt", True)
htmlPageLog.Write fileWriteLog
htmlPageLog.Close