Заставляем работать модуль "File (Field) Paths" в Drupal 7

Аватар пользователя smmyuzer smmyuzer 21 сентября 2014 в 17:52

Недавно при создании одного проекта, мне понадобилось сделать автоматическое переименование картинок и любых других загружаемых файлов в поле. Поскольку я понятия не имел какой модуль для этого нужен я полез в поиск, и нашел модуль "File (Field) Paths" прочитав через гугл переводчик его описание я понял что этот модуль походит, и наконец то закончится переименование картинок в ручную перед загрузкой на сайт.

Установив модуль на сайт конечно же ничего не заработало, картинки не переименовывались да и в добавок после сохранения ноды выскакивало системное сообщение с ошибкой «Deprecated function: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in _filefield_paths_replace_path() (Line 328 in /var/www/xxx/sites/all/modules/filefield_paths/filefield_paths.module).» я конечно с расстроиным видом полез снова в поиск, вбив в строку поиска саму ошибку, и вычитал на друпал орг что нужно пропатчить модуль и ошибка пропадет, вот кстати данный пост https://www.drupal.org/node/2103151 и в нем как раз приложен код самого патча.

Меня конечно найденный пост обрадовал но дело в том что понятие не имел как нужно патчить модуля, и снова порывшись в поиске нашел решение но кривоватое, знающие люди это конечно делают по другому, вроде как я понял через командную строку.
Вообщем теперь к самому делу, в папке модуля File (Field) Paths вам нужно найти файлик «filefield_paths.module» открыть его через редактор которым вы пользуетесь, далее вам нужно открыть в том же редакторе код патча который прикреплен в посту, ссылка выше, в коде патча строки помеченные минусом нужно удалить из файла «filefield_paths.module» а строки с плюсом добавить на место удаленных строк.

Вот в принципе и все, после замены сток ошибка должна пропасть, сразу хочу сказать что пост рассчитан для супер новичков которые только начинают изучать drupal.

Комментарии

Аватар пользователя Plazik Plazik 21 сентября 2014 в 20:56

Использую данный модуль на всех проектах и с такой ошибкой не сталкивался.

Аватар пользователя drupby drupby 21 сентября 2014 в 21:09

"Plazik" wrote:
Использую данный модуль на всех проектах и с такой ошибкой не сталкивался.

The /e modifier in preg_replace is deprecated on PHP 5.5 because it can be used to perform arbitrary code execution, as stated in POSIX Pattern Modifiers Docs.

Аватар пользователя WebRemake WebRemake 22 сентября 2014 в 1:09

Проблема которую вы описали связана с PHP 5.5
Укажите это в заголовке поста.

Для более ранних версий PHP модуль работает без проблем.

И не стоит разбрасываться фразами типа "Установив модуль на сайт конечно же ничего не заработало ..." без достаточных на это оснований.