Taxanomi spårlöst försvunnen i node_form vid hook_form_alter

Events happening in the community are now at Drupal community events on www.drupal.org.
Posted by kleve on November 30, 2010 at 8:54am

Hej

Har skrivit en liten modul som med hjälp av hook_form_alter tar Taxanomiernas olika vokabulär och lägger dessa i två olika fieldsets istället för Taxanomiernas default fieldset, detta för att dela upp vokabulären i node_form-formuläret. Jag har tagit scroll-listorna som ligger i $form['taxonomy'], flyttat dessa till nya fieldsets och sedan dolt $form['taxonomy']. Detta fungerar lokalt och på en testserver men när modulen läggs upp på produktionsserver så fungerar det inte.

Felsökning som har utförts är att utföra en dpr på $form på produktionsservern. Där saknas $form['taxonomy'] vilket är problemet. Tyvärr har jag slut på förslag på vad orsaken till detta är och är i behov av tips om varför den inte syns.

Kan tillägga att om man tittar i en browser på formuläret så finns alla taxanomier på sin ursprungliga dvs i default-fieldset, dock saknas det i $form!!??

//Andreas Nilsson

Comments

Kan du posta din kod? Du kan

Posted by pontus_nilsson on November 30, 2010 at 9:06am

Kan du posta din kod?

Du kan också använda Content Taxonomy-modulen. Där beter sig taxonomier som vanliga CCK-fält istället för "vanliga" taxonomihanteringen i nodformuläret.

//Pontus Nilsson, Digitalist

Här är koden

Posted by kleve on November 30, 2010 at 12:19pm
function play_config_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
//Rearrange publication node form. Puts taxonomy vocabularies in different fieldsets.
case 'publication_node_node_form':
$form['course_set'] = array (
'#type' => 'fieldset',
'#access' => 1,
'#title' => 'Course video settings',
'#collapsible' => 1,
'#collapsed' => 1,
);
dpr($form);
if ($form['taxonomy']) {
$form['course_set']['course_tax'] = $form['taxonomy'][3];
$form['course_set']['period_tax'] = $form['taxonomy'][5];
unset($form['taxonomy']);
//dpr($form);
$form['#validate'][] = 'play_config_check_validate';
}
}
}
function play_config_check_validate($form, &$form_state) {
$form_state['values']['taxonomy'][3] = $form_state['values']['course_tax'];
$form_state['values']['taxonomy'][5] = $form_state['values']['period_tax'];
}

//Andreas Nilsson

Osäker på vad som skapar ditt

Posted by pontus_nilsson on December 1, 2010 at 8:51am

Osäker på vad som skapar ditt fel. Tömt cachen, tömt apc cache? Märkligt att det slår igenom på dev och staging men inte produktion.

Om det är något som inte är driftsatt ännu kanske det kan vara en idé att använda content taxonomy istället för att slippa custom kod? Den modulen borde väl göra samma sak du vill åstadkomma, eller missade jag något?

//Pontus Nilsson, Digitalist

Kollade lite snabbt på

Posted by kleve on December 1, 2010 at 9:22am

Kollade lite snabbt på Content Taxonomy och det ser ut som att den kanske ska fungera. Får testa den varianten istället.

När det gäller tömning av cachen så har jag tömt den via admin-menu modulen. Vet inte om den tömmer allt. För övrigt, vad innebär apc cachen?

Sweden

Group notifications

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

AltStyle によって変換されたページ (->オリジナル) /