it-swarm-eu.dev

Vytvoření tokenu pro cestu k souboru obrazového pole s referenčním uzlem uzlu

Protože neexistuje podpora pro pole v žetonech Drupal 7), jak vytvořím kód, který nahradí token v cestě k souboru obrázku pole?

EDITOVAT : Nejprve, toto je s widgetem Node Reference URL widget, takže NID referenčního uzlu je načten do formuláře pole, dokud bylo na odkaz kliknuto na odkazovaný uzel.

Uvědomuji si, že neexistuje žádný kontext pro načtení informací, které mají být předány do tokenového modulu, protože neexistují žádné informace o uzlu do doby, kdy se volá token_replace (). To je před přidáním NID odkazovaného uzlu do formuláře.

Přidání cesty k souboru pomocí hook_form_FORM_ID_form_alter() funguje, ale není to příliš bezpečné. Uživatel pravděpodobně nepoužívá widget Node referenční adresa URL) pro přístup na stránku. V takovém případě je uzel uložen s referencí, zatímco cesta obrázku v žádném okamžiku neměla přístup pro informace o NID referenčního uzlu. A pokud je uzel poté upravován, změní cestu při vytváření, protože bude vědět o referenčním uzlu vytvářejícím nepořádek místa.

Zde je jednoduchý kód, který není příliš bezpečný. Nevadilo by mi lepší řešení.

Aktualizace:

Ukázalo se, že widget referenční adresy URL uzlu lze nastavit tak, aby vrátil stránku nenalezenou, pokud adresa URL odkazovaného uzlu není v adrese URL, což by tuto funkci učinilo trochu bezpečnější, protože to nutí uživatele, aby mohl pouze vytvořit uzel. pokud klikli na odkaz vytvořit uzel na odkazované stránce.

/**
*  Implements hook_form_FORM_ID_form_alter\
*/
function HOOK_form_photo_node_form_alter(&$form, &$form_state) {
  $lang = $form['language']['#value'];
  $form['field_business_photo'][$lang][0]['#upload_location'] = 'public://photo/' . $form['field_reference_business'][$lang][0]['nid']['#default_value'];
}
6
Adam S

Odpověď je pomocí modulu Fieldfield Paths .

Modul FileField Paths rozšiřuje výchozí funkčnost modulu Drupals Core Upload, modulu FileField a mnoha dalších modulů File Upload přidáním možnosti použití uzlů v cílové cesty a názvy souborů.

1
Adam S