source: extensions/set_plugins/main.inc.php @ 11381

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

[extensions] set_plugins Storing the state of the fields

File size: 4.3 KB
Line 
1<?php 
2/*
3Version: auto
4Plugin Name: set_plugins
5Plugin URI: http://piwigo.org/ext/extension_view.php?eid=550
6Author: cljosse
7Description: Active/déactive tous les plugins installés.
8*/
9
10// Chech whether we are indeed included by Piwigo.
11if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
12
13// Define the path to our plugin.
14define('SET_PLUGINS_PATH', PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
15load_language('plugin.lang', SET_PLUGINS_PATH);
16// Hook on to an event to show the administration page.
17
18add_event_handler('get_admin_plugin_menu_links', 'set_plugins_admin_menu');
19// Add an entry to the 'Plugins' menu.
20function set_plugins_admin_menu($menu) {
21  array_push(
22    $menu,
23    array(
24      'NAME'  => 'Set_plugins',
25      'URL'   => get_admin_plugin_menu_link(dirname(__FILE__)).'/admin.php'
26    )
27  );
28  return $menu;
29}
30
31add_event_handler('loc_end_page_header','set_plugins_add'); 
32function set_plugins_add() {
33  global $user, $template, $val,$page,$conf;
34  if (!isset($page['body_id'])) return;
35   if (!isset($page['body_id'])) return;
36
37 
38
39 
40  switch($page['body_id']){
41          case  'theAdminPage':     
42      switch($page['page']){
43                    case 'plugins_list':                     
44            if(!isset($template)) return ;     
45             Affiche_set_plugins();
46//============================================================
47                break;
48
49 case 'plugins':         
50 if (!isset($page['tab'])) return;
51 if ($page['tab']!="installed") return ; 
52  Affiche_set_plugins();
53        break;
54
55                                //==============================================================================
56                                } 
57                 
58                break;
59
60
61}
62
63       
64return false;
65 }
66
67 
68function Affiche_set_plugins(){
69  global $user, $template, $val,$page,$conf;
70    include_once(SET_PLUGINS_PATH."include/constants.php");       
71
72    $all_tpl_vars = $template->get_template_vars('plugins'); 
73    if(!$all_tpl_vars)  return;   
74
75    include_once(SET_PLUGINS_PATH.'include/affiche.php');     
76    $val_state=""; 
77    if(  isset($_POST['unset_plugins']) || isset($_POST['set_plugins'])  ){
78     if(isset($_POST['unset_plugins'])  ) 
79                    $val_state='inactive';
80      elseif(isset($_POST['set_plugins'])  ) 
81        $val_state='active';
82   
83
84    if($val_state!=""){ 
85      if($val_state=="activate")
86          $sens ="DESC";
87      else
88          $sens="ASC";
89    //==== pré-liste ===
90      $query = 'SELECT *
91                FROM ' . PLUGINS_TABLE . '
92           WHERE `state` NOT LIKE "'.$val_state. '" AND id!="' . "set_plugins" . '"
93            ORDER BY `id` '.$sens.'
94           LIMIT '.$nb.'
95      ';
96          $result = pwg_query($query); 
97       
98      $query = '
99      UPDATE '.PLUGINS_TABLE.'
100      SET state="'.$val_state.'"
101      WHERE `state` NOT LIKE "'.$val_state. '" AND id!="' . "set_plugins" . '"
102      ORDER BY `id`  '.$sens.'
103      LIMIT '.$nb.';';
104      pwg_query($query); 
105 //=====================================
106
107      $liste_plugins = array();
108      if($result)
109        while ($row = pwg_db_fetch_assoc($result)) { 
110       
111         $url =  $row['id'] ;
112         $vers= $row['version'];
113         $state=$row['state'];
114         array_push($liste_plugins, array('plugin' => $url,'version'=>$vers,'state' =>$state ) );
115        }   
116  //=====================================       
117       
118       
119        $redirect_url = get_root_url().'admin.php?page='.$_GET['page'];
120        save_config(); 
121        unset ($_POST); 
122        redirect($redirect_url);
123      }
124    }
125               $template->set_filenames(
126                array(
127                  'plugin' => dirname(__FILE__).'/admin.tpl'
128                )         
129              );
130              $template->set_filenames(
131              array(    'cl_plugin' => dirname(__FILE__).'/admin.tpl'  )         
132              );
133
134 
135 //===========================================================
136 $header_1='<div class="titlePage">
137  <h2>'.l10n("set_plugins").l10n("Version").": ".$cl_set_plugins_plugin['version'] .'</h2>
138';
139
140              $bpplus=$header_1.$template->parse('cl_plugin', true);
141             
142              $template-> assign('ADMIN_CONTENT',$bpplus); 
143             
144              $bpplus=$template->parse('plugins', true);
145              $template-> concat('ADMIN_CONTENT',$bpplus); 
146
147
148}
149?>
Note: See TracBrowser for help on using the repository browser.