Kildekode: ai_chatbot_loader.asp (Frontend Injector)
Skriptet fungerer som broen mellom Clubsite CMD og frontend widgeten. Ligger inkludert i bunnen av malen.
Mål og Intensjon
- Failsafe Design: Feil i databasetilkoblingen trykkes i hjel (On Error Resume Next) slik at frontend aldri krasjer.
- Betinget lasting: Henter innstillingene, sjekker at modulen er skrudd på (IsActive=1), og leser deretter fysisk av og injiserer HTML-koden inn via standardutskrift.
- DOM-manipulasjon: Erstatter templating-variablene i JS for konfigurasjon.
Kildekode
<%
' ---------------------------------------------------------
' AI Chatbot Loader - Clubsite CMS
' Henter innstillinger fra AI_Chatbot_Settings.
' Inkluderes i bunnen av nettsiden din før </body>
' ---------------------------------------------------------
Dim ai_rs, ai_SQL
Dim ais_Active, ais_ThemeColor, ais_BotName, ais_Welcome, ais_LogoUrl
' Sjekk først om tabellen finnes og hent status (for å ikke krasje om DB ikke er oppdatert ennå)
On Error Resume Next
ai_SQL = "SELECT * FROM AI_Chatbot_Settings"
Set ai_rs = dbConn.Execute(ai_SQL)
If Err.Number = 0 Then
If Not ai_rs.EOF Then
ais_Active = ai_rs("IsActive")
ais_ThemeColor = ai_rs("ThemeColor")
ais_BotName = ai_rs("BotName")
ais_Welcome = ai_rs("WelcomeMessage")
ais_LogoUrl = ai_rs("LogoUrl")
End If
End If
On Error GoTo 0
' Kun last inn widget hvis modulen er eksplisitt aktivert i Admin
If (ais_Active = "1" Or ais_Active = True) Then
Dim fso, fsFile, widgetContent
Set fso = Server.CreateObject("Scripting.FileSystemObject")
' Finn og les inn selve HTML widgeten
If fso.FileExists(Server.MapPath("/ai_chat_widget.html")) Then
Set fsFile = fso.OpenTextFile(Server.MapPath("/ai_chat_widget.html"), 1)
widgetContent = fsFile.ReadAll
fsFile.Close
Set fsFile = Nothing
' --- THEME REPLACEMENTS ---
' Vi søker etter defaults i ai_chat_widget.html og overstyrer med Admin-innhold
If ais_ThemeColor <> "" Then
' Overstyr CSS styles on the fly ved å legge inn CSS-variabler i en style block
Response.Write "<style>:root { --chatbot-theme: " & ais_ThemeColor & "; }</style>"
End If
If ais_BotName <> "" Then
' Bruk avansert replace for å bytte ut tekster inne i HTML-fila uten å endre kildekoden
widgetContent = Replace(widgetContent, "Skigk Bot", Server.HTMLEncode(ais_BotName), 1, -1, 1)
widgetContent = Replace(widgetContent, "Ski Golfklubb AI", Server.HTMLEncode(ais_BotName), 1, -1, 1)
End If
If ais_Welcome <> "" Then
widgetContent = Replace(widgetContent, "Hei! Jeg er SKI Golfklubb sin nye AI-assistent. Hvordan kan jeg hjelpe deg i dag?", Server.HTMLEncode(ais_Welcome), 1, -1, 1)
End If
' Print ut hele sulamitten
Response.Write vbCrLf & "<!-- AI CHATBOT START -->" & vbCrLf
Response.Write widgetContent
Response.Write vbCrLf & "<!-- AI CHATBOT END -->" & vbCrLf
Else
Response.Write "<!-- AI Chatbot Error: ai_chat_widget.html ble ikke funnet i root. -->"
End If
Set fso = Nothing
End If
If IsObject(ai_rs) Then
Set ai_rs = Nothing
End If
%>