Ha fler functions av samma namn i template.php?

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

Hej, jag har ett problem. Det är såhär att om jag lägger till en ny function för t.ex. "function theme_form" och det redan finns en som heter "function theme_form" som gör en annan grej så blir det såklart konflikter eftersom functions måste vara unika. Men jag måste få till detta för att kunna ändra på 2 olika ställen på 2 olika forms. Hur ska man bära sig åt då? Att klippa ut själva php-koden ur funktionen och lägga in i den andra under "function theme_form" fungerade inte.

Comments

Om du vill ändra på två olika

angelg33k's picture

Om du vill ändra på två olika forms så kan du ha två funktioner, som du döper efter respektive form. T.ex.

theme_comment_form
theme_blog_entry_node_form

Byt ut theme mot namnet på ditt tema.
Du kan också använda hook_form_alter och göra olika saker beroende på vilket id formuläret har.

function theme_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'comment_form') {
// do your thing
}
if ($form_id == 'blog_entry_node_form') {
// do some other thing
}
}

Men om jag vill ändra på alla

ChristianP's picture

Men om jag vill ändra på alla forms på hela sidan, och så finns det redan en function för "theme_form" som gör andra saker, hur gör jag då? Säg att den redan existerande funktionen gör så att alla Fält i webbformuläret som har "?" tar bort ":" efter sig, och så vill man ju ha på hela sidan. Och så gör den andra funktionen någon helt annan grej, men den ska också påverka alla kontaktformulär på sidan. :/

Du har en funktion

pontus_nilsson's picture

Du har en funktion "theme_form" som ska göra en sak på alla dina formulär. Du vill ha en till funktion som också påverkar alla formulär, lägg då den koden i samma "theme_form". Funktionen behöver inte bara ta bort ":" utan kan göra en mängd saker.

Om du sedan vill tema enbart comment_form så kan du använda theme_comment_form.

Om du använder modulen Theme developer så kan du se vilka funktioner som påverkar din output. Då kan du t.ex. se att först körs theme_form därefter theme_comment_form etc. Se exemplet här

//Pontus Nilsson, Digitalist

Sweden

Group notifications

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