August 25, 201213 yr Здравствуйте, у меня стоит IPB 3.2.3. Как можно передать параметр с помощью HTTP-post классу class_attach.php из поста (скин uploadForm), в который я добавил следующий checkbox?<input type="checkbox" checked="checked" name="isrec">
August 25, 201213 yr Author Забыл добавить, что отправить значение надо вместе с заливаемым файлом, чтобы потом сделать проверку параметра. 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"> то нужного результата не получу. Edited August 25, 201213 yr by Dmitry
August 25, 201213 yr А зачем делать вторую форму, отправляйте свой параметр вместе с формой загрузки файла. Даже если бы там не было аджакса, как вы собрались отправлять одновременно две разные формы, а главное зачем? Нонсенс какой-то у вас здесь вырисовывается.
August 25, 201213 yr Там по умолчанию используется флэш загрузчик, код которого формируется через js (public\js\3rd_party\swfupload\swfupload.js). Так что можно там поколдовать с параметрами.
August 25, 201213 yr Author Сейчас посмотрю. А то я не мог понять, ведь в 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. Edited August 25, 201213 yr by Dmitry
August 26, 201213 yr Кстати, параметры можно еще передать с помощью кукисов. Повесьте на чекбоксе функцию js записи куки, а в скрипте получите доступ к ней из массива $this->request Зы.Увы, но через кукисы не получится, для php они обновляются после перезагрузки страницы.
August 26, 201213 yr Судя по контексту вопроса, вам надо определять, является ли загруженный файл файлом определенного типа. А не проще ли на основании mime это делать, без всяких галочек и доп.полей? :)
August 26, 201213 yr Author Спасибо, с помощью кукизов сделал. Лучше, конечно, как-то передать 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 - записи матчей одной старой компьютерной игры. Edited August 26, 201213 yr by Dmitry
Здравствуйте, у меня стоит IPB 3.2.3. Как можно передать параметр с помощью HTTP-post классу class_attach.php из поста (скин uploadForm), в который я добавил следующий checkbox?