Skapa "tom" sida via hook_menu

Events happening in the community are now at Drupal community events on www.drupal.org.
RTauson's picture

Hej,
Hur gör jag för att skapa en "tom" sida till en adress jag registrerat i en egen modul via hook_menu?
Om jag bara returnerar tom sträng kommer drupals side och topbars med per default.

Behöver jag skapa en egen php template ? I så fall hur "kopplar" jag den till just den adressen där jag vill ta bort allt utan $content arean.

Lite exempelkod:

function my_module_menu(){
  $items['popup/%'] = array(
    'title' => 'Just a popup',
    'page callback' => 'my_module_my_popup',
    'page arguments' => array(1),
    'access callback' => TRUE,
    'type' => MENU_LOCAL_TASK,
  );
}

function my_module_my_popup{
  drupal_add_js('my_js');
  return ('');
}

Comments

Du kan antingen göra detta

solipsist's picture

Du kan antingen göra detta för att kasta ut en variabel "rå":

print  $content;

Eller så kan du använda en egen theme-funktion:

print theme('page_popup', $content);

Sedan implementerar du den så här:

function theme_page_popup($content) {
  ...
}

Samt implementerar hook_theme().

Alternativt skapar du en fil som heter page-popup.tpl.php

Jag rekommenderar boken Pro Drupal Development, den tar upp detta bland annat.


Jakob Persson - NodeOne

Inte riktigt där ändå

RTauson's picture

Hej !
Har faktiskt läst avsnittet i Pro Drupal Development, men fattar ändå inte riktigt.

Testade med att göra följande:

function my_popup(){
$content = "<p1>test</p1>";
print $content;
}

Funkar bra, men jag vill också ladda in ett gäng css:er och js filer via drupal_add_js och drupal_add_css, hur får jag med dom ?
Om jag bara skriver ut $content får jag som förväntat endast med det i $content, men jag vill också lägga till enligt ovan.

Ledsen om jag inte är helt med på det här....

Tack för hjälpen

Enklast är att skapa en fil

solipsist's picture

Enklast är att skapa en fil som heter page-popup.tpl.php som innehåller allt det du behöver ($scripts, $styles et c). Om din template saknar dessa kommer inte Drupal inkludera någon CSS eller JavaScript.


Jakob Persson - NodeOne

Får ändå inte till det...

RTauson's picture

Har skapat en page-popup.tpl.php som jag sedan lagt i ett underbibliotek "theme" till min modul efter att ha tittat på views modulen såg att dom hade lagt sina tpl.php filer där.

Behöver jag göra ngt mer på ngt sätt för att drupal skall veta om mitt thema, jag har tömt cachen imellan mina test.

Du måste implementera den

solipsist's picture

Du måste implementera den theme-funktion jag beskrev. Se:
http://drupal.org/node/132442#theme-templates


Jakob Persson - NodeOne

Om du ändrar menu type

freakalis's picture

Om du ändrar menu type från MENU_LOCAL_TASK till MENU_CALLBACK så får du inte med menyer och dylikt utan endast det du spottar ut i funktionen.

http://api.drupal.org/api/function/hook_menu/6

// Christian Johansson, Kodamera AB
www.kodamera.se

// Christian Johansson

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: