Ответить Новая тема Новый опрос 
 Загрузка файлов через костомизацию
VooSTeR


Новичок
Сообщений: 37
Регистрация: 15-08-2015


15-08-2015 16:24
Добрый день!
Подскажите кто знает.
Прикрепить файл через костомизацию в карточки товара можно только в графическом формате (jpg, png и gif)
А мне необходимо что бы загружались текстовые файл(txt)
Где можно добавить загружаемый формат?

Заранее благодарен!
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


15-08-2015 17:49
Откройте файл /controllers/front/ProductController.php
Код:
$tmp_name = tempnam(_PS_TMP_IMG_DIR_, 'PS');
if ($error || (!$tmp_name || !move_uploaded_file($file['tmp_name'], $tmp_name)))
    return false;
/* Original file */
if (!ImageManager::resize($tmp_name, _PS_UPLOAD_DIR_.$file_name))
    $this->errors[] = Tools::displayError('An error occurred during the image upload process.');
/* A smaller one */
elseif (!ImageManager::resize($tmp_name, _PS_UPLOAD_DIR_.$file_name.'_small', $product_picture_width, $product_picture_height))
    $this->errors[] = Tools::displayError('An error occurred during the image upload process.');
elseif (!chmod(_PS_UPLOAD_DIR_.$file_name, 0777) || !chmod(_PS_UPLOAD_DIR_.$file_name.'_small', 0777))
    $this->errors[] = Tools::displayError('An error occurred during the image upload process.');
else
    $this->context->cart->addPictureToProduct($this->product->id, $indexes[$field_name], Product::CUSTOMIZE_FILE, $file_name);
замените на:
Код:
if (!move_uploaded_file($file['tmp_name'], _PS_UPLOAD_DIR_.$file_name))
    return false;
elseif (!chmod(_PS_UPLOAD_DIR_.$file_name, 0777))
    $this->errors[] = Tools::displayError('An error occurred during the image upload process.');
else
    $this->context->cart->addPictureToProduct($this->product->id, $indexes[$field_name], Product::CUSTOMIZE_FILE, $file_name);


В код необходимо добавить проверку на расширение файла или отключить для директории upload выполнение.
Также необходимо переписать шаблон /themes/тема/product.tpl
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
VooSTeR


Новичок
Сообщений: 37
Регистрация: 15-08-2015


15-08-2015 19:22
Заменил код как говорили, все ровно выдает ошибку: Формат изображения не опознан. Допустимые форматы: gif, jpg, png, что именно переписать в product.tpl? и как добавить проверку на расширения файла?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


15-08-2015 19:32
Цитата:( VooSTeR @ 15-08-2015 20:22 Смотреть сообщение )
Заменил код как говорили, все ровно выдает ошибку

Приложите измененный /controllers/front/ProductController.php.

Цитата:( VooSTeR @ 15-08-2015 20:22 Смотреть сообщение )
как добавить проверку на расширения файла?

До
Код:
if (!move_uploaded_file($file['tmp_name'], _PS_UPLOAD_DIR_.$file_name))
добавить подобный код:
Код:
if (!ImageManager::isCorrectImageFileExt($file['name'], array('txt')))
    $this->errors[] = Tools::displayError('Ошибка: необходимо расширение файла txt.');
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
VooSTeR


Новичок
Сообщений: 37
Регистрация: 15-08-2015


15-08-2015 19:40

Прикрепил productcontroller.php


Сообщение отредактировано VooSTeR 15-08-2015 20:41 ...


Вложения:

Вложения ProductController.php( Размер файла: 31.95KB Скачиваний: 975 )
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


15-08-2015 19:58
Удалить:
Код:
if ($error = ImageManager::validateUpload($file, (int)Configuration::get('PS_PRODUCT_PICTURE_MAX_SIZE')))
    $this->errors[] = $error;
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
VooSTeR


Новичок
Сообщений: 37
Регистрация: 15-08-2015


15-08-2015 20:18
Отлично!!! Все работает, от души большое спасибо!
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
VooSTeR


Новичок
Сообщений: 37
Регистрация: 15-08-2015


15-08-2015 21:36
Хм... теперь загруженный текстовый файл отображается как картинка в панели администратора, но! если изменить расширения вручную jpg на txt то в принципе работает))). Как сделать так чтобы не менялось расширение загружаемого txt файла на jpg?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


16-08-2015 10:38
Откройте файл /адм.директория/themes/default/template/controllers/orders/_customized_data.tpl
Код:
<span class="col-lg-4 control-label"><strong>{if $data['name']}{$data['name']}{else}{l s='Picture #'}{$data@iteration}{/if}</strong></span>
<div class="col-lg-8">
    <a href="displayImage.php?img={$data['value']}&amp;name={$order->id|intval}-file{$data@iteration}" target="_blank">
        <img class="img-thumbnail" src="{$smarty.const._THEME_PROD_PIC_DIR_}{$data['value']}_small" alt="" />
    </a>
</div>
замените на:
Код:
<span class="col-lg-4 control-label"><strong>{if $data['name']}{$data['name']}{else}{l s='Picture #'}{$data@iteration}{/if}:</strong>
    <a href="{$smarty.const._THEME_PROD_PIC_DIR_}{$data['value']}" target="_blank">{$data['name']}</a>
</span>
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
VooSTeR


Новичок
Сообщений: 37
Регистрация: 15-08-2015


16-08-2015 12:34
Работает, правда названия файла теперь выглядит как описание кастомизации)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос