【问题标题】:Theming ubercart address panes主题化 ubercart 地址窗格
【发布时间】:2013-04-10 09:11:00
【问题描述】:

我正在尝试使用表单更改主题结帐地址窗格。

function mymodule_theme() {
    return array(
        'billing_pane_theme' =>array(
            'render element' => 'form',
            'path'=> drupal_get_path('theme', 'twitter_bootstrap').'/templates/checkout',
            'template' => 'checkout-billing-fields',

        ),

        'delivery_pane_theme' => array(
            'render element' => 'form',
            'path'=> drupal_get_path('theme', 'twitter_bootstrap').'/templates/checkout',
            'template' => 'checkout-delivery-fields',

        ),

    );
}


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

    if($form_id == 'uc_cart_checkout_form') {
        $form['panes']['billing']['#theme'] = 'billing_pane_theme';
        $form['panes']['delivery']['#theme'] = 'delivery_pane_theme';


    }
}

当用户第一次点击“结帐”按钮或刷新结帐页面时一切顺利,但如果用户选择“保存的地址”或“我的帐单信息与我的送货信息相同”(窗格通过 ajax 请求呈现) 然后主题不适用,并且显示默认地址字段窗格

【问题讨论】:

    标签: drupal ubercart


    【解决方案1】:

    尝试查看#ahah 回调属性并检查返回的表单是否触发了更改,我猜它只返回完整表单的“切片”,跳过您的主题。

    【讨论】:

    • 是的 muka 你是对的,当 ajax 请求被处理时,它只返回结帐地址窗格的字段。
    • 您好,我已经更新了 ajax 请求前后的屏幕截图。有什么方法可以应用主题。
    • 不确定,但你不能通过 ajax 返回一个已经渲染的表单,比如 theme('your_uc_theme', $form, $form_state) [语法完全是虚构的:]
    猜你喜欢
    • 2011-03-31
    • 2012-02-21
    • 2012-12-01
    • 2011-03-14
    • 2011-05-16
    • 1970-01-01
    • 2011-03-13
    • 2013-02-14
    • 2011-06-09
    相关资源
    最近更新 更多