File Syntax Behavior
In R4.2file:attachment.jpg
loaded the global file before the local file. This behavior was later inverted, if this behavior is used at all, then the local file should be loaded first.I guess this behavior was implemented to deal with syntax errors, so the user will get his uploaded file either way. I suggest for the sake of clearness and uniqueness to load only the local file.
-
file:/global_file.jpg
-
file:local_file.jpg
This change will cause all these pages with the "wrong" syntax failing to show the alternate global file, when the local version is missing. Imagine you mistakenly uploaded a file global instead of local to a page, then later update the local file, to delete it later - suddenly it shows the forgotten global file - guess nobody wants this, right. If we do an error - we want the error to be shown.
This renders existing global file links without the slash after the colon invalid.
These links need to be adjusted so that they work again:
These links need to be adjusted so that they work again:
file:
-> file:/
file:attachment.jpg
should load only the local file.file:/attachment.jpg
loads the file in the global namespace, the slash after the colon is now mandatory.diff --git a/wacko/class/wacko.php b/wacko/class/wacko.php index acc2ea6..3a944e4 100644 --- a/wacko/class/wacko.php +++ b/wacko/class/wacko.php @@ -3603,7 +3603,8 @@ } else { - // 2a -> file:some.zip or file:/cluster/some.zip (local) + // 2a -> file:some.zip (local relative) + // 2b -> file:/cluster/some.zip (local absolute) $local_file = $file_array; $_global = false; $file_name = $local_file[count($local_file) - 1]; @@ -3641,30 +3642,6 @@ $file_access = true; } } - - // check for global file - if (!$href) - { - // 2b -> file:some.zip (global) - if (count($file_array) == 1) - { - $file_name = $_file_name; - $param = $this->parse_media_param($file_name); - - // no local file available, take the global file instead - if ($file_data = $this->check_file_record($param['src'], 0)) - { - $href = ($this->canonical ? $this->db->base_url : $this->db->base_path) . Ut::join_path(UPLOAD_GLOBAL_DIR, $file_name); - $_global = true; - - // tracking file link - if ($track && isset($file_data['file_id'])) - { - $this->track_link($file_data['file_id'], LINK_FILE); - } - } - } - } } // try to find file in global / local storage and return if success
commit:51b3cd3e1518f5ad3680b49d22b590c1921eebd0[link1]
- [link1] https://bitbucket.org/wackowiki/wackowiki/commits/51b3cd3e1518f5ad3680b49d22b590c1921eebd0