- admin\factory\Releases: logika biznesowa (wersje, licencje, toggle beta) - admin\controls\Releases: handlery HTTP (promote, demote, save/delete/toggle licencji) - admin\view\Releases: renderowanie przez \Tpl - admin/templates/releases/main-view.php: dwa taby (Wersje + Licencje), tabela wersji z przyciskami promocji, CRUD licencji z formularzem inline - templates/additional-menu.php: link "Releases & Licencje" w menu dewelopera - updates/versions.php: przebudowa — czyta z DB (pp_update_licenses, pp_update_versions), auto-discovery nowych ZIPow jako beta - config.php: dodano host_remote dla polaczen zdalnych Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
72 lines
2.1 KiB
PHP
72 lines
2.1 KiB
PHP
<?
|
|
require_once '../config.php';
|
|
require_once '../libraries/medoo/medoo.php';
|
|
|
|
$mdb = new medoo( [
|
|
'database_type' => 'mysql',
|
|
'database_name' => $database['name'],
|
|
'server' => $database['host'],
|
|
'username' => $database['user'],
|
|
'password' => $database['password'],
|
|
'charset' => 'utf8'
|
|
] );
|
|
|
|
$current_ver = 1691; // aktualizowane automatycznie przez build-update.ps1
|
|
|
|
// 1. Skan filesystem — lista istniejących ZIPów
|
|
$versions = [];
|
|
for ( $i = 1; $i <= $current_ver; $i++ )
|
|
{
|
|
$dir = substr( number_format( $i / 1000, 3 ), 0, strlen( number_format( $i / 1000, 3 ) ) - 2 ) . '0';
|
|
$version_old = number_format( $i / 1000, 2 );
|
|
$version_new = number_format( $i / 1000, 3 );
|
|
|
|
if ( file_exists( '../updates/' . $dir . '/ver_' . $version_old . '.zip' ) )
|
|
$versions[] = $version_old;
|
|
|
|
if ( file_exists( '../updates/' . $dir . '/ver_' . $version_new . '.zip' ) )
|
|
$versions[] = $version_new;
|
|
}
|
|
$versions = array_unique( $versions );
|
|
|
|
// 2. Walidacja klucza licencji
|
|
$license = $mdb->get( 'pp_update_licenses', '*', [ 'key' => ( $_GET['key'] ?? '' ) ] );
|
|
if ( !$license )
|
|
die();
|
|
|
|
// 3. Sprawdź ważność daty
|
|
if ( $license['valid_to_date'] && $license['valid_to_date'] < date( 'Y-m-d' ) )
|
|
die();
|
|
|
|
// 4. Auto-discovery: rejestruj nowe ZIPy jako beta
|
|
$known = array_flip( $mdb->select( 'pp_update_versions', 'version', [] ) ?: [] );
|
|
foreach ( $versions as $ver )
|
|
{
|
|
if ( !isset( $known[$ver] ) )
|
|
{
|
|
@$mdb->insert( 'pp_update_versions', [
|
|
'version' => $ver,
|
|
'channel' => 'beta',
|
|
'created_at' => date( 'Y-m-d H:i:s' )
|
|
] );
|
|
$known[$ver] = true;
|
|
}
|
|
}
|
|
|
|
// 5. Filtruj wersje wg kanału (beta widzi beta+stable, reszta tylko stable)
|
|
$channels = $license['beta'] ? [ 'beta', 'stable' ] : [ 'stable' ];
|
|
$allowed = array_flip( $mdb->select( 'pp_update_versions', 'version', [ 'channel' => $channels ] ) ?: [] );
|
|
|
|
// 6. Wypisz dostępne wersje
|
|
$valid_to_version = $license['valid_to_version'];
|
|
foreach ( $versions as $ver )
|
|
{
|
|
if ( !isset( $allowed[$ver] ) )
|
|
continue;
|
|
|
|
if ( $valid_to_version && $ver > $valid_to_version )
|
|
continue;
|
|
|
|
echo $ver . PHP_EOL;
|
|
}
|