[gelöst]Page erstellen
Eingetragen von dontgotanick (156)
am 03.08.2010 - 08:20 Uhr in
am 03.08.2010 - 08:20 Uhr in
Hi,
bei allen Modulen die ich bis jetzt geschrieben habe hat mir die admin Seite gereicht.
Diesmal nicht, leider find eich keinen hook_page oder sowas.
Wie kann ich jetzt eine page von meinem Modul erstellen auf dem sich ein Formular befindet.
Würde mich über einen Tipp sehr freuen.
LG
dave
- Anmelden oder Registrieren um Kommentare zu schreiben
Konfigurationsseite
am 03.08.2010 - 08:29 Uhr
Hallo.
bei allen Modulen die ich bis jetzt geschrieben habe hat mir die admin Seite gereicht.
Welche Admin-Seite?
Wie kann ich jetzt eine page von meinem Modul erstellen auf dem sich ein Formular befindet.
Oh nein. Sollte etwa jemand das Handbuch zum Erstellen von Modulen aus Versehen (oder gar absichtlich) gelöscht haben?
Ah, doch nicht. Alles noch da. Auch Kapitel 7, "Erstellen der Konfigurationsseite des Moduls" ...
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Hi
am 03.08.2010 - 08:34 Uhr
glaube habe mich falsch ausgedrückt, wie ich eine konfigurationsseite erstelle weiß ich.
Aber wie erstelle ich eine Seite die mir dann Modulfähigkeiten zur verfügung stellt...
LG
dave
Seite
am 03.08.2010 - 08:56 Uhr
Aber wie erstelle ich eine Seite die mir dann Modulfähigkeiten zur verfügung stellt...
?
Was genau möchtest Du tun?
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
ICh würde gerne eine page
am 03.08.2010 - 08:59 Uhr
mit einem Textfeld und einem Submit button darstellen, welches dann eine Methode ausführt also eine Form eben...
ich habe den hook_nodeapi gefunden ich kann das aber absolut nicht anwenden ....
LG
dave
Ist doch ganz ähnlich wie
am 03.08.2010 - 09:03 Uhr
Ist doch ganz ähnlich wie eine Konfigurationsseite:
Du erstellst über hook_menu einen Pfad zu deiner Seite (beim type des Menü-Items nimmst dann statt MENU_NORMAL_ITEM am besten MENU_CALLBACK und in der Callback-Funktion gibts du die Funktion an, die die Seite erstellen soll, z.Bsp:
<?php
function dein_modul_menu() {
$items = array();
$items['deine-seite'] = array(
'title' => 'Deine Seite',
'page callback' => 'dein_modul_page',
'type' => MENU_CALLBACK,
);
return $items;
}
function dein_modul_page() {
$page_content = "";
// Füge etwas der Variablen $page_content hinzu, damit es auf der Seite angezeigt wird
return $page_content;
}
?>
Hi
am 03.08.2010 - 10:41 Uhr
ich bin dazu ien bischen zu doof glaube ich.
Bei mir passiert das nichts wenn ich das so mache. Wenn ich dann das Link von Hand eingebe dann habe ich immer nen page not found error.
Die Funktionalität hätte ich gerne auf eine normale page nicht die administrations page.
<?php
// $Id$
/**
* Valid permissions for this module
* @return array An array of valid permissions for the user_check module
*/
function cwg_user_check_perm() {
return array('access user_check');
} // function cwg_registration_perm()
function cwg_user_check_menu() {
$items = array();
$items['admin/settings/cwg_user_check'] = array(
'title' => 'CWG User Check',
'description' => 'You can check with an email address the status of an user.',
'page callback' => 'drupal_get_form',
'page arguments' => array('cwg_user_check_admin'),
'access callback' => 'user_access',
'access arguments' => array('access user_check'),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
/**
* Define the settings form.
*/
function cwg_user_check_admin($form_state) {
$form['email_address'] = array(
'#type' => 'textfield',
'#title' => t('Type in the email address you want to check'),
);
$form['submit'] = array('#type' => 'submit', '#value' => t('Check'));
return $form;
}
function cwg_user_check_admin_submit($form, &$form_state){
$sql = "SELECT uid FROM {users} WHERE mail='%s'";
$uid = db_result(db_query($sql,$_POST['email_address']));
if($uid == null)
drupal_set_message('The email address is unknown.','error');
else{
$sql = "SELECT uid FROM {users_roles} WHERE uid='%s' and rid='3'";
$role = db_result(db_query($sql,$uid));
if($role == null){
drupal_set_message('The email is known but the user is not an approved user.','warning');
$sql = "INSERT INTO {cwg_user_check} (uid) VALUES ('%d')";
$role = db_result(db_query($sql,$uid));
}
else
drupal_set_message('The user with that email is an approved user.','status');
}
}
LG
dave
hook_menu
am 03.08.2010 - 11:35 Uhr
http://api.drupal.org/api/function/hook_menu/6
und
function foo_form() { return $form;
function foo_form_submit() {... }
--------------------------------------------
mein Tech-Blog auf: http://tech.janschaer.ch
Gott sei dank ich habe es danke für eure Hilfe
am 03.08.2010 - 12:53 Uhr
<?php
function cwg_user_check_menu() {
$items = array();
$items['cwg_user_check'] = array(
'title' => 'CWG User Check',
'page callback' => 'drupal_get_form',
'page arguments' => array('cwg_user_check_form'),
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
function cwg_user_check_form(){
$form['email_address'] = array(
'#type' => 'textfield',
'#title' => t('Type in the email address you want to check'),
);
$form['submit'] = array('#type' => 'submit', '#value' => t('Check'));
return $form;
}
function cwg_user_check_submit(){
$sql = "SELECT uid FROM {users} WHERE mail='%s'";
$uid = db_result(db_query($sql,$_POST['email_address']));
if($uid == null)
drupal_set_message('The email address is unknown.','error');
else{
$sql = "SELECT uid FROM {users_roles} WHERE uid='%s' and rid='3'";
$role = db_result(db_query($sql,$uid));
if($role == null){
drupal_set_message('The email is known but the user is not an approved user.','warning');
$sql = "INSERT INTO {cwg_user_check} (uid) VALUES ('%d')";
$role = db_result(db_query($sql,$uid));
}
else
drupal_set_message('The user with that email is an approved user.','status');
}
}