source: pmb4.1/trunk/fuentes/pmb/classes/translation.class.php @ 478

Last change on this file since 478 was 478, checked in by mabarracus, 4 years ago

copy trusty code 4.1

  • Property svn:executable set to *
File size: 4.1 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: translation.class.php,v 1.2 2009-03-27 15:46:32 ngantier Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php"))
8        die("no access");
9require_once($include_path."/templates/translation.tpl.php");
10/**
11 * Classe permettant de gérer les traductions de libellé
12 * Utilise la table translation, croisée avec le nom de la table et du champ à traduire
13 * Mémorise et récupère le texte dans la lange voulue
14 *
15 "CREATE TABLE translation (
16    trans_table VARCHAR( 255 ) NOT NULL default '',
17    trans_field VARCHAR( 255 ) NOT NULL default '',
18    trans_lang VARCHAR( 255 ) NOT NULL default '',
19        trans_num INT( 8 ) UNSIGNED NOT NULL default 0 ,
20    trans_text VARCHAR( 255 ) NOT NULL default '',
21    PRIMARY KEY trans (trans_table,trans_field,trans_lang,trans_num),
22    index i_lang(trans_lang)
23   )"; 
24 */
25       
26class translation {
27
28var $trans_table="";
29var $trans_field="";
30
31function translation($id,$trans_table,$trans_field,$liste_langue) {
32        $this->table = $trans_table;
33        $this->field = $trans_field;
34        $this->num=$id;
35        $this->liste_langue=explode(",",$liste_langue);
36        $this->fetch_data();
37}
38
39// récupération des infos en base
40function fetch_data() {
41        global $dbh;
42
43        $this->text=array();
44       
45        $req="SELECT * FROM translation WHERE trans_table='".$this->table."' and trans_field='$this->field' and trans_num='".$this->num."' ";
46        $myQuery = mysql_query($req, $dbh);
47        if(mysql_num_rows($myQuery)){           
48                while(($myreq=mysql_fetch_object($myQuery))) { 
49                        $langue=$myreq->trans_lang;
50                        $this->num=$myreq->trans_num;
51                        $this->text["$langue"]=$myreq->trans_text;
52
53                }       
54        } 
55       
56}
57
58/**
59 * Retourne la traduction dans la langue voulue, ou le libellé par défaut
60 */
61function get_text($lang="") {
62
63}
64function set_text($lang="") {
65
66}       
67function delete() {
68        global $dbh;
69        $req="delete from translation WHERE trans_table='".$this->table."' and trans_field='$this->field' and trans_num='$this->num' ";
70        mysql_query($req, $dbh);
71}
72function get_form($label,$field_id,$field_name,$field_value,$class_saisie,$style_form="display: none;") {
73        global $msg,$charset;
74        global $translation_tpl_form_javascript,$translation_tpl_form,$translation_tpl_line_form;
75        global $translation_tpl_form_javascript_flag;
76        global $lang;
77        $line="";
78        $nb=0;
79        foreach($this->liste_langue as $langue) {
80                if($langue != $lang) {
81                        //<input class='!!class_saisie!!' name='!!field_id!!_!!lang!!' value='!!text' type='text'></div>
82                        $line.=str_replace("!!libelle_lang!!",$langue,$translation_tpl_line_form);             
83                        $line=str_replace("!!lang!!",$langue,$line);           
84                        $line=str_replace("!!text!!",htmlentities($this->text["$langue"],ENT_QUOTES,$charset),$line);           
85                        $nb++;
86                        //print $line; exit;
87                }       
88        }
89       
90        $form =str_replace("!!lang_list!!",$line,$translation_tpl_form);
91        if($nb) $translation_button="<input class='bouton_small' value='".$msg["translation_button"]."' onclick=\"translation_view('lang_!!field_id!!')\" type='button'>";
92        else $translation_button="";
93        $form=str_replace("!!translation_button!!",$translation_button,$form); 
94        $form=str_replace("!!label!!",$label,$form);
95        $form=str_replace("!!class_saisie!!",$class_saisie,$form);
96        $form=str_replace("!!field_id!!",$field_id,$form);
97        $form=str_replace("!!field_name!!",$field_name,$form);
98        $form=str_replace("!!field_value!!",htmlentities($field_value,ENT_QUOTES,$charset),$form);
99        $form=str_replace("!!class_form!!","class_form",$form); 
100        $form=str_replace("!!style_form!!",$style_form,$form); 
101
102        if(!$translation_tpl_form_javascript_flag) {
103                $form=$translation_tpl_form_javascript.$form;
104                $translation_tpl_form_javascript_flag++;
105        }
106        return $form;
107}
108
109function update($input_field) {
110        global $dbh;
111        // effacer les anciens
112        $this->delete();
113        foreach($this->liste_langue as $langue) {
114                $field=$input_field."_".$langue;               
115                global $$field;
116                $text=$$field;
117                if($text) {
118                        $req="INSERT into translation Set trans_table='".$this->table."' , trans_field='$this->field' ,trans_lang='$langue', trans_num='".$this->num."'  ,trans_text='$text' "; 
119                        mysql_query($req, $dbh);
120                }
121               
122        }
123}       
124}
125?>
Note: See TracBrowser for help on using the repository browser.