Problema: să se calculeze taxa auto in WordPress.

Având în vedere cu ce am lucrat până acum, precum și soluția folosită pentru site-ul acesta, pentru rezolvarea problemei aveam două posibile căi de urmat:

1. PHP

+ limbajul rulează pe server, indiferent ce client accesează pagina, rezultatul va fi același;

– este mai dificil să se adauge o pagină php în WordPress;

2. Javascript

+ este ușor să se insereze în orice pagină web, inclusiv într-un articol WordPress;

– rularea scriptului se realizează pe partea de client; dacă acesta nu suportă JavaScript, de exemplu, nu va obține nimic.

De regulă, pentru facilități importante ale unui site, aleg limbajul PHP, mai ales deoarece nu vreau să mă bazez pe client. De această dată, însă, am ales JavaScript pentru ușurința în implementare.

Calcul taxa auto in WordPress – mai intai calculul matematic

Acestea fiind zise, să trecem la treabă. Mai întâi, trebuie să aflăm cum se calculează noua taxă auto. Așa că, apelând la prietenul nostru de toate zilele, Google, ajungem la Proiectul de lege pentru taxa auto (a se vedea că acesta este numai proiectul de lege, de fapt ar trebui să găsim varianta finală). După parcurgerea textului de lege ajungem la partea interesantă pentru noi: formulele și tabelele pentru calculul taxei. Toate aceste date sunt adunate într-un fișier .xls pentru a putea fi prelucrate mai ușor în continuare. Fișierul astfel rezultat poate fi consultat aici.

În continuare, având în vedere datele solicitate de formula de calcul și datele din tabelele anexate, realizăm un formular în care utilizatorul va alege sau introduce datele necesare. Toate câmpurile din cadrul formularului vor primi o valoare diferită în cadrul atributului id, acesta urmând să fie folosit ulterior în cadrul scriptului JavaScript. La final, în cadrul formularului se adaugă un buton, Calculează, care va apela funcția de calcul din script.

Calcul taxa auto in WordPress – partea practica

Iar acum am ajuns chiar la miezul problemei: scriptul propriu-zis. Din acesta, ne interesează în primul rând funcția calcul, cea care preia și prelucrează datele din formular.

Așadar, să o luăm pe pași:

1. Preluarea datelor:

var Aval=document.getElementById("id").value;

În această expresie, id este acea valoare din cadrul atributului id al fiecărui câmp din formular în parte.

2. Încărcarea valorilor din tabele în variabile array:

Mai întâi declarăm variabila array, cu o dimensiune sau două:

//Nivelul taxei specifice sau tipul autovehiculului din categoria M1 
// - euro / 1 cmc - variabila D din formula
var limite_cilindree=new Array(6); //limitele pentru incadrarea cilindreei
// in categorii - array cu o dimensiune
limite_cilindree[0]=0;
... 
D = new Array (6); // - array cu doua dimensiuni
for (i = 0; i < D.length; ++ i)
D[i] = new Array (limite_cilindree.length);
D[5][0]=0.065;
...

Poate v-ați întrebat mai înainte care este rolul fișierului .xls. În exemplul de mai sus este definit numai unul dintre cele 35 de elemente ale tabloului (array cu două dimensiuni) D. Definirea celorlalte 34 de elemente manual este consumatoare de timp și poate genera erori. De aceea, odată ce avem deja datele în fișierul .xls, folosim o formulă pentru a genera declararea fiecărui element:

="D["&(RIGHT(OFFSET(A4;F4*(-1);0);1)&"]["&F4&"]="&E4&";")

Multiplicăm formula pentru toate cele 34 de valori rămase, apoi rezultatul îl copiem în fișierul .html. Similar procedăm pentru a trece celelalte valori tabelare în variabile JavaScript.

După ce am preluat toate datele din tabelele pentru calculul taxei trecem la implementarea formulelor de calcul. Mai întâi este necesar să determinăm categoria în care se încadrează autovehiculul din punctul de vedere al cilindreei:

//determin incadrarea in limitele de cilindree
i = 0;
do 
{
 k_D = i;
 i++;
}
while ( i < limite_cilindree.length && limite_cilindree[i]

Astfel am identificat variabila D din formula de calcul a taxei (taxa specifică pe cilindree, prevăzută în coloana 3 din anexa nr. 2). La fel se procedează și pentru a determina valoarea variabilei B (taxa specifică, exprimată în euro/1 gram CO2, prevăzută în coloana 3 din anexa nr. 1). Cu variabilele A, C și E preluate direct din formular, putem calcula rezultatul formulei:

Suma de plată = [(A x B x 30%) + (C x D x 70%)] x (100 - E)%

În funcție de norma de poluare a mașinii, formula de calcul se poate simplifica. Alegerea formulei finale în fiecare caz se face prin folosirea repetată a construcției if.

Înainte de final, dorim să aducem niște mici îmbunătățiri scriptului. Mai întâi, în unele cazuri (norma de poluare a mașinii sub Euro3) formula de calcul nu include nivelul emisiilor CO2. De aceea, dorim ca atunci când se selectează o anumită valoare în câmpul calcul_euro, să dezactivăm câmpul calcul_co2. Mai întâi, la câmpul calcul_euro se folosesc evenimentele OnChange și OnKeyDown, care apelează funcția refresh_a(). La rândul său, această funcție modifică atributul disabled al câmpului în care se introduce nivelul emisiilor CO2.

Totodată, am dori ca valoarea finală a taxei, calculată în lei și euro, să fie formatată în conformitate cu modul de afișare obișnuit din limba română: cu . pe post de separator al miilor și , separator al zecimalelor. Pentru aceasta am apelat din nou la prietenul Google și am găsit o funcție care îndeplinește exact acest deziderat. Rezultatul final îl afișăm într-un câmp span deja definit la finalul formularului:

document.getElementById("calcul_val_euro").innerHTML = valoarea_formatata;

Intenționat sau nu, nu am intrat chiar în toate detaliile scriptului. De asemenea, nu am făcut o tratare riguroasă a datelor introduse – acesta este un punct care ar putea cu siguranță să fie îmbunătățit, pe viitor. Dar, până atunci, puteți descărca fișierul .html care conține formularul și scriptul de aici.
În continuare, adaug o arhivă care conține toate detaliile privind implementarea acestui script, și anume:

  • Articolul de față reprodus într-un document Word
  • Fișierul Excel amintit mai sus
  • Fișierul HTML cu formularul și scriptul
0

Posted:

Categories: Blog

Navigând într-un site bazat pe WordPress la care lucrez, am ajuns la un moment dat să construiesc subpagini în subpagini. Deși tema folosită îmi oferă posibilitatea de a construi un meniu suficient de complex încât să cuprindă și asemenea legături, am căutat un mod mai intuitiv de a face navigarea între pagini, dar mai ales între subpagini și paginile părinte ale acestora.

Am decis să pun în stânga titlului subpaginii legături către paginile părinte ale acesteia. Dar cum s-ar putea obține acest lucru?

Am căutat un pic pe Google și am găsit o serie de plugin-uri pentru WordPress, însă toate erau destul de complexe și nu rezolvau problema mea. Am mai găsit și o rezolvare parțială a problemei: cum se poate afișa părintele unei pagini. Dar soluția se referă numai la pagina imediat superioară, nu la toți părintii. Așa că, în cele din urmă, am pus mâna și mi-am făcut singur codul necesar:

Legaturi catre parintii unei pagini in WordPress

Legaturi catre parintii unei pagini in WordPress

În cazul meu, am inserat acest cod în șabloanele specifice temei, în interiorul tagului <h1>, înainte de titlul afișat în pagină.

0

Posted:

Categories: Blog

Pagina cu videoclipuri in Wordpress - cum se face

Avem nevoie de o pagina cu videoclipuri in WordPress, pornind de la următoarele:

  • un site construit în WordPress;
  • un document în Word cu adrese de videoclipuri de pe Youtube și o scurtă descriere a fiecăruia;

Problema nu este deosebit de complicată la un număr mic de videoclipuri. Dar ce faci când numărul este mai mare (în cazul meu, 30 de adrese)? Vă voi oferi soluția mea, pas cu pas.

Rezolvarea problemei – crearea unei pagini cu videoclipuri in WordPress

Mai întâi, în Microsoft Word am transformat lista mea cu legături și descrieri într-un tabel cu două coloane. Această listă am copiat-o în Microsoft Excel. Astfel, am un fișier Excel cu 2 coloane:

  • A – legaturi
  • B – descrieri

În coloanele C și D introduc codul pentru inserarea în pagină a fiecărui videoclip, cu descrierea aferentă. Deoarece în WordPress folosesc un template ce îmi oferă direct posibilitatea utilizării unui cod scurt pentru introducerea unui videoclip, folosesc acest cod, însă se poate folosi inclusiv codul obișnuit de inserare a unui videoclip de pe youtube. În coloana E folosesc o formulă pentru a concatena porțiunile de cod și valorile, rezultând astfel codul final:

  • C – [youtube_sc url="
  • D – " width="640" rel="0" fs="1"]
  • E – =C1&A1&D1&B1
  • E – rezultatul formulei: [youtube_sc url=”legatura1″width=”640″ rel=”0″ fs=”1″]
    Descrierea 1

Copiez celulele C1:E1 în celulele corespondente de pe toate liniile care corespund unor valori în coloanele A și B  (în cazul meu, celulele C2:E30). Copiez apoi toate celulele C cu codul rezultat (C1:C30), apoi merg în editorul text Notepad++ și dau paste. Aici vom observa codul necesar pentru toată pagina, cu următoarele diferențe:

  • codul rezultat de la fiecare celulă este încadrat între ghilimele;
  • ghilimelele din codul original sunt dublate.

Aceste probleme se rezolvă prin folosirea funcției replace, astfel:

  1. “” cu ## (sau altă succesiune de caractere ce nu se află în codul nostru)
  2. ” cu nimic
  3. ## cu “

În acest moment, în Notepad++ aveți codul final ce trebuie inserat în pagina WordPress. Selectați tot textul și copiați-l în pagina de editare articol din WordPress, salvați și vizualizați rezultatul.

Folosind software-ul uzual (Microsoft Office) sau disponibil gratuit, am reușit să obțin o pagină în mai puțin timp decât aș fi avut nevoie ca să o editez manual. Dacă timpul necesar editării manuale crește direct proporțional cu numărul de elemente care se introduc în pagină, prin această metodă timpul rămâne constant, indiferent că vorbim de 3, de 30 sau de 300 de legături.

Deși rezultatul este ceea ce am dorit inițial, abia acum se observă că apare o altă problemă: numărul mare de videoclipuri inserate în pagină conduce la un timp mare de încărcare a acesteia. O problemă nouă, care necesită o nouă rezolvare. Despre aceasta, însă, voi vorbi într-un articol viitor.

0

Posted:

Categories: Blog

Cu oarece intarziere plublicam azi recomandarile din ultima saptamana a lunii noiembrie 2012.

Beat the Monster: Measure the Success of Your Community

Un articol zic eu foarte bun – in cateva randuri afli cum sa masori succesul comunitatii tale online.

Taguri: comunitati, KPI, indicatori performanta, analiza web.

4 Ideas for After-Christmas Sales

Patru idei simple pentru a imbunatati vanzarile de dupa 26 Decembrie.

Taguri: ecommerce, marketing, vanzari, craciun.

10 must-have WordPress Plugins for your Blog

Webseoanalytisc a publicat o lista cu 10 pluginuri esentiale pentru orice blog wordpress.

Taguri: blog, wordpress, plugin, marketing, seo, administare site.

Preparing WordPress For Tablets: Tools And Strategies

Cum sa iti pregatesti blogul pentru vizitatorii ce utilizeaza tablete?

Taguri: wordpress, design, plugin, tablete, smartphone.

8 Rules of A/B Testing – The Art in Marketing Science

Cateva reguli pentru o experimentele A/B – recomand cu caldura.

Taguri: testare A/B, analiza web, marketing, design.

0

Posted:

Categories: Blog

The Future of The Visual Web and The Future of SEO

http://www.johnfdoherty.com/visual-web/

The importance of whitespace in web design

http://www.netmagazine.com/features/importance-whitespace-web-design

How to manage your website

http://www.smashingmagazine.com/2012/11/16/structure-supports-digital-presence/

10 Great Media Players to Add Video to Your WordPress Site Effectively

http://www.onextrapixel.com/2012/11/19/10-great-media-players-to-add-video-to-your-wordpress-site-effectively/

10 workflow apps to enhance your productivity

http://petertrapasso.visibli.com/share/DJGnkn

0

Posted:

Categories: Blog