Skip to content
Snippets Groups Projects
Select Git revision
  • a6829cdf7dbea7b4ce9c48d6e092d9f1952668c4
  • pre-2.1b default protected
  • pre-2.1
  • pre-2.0
  • testTag
  • pre2.1b
6 results

updater.php

Blame
  • updater.php 7.64 KiB
    <?php
    $curentUpdateCanal = VBcmsGetSetting('updateCanal');
    $serverId = VBcmsGetSetting('serverId');
    $key = VBcmsGetSetting('encryptionKey');
    $vbcmsVer = VBcmsGetSetting('vbcmsVersion');
    $curentUpdateCanal = VBcmsGetSetting('updateCanal');
    
    $updateInfos = file_get_contents("https://api.vbcms.net/updater/lastest?serverId=".$serverId."&key=".$key."&version=".$vbcmsVer."&canal=".$curentUpdateCanal);
    if(isJson($updateInfos)){
        $updateInfosData = json_decode($updateInfos, true);
        if (!$updateInfosData["upToDate"]) {
            $response = $bdd->query("UPDATE `vbcms-settings` SET `value` = 0 WHERE `vbcms-settings`.`name` = 'upToDate'");
        
            $response = $bdd->query("SELECT COUNT(*) FROM `vbcms-notifications` WHERE origin = '[\"vbcms-updater\", \"notifyUpdate\"]'")->fetchColumn();
            if ($response!=1) {
                $response = $bdd->prepare("INSERT INTO `vbcms-notifications` (`id`, `origin`, `link`, `content`, `removable`, `date`, `userId`) VALUES (NULL, '[\"vbcms-updater\", \"notifyUpdate\"]', '/vbcms-admin/updater\"', ?, '0', ?, 0)");
                $response->execute([translate("isNotUpToDate"), date("Y-m-d H:i:s")]);
            }
        } else{
            $response = $bdd->query("UPDATE `vbcms-settings` SET `value` = 1 WHERE `vbcms-settings`.`name` = 'upToDate'");
            $bdd->query("DELETE FROM `vbcms-notifications` WHERE origin = '[\"vbcms-updater\", \"notifyUpdate\"]'");
        } 
    } else {
        $error = "Impossible de vérifier les mises à jour:".$updateInfos;
        $updateInfosData['version'] = translate("unknownF");
    }
    
    $response = $bdd->prepare("UPDATE `vbcms-settings` SET `value` = ? WHERE `vbcms-settings`.`name` = 'lastUpdateCheck'");
    $response->execute([date("Y-m-d H:i:s")]);
    
    $isUpToDate = $bdd->query("SELECT value FROM `vbcms-settings` WHERE name = 'upToDate'")->fetchColumn();
    $lastUpdateCheck = $bdd->query("SELECT value FROM `vbcms-settings` WHERE name = 'lastUpdateCheck'")->fetchColumn();
    if ($isUpToDate == 1) {
        $updateMessage = translate("isUpToDate");
        $textColor = "success";
    } else {
        $updateMessage = translate("isNotUpToDate");
        $textColor = "danger";
    }
    
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title><?=VBcmsGetSetting("websiteName")?> | <?=translate("update")?></title>
        <?php include 'includes/depedencies.php';?>
    </head>
    <body>
        <?php 
        include ('includes/navbar.php');
        ?>
    
        <!-- Contenu -->
        <div class="dashboardTopCard" leftSidebar="240" rightSidebar="0">
            <h3><?=translate("updateVBcms")?></h3>
            <div class="d-flex mt-5">
                <div class="vbcms-logo">
                    <img src="<?=VBcmsGetSetting("websiteUrl")?>vbcms-admin/images/vbcms-logo/raccoon-in-box-512x.png">
                </div>
                <div class="ml-5">
                    <h4>VBcms <small><?=$vbcmsVer?></small></h4>
                    <p><strong><?=$updateMessage?></strong><br>
                        <?=translate("lastChecked")?>: <?=$lastUpdateCheck?></p>
    
                    <?php
                        if ($isUpToDate == 1) {
                            #
                        } else {
                            echo '<p>Test</p>';
                            echo '<button type="button" onclick="$(\'#updateModal\').modal(\'toggle\');" class="btn btn-light">'.translate("downloadAndInstall").'</button>';
                        }
                        
                    ?>
                </div>
            </div>
        </div>
    
        <div class="page-content notTop" leftSidebar="240" rightSidebar="0">
            <div class="row">
                <div class="col">
                    <h5>Détail de la mise à jour</h5>
                    <p><span class="text-muted">Installée: </span><span class="text-<?=$textColor?>"><?=$vbcmsVer?></span>
                    <?php
                    if ($isUpToDate == 0) echo '<br><span class="text-muted">Disponible: </span><span class="text-success">'.$updateInfosData["version"].'</span>';
                    ?>
                    <br><span class="text-muted">Canal de mise à jour: </span>
                    <?php
                    if ($curentUpdateCanal == "release") {
                        echo '<span class="text-success">Release</span>';
                    } elseif ($curentUpdateCanal == "dev") {
                        echo '<span class="text-danger">Développement</span>';
                    } elseif ($curentUpdateCanal == "nightly") {
                        echo '<span class="text-warning">Bêta</span>';
                    }
                    
                    ?></p>
    
    
                </div>
                <div class="col-8"">
                    <h4>Détail de la mise à jour</h4>
                </div>
                <div class="col">
                    <h5>Obtenir de l'aide</h5>
                    <a class="text-dark" target="_blank" href="https://vbcms.net/doc"><i class="fas fa-book"></i> Documentation</a><br>
                    <a class="text-dark" target="_blank" href="https://vbcms.net/doc/faq"><i class="fas fa-question-circle"></i> Questions réponses</a><br>
                    <a class="text-dark" target="_blank" href="https://vbcms.net/manager/support"><i class="fas fa-life-ring"></i> Support</a><br>
                    <a class="text-dark" target="_blank" href="https://discord.gg/DpfF8Kz"><i class="fab fa-discord"></i> Notre discord</a>
                </div>
            </div>
    
            <div class="modal fade" id="updateModal" tabindex="-1">
    			<div class="modal-dialog">
    				<div class="modal-content">
    					<div class="modal-header">
    						<h5>Mettre à jour VBcms</h5>
    	      			</div>
    			      	<div class="modal-body">
    			        	<p>Vous êtes sur le point de télécharger et d'installer une mise à jour. Tout se fera automatiquement, vous serez automatiquement redirigé après l'installation effectuée.</p>
    			        	<p><strong>Note : Il se peut que d'autres mises à jours suivent celle-ci, référez-vous à notre documentation pour en savoir plus.</strong></p>
    			      	</div>
    	      			<div class="modal-footer">
    				        <button type="button" class="btn btn-secondary" data-dismiss="modal">Peut-être plus-tard</button>
    				        <button type="button" data-dismiss="modal" onclick="updateVBcms()" class="btn btn-success">Faire la mise à jour</button>
    	      			</div>
    	    		</div>
    	  		</div>
    		</div>
    
        </div>
        <script type="text/javascript">
        $( document ).ready(function() {
            <?php
            if(isset($error)&&!empty($error)){
                echo('SnackBar({
                    message: "Check la console",
                    status: "danger",
                    timeout: false
                });');
                echo('console.log(atob(\''.base64_encode($error).'\'));');
            }
            ?>
        });
        	async function updateVBcms(){
        		$.get("<?=VBcmsGetSetting("websiteUrl")?>backTasks?updateVBcms", function(data) {
    				if (data=="") {
    					SnackBar({
                            message: "backTasks ne retourne rien: "+data,
                            status: "danger",
                            timeout: false
                        });
    				}else{
    					details = JSON.parse(data);
                        if (details.success == true) {
                            window.location.replace(details.link);
                        } else {
                            if (details.code == 0) {
                                SnackBar({
                                    message: "Impossible de télécharger la mise à jour",
                                    status: "danger",
                                    timeout: false
                                });
                            } else if(details.code == 1) {
                                SnackBar({
                                    message: "Impossible d'ouvrir l'archive de la mise à jour",
                                    status: "danger",
                                    timeout: false
                                });
                            }
                        }
    				}
    			});
        	}
        </script>
    </body>
    </html>