четверг, 8 ноября 2012 г.

Быстрая отладка сломанной верстки на Panels

В случае когда вы обнаружили, что на странице невалидный HTML, и причина тому неверно открытые/закрытые теги, бывает сходу трудно понять в каком именно месте ошибка. В каком блоке, пане, регионе, лайауте?
Можно конечно ходить и поочереди отключать блоки из вывода на панель, но проще использовать такой снипет:

/**
 * Override theme_panels_default_style_render_region.
 */
function THEME_NAME_panels_default_style_render_region($vars) {
  if (variable_get('debug_panels_panes', FALSE)) {
    $output = '';
    foreach ($vars['panes'] as $pid => $pane_output) {
      $pane = $vars['display']->content[$pid];
      $output .= $pane_output;
      $output .= '<!-- Region:' . $vars['region_id'] . ' Pane:' . ($pane->type == $pane->subtype ? $pane->type : $pane->type . ':' . $pane->subtype) . ' -->';
    }
    return $output . '<!-- Region:' . $vars['region_id'] . ' -->';
  }
  else {
    // Wipe panel separator.
    return implode('', $vars['panes']);
  }
}

В результате в исходном коде страницы мы увидим комментарии вида:
SOME HTML...
<!-- Region:top_right Pane:social_subscription -->
SOME INVALID HTML WITH NON_CLOSED TAG...
<!-- Region:top_right Pane:bean_panels -->
SOME HTML...
<!-- Region:top_right -->
Проанализировав между какими блоками расположен невалидный кусок, мы легко сможем понять где искать проблему.

Обратите внимание, что если применен стайл-плагин региону, то и препроцес понадобится другой.

Комментариев нет:

Отправить комментарий