コード例 #1
0
function action_generer_recu_souscription_dist($id_souscription = null, $annee = null)
{
    if (is_null($id_souscription)) {
        $id_souscription = _request('id_souscription');
        $annee = _request('annee');
        $hash = _request('hash');
        $lowsec = souscription_hash_lowsec($id_souscription, $annee);
        if ($hash !== $lowsec) {
            die('Erreur : URL pas autorisee');
        }
    } else {
        $lowsec = souscription_hash_lowsec($id_souscription, $annee);
    }
    $format = _request('format');
    if (!in_array($format, array('html', 'pdf'))) {
        // PDF ou HTML ? si le plugin SPIPDF est la on genere un recu en PDF
        $format = "html";
        if (test_plugin_actif("spipdf")) {
            $format = "pdf";
        }
    }
    $numero = souscription_numero_recu($id_souscription, $annee);
    $dir = sous_repertoire(_DIR_IMG, "attestations");
    // securite : dossier inaccessible en http
    if (!file_exists($f = $dir . ".htaccess")) {
        ecrire_fichier($f, "deny from all\n");
    }
    $filename = $numero . ".{$format}";
    $file = $dir . $filename;
    if (!file_exists($file)) {
        $fond = $format == "pdf" ? "attestation_pdf" : "attestation";
        $content = recuperer_fond($fond, array("id_souscription" => $id_souscription, "annee" => $annee, "hash" => $lowsec));
        ecrire_fichier($file, $content);
    }
    $mime = "text/html";
    if ($format == "pdf") {
        $mime = "application/pdf";
    }
    header("Content-type: {$mime}");
    if ($format == "pdf") {
        $filename = preg_replace(",\\W+,", "", $GLOBALS['meta']['nom_site']) . "-Recu-" . $filename;
        header("Content-Disposition: attachment; filename={$filename}");
        //header("Content-Transfer-Encoding: binary");
    }
    // fix for IE catching or PHP bug issue
    header("Pragma: public");
    header("Expires: 0");
    // set expiration time
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    if ($cl = filesize($file)) {
        header("Content-Length: " . $cl);
    }
    readfile($file);
}
コード例 #2
0
/**
 * URL pour generer/voir le recu pour une souscription+annee
 * @param int $id_souscription
 * @param int $annee
 * @return string
 */
function souscription_generer_url_recu($id_souscription, $annee)
{
    return generer_url_action("generer_recu_souscription", "id_souscription={$id_souscription}&annee={$annee}&hash=" . souscription_hash_lowsec($id_souscription, $annee));
}