Takaisin hallintapaneeliin

Dokumentaatio

Opi käyttämään Asyntai

Asyntai AI -chatbotin lisääminen SilverStripeen

Vaiheittainen opas SilverStripe CMS:lle

Hae upotuskoodi

Vaihe 1: Hanki upotuskoodisi

Siirry ensin Asyntai-hallintapaneeliin ja vieritä alas "Upotuskoodi"-osioon. Kopioi yksilöllinen upotuskoodisi, joka näyttää tältä:

<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>

Huomautus: Yllä oleva koodi on vain esimerkki. Sinun on kopioitava oma yksilöllinen upotuskoodisi Hallintapaneelistasi, sillä se sisältää henkilökohtaisen widget-tunnuksesi.

Vaihe 2: Lisää SilverStripe-mallitiedostoon (suositeltu)

Yksinkertaisin tapa lisätä chatbot SilverStripe-sivustollesi on muokata teemasi päämallitiedostoa suoraan:

  1. Avaa teemasi mallitiedosto (esim. themes/yourtheme/templates/Page.ss)
  2. Lisää upotuskoodi juuri ennen sulkevaa </body>-tagia:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script> </body> </html>
  1. Tallenna tiedosto ja tyhjennä SilverStripe-välimuisti lisäämällä ?flush=1 sivustosi URL-osoitteeseen

Vinkki: SilverStripe käyttää .ss-mallitiedostoja mallien periytymisjärjestelmällä. Skriptin sijoittaminen perus-Page.ss-mallitiedostoon varmistaa, että chatbot näkyy sivustosi jokaisella sivulla. Jos teemasi käyttää Includes-kansiota, voit myös sijoittaa skriptin jaettuun sisällytystiedostoon.

Vaihtoehtoinen menetelmä 1: Requirements-luokan käyttö kontrollerissa

SilverStripe tarjoaa Requirements-luokan JavaScript- ja CSS-riippuvuuksien hallintaan ohjelmallisesti. Tämä on suositeltu lähestymistapa kehittäjille:

  1. Avaa app/src/PageController.php (tai sivukontrolleritiedostosi)
  2. Käytä init()-metodissa Requirements::customScript()-funktiota widgetin dynaamiseen lataamiseen:
use SilverStripe\View\Requirements; class PageController extends \SilverStripe\CMS\Controllers\ContentController { protected function init() { parent::init(); Requirements::customScript(<<<JS var script = document.createElement('script'); script.src = 'https://asyntai.com/static/js/chat-widget.js'; script.setAttribute('data-asyntai-id', 'YOUR_WIDGET_ID'); script.async = true; document.head.appendChild(script); JS); } }
  1. Tallenna tiedosto ja tyhjennä välimuisti vierailemalla osoitteessa yourdomain.com?flush=1

Huomautus: Requirements-luokka on SilverStripen vakiotapa sisällyttää skriptejä ja tyylitiedostoja. Requirements::customScript() tulostaa inline-JavaScriptiä. Tämä menetelmä varmistaa, että widget ladataan jokaisella PageControllerin käsittelemällä sivulla.

Vaihtoehtoinen menetelmä 2: Requirementsin käyttö mallitiedostossa

Voit myös käyttää SilverStripen mallisyntaksia JavaScript-tiedostojen vaatimiseen suoraan .ss-mallitiedostossasi:

  1. Avaa teemasi mallitiedosto (esim. themes/yourtheme/templates/Page.ss)
  2. Lisää seuraava mallitiedoston loppuun, ennen </body>-tagia:
<% require javascript("https://asyntai.com/static/js/chat-widget.js") %> <script> document.addEventListener('DOMContentLoaded', function() { var scripts = document.querySelectorAll('script[src*="chat-widget.js"]'); scripts.forEach(function(s) { s.setAttribute('data-asyntai-id', 'YOUR_WIDGET_ID'); }); }); </script> </body>

Vinkki: <% require %>-syntaksi on SilverStripen mallitason tapa sisällyttää resursseja. Huomaa, että tämä menetelmä ei natiivisti tue mukautettujen data-attribuuttien lisäämistä script-tagiin, joten lisäämme pienen alustuspätkän widget-tunnuksen asettamiseksi.

Vaihtoehtoinen menetelmä 3: SilverStripe-konfiguraation käyttö (YAML)

Konfiguraatiopohjaiseen lähestymistapaan voit käyttää SilverStripen YAML-konfiguraatiota globaalien vaatimusten lisäämiseen:

  1. Avaa tai luo tiedosto app/_config/app.yml
  2. Lisää konfiguraatio widgetin sisällyttämiseksi mukautetun laajennuksen tai kontrollerin avulla:
# app/_config/app.yml --- Name: asyntai-chatbot After: '#rootroutes' --- SilverStripe\Core\Injector\Injector: AsyntaiChatbotExtension: class: App\Extensions\AsyntaiChatbotExtension
  1. Luo laajennustiedosto app/src/Extensions/AsyntaiChatbotExtension.php:
namespace App\Extensions; use SilverStripe\Core\Extension; use SilverStripe\View\Requirements; class AsyntaiChatbotExtension extends Extension { public function onAfterInit() { Requirements::customScript(" var script = document.createElement('script'); script.src = 'https://asyntai.com/static/js/chat-widget.js'; script.setAttribute('data-asyntai-id', 'YOUR_WIDGET_ID'); script.async = true; document.head.appendChild(script); "); } }
  1. Ota laajennus käyttöön PageControllerissasi tiedostossa app/_config/app.yml:
PageController: extensions: - App\Extensions\AsyntaiChatbotExtension
  1. Suorita ?flush=1 rakentaaksesi konfiguraatiovälimuistin uudelleen

Huomautus: YAML-konfiguraation ja laajennusten käyttö on modulaarisin SilverStripe-lähestymistapa. Se pitää chatbot-integraatiosi erillään pääkontrollerilogiikasta ja tekee käyttöönotosta ja poistosta helppoa ilman koodimuutoksia.

Vaihe 3: Vahvista asennus

Koodin lisäämisen ja SilverStripe-välimuistin tyhjentämisen jälkeen avaa sivustosi uudessa selaimen välilehdessä. Chat-widget-painikkeen pitäisi näkyä oikeassa alakulmassa. Napsauta sitä varmistaaksesi, että se avautuu ja toimii oikein.

Etkö näe widgetiä? Varmista, että tyhjensit välimuistin lisäämällä ?flush=1 sivustosi URL-osoitteeseen. Tarkista, että korvasit YOUR_WIDGET_ID todellisella widget-tunnuksellasi hallintapaneelista. Tyhjennä selaimen välimuisti tai tarkastele incognito-tilassa. Avaa selaimen konsoli (F12) tarkistaaksesi mahdolliset JavaScript-virheet. Jos käytät Requirements-luokkaa, varmista, että PageControllerin init()-metodia kutsutaan oikein.