Corectare afisare lista de rezultate autocomplete in spatele ferestrei de dialog jQuery UI

Într-o fereastră de dialog jQuery UI avem un widget autocomplete asociat unui câmp text. La prima afișare a listei de rezultate, totul este afișat normal. Însă, dacă închidem lista de rezultate fără să fi selectat vreun rezultat, iar apoi redeschidem lista prin tastarea unui caracter în câmpul text, vom observa că lista este afișată în spatele ferestrei de dialog.

Read More

PHP Regexp – modificatori si optiuni

Modificatori:

[abc] Un singur caracter: a, b sau c
[^abc] Un singur caracter cu exceptia a, b, sau c
[a-z] Un singur caracter din intervalul a-z
[a-zA-Z] Un singur caracter din intervalul a-z sau A-Z
^ Inceput de linie
$ Sfarsit de linie
\A Inceput de sir de caractere/text
\z Sfarsit de sir de caractere/text
. Orice caracter
\s Orice caracter de tip whitespace
\S Orice caracter cu exceptia whitespace
\d Orice cifra
\D Orice caracter cu exceptia unei cifre
\w Orice carcater dintr-un cuvant (word): litera, cifra, underscore
\W Orice carcater cu exceptia celor dintr-un cuvant (non-word)
\b Orice caracter care delimiteaza un cuvant
(…) Retine secventa din paranteza
(a|b) a sau b
a? Cel mult o aparitie a lui a
a* Oricate (inclusiv zero) aparitii ale lui a
a+ Una sau mai multe aparitii ale lui a
a{3} Exact 3 aparitii ale lui a
a{3,} 3 sau mai multe aparitii ale lui a
a{3,6} Intre 3 si 6 aparitii ale lui a

Options:
i Nu tine cont de minuscule sau majuscule
m face ca punctul (.) sa includa si caracterul linie-noua
s continua cautarea chiar si dupa caracterul linie-noua
x Ignora caracterele de tip whitespace
o executa substitutiile #{…} o singura data

Sub-patterns

(?:(?!string).) Negarea unui sir de caractere (?: creaza un sub-sablon, iar ?! este o negare a textului care urmeaza

Mai multe informatii:
https://www.php.net/manual/en/reference.pcre.pattern.syntax.php

Incarcare factura XML in platforma SPV ANAF folosind autentificarea OAuth in PHP

Intr-un articol separat (Autentificare OAuth si obtinere token JWT de la ANAF folosind PHP) am descris modul de autentificare prin OAuth in platforma ANAF si obtinerea tokenului JWT care autorizeaza o aplicatie terta sa comunice cu platforma ANAF in numele unui client. Scopul acestei comunicari este transmiterea sau descarcarea facturilor electronice in SPV (Spatiul Privat Virtual) in format XML in contextul implementarii proiectului e-Factura de catre Ministerul de Finante.

Read More

Autentificare OAuth si obtinere token JWT de la ANAF folosind PHP

Procesul de interfatare cu platforma ANAF in contextul e-Factura, pentru incarcarea sau descarcarea facturilor electronice, este destul de complex si presupune o serie de etape. ANAF pune la dispozitie o documentatie destul de slab pusa la punct, cu detalii tehnice de multe ori incomplete si impartite in mai multe documente pe care le gasim in locatii diferite.

Read More

Redirectionare website spre HTTPS

  1. Activarea redirectionarii permanente prin modificarea fisierului de configurare al virtual host
    <VirtualHost *:80> 
    ServerName www.lorand.work
    Redirect permanent / https://www.lorand.work/
    </VirtualHost>
    
    <VirtualHost _default_:443> 
    ServerName www.lorand.work
    DocumentRoot /var/www/httpdocs
    SSLEngine On 
    </VirtualHost>
  2. Activarea redirectionarii folosind fisierul .htaccess
    RewriteEngine On 
    RewriteCond %{HTTPS} !=on 
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Modificarea limitei pentru dimensiunea fisierelor uploadate in WordPress

1. Modificarea setarilor PHP in cPanel

cPanel > Select PHP Version > Switch to PHP Options > upload_max_filesize = 200M

 

2. Modificarea fisierului php.ini

upload_max_filesize = 200M post_max_size = 200M memory_limit = 200M

 

3. Modificarea fisierului .htaccess

php_value upload_max_filesize 12M
php_value post_max_size 13M
php_value memory_limit 15M

 

4. Modificarea setarilor php din scriptul wp-config.php

ini_set( 'upload_max_size' , '12M' );
ini_set( 'post_max_size', '13M');
ini_set( 'memory_limit', '15M' );

 

5. Utilizarea filtrului WordPress upload_size_limit

/**
 * Filter the upload size limit for non-administrators.
 *
 * @param string $size Upload size limit (in bytes).
 * @return int (maybe) Filtered size limit.
 */
function filter_site_upload_size_limit( $size ) {
    // Set the upload size limit to 10 MB for users lacking the 'manage_options' capability.
    if ( ! current_user_can( 'manage_options' ) ) {
        // 10 MB.
        $size = 1024 * 10000;
    }
    return $size;
}
add_filter( 'upload_size_limit', 'filter_site_upload_size_limit', 20 );

 

Corectare performanta scazuta la jQuery autocomplete

Datorita unui bug in componenta ui.autocomplete  din libraria jQueryUI  de fiecare data cand utilizatorul tasteaza in campul text performanta cautarii scade. Pentru a corecta acest lucru se adauga $(this).data(“ui-autocomplete”).menu.bindings = $();  in sectiunea search :

$("#birds").autocomplete({
    source: "search.php",
    minLength: 2,
    select: function(event, ui){
        log("Selected: " + ui.item.value + " aka " + ui.item.id);
    },
    search: function(e,ui){
        $(this).data("ui-autocomplete").menu.bindings = $();
    }
});

Detalii: https://bugs.jqueryui.com/ticket/15082

Optimizarea performantelor site-ului smashingmagazine.com – studiu de caz

Un articol excelent despre imbunatatirea performantelor unui site de dimensiuni relativ mari. Un studiu de caz cu explicatii exhaustive pentru fiecare sectiune, cum au gandit si ce solutii au gasit pentru a obtine un scor de 99/100 de puncte la Google PageSpeed Insights.

http://www.smashingmagazine.com/2014/09/08/improving-smashing-magazine-performance-case-study/

Verificare propagare DNS

Pentru verificarea propagarii DNS:

https://www.whatsmydns.net
Verifica propagarea DNS pe 21 de servere din locatii diferite (aleator). La fiecare refresh al paginii se schimba locatiile.

http://ceipam.eu/en/dnslookup.php
Verifica propagarea DNS la diferiti provideri de internet (inclusiv RDS, UPC, Romtelecom, Vodafone, Euroweb)

Altele:
http://viewdns.info/
http://www.nexcess.net/resources/tools/global-dns-checker/
http://checkdnspropagation.com/
https://www.dnsunlimited.com/propagation_check

Actualizare LiteSpeed webserver

Actualizare LiteSpeed:

/usr/local/lsws/admin/misc/lsup.sh -v 4.2.17

Optiuni:

-f: Daca versiunea specificata este deja instalata, lsup se va opri. Optiunea -f forteaza instalarea chiar daca versiunea specificata este aceeasi cu cea instalata. Aceasta optiune poate fi utila daca au fost efectuate modificari/imbunatatiri pe versiunea actuala si inca nu a fost lansat a o noua versiune.

-v: Permite specificarea versiunii care sa fie instalata. Aceasta optiune permite instalarea unei versiuni anterioare in cazul in care versiunea actuala creaza probleme.

Informatii suplimentare aici:
http://www.litespeedtech.com/support/wiki/doku.php?id=litespeed_wiki:lsup
http://crybit.com/litespeed-update-released/

Noty – un plugin jQuery pentru notificari

Noty este un plugin jQuery care permite crearea de notificari, ca o alternativa la casutele standard de dialog. Sunt permise diverse pozitionari relativ la fereastra curenta, aspectul grafic poate fi modificat/personalizat din CSS si are, pentru moment, 4 optiuni de callback. Mai multe detalii pe site-ul autorului: http://ned.im/noty.

 

Autorul, Nedim Arabaci, prezinta si alte proiecte interesante pe site-ul sau: http://ned.im