1

Temat: eStats 4.9.92 - wersja eksperymentalna

Po wielu opóźnieniach (o wielu różnych przyczynach) udostępniam wreszcie "brakujące ogniwo", czyli wersję skryptu, która przynosi wiele nowości i ulepszeń przeznaczonych dla wersji 5.x eStats, ale zachowującą możliwie dużą kompatybilność z serią 4.9.x oraz działającą stabilnie. Proces aktualizacji wymaga pewnej wiedzy na temat działania skryptu itd., nie jest także zautomatyzowany (wymaga ręcznej modyfikacji pliku konfiguracyjnego oraz resetu ustawień skryptu), dlatego zaleca się wykonanie kopii zapasowej oraz ewentualnej aktualizacji testowej na serwerze testowym.
Zapraszam do testowania (zautomatyzowana "świeża" instalacja dostępna jest obecnie tylko dla baz MySQL), w oczekiwaniu na wersję 5.0, która być może zostanie wydana przed końcem roku.

Główne nowości:

- nowy motyw - Fresh;
- sterowniki baz danych oparte o PDO;
- wsparcie dla SQLite2 zastąpione wsparciem dla SQLite3 (wymaga ręcznej konwersji bazy danych);
- przyśpieszone pobieranie danych (szczególnie zauważalne przy dużej ilości rekordów w tabeli);
- dodane nowe mapy dla Geolokalizacji;
- nowy format pliku konfiguracyjnego (wymaga ręcznej modyfikacji).

Pełna lista zmian (4.9.92, 4.9.91 i 4.9.90).

Pobieralnia:

ZIP: 976.85 KB.
TAR.BZ2: 683.21 KB.

Aktualizowanie z wersji 4.9.xx

Aby dokonać aktualizacji należy po wymianie plików zaktualizować plik konfiguracyjny do nowego formatu.
Można w tym celu użyć poniższego skryptu:

<?php
include ('conf/config.php');

echo '<?php
define(\'ESTATS_DATABASE_DRIVER\', \''.$DBType.'\');
define(\'ESTATS_DATABASE_CONNECTION\', \'';

switch ($DBType)
{
	case 'MySQL':
		echo 'mysql:'.$DBHost.';dbname='.$DBName;
	break;
	case 'PostgreSQL':
		echo 'pgsql:'.$DBHost.';dbname='.$DBName;;
	break;
	case 'SQLite':
		echo 'sqlite:'.realpath($DataDir.'estats_'.$DBID.'.sqlite');
	break;
}

echo '\');
define(\'ESTATS_DATABASE_USER\', \''.$DBUser.'\');
define(\'ESTATS_DATABASE_PASSWORD\', \''.$DBPass.'\');
define(\'ESTATS_DATABASE_PREFIX\', \''.$DBPrefix.'\');
define(\'ESTATS_DATABASE_PERSISTENT\', '.($PConnect?'TRUE':'FALSE').');
define(\'ESTATS_SECURITY\', \''.$DBID.'\');
define(\'ESTATS_DATA\', \''.$DataDir.'\');
define(\'ESTATS_GZIP\', '.($Gzip?'TRUE':'FALSE').');
define(\'eStats\', '.eStats.');
define(\'eStatsVersion\', \'4.9\');
?>';
?>

Należy go umieścić w katalogu głównym skryptu (starej wersji) i wywołać go za pomocą przeglądarki, a jego wynik (zajdzie potrzeba użycia opcji pokaż źródło strony) zapisać jako plik conf/config.php w folderze z nową wersją skryptu.
W przypadku bazy danych MySQL nowy plik konfiguracyjny powinien wyglądać mniej więcej tak:

<?php
define('ESTATS_DATABASE_DRIVER', 'MySQL');
define('ESTATS_DATABASE_CONNECTION', 'mysql:host=host bazy danych;dbname=nazwa bazy danych');
define('ESTATS_DATABASE_USER', 'nazwa użytkownika bazy danych');
define('ESTATS_DATABASE_PASSWORD', 'hasło użytkownika bazy danych');
define('ESTATS_DATABASE_PREFIX', 'prefiks tabel');
define('ESTATS_DATABASE_PERSISTENT', TRUE);
define('ESTATS_SECURITY', 'wartość zmiennej $DBID ze starego pliku konfiguracyjnego');
define('ESTATS_DATA', 'data/');
define('ESTATS_GZIP', FALSE);
define('eStats', wartość stałej eStats ze starego pliku konfiguracyjnego);
define('eStatsVersion', '4.9');
?>

Jeśli używaliśmy bazy danych SQLite to należy zacząć od konwersji pliku danych do formatu w wersji 3.
Plik konfiguracyjny powinien być podobny do tego dla bazy danych MySQL, z tą różnicą, że dwa pierwsze wiersze powinny przypominać:

define('ESTATS_DATABASE_DRIVER', 'SQLite');
define('ESTATS_DATABASE_CONNECTION', 'sqlite:pełna ścieżka do pliku bazy danych');

Ostatnim krokiem jest przejście do strony zaawansowanej konfiguracji oraz ustawienie pra

Nadszedł już czas, najwyższy czas, nienawiść zniszczyć w sobie.