KT Forms

KT Forms nabízí snadné, rychlé a jednoduché vytváření HTML formulářů za pomocí předem definovaných vlastností a funkcí. Mají také navíc rozšířené možnosti propojení na WordPress, které vám umožní snadnou a rychlou manipulaci s daty, která jsou určena pro WordPress samotný. Probíhá také automaticky validace na straně HTML5 atributů, Javascriptu a nakonec i na straně serveru. Formuláře umožňují také snadný výpis dat, která jsou přiřazená nějaké lehké entitě.

Související komponenty

Logika práce s formuláři

  1. KT_Form může mít definovaný jeden nebo více fieldsetů – KT_Form_Fieldset.
  2. Formulář udržuje kolekci všech fieldsetů, která mu byla předána / definována.
  3. Fieldset má následně definovanou sadu fieldů (KT_Field).

Obecně platí pravidlo, že se fieldsety definují ve vlastním configu modelu, kde je možné se na něj opakovaně dotazovat bez potřeby psát kód znovu.

Jak by vypadal jednoduchý formulář?

V první řadě si definujeme config našeho modelu, kam umístíme definici fieldsetu.

Nyní můžeme založit formulář

Nyní, když máme připravené zpracování formuláře, potřebujeme ho už jenom zpracovat, pro případnou editaci do něj načíst data a zároveň ho uživateli vykreslit.

Nyní máme připravený základní formulář, který obsahuje několik inputů, dle naší definice. Nezapomeňte, že fieldsety se definují do souborů s configy. Nemělo by se Vám nikdy stát, že byste měli jeden zapsaný vícekrát než jednou na jednom místě. Struktura je navržena tak, abyste se na potřebné fieldy nebo samotné fieldsety dostali vždy z každé pozice kódu a části Vašeho projektu.

Formulář může udržovat jeden nebo celou kolekci fieldsetů. Validace, ukládání a načítání se provádí vždy nad celou kolekcí. Pokud potřebujete fieldsety a jejich zpracování rozdělit, je potřeba založit více formulářů.

Ukládání a načítání dat do formuláře

Stejně jako je možné uložit automaticky data poslané formulářem do příslušné části WordPressu, tak můžete využit i některé další funkce:

  • $form->saveFieldsetToOptionTable()  – uloží data do WP_Options
  • $form->saveFieldsetToPostMeta( $postId ) – uloží data do WP_PostMetas
  • $form->saveFieldsetToUserMeta( $userId ) – uloží data do WP_UserMetas
  • $form->saveFieldsetToCommentMetaTable( $userId ) – uloží data do WP_CommentMetas
  • $form->saveFieldsetToTermMetaTable( $userId ) – uloží data do KT_TermMetas

Stejně, jako je potřeba data ukládat, je možné data na stejném principu načítat, k tomu nám slouží následující funkce:

  • $form->loadDataFromPostMeta( $postId )
  • $form->loadDataFromUserMeta( $userId )
  • $form->loadDataFromWpOption()
  • $form->loadDataFromCommentMeta()
  • $form->loadDataFromTermMeta()

Načítání i ukládání dat z formuláře probíhá na vazbě Input name => input value.

Ruční načtení dat

Občas bude nutné do formuláře dostat data ručně – mimo naše tabulky. Například z důvodu, že budeme chtít data kombinovat z více míst. Nezapomeňte, že celý formulář pracuje vždy s fieldsety. Je tedy nutné načítání dat do něj provádět přes tyto fieldsety.

Ruční načtení dat v postupném sledu

Někdy může být také potřeba, že budete do formuláře potřebovat přidávat fieldset postupně včetně jejich dat.

Pomocí prvku KT_WP_Nonce_Field je možné v rámci KT_Formu integrovat WP kontrolu odesílané adresy, tj. aby např. nešlo odesílat formuláře z externích serverů apod. Stačí si do formuláře, resp. fieldsetu přidat nonce prvek (metoda addWpNonce na KT_Fieldsetu) a pak je ještě třeba před nebo při zpracování formuláře volat metodu nonceValidate(), která zajistí samotnou kontrolu.

Obecné nastavení parametrů formuláře

Objekt formuláře udržuje také řadu parametrů, které je občas potřeba nastavit.

Nezapomeňte, že formulář má nastavené defaultní výchozí hodnoty. Nemusíte proto vždy nastavovat každý parametr, který formulář využívá.

Ruční vykreslení formuláře

Někdy je také nutné mít nad formulářem kontrolu a je potřeba vypisovat / poskládat si data ručně dle Vaší potřeby.

arrayAccess

Formulář má zaveden arrayAcces pro snadnější přístup k instancím daných fieldů.

V případě, že chcete využívat arrayAcces je nutné nemít stejné názvy fieldů v kolekcích fieldsetů. ArrayAccess prochází jednotlivé kolekce fieldů na fieldsetech a v případě schody s názvem fieldů ho ihned vrací.



Odebírejte novinky z FW

Sledujte nás!

Tyto stránky využívají Cookies. Používáním těchto stránek vyjadřujete souhlas s používáním Cookies.Zjistit víceOK, rozumím