Опубликовано: 25 августа 201213 г Здравствуйте, у меня стоит IPB 3.2.3. Как можно передать параметр с помощью HTTP-post классу class_attach.php из поста (скин uploadForm), в который я добавил следующий checkbox?<input type="checkbox" checked="checked" name="isrec">
Опубликовано: 25 августа 201213 г Автор Забыл добавить, что отправить значение надо вместе с заливаемым файлом, чтобы потом сделать проверку параметра. IPB же не перезагружает всю страницу, когда заливает файл (AJAX) и если я сделаю в скине Post Screen/UploadForm форму, <form method="post" action="/forums/admin/applications/core/sources/classes/attach/class_attach.php"> <input type="checkbox" checked="checked" name="isrec" value="1" onclick="showRecForm(this);" /> <input type="submit" value="Submit"> то нужного результата не получу. Изменено 25 августа 201213 г пользователем Dmitry
Опубликовано: 25 августа 201213 г А зачем делать вторую форму, отправляйте свой параметр вместе с формой загрузки файла. Даже если бы там не было аджакса, как вы собрались отправлять одновременно две разные формы, а главное зачем? Нонсенс какой-то у вас здесь вырисовывается.
Опубликовано: 25 августа 201213 г Там по умолчанию используется флэш загрузчик, код которого формируется через js (public\js\3rd_party\swfupload\swfupload.js). Так что можно там поколдовать с параметрами.
Опубликовано: 25 августа 201213 г Автор Сейчас посмотрю. А то я не мог понять, ведь в skin_post.php (который формируется в т.ч. из uploadForm и attachiFrame) две формы:<form id='postingform' action='{$this->settings['base_url']}' method='post' enctype='multipart/form-data'>и<form id='iframeUploadForm' method='post' enctype=\"multipart/form-data\" action=''>,а кнопка загрузки файла входит как раз в первую. upd:В swfupload есть метод void addPostParam(name, value)The addPostParam function adds a name/value pair that will be sent in the POST for all files uploaded. The name/value pair will also appear in the post_params setting.По описанию похоже - попробую прицепить. upd2: Вторая форма как раз к базовому загрузчику относится (не swf). Она описана в attachiFrame и если в неё <input/> поместить, то в классе class_attach.php появляется переменная в $_POST. Изменено 25 августа 201213 г пользователем Dmitry
Опубликовано: 26 августа 201213 г Кстати, параметры можно еще передать с помощью кукисов. Повесьте на чекбоксе функцию js записи куки, а в скрипте получите доступ к ней из массива $this->request Зы.Увы, но через кукисы не получится, для php они обновляются после перезагрузки страницы.
Опубликовано: 26 августа 201213 г Судя по контексту вопроса, вам надо определять, является ли загруженный файл файлом определенного типа. А не проще ли на основании mime это делать, без всяких галочек и доп.полей? :)
Опубликовано: 26 августа 201213 г Автор Спасибо, с помощью кукизов сделал. Лучше, конечно, как-то передать SWFuploader-у параметр и там с помощью addPostParam запихнуть в $_POST - вдруг кукизы отключены у человека. Я попробовал приписать к ipb.attach.registerUploader( 'attach_{$id}', useType, 'attachments', { 'upload_url': uploadURL, 'attach_rel_module': "{$type}", 'attach_rel_id': "{$id}", 'attach_post_key': "{$post_key}", 'forum_id': "{$forum_id}", 'file_size_limit': "{$stats['max_single_upload']}" } )});в uploadForm ещё один параметр:'isrec': document.postForm.isrec.checked в форму поста postFormTemplate добавил имя name='postForm',<form name='postForm' id='postingform' action='{$this->settings['base_url']}' method='post' enctype='multipart/form-data'>но уже в ips.attach.js не понял, как всё-таки применить addPostParam(). Там есть место, где объект загрузчика инициализируют,swfu = new SWFUpload( settings );если после этого захардкодить, name = 'isrec'; value = 'isrec'; addPostParam(name, value); то в $_POST у class_attach.php эта пара не появляется. Тут уже у меня матчасть хромает. Судя по контексту вопроса, вам надо определять, является ли загруженный файл файлом определенного типа. А не проще ли на основании mime это делать, без всяких галочек и доп.полей? А с MIME-типом вряд ли получится: тот скрипт, который обрабатывает файл написан для .zip файлов, в которых хранятся файлы .mgx - записи матчей одной старой компьютерной игры. Изменено 26 августа 201213 г пользователем Dmitry
Здравствуйте, у меня стоит IPB 3.2.3. Как можно передать параметр с помощью HTTP-post классу class_attach.php из поста (скин uploadForm), в который я добавил следующий checkbox?