Witam,
Ostatnio napisalem skrypt sprawdzajacy czy jest cos nowego na cvs.
Chce podzielic sie z wami swoim kodem. Mam nadzieje ze komus sie przyda.
Skrypt jest skomentowany, jest to testowa wersja, calkowicie integralna z Coyote.
// Poprawione zgodnie z uwagami.
<?php
/*************************************************************************
** Coyote Project
**
** Update.php
**
** File name : update.php
** Autor : Dominium
** License : GPL
**************************************************************************
*/
DEFINE('COYOTE', true);
$root_dir = './';
$cvs = 'http://cvs.4programmers.net/cgi-bin/cvsweb/coyote/ChangeLog'; // Adres servera CVS
include_once($root_dir . 'extension.inc');
include_once($root_dir . 'common.' . $phpEx);
if ( $user->data['user_level'] <= MODERATOR )
{
trigger_error($user->lang['E_AUTH_FAILED']);
}
if ( $_GET['action'] == 'update' )
{
// Pobieramu 1024 znaki z pliku ChangeLog i zapisujemy na dysku.
$fileremote = @fopen($cvs, 'r');
$remote = @fread($fileremote, 1024);
@fclose($fileremote);
$fp = fopen("ChangeLog", "w");
// zapisanie danych
fputs($fp, $remote);
header("Location: update.php");
}
if ( $_POST['action'] == 'check_update' )
{
if ( !ini_get('allow_url_fopen') )
{
$template->assign(array('CONTENT' => 'Nie można sprawdzić nowych aktualizacji. allow_url_fopen jest wyłączony w tym systemie.'));
}
// Pobieramy dane z serwera CVS
$fileremote = @fopen($cvs, 'r');
$remote = @fread($fileremote, 1024);
$remote = md5($remote);
@fclose($fileremote);
// Pobieramu dane z pliku lokalnego
$filelocal = @fopen(''.$config['SITE_URL'].'ChangeLog', 'r');
$local = @fread($filelocal, 1024);
$local = md5($local);
@fclose($filelocal);
// Spradzamy czy ma jakas zawartosc.
if ( $remote == '' )
{
$template->assign(array('CONTENT' => 'Nie można sprawdzić nowych aktualizacji.'));
}
// Sprawdzamy czy hashe obu plikow sa identyczne.
if ( $local == $remote )
{
$template->assign(array('CONTENT' => 'Posiadasz najnowszą wersje Coyote.'));
} else {
$template->assign(array('CONTENT' => 'Nowa wersja Coyote jest już dostępna. Sciągnij nowe aktualizacje z <a href="http://cvs.4programmers.net/cgi-bin/cvsweb/coyote/">Coyote</a>.<br><b>Pamiętaj aby zgrać plik ChangeLog z nowej wersji.<br>Możesz to zrobic automatycznie klikając <a href="'.$config['SITE_URL'].'update.php?action=update">tu </a></b>.'));
}
$template->assign(array('DISABLEFORM' => 'style="display: none"'));
page_display('update');
} else {
$template->assign(array('DISABLEDIV' => 'style="display: none"'));
page_display('update');
}
?>
Template:
{INCLUDE index_header.tpl}
<div class="content" >
<div class="contentTop">
<div style="padding: 20px; text-align: center">
<div align="center">
<script type="text/javascript" src="{SITE_URL}templates/NewAge/scripts.js"></script>
<div id="tab2Content" {DISABLEFORM}>
<form method="POST" action"update.php">
<input type="submit" value="Sprawdź aktualizacje">
<input type="hidden" name="action" value="check_update">
</form>
</div>
<div id="tab2Content" {DISABLEDIV}>
<p align="left" >{CONTENT}</p>
</div>
</div>
</div>
</div>
{INCLUDE right_menu.tpl}
<div style="clear: both"></div>
</div>
{INCLUDE index_footer.tpl}
Pozdrawiam.