source: pmb4.2/trunk/fuentes/pmb/classes/notice_tpl_gen.class.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 4.2 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: notice_tpl_gen.class.php,v 1.8 2015-04-03 11:16:20 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9require_once ($class_path . "/parse_format.class.php");
10require_once ($class_path . "/notice_info.class.php");
11
12class notice_tpl_gen {
13       
14        // ---------------------------------------------------------------
15        //              propriétés de la classe
16        // ---------------------------------------------------------------     
17        var $id;                // MySQL id in table 'notice_tpl'
18        var $name;              // nom du template
19        var $comment;   // description du template
20        var $code ;     // Code du template
21       
22        // ---------------------------------------------------------------
23        //              constructeur
24        // ---------------------------------------------------------------
25        function notice_tpl_gen($id=0) {                       
26                $this->id = $id;
27                $this->getData();
28        }
29       
30        // ---------------------------------------------------------------
31        //              getData() : récupération infos
32        // ---------------------------------------------------------------
33        function getData() {
34                global $dbh;
35
36                $this->name = '';                       
37                $this->comment = '';
38                $this->code =array();
39                if($this->id) {
40                        $requete = "SELECT * FROM notice_tpl WHERE notpl_id='".$this->id."' LIMIT 1 ";
41                        $result = @pmb_mysql_query($requete, $dbh);
42                        if(pmb_mysql_num_rows($result)) {
43                                $temp = pmb_mysql_fetch_object($result);                               
44                                $this->name     = $temp->notpl_name;
45                                $this->comment  = $temp->notpl_comment  ;
46                                // récup code           
47                                $requete = "SELECT * FROM notice_tplcode  WHERE num_notpl='".$this->id."' ";
48                                $result_code = @pmb_mysql_query($requete, $dbh);
49                                if(pmb_mysql_num_rows($result_code)) {
50                                        while(($temp_code= pmb_mysql_fetch_object($result_code))) {
51                                                $this->code[$temp_code->notplcode_localisation][$temp_code->notplcode_niveau_biblio] [$temp_code->notplcode_typdoc]=$temp_code->nottplcode_code;       
52                                        }
53                                }                       
54                        } else {
55                                // pas trouvé avec cette clé
56                                $this->id = 0;                                                         
57                        }
58                }
59        }
60       
61        function build_notice($id_notice,$location=0,$in_relation=false){
62                global $dbh,$parser_environnement;
63               
64                $parser_environnement['id_template'] = $this->id;
65                $parser=new parse_format('notice_tpl.inc.php',$in_relation);                   
66               
67                $requete = "SELECT typdoc, niveau_biblio FROM notices WHERE notice_id='".$id_notice."' LIMIT 1 ";
68                $result = @pmb_mysql_query($requete, $dbh);
69                if(pmb_mysql_num_rows($result)) {
70                        $temp = pmb_mysql_fetch_object($result);                               
71                        $typdoc = $temp->typdoc;                       
72                        $niveau_biblio  = $temp->niveau_biblio;                         
73                        //$niveau_hierar        = $temp->niveau_hierar;         
74                } else return "";
75               
76                // Recherche du code à appliquer (du particulier au général)
77                if($this->code[$location][$niveau_biblio][$typdoc]) {
78                        $code=$this->code[$location][$niveau_biblio][$typdoc];
79                } elseif ($this->code[$location][$niveau_biblio][0]) {
80                        $code=$this->code[$location][$niveau_biblio][0];
81                       
82                } elseif ($this->code[0][$niveau_biblio][$typdoc]) {
83                        $code=$this->code[0][$niveau_biblio][$typdoc];
84                } elseif ($this->code[0][$niveau_biblio][0]) {
85                        $code=$this->code[0][$niveau_biblio][0];
86                       
87                } elseif ($this->code[0][0][$typdoc]) {
88                        $code=$this->code[0][0][$typdoc];
89                } elseif ($this->code[0][0][0]) {
90                        $code=$this->code[0][0][0];
91                } else return "";
92               
93                $temp = pmb_mysql_fetch_object($result);                                                       
94                $parser->cmd = $code;
95                $parser_environnement['id_notice']=$id_notice;
96               
97                return $parser->exec_cmd();             
98        }
99       
100        static function gen_tpl_select($select_name="notice_tpl", $selected_id=0, $onchange="",$no_affempty=0,$no_aff_defaut=0) {               
101                global $msg,$dbh;
102                //
103                $requete = "SELECT notpl_id, if(notpl_comment!='',concat(notpl_name,'. ',notpl_comment),notpl_name) as nom FROM notice_tpl ORDER BY notpl_name ";
104                $result = pmb_mysql_query($requete, $dbh);
105                if(!pmb_mysql_num_rows($result) && !$no_affempty) return '';   
106                if(!$no_aff_defaut)
107                        return gen_liste ($requete, "notpl_id", "nom", $select_name, $onchange, $selected_id, 0, $msg["notice_tpl_list_default"], 0,$msg["notice_tpl_list_default"], 0) ;
108                else
109                        return gen_liste ($requete, "notpl_id", "nom", $select_name, $onchange, $selected_id, 0, '', 0,'', 0) ;
110                               
111               
112        }
113} // fin class
114
115
Note: See TracBrowser for help on using the repository browser.