Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress Plugins
Code

Paggawa ng Pasadyang Sistema ng Pagmemensahe sa WordPress, Ika-4 na Bahagi

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Creating a Custom WordPress Messaging System.
Creating a Custom WordPress Messaging System, Part 3

Tagalog (Wikang Tagalog) translation by Anna Nelson (you can also view the original English article)

Paggawa ng Pasadyang Sistema ng Pagmemensahe sa WordPress, Ika-4 na Bahagi

Sa seryeng ito, tiningnan namin kung paano namin maipatupad ang isang sistema na papayagan kaming magtakda ng mga pasadyang mensahe gamit ang isang programa na magpapakita sa isang pahina ng administrasyon sa WordPress back end.  

Kung sinundan mo ang seryeng ito, alam mo: 

  • Naihain na namin ang batayan para sa plugin na ginamit sa seryeng ito, at lalo pa namin itong pinaganda.
  • Nagtakda kami at gumamit ng isang pasadyang hook na puwede naming gamitin sa settings ng mensahe.
  • Nagdagdag din kami ng suporta para sa tagumpay, babala, at mga maling mensahe na puwedeng ilagay sa itaas ng isang settings na pahina. 

Tulad ng nabanggit sa nakaraang tutoryal:

Pero kung nabasa mo ang alin man sa aking mga nakaraang tutoryal, alam mong hindi ako tagahanga ng pagkakaroon ng nadobleng kowd. Hindi rin ako tagahanga ng pagkakaroon ng isang klase na gumawa ng maraming bagay. At, sa kasamaang palad, iyan ang eksaktong ginagawa natin ngayon.

At sasagutin natin iyan dito sa huling tutoryal. Sa huli, mayroon na tayong kumpletong na-refactor na solusyon na gumagamit ng ilang intermediyang object-oriented na mga prinsipyo tulad ng mana. Magkakaroon din tayo ng ilang pamamaraan na puwede nating gamitin gamit ang isang programa o puwedeng marehistro sa sistema ng hook ng Wordpress. 

Pagsisimula sa Huli 

Sa puntong ito dapat alam mo nang eksakto kung ano ang kailangan mo sa iyong lokal na pagunlad na kapaligiran. Sa partikular, dapat mayroon ka ng mga sumusunod: 

  • PHP 5.6.25 at MySQL 5.6.28
  • Apache o Nginx
  • WordPress 4.6.1
  • Iyong gustong IDE o editor

Nirerekomenda ko rin ang pinakabagong bersyon ng source code sapagkat papayagan ka nitong tingnan ang lahat ng mga pagbabago na gagawin natin.  Kapag wala ka nito, ayos lang, pero nirerekomenda ko ang pagbabasa ng mga nakaraang tutoryal bago tumuloy. 

Sa Nakaraang Tutoryal 

Kung iyong naaalala (o natiyak mula sa komento sa itaas), ang nakaraang tutoryal ay nagiwan sa atin ng isang klase na gumagawa ng sobrang daming trabaho. 

Ang isang paraan para malaman ito ay kapag iyong ilalarawan ang ginagawa ng klase, hindi ka makakapagbigay ng sagot.  Sa halip, sasabihin mo na responsable sa paghawak ng mga mensahe ng tagumpay, mensahe ng babala, maling mensahe, at ginagawang independiyente mula sa isa't isa.

At bagaman maaari mong gawin ang kaso na ito ay “pangangasiwa ng pasadyang mga mensahe,” hindi ibig sabihin nailarawan mo kung paano kasalita ang klase. Iyan ang nais naming maresolba sa tutoryal na ito. 

Sa Huling Tutoryal

Sa partikular, titingnan natin ang paggawa ng mga sumusunod:

  • pagtanggal ng lumang settings ng messenger na klase 
  • pagdagdag ng bago, mas panlahat  na settings ng klase ng mensahe
  • pagdagdag ng settings ng klase ng messenger kung saan makikipagusap
  • pagpapakilala ng mga pamamaraan na puwedeng gamitin maliban sa WordPress
  • pag-streamline kung paano ginagawa ng WordPress ang mga mensahe

Ang trabaho na ito ay para talaga sa atin, kaya dapat simulan na natin ang lahat ng nasa itaas. 

Pag-Rerefactor ng Ating Trabaho 

Pagdating sa pagrerefactor ng ating trabaho, nakakatulong na alam nating eksakto kung ano ang gusto nating gawin. Sa aming kaso, tinatanggap namin na marami kaming nadobleng kowd na puwedeng paikliin.

At saka, mayroon kaming tatlong uri ng magkakaibang mga mensahe na pinamamahalaan sa parehong paraan maliban sa kung paano sila naisalin. At sa pagkakataon na iyan, ito ay isang isyu ng mga katangian ng klase ng HTML. 

Kaya naman, kaya naming heneralisahin ang kowd na iyan para makapagpokus sa particular na uri, at puwede naming pagsamahin ang maraming mga pamamaraan para sa pagdagdag ng mga mensahe ng tagumpay o pagbawi ng mga maling mensahe sa pamamagitan ng pagheneralisa ng isang pamamaraan para kilalanin ang isa uri.  

Sa huli, gagawin naming iyan. Pero sa una sa lahat, ilang mga tuntunin sa pangangasiwa.

1. Tanggalin ang Lumang Settings ng Messenger 

Sa mga nakaraang tutoryal, nagtatrabaho kami sa klaseng tinatawag na Settings_Messenger. Hanggang sa puntong ito, nagawa niya ang kanyang layunin, pero ire-refactor natin ang klase na ito hanggang sa matapos itong tutoryal. 

Pagdating sa uring ito ng pagrerefactor, madaling gustuhing tanggalin ang klase at magsimula ulit. May mga pagkakataon na ito ang angkop, pero hindi ito isa sa kanila. Sa halip, kukunin natin ang klaseng iyan at i-refactor kung ano man ang mayroon diyan.

Lahat ng ito ay sasabihin, huwag tanggalin ang file at magsimula ng bago ulit. Sa halip, subaybayan ang ating ginagawa sa kabuuan nitong tutoryal. 

2. Isang Bagong Setting ng Klase ng Mensahe 

Una, ipakilala muna nating ang Settings_Mensahe na klase.  Kinakatawan nito ang alinmang uri ng settings ng mensahe kung saan tayo magsusulat.  Iyan ay, pangangasiwaan nito ang mga mga mensahe ng tagumpay, mga maling mensahe, at mga mensahe ng babala.

Para gawin ito, dedepinihin natin ang klase, magpakilala ng isang ari, at magbigay ng halimbawa sa tagapagbuo.  Tingnan ang kowd na ito, at magpapaliwanag ako ng kaunti pa lalo sa ibaba:

Pansinin nakagawa tayo ng isang pribadong katangian, $mensahe.  Kapag ang klase ay nabigyan ng halimbawa, gagawa tayo ng multidimensional na ayos. Ang bawat palatandaan, natukoy ng alinman sa tagumpay, mali, o babala, ay sumasangguni sa kanyang sariling ayos kung saan magiimbak ng naaayon na mga mensahe. 

Susunod, kailangan makapagdagdag tayo ng mensahe, makakuha ng mensahe, at makuha ang lahat ng mga mensahe. Tatalakayin ko ang bawat isa sa kanila sa ilang sandali.

Pagdagdag ng Mga Mensahe

Una, tingnan natin kung paano magdagdag ng mga mensahe:

Ang mensahe na ito ay tinatanggap muna ang mga papasok na string at nililinis ang datos. Tapos sinusuri kung ito ay umiiral na sa mga mensahe ng tagumpay. Kung gayon, ito ay bumabalik lamang. Kung sabagay, ayaw namin ng mga nadobleng mensahe.

Kung hindi man, idinadagdag nito ang mensahe sa koleksyon.

Pagkuha ng Mga Mensahe

Ang pagbawi ng mga mensahe ay nasa dalawang anyo:

  1. pagsasalin ng mga indibidwal na mensahe ayon sa uri 
  2. pagsasalin ng mga mensahe sa tanghal ng pahina ng administrasyon (kumpleto sa HTML sanitization, atbp.) 

Tandaan, may mga pagkakataon kung saan gusto lang natin ipakita ang mga mensahe ng babala. Sa ibang pagkakataon, gusto nating ipakita lahat ng mga mensahe. Sapagkat dalawa ang uri ng paggawa nito, puwede nating i-leverage ang isa at samantalahin ito sa ibang tungkulin.

Mukha bang nakakalito? Kapit lang kayo sa akin at ipapaliwanag ko lahat ng ito. Ang unang bahagi na tutuonan natin ng pansin ay kung paano isalin ang mga mensahe ayon sa uri (isipin ang tagumpay, mali, o babala). Ito ang kowd para sa paggawa niyan (at mukhang dapat pamilyar): 

Mapapansin dito na gumagamit tayo ng parehong kowd mula sa nakaraang tutoryal; gayunman, naheneralisa na natin ito para tingnan ang mga parating na $uri at dinamikang i-aplay ito sa pagtataas. 

Pinapayagan tayo nito na magkaroon ng isang tungkulin para sa pagsalin ng ating mga mensahe. Hindi lang ito, bagaman. Paano naman sa mga pagkakataon na gusto nating makuha lahat ng mga mensahe? Ito ay para isalin sa isang pahina o kunin sila gamit ang programa para sa ibang pagpoproseso.

Para gawin ito, puwede tayong magpakilala ng isa pang tungkulin:

Ang mensahe na ito ay dapat madali lang maintindihan. Pinaguugnay nito ang lahat ng mga mensahe na nasa koleksyon natin at tinatawag ang kunin_mensahe na tungkulin na nabanghay natin sa itaas.

Sinasalin niya silang lahat (na makikita natin ang gamit ng isa sa kanila sa ating implementasyon ng pasadyang hook ng ilang sandali).  Kapag gusto mo silang gamitin para sa ibang pakay, puwede mong isama ang resulta sa isang string at ibalik sa tumawag, o gumawa ng isang tungkulin gamit ang programa.

Ito ay isang implementasyon.

3. Ang Settings ng Messenger

Iyan lahat para sa aktwal na Settings_Mensahe na klase.  Pero paano tayo makikipagusap gamit ito? Sigurado, puwede tayong makipagusap dito nang diretsa, pero pag may intermediyang klase, meron tayong kontrol sa kung anong naibalik sa atin nang hindi nagdadagdag ng karagdagang responsibilidad sa Settings_Mensahe na klase, diba? 

Pasukin ang Settings_Messenger.  Ang klase na ito ay responsable sa pagpayag sa atin na magbasa at magsulat ng settings ng mga mensahe.  Sa tingin ko puwedeng magkaroon ng kaso na puwede mong paghiwalayan ito sa dalawang klase sa pamamagitan ng kanyang responsibilidad dahil pareho nitong nababasa at nasusulat pero, tulad ng messenger na nagpapadala at tumatanggap, iyan ang layunin ng klase na ito.

Ang inisyal na setup ng klase ay diretsa.

  • Ang tagapagbuo ay gumagawa ng pagkakataon ng Settings_Mensahe na klase na puwede naming gamitin para magpadala at tumanggap ng mga mensahe. 
  • Isinasama nito ang pamamaraan sa ating tutsplus_settings_mensahe na hook na natukoy natin sa nakaraang tutoryal. 

Tingnan ang mga naunang pamamaraan:

Tandaan mula sa nauna sa tutoryal na ito, ang hook ay natukoy natin sa aming kuro ay makikita sa settings.php.  Alang-alang sa pagiging kumpleto, nailista sila dito: 

Pansinin, gayunman, na ang partikular na hook na ito ay sinasamantala ang kunin_lahat_mensahe na pamamaraan na susuriin natin sa ilang sandali.  Hindi kailangang gamitin ang pamamaraan na ito. Sa halip, puwedeng gamitin para magsalin ng mga mensahe ng tagumpay o anumang mga pamamaraan na gusto mong gamitin.

Pagdagdag ng Mga Mensahe 

Paggawa ng mga tungkulin para makapagdagdag ng mga mensahe ay simple sapagkat ang mga tungkulin na ito ay nangangailangan ng isang uri at ang mensahe mismo. Tandaan, ang Settings_Mensahe ang naghahawak ng paglilinis ng mga impormasyon para maipasa natin sa mga parating na mga mensahe.  

Tingnan sa ibaba kung saan namin idinadagdag ang mga mensahe ng tagumpay, babala at mga maling mensahe: 

Madaling lang, hindi ba? 

Pagkuha ng Mga Mensahe 

Pagbawi ng mga mensahe ay hindi masyadong naiiba maliban sa kailangan nating ibigay ang uri ng mga mensahe na gusto nating mabawi:

Tapos at tapos, tama? 

Pero Nakuha Mo Ba Iyon? 

Pansinin na ang mga mensahe sa itaas ay sumasangguni sa dalawa pang ibang mga pamamaraan na hindi pa natin natalakay.   Ito ay mga pribadong mensahe na tutulungan tayong gawing simple ang mga tawag sa itaas.  

Tingnan ang mga sumusunod na mga pribadong pamamaraan na parehong responsable sa pagdagdag at pagbawi ng mga mensahe mula sa Settings_Mensahe na pagkakataon na nananatili sa bagay na messenger: 

At diyan nagtatapos ang bagong Settings_Messenger na klase.  Lahat ng mga ito ay lalong mas simple, hindi ba? 

Pagsisimula ng Plugin 

May tanong, bagaman: Paano natin sisimulan ang plugin ngayon na nagawa na natin lahat ng mga pagbabago?  

Tingnan ang kabuuang tungkulin sa ibaba:

At iyan na lahat. 

Ilang puntos na dapat tandaan:

  • Kapag hindi mo tinawagan ang init sa Settings_Messenger, wala kang dapat ipagalala sa pagpapakita ng mga mensahe sa pahina ng settings.
  • Idinadagdag ng kowd ang mga mensahe sa Settings_Messenger, pero hindi niya talagang nababawi ang kahit ano sapagkat gamit ko ang init na pamamaraan. 
  • Kapag gusto mong mabawi ang mga mensahe puwede mong gamitin ang mga pamamaraan na nakabalangkas sa itaas.

Iyan ang lahat sa pagrerefactor.  Hindi ito eksaktong gagana sa iba sapagkat may iba pang mga kowd na kailangan para mai-load lahat ng mga PHP file na kailangan para mapagana ang plugin; gayunman, ang kowd sa itaas ay nakapokus lamang sa pagrerefactor na siyang punto ng buong tutoryal na ito.

Konklusyon 

Para sa buong gumaganang bersyon ng tutoryal na ito at kumpletong source code na gumagana sa kahit saan, maaaring i-download ang source code na kasama sa post na ito na makikita sa kanan na sidebar.

Umaasa ako na sa kabuuan ng materyal na ito marami kayong nakuhang mga bagong kasanayan at mga paraan para tanggapin ang mga pagbabago sa WordPress. Kapag tinitingnan ang seryeng ito, marami tayong nasakop:

  • mga menu sa pagpapasadya
  • pagpapakila sa mga pahina ng administrasyon
  • ang iba't-ibang uri ng mga mensahe
  • pagtukoy at pag-leverage ng mga pasadyang hook
  • at pagrerefactor ng object-oriented na kowd

Gaya ng dati, lagi akong masaya para sagutin ang inyong mga katanungan sa pamamagitan ng mga komento, at puwede niyo ring tingnan ang aking blog at sundan ako sa Twitter.  Madalas akong magsalita tungkol sa mga pagbabago sa software sa loob ng WordPress at iba pang mga tanghential na mga usapin din. Kapag intersado ka sa marami pang mga pagbabago sa WordPress, huwag kalimutang tingnan ang aking mga nakaraang mga serye at mga tutoryal, at ang ibang mga WordPress na materyal na meron kami sa Envato Tuts+.

Mga Pinagkunan 

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.