Themen-Checkout-Seiten in Drupal Commerce

16

Wie gestalte ich die Warenkorb- und Checkout-Seiten in Drupal Commerce? Ich habe Inhalts-, Konto-, Abrechnungs- und Zahlungsteile festgelegt. Gibt es eine - .tpl.php-Datei zu erstellen?

Badri
quelle
Wenn Sie genauer wissen möchten, welche Aspekte des Commerce-Einkaufswagens und der Kaufabwicklung Sie ändern möchten und was Sie als Endergebnis wünschen, hilft dies anderen, eine hilfreichere Antwort für Sie zu finden.
sheena_d
Behandlung eines ähnlichen Problems hier! Ich hatte gehofft, hook_form_alter () zu verwenden, um das Markup zu ändern. Bestenfalls bekomme ich ein "Daten" -Feld, das bereits als Tabelle gerendert ist. Man würde hoffen, dass es möglich ist, auf die Formularelemente zu reagieren, bevor sie gerendert werden ... Noch auf der Suche ...
PatrickS

Antworten:

14

Fügen Sie für die Themen-Warenkorbseite page--cart.tpl.phpdas Vorlagenverzeichnis Ihres Themas hinzu.

Zur page--checkout.tpl.phpThemenkasse im Vorlagenverzeichnis Ihres Themas hinzufügen . Wenn Sie nur die Seite zur Überprüfung der Kaufabwicklung thematisieren möchten, fügen Sie sie page--checkout--review.tpl.phpim Vorlagenverzeichnis hinzu.

Vergessen Sie nach dem Hinzufügen von tpl-Dateien nicht, den Cache zu leeren.

Wenn Sie mehr über Hooks erfahren möchten, führen Sie eine dpm($variables)Inside- YOURTHEMENAME_preprocess_pageFunktion aus und sehen Sie sich das theme_hook_suggestionsArray an.

Für Details lesen Sie diesen Kommentar http://drupal.org/node/1142800#comment-5365466

subhojit777
quelle
Das hat mir sehr geholfen, aber da diese Frage nicht meine ist, kann ich nur einen Daumen hoch lassen :)
RajeevK
8

Die einzigen Vorlagendateien in Commerce, die sich auf das Checkout-Modul beziehen, sind commerce-checkout-errors-message.tpl.php und commerce-checkout-help.tpl.php. Diese befinden sich im Commerce-Modulverzeichnis unter modules / checkout / theme.

Die einzige Vorlagendatei, die sich auf das Cart-Modul bezieht, ist commerce-cart-block.tpl.php. Sie befindet sich im Commerce-Modulverzeichnis unter modules / cart / theme.

sheena_d
quelle
5

Eigentlich ist es meiner Meinung nach am einfachsten, hook_form_FORM_ID_alter () zu verwenden, um das Checkout-Formular zu ändern. Wenn Sie nur das Teil im Bestellformular ändern müssen.

Wie ich sehe, befindet sich der größte Teil des Inhalts der Checkout- und Checkout-Überprüfungsseite innerhalb des Formulars. Der erste lautet " commerce_checkout_form_checkout " und der zweite " commerce_checkout_form_review ". Wenn Sie wissen, wie Sie die Formular-API verwenden und wie Sie das Formular mithilfe von hook_form_FORM_ID_alter () ändern. Das wird sehr einfach sein, den Formularinhalt zu ändern. Gerne können Sie diese neu anordnen oder Elemente einfügen / entfernen.

Hier ist ein einfaches Beispiel für das Hinzufügen eines Hinweises zur Checkout-Seite:

function my_module_form_commerce_checkout_form_alter(&$form, &$form_state, $form_id) {

  //If you have Devel module, uncomment to see what is the original form data
  //kpr($form);

  //uncomment to see current form_id
  //echo $form_id;

  //check form id
  if($form_id == 'commerce_checkout_form'){
    $form['my_test_notice'] = array(
      '#markup' => '<h1>Hello, this is a checkout test!</h1>',
      '#weight' => -1,
    );
  }
  elseif($form_id == 'commerce_checkout_form_review'){
    $form['my_test_notice'] = array(
      '#markup' => '<h1>Hello, this is a checkout review test!</h1>',
      '#weight' => -1,
    );
  }
  //You can add more ...

}
Tim Yao
quelle
3

Sie können auch die Body-Klassen verwenden (je nachdem, welches Basisthema Sie verwenden, sind diese häufig verfügbar). Auf diese Weise können Sie beispielsweise untergeordneten Elementen des Körpers mit der Klasse .checkout bestimmte Werte zuweisen. Dies könnte ausreichen, um das Layout ein wenig zu verändern.

Alex C
quelle
2

Haben Sie das Theme Develper- Modul ausprobiert, mit dem Sie Informationen darüber erhalten, welche Theme-Hooks implementiert und welche Platten-Dateien übernommen werden sollen?

Gilzero
quelle
2

Die Warenkorbseite ist nur eine Ansicht. Gestalten Sie sie wie jede andere Ansicht:

  1. Gehen Sie zur Seite, wenn Sie als Administrator angemeldet sind, und klicken Sie auf den Link "Ansicht bearbeiten".

  2. Öffnen Sie auf der Seite zum Bearbeiten der Ansicht die Ansichtseinstellungen "Erweitert" und klicken Sie auf "Informationen zum Design".

  3. Dort können Sie sehen, wie Sie Ihre Vorlagen benennen sollen (dh Ansichten-Ansicht - Commerce-Cart-Zusammenfassung - default.tpl.php) und auch, ob Sie am Anfang der Zeile den Vorlagennamen haben (dh zuerst "Ausgabe anzeigen"). Sie können die Standardvorlage anzeigen, kopieren, unter einem anderen Namen im Vorlagenverzeichnis Ihres Themas speichern und nach Ihren Wünschen ändern.

  4. Sie können diese Seiten (Ansichten) auch selbst erstellen. http://www.drupalcommerce.org/user-guide/modifying-shopping-cart-using-views

user2870349
quelle
2

Sie können Ihre eigenen .tpl-Dateien erstellen und diese mit einer hook_theme-Funktion aufrufen:

function yourtheme_theme(&$existing, $type, $theme, $path) {
  return array(
    'commerce_cart_add_to_cart_form'=> array(
    'render element' => 'form',
    'template' => 'path/to/template/commerce_cart_add_to_cart_form',
  ),
    'commerce_checkout_form_review'=> array(
    'render element' => 'form',
    'template' => 'path/to/template/commerce_checkout_form_review',
  ),
  ...
  ...(more templates)
}

Da es sich um Formulare handelt, können Sie das Formular ausblenden, die gewünschten Elemente finden und ein eigenes Markup in Ihrer Vorlage verwenden.

<?php
  hide($form);
  dpm($form);
?>

<div>
  print render($form[...]);
</div>

Oder Sie können es so lassen, wie es ist, und etwas dagegen tun.

mlaroy
quelle