Twig-mallipohjat
Chamilo käyttää Twigiä palvelinpuolella renderöitäville sivuille. Mallit sijaitsevat hakemistossa src/CoreBundle/Resources/views/ ja niihin viitataan nimitilan etuliitteellä @ChamiloCore/ (esim. @ChamiloCore/Layout/base-layout.html.twig).
Ylimmän tason templates/-hakemistoa ei ole — kaikki Twig-mallit ovat hakemistossa src/CoreBundle/Resources/views/.
Miten Twig ja Vue toimivat rinnakkain
Useimmat sivut noudattavat tätä kulkua:
Symfony-ohjain renderöi Twig-mallin, joka laajentaa asettelua.
Asettelu sisällyttää tiedoston
vue_setup.html.twig, joka tuottaa elementin<div id="app">ja injektoi ajonaikaiset globaalit (window.user,window.breadcrumbjne.) tiedostonvue_js_setup.html.twigkautta.Vue kiinnittyy elementtiin
#appja hoitaa kaiken käyttöliittymän renderöinnin sen sisällä.Vue-sovellus kommunikoi taustajärjestelmän kanssa REST-rajapinnan kautta.
Vanhoilla sivuilla, joita ei ole vielä siirretty Vueen, Symfony renderöi koko sivun HTML:n Twigin kautta ja sisältö sijoitetaan elementtiin #sectionMainContent. Vue kiinnittyy silti (tarjoten sivupalkin ja yläpalkin kehyksen), mutta pääsisältöalue on palvelimella renderöityä HTML:ää.
Asettelumallit
Kaikki asettelut laajentavat mallia @ChamiloCore/Layout/base-layout.html.twig, joka tarjoaa rakenteen <html>, <head> ja <body>. Käytettävissä olevat asetteluvariantit:
Layout/base-layout.html.twig
Juurimalli — <html>-kehys, tuo Macrot, tuottaa <head>- ja <body>-osat
Layout/layout.html.twig
Vakioasettelu sivupalkilla, yläpalkilla ja sisältöalueella
Layout/layout_one_col.html.twig
Yksipalstainen asettelu (ei sivupalkkia)
Layout/layout_two_col.html.twig
Kaksipalstainen asettelu
Layout/layout_content.html.twig
Vain sisältöä sisältävä kääre
Layout/layout_empty.html.twig
Tyhjä asettelu minimaalisella kehyksellä
Layout/no_layout.html.twig
Ei ylätunnistetta/alatunnistetta; sisältö menee suoraan <body>-elementtiin
Layout/no_layout_scorm.html.twig
Paljas asettelu SCORM-sisältökehyksille
Layout/blank.html.twig
Täysin tyhjä sivu
Layout/skill_layout.html.twig
Asettelu taitopyöräsivulle
Keskeiset osamallit
Layout/head.html.twig
<head>-sisältö: meta-tunnisteet, kaikki Encore CSS -merkinnät, teeman colors.css, vanhat JS-merkinnät, OpenGraph-/Twitter-tunnisteet
Layout/foot.html.twig
Body-osan loppu: Vuen JS-aloituspiste, tracking.footer_extra_content-injektio
Layout/vue_setup.html.twig
Tuottaa elementin <div id="app"> ja sisällyttää tiedoston vue_js_setup.html.twig
Layout/vue_js_setup.html.twig
Injektoi window.user, window.breadcrumb, window.languages jne.
Layout/cookie_banner.html.twig
GDPR-evästebanneri
Layout/footer.html.twig
Sivun alatunnistepalkki
Layout/course_navigation.html.twig
Kurssityökalujen navigointipolku
Webpack Encore -integraatio
head.html.twig lataa CSS:n kaikille merkinnöille; foot.html.twig lataa Vuen JS-paketin:
Vanhat JS-merkinnät (legacy_app, legacy_lp jne.) ladataan <head>-osassa, koska vanhat PHP-sivut edellyttävät niiden olevan käytettävissä ennen DOM:n valmiutta.
Macrot
Uudelleenkäytettävät Twig-macrot ovat hakemistossa Macros/ ja ne tuodaan tiedoston base-layout.html.twig alussa:
Macros/box.html.twig
Sisältölaatikon apufunktiot
Macros/actions.html.twig
Toimintopainikkeiden renderöinti
Macros/buttons.html.twig
Painikkeiden HTML-apufunktiot
Macros/headers.html.twig
Sivun otsikon apufunktiot
Macros/image.html.twig
Kuvien renderöinnin apufunktiot
Macros/modals.html.twig
Modaalidialogien apufunktiot
Käyttö missä tahansa mallissa, joka laajentaa base-layout.html.twig-mallia:
Mukautetut Vue-mallit
Chamilo tukee asennuskohtaisia Vue-sivujen ohituksia ympäristömuuttujan APP_CUSTOM_VUE_TEMPLATE kautta. Kun se on asetettu, Webpack-koonti paljastaa vakion ENV_CUSTOM_VUE_TEMPLATE DefinePlugin-laajennuksen kautta, ja Vue-reititin tuo ehdollisesti ohituskomponentteja hakemistosta var/vue_templates/.
Nykyiset ohitussijainnit:
Vain hakemistossa var/vue_templates/ olevat tiedostot ohitetaan — kaikki muut sivut ja komponentit käyttävät ytimen alkuperäisiä.
Twig-funktioiden viite
Keskeiset Twig-funktiot, jotka ovat käytettävissä kaikissa mallipohjissa (rekisteröity ChamiloExtension-laajennuksessa):
chamilo_settings_get('ns.key')
Lue alustan asetus
chamilo_settings_has('ns.key')
Tarkista, onko asetus olemassa
chamilo_settings_all()
Hae kaikki asetukset taulukkona
theme_asset('path')
URL aktiivisen teeman resurssiin
theme_asset_link_tag('path')
<link>-tunniste teeman CSS-tiedostolle
theme_asset_script_tag('path')
<script>-tunniste teeman JS-tiedostolle
theme_asset_base64('path')
Base64-data-URI teeman resurssille
theme_logo('header'|'email')
URL ensisijaiseen logoon
is_allowed_to_edit(...)
Käyttöoikeuden tarkistuksen apufunktio
Päivitetty viimeksi
Oliko tästä apua?