Я использую плагин для CakePHP - AjaxMultiUpload (хороший плагин :-) - но у меня есть вопрос о том, как изменить/получить доступ к переменной, которая определена в контроллере, который является частью плагина.
Я использовал этот плагин раньше, и он мне нравится. Но я пытаюсь ограничить, какие типы файлов разрешено загружать в зависимости от того, к какому контроллеру я прикрепил компонент.
В Плагине есть Контроллер - UploadsController.php. В этом классе есть публичная переменная:
// list of valid extensions, ex. array("jpeg", "xml", "bmp")
public $allowedExtensions = array();
Если я изменю это на:
public $allowedExtensions = array('mp3');
когда я пытаюсь загрузить файл .jpg, выдается сообщение об ошибке (как и следовало ожидать :-).
В моем контроллере (Tracks) я прикрепил плагин AjaxMultiUpload. Оно работает. В методе beforeFilter() моего контроллера Tracks я поместил следующую строку:
$this->Upload->allowedExtensions = array('mp3');
Это не имело никакого эффекта. (Между прочим, никаких предупреждений о том, что я пытался получить доступ к чему-то несуществующему, не выдается).
Я не хочу изменять содержимое массива allowExtensions, жестко запрограммировав его в контроллере плагина. Это плохо по двум причинам: 1) возможность обновления плагина и 2) я хочу изменить ограничения (например, типы аудиофайлов по сравнению с типами файлов изображений) в зависимости от того, какой из моих контроллеров (дорожки, изображения и т. д.) подключаемый модуль прилагается к.
Чего я не понимаю, так это отношения между компонентом (прикрепленным к контроллеру треков) и контроллером загрузки, который является частью плагина. Что создает экземпляр UploadsController, который является частью плагина? Это происходит автоматически?
Кто-нибудь может помочь?
Спасибо, Кен