it-swarm-eu.dev

Vytváření tvarů uzlů

Ví někdo, jak vytvořit formulář uzlu pro konkrétní typy obsahu? Místo kliknutí Obsah> Přidat obsah> Typ obsahu mohou pouze, nevím, přejít na postranní panel a tam vyplnit informace.

To by bylo skvělé pro typy obsahu, které umožňují anonymní přístup, jako je reference typ obsahu. Na http://goo.gl/LMpSS je něco krátkého, ale ve skutečnosti nic nevysvětluje a nechává vás víc.

5
enchance

Doporučuji použít modul Form Block .
Tento modul jednoduše odhalí tvary uzlů v blocích. Získáte další sadu možností pro každý typ obsahu, který blok povolí/zakáže.

Pokud to potřebujete udělat programově, node_add() je nejlepším způsobem, jak to navrhuje @kiamlaluno.

7
Olof Johansson

Jako vodítko můžete použít kód pro node_add () .

function mymodule_node_form($type) {
  global $user;

  $output = array();
  $types = node_type_get_types();

  if (isset($types[$type])) {
    $node = (object) array(
      'uid' => $user->uid,
      'name' => (isset($user->name) ? $user->name : ''),
      'type' => $type,
      'language' => LANGUAGE_NONE,
    );

    $output = drupal_get_form($type . '_node_form', $node);
  }

  return $output;
}
8
kiamlaluno

Nestydatě zvedl od SO:

https://stackoverflow.com/questions/5344754/drupal-7-how-to-display-node-add-sometype-form-on-another-page#answer-7740337

module_load_include('inc', 'node', 'node.pages');
$form = node_add('node_type');

Kudos na @ "Marius Ilie"

1
chim

Nezkoušel jsem, ale myslím, že musíte vytvořit displej (blok, panel obsahu, zobrazení atd.) A do tohoto displeje vložit volání drupal_get_form().

Displej můžete vytvořit programově (například hook_block_view()), nebo můžete použít modul Pohledy. Pomocí tohoto modulu vytvoříte nové zobrazení (na stránce admin/struktura/zobrazení), přidáte displej (například „blok“) a poté přidáte „globální textovou oblast“ (v záhlaví nebo zápatí), kde jste minuli jeho PHP Kód (nezapomeňte změnit formátující text globálního textu, 'Filtrovaný HTML' na 'PHP kód').

Chcete-li dokončit, pokud jste vytvořili blok, můžete jej umístit kamkoli chcete (s uživatelským rozhraním správce na adrese admin/structure/block).

0
Mathieu