<?php
/**
 * Ce fichier est destine a permettre la surcharge applicative y-compris les traductions, 
 * le CSS et le menu
 *
 * Il sera chargé par <racine applicative>/app/index.php
 *
 * @package openapplication-custom
 * @version SVN : $Id: openapplication.class.php 180 2019-04-11 11:52:17Z lgroleau $
 */

/**
 *
 */
require_once PATH_CUSTOM."/../obj/openapplication.class.php";
require_once PATH_CUSTOM."/../core/om_layout.class.php";

/**
 * Définition des constantes pour la gestion des locales et des traductions.
 */
if (defined("CUSTOM_LOCALES_DIRECTORY") !== true) {
    define("CUSTOM_LOCALES_DIRECTORY", PATH_CUSTOM.'/locales');
}
if (defined("CUSTOM_DOMAIN") !== true) {
    define("CUSTOM_DOMAIN", 'openmairie-custom');
}

/*
* Add custom translations
*/ 
function  ___($msgid, $msgstr_default = "") {
    // traduction custom supérieure
    bindtextdomain(CUSTOM_DOMAIN, CUSTOM_LOCALES_DIRECTORY);
    $msgstr3 = dgettext(CUSTOM_DOMAIN, $msgid);
    if ($msgid !== $msgstr3) {
        return $msgstr3;
    }
    // sinon traduction applicative
    $msgstr2 = __($msgid);
    if ($msgid !== $msgstr2) {
        return $msgstr2;
    }
    // sinon trauction framework
    $msgstr1 = _($msgid);
    if ($msgid !== $msgstr1) {
        return $msgstr1;
    }
    // sinon traduction par défaut
    if ($msgstr_default !== "") {
        return $msgstr_default;
    }
    return $msgid;
}

/**
 *
 */
class openapplication_custom extends openapplication {

    /*
    *  CONFIG
    */
    protected $version = "1.0.0-c1.0.0";

    /**
     * Cette propriété est un marqueur permettant d'indiquer si nous sommes
     * en mode développement d'un custom applicatif ou non.
     * @var boolean
     */
    protected $_custom_development_mode = true;

    /**
    * Configuration custom
    */
    function setParamsFromFiles() {
        parent::setParamsFromFiles();

        // s'il n'y a pas eu de surcharge par le fichier dyn/custom.inc.php
        if (!isset($custom)) {
            // valeurs par défaut
            $custom=array();
            $custom['tab']['groupe'] = '../custom/sql/pgsql/groupe.inc.php';
            $custom['obj']['groupe'] = '../custom/obj/groupe.class.php';
            
            $custom['tab']['telephone'] = '../custom/sql/pgsql/telephone.inc.php';
            $custom['soustab']['telephone'] = '../custom/sql/pgsql/telephone.inc.php';
            $custom['obj']['telephone'] = '../custom/obj/telephone.class.php';

            $this->custom = $custom;
        }
    }

    /*
    *  Add custom CSS and JS
    */
    /* ne marche pas !? => utilisation de setMoreParams()
    function setDefaultValues() {
        parent::setDefaultValues();
        $this->addHTMLHeadCss(
            array(
                "../custom/css/custom.css",
            ),
            99
        );
        $this->html_head_js["add"][21][] = "../custom/css/custom.css";       
    }
    */
    function setMoreParams() {
        //
        parent::setMoreParams();
        
        // Avec ce paramètre, les terminaux mobiles optimisent l'espace par défaut
        $meta = '    <link rel="stylesheet" type="text/css" media="screen" href="../custom/app/css/custom.css?v='.$this->version.'" />'."\n";
        
        // activation 
        $this->setHTMLHeadExtras($meta);
    }


    /**
     * Surcharge - set_config__menu().
     *
     *  permet de configurer quelles actions vont être disponibles
     *  dans le menu EN PLUS DU MENU de l'application "openADS"
     *
     * @return void
     */
    function set_config__menu() {

        $menu = array();

        // {{{ Rubrique APPLICATION - 
        $rubrik = array(
            "title" => ___("custom"),
            "class" => "custom",
        );
        //
        $links = array();
        //
        // ---> 
        $links[] = array(
            "href" => OM_ROUTE_TAB."&obj=telephone",
            "class" => "telephone",
            "title" => ___("telephone"),
            "right" => array("telephone", "telephone_tab", ),
            "open" => array(
                "index.php|telephone[module=tab]",
                "index.php|telephone[module=form]",
            ),
        );

        //
        $rubrik['links'] = $links;
        //
        $menu["menu-rubrik-custom"] = $rubrik;
        // }}}

        //
        // Récupération du menu applicatif et fusion
        //
        parent::set_config__menu();
        $full_menu = array_merge($menu, $this->config__menu);
        $this->config__menu = $full_menu;
    }
    
}
