source: extensions/nbc_ThemeChanger/admin/nbc_ThemeChanger_admin.php @ 6573

Last change on this file since 6573 was 6573, checked in by datajulien, 14 years ago

ThemeChanger version 2.1.0.b
bug correction.

File size: 7.0 KB
Line 
1<?php
2
3include_once (NBC_ThemeChanger_PATH.'include/functions_ThemeChanger.inc.php');
4
5global $user, $conf, $template;
6
7$__BEBUG = 0;
8
9// Check Access and exit when user status is not ok
10check_status(ACCESS_ADMINISTRATOR);
11
12$me = get_plugin_data($plugin_id);
13load_language('plugin.lang', NBC_ThemeChanger_PATH);
14$page_ThemeChanger_admin = get_admin_plugin_menu_link(__FILE__);
15
16
17//chargement des catégories
18$categories = my_get_pwg_categories();
19               
20
21//chargement des thèmes
22$themes = my_get_pwg_themes();
23  if ($__BEBUG)
24  {
25  echo '0 '.$themes[0]['id'] .':'. $themes[0]['name'] .'<br>';
26  echo '0 '.$themes[1]['id'] .':'. $themes[1]['name'] .'<br>';
27  echo '0 '.$themes[2]['id'] .':'. $themes[2]['name'] .'<br>';
28  echo '0 '.$themes[3]['id'] .':'. $themes[3]['name'] .'<br>';
29  }
30
31// Configuration du template
32$template->assign('params',
33array(
34    'U_HOME' => make_index_url(),
35        'F_ACTION' => add_url_params($page_ThemeChanger_admin, array()),
36    'U_ADD_ASSOC' => add_url_params($page_ThemeChanger_admin, array('action' => 'add_assoc')),
37    'U_HELP' => PHPWG_ROOT_PATH.'popuphelp.php?page=ThemeChanger',
38        'Themes' => $themes,
39        'Categories' => $categories,
40        'page_banner' => $conf['page_banner'],
41        'gallery_title' => $conf['gallery_title']
42));
43
44// Configuration du formulaire
45$template->assign('formulaire',array(
46    'DESCRIPION' => $lang['add_assoc'],
47  ));
48 
49//Recupération options du plugin
50$conf_nbc_ThemeChanger = isset($conf['nbc_ThemeChanger']) ? explode(";" , $conf['nbc_ThemeChanger']) : array();
51 
52 
53// Mise a jour des paramètres du plugin
54if (isset($_POST['submit']) and !is_adviser())
55        if ( (isset($_POST['categorychoise']) or isset($_POST['category_id'])) and isset($_POST['template']))
56        {       
57               
58                $listcategory = array();
59                $newconf_nbc_ThemeChanger = '';
60                $add_ok = false;
61                //recupération des variables
62                $theme = $_POST['template'];
63                $applysubcategory = isset($_POST['ApplySubCategories']) ? $_POST['ApplySubCategories'] : '';
64                $thecategory = isset($_POST['categorychoise']) ? $_POST['categorychoise'] : ( isset($_POST['category_id']) ? $_POST['category_id'] : '');
65
66                $_POST['categorychoise'] = '';
67                $_POST['category_id'] = '';
68                $_POST['template'] = '';
69                $_GET['action'] = '';
70                $_POST['ApplySubCategories'] = '';
71
72                if ($applysubcategory <> '') {
73                        foreach ($categories as $icat) {
74                                $tmp = explode("," , $icat['uppercats']);
75                                if (in_array ($thecategory, $tmp))
76                                        array_push($listcategory ,$icat['id']);
77                        }
78                }
79                else
80                        array_push($listcategory ,$thecategory);
81
82                foreach ($conf_nbc_ThemeChanger as $Theme_Cat)
83                {
84                        $add_ok = false;
85                        $element_ThemeChanger = explode("," , $Theme_Cat);
86                        $i = 0;
87                        foreach ($listcategory as $thecategory)
88                        {
89                                if ($element_ThemeChanger[0] == $thecategory) //MAJ de la nouvelle category déjà présente dans la liste
90                                {
91                                        //echo ' MAJ: '.$element_ThemeChanger[0];
92                                        if ($newconf_nbc_ThemeChanger <> '')
93                                                $newconf_nbc_ThemeChanger .= ';';
94                                        $newconf_nbc_ThemeChanger .= $thecategory.','.$theme;
95                                        $listcategory[$i] = -1;
96                                        $add_ok = true;
97                                        break;
98                                }
99                                $i += 1;
100                        }
101                        if ($add_ok == false){
102                                //récupération des catégories qui n'ont pas été modifié.
103                                if ($element_ThemeChanger[0] <> '') {
104                                        if ($newconf_nbc_ThemeChanger <> '')
105                                                $newconf_nbc_ThemeChanger .= ';';
106                                        //echo ' Recup : '.$element_ThemeChanger[0];
107                                        $newconf_nbc_ThemeChanger .= $element_ThemeChanger[0].','.$element_ThemeChanger[1];
108                                }
109                        }
110                }
111                //insertion des nouvelles catégories
112                foreach ($listcategory as $thecategory) {
113                        if ($newconf_nbc_ThemeChanger <> '')
114                                $newconf_nbc_ThemeChanger .= ';';
115                        //echo ' Nouveau: '.$thecategory;
116                        if ($thecategory <> -1)
117                                $newconf_nbc_ThemeChanger .= $thecategory.','.$theme;
118                }
119
120                $conf['nbc_ThemeChanger'] = $newconf_nbc_ThemeChanger;
121
122                $query = '
123                  UPDATE '.CONFIG_TABLE.'
124                  SET value="'.$newconf_nbc_ThemeChanger.'"
125                  WHERE param="nbc_ThemeChanger"
126                  LIMIT 1';
127                pwg_query($query);
128
129                array_push($page['infos'], l10n('nbc_ThemeChanger_save_config'));
130        }
131
132
133//delete an association
134if ( isset($_GET['action']) and ($_GET['action']=='del_assoc') and isset($_GET['id_cat']) and is_numeric($_GET['id_cat']) and !is_adviser() )
135{
136
137        $newconf_nbc_ThemeChanger = '';
138
139  foreach ($conf_nbc_ThemeChanger as $Theme_Cat)
140  {
141    $element_ThemeChanger = explode("," , $Theme_Cat);
142
143    if ($element_ThemeChanger[0] <> $_GET['id_cat'] and $element_ThemeChanger[0] <> '')
144    {
145      if ($newconf_nbc_ThemeChanger <> '')
146        $newconf_nbc_ThemeChanger .= ';';
147
148      $newconf_nbc_ThemeChanger .= $element_ThemeChanger[0].','.$element_ThemeChanger[1];
149    }
150  }
151
152  $conf['nbc_ThemeChanger'] = $newconf_nbc_ThemeChanger;
153
154  $query = '
155    UPDATE '.CONFIG_TABLE.'
156    SET value="'.$newconf_nbc_ThemeChanger.'"
157    WHERE param="nbc_ThemeChanger"
158    LIMIT 1';
159  pwg_query($query);
160
161  array_push($page['infos'], l10n('nbc_ThemeChanger_save_config'));
162}
163
164//modify an association
165else if ( isset($_GET['action']) and ($_GET['action']=='mod_assoc') and isset($_GET['id_cat']) and is_numeric($_GET['id_cat']) and isset($_GET['id_theme']) )
166{
167  $template->assign('formulaire',array(
168        'DESCRIPION' => $lang['modify_assoc'].' : '.get_long_categorie_name($_GET['id_cat']),
169        'THEMETOMODIFY' => $_GET['id_theme'],
170        'NAMETOMODIFY' => get_long_categorie_name($_GET['id_cat']),
171    'IDTOMODIFY' => $_GET['id_cat'],
172  ));
173}
174
175//add an association
176else if ( isset($_GET['action']) and ($_GET['action']=='add_assoc') )
177{
178        $template->assign('formulaire', array(
179                'DESCRIPION' => $lang['add_assoc'],
180        ));
181}
182
183
184//needed to relaod the good configuration after delete
185$conf_nbc_ThemeChanger = isset($conf['nbc_ThemeChanger']) ? explode(";" , $conf['nbc_ThemeChanger']) : array();
186
187$num = 0;
188$catsused = array();
189$assoc = array();
190
191//reconstruction du tableau d'association.
192foreach ($conf_nbc_ThemeChanger as $Theme_Cat)
193{
194  $element_ThemeChanger = explode("," , $Theme_Cat);
195
196  if ($element_ThemeChanger[0] <> '' and $element_ThemeChanger[1] <> '')
197  {
198    array_push($catsused, $element_ThemeChanger[0]);
199
200    $query = '
201      SELECT uppercats
202        FROM '.CATEGORIES_TABLE.'
203        WHERE id = \''.$element_ThemeChanger[0].'\'
204      ;';
205
206    $result = pwg_query($query);
207    $row = mysql_fetch_array($result);
208
209     array_push($assoc , array(
210        'CLASS' => ($num++ % 2 == 1) ? 'row2' : 'row1',
211        'CATEGORY_NAME' => get_cat_display_name_cache($row['uppercats'], null, false),
212        'CATEGORY_ID'   => $element_ThemeChanger[0],
213        'TEMPLATE'              => my_get_pwg_themeName($element_ThemeChanger[1]),
214        'U_MODIFY'      => add_url_params($page_ThemeChanger_admin, array(
215                        'action'                => 'mod_assoc',
216                        'id_cat'                => $element_ThemeChanger[0],
217                        'id_theme'              => $element_ThemeChanger[1],
218        )),
219        'U_DELETE'              => add_url_params($page_ThemeChanger_admin, array(
220                        'action'                => 'del_assoc',
221                        'id_cat'                => $element_ThemeChanger[0],
222                )),
223        ));
224  }
225}
226$template->assign('assoc',$assoc );
227
228
229//  template initialization
230$template->set_filenames(array('plugin_admin_content' => dirname(__FILE__).'/nbc_ThemeChanger_admin.tpl'));
231$template->assign_var_from_handle( 'ADMIN_CONTENT', 'plugin_admin_content');
232
233?>
Note: See TracBrowser for help on using the repository browser.