如何在Drupal Commerce上创建第二个登录页面

时间:2014-07-22 16:16:12

标签: drupal drupal-7

我正在使用Commerce Kickstart创建一个电子商务市场,我想知道如何创建可供商家使用的第二个登录页面。

标准登录页面在http://website.com/user/login生成。我怎样才能创建另一个登录页面,让我们说http://website.com/user/merchant_login。页面本身的功能与登录完全相同,只是略微改变了美观,例如取消注册链接,因为我们将为商家生成登录信息。

我可以看到表单是通过指定的form_ids在commerce_kickstart_user_form_alter生成的,所以我应该只需在那里添加商家表单的详细信息。我的主要问题是,当他们访问我选择的网址时,页面/表单将如何生成?

1 个答案:

答案 0 :(得分:0)

您只需要创建一个自定义页面:

假设您的自定义模块名为custom_merchant,代码应该是这样的:

function custom_merchant_menu() {
  $items = array();

  $items['user/merchant_login'] = array(
    'page callback' => 'custom_merchant_login_callback',
    'page arguments' => array(true),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
);

  return $items;
}

function custom_merchant_login_menu_alter(&$items) {
  $items['user']['page callback'] = 'custom_login_user_page';
}

function custom_merchant_login_callback($show = false) {
  global $user;
  if ($user->uid) {
    menu_set_active_item('user/'. $user->uid);
    return menu_execute_active_handler();
  } else if ($show) {
    return drupal_get_form('user_login');
  }
  drupal_not_found();
}