Exemplo n.º 1
0
                    }
                } else {
                    $upgrade_plugins = $_REQUEST['doupdate'];
                }
                $completed_updates = array();
                foreach ($upgrade_plugins as $plugin_name => $tf) {
                    $this_update = false;
                    foreach ($available_updates['plugins'] as $available_update) {
                        if ($available_update['key'] == $plugin_name) {
                            $this_update = $available_update;
                            break;
                        }
                    }
                    if ($this_update) {
                        echo "Downloading files: <span style='text-decoration:underline;'>" . htmlspecialchars($this_update['description']) . "</span>... ";
                        if ($update = module_config::download_update($this_update['key'])) {
                            ?>
                <span class="success_text">complete!</span>
                <a href="#" onclick="$('#update_<?php 
                            echo $this_update['key'];
                            ?>
').toggle();">[view details]</a>
                <div style="font-weight: 0.9em; padding:9px; display: none;" id="update_<?php 
                            echo $this_update['key'];
                            ?>
">
                <?php 
                            //echo '<pre>';print_r($update);exit;
                            foreach ($update['plugins'] as $available_update) {
                                if ($available_update['key'] != $this_update['key']) {
                                    // core update bug fix.
Exemplo n.º 2
0
 public function install_plugin_update_files($plugin_name)
 {
     $result = array('message' => '', 'plugin_name' => $plugin_name);
     $errors = array();
     if (!strlen(trim(module_config::c('_installation_code')))) {
         $result['message'] = 'Please enter your license code before doing an upgrade.';
     } else {
         /*$available_updates = module_config::check_for_upgrades($plugin_name);
           if($available_updates && isset($available_updates['message']) && strlen(trim($available_updates['message']))>2){
               $result['message'] = $available_updates['message'];
           }else{*/
         $completed_updates = array();
         // we useto process multiple plugin updates at a time, not any more..
         $upgrade_plugins = array($plugin_name);
         // hack so we can 'continue/break' out of loop below.
         foreach ($upgrade_plugins as $plugin_name) {
             $this_update = array('key' => $plugin_name);
             /*$this_update = false;
               foreach($available_updates['plugins'] as $available_update){
                   if($available_update['key'] == $plugin_name){
                       $this_update = $available_update;
                       break;
                   }
               }*/
             if ($this_update && strlen(trim($this_update['key']))) {
                 $result['message'] .= "Downloading files... <br/>\n";
                 if ($update = module_config::download_update($this_update['key'])) {
                     foreach ($update['plugins'] as $available_update) {
                         if ($available_update['key'] != $this_update['key']) {
                             // core update bug fix.
                             continue;
                         }
                         // have we done this yet?
                         if (isset($completed_updates[$available_update['key']])) {
                             continue;
                         }
                         $completed_updates[$available_update['key']] = true;
                         foreach ($available_update['folders'] as $file) {
                             if (!is_dir(_UCM_FOLDER . $file)) {
                                 $result['message'] .= "Folder: {$file} <br/>\n";
                                 $result['message'] .= '<span class="small">';
                                 if (is_dir(_UCM_FOLDER . $file)) {
                                     $result['message'] .= 'this folder exists, nothing will change.';
                                 } else {
                                     // check if writable
                                     if (mkdir(_UCM_FOLDER . $file, 0777, true)) {
                                         $result['message'] .= 'this new folder has been <strong>created</strong>';
                                     } else {
                                         $error = '<strong>WARNING:</strong> failed to create new folder: ' . $file;
                                         $errors[] = $error;
                                         $result['message'] .= $error;
                                     }
                                 }
                                 $result['message'] .= "</span><br/>";
                             }
                         }
                         foreach ($available_update['files'] as $file) {
                             $result['message'] .= "File: {$file} <br/>\n";
                             $result['message'] .= '<span class="small">';
                             if (in_array($file, $this->held_files)) {
                                 $error = '<strong>Custom:</strong> file not upgraded: ' . $file;
                                 $errors[] = $error;
                                 $result['message'] .= $error;
                             } else {
                                 if (!isset($available_update['file_contents'][$file])) {
                                     $error = '<strong>WARNING:</strong> failed to get file contents from server: ' . $file;
                                     $errors[] = $error;
                                     $result['message'] .= $error;
                                 } else {
                                     if (!file_put_contents(_UCM_FOLDER . $file, base64_decode($available_update['file_contents'][$file]))) {
                                         $error = '<strong>WARNING:</strong> failed to install the file: ' . $file;
                                         $errors[] = $error;
                                         $result['message'] .= $error;
                                     } else {
                                         $result['message'] .= 'this file has been <strong>installed</strong> successfully';
                                     }
                                 }
                             }
                             $result['message'] .= "</span><br/>";
                         }
                     }
                     //exit;
                 } else {
                     $error = "failed to download files ({$plugin_name}):";
                     $errors[] = $error;
                     $result['message'] .= '<span class="error_text">' . $error . '</span><br/> ';
                 }
                 //$_REQUEST['run_upgrade'] = true; // so we do the DB update again down the bottom.
             } else {
                 $error = "Failed to start update ({$plugin_name}):";
                 $errors[] = $error;
                 $result['message'] .= $error . '<br/>';
             }
         }
         /*}*/
     }
     $result['errors'] = $errors;
     if (!count($errors)) {
         $result['success'] = 1;
     }
     return $result;
 }