4095f482a39855be745fc5ff956fa89215a9cdfa
[atutor.git] / mods / patcher / include / common.inc.php
1 <?php\r
2 function print_errors( $errors, $notes='' ) {\r
3         ?>\r
4         <div class="input-form">\r
5         <table border="0" class="errbox" cellpadding="3" cellspacing="2" width="100%" summary="" align="center">\r
6         <tr class="errbox">\r
7                 <td>\r
8                 <h3 class="err"><img src="images/bad.gif" align="top" alt="" class="img" /> Warning</h3>\r
9                 <?php\r
10                         echo '<ul>';\r
11                         foreach ($errors as $p) {\r
12                                 echo '<li>'.$p.'</li>';\r
13                         }\r
14                         echo '</ul>';\r
15                 ?>\r
16                 </td>\r
17         </tr>\r
18         <tr>\r
19                 <td>\r
20                 <?php echo $notes; ?>\r
21                 </td>\r
22         </tr>\r
23         </table>\r
24         </div>\r
25 <?php\r
26 }\r
27 \r
28 function print_feedback( $feedback, $notes='' ) {\r
29         ?>\r
30         <div class="input-form">\r
31         <table border="0" class="fbkbox" cellpadding="3" cellspacing="2" width="100%" summary="" align="center">\r
32         <tr class="fbkbox">\r
33         <td><h3 class="feedback2"><img src="images/feedback.gif" align="top" alt="" class="img" /> The patch has been installed successfully!</h3>\r
34                 <?php\r
35                         echo '<ul>';\r
36                         foreach ($feedback as $p) {\r
37                                 echo '<li>'.$p.'</li>';\r
38                         }\r
39                         echo '</ul>';\r
40                 ?></td>\r
41         </tr>\r
42         <tr>\r
43                 <td>\r
44                 <?php echo $notes; ?>\r
45                 </td>\r
46         </tr>\r
47         </table>\r
48         </div>\r
49 <?php\r
50 }\r
51 \r
52 \r
53 /**\r
54 * update patches.remove_permission_files & patches.backup_files\r
55 * @access  private\r
56 * @author  Cindy Qi Li\r
57 */\r
58 function updatePatchesRecord($patch_id, $updateInfo)\r
59 {\r
60         global $db;\r
61         \r
62         $sql_prefix = "Update ". TABLE_PREFIX. "patches set ";\r
63         \r
64         foreach ($updateInfo as $key => $value)\r
65         {\r
66                 $sql_middle .= $key . "='" . $value . "', ";\r
67         }\r
68         \r
69         $sql = substr($sql_prefix . $sql_middle, 0, -2) . " where patches_id = " . $patch_id;\r
70 \r
71         $result = mysql_query($sql, $db) or die(mysql_error());\r
72         \r
73         return true;\r
74 }\r
75 \r
76 /**\r
77 * This function deletes $dir recrusively without deleting $dir itself.\r
78 * @access  public\r
79 * @param   string $charsets_array       The name of the directory where all files and folders under needs to be deleted\r
80 * @author  Cindy Qi Li\r
81 */\r
82 function clear_dir($dir) {\r
83         include_once(AT_INCLUDE_PATH . '/lib/filemanager.inc.php');\r
84         \r
85         if(!$opendir = @opendir($dir)) {\r
86                 return false;\r
87         }\r
88         \r
89         while(($readdir=readdir($opendir)) !== false) {\r
90                 if (($readdir !== '..') && ($readdir !== '.')) {\r
91                         $readdir = trim($readdir);\r
92 \r
93                         clearstatcache(); /* especially needed for Windows machines: */\r
94 \r
95                         if (is_file($dir.'/'.$readdir)) {\r
96                                 if(!@unlink($dir.'/'.$readdir)) {\r
97                                         return false;\r
98                                 }\r
99                         } else if (is_dir($dir.'/'.$readdir)) {\r
100                                 /* calls lib function to clear subdirectories recrusively */\r
101                                 if(!clr_dir($dir.'/'.$readdir)) {\r
102                                         return false;\r
103                                 }\r
104                         }\r
105                 }\r
106         } /* end while */\r
107 \r
108         @closedir($opendir);\r
109         \r
110         return true;\r
111 }\r
112 \r
113 /**\r
114  * Check if the patch has been installed\r
115  */\r
116 function is_patch_installed($patch_id)\r
117 {\r
118         global $db;\r
119         \r
120         // Only displays the patches that are not installed\r
121         $sql = "select count(*) num_of_installed from ".TABLE_PREFIX."patches " .\r
122                "where atutor_patch_id = '" . $patch_id ."'".\r
123                " and status like '%Installed'";\r
124 \r
125         $result = mysql_query($sql, $db) or die(mysql_error());\r
126         $row = mysql_fetch_assoc($result);\r
127         \r
128         if ($row["num_of_installed"] > 0) return true;\r
129         else return false;\r
130 }\r
131 \r
132 ?>\r