source: trunk/plugins/add_index/admin/main_page.php @ 1912

Last change on this file since 1912 was 1912, checked in by rub, 18 years ago

Update svn properties (svn:eol-style and svn:keywords)

  • Property svn:keywords set to Author Date Id Revision
File size: 6.8 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | PhpWebGallery - a PHP based picture gallery                           |
4// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
5// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
6// | Copyright (C) 2006-2007 Ruben ARNAUD - team@phpwebgallery.net         |
7// +-----------------------------------------------------------------------+
8// | last modifier : $Author: rub $
9// | revision      : $Revision: 1912 $
10// +-----------------------------------------------------------------------+
11// | This program is free software; you can redistribute it and/or modify  |
12// | it under the terms of the GNU General Public License as published by  |
13// | the Free Software Foundation                                          |
14// |                                                                       |
15// | This program is distributed in the hope that it will be useful, but   |
16// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
17// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
18// | 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           |
22// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
23// | USA.                                                                  |
24// +-----------------------------------------------------------------------+
25
26if ((!defined('PHPWG_ROOT_PATH')) or (!(defined('IN_ADMIN') and IN_ADMIN)))
27{
28  die('Hacking attempt!');
29}
30
31// +-----------------------------------------------------------------------+
32// | include                                                               |
33// +-----------------------------------------------------------------------+
34include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
35include_once(PHPWG_ROOT_PATH.'include/common.inc.php');
36
37// +-----------------------------------------------------------------------+
38// | Check Access and exit when user status is not ok                      |
39// +-----------------------------------------------------------------------+
40check_status(ACCESS_ADMINISTRATOR);
41
42// +-----------------------------------------------------------------------+
43// | Functions                                                             |
44// +-----------------------------------------------------------------------+
45/**
46 * returns an array containing sub-directories
47 * recursive by default
48 *
49 * directories nammed ".svn" are omitted
50 *
51 * @param string $path
52 * @param bool $recursive
53 * @return array
54 */
55function get_add_index_directories($path, $recursive = true)
56{
57  $dirs = array();
58
59  if (is_dir($path))
60  {
61    if ($contents = opendir($path))
62    {
63      while (($node = readdir($contents)) !== false)
64      {
65        if (
66            is_dir($path.'/'.$node)
67            and $node != '.'
68            and $node != '..'
69            and $node != '.svn'
70           )
71        {
72          array_push($dirs, $path.'/'.$node);
73          if ($recursive)
74          {
75            $dirs = array_merge($dirs, get_add_index_directories($path.'/'.$node));
76          }
77        }
78      }
79    }
80  }
81
82  return $dirs;
83}
84
85// +-----------------------------------------------------------------------+
86// | Main                                                                  |
87// +-----------------------------------------------------------------------+
88// Compute values
89$index_file_src=$conf['add_index_source_directory_path'].$conf['add_index_filename'];
90$overwrite_file=isset($_GET['overwrite']);
91$site_id = (isset($_GET['site_id']) and is_numeric($_GET['site_id']) 
92            ? $_GET['site_id'] 
93            : 0);
94
95// Init values
96$add_index_results = array();
97$count_copy = 0;
98$count_skip = 0;
99$count_error = 0;
100
101if (@file_exists($index_file_src))
102{
103  $query = '
104select
105  galleries_url
106from
107  '.SITES_TABLE;
108  if (!empty($site_id))
109  {
110    $query .= '
111where
112  id = '.$site_id;
113  }
114    $query .= '
115order by
116 id';
117
118  $result = pwg_query($query);
119
120  if (mysql_num_rows($result) > 0)
121  {
122    while (list($galleries_url) = mysql_fetch_row($result))
123    {
124      if (!url_is_remote($galleries_url))
125      {
126        //echo $galleries_url.'<BR>';
127        foreach (get_add_index_directories($galleries_url) as $dir_galleries)
128        {
129          $file_dest = $dir_galleries.'/'.$conf['add_index_filename'];
130          if ($overwrite_file or !@file_exists($file_dest))
131          {
132            if (copy($index_file_src, $file_dest))
133            {
134              array_push($add_index_results,
135                sprintf(l10n('add_index_file_copied'), $file_dest));
136              $count_copy++;
137            }
138            else
139            {
140              array_push($page['errors'],
141                sprintf(l10n('add_index_file_not_copied'), $file_dest));
142              $count_error++;
143            }
144          }
145          else
146          {
147            $count_skip++;
148          }
149        }
150      }
151      else
152      {
153        if (!empty($site_id))
154        {
155          array_push($page['errors'],
156            sprintf(l10n('add_index_not_local_site'), 
157              $galleries_url, $site_id));
158        }
159      }
160    }
161  }
162
163  // Show always an result, defaut (0 copy, $count_copy == $count_skip == 0)
164  if (($count_copy != 0) or ($count_skip == 0))
165  {
166    array_push($add_index_results,
167      l10n_dec('add_index_nb_copied_file', 'add_index_nb_copied_files',
168        $count_copy));
169  }
170  if ($count_skip != 0)
171  {
172    array_push($add_index_results,
173      l10n_dec('add_index_nb_skipped_file', 'add_index_nb_skipped_files',
174        $count_skip));
175  }
176  if ($count_error != 0)
177  {
178    array_push($page['errors'],
179      l10n_dec('add_index_nb_not_copied_file', 'add_index_nb_not_copied_files',
180        $count_error));
181  }
182}
183else
184{
185  array_push($page['errors'],
186    sprintf(l10n('add_index_src_file_dont_exists'), $index_file_src));
187}
188
189// +-----------------------------------------------------------------------+
190// | template initialization                                               |
191// +-----------------------------------------------------------------------+
192$template->set_filenames(array('main_page' => dirname(__FILE__).'/main_page.tpl'));
193
194if (count($add_index_results) != 0)
195{
196  foreach ($add_index_results as $result)
197  {
198    $template->assign_block_vars('add_index_results.result', array('RESULT' => $result));
199  }
200}
201
202// +-----------------------------------------------------------------------+
203// | Sending html code                                                     |
204// +-----------------------------------------------------------------------+
205$template->assign_var_from_handle( 'ADMIN_CONTENT', 'main_page');
206
207?>
Note: See TracBrowser for help on using the repository browser.