{"id":233613,"date":"2023-02-18T19:38:00","date_gmt":"2023-02-18T16:38:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233613"},"modified":"2022-11-11T00:38:53","modified_gmt":"2022-11-10T21:38:53","slug":"painovoimamuotojen-koodaus-johdanto","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/painovoimamuotojen-koodaus-johdanto\/","title":{"rendered":"Painovoimamuotojen koodaus: Johdanto"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.gravityforms.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gravity Forms<\/a> on ehk\u00e4 tunnetuin ja paras WordPressin lomakkeenrakennuslaajennus. Se ei ole vain helppok\u00e4ytt\u00f6inen, ja siin\u00e4 on runsaasti lis\u00e4osia maksujen tai uutiskirjeiden sis\u00e4llytt\u00e4miseen lomakkeihisi. Mutta se on my\u00f6s eritt\u00e4in kehitt\u00e4j\u00e4yst\u00e4v\u00e4llinen ja joustava. Henkil\u00f6kohtaisesti olen k\u00e4ytt\u00e4nyt ja kehitt\u00e4nyt Gravity Formsin kanssa v\u00e4hint\u00e4\u00e4n 5 vuotta \u2013 eik\u00e4 minulla ole koskaan ollut ominaisuutta, joka ei olisi ollut mahdollista tai todella vaikeaa kehitt\u00e4\u00e4 Gravity Formsilla.<\/p>\n<p>Muista, ett\u00e4 Gravity Forms ei ole ilmainen. Sinun on ostettava lisenssi. Ne tarjoavat useita eri tyyppej\u00e4 eri hinnoilla saadakseen ja k\u00e4ytt\u00e4\u00e4kseen sit\u00e4. Kun olet ostanut lisenssin, saat k\u00e4ytt\u00f6\u00f6si my\u00f6s valikoiman heid\u00e4n lis\u00e4osia sen mukaan, mink\u00e4 lisenssin ostat.<\/p>\n<h2>Gravity Forms meille kehitt\u00e4jille<\/h2>\n<p>Gravity Forms tarjoaa paljon suodattimia ja koukkuja, mutta ei ole olemassa malleja, joita voit ohittaa. Koukut tarjoavat kehitt\u00e4jille paljon joustavuutta laajentaa ja muokata Gravity Formsin k\u00e4ytt\u00e4ytymist\u00e4. Katso <a href=\"https:\/\/docs.gravityforms.com\/category\/developers\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gravity Formsin kehitt\u00e4jien dokumentaatiosivut<\/a>. Useimmat, elleiv\u00e4t kaikki, mukautukset tehd\u00e4\u00e4n joihinkin Gravity Formsin objekteihin; joko suoraan tai Gravity Forms API (<code>GFAPI<\/code>) -luokan kautta. Voit my\u00f6s olla vuorovaikutuksessa Gravity Formsin kanssa REST API:n avulla (joka laajentaa <a href=\"https:\/\/developer.wordpress.org\/rest-api\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressin REST API:<\/a> ta ).<\/p>\n<p>Esimerkkimahdollisuuksia kehitt\u00e4jille ovat kent\u00e4n tulosteiden muokkaaminen, kent\u00e4n arvojen muuttaminen ennen kuin ne tallennetaan liidiksi ja s\u00e4hk\u00f6posti-ilmoitusten ohjelmointi. Muita esimerkkej\u00e4 ovat mukautettujen lomakeasetusten lis\u00e4\u00e4minen, uusien kentt\u00e4tyyppien luominen ja mukautettujen kenttien tai kentt\u00e4arvojen lis\u00e4\u00e4minen olemassa oleviin lomakkeisiin.<\/p>\n<p>Gravity Formsilla on &quot;Lis\u00e4osat&quot;-kehys, jonka avulla muut kehitt\u00e4j\u00e4t ovat voineet luoda omia lis\u00e4osia Gravity Formsiin. Ja niit\u00e4 on tehty melkoisesti. Lis\u00e4osia ovat esimerkiksi MailChimp-kirjautuminen, maksuyhdysk\u00e4yt\u00e4v\u00e4t Stripen kanssa, Hubspot integraatio, Polls, Quiz, Zapier-integraatio ja Dropbox. Saatavilla olevat lis\u00e4osat riippuvat k\u00e4ytt\u00f6oikeudesta. Katso <a href=\"https:\/\/www.gravityforms.com\/add-ons\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">yleiskatsaus t\u00e4\u00e4lt\u00e4<\/a>.<\/p>\n<h2>Lomakkeen render\u00f6iminen<\/h2>\n<p>Lomake tulostetaan k\u00e4ytt\u00e4m\u00e4ll\u00e4 lyhytkoodeja, esim.<\/p>\n<pre><code>[gravityform id=\"2\" name=\"Contact us\" ajax=\"true\"]<\/code><\/pre>\n<p>\u00c4l\u00e4 huoli, Gravity Forms lis\u00e4\u00e4 painikkeita ja valintaikkunoita k\u00e4ytt\u00e4j\u00e4yst\u00e4v\u00e4llisten lomakkeiden upottamiseen viesteihisi. Sinun tai sis\u00e4ll\u00f6n muokkaajien ei tarvitse kirjoittaa lyhytkoodeja manuaalisesti.<\/p>\n<p>Mutta jos sinun on kehitt\u00e4j\u00e4n\u00e4 koskaan upotettava lomake ohjelmallisesti malliin, sinun tarvitsee vain tiet\u00e4\u00e4 lomakkeen tunnus ja sitten yksinkertaisesti toistaa lyhytkoodi. Kun tulostamme lyhytkoodin PHP:ss\u00e4, meid\u00e4n on k\u00e4\u00e4ritt\u00e4v\u00e4 se sis\u00e4\u00e4n <code>do_shortcode()<\/code>, jotta WordPress muuntaa lyhytkoodin oikein. Gravity Forms hoitaa kaikkien tarvittavien komentosarjojen ja tyylien lis\u00e4\u00e4misen puolestasi, vaikka teet lomakkeen PHP:ll\u00e4.<\/p>\n<pre><code>echo do_shortcode('[gravityform id=\"2\" name=\"Contact us\" ajax=\"true\"]');<\/code><\/pre>\n<h2>Haetaan lomakkeen tietoja<\/h2>\n<p>Tietojen hakemiseen on saatavilla yksinkertaisia \u200b\u200bAPI-toimintoja, esim. kaikkien lomakkeiden tai yhden tietyn lomakeobjektin hakeminen. Objektit t\u00e4ytet\u00e4\u00e4n kaikilla asetuksilla, mukaan lukien kaikki lomakkeen kent\u00e4t, ja voit my\u00f6s saada kaikki lomakkeen merkinn\u00e4t (lomakkeen vastaukset). Oletetaan, ett\u00e4 haluat luoda <code>&lt;select&gt;<\/code>kaikkien julkaistujen lomakkeiden kanssa, jolloin k\u00e4ytt\u00e4j\u00e4 voi valita julkaistujen lomakkeiden v\u00e4lill\u00e4:<\/p>\n<pre><code>\/\/ ...\n$all_forms = GFAPI::get_forms();\nif (!empty($all_forms)) {\n    $select = '&lt;select&gt;';\n    foreach ($all_forms as $form) {\n        $select .= '&lt;option value=\"'. $form['id']. '\"&gt;'. $form['title']. '&lt;\/option&gt;';\n    }\n    $select .= '&lt;\/select&gt;';\n}\necho $select;\n\/\/ ...<\/code><\/pre>\n<p>Hyvien koodausstandardien noudattamiseksi, varsinkin kun otetaan huomioon, ett\u00e4 Gravity Forms on laajennus, joka voidaan poistaa k\u00e4yt\u00f6st\u00e4 tai yksinkertaisesti olla olemassa, tarkista aina, onko Gravity Formsin luokista olemassa ennen kuin k\u00e4yt\u00e4t niit\u00e4! Ennen yll\u00e4 olevaa koodia lis\u00e4isin:<\/p>\n<pre><code>if (!class_exists('GFAPI')) {\n    return;\n}\n\/\/ Do stuff with GFAPI class<\/code><\/pre>\n<p>Tietyn lomakkeen objektin hakemiseen tarvitset vain lomakkeen tunnuksen (1 alla olevassa tapauksessa):<\/p>\n<pre><code>$form = GFAPI::get_form(1);<\/code><\/pre>\n<p>Voit jopa k\u00e4sitell\u00e4 lomaketta kohteen l\u00e4pi ja p\u00e4ivitt\u00e4\u00e4 sen sitten esimerkiksi muuttamalla lomakkeen otsikkoa:<\/p>\n<pre><code>$form = GFAPI::get_form(1);\n$form['title'] = __('New Form Title', 'txtdomain');\nGFAPI::update_form($form);<\/code><\/pre>\n<h2>Lomakkeen liidien (vastausten) hakeminen<\/h2>\n<p>Lomakkeen merkint\u00f6jen (lomakevastausten) hakeminen lomakkeelle ID 1 on yksinkertaista:<\/p>\n<pre><code>$entries = GFAPI::get_entries(1);<\/code><\/pre>\n<p>Voit my\u00f6s noutaa tietyn merkinn\u00e4n sen tunnuksella, ja samalla tavalla kuin lomaketta p\u00e4ivitett\u00e4ess\u00e4, voit k\u00e4sitell\u00e4 merkint\u00e4objektia ja kutsua siihen p\u00e4ivitystoimintoa tallentaaksesi sen muutoksineen. Alla oleva esimerkki tallentaa tyhj\u00e4n merkkijonon merkinn\u00e4n IP-osoitteen metaan sek\u00e4 kent\u00e4n ID 2 arvon:<\/p>\n<pre><code>$entry_to_change = GFAPI::get_entry(42);\n$entry_to_change['ip'] = '';\n$entry_to_change['2'] = 'New value';\nGFAPI::update_entry($entry_to_change);<\/code><\/pre>\n<p>Kaikki edell\u00e4 mainitut ovat modifikaatioita aivan perustasolla. Pysy kuulolla <a href=\"https:\/\/awhitepixel.com\/blog\/category\/gravity-forms\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gravity Forms -kategoriassa<\/a> saadaksesi lis\u00e4\u00e4 opetusohjelmia ja monimutkaisempia kooditoimintoja.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4ss\u00e4 aloitteleville kehitt\u00e4jille tarkoitetussa oppaassa tarkastellaan Gravity Formsin koodaamisen perusteita WordPressiss\u00e4. Tarkastellaan lyhyesti yksinkertaisia \u200b\u200bkoodiesimerkkej\u00e4.<\/p>\n","protected":false},"author":1,"featured_media":152742,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[895,719,719,895,813,917,917,1110,843,813,843,864,864],"tags":[1166],"class_list":["post-233613","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-koodi","category-kehittaejae","category-laajennuksia","category-muut","category-n-a","category-opetusohjelmia","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=233613"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233613\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/152742"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=233613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=233613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=233613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}