root/trunk/inc_dntp/my.inc.php

Revision 15, 4.7 KB (checked in by alexx, 3 years ago)
  • fix last bug in communities (see [14])
  • execute a "conversion smarty style" script ;) : for i in find . -type f | grep "\.php$" | grep -v "\.svn"; do perl -pi -e "s/\\\$smarty->assign\((.*),(.*)\);/\\\$_SMARTY\[\$1\] = \$2;/" $i; done
Line 
1<?php
2/****************************************************** Open .node ***
3 * Description:   
4 * Status:        Stable.
5 * Author:        Alexandre Dath <alexandre@dotnode.com>
6 * $Id$
7 *
8 * Copyright (C) 2005 Alexandre Dath <alexandre@dotnode.com>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software Foundation,
22 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23 ******************** http://opensource.ikse.net/projects/dotnode ***/
24
25switch($_SESSION['my_level'])
26{
27case 'sadmin':
28    $waiting_entry_r = $db->query(
29'SELECT id, msgid, first_see, date
30 FROM dntp_msgid
31 WHERE status=?
32 ORDER BY date DESC',
33 array('new')
34);
35
36    if(DB::isError($waiting_entry_r))
37                error_log($waiting_entry_r->getUserInfo());
38        else
39                while($waiting_entry =& $waiting_entry_r->fetchRow())
40                {
41                        $day = date('Ymd', $waiting_entry['date']);
42                        if($last_day != $day)
43                                $waiting_entry['day'] = $day;
44                        $waiting_entries[] = $waiting_entry;
45                        $last_day = $day;
46                }
47    unset($day); unset($last_day);
48    $_SMARTY['waiting_entries'] =  $waiting_entries;
49
50    $nb_msgid = $db->getOne('SELECT COUNT(id) FROM dntp_msgid WHERE status=?', array('ok'));
51    $list_lang = $db->getCol('SELECT DISTINCT(lang) FROM dntp_translator WHERE status=?', 0, array('ok'));
52
53    foreach($list_lang as $c_lang)
54    {
55        $nb_msgstr = $db->getOne('SELECT COUNT(id) FROM dntp_msgstr WHERE `key`=? AND last=? AND lang=?', array(0, 'y', $c_lang));
56        $avancement[$c_lang] = array('msgid' => $nb_msgid, 'msgstr' => $nb_msgstr, 'score' => $nb_msgstr*100/$nb_msgid);
57    }
58    $_SMARTY['nb_msgid'] =  $nb_msgid;
59    $_SMARTY['avancement'] =  $avancement;
60    break;
61
62case 'admin':
63
64    $c_lang = $_SESSION['my_lang'];
65    $nb_msgid = $db->getOne('SELECT COUNT(id) FROM dntp_msgid WHERE status=?', array('ok'));
66    $nb_msgstr = $db->getOne('SELECT COUNT(id) FROM dntp_msgstr WHERE `key`=? AND last=? AND lang=?', array(0, 'y', $c_lang));
67    $avancement[$c_lang] = array('msgid' => $nb_msgid, 'msgstr' => $nb_msgstr, 'score' => $nb_msgstr*100/$nb_msgid);
68
69    $_SMARTY['nb_msgid'] =  $nb_msgid;
70    $_SMARTY['avancement'] =  $avancement;
71
72
73case 'translator':
74    $new_entry_r = $db->query(
75'SELECT i.id AS id, msgid, first_see, i.date AS date
76 FROM dntp_msgid AS i
77 LEFT JOIN dntp_msgstr AS s
78 USING (id)
79 WHERE i.status=? AND (lang<>? OR lang IS NULL)
80 ORDER BY i.date DESC, first_see',
81 array('ok', $_SESSION['my_lang'])
82);
83
84    if(DB::isError($new_entry_r))
85        error_log($new_entry_r->getUserInfo());
86    else
87        while($new_entry =& $new_entry_r->fetchRow())
88        {
89            $day = date('Ymd', $new_entry['date']);
90            if($last_day != $day)
91                $new_entry['day'] = $day;
92            $new_entries[$new_entry['id']] = $new_entry;
93            $last_day = $day;
94        }
95    unset($day); unset($last_day);
96
97case 'verif':
98    $last_modif_r = $db->query(
99'SELECT s.id AS id, `key`, msgstr, msgid, comment, first_see, s.date AS date, translator
100 FROM dntp_msgstr AS s
101 LEFT JOIN dntp_msgid AS i
102 USING (id)
103 WHERE lang=? AND last=? AND s.status<>?
104 ORDER BY date DESC',
105 array($_SESSION['my_lang'], 'y', 'ok')
106);
107
108
109    if(DB::isError($last_modif_r))
110        error_log($last_modif_r->getUserInfo());
111    else
112        while($last_modif =& $last_modif_r->fetchRow())
113        {
114            $day = date('Ymd', $last_modif['date']);
115            if($last_day != $day)
116                $last_modif['day'] = $day;
117            $last_modifs[] = $last_modif;
118            $last_day = $day;
119            if(isset($new_entries[$last_modif['id']]))
120                unset($new_entries[$last_modif['id']]);
121        }
122
123    $new_entry_to_delete = $db->getCol(
124'SELECT s.id AS id
125 FROM dntp_msgstr AS s
126 LEFT JOIN dntp_msgid AS i
127 USING (id)
128 WHERE lang=? AND last=?', 0,
129 array($_SESSION['my_lang'], 'y')
130);
131
132
133        if(DB::isError($new_entry_to_delete))
134                error_log($new_entry_to_delete_r->getUserInfo());
135        else
136                foreach($new_entry_to_delete as $id_to_delete)
137                {
138                        if(isset($new_entries[$id_to_delete]))
139                                unset($new_entries[$id_to_delete]);
140                }
141
142    unset($day); unset($last_day);
143    $_SMARTY['last_modifs'] =  $last_modifs;
144    $_SMARTY['new_entries'] =  $new_entries;
145    break;
146}
147?>
Note: See TracBrowser for help on using the browser.