Advisory board city list


{{ advisory_board_city_list(
  {
    amount: null,
    amount_per_page: 12,
    cols: 3,
    search: false,
    paginated: false,
  }
 ) 
}}

Advisory board tender website list


{{ advisory_board_city_tender_website_list(
  {
    amount: null,
    amount_per_page: 12,
    cols: 3
  }
 ) 
}}

Advisory board member list


{{ advisory_board_member_list(
  {
    amount: 80,
    amount_per_page: 12,
    cols: 3,
  }
 ) 
}}

Advisory board solution list


{{ advisory_board_solution_list(
  {
    board: null,
    amount: null,
    amount_per_page: 12,
    cols: 3,
    search: false,
    paginated: false,
  }
 ) 
}}

Article

  • id (optional): id of the Article

{{ article(
  {
    id: 1234
  }
 ) 
}}

Calendar

The calendar handler shows a list of items from the calendar

which: upcoming (default), past, all, highlight

{{ calendar(
    {
      cols: 3,
      paginated: true,
      amount: 8,
      amount_per_page: 9,
      search: false,
      which: 'upcoming',
      types: [32]
    }
  )
}}

Amount cannot be combined with paginated

Country map

The extension country_map prints a map of the world or europe and selected country can be highlighted

The following options can be used

  • countries (array): Country objects
  • color_min (string): HEX code of the unselected country
  • color_max (string): HEX code of the selected country
  • height (string): Height of the map
  • width (string): Width of the map
  • world (boolean): Set to true if the map of the world should be shown
{{ country_map({
    countries: {
        country1,
        country2,
    },
    color_min: '#d9d9d9',
    color_max: '#000082',
    height: '600px',
    width: '100%,
    world: false    
    }) 
}}

Country funders

The extension country_funders shows a list of PA of the country (only when visible on website is turned on)

The following options can be used

  • country (string): ISO3 code of the country of which information should be shown. If no values is given the country will be taken from the URL (docref)
{{ country_funders({
  'country' : 'iso3',
  'cols' : 4,
  }) }}

Country videos

The extension country_videos shows a list of recorded funding videos of the country

The following options can be used

  • country (string): ISO3 code of the country of which information should be shown. If no values is given the country will be taken from the URL (docref)
{{ country_videos({
  'country' : 'iso3',
  'cols' : 2, 
  }) }}

Country page

The extension country_page renders the information from the country (special) page

The following options can be used

  • country (string): ISO3 code of the country of which information should be shown. If no values is given the country will be taken from the URL (docref)
{{ country_page({
  'country' : 'iso3' 
  }) }}

Country list

The country_list extension renders a list of countries. The following options can be used:

  • is_itac: boolean, if true only ITAC countries are shown
{{ country_list({
  'is_itac': false 
  }) }}

Get country

The get_country extension returns an object with information about the country in the URL

{% set countryData = get_country() %}

The countryData object has the following properties:

  • country: The country object
  • projects: Amount of projects
  • partners: Amount of partners
  • personYears: Amount of person years
  • costs: Amount of costs
  • impactStories: amount of impact stories

These properties can be used in the page like this:

Country {{ countryData.country.country }} has {{ countryData.partners }} partners

A default page for a country could look like this


{% set countryData = get_country() %}
{% set country = countryData.country %}

{% do headTitle().append(country.country) %}

<div class="container">
    <div class="row">
        <div class="col-md-4">
            <h1 class="display-1">{{ country.country }}</h1>

            <h2>{{ translate("txt-country-information") }}</h2>
            <a href="/participating-partners.html?facet%5Bcountry%5D%5Bvalues%5D%5B%5D={{ country.country }}&query=">{{ countryData.partners }} {% if countryData.partners == 1 %}{{ translate("txt-partner")|lower }}{% else %}{{ translate("txt-partners")|lower }}{% endif %}</a>
            <br>
            <a href="/project-overview.html?facet%5Bcountry%5D%5Bvalues%5D%5B%5D={{ country.country }}&query=">{{ countryData.projects }} {% if countryData.projects == 1 %}{{ translate("txt-project")|lower }}{% else %}{{ translate("txt-projects")|lower }}{% endif %}</a>
            <br>
        </div>
        <div class="col-md-8">
            {{ country_map({selected_country: country}) }}
        </div>
    </div>
</div>

<div class="bg-light py-5">
    <div class="container">
        {{ country_funders({country: country}) }}
    </div>
</div>

{{ country_videos({country: country}) }}

Image

This handler will return only the Image URL, to use in the CMS it has to be wrapped in <img src="">"

Resize: resize/fitin width:

{{ image({
    id : 1234,
    url: 'https://www.example.com/image.jpg',
    resize : 'resize',
    width : 100,
    height : 100,
    crop: {
        left: 0,
        top: 0,
        right: 100,
        bottom: 100
    }
  })
}}

Image can be URL or ID in image database

{{ carousel({'items' : [
    {image: 11352, url:'https://www.nu.nl'},
    {image: 11330, url:'https://www.nu.nl'}
]}) }}

Result list

The extension result_list prints a list of result, which include

The following options can be used

  • countries (array string): List of ISO3 codes of the countries where should be filtered on
  • types (array): List of result type ids where should be filtered on
  • list_style (string): Style of the list (impact_stream, grid, list)
{{ result_list(
  {
    type: [12, 24],
    country: 'NLD',
    cols: 3,
    paginated: true,
    show_abstract: true,
    amount: 8,
    amount_per_page: 9,
    search: false,
    list_style: 'grid'
  }
 )
}}

Amount cannot be combined with paginated

Result

The extension result prints a result, taking the result from the URL

{{ result() }}

Magazine list

  • type (string): magazine or annual_report
{{ magazine_list(
  {
    type: 'magazine',
    headerText: '<h1>Hello world</h1>',
  }
) }}

The rest of the pages (table of contents and the articles) are handled by the system

Magazine article list

-

{{ magazine_article_list(
  {
    amount: 10,
    cols: 4,
    query: '',
    country: ['NLD'],
    project: [1245],
    organisation: [12],
    list_style: 'grid,
    order: 'date_published',
    direction: 'desc',
  }
) }}

News message

The extension get_news_messsage gets the news message from the URL

{{ get_news_message()}}

A default news page could be created with the following code:


{% set news = get_news_message() %}

{% if news.css %}
    {% do headStyle().appendStyle(news.css) %}
{% endif %}

{% do headTitle().append(news.news) %}

<div class="container header-container">
    <div class="text-muted">
        {{ translate("txt-published-on-%s")|format(news.datePublished|date('d M Y')) }}
        {% if news.subTitle|length > 0 %}
            · {{ news.subTitle }}
        {% endif %}
        {{ newsLink(news,'edit','icon') }}
    </div>

    <h1 class="display-4 mt-0 pb-0">{{ news.news }} </h1>
</div>

<div class="container">
    {% include template_from_string(news.bodyText) %}
</div>

{% if news.project.count() > 0 %}
    <div class="bg-light py-3 mt-5">
        <div class="container">
            <h2 class="pb-3">{{ translate("txt-news-project-list") }}</h2>
            <div class="row row-cols-2 row-cols-lg-3 row-cols-xl-4">
                {% for project in news.project %}
                    {% include 'extensions/project/partial/project-block' with {'project' : project} %}
                {% endfor %}
            </div>
        </div>
    </div>
{% endif %}

News list

The handler news_list shows news messages in a list. There are 2 optional parameters:

  • limit: The number of news messages to show
  • category: Filter the news by a specific category
  • organisation: Filter the news by a connected organisation
  • project: Filter the news by a connected project
  • sort: title or date_published or score
{{ news_list (
    { 
        amount: 10,
        category: 1,
        search: true,
        paginated: true,
        cols: 4,
        amount_per_page: 9,
        highlighted: true,
        query: 'Sweden',
        sort: 'date_published',
        direction: 'asc',
        organisation: 12,
        project: 14,
    }
)}}

Organisation list

The extension organisation_list prints a list of organisations

If a selection is used, the following properties are also available:

The following list styles are available

  • grid
  • list (default)
{{ organisation_list(
    {
        selection: 1,
        country: 'NLD',
        cols: 3,
        paginated: true,
        amount: 8,
        amount_per_page: 9,
        search: false,
        list_style: 'grid',
        query: 'Sweden',
        sort: ['projects','projects_on_website','projects_on_website_last_ten_years'],
        direction: 'asc'
        organsation_types:['gov,'ind'],
        show_elements: ['country', 'organisation_type']
    }
   )
}}

Organisation

The extension get_organisation retrieves the organisation from the URL to be used in the Node.

Use the following code to get the organisation

{% set organisation = get_organisation() %}

An example organisation page can be created as follows


{% set organisation = get_organisation() %}

{% if not organisation %}
    <div class="container">
        <div class="alert alert-danger">
            This organisation does not exist.
        </div>
    </div>
{% endif %}

{% if organisation %}

    {% do headTitle().append(organisation.name) %}

    <div class="container">

        <h1 class="pt-3">{{ organisation }}</h1>

        <div class="row">
            <div class="col-md-8">

                {% if organisation.description %}
                    {{ organisation.description|striptags('<br><a><p><ul><li><strong><em>')|raw }}
                {% endif %}
            </div>
            <div class="col-md-4">
                <img class="img-fluid mb-3"
                     src="{{ organisation_logo({organisation: organisation, width: 250, show: constant("General\\ValueObject\\Image\\ImageDecoration::SHOW_RAW")}) }}">

                <dl>
                    <dt>{{ translate("txt-type") }}</dt>
                    <dd>{{ organisation.type }} {{ organisationLink(organisation,'view-admin','icon') }}
                        {{ organisationLink(organisation,'edit','icon') }}</dd>
                    <dt>{{ translate("txt-country") }}</dt>
                    <dd>{{ countryFlag(organisation.country, 15) }}
                        {{ countryLink(organisation.country,'view', 'name') }}</dd>


                    {% for web in organisation.web|filter(web => web.isMain()) -%}
                        {% if loop.first %}
                            <dt>{{ translate("txt-website") }}</dt>{% endif %}
                        <dd><a href="{{ web }}">{{ web }}</a></dd>
                    {% endfor %}

                    {% for news in organisation.news|filter(news => not news.isHidden()) -%}
                        {% if loop.first %}
                            <dt>{{ translate("txt-news-items") }}</dt>{% endif %}
                        <dd>
                            <i class="fas fa-bullseye"></i> <a
                                    href="{{ newsLink(news,'view','raw') }}">{{ news }}</a>
                            ({{ news.datePublished|date('d F Y') }})
                        </dd>
                    {% endfor %}

                </dl>
            </div>
        </div>


    </div>


    <div class="bg-light clearfix py-4 my-4">
        <div class="container">

            <h2>Project participation</h2>

            {{ project_list(
                {
                    organisation: organisation.id,
                    cols: 3,
                    paginated: false,
                    search: false,
                    only_with_award: false,
                    list_style: 'grid'
                }
            ) }}
        </div>
    </div>
{% endif %}


{{ organisation_logo(
{
  organisation: organisation
  width: 100,
}
) }}

Project list

list_style: grid, carousel

{{ project_list(
    {
        selection: 1,
        country: 'NLD',
        organisation: [1,2 3],
        challenge: [1,2,4]
        cols: 3,
        paginated: true,
        amount: 8,
        amount_per_page: 9,
        show_project_description: false,
        show_project_leader: false,
        search: false,
        only_with_award: false,
        award_year: [2024]
        list_style: 'grid'
    }
   )
}}

In case a selection is used, the selection object is parsed into the view. This object contains the following properties:

Amount cannot be combined with paginated

Project

If a project page needs to be rendered, first the project variable has to be called via the get_project() extension. This can be done in the following way.

{% set project = get_project() }

If the project variable is set, the following helpers are available:

  • ````: The title of the project
  • ````: Prints the full name of the project: Number + Title
  • ````: A helper which prints the header image
  • ````: A helper which prints wire-banner with project information
  • ````: A helper which shows the project leader and his participation. In this helper also al list of flags is included
  • ````: A helper which shows the project participants grouped per country
  • ````: A helper which shows a list of all public project documents (news items, magazine articles etc)

Example project page

An example project page could be


{% set project = get_project() %}

{% do headTitle().append(project.parseFullName) %}

{{ project_header({project: project }) }}

{{ project_banner({project: project }) }}


<div class="container pt-4">
	{{ project_leader({project: project }) }}

    <h2>{{ translate("txt-project-description") }}</h2>
    <div class="row">
        <div class="col-md-8">
            {{ project.description }} {{ projectLink(project,'view-admin','icon') }} {{ projectLink(project,'edit-admin','icon') }}
        </div>
        <div class="col-md-4">
            <span class="float-end">{{ projectLogo(project, 250) }}</span>
        </div>
    </div>

    {% for web in project.web|filter(web => web.isMain()) -%}
        <br>
        <a title="{{ web }}" href="{{ web }}"
           target="_blank">{% if web.label %}{{ web.label }}{% else %}{{ web.web }}{% endif %}</a><br>
    {% endfor %}
</div>

<div class="container pt-5">

    <ul class="nav nav-tabs" id="myTab" role="tablist">
        <li class="nav-item">
            <a class="nav-link active" id="partner-tab" data-bs-toggle="tab" href="#partner" role="tab"
               aria-controls="home"
               aria-selected="true">{{ translate("txt-partners") }}</a>
        </li>
        <li class="nav-item">
            <a class="nav-link" id="document-tab" data-bs-toggle="tab" href="#document" role="tab"
               aria-controls="document"
               aria-selected="false">{{ translate("txt-documents") }}</a>
        </li>
    </ul>
</div>

<div class="tab-content" id="myTabContent">
    <div class="tab-pane fade show active" id="partner" role="tabpanel" aria-labelledby="partner-tab">
        <div class="container">
            {{ project_partners({project: project}) }}
        </div>
    </div>
    <div class="tab-pane fade" id="document" role="tabpanel" aria-labelledby="document-tab">
        <div class="container">
            {{ project_documents({project: project}) }}
        </div>
    </div>
    

Blog message

The extension get_blog_messsage gets the blog message from the URL

{{ get_blog_message()}}

A default blog page could be created with the following code:


{% set blog = get_blog_message() %}
{% if blog.css %}
    {% do headStyle().appendStyle(blog.css) %}
{% endif %}

<div class="container header-container">
    <div class="text-muted">
        {{ translate("txt-published-on-%s")|format(blog.datePublished|date('d M Y')) }}
        {% if blog.subTitle|length > 0 %}
            · {{ blog.subTitle }}
        {% endif %}
        {{ blogLink(blog,'edit','icon') }}
    </div>

    <h1 class="display-4 mt-0 pb-0">{{ blog.blog }} </h1>
</div>

<div class="container">
    {% include template_from_string(blog.bodyText) %}
</div>

Blog comment

A comment field for a blog can be created with the following code.

  • blog (required): The blog

{{ blog_comment_form({
  blog: blog
}) }}

Latest blog messages

This extension fetches the latest blog messages from the database. The following parameters can be used:

  • amount (required): The amount of blog messages to be shown

{{ blog_latest_blogs({
  amount: 5
}) }}

Blog list

The handler blog_list shows blog messages in a list. There are 2 optional parameters:

  • limit: The number of blog messages to show
  • category: Filter the blog by a specific category
  • sort: title or date_published or score
{{ blog_list (
    { 
        amount: 10,
        search: true,
        paginated: true,
        cols: 4,
        amount_per_page: 9,
        show_highlighted: true,
        query: 'Sweden',
        sort: 'date_published',
        direction: 'asc'
    }
)}}

Press article

The extension get_press_article gets the Press article from the URL

{% set article = get_press_article() %}

A default press message page could be created with the following code:


{% set article = get_press_article() %}
<div class="container">
    <div class="border-top border-bottom text-muted py-2">
        {{ article.dateReleased|date('d F Y') }} <span class="px-2">&middot;</span>
        {{ translate("txt-source") }}: <a
                href="{{ article.url }}">{{ article.bureau }}</a> <span class="px-2">&middot;</span> <a
                href="{{ pressArticleLink(article, 'download','raw') }}">{{ translate("txt-download-pdf") }}</a>

        {% set editPressArticleLink = pressArticleLink(article,'edit','icon') %}
        {% if editPressArticleLink %}
            <span class="float-end">
            {{ translate('txt-admin') }}:
            {{ pressArticleLink(article,'view-admin','icon') }}
                {{ editPressArticleLink|raw }}
           </span>
        {% endif %}
    </div>
    <h1>{{ article.article }}</h1>
    
    <p>{{ article.content|raw }}</p>
</div>

{% if article.project.count() > 0 %}
    <div class="bg-light py-5">
        <div class="container">
            <h2>{{ translate("txt-news-project-list") }}</h2>
            <div class="row row-cols-2 row-cols-lg-3 row-cols-xl-4">
                {% for project in article.project %}
                    {% include 'extensions/project/project-grid' with {'project' : project} %}
                {% endfor %}
            </div>
        </div>
    </div>
{% endif %}

Press article list

The handler press_article_list shows press articles in a table. There are 2 optional parameters:

  • limit: The number of blog messages to show
  • sort: title or date_published or score
{{ press_article_list (
    { 
        amount_per_page: 9,
        sort: 'date_published',
        direction: 'asc'
    }
)}}

Challenge

The extension get_challenge gets the Press article from the URL

{% set challenge = get_challenge() %}

A default challenge could be created with the following code:


{% set challenge = get_challenge() %}

{% do headTitle().append(challenge.challenge) %}

{% if challenge.css %}
    {% do headStyle().appendStyle(challenge.css) %}
{% endif %}

{{ challenge.html|raw }}

<div class="bg-light py-5">
  <div class="container">
      <h2>Projects related to the challenge {{ challenge.challenge }}</h2>
      {{ project_list(
                  {
                      challenge: challenge.id,
                      cols: 3,
                      paginated: false,
                      search: false,
                      only_with_award: false,
                      list_style: 'grid'
                  }
              ) }}
  </div>            
</div>        

Challenge list

The handler challenge_list shows press articles in a table. There are 2 optional parameters:

  • cols: the amount of columns
{{ challenge_list (
    { 
        cols: 2,
    }
)}}

Exploitable results

The extension exploitable_result_list prints a list of exploitable results, which include

The following options can be used

  • list_style (string): Style of the list (grid, list)
{{ exploitable_result_list(
  {
    cols: 3,
    paginated: true,
    amount: 8,
    amount_per_page: 9,
    search: false,
    list_style: 'grid'
  }
 )
}}

Amount cannot be combined with paginated

Result

The extension get_exploitable_result grabs the Exploitable from the URL

{% set exploitableResult = get_exploitable_result() %}

{% include 'project/achievement/exploitable-result/preview/content' %}

Idea Meeting list (workgroup sessions)

The extension idea_meeting_list grabs the workgroup sessions from the database

{{ idea_meeting_list(
  {
      tool_id: 12 
  }
 )
}}

Idea Session (Pitch and update sessions) schedule

The extension idea_session produces a schedule of the pitch and update sessions, per session

{{ idea_session(
  {
      session_id: 12
  }
 )
}}

Idea Session (Pitch and update sessions) subscribe

The extension idea_session_subscribe produces a subscribe form for the pitch, update and result sessions and country information sessions, per tool

{{ idea_session_subscribe(
  {
    session: [12, 14, 16, 18, 20]
  }
 )
}}

Idea status updates

The extension idea_status_updates grabs the status updates from the database

{{ idea_status_updates(
  {
     tool_id: 12 
  }
 )
}}

Idea Posters

The extension idea_posters grabs the posters from the database, per PIT Tool

{{ idea_posters(
  {
     tool_id: 12 
  }
 )
}}

Idea Videos

The extension idea_videos grabs the videos from the database, per PIT session

{{ idea_videos(
  {
     tool_id: 12 
  }
 )
}}

Simple registration form

The extension registration_form grabs the videos from the database, per PIT session

{{ registration_form(
  {
     meeting_id: 12,
     registration_confirmation_alert: 'Thank you for registering' 
  }
 )
}}

Participant finder

The extension participants_list grabs the videos from the database, per PIT session

{{ participants_list(
  {
     meeting_id: 12
  }
 )
}}

Floor plan

The extension floorplan renders the floorplan with the project ideas

{{ floorplan(
  {
     meeting_id: 12
  }
 )
}}

Video

The extension video renders the video embedded in a div with play button

{{ video(
  {
     id: 12
  }
 )
}}