Funktioniet nicht, obwohl es müsste(?)
am 18.06.2011 - 13:19 Uhr in
Hi,
ich habe hier ein kleines Modul, das nicht so recht will. Das Moduls soll nur einen Block erzeugen, mit einem Formular. Dort gibt man eine node-id ein und wird, sofern die node existiert, auf eben diese weitergeleitet. Folgend der Quellcode, Drupal gibt keine Fehler aus, aber es erscheint in der Blockliste auch kein Block !?
function idjumper_blockform($form_state)
{
$form['id_field'] = array(
'#type' => 'textfield',
'#title' => '',
'#size' => 10,
'#maxlength' => 10
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Ok')
);
return $form;
}
function idjumper_blockform_validate($form, &$form_state)
{
if (!is_numeric($form_state['values']['id_field'])) {
form_set_error('', t('Bitte nur Zahlen eingeben'));
}
}
function idjumper_blockform_submit($form, &$form_state)
{
$query = "SELECT nid, title, created FROM {node} WHERE nid = %d ";
$query_result = db_query($query, (int)$form_state['values']['id_field']);
if(db_fetch_object($query_result)) // existiert die node?
{
drupal_goto('/node/'.(int)$form_state['values']['id_field'], array(), 301);
} else {
drupal_set_message(t('Unbekannte Objektnummer'), 'warning', FALSE);
}
}
/**
* Implements hook_block_info().
*/
function idjumper_block_info() {
$blocks['idjumper'] = array(
'info' => t('ID Jumper Formular'), //The name that will appear in the block list.
'cache' => DRUPAL_CACHE_PER_ROLE, //Default
);
return $blocks;
}
function idjumper_block_view($delta = '') {
switch($delta){
case 'idjumper':
$block['subject'] = t('Objektnummer');
$block['content'] = drupal_get_form('idjumper_blockform');
break;
}
return $block;
}- Anmelden oder Registrieren um Kommentare zu schreiben

Siehst Du dieses Modul in der
am 18.06.2011 - 14:14 Uhr
Siehst Du dieses Modul in der Modulliste und hast Du es aktiviert?
Beste Grüße
Werner
Eigentlich brauchst Du nicht
am 18.06.2011 - 14:16 Uhr
Eigentlich brauchst Du nicht mal ein Modul dazu...
Ich habe dasselbe Problem so gelöst:
Ein kleine View, welche mit einem auf die Nid exposed Filter als Block konfiguriert ist. Der Vorteil davon ist, dass man über Views auch gleich sieht, ob der Node vorhanden ist oder nicht.
Ja habe ich ;)/fakeedit: Ich
am 18.06.2011 - 14:25 Uhr
Ja habe ich ;)
/fakeedit: Ich weiß nicht was sich geändert hat, aber nachdem ich das Modul deaktiviert und wieder aktiviert habe, funktioniert es wie es soll. Ich musste nur noch einen anderen, hierfür nicht relevanten Fehler ausbügeln :)
/edit: @leda Oh stimmt. Naja jetzt habe ich es so gelöst, geht ja auch^^