check config
parent
7054d96d9e
commit
6c0ffc1190
|
@ -25,7 +25,8 @@ use Dotclear\Helper\Html\Form\{
|
|||
Label,
|
||||
Legend,
|
||||
Note,
|
||||
Para
|
||||
Para,
|
||||
Text
|
||||
};
|
||||
|
||||
class Config extends dcNsProcess
|
||||
|
@ -85,6 +86,22 @@ class Config extends dcNsProcess
|
|||
# -- Get settings --
|
||||
$s = new Settings();
|
||||
|
||||
# -- Check config --
|
||||
$img = '<img alt="%1$s" title="%1$s" src="images/%2$s" /> ';
|
||||
$img_on = sprintf($img, __('writable'), 'check-on.png');
|
||||
$img_off = sprintf($img, __('not writable'), 'check-off.png');
|
||||
|
||||
$check_repo = Utils::is_writable(Utils::getRepositoryDir($s->pack_repository), '_.zip') ? $img_on : $img_off;
|
||||
$check_first = !empty($s->pack_filename) && Utils::is_writable(Utils::getRepositoryDir($repo), $s->pack_filename) ? $img_on : $img_off;
|
||||
$check_second = !empty($s->secondpack_filename) && Utils::is_writable(Utils::getRepositoryDir($repo), $s->secondpack_filename) ? $img_on : $img_off;
|
||||
|
||||
$is_configured = Utils::is_configured(
|
||||
Utils::getRepositoryDir($s->pack_repository),
|
||||
$s->pack_filename,
|
||||
$s->secondpack_filename
|
||||
);
|
||||
$check_conf = $is_configured ? $img_on . sprintf(__('%s is well configured.'), My::name()) : $img_off . sprintf(__('%s is not well configured.'), My::name());
|
||||
|
||||
# -- Display form --
|
||||
echo
|
||||
(new Div())->items([
|
||||
|
@ -98,7 +115,7 @@ class Config extends dcNsProcess
|
|||
(new Fieldset())->class('fieldset')->legend((new Legend(__('Root'))))->fields([
|
||||
// pack_repository
|
||||
(new Para())->items([
|
||||
(new Label(__('Path to repository:')))->for('pack_repository'),
|
||||
(new Label($check_repo . __('Path to repository:')))->for('pack_repository'),
|
||||
(new Input('pack_repository'))->class('maximal')->size(65)->maxlenght(255)->value($s->pack_repository),
|
||||
]),
|
||||
(new Note())->class('form-note')->text(
|
||||
|
@ -112,13 +129,13 @@ class Config extends dcNsProcess
|
|||
(new Fieldset())->class('fieldset')->legend((new Legend(__('Files'))))->fields([
|
||||
// pack_filename
|
||||
(new Para())->items([
|
||||
(new Label(__('Name of exported package:')))->for('pack_filename'),
|
||||
(new Label($check_first . __('Name of exported package:')))->for('pack_filename'),
|
||||
(new Input('pack_filename'))->class('maximal')->size(65)->maxlenght(255)->value($s->pack_filename),
|
||||
]),
|
||||
(new Note())->text(sprintf(__('Preconization: %s'), '%type%-%id%'))->class('form-note'),
|
||||
// secondpack_filename
|
||||
(new Para())->items([
|
||||
(new Label(__('Name of second exported package:')))->for('secondpack_filename'),
|
||||
(new Label($check_second . __('Name of second exported package:')))->for('secondpack_filename'),
|
||||
(new Input('secondpack_filename'))->class('maximal')->size(65)->maxlenght(255)->value($s->secondpack_filename),
|
||||
]),
|
||||
(new Note())->text(sprintf(__('Preconization: %s'), '%type%-%id%-%version%'))->class('form-note'),
|
||||
|
@ -145,7 +162,11 @@ class Config extends dcNsProcess
|
|||
(new Checkbox('pack_fixnewline', $s->pack_fixnewline))->value(1),
|
||||
(new Label(__('Fix newline style from files content'), Label::OUTSIDE_LABEL_AFTER))->for('pack_fixnewline')->class('classic'),
|
||||
]),
|
||||
|
||||
]),
|
||||
(new Fieldset())->class('fieldset')->legend((new Legend(__('Capability'))))->fields([
|
||||
(new Text('p', $img_on . sprintf(__('Use "%s" class to zip modules.'), Utils::getZipCapability()))),
|
||||
(new Text('p', $img_on . sprintf(__('Use "%s" class to unzip modules.'), Utils::getUnzipCapability()))),
|
||||
(new Text('p', $check_conf)),
|
||||
]),
|
||||
])->render();
|
||||
}
|
||||
|
|
|
@ -213,6 +213,7 @@ class Core
|
|||
|
||||
$file = str_replace(
|
||||
[
|
||||
'\\',
|
||||
'%type%',
|
||||
'%id%',
|
||||
'%version%',
|
||||
|
@ -220,6 +221,7 @@ class Core
|
|||
'%time%',
|
||||
],
|
||||
[
|
||||
'/',
|
||||
$info['type'],
|
||||
$info['id'],
|
||||
$info['version'],
|
||||
|
@ -233,12 +235,12 @@ class Core
|
|||
$parts[$i] = files::tidyFileName($part);
|
||||
}
|
||||
|
||||
return implode('/', $parts) . '.zip';
|
||||
return implode(DIRECTORY_SEPARATOR, $parts) . '.zip';
|
||||
}
|
||||
|
||||
private static function getOverwrite(bool $overwrite, string $root, string$file): ?string
|
||||
{
|
||||
$path = $root . '/' . $file;
|
||||
$path = $root . DIRECTORY_SEPARATOR . $file;
|
||||
if (file_exists($path) && !$overwrite) {
|
||||
// don't break loop
|
||||
//throw new Exception('File already exists');
|
||||
|
@ -250,7 +252,7 @@ class Core
|
|||
|
||||
private static function getCache(): string
|
||||
{
|
||||
$c = DC_TPL_CACHE . '/packman';
|
||||
$c = DC_TPL_CACHE . DIRECTORY_SEPARATOR . 'packman';
|
||||
if (!file_exists($c)) {
|
||||
@files::makeDir($c);
|
||||
}
|
||||
|
|
|
@ -16,6 +16,8 @@ namespace Dotclear\Plugin\pacKman;
|
|||
|
||||
/* dotclear ns */
|
||||
use dcCore;
|
||||
use Dotclear\Helper\File\Zip\Unzip;
|
||||
use Dotclear\Helper\File\Zip\Zip;
|
||||
|
||||
/* clearbricks ns */
|
||||
use dt;
|
||||
|
@ -58,13 +60,13 @@ class Utils
|
|||
);
|
||||
}
|
||||
|
||||
if (!is_writable(dirname($repo . '/' . $file_a))) {
|
||||
if (!is_writable(dirname($repo . DIRECTORY_SEPARATOR . $file_a))) {
|
||||
dcCore::app()->error->add(
|
||||
__('Path to first export package is not writable.')
|
||||
);
|
||||
}
|
||||
|
||||
if (!empty($file_b) && !is_writable(dirname($repo . '/' . $file_b))) {
|
||||
if (!empty($file_b) && !is_writable(dirname($repo . DIRECTORY_SEPARATOR . $file_b))) {
|
||||
dcCore::app()->error->add(
|
||||
__('Path to second export package is not writable.')
|
||||
);
|
||||
|
@ -75,7 +77,65 @@ class Utils
|
|||
|
||||
public static function is_writable(string $path, string $file): bool
|
||||
{
|
||||
return !(empty($path) || empty($file) || !is_writable(dirname($path . '/' . $file)));
|
||||
return !(empty($path) || empty($file) || !is_writable(dirname($path . DIRECTORY_SEPARATOR . $file)));
|
||||
}
|
||||
|
||||
public static function getUnzipCapability()
|
||||
{
|
||||
switch (Unzip::USE_DEFAULT) {
|
||||
case Unzip::USE_PHARDATA:
|
||||
if (class_exists('PharData')) {
|
||||
return 'PharData';
|
||||
}
|
||||
if (class_exists('ZipArchive')) {
|
||||
return 'ZipArchive';
|
||||
}
|
||||
|
||||
break;
|
||||
case Unzip::USE_ZIPARCHIVE:
|
||||
if (class_exists('ZipArchive')) {
|
||||
return 'ZipArchive';
|
||||
}
|
||||
if (class_exists('PharData')) {
|
||||
return 'PharData';
|
||||
}
|
||||
|
||||
break;
|
||||
case self::USE_LEGACY:
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return 'Legacy';
|
||||
}
|
||||
|
||||
public static function getZipCapability()
|
||||
{
|
||||
switch (Zip::USE_DEFAULT) {
|
||||
case Zip::USE_PHARDATA:
|
||||
if (class_exists('PharData')) {
|
||||
return 'PharData';
|
||||
}
|
||||
if (class_exists('ZipArchive')) {
|
||||
return 'ZipArchive';
|
||||
}
|
||||
|
||||
break;
|
||||
case Zip::USE_ZIPARCHIVE:
|
||||
if (class_exists('ZipArchive')) {
|
||||
return 'ZipArchive';
|
||||
}
|
||||
if (class_exists('PharData')) {
|
||||
return 'PharData';
|
||||
}
|
||||
|
||||
break;
|
||||
case self::USE_LEGACY:
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return 'Legacy';
|
||||
}
|
||||
|
||||
public static function getRepositoryDir(?string $dir): string
|
||||
|
|
Loading…
Reference in New Issue