Вы здесь

0

Спасибо уважаемому xandeadx за модуль http://xandeadx.ru/blog/drupal/751 Commerce Fast Ajax Add to Cart, который ускорил загрузку страниц моего сайта на 40%, потому что кеш перестал забиваться.

Мне бы хотелось повторить функционал bonprix.ru частично: после добавления в корзину над кнопкой добавления появляется очень яркая красивая зеленая надпись "Товар в корзине", а также огромноый поп-ап с товаром и сопутствующими и предложением перейти к оформлению заказа.
В модуле Ajax Basket Link заменяется кнопка добавления на кнопку перехода - тоже хорошо.
xandeadx предложил писать хук hook_commerce_fast_ajax_atc_commands_alter(&$commands) .
Я хочу: после добавления в корзину вывести над кнопкой добавления строку Item in the basket.
Как это сделать, вот кусок кода из Ajax Basket link, в котором по-моему это делается.
как это применить в хуке модуля Commerce Fast Ajax Add to Cart подскажите мне пожалуйста.

/**
 * Ajax callback for updating basket link when item is added.
 */
function commerce_ajax_basket_link_ajax_cart_form_add_to_cart_ajax_callback($form, &$form_state) {

  // Replace submit with message or append?
  $replace_submit = variable_get('commerce_ajax_basket_link_replace_submit', 1);

  // Get edit-submit ID.
  $submit_id = $form['submit']['#id'];

  // Confirmation messages
  $default_messages = variable_get('commerce_ajax_basket_link_default_messages', 0);
  $confirmation_message = '<p class="confirmation">' . l(t('Item added to basket'), 'cart') . '</p>';
  if ($default_messages == 1) {
    $confirmation_message = '<div id="conf' . $submit_id . '"' . 'class="confirmation">' . theme('status_messages') . '</div>';
  }

  // Basket item markup into top nav
  $output = commerce_ajax_basket_link_static_output();
  $output['#markup'] = '<div class="content clearfix">' . $output['#markup'] . '</div>';

  // Reset commerce_line_items_quantity
  unset($form['quantity']['#value']);

  // Ajax commands
  if ($replace_submit) {
        // Reset default system messages
        drupal_get_messages();
        $commands[] = ajax_command_replace('#' . $submit_id, $confirmation_message);
  }
  else {
    $commands[] = ajax_command_invoke('#conf' . $submit_id, 'remove');
    $commands[] = ajax_command_after('#' . $submit_id, $confirmation_message);
  }

  $commands[] = ajax_command_replace('#block-commerce-ajax-basket-link-commerce-ajax-basket-link .content', $output['#markup']);

  return array('#type' => 'ajax', '#commands' => $commands);
}
Версия Drupal: 
7.x
Связанные проекты: 
Drupal Commerce
Вопрос задан 21.04.2015 - 06:40

я видел, что есть попап в этом модуле, но меня интересует строка подтверждения над кнопкой на странице а не поверх окна.

Комментарий оставлен 21.04.2015 - 06:42

Ответы