Naviga Web
Docs Home
  • Introduction
  • Release notes
  • Starter kit
    • Introduction
    • Environment Variables
    • Makefile
    • Changelog
    • API
  • Feature: Advanced Search
    • User guide
    • Search Help
    • How to Setup
    • Technical Details
  • Developer documentation
    • Developer prerequisites
      • Developer hardware suggestions
      • Setup on Windows
      • Setup on Linux/Ubuntu
    • Getting started with development
      • Composer package management
      • Gulp and asset building (optional)
      • Git
      • Hosts file
      • Certificate
      • Initiate Naviga Web
      • Start Naviga Web
      • Bin scripts
      • Create theme
      • Environments
      • Deployment
      • Onboarding tasks
        • #0 - New site
        • #1 - Configuration
        • #2 - Front page
        • #3 - Content presentation
        • #4 - OC List
        • #5 - Content containers
        • #6 - Teaser template
        • #7 - Single article
        • #8 - Widget
        • #9 - Custom task
        • #10 - Feedback
    • Architecture
    • Paywall and authentication
      • CloudFront Paywall
      • Engage paywall
      • Lua Paywall (deprecated)
    • Project management: A typical project
    • Database dump
    • Debugging
    • Keep your project up-to-date
    • Gulp and Sass
    • Domain mapping
    • Widgets overview
  • Starter kit packages
    • Base package
      • Changelog
    • Boards plugin (EveryBoard)
      • Installation
      • Setup
      • Board Widgets
        • Linked board
        • Template board
        • Embed widget
        • OC List item
        • Content container
      • Teaser templates
      • Actions and filters
      • Export - import
      • Changelog
    • ContentSync plugin
      • Usage
      • Changelog
    • Drop In Plugins package
      • Changelog
    • Everyware plugin
      • Installation
      • Setup
      • Actions and filters
      • Fetching lists and their content
      • Sorting
      • Widgets
      • Changelog
    • Imengine package
      • Helper class: Imengine
      • Changelog
    • NewsML package
      • Idf Parser
      • Changelog
      • Usage
    • NGINX conf package
      • API
      • Changelog
      • Usage
    • Presentation Preview plugin
      • API
      • Changelog
      • Usage
    • Support package
      • Changelog
    • Theme EU resources package*
      • Changelog
    • Theme US resources package
      • Changelog
    • Twig package
      • Development
        • Filters
          • class_string
          • spacey
          • trim_array
        • Functions
          • php_function
          • php_method
          • render_classes
          • render_partial
        • Operators
          • contains
      • Helper classes
        • View
        • ViewSetup
      • Changelog
  • Widgets and component packages
    • Article List widget
      • Installation
      • Using Article List
      • Changelog
    • Menu handler
      • Usage
      • Changelog
    • Section Header widget
      • Changelog
    • Social media icons widget
      • Installation
      • Changelog
    • Google Analytics plugin
      • Set up Google Analytics
      • Most read widget
      • Changelog
    • Redirect Original URLs plugin
      • Installation
      • Changelog
    • Settings Parameters plugin
      • Installation
      • Usage
      • Changelog
  • Design and theme packages
    • Base theme 1
      • Changelog
    • Base theme 2
      • Colors
      • Fonts
      • Header
      • Menus
      • Pages with Board
      • Sidebars
      • Teaser layouts
      • Article page (text)
      • Article page (embeds)
      • Changelog
    • Example theme
      • Changelog
  • MU Plugins
    • Project Plugin
      • Installation
      • Changelog
    • Starter Package Catalyst
    • Concepts
      • Admin Pages
        • All Concepts
        • Add New Concept
        • Types
        • Errors
        • Concept duplicates
      • API
      • Console
      • Changelog
    • Network
      • Changelog
    • Cache Invalidator
      • Getting Started & WP admin
      • Implementation of Lua endpoint
      • Filters
      • Changelog
    • RSS Feeds
      • Setup
      • Administration pages
      • Changelog
  • Services
    • Imengine
    • Imengine documentation
    • Open Content
    • Writer Bookmarklet
Powered by GitBook
On this page
  • Registering a Twig directory
  • Extending Twig
  • Globals
  • Filters
  • Functions
  • Tests
  • Advanced Extension
  • Tags
  • Extensions
  • RuntimeLoader

Was this helpful?

  1. Starter kit packages
  2. Twig package
  3. Helper classes

ViewSetup

Helper class to set up Twig for use in the network.

Registering a Twig directory

Twig uses a file loader system for registering templates. You can register your own "templates directory" if you want to use Twig templates in your theme or plugin. To do this you'll need to provide a path to the templates and a namespace.

ViewSetup::getInstance()->registerTwigFolder('myNamespace', __DIR__ . '/src/templates/');

You'll then be able to use your templates through your namespace using a path relative to the provided path when rendering with View:

# To render the file "/src/templates/page.twig"
View::render('@myNamespace/page');

# or
 
# To render the file "/src/templates/some-path/page.twig"
View::render('@myNamespace/some-path/page');

You can also use the namespace to include and extend templates.

{% raw ‰}

<div data-gb-custom-block data-tag="extends" data-0='@myNamespace/page.twig'></div>

<div data-gb-custom-block data-tag="include" data-0='@myNamespace/some-path/page-part.twig'></div>
{% endraw ‰}

Extending Twig

ViewSetup extends this way of extending Twig.

Globals

    ViewSetup::getInstance()->addGlobal(string $name, $value);

Filters

    ViewSetup::getInstance()->addFilter(string $name, $callable, array $options);

We instantiate a \Twig\TwigFilter class for you so you need to provide the data for that.

Functions

    ViewSetup::getInstance()->addFunction(string $name, $callable, array $options);

We instantiate a \Twig\TwigFunction class for you so you need to provide the data for that.

Tests

    ViewSetup::getInstance()->addTest(string $name, $callable, array $options);

We instantiate a \Twig\TwigTest class for you so you need to provide the data for that.

Advanced Extension

We also offer support for the more advanced ways of extending Twig.

Tags

    ViewSetup::getInstance()->addTokenParser(Twig\TokenParser\TokenParserInterface $parser);

Extensions

    ViewSetup::getInstance()->addRuntimeLoader(Twig\RuntimeLoader\RuntimeLoaderInterface $loader);

RuntimeLoader

    ViewSetup::getInstance()->addRuntimeLoader(Twig\RuntimeLoader\RuntimeLoaderInterface $loader);
PreviousViewNextChangelog

Last updated 3 years ago

Was this helpful?

Twig offers multiple ways to be extended, read more about them in their .

See Twig documentation

See Twig documentation

See Twig documentation

See Twig documentation

See Twig documentation

See Twig documentation

See Twig documentation

documentation
here
here
here
here
here
here
here