Teeme postkastid suuremaks

Paras aeg on põrmustada pisikesi pehkinud paradigmasid, parandades põhimõtteid mille alusel veebimajutusteenuse klientidele e-posti pakume.

Umbes aasta tagasi kirjutasin siin Zone poolt kasutusele võetud unikaalsest e-posti platvormist, mille abil muutus meie vastav infrastruktuur töökindlamaks, turvalisemaks ja efektiivsemaks. Täna on samuti põhjust kritseldada olulisest muutusest, mille üheks võimaldajaks seesama platvorm.

Lühidalt, edaspidi saavad kõik meie klientide loodud postkastid juba vaikimisi olema neile teenuspaketis ette nähtud maksimumsuurusega. Teenuspakettide hind ja muud tingimused jäävad samaks, aga postkastide lisamine ja haldamine muutub lihtsamaks.

Lisaks saavad professionaalsed e-posti kasutajad enda käsutusse kaks uut, just neile sobivat postkastitüüpi, mis võimaldavad neile pakutavaid ressursse veelgi kasvatada. Virtuaalserveri teenuses vaikimisi sisalduvast postkastist eristab neid suurem andmemaht ja asjaolu, et see maht on individuaalne – see ei ole kuidagi mõjutatud veebimajutusteenusest ega avalda tollele mingit mõju.

Kõik uuel platvormil postkastid on kindluse huvides jätkuvalt kolmekordse liiasusega mitme andmekeskuse vahel hajutatud.

Miks me seda teeme?

Ajalooliselt oleme pidanud oluliseks, et klientidel oleks võimalik äärmise täpsusega oma ressursse lõppkasutajate, kes postkaste reaalselt kasutavad, vahel jagada. Selle mõtte juured peituvad ajastus, mil interneti eesmärk oli ühendada akadeemilisi organisatsioone – nende UNIX süsteemides olid kõik tudengitele ja teaduritele eraldatavad ressursid rangelt arvel ja kõik neile kulutatud sendid täpselt loetud. Kuna Zone sisekultuur tuleneb omal moel samuti sellest ajastust, oleme endale teadvustamata seda traditsiooni edasi kandnud.

Juba mõnda aega on siiski selge, et meie kliendid ei soovi enam tegeleda infotehnoloogiliste ressursside peenhäälestusega. IT vahendid on pilvetehnoloogiate arengu ja ühiskonna üldise heaolu kasvu toel muutunud odavamaks kui aeg, mis nende täpsele tuunimisele kuluks.

Seepärast olemegi täheldanud, et granulaarne postkasti mahu sättimine ei leia enam kasutust.

Viskame siis oma pehkinud põhimõtte ajaloo prügikasti. Edaspidi pole vaja virtuaalserverite haldajatel käia postkastide piirmäärasid arvutamas, jagamas ja seadistamas. Iga postkast saab vaikimisi endale täpselt teenuspaketis ette nähtud maksimumpiirmäära. Lisaks, kui postkasti kasutaja soovib midagi enamat, piisab vaid ühest lisaklikist ja väikese lisatasu eest voolab individuaalset andmemahtu juurde, nagu küllusesarvest.

Suure postkasti illustratsioon

Veel üks asi…

Suuremad postkastid esitavad loomulikult palju suuremaid nõudmiseid e-posti klientidele millega neid kasutada. Muuhulgas on ka see pannud meid tööle selles suunas, et arendada asendus tänasele Zone veebipõhisele e-posti kliendile. See pingutus on nüüd kandmas esimesi vilju, mis valmis lõppkasutajatele tutvumiseks ja aadressil https://webmail.ee on võimalik meie uue e-posti platvormi kasutajatel sellega vaikselt tutvust teha.

Uuest veebipõhisest e-posti lugemise kogemusest peagi veidi pikemalt.

Kui tahad kontrollida, kas oled Zone uue e-posti platvormi kasutaja, saad seda teha aadressil https://help.zone.eu/kb/e-posti-serverid/. Uuel platvormil klientidel on IMAP serveri nimeks imap.zone.eu.

Internet Society müüs .ORG tippdomeeni maha

Kas mäletate veel aega, mil riigitähisega tippdomeenile (nagu .EE) oli peamiselt kolm alternatiivi: kommertsettevõtmisi tähistav .COM; võrguinfrastruktuuri- ja internetiga seotud .NET; ja mittetulunduslikke algatusi ühendav .ORG? Meie mäletame.

Tänaseks on tippdomeenide arv plahvatuslikult kasvanud ja endale sobiva võib leida ulatuslikust geneeriliste domeenide valikust, mille ühes otsas värsked globaalsed gigandid nagu nagu .xyz ja teises nišidomeenid nagu .vodka või .plumbing. Domeeniuniversumi pulbitsedes on suur kolmik siiski püsinud suhteliselt stabiilsena.

Nüüd andis .ORG tippdomeeni registrit – Public Internet Registry (PIR) – seni üleval pidanud Internet Society (ISOC) avalikkuse jaoks ootamatult teada, et seni mittetulunduslik PIR müüakse maha uuele ja suhteliselt tundmatule investeerimisfirmale Ethos Capital: Ethos Capital to Acquire Public Interest Registry from the Internet Society | Internet Society.

.ORG tippdomeenis on registreeritud ligi 11 miljonit domeeni, mis teeb sellest maailma suuruselt seitsmenda tippdomeeni. Suurimad on jätkuvalt .COM (ca 155 miljonit domeeni) ja .NET (16 miljonit domeeni), kuid tänapäeval mahuvad nende ja .ORG’i vahele veel .DE, .TK, .CN, ja .UK.

Muutus toob tihti endaga kaasa ebakindluse, nii ka seekord. Esimese asjana kaotabki Public Internet Registry oma mittetulundusliku staatuse, mis muudab äärmiselt tõenäoliseks tulevase hinnatõusu, kuna uus omanik ootab kasumit. Lisaks oli PIR just hiljuti kaubelnud ICANN’ilt endale välja sisuliselt piiramatud võimalused hindade tõstmiseks.

Täpsema ülevaate ja ajaloo ICANN’i, ISOC’i ja PIR’i senistest suhetest leiate artiklist: How ICANN uses the .Org registry to fund the Internet Society – Domain Name Wire | Domain Name News.

.ORG tippdomeeni registri müügi hinda ei ole avalikustatud, kuid arvestades PIR’i senist käivet, mis olnud umbes 100 miljonit dollarit aastas ja sellelt teeninud 50 miljonist sissetulekut (millest seni ISOC’i tegevust on finantseeritud), on see ilmselt märkimisväärne.

Mis edasi saab, pole ilmselt keeruline ennustada. .ORG tippdomeeni registritasu oli 2002. aastal 6 dollarit ja on hetkel juba 9,93 dollarit. Tõenäoliselt hakkab see nüüd veel kiiremini kasvama. Nagu mõned valdkonna eksperdid muigavad, siis ostis Ethos Capital endale just raha trükkimise masina.

Hoiame nendel arengutel pingsalt ja murelikult silma peal, sest hinnatõuse on juba oodata  mitmetelt tippdomeenidelt ja ORG’i eeskuju võib teisigi nakata.

Milleks on kasulikud WordPressi laetud meedia alternatiivtekst, pealkiri, allkiri, kirjeldus jne?

WordPressi meediateegis tekitab segadust hulk infolahtreid: Alternatiivtekst, Pealkiri, Allkiri ja Kirjeldus. Kas ja mida sinna kirjutada?

Alustame vahest kõige olulisemast – Alternatiivtekst kirjeldab pilti ning seda näeb kui vaadata lehe HTMLi või WordPressi redaktoris sakki Tekst:

Ekraanilaks ekraanilaksust WordPressi redaktori teksti-sakis

Vaegnägijale loeb ekraaniluger selle teksti ette, seega võiks sisu olla ennekõike pilti kirjeldav. Lisaks jälgivad alt-teksti ka otsimootorid, ehk hästi kirjeldatud pilt on abiks ka SEO vaatest. Aga see ei ole veel kõik: alt-teksti kuvavad brauserid siis, kui pildifail mingil põhjusel ära kaob:

Ekraanilaks katkisest pildist brauseris

Tähtsuselt järgmine on pildi Allkiri ehk inglise keeles caption: see on pildi all kuvatav tekstilõik, kuhu sobib pikem selgitus, foto autor jms info. Nagu ülevalt koodinäitest näha on see realiseeritud [caption] koodiga ning teemades on enamasti paika pandud ka sobilik kujundus:

Ekraanilaks WordPressi meediateegist
See on pildi allkiri, ingl. k caption. Ekraanilaksu autor: Peeter Marvet

Pealkiri ja Kirjeldus on mõeldud manuselehe jaoks – nimelt tekitab WordPress iga üles laetud meedia-faili kohta alamlehe, millel kuvatakse Pealkiri, meedia ja Kirjeldus. Ülaloleva ekraanilaksu manuseleht on näiteks https://blog.zone.ee/2019/10/23/wordpressi-meedia-alternatiivtekst-pealkiri-allkiri-kirjeldus-jne/wp-pildi-kirjeldus/.

Manuseleht ei pruugi aga otsimootorist tulevate külastajate jaoks olla parimaks maandumisleheks – mina näiteks tahaks, et WordPressi meedia kirjeldamist puudutavate otsingute puhul saaks parima positsiooni see blogipostitus, mitte mõni ükskik ekraanilaks.

Selleks on näiteks Yoast SEO pluginas olemas võimalus suunata manuselehed automaatselt edasi pildifailile ehk sisuliselt ära kaotada:

Ekraanilaks: Yoast SEO plugina seaded

Ja ära unusta, et SEO jaoks omab lisaks alt-tekstile tähendust ka faili nimi. Siin artiklis olevad ekraanilaksud ilmselt ise-seisvat väärtust ei oma, aga toote-foto võiks muuhulgas Google pildi-otsingus välja tulla nii kirjeldava (“pink t-shirt powerpuff girl”) kui tootekoodi-otsinguga.

WordPressi haakimiskohad ehk konksud ja filtrid

Haak või kõrvalepõige on nagu nõudepeatus või küsimus “kas astun töölt koju tulles poest läbi?” ehk kellegi poolt kirjutatud koodi on taotluslikult jäetud võimalus selle kulgu mõjutada.

WordPressis on kahte sorti haakimiskohti:

  • hook e. konks on nagu nagi, kuhu igaüks saab riputada oma täitmist vajavad funktsioonid;
  • filter võimaldab huvilistel andmeid mudida, reeglina enne väljastamist.

Konksudest ja filtritest räägib kolmapäeval, 09.10.2019 kell 19 algaval WordPressi meetupil ka Arūnas Liuiza.
Tule kohale kuulama ja küsima!

Konks

Selle illustreerimiseks sobib alamteemade postituses olev näide, kus lisasin Google Analytics’i header.php koodi:

Kuna header.php sai kopeeritud alamteema kataloogi tuleb sellise laiendamise puhul arvestada, et kui põhiteemas see fail uueneb on vaja neid a) märgata b) käsitsi alamteemasse üle tuua.

Jätkusuutlikum lahendus on päise konks:

<?php wp_head(); ?>

See teeb täpselt ühte asja – kutsub välja kõik ennast wp_head konksu külge haakinud funktsioonid:

function wp_head() {
/**
* Prints scripts or data in the head tag on the front end.
*
* @since 1.5.0
*/
	do_action( 'wp_head' );
}

Praktikas haagivad ennast sinna kõik skriptid-CSSid-metaväljad jne (seejuures mõned nt JS ja CSS kasutades  spetsiaalseid konkse, mis ennast wp_head külge haagivad).

Sama analüütika-koodi saaksime lisada alamteema functions.php faili nii:

function petskratt_analytics() {
?>
	<!-- Global site tag (gtag.js) - Google Analytics -->
	<script async src="https://www.googletagmanager.com/gtag/js?id=UA-xxxxxx-1"></script>
	<script>
	  window.dataLayer = window.dataLayer || [];
	  function gtag(){dataLayer.push(arguments);}
	  gtag('js', new Date());
	
	  gtag('config', 'UA-xxxxxx-1');
	</script>
<?php
}

add_action('wp_head', 'petskratt_analytics', 1);

Kirjeldan funktsiooni ning haagin ta nime pidi add_action abil sobilikku kohta, viimane parameeter on prioriteet ehk vastavalt Google Analytics’i soovitusele tahaks nende jupp olla võimalikult <head> alguses. Päris esimeseks ei saa, aga need eelnevad meta-väljad ei ole ka kuidagi probleemiks.a

Nüüd võin ka Twenty Nineteen’i julgesti uuendada, minu alamteema muudab põhiteema ja WordPressi käitumist vastavalt parimale tavale.

Selliseid konkse on WordPressis umbes 800 – ja lisaks 1700 filtrit.

Filter

Konks on abiks, kui tahad ise midagi väljastada – aga mida teha juhul, kui tahaksid muuta mõne teise funktsiooni poolt väljastatavat? Näiteks prooviks postituse sisu kuvada AINULT SUURTÄHTEDEGA … või veel parem (jaburam) SuvaLIsE SuuRUsEGA.

Tegevuste ahel on selline:

  1. teema kutsub sobilikus kohas välja funktsiooni the_content()
  2. the_content() leiab andmebaasist postituse sisu, valmistab selle kuvamiseks ette… aga enne kuvamist pakub võimalust the_content filtri külge haakinud funktsioonidele seda muuta
  3. sinu funktsioon haagib ennast the_content filtri külge, teeb mida tahab ja tagastab tulemuse
add_filter( 'the_content', 'petskratt_rAndOmcASe' );
 
function petskratt_rAndOmcASe( $content ) {

	$str = str_split( strtolower( $content ) );

	foreach ( $str as &$char ) {
		if ( rand( 0, 1 ) ) {
			$char = strtoupper( $char );
		}
	}

	return implode( '', $str );
}

Ja tulemus näeb välja selline:

Fuksi värvi pealkiri on postitusest Kuidas kohandada WordPressi teemat ehk alamteema (child theme) kasutamine.

Kuidas kohandada WordPressi teemat ehk alamteema (child theme) kasutamine

Avatud lähtekoodiga tarkvara puhul on lihtne võtta ette mistahes koodifail ja sinna muudatusi teha. Aga… stopp! Kuidas jääb siis tulevaste (turva)uuendustega?

Paljudel WordPressi kujundus-teemadel on olemas seadistuste paneel, mis lubab valida värve ja fonte, seadistada logo ja lehel kuvatavate tulpade arvu otse haldusliideses, ilma koodi puutumata. Vahel on aga vaja teha suuremaid muudatusi, mida on mõistlikum teha teema CSSi või lehe-templiite muutes.

Nii tasulised kui tasuta teemad saavad aga pidevalt uuendusi: parandatakse vigu kujunduses või lisatakse uute HTML+CSS standardite tugi, paigatakse turva-auke ja viiakse kood sobilikuks uuemate PHP versioonidega. Teema uuendus tähendab aga sisuliselt seda, et teema kustutatakse ja paigaldatakse uuesti ning selle käigus lähevad kõige kaduva teed ka failides tehtud muudatused.

Samal teemal räägib kolmapäeval, 09.10.2019 kell 19 algaval WordPressi meetupil Arūnas Liuiza.
Tule kohale kuulama ja küsima!

Selliste probleemide vältimiseks ongi loodud WordPressi alamteema ehk child theme funktsionaalsus. Toimib see nii:

  1. sul on paigaldatud teema, näiteks Twenty Nineteen
  2. ning sellele lisaks alamteema, mille päises on on viide põhiteemale
  3. aktiveerid alamteema
  4. WordPress otsib vajalikke faile kõigepealt alamteemast, kui ei leia siis põhiteemast

Ja sina saad muudatusi teha nii:

  1. kopeerid vajaliku faili põhiteema kataloogist alamteema kataloogi
  2. teed alamteema kataloogis vajalikud muudatused
  3. magic happens 🙂

Näiteks võiks teha järgmise alamteema, luues wp-content/themes alla kataloogi twentynineteen-child ja sinna sisse faili style.css:

/*
 Theme Name:   Twenty Nineteen Child
 Description:  A kind of pink child theme for Twenty Nineteen 
 Template:     twentynineteen
 Version:      1.0.0
*/

@import url("../twentynineteen/style.css");

h2 {
	color: fuchsia;
}

See viitab alustuseks põhiteema CSSile ning muudab seejärel kõik H2 pealkirjad roosaks.

Ja oletame, et järgmise asjana tahaks lisada lehe HTMLi päisesse Google Analyticsi koodijupi ja teha seda ilma liigseid pluginaid lisamata. See käib nii:

  1. kopeerid faili header.php põhiteema twentynineteen kataloogist alamteema kataloogi twentynineteen-child
  2. lisad vajalikud read:

Ja … toimibki!

Kui tahad proovida, siis twentynineteen-child.zip sisaldab ülalkirjeldatud alam-teemat (tõsi, header.php pead ise kopeerima) mille saad paigaldada WordPressile nii, nagu ikka: Välimuse haldusmenüüst või ise lahti pakkides ja FTP-ga üles laadides.

Loodetavasti tekib sellega mängides ka küsimus: “Aga mis siis, kui Twenty Nineteen põhiteemas header.php uueneb?”. Tõepoolest, sinu alamteema jääb kasutama ise muudetud versiooni ning muudatused tuleb käsitsi üle tuua, aga:

  1. alamteema all on õnneks mugavalt näha kõik komponendid, mida oled muutnud
  2. on üks teine, veel parem nipp: kasutades WordPressi haake ehk hooke ja filtreid, sellest räägib järgmine postitus WordPressi haakimiskohad ehk konksud ja filtrid