source: extensions/set_plugins/set_plugins_class.php @ 11497

Last change on this file since 11497 was 11497, checked in by cljosse, 13 years ago

[extensions] set_plugins add functions

File size: 9.9 KB
Line 
1<?php
2/***************************************************************************/
3class set_plugins  {
4  //=============================================================================
5  function set_plugins_admin_menu($menu) {
6    array_push(
7      $menu,
8      array(
9        'NAME'  => 'Set_plugins',
10        'URL'   => get_admin_plugin_menu_link(dirname(__FILE__)).'/admin.php'
11      )
12    );
13    return $menu;
14  }
15  //============================================================================
16  function begin_admin() {
17    global $erreur_message,$liste_des_plugins_activés,$liste_active_plugins,$page; 
18    //========= Liste des plugins actifs =================   
19    if (!isset($page['body_id'])) return;
20    if($page['body_id']!='theAdminPage' ) return ;
21    if($page['page']=='plugins_list' || $page['page']=='plugins'){
22      $plugins = new plugins();
23      $plugins->sort_fs_plugins('name');
24      $liste_des_plugins_activés = array();
25      foreach ($plugins->fs_plugins as $plugin_id => $fs_plugin){
26        if(isset( $plugins->db_plugins_by_id[$plugin_id])){
27          $State_id=$plugins->db_plugins_by_id[$plugin_id]['state'] ;
28          if($State_id=="active" && $plugin_id!="set_plugins")
29            array_push($liste_des_plugins_activés,$plugin_id);
30        }     
31      }   //foreach
32      if (isset($_GET['set'])){       
33  //pwg_set_session_var('plugins_new_order', $_GET['plugins_new_order']);
34  //exit;
35        $ret['config']=$_GET;
36        $ret['liste_plugins']=$liste_des_plugins_activés;
37        //  array_push($ret,$liste_des_plugins_activés);
38        if($_GET['config']['liste_visible'])
39             set_plugins::save_config();
40        echo json_encode($ret);   
41 
42        exit;
43      }
44      $liste_active_plugins=$liste_des_plugins_activés;
45    }
46  }
47  //============================================================================
48  function set_plugins_add() {
49    global $user, $template, $val,$page,$conf,$erreur_message,$infos_message;
50    global $liste_des_plugins_activés,$liste_active_plugins;
51    if (!isset($page['body_id'])) return;
52
53    switch($page['body_id']){
54        case  'theAdminPage':
55        switch($page['page']){
56           case 'plugins_list':
57              if(!isset($template)) return ;
58                set_plugins::Affiche_set_plugins();
59              break;
60          case 'plugins':
61            if (!isset($page['tab'])) return;
62            if ($page['tab']!="installed") return ;
63              set_plugins::Affiche_set_plugins();
64              break;
65            }
66    }
67  }
68//============================================================================
69  function messages_admin(){
70    global $template,$page, $template, $pwg_loaded_plugins,$infos_message,$erreur_message,$infos_warning;
71   
72    if ( (isset($_GET['page']) AND $_GET['page'] == 'plugins_list') ) {
73    if (!isset($page['infos'])) $page['infos']=array();
74        if  ($infos_message != "")  {
75            array_push($page['infos'],  $infos_message);
76            $infos_message="";
77     
78        }       
79        if (count($page['infos']) != 0){
80          $template->assign('infos', $page['infos']);
81        }
82        if (!isset($page['errors'])) $page['errors']=array();
83        if  ($erreur_message != "")  {
84            array_push($page['errors'], $erreur_message);
85            $erreur_message="";
86        }       
87        if (count($page['errors']) != 0){
88          $template->assign('errors', $page['errors']);
89        }
90
91        if (!isset($page['warnings'])) $page['warnings']=array();
92        if  ($infos_warning!= "")  {
93            array_push($page['warnings'], $infos_warning);
94            $infos_warning= "";
95        }       
96        if (count($page['warnings']) != 0){
97          $template->assign('warnings', $page['warnings']);
98        }
99    }
100  }
101  //==========================================================================================
102  function set_var($key,$defaut){
103     global   $set_plugins_parametres;
104      global $infos_message;
105
106      if(isset($set_plugins_parametres) && isset($set_plugins_parametres[$key]))
107          $ret=$set_plugins_parametres[$key];
108
109          $ret= (isset($ret))?$ret:$defaut;
110          $ret=isset($_POST[$key])?$_POST[$key]:$ret;
111       return $ret ;
112  }
113  //================================================================
114  function save_config(){
115    global $list_visible, $state,$liste,$nb,$page,$conf ;
116    global $infos_message,$infos_warning,$erreur_message ;
117    $config=array();
118    $config = array(
119                  'list_visible' => $list_visible,
120                  'state' => $state,
121                  'liste'=>$liste,
122                  'nb' =>$nb
123              );
124        // $infos_warning .="save_config" . set_plugins::memo_var($conf['set_plugins'] );
125         $conf['set_plugins']= (serialize($config));
126         conf_update_param('set_plugins', $conf['set_plugins']);
127       
128
129      }
130  //=================================================================
131   function memo_var($variables){
132    ob_start();
133    echo '<pre>';
134    print_r($variables);
135    echo '</pre>';
136    $m= ob_get_contents();
137    ob_end_clean();
138    return $m;
139  }
140  //===================================================================
141function Affiche_set_plugins(){
142global $infos_message,$liste_des_plugins_activés,$erreur_message ;
143
144  include_once(SET_PLUGINS_PATH."include/constants.php");
145   include(SET_PLUGINS_PATH.'include/affiche.php');
146
147  if(  isset($_POST['submit'])){     
148    $state="";
149    if($_POST['submit']==l10n("Deactivate")  )
150        $state='inactive';
151    elseif($_POST['submit']==l10n("Activate")  )
152      $state='active';
153    if($state!=""){
154      if($state=="inactive")
155          $sens ="DESC";
156      else
157          $sens="ASC";
158     
159      //============================
160      $query = 'SELECT *
161      FROM ' . PLUGINS_TABLE . '
162      WHERE `state` NOT LIKE "'.$state. '" AND id!="' . "set_plugins" . '"
163      ORDER BY `id` '.$sens.'
164      LIMIT '.$nb.'
165      ';
166      $result = pwg_query($query);
167      //======= mise à jour =========
168      if($result){
169        $query = '
170        UPDATE '.PLUGINS_TABLE.'
171        SET state="'.$state.'"
172        WHERE `state` NOT LIKE "'.$state. '" AND id!="' . "set_plugins" . '"
173        ORDER BY `id`  '.$sens.'
174        LIMIT '.$nb.';';
175        pwg_query($query);
176      }
177      //=====================================
178      if(isset($result) && $result==true){
179       $liste= array_unique($liste);
180       if(!array_search($add_plugins, $liste)){
181        array_push($liste,  $add_plugins );
182       }
183        while ($row = pwg_db_fetch_assoc($result)) {
184          $url =  $row['id'] ;
185          array_push($liste,  $url);
186        }
187      }
188    }else if  ($_POST['submit']==l10n('store') ){
189      $liste = array();
190      $state="active";
191      $query = 'SELECT *
192      FROM ' . PLUGINS_TABLE . '
193      WHERE `state` LIKE "active" AND id!="' . "set_plugins" . '"
194      ';
195      $result = pwg_query($query);
196     if(isset($result) && $result==true){
197         $liste_plugins = array();
198          while ($row = pwg_db_fetch_assoc($result)) {
199            $url =  $row['id'] ;
200            //array_push($liste_plugins, array('plugin' => $url ) );
201            array_push($liste,  $url );
202          }
203      }
204      $nb=count($liste_plugins);
205
206    } 
207   if(isset($result) && $result==true){
208      $redirect_url = get_root_url().'admin.php?page='.$_GET['page'];   
209      set_plugins::save_config();
210      $_POST['set']="";
211      $set="";
212      include(SET_PLUGINS_PATH.'include/affiche.php');
213     // redirect($redirect_url);
214    }
215     
216  }
217  $template->set_filenames(
218    array(    'cl_plugin' => SET_PLUGINS_PATH_ABS.'template/admin.tpl'  )
219    );
220
221  //===========================================================
222  $header_1='<div id="titrePage">
223  <h2>'.l10n("set_plugins").l10n("Version").": ".$cl_set_plugins_plugin['version'] .'</h2>
224  </div>';
225    $bpplus=$header_1.$template->parse('cl_plugin', true); 
226    $all_tpl_vars = $template->get_template_vars('ADMIN_CONTENT');
227    $template-> assign('ADMIN_CONTENT',$bpplus);
228    $template-> concat('ADMIN_CONTENT',$all_tpl_vars);
229}
230
231//========================================
232function save_to_file($liste){
233global $infos_message;
234$edited_file=set_plugins::get_file_name();
235  if (file_exists($edited_file)){
236        copy($edited_file, substr_replace($edited_file, '.bak', strrpos($edited_file , '.'), 0) );
237   }
238     if ($file = @fopen($edited_file , "w")) {
239          $liste= array_unique($liste);
240          @fwrite($file , serialize($liste));
241          @fclose($file);
242          $infos_message.=l10n("save config").set_plugins::memo_var($edited_file);         
243          unset($_POST['submit']);
244      }
245}
246//==============================================
247function restore_from_file(){
248  global $infos_message,$edited_file;
249  $content_file = file_get_contents($edited_file);
250  return unserialize($content_file) ;
251}
252//===============================================
253function get_file_name(){
254global  $edited_file,$infos_message;
255 
256  $dir = realpath("./local/plugins");   
257  if (!is_dir($dir)){ 
258  $dir = realpath("./local")."\\plugins";   
259   $umask = umask(0);
260    $mkd = @mkdir($dir, 0755, true );
261    umask($umask);
262    }
263   $dir = realpath("./local/plugins/set_plugins");   
264  if (!is_dir($dir)){   
265    $dir= realpath('./local/plugins'). "\\set_plugins";
266    $umask = umask(0);
267    $mkd = @mkdir($dir, 0755, true );
268    umask($umask);
269    if ($mkd==false){
270      fatal_error( "$dir ".l10n('no write access'));       
271    } 
272  //  $file = $dir.'\\.htaccess';
273   // @file_put_contents( $file, 'allow from all' );
274  }   
275  $dir=realpath('./local/plugins/set_plugins');
276  if(!isset($edited_file) || $edited_file=="") 
277  $edited_file=$dir."/config.txt";
278  $edited_file=str_replace("\\","/", $edited_file);
279  return $edited_file ;
280}
281
282}// fin classe
283?>
Note: See TracBrowser for help on using the repository browser.