Posted by RTauson on May 8, 2009 at 6:42am
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
Du kan antingen göra detta för att kasta ut en variabel "rå":
Eller så kan du använda en egen theme-funktion:
Sedan implementerar du den så här:
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
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Inte riktigt där ändå
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
Enklast är att skapa en fil som heter
page-popup.tpl.phpsom innehåller allt det du behöver ($scripts,$styleset c). Om din template saknar dessa kommer inte Drupal inkludera någon CSS eller JavaScript.Jakob Persson - NodeOne
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Får ändå inte till det...
Har skapat en
page-popup.tpl.phpsom 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
Du måste implementera den theme-funktion jag beskrev. Se:
http://drupal.org/node/132442#theme-templates
Jakob Persson - NodeOne
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Om du ändrar menu type
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