Egyedi képernyő tartalom beküldése során

konorti képe

Az lenne a kérdésem, hogy egy jelentkezéshez használt űrlapot, egyedi tartalomtípussal oldottam meg, azért hogy a későbbiekben a jelentkezések listázhatóak és filterezhetőek legyenek egy view-on keresztül. A problémám az hogy ha a user beküld egy ilyen tartalmat, akkor azt hogyan lehetne megoldani, hogy ne a beküldött tartalom jelenjen meg, hanem egy egyedi screen például hogy Köszönjük a jelentkezését stb...

A másik kérdésem pedig az lenne hogy a tartalomtípushoz tudok cck mezőket felhelyezni, de mondjuk statikus szövegeket is ki tudok valahogyan iratni?

Bálint képe

A node beküldés utáni redirekcióra többféle megoldás van, leírok 3-at:

  1. A legegyszerűbb, ha te magad helyezed el a linket, amire kattintva eljutnak a felhasználók a node beküldő űrlapra, így csak az url végére kell írnod egy destination nevű paramétert, pl. így:

    oldalad/node/add/story?destination=node/2

    Ez bármilyen form esetén használható, submit után a megadott helyre (jelen esetben node/2) dob át.
  2. Rules modul használatával létrehozol egy Triggered rule-t, Event-nek beállítod azt, hogy After saving content, Condition-nek felvehetsz feltételt a node típusra (plusz akármilyen egyéb dologra), az Action pedig legyen Page redirect.
    Ha egyébként nem használod semmire a Rules modult, akkor talán csak emiatt én nem biztos, hogy telepíteném.
  3. Saját modulban megvalósítod a hook_form_alter() hurkot, hozzáadsz a node űrlaphoz egy saját submit handlert, és abban elvégzed a redirekciót, kb így:

    <?php
    function mymodule_form_alter(&$form, $form_state, $form_id) {
      if ($form_id == 'node_type_form') { // plusz persze további feltétel a node típusra stb.
        $form['buttons']['submit']['#submit'][] = 'mymodule_example_form_submit';
      }
    }
     
    function mymodule_example_form_submit($form, &$form_state) {
      $form_state['redirect'] = 'node/2';
    }
    ?>

Statikus szöveget a node beküldő űrlapra a beküldési irányelvekkel tudsz helyezni, a tartalomtípus beállításainál találod. De ez sajnos csak az űrlap tetejére helyezi a szöveget. Egyébként a CCK mezők descriptionjeit kell jól kitölteni, de ha ez nem elég, akkor meg kell valósítanod a sminked template.php-jében a theme_node_form() sminkhurkot, és testre szabni teljesen a kimenetet.
Azt hiszem, talán a Display Suite modullal is lehetne valami ilyesmit, de ezzel még csak ismerkedek. Érdemes lehet utánanézni, állítólag jó cucc. :)

0
0
konorti képe

Köszi szépen a választ,

az első lehetőséget kipróbáltam jól működik a baj csak annyi, hogy ahhoz, hogy eljuthasson a felhasználó az ürlapra ahhoz regisztrálnia kell és ha nincs belépve akkor a regisztrációs képernyő jön be. Itt hogy ha ebben az esetben regisztrál, akkor sajnos nem tovább jut a formra, hanem a destination-ben megadott Köszönjük a jelentkezését... képernyő jön be. Úgy hogy megpróbálkozom a második lehetőséggel, valószínűleg úgy is használnom kell majd, mert a form beküldése után a form tartalmát el kell küldenem emailben.

0
0
Den képe

Form id alapján redirt csinál sikeres form beküldés után: http://drupal.org/project/customdestination

Pont ez kell, szerinem.

0
0