Drupal Login - Create new account und request new password entfernen
am 27.05.2008 - 19:01 Uhr in
Hi zusammen,
gibt es eine Möglichkeit die Links "Create new account" und "request new password" im Login Block zu entfernen, so das nur der eigentliche Login Bereich bestehen bleibt????
Wäre Euch sehr Dankbar für eine Antwort bzw tipps was ich versuchen könnte.
Gruß
Toral
- Anmelden oder Registrieren um Kommentare zu schreiben

<?phpfunction
am 27.05.2008 - 20:10 Uhr
<?phpfunction theme_user_login_block() {
unset $form['links'];
return drupal_render($form);
}
?>
Sollte gut funktionieren, musste z.B. im Theme benutzen
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
theme_user_login_block
am 28.05.2008 - 07:55 Uhr
Super vielen Dank für die Hilfe.
Benutze ich das dann direkt im Block "User Login" selber oder binde ich das im Theme in eien Datei ein? Wenn ja in welche denn?
Hast da noch einen Tip?
Mit freundlichen Grüssen
Toral
Hi nochmal,
am 28.05.2008 - 08:39 Uhr
Hi nochmal,
habe diese Funktion im User.module gefunden, soll ich dort die anpassungen vornehmen?
function user_login_block() {
$form = array(
'#action' => url($_GET['q'], drupal_get_destination()),
'#id' => 'user-login-form',
'#base' => 'user_login',
);
$form['name'] = array('#type' => 'textfield',
'#title' => t('Username'),
'#maxlength' => USERNAME_MAX_LENGTH,
'#size' => 15,
'#required' => TRUE,
);
$form['pass'] = array('#type' => 'password',
'#title' => t('Password'),
'#maxlength' => 60,
'#size' => 15,
'#required' => TRUE,
);
$form['submit'] = array('#type' => 'submit',
'#value' => t('Log in'),
);
$items = array();
if (variable_get('user_register', 1)) {
$items[] = l(t('Create new account'), 'user/register', array('title' => t('Create a new user account.')));
}
$items[] = l(t('Request new password'), 'user/password', array('title' => t('Request new password via e-mail.')));
$form['links'] = array('#value' => theme('item_list', $items));
return $form;
}
Mit freundlichen Grüssen
Toral
Über einen kurzen Tipp
am 28.05.2008 - 08:40 Uhr
Über einen kurzen Tipp würde ich mich sehr freuen
Mit freundlichen Grüssen
Toral
Schreib die von Daniel
am 28.05.2008 - 08:44 Uhr
Schreib die von Daniel 'dereine' vorgeschlagene Funktion in die template.php deines Themes.
Ersetze 'theme' in function theme_user_login_block() durch den Namen deines Themes.
So überschreibt man themable Functions in Drupal.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
Der Code gehört in die
am 28.05.2008 - 08:45 Uhr
Der Code gehört in die template.php des Themes. Im Core und in den Modulen wird NIEMALS etwas editiert.
--
"Look, Ma, I'm dead!"
Cell, Stephen King
mmh. Ok, also wenn mein
am 28.05.2008 - 09:19 Uhr
mmh. Ok, also wenn mein theme "garland" heisst muss ich also folgendes in die template.php einfügen?
function garland_user_login_block() {
unset $form['links'];
return drupal_render($form);
}
Dann aber bekomme ich eine Fehlermeldung (Parse error: syntax error, unexpected T_VARIABLE, expecting)die genau bei function garland.... beginnt .
Was mach ich denn da falsch?
Mit freundlichen Grüssen
Toral
In "unset" ..
am 28.05.2008 - 09:31 Uhr
.. fehlt auf jeden Fall die Klammer, daher die Fehlermeldung
Gruß
UwBach
eine Klammer?
am 28.05.2008 - 09:34 Uhr
sorry aber ich glaub ich seh den Wald vor lauter bäumen nicht wo fehlt da eine Klammer?
Mit freundlichen Grüssen
Toral
unset ist eine Funktion.
am 28.05.2008 - 09:51 Uhr
unset ist eine Funktion. Deshalb brauchst du Klammern.
function garland_user_login_block() {unset ($form['links']);
return drupal_render($form);
}
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
Ah ok klappt..
am 28.05.2008 - 10:03 Uhr
nur hat sich im Login Bereich meine Anzeige garnichts verändert, es ist alles so wie vorher.
Mach ich da noch irgendetwas falsch oder wird die eigentliche Funktion nicht richtig überschrieben?
Mit freundlichen Grüssen
Toral
Hi nochmal, ao also "Create
am 28.05.2008 - 10:50 Uhr
Hi nochmal,
ao also "Create new account" konnte ich im Administrationsmenü unter User Settings / Public registrations deaktivieren. Jetzt hab ich nur noch "Request new password" im Login Block stehen. Das möchte ich allerdings auch entfernt haben. Aussedem steht ein :* hinter Username und Password das möchte ich auch entfernen. Hat hierzu noch jemand einen Tip oder Idee wie ich dies anpassen kann. Die Funktion in der template.php will einfach nicht greifen.
Mit freundlichen Grüssen
Toral
"Request new password" im Login Bereich
am 28.05.2008 - 12:33 Uhr
Kann mir da wirklich keiner weiterhelfen mit einem Tip wo ich dieses * sternchen hinter Username: und Password entfernen kann, und wo ich den angezeigten Link "Request new password" im Login Bereich ausblenden kann ?
Mit freundlichen Grüssen
Toral
Zwei Möglichkeiten ..
am 28.05.2008 - 15:30 Uhr
die einfache (aber unelegant):
- Modul user Funktion user_login_block() folgende Zeilen auskommentieren:
$items[] = l(t('Create new account'), 'user/register', array('title' => t('Create a new user account.')));$items[] = l(t('Request new password'), 'user/password', array('title' => t('Request new password via e-mail.')));
- die bessere ist hier erklärt Mini-module to remove "request new password"
In beiden Fällen könnte allerdings noch über die direkte Eingabe der URL die Funktion aufgerufen werden. Das wiederum kann verhindert werden indem das Menü (ist gleichzeitig eine Art Berechtigungssystem) verrändert wird. Dazu am besten ein eigenes Modul erstellen und folgenden Code einfügen:
<?php
//; $ Id: menumanipulation.module, UwBach, 2008/04/14 $
/**
* @file Menümanipulation der Anwendung
* Erster Versuch
*/
/**
* Das Menüsystem der Anwendung manipulieren
*/
function manipulation_menu($may_chache)
{
global $user;
$items = array();
// "Aushängen" der DEFAULT-Registrierung
$items[] = array(
'path' => 'user/register',
'title' => t('Sollte es nicht geben'),
'callback' => '',
'access' => FALSE,
'type' => MENU_LOCAL_TASK
);
// "Aushängen" der DEFAULT-Passwortanforderung
$items[] = array(
'path' => 'user/password',
'title' => t('Sollte es nicht geben'),
'callback' => '',
'access' => FALSE,
'type' => MENU_LOCAL_TASK
);
return $items;
} // END manipulation_menu
Damit wird auch der Zugriff auf die Formulare und deren Callback-Funktionen unterbunden.
Das Sternchen hinter dem Usernamen und dem Passwort kommt aus dem Formular, beide Punkte sind als "'#required' => TRUE," gekennzeichnet. Um die Sternchen weg zu bekommen müsste dieses Formular neu definiert bzw. vor der Auslieferung verändert werden(Funktion _alter_form()).
Gruß
UwBach
PS: Den Drupal-Code direkt zu verändern ist zwar einfacher aber kann doch zu Problemen führen. Die bessere Variante ist das in einem eigenen Modul zu machen. Dann ist auch nach einem Update oder einer Neuinstalltation die Funktionalität nicht verloren.
wo man alles Fehler finden
am 28.05.2008 - 15:56 Uhr
wo man alles Fehler finden kann!
ich hatte vergessen $form an die Funktion zu übergeben:
Nun der funktionieren Code:
<?phpfunction theme_user_login_block($form) {
unset($form['links']);
return drupal_render($form);
}
?>
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
Super Danke Euch
am 28.05.2008 - 18:24 Uhr
Super Danke Euch funktioniert super wie gewünscht :-))
Mit freundlichen Grüssen
Toral
Es gibt auch eine Lösung,
am 11.09.2008 - 22:25 Uhr
Es gibt auch eine Lösung, ohne dass irgendein Code in ein template eingebaut werden muss.
Wie oben schon beschrieben lässt sich das "Registrieren" über die »Benutzerverwaltung »Benutzereinstellungen »Nur Administratoren können neue Benutzerkonten erstellen ausschalten.
Ein "Neues Passwort anfordern" kann mit dem Modul No request new password entfernt werden, siehe hier http://drupal.org/project/noreqnewpass
Gruss Chappesepp