Как переписать функцию, которая не хук и не theme. Вопрос с примером

Главные вкладки

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 14 сентября 2010 в 17:48

Вот такая функция Уберкарта, вывод панелей с данными покупателя на странице просмотра заказа

<?php

function uc_order_view($order$view 'view') {

$panes _order_pane_list($view);
  foreach (
$panes as $pane) {
    if (
in_array($view$pane['show']) &&
        
variable_get('uc_order_pane_'$pane['id'] .'_show_'$view$pane['enabled'])) {
      
$func $pane['callback'];
      if (
function_exists($func) && ($contents $func($view$order)) != NULL) {
        
$output .= '<div class="order-pane '$pane['class'] .'">';
        if (
$func('show-title'NULL) !== FALSE) {
          
$output .= '<div class="order-pane-title">'$pane['title'] .': '
                   
$func('view-title'$order) .'</div>';
        }
        
$output .= $contents .'</div>';
      }
    }
  }

  return 

$output;
}

?>

Нужно всего-то облачить $contents в доп. слоя. Насколько я понял, дальше она через хук нигде не проходит, девел вообще не видит эти панели

Как быть в такой ситуации (без хака) . Концептуально и, если можно, подробнее Smile

Комментарии

Аватар пользователя vgoodvin vgoodvin 14 сентября 2010 в 18:45

Без хака кажись никак. Можно сделать как надо прямо в модуле (добавить хуки), сделать патч и отправить эту фичу в issues с надеждой что её оценят и добавят в HEAD.

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 14 сентября 2010 в 19:08

Печально. Немного парни (респект им и уважуха!) из Уберкарта не доработали с темизацией. Есть куча узких мест, которые только править в ядре.

Аватар пользователя vgoodvin vgoodvin 14 сентября 2010 в 19:45

Так какие проблемы?
1. Сначала ищем патч в issues.
2. Если находим - патчим свою копию модуля, проверяем. если все ок, следим за развитием патча и самого модуля.
3. Если патч есть но не работает, можно сделать самому, и отправить новый комментарий в найденный issue и предложить свой вариант.
4. Если issue с патчем не был найден, также делаем все сами и отправляем патч на d.org.

Важно помнить о правилах работы с issues http://drupaldance.com/blog/5-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB-%D1%8....