Formular Themen
Eingetragen von drupalino (1064)
am 18.08.2010 - 21:53 Uhr in
am 18.08.2010 - 21:53 Uhr in
Hallo Zusammen,
ich verzweifel so langsam. Ich habe eine Modul erstellt (noch in der Testfassung) und leider bekomme ich es nicht hin, dass sich dieses Formular themen lässt.
<?php
/**
* Implimantation of hook_help()
**/
function ms_jobmessage_help($path, $arg){
if ($path == 'admin/help#ms_jobmessage'){
$txt = 'Help for MS Jobmessage';
return '<p>'. t($txt) .'</p>';
}
}
/**
* Implementation of hook_perm()
*/
function ms_jobmessage_perm() {
return array('administer jobmessage');
}
/**
* Implementation of hook_access
*/
function ms_jobmessage_access(){
}
/**
* Implementation of hook_menu().
*/
function ms_jobmessage_menu() {
$items['admin/settings/jobmessage'] = array(
'title' => 'Job Messages',
'description' => 'Job Messages',
'page callback' => 'ms_jobmessage_page',
'access callback' => 'ms_jobmessage_perm',
'access arguments' => array('administer jobmessage'),
'file' => 'ms_jobmessages.admin.inc',
);
$items['jobmessage'] = array(
'title' => t('Job Messages'),
'description' => t('Job Messages'),
'page callback' => 'ms_jobmessage',
'access arguments' => array('access content'),
'type' => MENU_SUGGESTED_ITEM,
);
return $items;
}
function ms_jobmessage(){
return drupal_get_form('ms_jobmessage_create_form');
}
/**
*Implementation of hook_form()
*/
function ms_jobmessage_create_form($form_state){
$form = array();
$form['freitext'] = array(
'#type' => 'textfield',
'#size' => '30',
'#title' => 'Erste Zeile',
);
$form['rate'] = array(
'#type' => 'select',
'#options' => array(
'100' => t('100'),
'200' => t('200'),
'300' => t('300'),
),
'#description' => t('Description'),
);
$form['message'] = array(
'#type' => 'textarea',
'#title' => t('Message'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('ab dafuer'),
);
return $form;
}
function ms_jobmessage_create_form_submit($form_id, $form_values){
ms_jobmessage_insert($form_values);
$message = "-->".$form_values['values']['message'];
//$message = '<pre>' . print_r($form_values, TRUE) . '</pre>';
drupal_set_message($message);
}
/**
* Implementation of hook_insert
*/
function ms_jobmessage_insert($form_values){
db_query(
'INSERT INTO {ms_jobmessage} (message, uid_sender) VALUES ("%s", %d)', $form_values['values']['message'],$form_values['values']['rate']
);
}
function theme_ms_jobmessage() {
return array(
'ms_jobmessage_create_form' => array('arguments' => array('form' => NULL),),
);
}
function theme_ms_jobmessage_create($form){
$output .= "<hr>";
$output .= drupal_render($form['rate']);
return $output;
}
?>
Ist noch ein bisserl wüst, aber vielleicht hat jemand einen Tipp (das steht nur drin um festzustellen, dass die function arbeitet, was sie aber nicht macht)
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo drupalino, in Drupal 6
am 19.08.2010 - 15:26 Uhr
Hallo drupalino,
in Drupal 6 musst du zusätzlich hook_theme implementieren.
Darin wird vermerkt welche theme-Funktionen verwendet werden.
Anschließend musst du das Modul erneut aktivieren.
Viele Grüße,
www.maximago.de/technologie/drupal.aspx
Aber ist das denn hie rnicht
am 19.08.2010 - 15:29 Uhr
Aber ist das denn hie rnicht der Fall ?
function theme_ms_jobmessage() {
return array(
'ms_jobmessage_create_form' => array('arguments' => array('form' => NULL),),
);
}
function theme_ms_jobmessage_create($form){
$output .= "<hr>";
$output .= drupal_render($form['rate']);
return $output;
}
gruss
drupalino
Nein, das ist nicht
am 19.08.2010 - 15:50 Uhr
Nein, das ist nicht hook_theme, sondern nur die theme-Funktionen, die das HTML bestimmen.
Die Schreibweise für hooks erkennst du an dieser Notation:
function [Modulname]_[hook-Name](...) {
//...
}
Darin müsstest du wie gesagt vermerken, welche theme-Funktionen verwendet werden.
Wie man dass genau macht, kannst du hier nachlesen: http://api.drupal.org/api/function/hook_theme/6
bzw. in schon vorhandenen Core-Modulen sind gute Beispiele.
Viele Grüße,
www.maximago.de/technologie/drupal.aspx