Пользовательская функция, добавленная в ядро ​​Drupal, удалена обновлением - PullRequest
0 голосов
/ 24 мая 2018

Я недавно обновил сайт до Drupal 7.59 с профилем установки:

Commerce Kickstart (commerce_kickstart-7.x-2.54)

Ранее была функция, которая была добавлена ​​вядро, которое сейчас удалено из-за обновления.Это не должно было быть добавлено к ядру, и я не уверен, почему это было.Я добавил эту функцию обратно, и она не выполняет то, что делала ранее, поэтому я не уверен, какие еще изменения мне понадобятся, чтобы заставить ее работать.

Вот функция, которая находится в /profiles/commerce_kickstart/themes/commerce_kickstart_admin/template.php -

function commerce_kickstart_admin_commerce_price_formatted_components($variables) {
// Add the CSS styling to the table.
drupal_add_css(drupal_get_path('module', 'commerce_price') . '/theme/commerce_price.theme.css');

// Build table rows out of the components.
$rows = array();

foreach ($variables['components'] as $name => $component) {
  $rows[] = array(
    'data' => array(
      array(
        'data' => $component['title'],
        'class' => array('component-title'),
      ),
      array(
        'data' => $component['formatted_price'],
        'class' => array('component-total'),
      ),
    ),
    'class' => array(drupal_html_class('component-type-' . $name)),
  );
}

if($variables['components']['discount']['price']['amount']){
  unset($rows[0]);
  unset($rows[2]);
}else{
  $rows = array_splice($rows, 2);
}

return theme('table', array('rows' => $rows, 'attributes' => array('class' => array('commerce-price-formatted-components'))));
}

Кто-нибудь может подсказать, как это работает?Это, кажется, даже не вызывается.

Дополнительная информация из комментариев:

it's a function in the profile? да

Was the function added afterwards (as in "Never hack core")? Да, похоже на это.

Or was it removed by the maintainers? Не похоже, что это когда-либо было частью какого-либо официального релиза

Do you use some version control system like Git? Да.Эта функция была добавлена ​​14.05.2015 12:18 в соответствии с репо.

Have you checked the profile's release notes and issue queue? Посмотрел, но ничего не увидел.

1 Ответ

0 голосов
/ 24 мая 2018

Спасибо за добавление дополнительной информации!

Что ж, если это действительно пользовательский код, его никогда не следовало добавлять в профиль.Никогда не добавляйте пользовательский код в любое ядро ​​или файл contrib.Как это будет удалено, как только вы обновите.Как будто это случилось с вами.

Я полагаю, что наиболее важной частью этой пользовательской функции была drupal_add_css(drupal_get_path('module', 'commerce_price') . '/theme/commerce_price.theme.css');, и что commerce_price.theme.css может быть также удалено.

Кроме того, трудноскажи издалека и я не эксперт по коммерческому модулю.Итак, что бы я сейчас сделал, это систематически сужал бы проблему.

  1. Восстановите репо за историческое время до обновления этого модуля и запустите сайт.
  2. Найтичто именно делает этот код, какие другие функции или потоки задействованы.Может быть, с помощью модуля Devel и могущественной функции dpm().
  3. Попробуйте перестроить пользовательский код из профиля в пользовательском модуле.
  4. Затем выполнить сброссделайте репозиторий в текущем состоянии и посмотрите, работает ли код вашего пользовательского модуля.Если нет, отладьте его так, чтобы он соответствовал обновленному коду профиля.

Кроме того, найдите человека, который добавил код, и спросите его, почему и что делает этот код.И скажите им, чтобы они никогда больше не взламывали ядро ​​или код вклада:)

Удачи!

...