Többfüles form CMS alá
WP3 alá szeretnék (megrendelő kérésére) többfüles formot létrehozni.
Alapból csak egy form látszik, kitöltés után kattintással lehet következőt (ugyanolyan mint az előző) hozzáadni.
Ha már nincs több feltöltendő fül (lépés), akkor azokat megfelelően egybefűzve egyben tölti fel a szerverre (wp-post).
A wp form-builder pluginjeivel nem sokra mentem, csak 1-1 form vagy egy meghatározott form-láncolatot lehetett volna létrehozni. Fizetős pluginek sem tudták ezt megoldani.
Hosszas fejtörés után oda lukadtam ki, hogy talán php-ben lekódolni sem lenne olyan nagy meló (AJAX-al meg talán szépen is működne).
AJAX-ban még nem fejesztettem, alapszintű PHP,mySQL,HTML,CSS,JavaScript tudásom viszont van.
Szakértőktől szeretném kérdezni, hogy jó helyen kapirgálok-é, esetleg tud-e valaki valami tanácsot adni, hogy hol kezdjem.
Én mondjuk első körben Drupal7-re gondoltam látva annak képességeit, de a megbízó egyelőre ragaszkodik WP-hez.
■ Alapból csak egy form látszik, kitöltés után kattintással lehet következőt (ugyanolyan mint az előző) hozzáadni.
Ha már nincs több feltöltendő fül (lépés), akkor azokat megfelelően egybefűzve egyben tölti fel a szerverre (wp-post).
A wp form-builder pluginjeivel nem sokra mentem, csak 1-1 form vagy egy meghatározott form-láncolatot lehetett volna létrehozni. Fizetős pluginek sem tudták ezt megoldani.
Hosszas fejtörés után oda lukadtam ki, hogy talán php-ben lekódolni sem lenne olyan nagy meló (AJAX-al meg talán szépen is működne).
AJAX-ban még nem fejesztettem, alapszintű PHP,mySQL,HTML,CSS,JavaScript tudásom viszont van.
Szakértőktől szeretném kérdezni, hogy jó helyen kapirgálok-é, esetleg tud-e valaki valami tanácsot adni, hogy hol kezdjem.
Én mondjuk első körben Drupal7-re gondoltam látva annak képességeit, de a megbízó egyelőre ragaszkodik WP-hez.
Ha nem gond, hogy nem vagyok szakértő...
----------------------------
Form: biztosan kell hozzá Ajax? Egyszerű JS + némi CSS machináció nem lenne elég?
Mélyebben nem gondoltam végig, de Ajax+PHP azzal jár, hogy a fülek közt csak úgy tud mászkálni a felhasználó, hogy közben a szerverrel is kommunikál a böngészője, ami pl. interneten át esetenként elég lassú is lehet.
JS-ből úgy képzelném, hogy minden fül mondjuk egy DIV-ben lenne, ugyanarra a képernyőterületre pozicionálva (update: hülyeség, nem kell pozicionálni sem, mert a display:none a helyét is felszabadítja, a visibility-től eltérően) és amelyikre nincs szükség, az kap egy display:off attribútumot.
Vagy félreértettem valamit?
Ha a fülek megjelenítése/eltüntetése volt gond, akkor egy "kissé" gányolt megoldás lehet ez is:
Minta
Picasába feltölöttem egy képet, ez az instructables.com oldalán található cikk-beküldő oldalról készült.
A segítséget köszönöm, megnézem mit sikerül összehoznom vele.
A WP biztonsági hibával kapcsolatban: ugyan nem vagyok szakértő, de biztonsági hibák előfordulnak máshol is, ezeket szerintem szokták javítani.
Drupal többfüles form létrehozására még nem jöttem rá, egyelőre még onnan is várok választ.
Szakértőnek én sem mondanám
Ami a füleket illeti: az én megoldásom ehhez lehet, hogy kevés, legalábbis macerás a kivitelezése a grafikus elemek miatt. (grafikus elem=a füleket jelző feliratokra és a hozzájuk tartozó "ablakok" keretezésére gondolok)
Problémák
<br>
elemet, az nem formázásra való.style
DOM elem tulajdonságot), arra a CSS való.<script>
-et, mert lassítja az oldal betöltődését.Íme egy tiszta változat:
.aktiv
osztályon kívül a JavaScript teljesen független a dokumentumtól.Szerinted ezt: egy "kissé"
miért írtam oda? :-)))
Azzal viszont kíváncsivá tettél, hogy a head-ben lévő script lassít... Mitől? Miért? Mikor?
Put Scripts at the Bottom
document.write
hivásokat, módosíthatják a HTML struktúrát.Ezekre megoldás az, hogy az oldal aljára rakjuk a szkripteket, így a felhasználó már látja a tartalmat, és azonnal interakcióba is léphet az oldallal (például meglátogathat más linkeket, vagy olvashatja a tartalmat), pedig az még nem is töltődött be teljesen. Másik megoldás lehet a
defer
ésasync
attribútumok használata, amik lehetővé teszik, hogy a szkriptek párhuzamosan töltődjenek be.Az
async
attribútum megadásával a kód aszinkron fog lefutni, azaz nem függ a többi szkript betöltődésének állapotától. Ez akkor lehet hasznos, ha a kódunk független a többi, az oldalon elhelyezett kódtól.A
defer
megadásával pedig megadhatjuk, hogy a kódunk akkor legyen feldolgozva, és futtatva, amikor az oldal már betöltődött.Amit fontos megjegyezni, hogy egyik esetben sem szabad
document.write
hívást elhelyezni a kódban. Ugyanisasync
esetén megjósolhatatlan, hogy mikor fog lefutni a kód, ezáltal, hogy a HTML dokumentumban hova fog történni az írás.defer
esetén pedig az egész dokumentum felülíródik adocument.write
által megadott tartalommal, mivel amikor a szkript lefut, akkorra a dokumentum már le lesz zárva, és minden további írás felülírja azt.A
defer
attribútum valamikor IE 5.5 környékén jelent meg, és a böngészők közül az IE 5.5+, a Fx 3.5+, Chrome és Safari támogatja, azasync
attribútumot pedig Fx 3.6, Chrome 11+. Amennyiben az aktuális böngészőben nincs meg a támogatás, akkor úgy fog viselkedni, mintha az attribútum nem is lenne ott.Ha nem hagytam ki valamit,
Ez elméletileg nem több, mint bármi egyéb, head-be pakolt elem.
Ezért értetlenkedtem ezen a megjegyzéseden.
feldolgozás
<head>
részbe teszünk. Ekkor a böngészőnek be kell tölteni ezt a 100kb adatot, a JavaScript motornak pedig fel kell dolgoznia, és csak EZUTÁN folytatódik az oldal további részének feldolgozása. A böngészőnek teljesen lényegtelen, milyen kód szerepel a fejlécben, azt fel kell dolgozni, és lefuttatni. Ha csak függvénydefiníciók szerepelnek, az azt jelenti, hogy létrejönnek a megfelelő változók, amik a függvény definíciójára mutatnak.Nem kötekedésképp, de
<script type="text/javascript" src="myscripts.js"></script>
mennyiben más?
Ilyeneket rendszeresen látok headerekben.
Ebből kiindulva kezdtem én is a definíciókat a head-be pakolni.
(jó, tudom, több millió légy esete :-) )
Rosszabb
A gúgli erre nagyon rossz
De megnézheted a yahoo.com-ot is, hogy mennyire küzdenek ellene... Mondom én, hogy nem a kisujjamból szoptam ezt a scripteket a headerbe stílust. :-)
A yahoo legalább olvasható.
De ha megnézed a weblabor forrását, itt is ugyanaz a helyzet...
Még tovább megyek... nem ismerem ugyan ezt az oldalt, de ők kifejezetten azt írják, hogy a headerben vannak a lehető legjobb helyen a szkriptek, mert biztosan be lesz töltve, mire a szkriptek által feldolgozott adatok betöltődnek:
http://www.mediacollege.com/internet/javascript/placement.html
Nem kell nekem hinni
A weblabor forrása azért ilyen, mert abban a sminkben amit használ, ez a működés volt. Sőt, ez a viselkedés volt elterjedt 10 évvel ezelőtt, de ez nem jelenti azt, hogy ez a helyes megközelítés.
Itt nem hitről van szó, csak
Hmmm... Bocs, tényleg nem kötekedni akarok, de most végiglapoztam azokat az oldalakat, amiket rendszeresen látogatok. Egy olyat nem találtam, ahol a header mentes lett volna a script tagektől... :-)
Értem amit írsz, egy részét (úgy értem: azt a részét, amit elolvastam) az általad linkelt anyagoknak is, de nem találtam olyan lapot, ami megfelelt volna az általad vázolt elképzelésnek.
Tudnál néhány konkrét oldalt, ahol nincs tele a header legalább js definíciókkal és "include"-okkal?
Már ott tartok (kb. 10 perce írom ezt a hozzászólást :-) ), hogy a webtrends.about.com-on kilistáztattam a top tent és azokat lapoztam át. Egyedül a www.baidu.com-on nem találtam scriptet a headben.
-----
Egyébként én nem fejlesztek semmi, játszok a PHP-vel, nézegetem, hogy tudnék összetákolni egy saját blogféleséget, amit később úgy alakítok, ahogy nekem tetszik.
Számomra a tényleges performancia az utolsó szempontok közt van egyelőre (még ha néha ennek az ellenkezőjét is képzelik egyesek rólam ;-) )
script loader
Na jó, szerintem akkor itt
Amikor az elején kategorikusan kijelentetted, hogy head-be script-et ne, azt én komolyan vettem és elkezdtem keresgélni, hogy miért ne és (mivel már nem emlékeztem) azt is, hogy honnan vettem eredetileg az ötletet.
Végül eljutottunk oda, hogy végrehajtódó kódot nem teszünk a head-be (ez eddig is egyértelmű volt, max. nem figyelek ilyen "apróságokra" és mégis oda kerül valami), de bizonyos dolgokat nem lehet máshova tenni.
Így OK?
egy ilyen oldal
Íme egy ilyen oldal.
JavaScript
Új lépésre kattintással, egy JS kód bővíti a táblázatot.
A lépések közti váltáskor egy JS kód dinamikusan elmenti és betölti az adatokat a formba.
Elküldés előtt meg összeállít belőle egy nagy anyagot, beleírja egy rejtett mezőbe majd postolja.
Köszi a segítséget mindenkinek.
A következő problémám meg már megtalálható a fórumban...:-)
Nem teljesen értem
post létrehozása több lépésben
Mivel a post nagy, és a felhasználók egyszerűek, ezért van szükség egy olyan formára, ahol a lépéseket leírják, képeket csatolják (minden lépéshez), majd a végén az egészből lesz 1 darab post.
A lépések közt valami oldaltörés lesz beszúrva a végén.
WP plugint még nem fejlesztettem, de ha az a legjobb megoldás akkor nekiállok.
Esetleg Drupal7 form+tab kombinációhoz ért valaki?
Mert ott az egyes beviteli mezőknél meg lehet adni korlátlan darabszámot, így tartalom létrehozásakor a felhasználó nyitogatja az új mezőket.
Itt is valami hasonló kéne, csak konkrétan egy nagyobb formon belül lenne egy kisebb formból változó darabszámú.
Drupal többlépcsős űrlap
Személy szerint én egyiket sem próbáltam, úgyhogy nem tudok tapasztalatokról beszélni. Amin én dolgoztam, azok teljesen egyedi fejlesztésű Drupal 7 többlépcsős tartalombeviteli űrlapok, ezért nem tudok hozzá kódot mutatni, de elárulom, nem gyerekjáték.
Node Wizard