{"id":230843,"date":"2022-12-19T10:26:00","date_gmt":"2022-12-19T07:26:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230843"},"modified":"2022-12-07T10:03:04","modified_gmt":"2022-12-07T07:03:04","slug":"wordpressi-vidinad-uembertoeoetamine-9-osa","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-vidinad-uembertoeoetamine-9-osa\/","title":{"rendered":"WordPressi vidinad: \u00fcmbert\u00f6\u00f6tamine, 9. osa"},"content":{"rendered":"\n<p>Kuigi selle \u00fcmbert\u00f6\u00f6tamise seeria viimane postitus ei olnud v\u00e4ga pikk, arvan, et see oli natuke tihe. See t\u00e4hendab, et koodi viimine kohta, kus saaksime sellega h\u00f5lpsamini t\u00f6\u00f6tada, n\u00f5udis \u00fcsna palju t\u00f6\u00f6d.<\/p>\n<p>Aga see on just see: kogu meie tehtud t\u00f6\u00f6 peaks h\u00f5lbustama \u00fclej\u00e4\u00e4nud kirjutatava koodiga edasi liikumist.<\/p>\n<p>Ja veendumaks, et kasutame \u00e4ra seni loodud t\u00f6\u00f6d ja vundamenti, l\u00f5petame sarja l\u00fchemate, rohkem keskendunud artiklitega, mille lugemiseks ja rakendamiseks peaks kuluma v\u00e4hem aega. ja m\u00f5ista, mida me koodiga teeme.<\/p>\n<h2>WordPressi vidina katlaplaat: \u00fcmberkujundamine, 9. osa<\/h2>\n<p>Meenutage viimast postitust:<\/p>\n<blockquote>\n<p>J\u00e4rgmisena j\u00e4tkame vidina haldusala funktsionaalsuse v\u00e4ljat\u00f6\u00f6tamist. P\u00e4rast seda p\u00f6\u00f6rame t\u00e4helepanu nii vidina avalikkusele kui ka serialiseerimisfunktsioonile.<\/p>\n<\/blockquote>\n<p>Ja see seab meid t\u00e4pselt sellesse postitusse, kuhu me oleme teel. Nimelt hakkame kirjutama haldusliidese, mis v\u00f5imaldab meil:<\/p>\n<ul>\n<li>m\u00e4\u00e4rake vidinale pealkiri,<\/li>\n<li>m\u00e4\u00e4rata vidina tekstisisu,<\/li>\n<li>ja l\u00fclitage sisse, kas tahame pealkirja n\u00e4idata v\u00f5i mitte.<\/li>\n<\/ul>\n<p>See ei ole m\u00f5eldud olema uuenduslik ega ka seda t\u00fc\u00fcpi vidin, mida keegi teine \u200b\u200bv\u00f5ib m\u00fc\u00fca. Selle asemel on see m\u00f5eldud n\u00e4itama, kuidas saame kasutada seda, mis meil on, et luua midagi sarnast, mida oleme WordPressis juba n\u00e4inud, ja kuidas me kasutame kindlaid programmeerimisv\u00f5tteid.<\/p>\n<h3>Kasutajaliides: esimene l\u00e4bimine<\/h3>\n<p>P\u00e4rast meie eelmist t\u00f6\u00f6d on meil vidin, mis ilmub WordPressi haldusalasse ja selle saab isegi teisaldada k\u00fclgribale v\u00f5i muule vidinatega alale; tegelikult ei tee see aga midagi.<\/p>\n<p>N\u00fc\u00fcd j\u00e4tkame ja lisame kasutajaliidesele kolm elementi:<\/p>\n<ol>\n<li>lisage vidina pealkirjaks tekstisisestus,<\/li>\n<li>sisaldama tekstiala elementi, et kuvada, mis v\u00f5ib olla tekstil\u00f5ik,<\/li>\n<li>ja l\u00f5puks lisage pealkirja teabe \u00fcmberl\u00fclitamiseks m\u00e4rkeruut.<\/li>\n<\/ol>\n<p>Selleks peame redigeerima\u00a0 kataloogis <strong>Views<\/strong> olevat faili. Nimelt hakkame\u00a0 uuendama faili <strong>Admin.php<\/strong>. <a href=\"https:\/\/gist.github.com\/tommcfarlin\/499008d8b1c322d58ad7dbc599f81665#file-00-admin-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Alustame elementidega<\/a> t\u00e4pselt nii, nagu vaja, ilma k\u00f5rvalise m\u00e4rgistuseta.<\/p>\n<pre><code>&lt;input type=\"text\" name=\"widget-title\" value=\"\" \/&gt;\n\n&lt;textarea name=\"widget-content\"&gt;&lt;\/textarea&gt;\n\n&lt;label&gt;\n    &lt;input\n        type=\"checkbox\"\n        value=\"1\"\n        name=\"widget-title-enabled\"\n    \/&gt;\n    Display Title?\n&lt;\/label&gt;<\/code><\/pre>\n<p>Esiotsas pole seda veel palju vaadata, kuid see viib meid l\u00e4hemale sellele, kuhu tahame j\u00f5uda.<\/p>\n<h3>Klass administraatoritele<\/h3>\n<p>J\u00e4rgmiseks tahame olla kindlad, et j\u00e4\u00e4me oma klassidega k\u00f5rgel tasemel \u00fchtekuuluvuse s\u00e4ilitamiseks j\u00e4rjepidevaks. See t\u00e4hendab, et me ei vaja \u00fcht klassi, et teha k\u00f5ike halduse, kuvamise ja k\u00f5igi muude WordPressi API jaoks vajalike t\u00f6\u00f6de tegemiseks.<\/p>\n<p>Selleks loome <strong>WordPressi<\/strong> kataloogis ja nimeruumis teise klassi nimega <strong>WidgetAdmin .<\/strong><\/p>\n<p>Sellesse faili lisame <a href=\"https:\/\/gist.github.com\/tommcfarlin\/499008d8b1c322d58ad7dbc599f81665#file-01-widget-admin-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">j\u00e4rgmise koodi<\/a> :<\/p>\n<pre><code>&lt;?php\n\n\/*\n * This file is part of WordPress Widget Boilerplate\n * (c) Tom McFarlin &lt;tom@tommcfarlin.com&gt;\n *\n * This source file is subject to the GPL license that is bundled\n * with this source code in the file LICENSE.\n *\/\n\nnamespace WordPressWidgetBoilerplateWordPress;\n\n\/**\n * Manages the administrative functionality of the widget.\n *\/\nclass WidgetAdmin extends Widget\n{\n    \/**\n     * {@inheritdoc}\n     *\/\n    public function __construct($widgetSlug)\n    {\n        parent::__construct($widgetSlug);\n    }\n\n    \/**\n     * Displays the administrative view of the form and includes the options\n     * for the instance of the widget as arguments passed into the function.\n     *\n     * @param array $instance the options for the instance of this widget.\n     *\/\n    public function form($instance)\n    {\n        include plugin_dir_path(__FILE__).'Views\/Admin.php';\n    }\n}\n<\/code><\/pre>\n<p><a href=\"https:\/\/gist.github.com\/tommcfarlin\/499008d8b1c322d58ad7dbc599f81665#file-02-widget-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Seej\u00e4rel muudame<\/a> vidina algkoodis seda rida :<\/p>\n<pre><code>&lt;?php\n\n\/**\n * Registers the core Widget class using the WordPress APIs.\n *\/\npublic function load()\n{\n    register_widget(new Widget('widget-name'));\n}<\/code><\/pre>\n<p>Et v\u00e4lja n\u00e4ha <a href=\"https:\/\/gist.github.com\/tommcfarlin\/499008d8b1c322d58ad7dbc599f81665#file-03-widget-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">selline<\/a> :<\/p>\n<pre><code>&lt;?php\n\/**\n * Registers the core Widget class using the WordPress APIs.\n *\/\npublic function load()\n{\n    register_widget(new WidgetAdmin('widget-name'));\n}<\/code><\/pre>\n<p>M\u00f5ne j\u00e4rgmise artikli jooksul see areneb edasi, kuid nagu n\u00e4ete, hoolitseme selle eest, et meil oleks WordPressiga r\u00e4\u00e4kimiseks \u00fcks p\u00f5hifunktsioonide klass ja klass, mis on m\u00f5eldud spetsiaalselt haldusvormi renderdamiseks.<\/p>\n<h3>Kasutajaliides: Teine l\u00e4bimine<\/h3>\n<p>L\u00f5puks puhastame vormi, et sellel oleks natuke rohkem kindlat kasutajakogemust, mis sulanduks h\u00e4sti WordPressi haldusalaga tervikuna.<\/p>\n<p><a href=\"https:\/\/gist.github.com\/tommcfarlin\/499008d8b1c322d58ad7dbc599f81665#file-00-admin-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">V\u00f5tke j\u00e4rgmine kood<\/a> :<\/p>\n<pre><code>&lt;input type=\"text\" name=\"widget-title\" value=\"\" \/&gt;\n\n&lt;textarea name=\"widget-content\"&gt;&lt;\/textarea&gt;\n\n&lt;label&gt;\n    &lt;input\n        type=\"checkbox\"\n        value=\"1\"\n        name=\"widget-title-enabled\"\n    \/&gt;\n    Display Title?\n&lt;\/label&gt;<\/code><\/pre>\n<p>Ja v\u00e4rskendage seda nii, et see n\u00e4eks v\u00e4lja <a href=\"https:\/\/gist.github.com\/tommcfarlin\/499008d8b1c322d58ad7dbc599f81665#file-04-admin-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">selline<\/a> :<\/p>\n<pre><code>&lt;div class=\"widget-content\"&gt;\n    &lt;p&gt;\n        &lt;input\n            type=\"text\"\n            name=\"widget-title\"\n            value=\"\"\n            placeholder=\"Widget Title\"\n            class=\"widefat\"\n        \/&gt;\n    &lt;\/p&gt;\n\n    &lt;p&gt;\n        &lt;textarea\n            name=\"widget-content\"\n            placeholder=\"Widget Content\"\n            style=\"width:100%;\"&gt;&lt;\/textarea&gt;\n    &lt;\/p&gt;\n\n    &lt;p&gt;\n        &lt;input\n            type=\"checkbox\"\n            value=\"1\"\n            name=\"widget-title-enabled\"\n            class=\"checkbox\"\n        \/&gt;\n        &lt;label for=\"widget-title-enabled\"&gt;Display Title?&lt;\/label&gt;\n    &lt;\/p&gt;\n&lt;\/div&gt;&lt;!-- .widget-content --&gt;<\/code><\/pre>\n<p>Eeldades, et k\u00f5ik l\u00e4ks h\u00e4sti, peaksite n\u00fc\u00fcd n\u00e4gema midagi sellist:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160909-61e71613309d7.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160909-61e71613309d7.png\" alt=\"WordPressi vidinad: \u00fcmbert\u00f6\u00f6tamine, 9. osa\" ><\/a><\/p>\n<p>Ja siin me l\u00f5petame selle postituse haldusfunktsioonidega. Pidage meeles, et saate seda k\u00f5ike j\u00e4lgida ka GitHubi arendusharus.<\/p>\n<h2>Desinfitseerimine ja serialiseerimine<\/h2>\n<p>J\u00e4rgmises postituses vaatame, mida on vaja meie vidina sisu desinfitseerimiseks ja seeriaviisiliseks muutmiseks (v\u00f5i puhastamiseks ja salvestamiseks).<\/p>\n<p>Samuti tagame, et p\u00e4rast teabe salvestamist ja toomist kuvatakse teave haldusalas.<\/p>\n<p>L\u00f5puks arenevad p\u00e4rand ja klassi \u00fchtekuuluvus edasi, kuid praegu keskenduge selles postituses k\u00e4sitletule ja j\u00e4tkame siis j\u00e4rgmises artiklis.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Soovime olla kindlad, et s\u00e4ilitame oma klassidega, alustades WordPressi vidinate haldusega, \u00fchtsuse k\u00f5rge taseme.<\/p>\n","protected":false},"author":1,"featured_media":234899,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,802],"tags":[1165],"class_list":["post-230843","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-php-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=230843"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230843\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/234899"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=230843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=230843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=230843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}