Помогите, всю голову сломал. Хочу пропатчить модули, как правильно написать команду в cmd, учитывая следующее:
Первый патч cck_gmaps_and_ajax_friendly.patch:
index 8c121be..e077c75 100644
--- a/sites/all/modules/contrib/cck/includes/content.node_form.inc
+++ b/sites/all/modules/contrib/cck/includes/content.node_form.inc
@@ -363,7 +363,7 @@ function content_add_more_js($type_name_url, $field_name) {
$javascript = drupal_add_js(NULL, NULL);
$output_js = isset($javascript['setting']) ? '<script type="text/javascript">jQuery.extend(Drupal.settings, '. drupal_to_js(call_user_func_array('array_merge_recursive', $javascript['setting'])) .');</script>' : '';
- $output = theme('status_messages') . drupal_render($field_form) . $output_js;
+ $output = $output_js . theme('status_messages') . drupal_render($field_form);
// Using drupal_json() breaks filefield's file upload, because the jQuery
// Form plugin handles file uploads in a way that is not compatible with
Второй патч gmap_cck_and_ajax_friendly.patch:
index 2f74458..3658959 100644
--- a/sites/all/modules/contrib/gmap/gmap.module
+++ b/sites/all/modules/patched/gmap/gmap.module
@@ -376,6 +376,8 @@ function theme_gmap_marker_popup($label) {
*
*/
function gmap_set_location($map, &$form, $fields) {
+
+
static $ctr = 0;
$ctr++;
if (!is_array($map)) {
@@ -957,8 +959,36 @@ function theme_gmap($element) {
}
$mapids[$element['#map']] = TRUE;
- // Put map data in a setting.
- drupal_add_js(array('gmap' => array($element['#map'] => $map)), 'setting');
+ // Create a setting to store map data.
+
+ drupal_add_js(array('gmap' => array()), 'setting');
+
+ $o .= "<script type=\"text/javascript\">
+ jQuery.extend(Drupal.settings.gmap, ". drupal_to_js(array($element['#map'] => $map)) .");
+ $.getScript('/sites/all/modules/contrib/gmap/js/gmap.js', function() {
+ //alert('Load was performed.');
+ });\n";
+ $o .= "
+ $.getScript('/sites/all/modules/contrib/gmap/js/marker.js', function() {
+ //alert('Load was performed.');
+ });\n";
+ $o .= "
+ $.getScript('/sites/all/modules/contrib/gmap/js/highlight.js', function() {
+ //alert('Load was performed.');
+ });\n";
+ $o .= "
+ $.getScript('/sites/all/modules/contrib/gmap/js/gmap_marker.js', function() {
+ //alert('Load was performed.');
+ });\n";
+ $o .= "
+ $.getScript('/sites/all/modules/contrib/gmap/js/poly.js', function() {
+ //alert('Load was performed.');
+ });\n";
+ $o .= "
+ $.getScript('/sites/all/modules/contrib/gmap/js/locpick.js', function() {
+ //alert('Load was performed.');
+ });
+ </script>";
return $o;
}
@@ -1263,3 +1293,4 @@ function gmap_views_plugins() {
),
);
}
+
1. Куда класть эти файлы (патчи модулей), укажите пожалуйста путь? Я их просто положил в C:\mysite\Sites\acquia-drupal
2. Какую команду писать в cmd? Я пишу следующие (по порядку)
а) cd c:\mysite\Sites\acquia-drupal - попадаю в корень своего сайта
б) patch -p0 < cck_gmaps_and_ajax_friendly.patch
в) patch -p0 < gmap_cck_and_ajax_friendly.patch
PS Это корень моего сайта - c:\mysite\Sites\acquia-drupal Для понимания приведу пути:
К модулю cck - C:\mysite\Sites\acquia-drupal\modules\acquia\cck
К модулю gmap - C:\mysite\Sites\acquia-drupal\sites\all\modules\gmap
Обратите внимание, что модули лежат в разных директориях, отсюда не понятно в патчах правильно ли указаны пути и т.д.?
Комментарии
http://drupal.org/patch/apply
Я правильно понимаю, что патч нужно класть туда, где он сделан. А где он сделан мы можем узнать посмотрев в код патча в строку, начинающуюся на три минуса "---". Для чего нужна тогда строка "+++" в коде патча?
В обеих строках и "---" и "+++" указаны пути, которых у меня не существует. Мне сделать их? В данном случае я имею ввиду добавить эти папки ("contrib" и "patched")?
В cmd мне сначала нужно пройти в корень сайта? или до самого патча? а потом запустить команду "patch -p0 < gmap_cck_and_ajax_friendly.patch"?
http://drupaldance.com/lessons/patching
в папку конкретного модуля
При этом в сами патчи я же должен тоже внести изменения? Например 2ой патч, там прописаны пути обращения!?
патчи трогать не надо, придётся поиграться с переменной -p, для gmap_cck_and_ajax_friendly.patch наверное будет:
Я так понимаю, эту команду я должен ввести в CMD, предварительно сами патчи выложить в корень моего сайта (я это делаю на локалхост), а должен ли я сначала в CMD перейти в дерикторию (корневую) где лежат патчи?
в консоли git
Из личного опыта - где лежит файл патча совершенно по барабану. Указание папки где лежит файл который следует изменить может быть разным, иногда можно указать просто /путь к каталогу с сайтом/sites/all/modules/, иногда напрямую к модулю, и пару раз было что просто к папке где лежит друпал. так же бывает что патч не срабатывает ни при каких условиях и тогда приходится патчить ручками.
Спасибо, с этим уже разобрался. Нужно было в конце путей, начинающихся с +++ и --- поставить таб.
Но появилась другая проблема, вылетает вот такая ошибка - http://www.drupal.ru/files/untitled-1_7.jpg
http://www.drupal.ru/node/8546#comment-485554