extend uploadPath with ModelFields

Extend the upload path with same model field value or external model field value.

for externals, you can use Model::beforeSave() to overload Model::$data before Plugin was called.