Drupal modul vagy csak sima PHP-s fejlesztés

kkwx képe

hellósztok

Nem tudom mennyire illik ide ez a kérdés, de máshova nem tudtam írni. Olvasgattam itt a fórumtémákat, és azt láttam, hogy sokan nagyon ellene vannak annak, hogy egy Drupalos weboldalba sima PHP kóddal írjon meg valaki egy űrlapot, vagy bármit. Ebben a témában szeretnék érdeklődni, hogy miért is "rossz", "nem szép", "gányolás", meg hasonlók ez a megoldás? Mert érvet senki nem hozott fel ellene, csak szidta azt aki ezt csinálta. Ezért nyitottam ezt a témát, hogy végre tiszta vizet öntsünk a pohárba és kiderüljön, hogy ez tényleg rossz-e vagy nem.

Szerintem semmivel se rosszabb mint egy modul, mert ugyanúgy lefut a PHP kód, ezért elvileg nem is lassabb (ilyen apró mikro-secundumos lassabbság nem számít) + ha a felhasználó a Drupal adatbáziskezelő-rétegét használja, elvileg ugyanannyira megbízható is. Talán csak a hordozhatóság miatt (modult csak át lehet vinni), de bizonyos szempontból, meg a kész PHP kód a jobban hordozható, ha például egy ugyanolyan űrlapot akarunk csinálni, akkor a modullal, újra be kellene állítani mindent...

És, hogy miért érvelek mellette? Mert a modulprogramozás hihetetlenül bonyolult, és ha valaki csak 1-2 modult csinál az életében és semmi olyan extrém megoldást nem alkalmaz, amit még senki se csinált és ezért hasznát vennék mások is, akkor miért fejlesszen valaki modult? Emellett volt aki azt mondta, hogy ennél, még a tisztán PHP-s weboldal is jobb, de ott meg mindent magának kell megírnia, és ezért egy nem profi felhasználó oldala nem is lesz annyira szép, és már kész dolgokat miért kéne újra meg újra mindenkinek megírnia, és ott tényleg minden védelmet manuálisan kell lekezelni, amik a Drupalban alapok (pl SQL injection nagyon egyszerű, és a jelszókat is kódolva tárolja az adatbázisban...)...

Egyenlőre ennyi jutott az eszembe. Senkit nem szeretnék megbántani ezzel a témával, csak szeretném tisztán látni a dolgokat, és ha valaki meg tud győzni, hogy ez tényleg rossz, akkor nem is fogok többé ilyent csinálni :), de addig kitartok emellett :).

Fórum: 
Illyés Edit képe

A modul is PHP-kód, csak az alaprendszer illesztőfelületén keresztül kapcsolódik a rendszerhez és nem csak úgy hozzá van heggesztve.

a modulprogramozás hihetetlenül bonyolult

Viccelsz? :) Szerintem még nem próbáltad. Hol akadtál el? (Új kérdés, új téma.)

0
0
kkwx képe

igaz, még nem próbáltam, de egy modult alapból sokkal általánosabban kell megírni elvileg, mert ha esetleg nem úgy írom ugyanígy belém kötnek és semmivel sem vagyok előbbre, csak hátrébb...
Onnan vettem, hogy bonyolult, hogy beleolvastam a készítésbe, meg van egy haverom aki szakdogának csinált egy egyszerű modult (aminél én legalább 5-ször bonyolultabbat akarok), és rengeteg segítséggel is épphogy csak meg tudta csinálni, pedig neki sokkal több tapasztalata volt előtte a webfejlesztésben...
a képeket amiket mutattál: lehet, hogy ronda, de ugyanúgy működik, mint a jól megcsinált, de a weboldalnál viszont nem látják, hogy mi volt az eredeti kód: modul, vagy sima kód, és pont ezért nyitottam ezt a témát, hogy valaki elmagyarázza, hogy miért rossz, és az nem érv, hogy "mert csak", vagy "mert nem szép"...
nincs időm és kedvem se a modulprogramozással foglalkozni, és ezért akarom tudni, hogy miért rossz, mert csak egyetlen weboldalt akarok összerakni, és azért nem tanulok meg modult programozni...
Szóval egyáltalán nem lettem meggyőzve, várom továbbra is az ÉRVEKET :)

0
0
york képe

Elolvasva a hozzaszolasokat, szamomra az nem derult ki, hogy miert van szukseged a drupalra?

A drupal nem tud semmi olyat amit mas keretrendszerek ne tudnanak pl.:
- db reteg ami probal vedeni SQL injection tamadastol,
- megkonnyiti az urlapok generalasat (3 lepes: letrehozas, validacio, submit),
- segit menu strukturat epiteni,
- tud hozzaferest szabalyozni,
- tud tartalmat kezelni,
- biztonsagos tartalom kiiratas,
- tobb nyelvre konnyen fordithato ,
- program logika es megjelenites szetvalasztasa,
- stb.

A hozzaszolasodbol nekem az derult ki, hogy neked ezekbol egyikre sincs szukseged, akkor miert is kell neked akarmilyen keretrendszer is?

Drupalban a legtobb esetben nem is kell formot letrehozni, mert cck+views (esetleg sajat modulba kis magia form es node api) segitsegevel megoldhato a dolog.

0
0
zserno képe

kkwx képe

valóban, de ezzel csak létrehozok egy modult ami még semmit nem csinál... utána teljesen általánosan kell megfogalmaznom mindent, mert akkor meg az lesz a gond, hogy kész kódot nem szép modulban írni, az már legalább 5-szörös meló... aztán amiket itt egy egyszerű elágazással lekezelek (pl, hogy mihez melyik felhasználó férhet hozzá), azt a modulban megint valami speciális módon kell, hozzárendelnem a szerepeknél, hogy mi micsoda, és ki érheti el, emellett a kész kódot miként akarom tárolni? pl egy típusként, akkor hogy viszem bele a típusok közé, mit hogyan implementálok az oldalba, beállítani megvalósítani, és ezek olyan dolgok amik sima PHP írásakor fel se merülnek, mert alapból megvalósulnak... ezek a dolgok miatt, amik csak úgy elsőre eszembe jutottak, már kb 10-20-szoros meló, mint simán leírni...
választ még mindig nem kaptam, sőt új kérdésem merült fel: miért van PHP kód beírásának a lehetősége a Drupalban, hogyha az ennyire rossz, ronda és tiltott dolog?

0
0
dj képe

teljesen felesleges a cms neked, csak bonyolítod az életedet. Nem tudom ki akart téged modulírásra kényszeríteni, én legalábbis feleslegesnek tartanám, hogy egyetlen érvet is hozzak arra, miért kell kvázi szabványokhoz igazodni, hisz milyen jól él az az egyik legnagyobb IT cég amelyik magasról tesz az ilyesmire.

0
0

Üdv!
Dudás József

sgabe képe

Egyszerű, mert a Drupal egy...

  • Tartalomkezelő rendszer azaz Content Management System (CMS)
  • Tartalomkezelő keretrendszer azaz Content Management Framework (CMF)
  • Web alkalmazás fejlesztő keretrendszer azaz Web Application Framework (WAF)

ami dióhéjban azt jelenti, hogy mindennek megvan a megfelelő módja (API).

Gondolom Te sem állsz neki egy fapados autóba klímát, elektromos ablakemelőt meg szervo kormányt hegeszteni csakúgy az otthoni csavarhúzóddal, mert az "sokkal egyszerűbb" lenne, mintha beállnál vele egy szervízbe és a szerelő a megfelelő műszerek, eszközök és szakismeret segítségével megcsinálja.

A PHP kód bevitele a Drupal 6 óta már csak külön modulban érhető el (nem alapértelmezett), mivel azon túl, hogy "rossz" még veszélyes is a használata, viszont bizonyos esetekben hasznos lehet.

Nem tudom mit szeretnél csinálni, de egy űrlapot még akár kattintgatva is össze lehet rakni (lásd Webform), ehhez biztosan nem kell egyedi PHP kódot írnod sehova.

0
0
kkwx képe

megcsináltam Webform-ban, és belém kötöttek, hogy "a múlt időt is be lehet állítani értéknek", és megbuktattak... az ilyen válaszokkal, hogy "mert nem így kell és kész" nem megyek sokra :), az meg, hogy veszélyes: a Drupal adatbáziskezelő függvényét használom, ami elvileg ugyanannyira megbízható

0
0
aboros képe

meg tudnad oldani, hogy ne lehessen mult idot beallitani. eleg szomorúan hallom hogy egyetemen tanithat olyan, aki ezt nem tudja es inkább arra buzdit, hogy node bodyba agyazzad a saját php kodod. ha ezt tartja helyes megoldasnak akkor o egy kokler. ne tanitson "drupal programozas" t senkinek soha.

0
0

-
clear: both;

alippai képe

Emlitetted hogy az adatbázis réteg nagyon egyszerű és hasznos.

Ha már az űrlapkezelést is említetted, akkor egyszerűbb az űrlapot megírni Drupalban.
Két függvényre van szükséged: hook_menu-re és egy függvényre ami egy Array-t ad vissza.
Ilyenkor szépen egy-egy tömb elememmel tudom definiálni, hogy mi az alap érték, mekkora a maximális hossz.

Szerinted ez:

 <FORM action="http://somesite.com/prog/adduser" method="post">
    <P>
    <LABEL for="firstname">First name: </LABEL>
              <INPUT type="text" id="firstname"><BR>
    <LABEL for="lastname">Last name: </LABEL>
              <INPUT type="text" id="lastname"><BR>
    <LABEL for="email">email: </LABEL>
              <INPUT type="text" id="email"><BR>
    <INPUT type="radio" name="sex" value="Male"> Male<BR>
    <INPUT type="radio" name="sex" value="Female"> Female<BR>
    <INPUT type="submit" value="Send"> <INPUT type="reset">
    </P>
 </FORM>

vagy ez:
function mymodule_myform() {
  $form['firstname'] = array(
    '#type'=> 'textfield',
    '#title' => t('First name'),
    '#required' => TRUE,
  );
  $form['lastname'] = array(
    '#type'=> 'textfield',
    '#title' => t('Last name'),
    '#required' => TRUE,
  );
  $form['radio'] = array(
    '#type' => 'radio',
    '#title' => t('Sex'),
    '#default_value' => 'Male',
    '#options' => array(
      1 => 'Male',
      2 => 'Female',
    ),
    '#description' => t('Please choose an option.'),
  );
 
  return $form;
}

?

Nézzük sorban az előnyöket:

Biztonságos
Nem lehet beküldeni a radio gomboknál a Male és Female értéken kívül mást.
Beépített validálás
Ami kötelező azért szól, hogyha hiányzik.
Fordítható
látod a t() függvényeket, azokban a stringeket Drupalon keresztül egyszerűen bármilyen nyelvre fordíthatod, lekezeli neked a Drupal.
Bővíthető
Tudsz hozzáadni saját form elemeket:
  • színválasztót, csak bekapcsolod a jQuery colorpicer VAGY a Colorpicker modult és máris használhatod a '#type' => 'colorpicker' típust
  • dátum mezőt (akár kis felugró naptárral) a Date modul segítségével

Ezeken kívül egy tucat dolgot még tud, pl. AHAH/AJAX-ot kezelni, saját validálást csinálni.

Én az utóbbit választom, szertinem próbáld ki te is.

Források, kiindulópontok:
http://api.drupal.org/api/drupal/developer--topics--forms_api_reference....
http://drupal.org/node/751826

0
0

Lippai Ádám
young element

kkwx képe

az első értelmes válasz :), elgondolkozok ezeken a dolgokon, és ki is próbálom őket, csak itt megint az a probléma, hogy teljesen más mint a PHP, kezdhetem előről a tanulást, és minden apróság megvalósítását több órás utánajárás előz meg :(, nem tudom végezhetek-e így két hónap alatt...

0
0
york képe

Orommel olvasom ezen sorokat :).
Udvozlom a tanar bacsit :), es oszinte reszvetem.
Mi lenne, ha az lenne a kerdes, hogy lehet beavatkozni a drupal kulonbozo folyamataiba?
Pl. hogy a webform altal generalt datum mezobe ne lehessen mult idot megadni...
Erre vannak nagyon jo modszerek a drupalban, es sokkal elobb megvagy velem, mintha egy sajat modulban megirnad az urlapkezelest :).

0
0
kkwx képe

kérdeztem, de konkrét megoldást nem kaptam, és akkor már épp nem volt annyi időm, hogy belemélyedjek a modulokba... + ez csak egy mellékes indok volt, elsősorban azért buktattak meg, mert csak modulokat használtam elvileg, ezért kell most sok új dolgot megvalósítanom, hogy még véletlenül se tudjanak belekötni semmibe, mert amilyen kedvük van úgy buktatnak... :@

0
0
york képe

De ha nem hasznalhatsz keretrendszert, mert ez az elvaras akkor ne hasznalj...
Ha megis hasznalsz akkor hasznald ugy ahogy azt kell:
- jogosultsag kezeles: http://api.drupal.org/api/function/hook_perm es a menunel is irnak rola
- menu: http://drupal.org/node/102338
- urlapok: http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.... http://drupal.org/node/751826
- stb.
Hasznos linkek:
http://drupal.org/developing/modules
http://api.drupal.org
http://drupal.org/node/231276

Innen lehet puskazni:
http://drupal.org/project/examples

De en megkerdeznem azert a tanart (konzulenst), hogy lehet-e hasznalni keretrendszert.

0
0
Lavjaman képe

0
0

*----*----*

$node ? 'alma' : 'bor'

*----*----*

Den képe

s/első értelmes válasz/első értelmes válasz, amit megértek/ és máris van értelme a hozzászólásodnak.

A többiek se válaszoltak értelmetlenül, csak neked kell felnőnöd a feladathoz. Ha hiszed, ha nem, eddig mindenki segített neked.

0
0
Balogh Zoltán képe

Egyszerűen nem is értem a kérdést, ha ez benned felmerül, akkor Neked tényleg nem való semmilyen CMS. Miért akarsz megírni Te egyedül mindent, amikor a fél világ az évek során már megírta mindezt helyetted, rááadásul biztonságosan.

Mondok Neked egy konkrét példát, bár lehetne ezret: Az a feladatod, hogy a fehasználók minden tartalomhoz küldhetnek be képeket, Neked pedig meg kell jelenítened a címlapon a tartalmaktól függetlenül az utolsó 30 beküldött képet szépen csinosan úgy, hogy valamilyen módon el is lehessen ugrani ahhoz a tartalomhoz, amiben a kép van. Ezt barátom 2-3 hétig is kódolhatod, akkor is bugos lesz, sebezhető és lassú mint állat. Ha kihasználod, hogy megírták helyetted a Drupalt, a CCK-t, az ImageCache-t, a LightBox-ot, akkor Te írsz hozzá egy saját modulban 30 sort és készen is vagy. Gyorstárazással, megjelenítéssel cakk-pakk.

Az a mondatod, hogy a modulprogramozás hihetetlenül bonyolult, egyszerűen nem igaz. Ezt tudod mi mondatja Veled? A lustaság. Nem jársz utána, nem olvasol, nem keresel, hanem ránézel egy modulra, húúú ez bonyolult, nem akarom megtanulni. Senki nem mondta, hogy ha életedben először feltettél egy Drupalt, akkor 1 hét múlva már kened-vágod az egészet. Sokan vagyunk itt főállású programozók, mégsem magunk kódoljuk a webhelyeink nagy részét, hanem Drupalt használunk, evvel a kódolásunk 98-99%-a készen is van. Csak azt az 1-2%-ot tesszük hozzá, amit az adott webhely megkíván.

Szóval, mint mindent, a Drupalt is meg kell tanulni, ami persze leginkább években mérhető. Viszont abban a szerencsés helyzetben vagy, hogy a Drupal irdatlanul jól van dokumentálva, és a közösséghez is fordulhatsz segítségért. Először meg kell érteni, hogy miként épül fel a rendszer, hogyan jönnek létre az oldalak, stb. Amíg evvel nem vagy tisztában, és fogalmad sincs, hogy hová nyúljál egy bizonyos problémát illetően, akkor érthető, hogy úgy gondolod, hogy inkább Te lekódolod, aztán készen van. Holott az is lehet, hogy egy kereséssel, majd 3 kattintással túl is van tárgyalva a dolog, mert előtted 134 ember már megszívta ugyanazt és van rá kész megoldás.

Egy dolog viszont biztos: a Drupal használata tényleg nem kötelező!

0
0
kkwx képe

megcsináltam a weboldalt, csak Drupalban (webform meg ilyenekkel), szinte tökéletesre, és megbuktattak... ha megint nem programozok, vagy csak minimálisat: megint megbuktatnak, ha viszont a 1-ról programozok csak Drupalban akkor meg értéktelen lesz a weblap...

0
0
aboros képe

hanem az oktatasi rendszere. most szólok, hogy lesz meg szaz tucatszor olyan, hogy amit az iskolaban tanitanak az köszöno viszonyban sincs azzal, ahogy a valo vilagban csinaljak. a tanarodnak valoszinuleg halvany lila goze sincs, hogyan zajlik egy profi dupalos fejlesztes a valo eletben.

csinald meg ahogy keri a jegy miatt, de nem kell kesz tenynek venni amit "tanitanak". vagy fogadd meg minden tanacsat, de ne probald akkor rank eroltetni es nagyon ne csodalkozz ha allasokra jelentkezel majd es ilyen megoldasokat kuldesz be a probamunkakra es soha nem vesznek fel.

alippai peldaja amugy kivaloan illusztralja a mierteket, nem hiszem hogy sokat kell ezt meg magyarazni..

0
0

-
clear: both;

kkwx képe

tudom, hogy az oktatási rendszer egy nagy rakás szar, és csak aljaskodnak a tanárok :@... Igazából ezért is nem szeretnék belemerülni a modulírásba, és maradni a legegyszerűbb megoldásnál, mert az elmúlt évek alatt sikeresen megutáltatták velem az informatikát... emlékszem még középsuli után mennyire szerettem és érdekelt minden, de ami ott folyik "oktatás" címen az egy vicc :S...

0
0
alippai képe

Ha Drupal modult írsz és sokszor kérdezel, megpróbálod magad megoldani/tanácsot kérsz, akkor nem buksz meg, nem lesz gány, biztos lehetsz benne.

Ha az említett "PHP"-s módszerrel írod, meg fognak buktatni... megint. Válaszd az arany középutat.
Ha nem mondták el órán, hogy hogyan kell, az baj, méghozzá nagyon nagy baj. Ha nem jártál órára és kérdezted meg az óra után a tanárt, az meg a te bajod.

0
0

Lippai Ádám
young element

kkwx képe

órán semmit nem mondtak el... nem is tanultunk Drupalt, és a PHP-t is vagy 2 óra alatt vettük át és ennyi... de a tökfelesleges és értelmetlen tárgyaknak bezzeg sok időt adnak... amúgy az előbb említett modulban leírt űrlapot hogyan lehet előhozni, vagy beilleszteni egy oldalba? és nincs esetleg valami leírás, hogy mi a teendő utána? vagy utána csak simán beillesztem PHP kóddal az adatokat az adatbázisba, és sima PHP-vel kezelem le, vagy annak is van speciális módja?
kösz előre is :)

0
0
alippai képe

Tényleg több meló megcsinálni a modult elősször. Még lehet másodszor is. Harmadszor viszont viszont "kineveti", mint ti itt, hogy minek ír "PHP"-t.

Tudok nektek is mutatni szerintem egy tucat dolgot szerintem, amit egytizede idő alatt megcsinálnál, vagy éppen szabványosabban és fentarthatóbban, mint ahogy most csinálod, úgyhogy kérlek óvatosan ezzekkel hogy:

a Drupal használata tényleg nem kötelező!

van rá kész megoldás

miért kell kvázi szabványokhoz igazodni

teljesen felesleges a cms neked, csak bonyolítod az életedet

Kérlek, ha ilyen kisregényeket tudtok írni, akkor írjátok inkább a (magyar) dokumentációt, építsétek a többiek ismeretét, ne hőzöngjetek, hogy "temekkorahülyevagy".

Ha valakit bedobnak a mélyvízbe és nem hobbiból építgeti és fedezi fel a dolgokat, akkor bizony az ember elveszik az 30+ API közt és a 6500 modul közt. Ha mindenki megmagyarázza itt amit ismer, akkor se fogunk 20%-nál tartani, mégis ezeket bemutatva meg lehet könnyíteni egymás életét, egyes feladatokat töredékére csökkenteni.

A Drupal coreban 147 618 sor van dokumentáció nélkül, a Drupal contribok 5 171 513 sort jelentenek. Ez az aktuális branchek PHP kódmennyisége. Senki nem ismer mindent, esetleg eleget, de még azt se mondhatja, hogy sokat. Gondolkodjatok el magatokon kicsit.

0
0

Lippai Ádám
young element

kkwx képe

kösz :), jól esik, hogy nem tart mindenki hülyének :)

0
0
Illyés Edit képe

Nem tartunk hülyének, csak nem volt világos, hogy mit akarsz.

  1. Gyorsan, biztonságosan építeni összetett és egyúttal könnyen karbantartható webhelyeket.
  2. Átmenni egy vizsgán.

A kettő, mint kiderült, nem esik egybe. Írd le (új témában), hogy konkrétan mi a feladat, és mik az értékelési szempontok (valami csak van leírva vagy legalább elmondva). Akkor tud segíteni a közösség.

0
0
alippai képe

Ebben a témában szeretnék érdeklődni, hogy miért is "rossz", "nem szép", "gányolás", meg hasonlók ez a megoldás?

Ez volt a kérdés, aminek oka az lehet, hogy valaki nem látott még Drupal kódot :)

Nincs királyi út

, ezért is nehéz a válasz. Mindenkinek magának kell rájönnie.

Valamikor nem fogadták el a beadandót, mert programozni kellett volna ő meg leadott valamit ami kész volt... nos igen, a feladatkiírásnál is figyelni kéne erre. Most a srác átesett a ló túloldalára, mert nem ismeri a középutat. York szépen összefoglalta, hogy merre kell az elfogadható beandandóért haladni.

Azthiszem a téma végetért, ha lesz kérdés, akkor nyilván az új témanyitás a megoldás.

Esetleg előfordulhat, hogy York mondandóját könyvlapként összefoglalom (vagy valaki más) a kézikönyvbe.

0
0

Lippai Ádám
young element

kkwx képe

a feladatkiírásom szó szerint ez volt: "Egy tartalomkezelő rendszerrel az igényekhez alkalmazkodó funkciók implementálása.", amit meg is csináltam, és szó se volt programozásról, a végén mégis megbuktattak, aztán az érveknél csak össze-vissza ködösítettek... ez színtiszta aljasság volt...
bár attól tartok modulírásnál kell maradnom, mert azt csak elfogadják, és a véglén nagy kegyesen megadnak majd egy tökéletes megoldásra egy kettest... akkor majd jövök az új témákkal, ha kicsit sikerül belemerülnöm a modulírásba... tényleg hasznos linkeket kaptam itt, amik kiindulópontnak elég jók :)

0
0
szantog képe

Ez most kicsit off lesz, de nagyjából ez volt az, ami miatt több felsőoktatási intézményt otthagytam. Ha megfigyeled, egyre erősebb az a trend, főleg ebben a szektorban, hogy kutyát nem érdekel milyen papírjaid vannak. Ma egy drupal szakembert kereső hirdetés nagyjából ennyi: Küldd el a drupal.org felhasználói nevedet, és megmondom kellesz-e.
Azért felesleges végigszopni x évet, hogy hetente 3-4X rommá idd magad, legyen egy sajtpapírod, és olyanokat tanulj, amitől visítva röhögnek majd az első állásinterjúdon.

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

Den képe

Én kérek elnézést, nem volt ide illő a hozzászólásom.

0
0