Choose your database:
AnySQL
MySQL
MS SQL Server
PostgreSQL
SQLite
Firebird
Oracle
SQL Anywhere
DB2
MaxDB

Subscribe to our news:
Partners

Firebird PHP Generator online Help

Prev Return to chapter overview Next

Common templates

Common templates are applied for all pages (List, View, Edit, Insert, etc). The table below shows how to customize these templates.

 

 

State of the webpage

Page Part

Default template

Parameters

All Pages

webpage layout

common/layout.tpl

PagePart::Layout

Any PageMode

page list

page_list_menu.tpl
(for top-side menu)

 

page_list_sidebar.tpl
(for sidebar menu)

PagePart::PageList

Any PageMode

 

 

Example.

This example learns how to implement runtime language selection.

 

 

You can see it in action in our Feature Demo. To implement this feature, we have to create a template containing the language menu and instruct PHP Generator to use it.

 

Template code is as follows:

 

{include file='page_list_menu.tpl'}

<ul class="nav navbar-nav navbar-right">

    <li class="dropdown">

        <a href="#" class="dropdown-toggle" data-toggle="dropdown" 

               role="button" aria-haspopup="true" aria-expanded="false">

            {$availableLangs[$currentLang]}

            <span class="caret"></span>

        </a>

        <ul class="dropdown-menu" id="langs">

            {foreach item=lang key=key from=$availableLangs}

                {if $currentLang != $key}

                    <li><a href="#" data-lang="{$key}">{$lang}</a></li>

                {/if}

            {/foreach}

        </ul>

    </li>

</ul>

 

Event handler is as follows:

 

if ($part == PagePart::PageList)

{

    $langs = array(

        'en' => 'English',

        'de' => 'German',

        'es' => 'Spanish',

        'fr' => 'French',

    );

 

    $lang = 'en'; // default language

    

    // trying to retrieve language from cookies

    if (isset($_COOKIE['lang']) && $_COOKIE['lang'] && isset($langs[$_COOKIE['lang']])) {

        $lang = $_COOKIE['lang'];

    }

 

    $params['availableLangs'] = $langs;

    $params['currentLang'] = $lang;

    

    $result = 'custom_menu.tpl';

}

 

Almost done. Now we need to handle the language selection. This can be done with user-defined JavaScript:

 

function handleLanguageSelection() {

     $("#langs").on("click", "a", function (e) {

         var query = jQuery.query;

         query = query.set('lang', $(this).data('lang'));

         window.location = query;

         e.preventDefault();

     });

}

 

require(['jquery'], function () {

    $(function () {   

        handleLanguageSelection();

    });

});

 

That's all. Don't forget to place language files to the components/languages directory.



Prev Return to chapter overview Next