Puncte:0

Cum să afișez un formular de contact agnostic al sistemului de management al conținutului pe care l-am dezvoltat, doar fără iframe?

drapel sg

Am dezvoltat un simplu, sistem-de-management-conținut-agnostic[1] Formular de contact PHP-HTML-JavaScript-CSS pe care în mod normal îl încorporez prin iframe, dar nu mai vreau să folosesc iframe din cauza formularului care apare parțial pe afișajul mobil, fiind necesară derularea pentru a-l vizualiza pe tot.

Pot folosi acest CSS ca soluție parțială:

Ecran @media și (lățime maximă: 733 px) {
    #prcf_iframe {
        înălțime: 547px;
    }
}

Aceasta nu este nici o soluție „pixel perfect”, nici ceva aproape de pixel perfect, deoarece în unele afișaje mobile formularul fie are încă o zonă de defilare, fie, în alte afișaje mobile, are brusc o „zonă de înălțime moartă” suplimentară.


Cum aș putea să arăt acest formular CMS-agnostic în Drupal fără a folosi iframe?
1. Datorită faptului că formularul este independent de CMS prin design, nu ar trebui să facă parte dintr-un modul Drupal.

Jaypan avatar
drapel de
Formularul este doar HTML? Unde se întâmplă la trimitere - sunt transmise datele? Scos dintr-un API la distanță? Trimis la un API la distanță?
drapel sg
@Jaypan formularul este fișiere PHP care conțin HTML, precum și un fișier JS și fișier/fișier/e CSS. Datele sunt trimise în contul meu de Gmail, așa că nu mă tem de injectarea SQL.
Jaypan avatar
drapel de
Puteți încerca să lipiți totul în corpul unui nod, așa cum este. Asigurați-vă că corpul nodului permite textul complet.
drapel sg
@Jaypan codul sursă al formularului este oarecum modular și este compus din diferite fișiere și directoare. Pot face un singur cluster mare, dar prefer să nu fac pentru că îmi este greu să mențin codul („o greșeală de scriere în linia 500”). Poate ați vrut să compilați totul în HTML înainte, dar, din păcate, nu cunosc un astfel de compilator care să facă un HTML uriaș din toate.
Jaypan avatar
drapel de
Ei bine, fie așa, fie fă-o în modul potrivit Drupal. Dar nu vrei să o faci în modul potrivit Drupal, așa că opțiunile tale sunt limitate. Cred că cealaltă opțiune este să aruncați fișierul în sistemul dvs. de fișiere și să faceți legătura la el - Drupal nu va fi instanțiat în cazul în care există un fișier real. Totuși, nu vei primi nimic Drupal, inclusiv tema sau orice altceva.
drapel sg
@Jaypan Sunt deschis să o fac și în modul Drupal (contact sau formular web), dar dacă pot folosi acel formular independent de CMS este cel mai bine, cel puțin în anumite circumstanțe. Nu prea am înțeles „aruncă fișierul în sistemul tău de fișiere și conectează-l la el” dacă vrei să-l faci un fișier de sine stătător, fără estetica temei, nu, sunt de acord că nu ar trebui să fac asta.
Jaypan avatar
drapel de
Modalitățile Drupal ar fi să creați un modul și să utilizați Formularul API pentru a vă crea formularul, a modifica un formular web sau a modifica un formular de contact.Apoi veți atașa CSS/JS la formular, indiferent de metoda pe care o alegeți.
Jaypan avatar
drapel de
Și da, m-ați înțeles corect despre introducerea fișierului în sistemul dvs. de fișiere.
apaderno avatar
drapel us
Afișarea unei forme agnostice de CMS în Drupal este o idee proastă. Dacă scopul este introducerea datelor pe care le-ar folosi un API extern, un formular Drupal cu un handler de trimitere care trimite datele către site-ul extern API este calea de urmat, atunci când aveți deja un site Drupal. În mod clar, depinde de ce tip de integrare cu Drupal este necesară. Consider că este necesară integrarea cu Drupal, sau nu veți afișa o pagină externă în Drupal.
Puncte:1
drapel cn

Un „formular CMS-agnostic care nu face parte dintr-un modul Drupal” ar putea fi considerat, de asemenea, un „script PHP terță parte”, ceea ce reprezintă un risc de securitate.

Acum, ați scris singur acest cod, astfel încât să puteți garanta pentru el. Dar, practic, vă întrebați „cum pot injecta un script PHP în Drupal?”, ceea ce Drupal nu vrea să faceți, deoarece poate ocoli diferitele caracteristici de securitate ale Drupal.

Aceasta înseamnă că răspunsul la întrebarea ta este „Este greu și vor exista compromisuri”.

Iată trei abordări pe care le puteți lua.

Abordare: găzduiește scriptul pe același server, dar separă-l de Drupal

O abordare este să găzduiți scriptul în propriul director pe serverul dvs. și apoi să excludeți acel director din Drupal. Această excludere poate fi făcută la nivel de server, astfel încât Drupal nu vede niciodată scriptul și scriptul nu vede Drupal.

În acest caz, scriptul nu va face parte din site-ul Drupal, așa că nu veți avea tema.

Configurația serverului depinde de serverul dvs.; îl poți pe Google.

Abordare: încorporați-l într-un iframe

Ai spus că nu-ți place să defilezi în cadrele tale iframe, dar există multe biblioteci JS pentru a rezolva asta, cum ar fi iframe-resizer. Aceasta este totuși o întrebare Stack Overflow.

Abordare: Utilizați formularul web

Rescrieți formularul pentru a utiliza Formular web modul. Da, nu va mai fi independent de CMS. Dar Webform este unul dintre principalele module de contribuție Drupal și poate face practic orice -- multe organizații aleg Drupal datorită acestui modul. Deci, poate gestiona, evident, un formular de contact de orice complexitate și vă va oferi o integrare completă cu Drupal.

Puncte:0
drapel id

Folosește modul PHP, pe riscul propriu.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.