<?php
/**
 * Ce fichier est destine a permettre la surcharge de certaines methodes de
 * la classe om_dbform pour des besoins specifiques de l'application
 *
 * @package openmairie_exemple
 * @version SVN : $Id$
 */

/**
 *
 */
require_once PATH_OPENMAIRIE."om_dbform.class.php";

/**
 *
 */
require_once "om_formulaire.class.php";

/**
 *
 */
class om_dbform extends dbForm {
    

    /**
     * Liste des métadonnées communes à l'ensemble des fichiers de l'application
     */
    var $metadata_global = array(
                                "codeProduit" => "getCodeProduit",
                            );
    /**
     *
     */
    var $om_formulaire = "om_formulaire";

    /**
     * Retourne le code produit défini dans le paramétrage
     * @return string code produit (OpenADS)
     */
    protected function getCodeProduit() {
        return $this->f->getParameter("ged_code_produit");
    }

    // {{{ SURCHARGES DES LIBELLES DES BOUTONS

                       /**
     * Cette methode permet d'afficher le bouton de validation du formulaire
     *
     * @param integer $maj Mode de mise a jour
     * @return void
     */
    function bouton($maj) {


        if (!$this->correct
            && $this->checkActionAvailability() == true) {


            //
            switch($maj) {
                case 0 :
                    $bouton = _("Ajouter");
                    break;
                case 1 :
                    $bouton = _("Modifier");
                    break;
                case 2 :
                    $bouton = _("Supprimer");
                    break;
                default :
                    // Actions specifiques
                    if ($this->get_action_param($maj, "button") != null) {
                        //
                        $bouton = $this->get_action_param($maj, "button");
                    } else {
                        //
                        $bouton = _("Valider");
                    }
                    break;
            }
            //
            // $bouton .= "&nbsp;"._("l'enregistrement de la table")."&nbsp;:";
            // $bouton .= "&nbsp;'"._($this->table)."'";
            //
            $params = array(
                "value" => $bouton,
                "class" => "btn btn-primary",
            );
            //
            $this->f->layout->display_form_button($params);
        }

    }

    /**
     * Génère un document PDF.
     * 
     * @param  integer  $type         État ou lettre-type
     * @param  string   $obj          Édition
     * @param  integer  $collectivite Collectivité
     * @param  mixed    $idx          ID de l'objet instancié
     * @param  array    $params       Paramétrage de l'édition
     *
     * @return string                 Document PDF
     */
    function compute_pdf_output($type, $obj, $collectivite = null, $idx = null, $params = null) {

        //
        if ($type == 'lettretype') {
            $script = "../pdf/pdflettretype.php";
            require_once "../obj/om_lettretype.class.php";
        } elseif ($type == 'etat') {
            $script = "../pdf/pdfetat.php";
            require_once "../obj/om_etat.class.php";
        } else {
            return "";
        }

        //
        $_GET['output'] = "string";
        $_GET['obj'] = $obj;
        // Paramétrage du filigrane
        if (isset($params['watermark']) && $params['watermark'] == true) {
            $_GET['watermark'] = 'true';
        }
        //
        if (isset($params['specific']) 
            && is_array($params['specific'])
            && count($params['specific']) > 0) {
            $_GET["specific"] = $params['specific'];
        }
        //
        if (is_null($idx)) {
            $_GET['idx'] = $this->getVal($this->clePrimaire);
        } else {
            $_GET['idx'] = $idx;
        }
        $f = $this->f;
        include $script;
        if (!isset($pdf_output)) {
            return "";
        }

        //
        $result['pdf_output'] = $pdf_output;
        $result['filename'] = $filename;

        //
        return $result;
    }

    /**
     * Affiche un PDF.
     *
     * @param string $pdf_output Document PDF
     * @param string $filename   Nom du document
     *
     * @return void
     */
    function expose_pdf_output($pdf_output, $filename) {
        //
        header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
        header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date dans le passé
        header("Content-Type: application/pdf");
        header("Accept-Ranges: bytes");
        //
        if ($this->f->getParameter("edition_output") == "download") {
            $dl = "attachment";
        } else {
            $dl = "inline";
        }
        //
        header("Content-Disposition: ".$dl."; filename=\"".$filename."\";" );
        //
        echo $pdf_output;
        die();
    }

    // }}}
}

?>
