Инструкция как пропатчить модуль Drupal. Патч Drupal.
Что такое патч для системы упарвления сайтом Drupal?
Патчи для Drupal делаются для более оптимальной, а в некоторых случаях правильной работы определенного модуля. Не редкий случай, когда два модуля, которые должны работать в связке работают некорректно. Для таких случаев создаются патчи, которые частично меняют код модулей. Таким образом получается оптимизированная и корректная работа модулей в Drupal.
Как правильно использовать патч для Drupal?
Для начала разберемся как выглядит патч для Drupal. Ниже приведен пример файла патча для Drupal.
Рис. 1. Пример файла патча.
В первой строке указан путь, расположения модуля, для которого сделан этот патч. Как правило патчи для Drupal делаются так, чтобы файл патча загружать в корневую папку сайта и от туда давать команду на патч. Однако не всегда так бывает. Иногда в первой строке патча указана только папка модуля, который надо патчить и название файла, который надо патчить. В этом случае сами дописываете путь или файл патча надо поместить в папку modules и от туда давать команду на патч.
В данном примере файл патча помещается в корневую папку сайта.
Как пропатчить модуль Drupal?
Первым делом сохраняем на компьютер копию файла модуля, который будем патчить.
Пропатчить модуль Drupal можно двумя способами: вручную или специальной командой подключившись по SSH.
Как патчить вручную:
Находим в файле патча строки, которые начинаются со знаков "+" и "-".
Рис. 2. Строки со знаками "+" и "-".
Строку, которая вначале отмчена знаком "-" нужно удалить целиком, а строку, которая вначале отмечена знаком "+" необходимо добавить. Для этого через поиск (Ctrl+F) в файле, который надо патчить находим предыдущую строку перед удаляемой или добавляемой. В данном примере нужно найти сначала строку:
$form['conditional']['#access'] = TRUE;
И после нее добавить строку
dpm($form['conditional']);
Строку добавляем без знака "+".
Далее через поиск по файлу находим следующую строку:
if (isset($submitted_data[$component['cid']])) {
Следующая строка в патче помечена знаком "-", а это значит ее надо удались в файле модуля, который патчим.
Удаляем строку:
$components[$component['cid']]['value'] = $submitted_data[$component['cid']]['value'];
Следующая строка в файле патча отмечена знаком "+", это значит ее надо вставить в файле, который патчим. Вставляем строку без нака "+":
$components[$component['cid']]['value'] = $submitted_data[$component['cid']][0];
Далее файл, который патчим сохраняем. На сайте сбрасываем кэш и проверяем работу пропатченного модуля.
Как патчить командой, подключившить по SSH?
Если Ваш сайт находится на хостинге, то скорее всего там операционная система Юникс. В ОС Юникс утилита patch входит в поставку системы.
- По FTP закачиваете файл патча в крневую папку сайта. Если Вы статю прочли не полностью - обратите внимание на текст под Рис. 1.
- Подключаетесь к хостингу по SSH
- Введя в Вашем SSH подключении команду:
ls
Вы увидете список каталогов и файлов. Если это корневая папка сайта, то Вы так же в выведенном списке увидите файл патча.
- Далее пишем слудующую команду:
patch -p0 <имяпатча
Далее на сайте сбрасываем кэш и проверяем работу пропатченного модуля.
Поделитесь материалом с друзьями!
Добавить комментарий