error->add(
__('Cache directory is not writable.')
);
}
if (!is_writable($repo)) {
$core->error->add(
__('Path to repository is not writable.')
);
}
if (empty($file_a)) {
$core->error->add(
__('You must specify the name of package to export.')
);
}
if (!is_writable(dirname($repo . '/' . $file_a))) {
$core->error->add(
__('Path to first export package is not writable.')
);
}
if (!empty($file_b) && !is_writable(dirname($repo . '/' . $file_b))) {
$core->error->add(
__('Path to second export package is not writable.')
);
}
return !$core->error->flag();
}
public static function is_writable(string $path, string $file): bool
{
return !(empty($path) || empty($file) || !is_writable(dirname($path . '/' . $file)));
}
public static function modules(dcCore $core, array $modules, string $type, string $title): ?bool
{
if (empty($modules) || !is_array($modules)) {
return null;
}
$type = $type == 'themes' ? 'themes' : 'plugins';
echo
'
' .
'
' . $title . '
' .
'
' .
'
';
return true;
}
public static function repository(dcCore $core, array $modules, string $type, string $title): ?bool
{
if (empty($modules) || !is_array($modules)) {
return null;
}
if (!in_array($type, ['plugins', 'themes', 'repository'])) {
return null;
}
echo
'' .
'
' . $title . '
';
$combo_action = [__('delete') => 'delete'];
if ($type == 'plugins' || $type == 'themes') {
$combo_action[__('install')] = 'install';
}
if ($type != 'plugins') {
$combo_action[sprintf(__('copy to %s directory'), __('plugins'))] = 'copy_to_plugins';
$combo_action[sprintf(__('move to %s directory'), __('plugins'))] = 'move_to_plugins';
}
if ($type != 'themes') {
$combo_action[sprintf(__('copy to %s directory'), __('themes'))] = 'copy_to_themes';
$combo_action[sprintf(__('move to %s directory'), __('themes'))] = 'move_to_themes';
}
if ($type != 'repository') {
$combo_action[sprintf(__('copy to %s directory'), __('repository'))] = 'copy_to_repository';
$combo_action[sprintf(__('move to %s directory'), __('repository'))] = 'move_to_repository';
}
echo
'
' .
'
';
return true;
}
protected static function sort(array $modules): array
{
$key = $ver = [];
foreach ($modules as $i => $module) {
$key[$i] = $module['id'] ?? $i;
$ver[$i] = $module['version'];
}
array_multisort($key, SORT_ASC, $ver, SORT_ASC, $modules);
return $modules;
}
}