source: extensions/Flash_Gallery/admin/add_module.php @ 3531

Revision 3531, 10.0 KB checked in by tiico, 11 years ago (diff)

First revision (for testing)
Only in French (translation to be done)

Line 
1<?php
2
3if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
4
5global $template, $conf;
6
7include_once(FLASHGAL_PATH . 'include/functions.inc.php');
8include_once(FLASHGAL_PATH . 'admin/functions.inc.php');
9
10load_language('plugin.lang', FLASHGAL_PATH);
11
12
13if (!isset($_GET['type']) or !is_dir(FLASHGAL_PATH . 'modules/' . $_GET['type']))
14{
15  die('Wrong parameters...');
16}
17else
18{
19  $type = $_GET['type'];
20}
21
22// Load module language
23get_flash_modules_language($type);
24
25include_once(FLASHGAL_PATH . 'modules/' . $type . '/module.inc.php');
26
27// restauration des parametres par defaut
28if (isset($_POST['restoredata']) and !is_adviser())
29{
30  $datas = array();
31        foreach ($module_data['datas'] as $key => $value)
32        {
33                if ($value)     // == true
34                        $datas[$key] = $value;
35        }
36        $datas =  (!empty($datas) ? '"'.addslashes(serialize($datas)).'"' : NULL);
37       
38        pwg_query('
39        UPDATE ' . FLASHGAL_TABLE . '
40        SET datas=' . $datas . '
41                WHERE id = ' . $_GET['edit'] . ';');
42
43}
44
45
46
47// Enregistrement du module
48if (isset($_POST['submit']) and !is_adviser())
49{
50  include(FLASHGAL_PATH . 'modules/' . $type . '/admin/config.inc.php');
51  if (empty($page['errors']))
52  {
53    if (empty($_POST['module_name']))
54    {
55      array_push($page['errors'], l10n('flashgal_no_name'));
56    }
57    else
58    {
59// id, pos, name, descr, type, datas, users, groups, show_title, on_home, on_cats, cats, recurs_cats, replace_thumb, replace_cats, height, transparent, id_line
60      $module_name = $_POST['module_name'];
61      $desc = (!empty($_POST['module_desc']) ? '"' . $_POST['module_desc'] . '"' : 'NULL');
62      $groups = (!empty($_POST['groups']) ? '"' . implode(',', $_POST['groups']) . '"' : 'NULL');
63      $users = (!empty($_POST['users']) ? '"' . implode(',', $_POST['users']) . '"' : 'NULL');
64      $show_title = isset($_POST['show_title']) ? '"true"' : '"false"';
65      $on_home = isset($_POST['on_home'])  ? '"true"' : '"false"';
66          $on_home_global = $_POST['on_home_global'];
67      $on_cats = isset($_POST['on_cats'])  ? '"true"' : '"false"';
68        // Selected categories
69          $select_cats = isset($_POST['categories']) ? 
70                     array_map("mysql_escape_string", $_POST['categories']) :
71                     array(); 
72          $transparent = isset($_POST['flashgal_transparent']) ? '"true"' : '"false"';
73          $fullscreen = isset($_POST['flashgal_fullscreen']) ? '"true"' : '"false"';
74          $bgcolor = $_POST['flashgal_bgcolor'];
75          $recurs_cats = isset($_POST['flashgal_recurs_cats'])  ? '"true"' : '"false"';
76      $replace_thumb = isset($_POST['replace_thumb'])  ? '"true"' : '"false"';
77      $replace_cats = isset($_POST['replace_cats'])  ? '"true"' : '"false"';
78       
79          $height = (!empty($_POST['flashgal_height']) ? '"'.$_POST['flashgal_height'].'"' : "NULL");
80         
81//        $sav_datas = (!empty($datas) ? '"' . addslashes(serialize($datas)) . '"' : 'NULL');
82          $sav_ext_datas = (!empty($ext_datas) ? '"' . addslashes(serialize($ext_datas)) . '"' : 'NULL');
83       
84        // Module parameters
85        include_once(FLASHGAL_PATH . 'modules/' . $type . '/module.inc.php');
86        foreach ($module_data['datas'] as $key => $value)
87        {
88                if ($value)     // == true
89                        $sav_datas[$key] = $_POST[$key];               
90        }
91       
92        $sav_datas =  (!empty($sav_datas) ? '"'.addslashes(serialize($sav_datas)).'"' : NULL);
93
94        $cats =  addslashes(serialize($select_cats));
95       
96        if (isset($_GET['edit']))
97      {         
98// // id, pos, name, descr, type, datas, users, groups, show_title, on_home, on_cats, cats, recurs_cats, replace_thumb, replace_cats, height, transparent       
99         
100        pwg_query('
101                UPDATE ' . FLASHGAL_TABLE . '
102                SET     name ="' . $module_name . '",
103                                descr=' . $desc . ',
104                                type="' . $type . '",
105                                datas=' . $sav_datas . ',
106                                ext_datas=' . $sav_ext_datas . ',
107                                users=' . $users . ',
108                                groups=' . $groups . ',
109                                show_title=' . $show_title .',
110                                on_home=' . $on_home .',
111                                on_home_global="' . $on_home_global .'",
112                                on_cats=' . $on_cats . ',
113                                cats="' . $cats . '",
114                                recurs_cats=' . $recurs_cats . ',
115                                replace_thumb=' . $replace_thumb . ',
116                                replace_cats=' . $replace_cats .',
117                                height=' . $height . ',
118                                transparent=' . $transparent .',
119                                fullscreen=' . $fullscreen .',
120                                bgcolor="' . $bgcolor .'"
121
122                        WHERE id = ' . $_GET['edit'] . ';');
123      }
124      else
125      {
126        $query = 'SELECT IF(MAX(id)+1 IS NULL, 1, MAX(id)+1) AS next_element_id  FROM ' . FLASHGAL_TABLE . ' ;';
127        list($next_element_id) = mysql_fetch_array(pwg_query($query));
128
129        $query = 'SELECT MAX(pos)+1 AS next_pos  FROM ' . FLASHGAL_TABLE . ' ;';
130        list($pos) = mysql_fetch_array(pwg_query($query));
131                if (!isset($pos))       $pos = 1;
132               
133        $query = '
134INSERT INTO ' . FLASHGAL_TABLE . ' ( id, pos, name, descr, type, datas, ext_datas, users, groups, show_title, on_home, on_home_global, on_cats, cats, recurs_cats, replace_thumb, replace_cats, height, transparent, fullscreen, bgcolor)
135VALUES (' . $next_element_id . ' ,
136        ' . $pos . ',
137        "' . $module_name . '",
138        ' . $desc . ',
139        "' . $type . '",
140        ' . $sav_datas . ',
141        ' . $sav_ext_datas . ',
142        ' . $users . ',
143        ' . $groups . ',
144        ' . $show_title . ',
145        ' . $on_home . ',
146        "' . $on_home_global . '",
147        ' . $on_cats . ',
148        "' . $cats . '",
149        ' . $recurs_cats . ',
150        ' . $replace_thumb . ',
151        ' . $replace_cats .',
152        ' . $height . ',
153        ' . $transparent .',
154        ' . $fullscreen .',
155        "' . $bgcolor .'"
156  );';
157 
158       
159 
160        pwg_query($query);
161      }
162
163      redirect(PHPWG_ROOT_PATH.'admin.php?page=plugin&section=' . FLASHGAL_DIR . '%2Fadmin%2Fadmin.php');
164    }
165  }
166}
167
168// Récupération des données du module
169if (isset($_GET['edit']))
170{
171  $q = ('SELECT * FROM ' . FLASHGAL_TABLE . ' WHERE id = ' . $_GET['edit'] . ';');
172  $module = mysql_fetch_array(pwg_query($q));
173
174  $module['users'] = explode(',', $module['users']);
175  $module['groups'] = explode(',', $module['groups']);
176
177  $cats = (!empty($module['cats']) ? unserialize($module['cats']) : false);
178  $datas = (!empty($module['datas']) ? unserialize($module['datas']) : false);
179  $ext_datas = (!empty($module['ext_datas']) ? unserialize($module['ext_datas']) : false);
180
181  $template->assign(array(
182    'FLASHGAL_TITLE' => l10n('flashgal_edit_mod') . ' <i>' . trigger_event('render_flashgal_name', $module['name']) . '</i>',
183    'MODULE_NAME' => $module['name'],
184    'DESC_VALUE' => (isset($module['descr']) ? $module['descr'] : ''),
185    'show_title_CHECKED' => ($module['show_title'] == 'true' ? 'checked="checked"' : ''),
186    'on_home_CHECKED' => ($module['on_home'] == 'true' ? 'checked="checked"' : ''),
187    $module['on_home_global'].'_CHECKED' =>  'checked="checked"',
188    'on_cats_CHECKED' => ($module['on_cats'] == 'true' ? 'checked="checked"' : ''),
189    'FLASHGAL_HEIGHT' => (isset($module['height']) ? $module['height'] : ''),
190    'FLASHGAL_TRANSPARENT' => ($module['transparent'] == 'true' ? 'checked="checked"' : ''),
191    'FLASHGAL_FULLSCREEN' => ($module['fullscreen'] == 'true' ? 'checked="checked"' : ''),
192        'FLASHGAL_BGCOLOR' => $module['bgcolor'],       
193    'FLASHGAL_RECURS_CATS' => ($module['recurs_cats'] == 'true' ? 'checked="checked"' : ''),
194    'replace_thumb_CHECKED' => ($module['replace_thumb'] == 'true' ? 'checked="checked"' : ''),
195    'replace_cats_CHECKED' => ($module['replace_cats'] == 'true' ? 'checked="checked"' : ''),
196        'ENABLERESTORE' => true
197       
198        ));
199}
200else
201{
202  $module['users'] = array('guest', 'generic', 'normal', 'admin', 'webmaster');
203  $module['groups'] = array();
204  $datas = array();
205        foreach ($module_data['datas'] as $key => $value)
206        {
207                if ($value)     // == true
208                        $datas[$key] = $value;
209        }
210  $template->assign(array(
211    'FLASHGAL_TITLE' => l10n('flashgal_add_mod'),
212    'MODULE_NAME' => l10n('module_name_' . $type),
213    'show_title_CHECKED' => 'checked="checked"',
214    'global_CHECKED' => 'checked="checked"',
215    'on_cats_CHECKED' => 'checked="checked"',
216    'FLASHGAL_HEIGHT' => '400',
217    'FLASHGAL_TRANSPARENT' => 'checked="checked"',
218    'FLASHGAL_FULLSCREEN' =>  'checked="checked"',
219        'FLASHGAL_BGCOLOR' => '#FFFFFF',       
220        'ENABLERESTORE' => false
221       
222       
223        ));
224}
225
226// Selection des utilisateurs
227$template->assign('user_perm', array(
228  'GUEST' => (in_array('guest', $module['users']) ? 'checked="checked"' : ''),
229  'GENERIC' => (in_array('generic', $module['users']) ? 'checked="checked"' : ''),
230  'NORMAL' => (in_array('normal', $module['users']) ? 'checked="checked"' : ''),
231  'ADMIN' => (in_array('admin', $module['users']) ? 'checked="checked"' : ''),
232  'WEBMASTER' => (in_array('webmaster', $module['users']) ? 'checked="checked"' : '')));
233
234// Selection des groupes
235$groups = get_all_groups();
236if (!empty($groups))
237{
238  $template->assign('group_perm', array('GROUPSELECTION' => get_html_groups_selection($groups, 'groups', $module['groups'])));
239}
240
241///
242// tiico : ajouter la récupération des données par défaut (présentes dans le fichier module.inc.php)
243///
244        foreach ($module_data['datas'] as $key => $value)
245        {
246                if ($value)     // == true
247                {
248                        $template->append( 'FlashGal_Param', array(
249//                                      $key                    => true,
250                                        'name'  => $key,                                                // nom du parametre
251                                        'lib'           => l10n($key),          // libelle du parametre
252                                        'val'   => $datas[$key]                                 //  valeur du parametre
253                                ));
254                }
255               
256        }
257
258        // Affichage des categories
259        $query = '
260          SELECT id,name,uppercats,global_rank
261          FROM '.CATEGORIES_TABLE.';';
262
263
264        display_select_cat_wrapper($query,
265            (isset($module['cats']) ? unserialize($module['cats']) : ''),
266            'categories',
267            true);
268
269//    $datas = array($key => $datas[$key]);
270       
271
272// Configuration supplémentaire du module (dans le cas ou il y a d'autres parametres)
273include_once(FLASHGAL_PATH . 'modules/' . $type . '/admin/config.inc.php');
274
275$template->assign(array('OTHERS_SCRIPT' =>
276                        '<script type="text/javascript" src="'.FLASHGAL_PATH.'farbtastic/farbtastic.js"></script>
277                        <link href="'.FLASHGAL_PATH.'farbtastic/farbtastic.css" rel="stylesheet" type="text/css"  />'));
278
279
280$template->set_filenames(array('plugin_admin_content' => dirname(__FILE__) . '/template/add_module.tpl'));
281$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
282
283?>
Note: See TracBrowser for help on using the repository browser.