t('acp.map.err_ini_size'), UPLOAD_ERR_FORM_SIZE => t('acp.map.err_form_size'), UPLOAD_ERR_PARTIAL => t('acp.map.err_partial'), UPLOAD_ERR_NO_TMP_DIR => t('acp.map.err_no_tmp_dir'), UPLOAD_ERR_CANT_WRITE => t('acp.map.err_cant_write'), UPLOAD_ERR_EXTENSION => t('acp.map.err_extension'), ]; acp_flash_error($reasons[(int)$file['error']] ?? t('acp.map.upload_failed')); acp_redirect('minimap'); } if (!is_uploaded_file((string)$file['tmp_name'])) { acp_flash_error(t('acp.map.unverified')); acp_redirect('minimap'); } $error = null; if (minimap_import((string)$file['tmp_name'], (string)$file['name'], $error)) { $fresh = json_decode((string)file_get_contents(minimap_meta_path()), true); acp_log('minimap.import', (string)$file['name'], [ 'tiles' => (int)($fresh['tiles'] ?? 0), 'floors' => count((array)($fresh['floors'] ?? [])), ]); acp_flash_success(t('acp.map.imported', [ 'tiles' => number_format((int)($fresh['tiles'] ?? 0)), 'floors' => number_format(count((array)($fresh['floors'] ?? []))), ])); } else { acp_flash_error((string)$error); } acp_redirect('minimap'); } } $minimap = minimap_data(); $root = minimap_root(); $diskBytes = 0; foreach (glob($root . '/*.png') ?: [] as $tile) { $diskBytes += (int)filesize($tile); } $writable = is_dir($root) ? is_writable($root) : is_writable(dirname($root)); $maxUpload = min( (int)serverdata_ini_bytes((string)ini_get('upload_max_filesize')), (int)serverdata_ini_bytes((string)ini_get('post_max_size')) ); ?>
= t('acp.map.import_sub', ['folder' => 'minimap']) ?>
' . h(ZNOTE_MINIMAP_DIR) . '']) ?>
gd', 'zlib' => 'zlib']) ?>
= t('acp.map.upload_hint', [
'folder' => '' . h(ZNOTE_MINIMAP_DIR) . '',
'max' => (int)(ZNOTE_MINIMAP_MAX_BYTES / 1048576),
'accepts' => h(serverdata_human_size($maxUpload)),
]) ?>
= t('acp.map.status_sub') ?>
| = t('acp.map.col_source') ?> | = h((string)($minimap['source'] ?? 'minimap.otmm')) ?> |
| = t('acp.map.col_imported') ?> | = h(date('Y-m-d H:i', (int)($minimap['date'] ?? 0))) ?> |
| = t('acp.map.col_floors') ?> | = h(implode(', ', array_map('intval', array_keys((array)$minimap['floors'])))) ?> |
| = t('acp.map.col_tiles') ?> | = number_format((int)($minimap['tiles'] ?? 0)) ?> |
| = t('acp.map.col_disk') ?> | = h(serverdata_human_size($diskBytes)) ?> |