Posted by erkan_o on March 1, 2010 at 3:26pm
Hej,
Jag har en innehållstyp. Jag behöver ändra "skapa innehåll"-sidan för den innehållstypen rätt så radikalt. Vi pratar omplacering av formulärfält samt att dölja alternativt visa fält beroende på tidigare val i formuläret.
Jag får intrycket att jag fiskar i fel vatten, istället för att omarbeta "node/add/innehållstyp" så bör jag göra en egen nod med formulär för att skapa denna innehållstyp så att jag får mer kontroll på fält.
Tänker jag fel nu?
Hur gör man en nod med ett formulär som tillverkar en ny nod alternativt en ny nod tillhörande en innehållstyp?
Tack!

Comments
Hook form allter
Du behöver hook_form_alter() i api.drupal.org. Jag har inte tid a visa just hur man gör nu men om du tar en titt på contrib signup.module kommer du att hitta rätt sätt att fixa detta. exempelvis
<?php
/**
* Alters the form for administrator settings per node type.
* (admin/content/types)
*/
function signup_form_node_type_form_alter(&$form, &$form_state) {
$type = $form['old_type']['#value'];
$form['signup'] = array(
'#type' => 'fieldset',
'#title' => t('Signup settings'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['signup']['signup_node_default_state'] = array(
'#type' => 'radios',
'#title' => t('Signup options'),
'#options' => array(
'disabled' => t('Disabled'),
'allowed_off' => t('Allowed (off by default)'),
'enabled_on' => t('Enabled (on by default)'),
),
'#default_value' => variable_get('signup_node_default_state_'. $type, 'disabled'),
'#description' => t('If %disabled is selected, signups will not be possible for this content type. If %allowed_off is selected, signups will be off by default, but users with the %admin_all_signups permission will be able to allow signups for specific posts of this content type. If %enabled_on is selected, users will be allowed to signup for this content type unless an administrator disbles signups on specific posts.', array('%disabled' => t('Disabled'), '%allowed_off' => t('Allowed (off by default)'), '%enabled_on' => t('Enabled (on by default)'), '%admin_all_signups' => t('administer all signups'))),
);
if (!empty($type) && function_exists('_signup_date_alter_node_type_form')) {
_signup_date_alter_node_type_form($form, $form_state);
}
}
?>
Carl McDade
Drupal Source Exchange - alpha
Kanske kan conditional fields
Kanske kan conditional fields hjälpa dig http://drupal.org/project/conditional_fields
Lite osäker på vad du vill få fram, har du något konkret exempel?
//Pontus Nilsson, Digitalist
Stort tack! Detta puttar mig
Stort tack! Detta puttar mig i rätt riktning.
PN: Tänkte medvetet inte gå in på det, för det blir så rörigt då och då får man inga svar. Men ok, här kommer det :-)
Tanken är att låta registrerade användare låta köpa en tjänst (välja ett val ur en radio-lista), beroende på vilken tjänst de väljer ser de olika fält de ska fylla i. Det som skapas av detta är då en nod med information som de fyllt i.
Denna nod innehåller varierande mycket information beroende på vilken tjänstetyp de väljer att "köpa". Om någon väljer den enklaste nivån så visas inte så många fält när noden skapas och inte så mycket information på noden heller.