Как разрешить формат файла с спец. символом?

Любая помощь по установке/настройке/модификации concrete5

Как разрешить формат файла с спец. символом?

Сообщение guyasyou » 11 фев 2013, 15:15 ,  »  Сообщение:#1

Мне нужно на сайт загружать файл с форматом .jef+. Когда я его ввожу в список разрешенных и сохраняю, движок отрубает плюсик. А при попытке загрузить, он различает jef+ от jef.
Что делать?
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Как разрешить формат файла с спец. символом?

Сообщение cmsservice » 11 фев 2013, 16:53 ,  »  Сообщение:#2

А почему именно jef+. В чем глобальная задача-то состоит? :)
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва

Re: Как разрешить формат файла с спец. символом?

Сообщение guyasyou » 11 фев 2013, 17:20 ,  »  Сообщение:#3

Ну формат такой. мне этот файл надо загрузить через менеджер файлов и в сет добавить. А менеджер файлов не хочет его принимать.

Это цифровой товар.
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Как разрешить формат файла с спец. символом?

Сообщение cmsservice » 11 фев 2013, 17:35 ,  »  Сообщение:#4

Понятно. Там перед загрузкой используется функция нормализации имени из текст хелпера. Эта функция использует регулярное выражение и про "+" понятное дело, ничего не знает. Т.ч. надо в ней добавить в регулярное выражение плюсик. В общем и целом простой вариант. Есть еще проще - хранить все файлы в zip формате.
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва

Re: Как разрешить формат файла с спец. символом?

Сообщение guyasyou » 11 фев 2013, 18:40 ,  »  Сообщение:#5

Код: Выделить всё
const REGEX_INVALID_EXTENSION_CHARS = '{[^a-z0-9]}i';

$types = preg_replace(self::REGEX_INVALID_EXTENSION_CHARS,'',$types);


я так понимаю это плюсик отсекает. как исправить?
Эту вещь не могу понят '{[^a-z0-9]}i'
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Как разрешить формат файла с спец. символом?

Сообщение cmsservice » 12 фев 2013, 11:07 ,  »  Сообщение:#6

guyasyou писал(а):я так понимаю это плюсик отсекает. как исправить?

Тааак, какая версия C5-то? Если 5.6, то Вы куда-то не туда смотрите. Надо смотреть на метод sanitizeFileSystem у текст хелпера и дальше по цепочке.

guyasyou писал(а):Эту вещь не могу понят '{[^a-z0-9]}i'

Ну а чего тут непонятного, обычное регулярное выражение. Почитайте на досуге по этой теме, в сети полно информации, очень помогает в работе, хотя и медленные они в PHP по сравнению с perl. :)
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва

Re: Как разрешить формат файла с спец. символом?

Сообщение guyasyou » 12 фев 2013, 13:15 ,  »  Сообщение:#7

Код: Выделить всё
const REGEX_INVALID_EXTENSION_CHARS = '{[^a-z0-9+]}i';

В список разрешенных формат добавился, файл загрузился.
Тока вот уже после загрузки плюсик отрезало.
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Как разрешить формат файла с спец. символом?

Сообщение cmsservice » 12 фев 2013, 16:36 ,  »  Сообщение:#8

Ну так правильно отрезало, она же при загрузке вызывает метод import у file_importer'а, который первое, что делает, обрабатывает имя файла с помощью метода sanitize хелпера file и в этом методе умирают все недопустимые символы :)
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва

Re: Как разрешить формат файла с спец. символом?

Сообщение guyasyou » 12 фев 2013, 17:30 ,  »  Сообщение:#9

Код: Выделить всё
public function sanitizeFileSystem($handle) {
      return $this->urlify($handle);
   }   

   public function urlify($handle) {
      Loader::library('3rdparty/urlify');
      $handle = URLify::filter($handle);
      return $handle;
   }

Оно? Просто urlify еще и ссылки правит я так понял, и ковыряние его не оч. не?

Кстати, вот я ковырнул C:\WebServer\www\concrete\helpers\concrete\file.php

Теперь как его поднять, чтобы движок использовал мой правлненный вариант. так: C:\WebServer\www\helpers\concrete\file.php ?
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск


Вернуться в Помощь по concrete5

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron