Replace Themepacks

Code reformat.
This commit is contained in:
FireFox1121 2021-11-11 12:12:17 +03:00 committed by GitHub
parent e2141d17af
commit a2c32fa097
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,87 +1,82 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace openvk\Web\Themes;
use Nette\InvalidStateException as ISE;
use Chandler\Session\Session;
use Chandler\Patterns\TSimpleSingleton;
class Themepacks implements \ArrayAccess
{
class Themepacks implements \ArrayAccess {
const THEMPACK_ENGINE_VERSION = 1;
const DEFAULT_THEME_ID = "ovk"; # блин было бы смешно если было бы Fore, потому что Лунка, а Luna это название дефолт темы винхп
const DEFAULT_THEME_ID = "ovk"; # блин было бы смешно если было бы Fore, потому что Лунка, а Luna это название дефолт темы винхп
private $loadedThemepacks = [];
function __construct()
{
foreach(glob(OPENVK_ROOT . "/themepacks/*", GLOB_ONLYDIR) as $themeDir) {
function __construct() {
foreach (glob(OPENVK_ROOT . "/themepacks/*", GLOB_ONLYDIR) as $themeDir) {
try {
$theme = Themepack::themepackFromDir($themeDir);
$tid = $theme->getId();
if(isset($this->loadedThemepacks[$tid]))
$tid = $theme->getId();
if (isset($this->loadedThemepacks[$tid]))
trigger_error("Duplicate theme $tid found at $themeDir, skipping...", E_USER_WARNING);
else
$this->loadedThemepacks[$tid] = $theme;
} catch(\Exception $e) {
} catch (\Exception $e) {
trigger_error("Could not load theme at $themeDir, skipping...", E_USER_WARNING);
}
}
}
private function installUnpacked(string $path): bool
{
private function installUnpacked(string $path): bool {
try {
$theme = Themepack::themepackFromDir($path);
$tid = $theme->getId();
if(isset($this->loadedThemepacks[$tid]))
$tid = $theme->getId();
if (isset($this->loadedThemepacks[$tid]))
return false;
rename($path, OPENVK_ROOT . "/themepacks/$tid");
$this->loadedThemepacks[$tid] = $theme;
return true;
} catch(\Exception $e) {
} catch (\Exception $e) {
return false;
}
}
function getThemeList(): \Traversable
{
foreach($this->loadedThemepacks as $id => $theme)
if($theme->isEnabled())
function getThemeList(): \Traversable {
foreach ($this->loadedThemepacks as $id => $theme)
if ($theme->isEnabled())
yield $id => ($theme->getName(Session::i()->get("lang", "ru")));
}
function getAllThemes(): array
{
function getAllThemes(): array {
return $this->loadedThemepacks;
}
/* ArrayAccess */
function offsetExists($offset): bool
{
function offsetExists($offset): bool {
return $offset === Themepacks::DEFAULT_THEME_ID ? false : isset($this->loadedThemepacks[$offset]);
}
function offsetGet($offset)
{
function offsetGet($offset) {
return $this->loadedThemepacks[$offset];
}
function offsetSet($offset, $value): void
{
function offsetSet($offset, $value): void {
throw new ISE("Theme substitution in runtime is prohbited");
}
function offsetUnset($offset): void
{
function offsetUnset($offset): void {
$this->uninstall($offset);
}
/* /ArrayAccess */
function install(string $archivePath): bool
{
if(!file_exists($archivePath))
function install(string $archivePath): bool {
if (!file_exists($archivePath))
return false;
$tmpDir = mkdir(tempnam(OPENVK_ROOT . "/tmp/themepack_artifacts/", "themex_"));
@ -97,9 +92,8 @@ class Themepacks implements \ArrayAccess
}
}
function uninstall(string $id): bool
{
if(!isset($loadedThemepacks[$id]))
function uninstall(string $id): bool {
if (!isset($loadedThemepacks[$id]))
return false;
rmdir(OPENVK_ROOT . "/themepacks/$id");
@ -108,4 +102,4 @@ class Themepacks implements \ArrayAccess
}
use TSimpleSingleton;
}
} // Я рыгнул