Hogyan érdemes választani egy feladat lehetséges megoldásai közül?

  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • The spam filter installed on this site is currently unavailable. Per site policy, we are unable to accept new submissions until that problem is resolved. Please try resubmitting the form in a couple of minutes.
Kategória: 
Leírás

Ez egy olyan téma, amiről már megint régen készültem írni, és most újra egy drupal.hu kérdés adta a végső lökést.

A feladat:

ne csak a meglévő lehetőségek közül lehessen választani a közzétételi beállításoknál (közzétesz, címlapra helyez, kiemelt), hanem legyen egy plusz checkbox is

Ez egy nagyon egyértelmű és jól behatárolt leírás. A kulcsszó, amit a szerző is nagyon jól megfogott, a közzétételi beállítás, magyarul node options.

Honnan vannak ezek az opciók?
Ezek egy node különböző állapotai, ami lehet igaz vagy hamis. Ezek az opciók a node táblában vannak eltárolva egy-egy mezőben. Tehát a feladat akkor van teljesítve, és nem túlteljesítve, ha ezt, és csak ezt meg tudjuk valósítani.

Szerencsére nagyszerű jószág ez a drupal, ezerféleképpen meg lehet csinálni egy dolgot, és ez a feladat nagyon jó példa arra, hogy megoldás és megoldás között is van lényegi különbség. Nem mindegy ugyanis, mennyi erőforrásba kerül amit választunk.

A fórumban a következő lehetőségek merültek fel:

  • CCK - ezt ketten is írtuk
  • Flag - nekem az egyik személyes kedvencem
  • Taxonómia
  • Célmodul - ezt időközben megtaláltam: Custom Publishing Options

Drupalban baromi könnyű "overkill" módon kivitelezni dolgokat, ez természetes is, hiszen a jól bevált, egyszerűen kivitelezhető eljárások adják magukat, viszont felesleges terhet rónak a rendszerünkre, ergo sok olyan funkcionalitás "keletkezik" magától, amire semmi szükség a feladathoz.

Az ilyen overkill megoldások halmozása vezet odáig, hogy lesz egy batár nagy rendszer, ahol 1s helyett 4-5s az oldalgenerálási idő, a szolgáltató ledobja a láncot, és visítva szalad el, ha drupal oldalt akarnak nála üzemeltetni.

Menjünk végig a megoldásokon, és nézzük, minél, mivel lövünk túl a célon:

CCK

Lesz egy csomó sosem használt, feleslegesen tárolt beállítás, egy plusz mező egy egészen más táblában, megjelenítési módonként egy-egy sosem használt megjelenítés beállítás, egyéb moduloktól függően több felesleges változó, D7-ben pl két új táblát is kapunk ajándékba.

- Mikor lesz jó nekünk a cck?

  • Akkor, hogyha ezt az értéket valamilyen módon ki akarjuk íratni a nodeban.
  • Akkor, ha ki akarjuk használni a mezők súlyozásának a lehetőségét.

Flag modul

Na ez elég összetett dolog, amiért a leginkább ellenjavallt, hogy erősen a node műveletekbe épül bele a saját lekérdezéseivel, tehát akkor is terheli a nodeot, ha az adott nodenak semmi köze egyébként flaghez. A sminkrétegbe is belemászik, a viewsba, szóval mindenbe, amit egyébként sosem használnánk belőle ehhez a feladathoz.

- Mikor kell flag modul?

  • Akkor, ha ezt a státuszt pl a node szerkesztése nélkül egy szexi ajaxos widgettel kell állítani.
  • Ha rules-al kombinálva folyamatvezérlést építünk.
  • Ha például az egyik role az egyik állapotot, a másik a másikat állíthatja, pl egy editor beállíthatja "flagged"-re, de csak egy administrator állíthatja "unflaggedre"

Taxonómia

Összességében a legdrágább megoldásnak tűnik. Ez az egy érték 2 táblából érkezik ráadásul db_rewrite_sql-el, ami azt jelenti, hogy más modulok is simán fűszerezhetik lekérdezést.

Keletkezik továbbá két _publikus_ listaoldal is, márpedig igen valószínűtlen, hogy a látogatónak mutatnunk kell külön oldalt nodeokkal a lehetséges értékekről.

Lesz még tovább egy plusz szótár a maga összes sosem használt feauturével, benne két termmel, aminek az értékét nem fogják változtatni, mindezekhez saját beállítóoldalak.
A node megjelenítésébe bekerül automatikusan az érték - lehet a saját hookjainkal kiszedni.

Ezeken kívül itt van d6 régi baja, hogy x mennyiségű szótár után megbolodnul a szótár súly rendszere, önálló életet él, függetlenül attól mi van beállítva.

- Mikor kell a taxonómia?

  • Ha kell saját automatikus listaoldal a fontos nem fontos tartalmaknak.
  • Ha a lehetséges értékeket bővíteni, rendezni, módosítani kell.

Célmodul

A célmodulunk ezekhez képest éppen annyit tud, amennyire szükség van. Hozzáad egy mezőt a node táblához, biztosít egy jogosultságot, hogy melyik role szerkesztheti, és egy views integrációt, illetve beteszi magát a node formba.
Ha jól átgondoltuk, hogy tényleg nem kell több "feature", és egészen pontosan ez az, amit meg akarunk valósítani, akkor ez lesz a jó választás.


Ez a poszt igencsak ráült erre feladatra, pedig eredetileg sokkal általánosabban akartam írni az "overkill" jelenségről. Viszont maga a feladat annyira egzakt, hogy csak jóval elvontabb és általánosabb példát tudtam volna írni.

Hozzászólások

You've among the finest

You've among the finest online sites.

Thanks regarding giving such

Thanks regarding giving such fantastic subject material.

For the listing

For the listing Corporation|construction contract assets|introduced "headquarters assets"|the new standards for assets|the combination of asset groups}

Wow, gorgeous site. Thnx ...

Wow, gorgeous site. Thnx ...

Great internet site! It looks

Great internet site! It looks very good! Keep up the helpful work!

Terrific Web-site, Stick to

Terrific Web-site, Stick to the great job. Thank you so much.|

Just simply want to tell you

Just simply want to tell you I'm just lucky I stumbled on your page.|

Pretty educational, look

Pretty educational, look frontward to visiting again.

With thanks! It a very good

With thanks! It a very good webpage!

Particularly

Particularly enlightening....look ahead to coming back.

Passion the site-- extremely

Passion the site-- extremely individual pleasant and great deals to see!

I delight in the content on

I delight in the content on your websites. Appreciate it!

I adore this website - its so

I adore this website - its so usefull and helpfull.

Wow because this is excellent

Wow because this is excellent work! Congrats and keep it up.

Thanks very useful. Will

Thanks very useful. Will certainly share website with my buddies.

You're an extremely valuable

You're an extremely valuable website; could not make it without ya!

I love this site - its so

I love this site - its so usefull and helpfull.

Wow, stunning site. Thnx ...

Wow, stunning site. Thnx ...

say thanks to a lot for your

say thanks to a lot for your web site it helps a whole lot.

Superb site you've there.

Superb site you've there.

Wow cuz this is extremely

Wow cuz this is extremely good job! Congrats and keep it up.

I appreciate the data on your

I appreciate the data on your website. Thanks!

Merely had to state Now i'm

Merely had to state Now i'm ecstatic that i came onto your site.|

Sustain the incredible work

Sustain the incredible work !! Lovin' it!

Hi there, awesome web-site

Hi there, awesome web-site you have in here.

Terrific website you have got

Terrific website you have got going here.

Superb Website, Carry on the

Superb Website, Carry on the great work. Regards!|

I treasure the details on

I treasure the details on your websites. Thnx!

Amazing Website, Maintain the

Amazing Website, Maintain the good work. thnx.|

I treasure the knowledge on

I treasure the knowledge on your internet site. Kudos.

I love perusing your internet

I love perusing your internet site. thnx!

Incredibly educational, look

Incredibly educational, look frontward to coming back again.

I like this website - its so

I like this website - its so usefull and helpfull.

Wow, lovely website. Thnx ...

Wow, lovely website. Thnx ...

Just simply had to mention

Just simply had to mention I'm just lucky that i happened in your site!|

I appreciate the information

I appreciate the information on your websites. Thnx!

Sustain the outstanding work

Sustain the outstanding work !! Lovin' it!

Great looking website. Assume

Great looking website. Assume you did a bunch of your very own coding.

Thanks really practical. Will

Thanks really practical. Will certainly share site with my buddies.

Passion the site-- extremely

Passion the site-- extremely user friendly and great deals to see!

Sustain the awesome work !!

Sustain the awesome work !! Lovin' it!

You've astonishing

You've astonishing information right here.

Thanks regarding providing

Thanks regarding providing many of these wonderful write-up.

Simply just wanted to

Simply just wanted to emphasize I am just pleased that i stumbled in your web page.|

Good web-site you have got

Good web-site you have got there.

Incredible, such a invaluable

Incredible, such a invaluable website.

Rather educational looking

Rather educational looking forth to coming back again.

Sustain the excellent work

Sustain the excellent work and producing in the crowd!

Thanks for giving such

Thanks for giving such fantastic written content.

Maintain the helpful job and

Maintain the helpful job and bringing in the group!

Hozzászólás

A mező tartalma nem nyilvános.
  • Internal paths in double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or relative path.
  • Engedélyezett HTML elemek: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <del> <img>
  • A webcímek és email címek automatikusan linkekké alakulnak.
  • A sorokat és bekezdéseket a rendszer automatikusan felismeri.
  • Engedélyezett HTML elemek: <a> <blockquote> <br> <cite> <code> <dd> <del> <div> <dl> <dt> <em> <li> <ol> <p> <span> <strong> <ul>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <bash>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <mysql>, <php>, <python>, <ruby>, <sql>. The supported tag styles are: <foo>, [foo].
  • Minden email cím át lesz alakítva ember által olvasható módon, vagy (ha a JavaScript engedélyezett) ki lesz cserélve kattintható, de biztonságos hivatkozásra.