Drupal 7 moduļi u.c. jautājumi

andrisll Thu, 09/01/2011 - 22:44

Čau, drupal komūna!
Sāku veidot saitu uz Drupal 7 bāzes, bet nāku pie secinājuma, ka liela daļa man nepieciešamās funkcionalitātes iegūstama tikai ar Drupal 6 saderīgiem moduļiem. Vai D6 moduļu pielāgošana D7 ir ļoti darbietilpīgs process? Ņemot vērā, ka lielā daļā moduļu aprakstu teikts, ka moduļa D7 versija ir pilnībā pārstrādāta, tad pieņemu, ka visbiežāk atbilde uz šo jautājumu būs "jā".
D7 moduļu skaits pagaidām laikam vispār ir salīdzinoši neliels?
Cik saprotu, D7 uzlabojumi un atvieglojumi lielākoties ir developing sfērā (piem., entities u.c. API) (kas rezultēsies nākotnē izstrādātos moduļos) nevis end-usera iebuvēto fīču un labumu sfērā. Tāpēc domāju, ka neko sevišķu nezaudēšu, ja pāriešu uz D6, ne tā?
Balstoties uz D6 pieredzi, cik aptuveni ilgā laikā D7 varētu sasniegt tādu kā "nobriedušu" stāvokli (plaši pielietots, visi galvenie un ne tik galvenie moduļi pieejami u.tml.)? Pēc gada?
Varu pastāstīt, kādas iespējas un moduļi man ir vajadzīgi (ar kuriem ir problēmas):
- iespēja lietotāja profilā norādīt adresi vai koordinātes; šī informācija tiek attēlota google kartē; meklējot pievienotos ierakstus (nodes), rezultāti tiek sakārtoti pēc ieraksta autora "attāluma" no meklēšanas veicēja. Domāju, ka šis būs realizējams ar GMap (un piedēkļu) moduli?

- iespēja lietotājam "noīrēt"/uz laiku rezervēt resursu (node), tāda kā viesnīcas numuriņa rezervēšana (norādot sākuma un beigu datumu), bet numuriņa vietā ir vienkārši objekts; pieteikumu var apstiprināt vai noraidīt tikai resursa autors. <a href="http://drupal.org/project/resource_booking">Resource Booking</a>modulis ir kaut kas ļoti līdzīgs man vajadzigajam, kaut gan tajā priviliģētais lietotājs var akceptēt/noraidīt visus pieteikumus (domājams, to bez lielām pūlēm varētu labot), bet šis modulis ir pieejams tikai D7. Varbūt ir kāds D6 modulis ar līdzīgu funkcionalitāti?

- iespēja novērtēt lietotāju pēc tam, kad īres laiks (sk. augstāk) ir beidzies (darījums noticis), t.i., tādu vienkāršotu ebay feedback sistēmu. Liekas, ka tāda moduļa nav, tāpēc pagaidām varētu iztikt ar moduli <a href=http://drupal.org/project/fivestarextra>Fivestar Extra</a>, kas ļauj ielikt zvaigznītes lietotāja profilā; + kāds modulis, ar ko atstāt komentāru profilā - CCK?

- iespēja pievienot vairākus noudus vienlaicīgi - iespējams realizējams ar <a href=http://drupal.org/project/multi_node_add>Multi node add</a> moduli, bet tas ir beta stadijā. Ir kāda alternatīva?

Tad vēl...
Kā tiek realizēta visas liekās info (piemēram, apakšējais reviision) aizvākšana node(kā tas tiek latviskots, - mezgls?) pievienošanas formā? Vienkārši ar CSS "display: none" palīdzibu?
Ne tikai creation formās, bet arī, piemēram, PM sistēmai, lai aizvāktu adresāta text-boxu.
Varbūt PM sistēmai ir kāds addons vai paveids, kur nav "Subject" lauks?

Diezgan masīvs saraksts ar Drupal sāpēm (tās gan nav visas) sanāca, būšu pateicīgs par palīdzibu kaut dažos punktos.

Paldies un veiksmi,
Andris

Centīšos atbildēt +/-, bet pa daļām. Pašreiz uz D7 ir vērts skatīties divos gadījumos - vai nu ir mazs projektiņš, kam viss nepieciešamais jau ir gatavs stable versijās vai arī vispār var iztikt ar core vien. Vai arī - ja projekts ir gana apjomīgs, kur jebkurā gadījumā būs lielas pielāgošanas nepieciešamas un tam ir paredzēts gan laiks, gan budžets. Tad, ja nu kas trūkst - var rakstīt moduļus pats vai arī attīstīt iesāktos iekš drupal.org. Bet tādam vidēja lieluma projektam, ko jāpaceļ gana ātri, tomēr ieteiktu D6. Piekam šādu, visticamāk, varēs ātri arī nokonvertēt uz D7, kad būs gatavi attiecīgi moduļi.
Par booking sistēmu - atkarīgs no vajadzībām, var skatīties arī ekomercijas virzienā. Bet te ir daži vienkāršāki: http://drupal.org/project/publicbookings http://drupal.org/project/eventbookings http://drupal.org/project/mrbs Un diskusija par šo tēmu http://groups.drupal.org/booking-systems Ar feedback, iespējams, der http://drupal.org/project/nodereview ? Par multi node, varbūt var pielāgot http://drupal.org/project/views_bulk_operations bet arī jāskatās no vajadzībām. Bet kas attiecas uz tiem "sīkumiem" beigās, lielu daļu var izdarīt tēmojot (t.sk. CSS) un modificējot tēmas formas.
Sveiks! Es tev nevarēšu atbildēt un ieteikt daudz par konkrētājiem moduļiem un vajadzībām, bet vispārīgi atbildēšu uz jautājumu Drupal 6 vs Drupal 7. 1. Noteikti pats svarīgākais jautājums ir par projekta lielumu un tā attīstības nākotni. Ja projekts ir mazs un tam nav lielas vajadzības tad es teiktu labāk sākt uz D7. Ja projekts ir sarežģītāks un attīstāms nākotnē, tad arī teiktu, ka šobrīd projektu būtu jārealizē uz D7. Oficiāla relīze D7 izlaista janvārī. Ir uzlabojumi gan pašai sistēmai, gan arī gala lietotājam (redaktoram) tas ir draudzīgāks salīdzinot ar D6. Visi jaunie moduļi un fīčas kas tiks taisītas būs uz D7 un D6 šī funkcionalitāte vienkārši netiks izstrādāta (ticamākais). Attiecīgi ja gribēsi attīstīt sistēmu nākotnē, tad daudz kas varētu būt stipri vienkāršāk izdarāms uz D7. 2. Cilvēkresursi. Šobrīd topošie Drupal speciālisti vai esošie pāriet uz D7. Drupal Kopiena Latvijā nav baigi lielā, bet strauji aug. Ja cilvēki, kuri ir realizējuši (un varētu uzturēt/attīstīt) projektus uz Drupal 5 ir pāris desmiti, tad cilvēki ar zināšanām priekš D6 ir simti un D7 pēc noteikta laika būs tukstoši. :) Starp versijām izmaiņas ir, un tie kas būs sākuši ar D7, nebūs baigi motivētie saprast atšķirības un uzturēt/attīstīt D6 projektu, kas nosacīti jau būs "veca" sistēma. 3. Pats Drupal 6 pilnīgi noteikti vēl tiks uzturēts vismaz 2 gadus, kas protams ir ļoti ilgs laiks. Tākā ja vienīgais satraukums ir par drošības atjauninājumiem, tad var noteikti realizēt projektu arī uz D6. 4. Vai nomigrēt projektu pēc gada no D6 uz D7 būs sarežģīti? Jā noteikti, ja tā nav triviāla lapa, tad tas nebūs vienkārši un būs apjomīgs projekts un ieteiktu to darīt tikai ar nosacījumu, ja tiek būtiski mainīts lapas koncepts vai veikti ievērojami uzlabojumi. 5. Vai ir realizēti projekti uz Drupal7 ? Jā ir, šobrīd strādājam pie apjomīga projekta, kas tiek realizēts uz D7 un pirmais lielais D7 projekts tika uzsākts 2010.gada 1.novembrī (pat nebija vēl zināms, kad oficiāli tiks izlaista jaunā versija) - rezultāts www.pirkka.fi - ir ļooti OK! Bija problēmas, laiku pa laikam bija situācijas, kad bija zināms kā to vienkārši varētu realizēt uz D6, bet nav gatava risinājuma priekš D7, bet rezultāts ir ļoti labs un klientam tas nozīmē, ka nākotnes web attīstība ir neierobežota. Vēl viens raksts no mana Somijas kolēģa par šo tēmu - http://mearra.com/en/blogs/vesa-palmu/should-you-upgrade-to-drupal-7 Ļoti iespējas par daudzām tēmām atbildes varēsi saņemt DrupalCamp Baltics 2011 konferencē. Tur noteikti varēsi satikt daudz Drupal guru, kuri klātienē varētu atbildēt uz konkrētākiem jautājumiem. Noteikti būs arī tēmas tieši par D7, piemēram būs sesija par Entities. Vairāk par konferenci - www.drupalcamp.lv Veiksmi! Ernests
Paldies par izsmeļošajām atbildēm. Projekts ir praktiski bezbudžeta un bezpelņas, un brīvā laika, tāpēc palikšu pie D6, kas jau tiek stutēts virsū. Projekts domāts arī drupal apgūšanai, bet diez vai tuvākajā laikā kaut ko vairāk par vienkāršu moduļa modificēšanu iespēšu (ņemot vērā, ka PHP zināšanas ir minimālas). Eventbookings modulis izskatās cerīgs.
Tā kā Drupal IRC supports ir diezgan vājš, tad jautāju šeit: Vai ir kāds konsekvents "PAREIZAIS" veids kā noslēpt/noņemt nevajadzīgus elementus vai citu lieku informāciju Drupal sistēmā, piemēram, liekus checkboxus satura veidošanas formās, uzrakstus pie laukiem, palīginformāciju u.tml. Drupal forumos ir atrodami ļoti dažādi paņēmieni, kuri dažreiz strādā, dažreiz ne, bet nevaru atrast nevienu tutoriāli, kur skaidri tiktu izklāstīti katras metodes pielietošanas gadījumi un +/-. Te ir daži piemēri, ar kuriem mazliet paeksperimentēju, šajā gadījumā mēģinot atbrīvoties no login blocka etiķetēm, checkboxa OG grupu veidošanas formā un HTML filtra un palīginformācijas (filter-wrapper). Tas eksperimentēts iekš template.php - funkcija hide() pēc nosaukuma visatbilstošākā :), bet, piemēram, paslēpt username un passw etiķetes ar to neizdodas; pēc API apraksta noprotu, ka tas varētu būt saistīts ar attiecīgo elementu child vai parent attiecībām; šī fja arī forumos arī neizskatās diez ko bieži pielietota - fja unset() noņēma gan etiķeti, gan "required" zvaigznīti, bet, cik saprotu, pielietojums ir visai ierobežots, jo izdzēš lauka(?) vērtību pavisam, kuru citas fjas/moduļi pēc tam nevar izmantot; - #access->FALSE ar šo atribūtu izdevās reģistrētiem lieotājiem noņemt checkboxu, bet ne adminam. Tātad admins ir imūns pret #access? Cik noprotu šis ir pielietojams tikai formās? - FALSE piešķiršana vēl dažādos veidos, piemēram, kaut kādu laukiem u.tml. Nav skaidrs, kad šo pielietot, un vai citas metodes nav labākas. - hidden un Null vērtību piešķiršana. Piemēri: $form['group_group'] = array('#type' => 'hidden', '#language' => NULL); $form['group_group']['#type'] = 'hidden'; - vēl dažādas "custom" metodes, piemēram, populārākā noņemšanai: function ThemeName_filter_tips($tips, $long = FALSE, $extra = '') { return ''; } function ThemeName_filter_tips_more_info () { return ''; Vēl, protams, ir CSS display: none; paņēmiens, kas gan visbiežāk ir ne visai derīgs/"legāls". Un vēl ir dažādi papildus moduļi, piemēram, Simplify, Auto Nodetitle, Field Permissions u.c., kas visu pasākumi padara smagnēju. Ņemu vērā, ka lielākā daļa gadījumu ir specifiski, un striktus noteikumus, kur katra metode ir jālieto, nevar izveidot, taču domāju, ka aptuvenas vadlīnijas var iezīmēt. Starp citu, pēc problēmām ar D6 atkal atgriezos pie D7. Ceru, ka līdz Location un GMap moduļu 7. versijām nebūs ilgi jāgaida (gadu mija?).
Atbalstu access = false metodi, tā ir oficiāli pareizā metode. tas ka administrators redz lauku jebkurā gadijumā, tas ir tikai normāli, tas ir administrators un ja vēlies konkrētu lietotāju grupu kurai to nav vajadzīgs redzēt, tad savā būtībā tie nav administratori. Iesaku tādiem veidot atsevišķu grupu, operatori vai redaktori. Mēģināju uz ātro samontēt location ar gmap_location, lai panāktu Tev vēlamo efektu smukā veidā, bet nesanāca. droši vien jāpieiet tai lietai vēlreiz kad sanāks vairāk laika.
hide() - (D7,D8) lieto .tpl.php failos, lai nerenderētu atsevišķus elementus. Piem., render($content) renderē visus masīva elementus. Bet, ja pirms tam izsauc hide($content['links']), tad $content renderēsies bez šī elementa. Pēc tam var izsaukt render($content['links']) atsevišķi. Principā tas ir #printed = true , kas nozīmē "šito nevajag renderēt", kamēr atnāk render() un saka "a man po, es šito renderēšu tik un tā".
Paldies, kļuva skaidrāks. Jancis, paldies par mēģinājumu, bet, ja vien nav sportiska azarta ar to moduli ņemties, man viņš sevišķi steidzams nav, oficiālo relīzi sagaidīt varēšu.