Drupal 7 – Rychlé vytvoření navázaného node

Dnes jsem v Drupal 7 narazil na poměrně zajímavý problém. Mám rodičovský node a k němu lze přes nodereference napojit X různých dalších. Můžeme si to představit třeba jako jednoduchou databázi aut (tady by bylo asi vhodnější řešení využít i taxonomy, ale pro ilustraci vyhovuje).

Volvo (node značka)

  • V40 (node modelová řada via nodereference na značku)
  • S60
  • XC60
  • XC90

Se zobrazením takového uspořádání není problém, to jistě každý zvládne. Drobný problém ale nastává při přidávání nového obsahu, kdy standardně neexistuje možnost, jak si vytváření usnadnit a ze značky mít hned možnost přidávat nové modelové řady. Hodilo by se, kdyby existovalo tlačítko přidat model, které si posléze můžeme umístit kam potřebujeme (přímo do node či vlastního administračního view). Jak na to? Je to docela jednoduché, ale budeme k tomu potřebovat vlastní modul.

Technicky využívám konkrétně Node Reference(Autocomplete text field) u modelové řady navázané na značku.

function customize_form_alter(&$form, $form_state, $form_id) {

  if($form_id == 'brand_model_node_form') {
    $form['field_brand'][LANGUAGE_NONE]['0']['nid']['#default_value'] = arg(3);
    // using for redirect
    $form['actions']['submit']['#submit'][] = 'customize_brand_model_node_form_submit';
  }
  //drupal_set_message($form_id);
}

function customize_brand_model_node_form_submit($form, &$form_state) {
   //redirect to parent node based on node reference
   $lang = $form_state['values']['language'];
   $form_state['redirect'] = 'node/' . $form_state['values']['field_brand'][$lang][0]['nid'];
}

Nyní stačí již kdekoliv potřebuji odkázat na node/add/brand-model/[brand] a budu mít v políčku značka automaticky předvybráno. Zároveň mě to po uložení automaticky přesměruje na značku vozidla, kde je i tabulkový výpis modelové řady.

Pokud znáte lepší řešení, budu rád, když mi ho popíšete v komentářích.



Komentáře

Zatím nikdo nepřidal komentář, můžete být první.



O autorovi

Pari

Vítejte na mém blogu, rád bych se v krátkosti představil. Je mi 26 let. Momentálně nejvíce času věnuji projektu Lepime.cz - obchod se samolepkami na zeď a tvorbě webů postavených na redakčním systému Drupal pod značkou MEPA.CZ.