Sari la continut

Embed

Fisa unei firme se poate pune intr-un <iframe>, pe un site din lista de origini permise. Mai jos sunt formele publicate azi, fiecare cu adresa ei, cu o previzualizare vie si cu fragmentul de cod. Previzualizarile de aici sunt carduri adevarate, incadrate chiar in aceasta pagina.

Cine poate incadra

Lista e scurta si explicita, iar pagina asta o citeste din cod.

Cardurile raspund cu frame-ancestors catre originile de mai jos si, spre deosebire de restul site-ului, fara X-Frame-Options. O pagina de pe orice alta origine primeste o rama goala si o eroare in consola.

  • 'self'
  • https://sicap.ai
  • https://*.sicap.ai

'self' e propriul nostru site, si de aceea previzualizarile de mai jos functioneaza. Daca vrei o origine noua in lista, scrie-ne prin pagina de contact.

Fisa completa

/embed/firma/<cui>

Randul de stari, cele trei cifre de titlu, unde a fost inregistrata firma, graficul cu cifra de afaceri si banii publici, si banda care duce la pagina intreaga. Raspunde la „cine e firma asta", langa un loc in care cititorul se uita deja la ce a castigat ea.

<iframe
  src="https://harta-firmelor.ro/embed/firma/37809192"
  title="Harta Firmelor: fisa firmei"
  style="width: 100%; height: 900px; border: 0"
  loading="lazy"
></iframe>

Fisa compacta

/embed/firma/<cui>/compact

Aceleasi stari si aceleasi trei cifre, fara harta si fara grafic. Sunt exact cele doua blocuri care costa cel mai mult: harta e jumatatea grea a raspunsului, iar graficul are nevoie de inaltime ca sa poata fi citit. Masurat pe un build de productie, la 1440px: 285px inaltime fata de 829px, si 37 KB de HTML fata de 45 KB.

Foloseste-o intr-o coloana laterala sau in dreptul fiecarui rand dintr-o lista de rezultate, acolo unde intrebarea e „cine e si mai traieste", nu „arata-mi firma asta". E o forma, niciodata un raspuns mai scurt: un singur modul decide cine e firma, si amandoua rutele il randeaza, deci nu pot spune lucruri diferite despre acelasi CUI.

<iframe
  src="https://harta-firmelor.ro/embed/firma/37809192/compact"
  title="Harta Firmelor: fisa firmei"
  style="width: 100%; height: 900px; border: 0"
  loading="lazy"
></iframe>

Cum se poarta in pagina gazda

loading="lazy" conteaza. Cardul complet aduce o harta si un grafic, deci o pagina cu mai multe carduri n-ar trebui sa plateasca pentru cele la care nimeni nu ajunge cu scroll-ul.

Fara referrerpolicy. Valoarea implicita a browserului trimite originea si se opreste acolo, adica exact cat cerem. O varianta mai veche a fragmentului trimitea calea si query-ul paginii gazda, ceea ce nu ne foloseste la nimic. Cine prefera sa nu trimita nimic poate pune referrerpolicy="no-referrer", iar cardul se randeaza identic.

Prefixul tolereaza majusculele si prefixul RO. /EMBED/firma/... si /embed/firma/RO<cui>, forma pe care o da SEAP, raspund 308 catre grafia canonica. Tot ce vine dupa prefix apartine rutei si se potriveste exact.

Lasa cardul sa isi spuna inaltimea

Optional. Fara el, cardul ramane citibil la inaltimea pe care i-ai dat-o.

Inaltimea depinde de firma: una cu un card de stare in plus, cu o legenda mai lunga sau cu o adresa care se rupe pe doua randuri e mai inalta decat alta. O rama de alta origine nu se poate redimensiona singura, deci cardul se masoara si trimite numarul in sus. Cateva randuri in pagina ta:

<script>
  addEventListener('message', (event) => {
    if (event.origin !== 'https://harta-firmelor.ro') return;
    if (event.data?.type !== 'harta-firmelor:embed-height') return;
    for (const frame of document.querySelectorAll('iframe')) {
      if (frame.contentWindow === event.source) frame.style.height = event.data.height + 'px';
    }
  });
</script>

Rama se gaseste dupa event.source, nu dupa un selector. O pagina cu mai multe carduri, cazul evident fiind o lista de rezultate, are mai multe rame care se potrivesc oricarui selector pe src, si prima ar fi redimensionata de toate: fiecare card ar ajunge inalt cat cel care a raportat ultimul. Nici verificarea originii nu e optionala, fiindca orice pagina incadrata poate trimite un mesaj. In sens invers nu se trimite nimic, cardul n-are ascultator.

Ce raspunde in fiecare caz

Un CUI pe care nu il avem raspunde 404, la fel ca pagina firmei, si tot 404 raspunde o persoana fizica autorizata ascunsa de poarta GDPR. O gazda care parcurge propria lista de firme ar trebui sa citeasca orice raspuns care nu e 200 ca „n-avem card pentru asta" si sa nu randeze nimic, in loc sa incadreze o pagina de eroare.

Doua coduri raspund 200 cu o propozitie in loc de card, fiindca avem date sub ele, dar nu cat pentru o singura firma: un cod purtat de mai multe firme, unde nu exista un card de aratat, si un cod care e alias de TVA al unei firme, atunci cand stim carei firme ii apartine. In al doilea caz propozitia numeste firma si banda duce la ea, deci cititorul ajunge pe pagina buna. Amandoua randeaza banda, deci rama nu ramane niciodata goala.

Ce nu arata: tot ce sta sub randul de sinteza pe pagina firmei, adica legaturile cu alte firme, dosarele, mentiunile din Monitorul Oficial IV, actionariatul, sediile secundare si detaliul achizitiilor. Banda de jos e drumul catre ele. Nu poarta nici denumirea firmei, fiindca pagina care il incadreaza a numit-o deja in propriul titlu.

Ce numaram

Un eveniment pentru fiecare card randat, care poarta originea paginii care l-a incadrat, forma cardului si care dintre raspunsuri a venit. Niciodata calea paginii gazda: inauntrul ramei tale, acel referrer e pagina TA, adica exact ce se uita un cititor de-al tau, si nu l-am cerut. Il stergem inainte ca evenimentul sa plece din browser.

Nu se scrie nimic pe dispozitivul vizitatorului. Masuratoarea merge fara cookie-uri, in rama exact ca pe restul site-ului.

Ce urmeaza

Fisa firmei e prima forma publicata. Urmeaza si altele, iar aceasta pagina e locul in care vor aparea. Daca ai nevoie de o forma anume, spune-ne prin pagina de contact: e mai usor sa construim ceva despre care stim ca e asteptat.