Betreff: Re: "Versionsprüfung" für das nächste Xoops von Predator am 12.08.2005 03:26:27
Aufwand ist gering, hab das in mein myxoopsforge Module eingebaut welches ja auf der dev.xoops.org genutzt wird.
Im Module selber:
<?php
if (!eregi("admin.php", $_SERVER['PHP_SELF'] )) { die (_XF_VE_DENIED); }
if ( $xoopsUser->isAdmin($xoopsModule->mid()) ) {
include_once(XOOPS_ROOT_PATH."/modules/xfmod/include/pre.php");
include_once(XOOPS_ROOT_PATH."/modules/xfmod/admin/admin_utils.php");
site_admin_header();
echo "<H4>"._XF_VE_LATESTVERSION."</H4>";
$data="";
flush();
$fp = @fopen("http://forge.xoops2.org/modules/xfmod/xoopsforge_version.php", "r");
if($fp) {
$data = fgets($fp, 1024);
fclose($fp);
}
if (!strstr($data, "|")) {
echo _XF_VE_ERRORCONTACT;
} else {
$ver_arr = explode("|", $data);
?>
<table align="center" border="0" cellspacing="0" cellpadding="3" class="box-table"><br/>
<tr>
<td valign="middle"><b><?php echo _XF_VE_LATEST; ?>:</b></th>
<td valign="middle"><?php echo $ver_arr[0]; ?></td>
</tr>
<tr>
<td valign="middle"><b><?php echo _XF_VE_RELEASEDATE; ?>:</b></th>
<td valign="middle"><?php echo $ver_arr[1]; ?></td>
</tr>
<tr>
<td valign="middle"><b><?php echo _XF_VE_DOWNLOADLOC; ?>:</b></th>
<td valign="middle"><?php
$cnt = count($ver_arr);
for($x=2; $x<$cnt; $x++) {
$url = explode(",",$ver_arr[$x]);
echo "<a href='http://www.myxoopsforge.de/dl/myxoopsforge/myXoopsForge/RC 1.0x/".$url[0]."'>".$url[0]."</a>n<br />";
}
?>
</td>
</tr>
</table>
<?php
}
site_admin_footer();
} else {
echo _XF_VE_DENIED;
}
?>
Auf der Serverseite:
<?php
include_once ("../../mainfile.php");
require_once(XOOPS_ROOT_PATH."/modules/xfmod/include/pre.php");
$res_package = $xoopsDB->query("SELECT r.release_date,r.name,r.release_id "
."FROM ".$xoopsDB->prefix("xf_frs_package")." p, ".$xoopsDB->prefix("xf_frs_release")." r "
."WHERE p.group_id='109' "
."AND p.package_id='9' "
."AND p.package_id=r.package_id "
."ORDER BY r.release_date DESC");
if ($xoopsDB->getRowsNum($res_package) > 0) {
$arr = $xoopsDB->fetchArray($res_package);
$ret = $arr['name']."|".date('m/d/Y',$arr['release_date']);
$res_release = $xoopsDB->query("SELECT f.filename,f.file_url "
."FROM ".$xoopsDB->prefix("xf_frs_file")." f, ".$xoopsDB->prefix("xf_frs_release")." r "
."WHERE f.release_id=r.release_id "
."AND r.release_id='".$arr['release_id']."'");
while ($row = $xoopsDB->fetchArray($res_release)) {
$ret .= "|".$row['filename'].",".$row['file_url'];
}
echo $ret;
} else {
echo "none";
}
?>
Versionsdaten werden also direkt aus dem Filerelease geholt verglichen und wenn eine neuere Version da ist, wird gleich der Download Link angezeigt.
Der Dev braucht nichts zu machen, nur entwickeln und releasen 
|