source: spip-zone/_plugins_/embed_code/trunk/formulaires/embed_code.php @ 69606

Last change on this file since 69606 was 69606, checked in by kent1@…, 8 years ago

Embed code : Générateur de code d'embed de document (Notamment compatible avec mediaspip_player)

File size: 3.4 KB
Line 
1<?php
2/**
3 * MediaSPIP player
4 * Lecteur multimédia HTML5 pour MediaSPIP
5 *
6 * Auteurs :
7 * kent1 (http://www.kent1.info - kent1@arscenic.info)
8 * 2010-2012 - Distribué sous licence GNU/GPL
9 *
10 * Formulaire dynamique #FORMULAIRE_EMBED_CODE
11 * Crée le code d'embed d'une video, d'un son
12 *
13 */
14
15if (!defined("_ECRIRE_INC_VERSION")) return;
16
17include_spip('base/abstract_sql');
18/**
19 * Chargement des valeurs par defaut des champs du formulaire
20 *
21 * @param int $id_document : L'identifiant numérique du document
22 */
23function formulaires_embed_code_charger_dist($id_document=null){
24        $valeurs['id_document'] = $id_document;
25        $valeurs['largeur'] = lire_config('embed_code/embed_video_largeur',480);
26        $valeurs['hauteur'] = lire_config('embed_code/embed_video_hauteur',360);
27        if(!intval($id_document))
28                return false;
29
30        $infos_doc = sql_fetsel('hauteur,largeur,extension','spip_documents','id_document='.intval($id_document));
31       
32        if(($infos_doc['hauteur'] > 0) && ($infos_doc['largeur'] > 0)){
33                $valeurs['ratio'] = $infos_doc['largeur']/$infos_doc['hauteur'];
34                $valeurs['hauteur_ratio'] = $valeurs['hauteur'] = floor($valeurs['largeur']/$valeurs['ratio']);
35        }else{
36                $valeurs['hauteur_ratio'] = floor($valeurs['hauteur']*$valeurs['ratio']);
37        }
38       
39        return $valeurs;
40}
41
42/**
43 * Vérifications du formulaires
44 *
45 * @param int $id_document : L'identifiant numérique du document
46 */
47function formulaires_embed_code_verifier_dist($id_document=null){
48        $numeriques = array('largeur','hauteur');
49        foreach($numeriques as $numerique){
50                if(_request($numerique) && !ctype_digit(_request($numerique))){
51                        if($numerique != 'largeur' OR !preg_match('/%/',_request($numerique)))
52                                $erreurs[$numerique] = _T('mediaspip_player:erreur_valeur_int');
53                }
54                if(!$erreurs[$numerique] && _request($numerique) && (_request($numerique) > 2000)){
55                        $erreurs[$numerique] = _T('mediaspip_player:erreur_valeur_int_inf',array('nb'=>'2000'));
56                }
57        }
58        if(!$erreurs['largeur'] && _request('largeur') && !preg_match('/%/',_request('largeur')) && (_request('largeur') < 200)){
59                $erreurs['largeur'] = _T('mediaspip_player:erreur_valeur_int_sup',array('nb'=>'200'));
60        }
61        if(!$erreurs['hauteur'] && _request('hauteur') && (_request('hauteur') < 25))
62                $erreurs['hauteur'] = _T('mediaspip_player:erreur_valeur_int_sup',array('nb'=>'24'));
63
64        return $erreurs;
65}
66
67/**
68 * Traitement du formulaire
69 *
70 * @param int $id_document : L'identifiant numérique du document
71 */
72function formulaires_embed_code_traiter_dist($id_document=null){
73        $infos_doc = sql_fetsel('hauteur,largeur,extension','spip_documents','id_document='.intval($id_document));
74        if(($infos_doc['hauteur'] > 0) && ($infos_doc['largeur'] > 0)){
75                $valeurs['ratio'] = $infos_doc['hauteur']/$infos_doc['largeur'];
76        }
77        if(($infos_doc['largeur'] > 0) && ($infos_doc['hauteur'] > 0) && ($largeur = _request('largeur') OR $hauteur = _request('hauteur'))){
78                if(intval($largeur) > 0){
79                        $ratio = $largeur/$infos_doc['largeur'];
80                        $valeurs['hauteur_ratio'] = floor($infos_doc['hauteur']*$ratio);
81                        set_request('hauteur_ratio',$valeurs['hauteur_ratio']);
82                        if(_request('hauteur') && !preg_match('/%/',_request('largeur'))){
83                                $hauteur = floor($infos_doc['hauteur']*$ratio);
84                                set_request('hauteur',$hauteur);
85                        }
86                }else if(intval($hauteur) > 0){
87                        $ratio = $infos_doc['hauteur']/$hauteur;
88                        $largeur = floor($infos_doc['largeur']/$ratio);
89                        set_request('ratio',$ratio);
90                        set_request('hauteur_ratio',$hauteur);
91                        set_request('largeur',$largeur);
92                }
93        }
94        return $res;
95}
96
97?>
Note: See TracBrowser for help on using the repository browser.