एक ही पृष्ठ पर पंजीकरण और लॉगिन फ़ॉर्म प्रिंट करें


11

मैं उसी पेज पर रजिस्टर और लॉगिन फॉर्म कैसे प्रिंट कर सकता हूं?

मुझे लगता है कि मैं वास्तव में सिर्फ फॉर्म आईडी के लिए देख रहा हूं, लेकिन अगर आपको सही रेंडर फ़ंक्शन काम मिल गया है तो यह बहुत सराहनीय होगा।

जवाबों:


12
print(drupal_render(drupal_get_form('user_register_form')));
print(drupal_render(drupal_get_form('user_login_block')));

जानकारी के लिए user_register_form () और user_login_block () देखें। ध्यान दें कि user_register_formएक असामान्य फॉर्म बिल्डर फ़ंक्शन है: यह कुछ मामलों में रीडायरेक्ट करता है।


सुंदर साथी। एकदम सही जवाब!
emc

1
किसी भी विचार कैसे Drupal 8 में इसे पाने के लिए? धन्यवाद।
स्टीफन

फिल, शायद यह किसी भी मदद की है: api.drupal.org/api/drupal/…
अलारी ट्रट्स

6

मैंने LoginToboggan से कोड लिया। मेरे पास बस यही है।

/**
* Implementation of hook_theme()
*/
function os_pages_theme() {
  return array(
    'os_pages_login_form' => array(
      'variables' => array(
        'register_form' => NULL,
        'login_form' => NULL,
      ),
    ),
  );
}
/**
* Logintobbogin provides the code to consolidate
* the registration page and the login page however
* it doesn't do exactly the way we want so we will 
* take the code. 
* @see http://drupal.org/project/logintoboggan
*/

 /**
 * Implementation of hook_menu_alter().
 */
function os_pages_menu_alter(&$callbacks) {
  // Kill the tabs on the login pages.
  $callbacks['user/login']['type'] = MENU_NORMAL_ITEM;
  $callbacks['user/login']['page callback'] = 'os_pages_login_page';
  $callbacks['user/register']['type'] = MENU_CALLBACK;
  $callbacks['user/register']['page callback'] = 'os_pages_login_page';
  $callbacks['user/register']['page arguments'] = array('register');
  $callbacks['user/password']['type'] = MENU_CALLBACK;
  $callbacks['user']['page callback'] = 'os_pages_login_page';
}
/**
 * Menu callback for user/login
 *   creates a unified login/registration form (without tabs)
 */
function os_pages_login_page() {
  global $user;
  if ($user->uid) {
    menu_set_active_item('user/' . $user->uid);
    return menu_execute_active_handler(NULL, FALSE);
  }
  else {
    // Title just clutters the interface...
    drupal_set_title('');
    $output = os_pages_login_form();
    return $output;
  }
}
/**
 * Builds a unified login form.
 */
function os_pages_login_form() {
  $register_form = drupal_get_form('user_register_form');
  $login_form = drupal_get_form('user_login');
  $rendered_register_form = drupal_render($register_form);
  $rendered_login_form = drupal_render($login_form);
  $variables = array(
    'login_form' => $rendered_login_form,
    'register_form' => $rendered_register_form,
  );
  $output = theme('os_pages_login_form', $variables);
  return $output;
}
/**
 * Theme function for unified login page.
 */
function theme_os_pages_login_form($variables) {

  $register_form = $variables['register_form'];
  $login_form = $variables['login_form'];
  $output = '';

  $output .= '<div class="login-form">';

  // Add the login and registration forms in.
  $output .= '<div id="register-form">' . $register_form . '</div>';
  $output .= '<div id="login-form">' . $login_form . '</div>';

  $output .= '</div>';

  return $output;
}

4

इसके लिए आपको इस तरह पंजीकरण के लिए एक पेज बनाना होगा

page-user-register.tpl.php

और पृष्ठ की सामग्री को हमेशा की तरह प्रिंट करें। उस पेज में आप रेंडर करने की कोशिश कर सकते हैंuser_login_block

अतिरिक्त संसाधन

  1. http://www.trevorsimonton.com/blog/page-usertplphp-profile-php-template-drupal
  2. http://api.drupal.org/api/drupal/modules%21user%21user.module/function/user_login_block/7

1
चुना गया उत्तर drupal.stackexchange.com/a/27419/4471 सत्यापन त्रुटि को फेंक देगा।
निकमासक

4

LoginToboggan आपके लिए यह करता है: इसे इंस्टॉल करें, और व्यवस्थापक / config / system / logintoboggan पर जाएं; "एक एकीकृत लॉगिन / पंजीकरण पृष्ठ प्रस्तुत करें" चुनें।


अगर आप अपना खुद का मॉड्यूल लिखना चाहते हैं, तो आप इसके स्रोत
मोहम्मद अली अकबरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.