Kā Pievienot Artiklus?

vmaris Wed, 12/28/2011 - 06:28

Sveiki,
Uzliku drupal 7, saskāros ar sekojošu problēmu, izveidojot galveno Menu, katrā sadaļā es varu pievienot tikkai pa vienam artiklam, kā to es varētu izmainīt , lai varētu pievienot vairākus.

Paldies.

Klasiskā veidā, bez papildus uzstādījumiem, Drupal piedāvā article : menu item, kur attiecīgi Menu item var pievienot vai nu iekš izvēlnes root pozīcijas kā Parent item izvēloties , vai arī pakārtot kādai no jau esošām pozīcijām - attiecīgi izvēloties parent item. Ir jāatceras, ka Menu nevar izveidot uz dokumentu, kura nav, jeb precīzāk, ja Drupal nav reģistrēta URL uz šādu objektu. Tehniski gan to var izpildīt, taču tas nebūs šis gadījums. Ja vēlies jau kaut ko smalkāk apstrādāt, tad iesaku šo moduli: http://drupal.org/project/menu_block Tas dod iespēju izveidot jaunu bloku kā izvēlni, un tad attiecīgi izvietot to kādā reģionā. Tur iespējams arī kombinēt, piemēram - pamata izvēlnē ir 1.līmeņa linki, bet ar šo Menu block izveidot vēl vienu izvēlni, kura sāk rādīt linkus sākot ar 2.līmeni. Klasiskā veidā Drupal Primary menu objekts nav atšķirams ar dropdown, ja vien neizmanto kādu gatavu tēmu, kurā tas jau ir iestrādāts - piemēram šo: http://drupal.org/project/acquia_marina Drupal 6 gadījumā, lai izmantotu Primary un Secondary links kopā kā vienu izvēlni, bija jāveic konfigurācija iekš /admin/build/menu/settings attiecīgi Source for primary/secondary links norādot vienu un to pašu Menu. Ja tomēr vēlies, lai ir links izvēlnē - piemēram Blogs, un tajā vēlies redzēt listi ar rakstiem, tad ir jāizmanto vai nu kāds specifisks modulis (piemēram tas pats Blog), vai arī jāveido pašam šī funkcionalitāte. Pēdējais jau precīzāk ir komentējams, ja ir zināms, ko vajag. Var būt kāds var ieteikt vienkāršāku risinājumu, bet tas būtu tā, kā es taisītu.
Paldies, es laikam slikti noformalēju jautājumu :) Vēlos kaut ko līdzīgu portāla funkcijai. Piemēram: Sadaļa ziņas, varētu ievietot vairākus rakstus , ar readmore funkciju(Number of posts) Pašlaik man nesanāk jo izveidojot Sadaļu, ir jaieraksta Node numurs/nosaukums vienam rakstam, bet gribētos lai viņi ir vairāki, kaut vai 20 tajā sadaļā.
Tad risinājuma sākums ir pēdējā paragrāfā no mana iepriekšējā komentāra. Nezinu, vai tas būs īsti korekti, taču es šādas lapas (kuras norādītas kā izvēlnes pozīcijas), kas satur listes ar rakstiem saucu par "landing page". Tās saturs var būt jebkāds - ievadtekstu porcijas ar Read more pogu, vienkārša title liste, citādi risinājumi - vienalga. To visu daru ar rokām, jo tad labāk varu kontrolēt kas kurā vietā un cik daudz parādās. Mūžīgā mainīgā satura problēma ir vertikālais teksta garums, kas bieži var jaukt izkārtojumu. Taču, ja mērķis ir panākt ko līdzīgu Taxonomy term lapai, vai standarta Drupal sākumlapai (frontpage), tad būtiskākais ir apzināties to, ka Drupal standarā aktīvās izvēlnes pozīcijas un Breadcrumbs ņem pēc lapām kā tādām. Tam būs nepieciešami vairāki moduļi (protams, neaprobežojoties ar to, un papildinot pēc vajadzības): Pieņemam domu, ka satura veids (content type), kuru vēlamies listē attēlot ir Story, kas nāk klasiski Drupal uzreiz pēc instalācijas.
  1. izveidojam ar Views jaunu "node" tipa skatu, saliekam vajadzīgos filtrus un dokumentu attēlošanas formātu node/fields (tad attiecīgi saliekot lauciņus). Saglabājam.
  2. CCK izveidojam jaunu satura veidu (content type), kuru nosaucam par Landingpage. Title lauciņš obligāts, Body lauciņš - pēc vajadzības vai vēlmēm.
  3. Ejam atpakaļ uz Views skatu, kuru tiko izveidojām un papildinām ar jaunu Display, no izvēlnes izvēloties Node content. Attiecīgi šī displeja uzstādījumos, norādām Landingpage satura veidu, kā to, kur šo lauciņu (display, kas faktiski tiks attēlots CCK kā lauciņš) attēlot.
  4. Pēc 3.punkta procedūras CCK Content Type Landingpage lauciņu sarakstā parādīsies tiko izveidotais skats, kur šajā sarakstā to var attiecīgi novietot kur nepieciešams.
  5. Kad visas sagataves ir izveidotas, un ir neliels skaits demo Story ierakstu, veidojam jaunu Landingpage rakstu, kur faktiski ievadām tikai Title, un norādām to kā Menu sastāvdaļu. Menu var neveidot pie Landingpage izveides, bet to darīt caur /admin/build/menu/..., attiecīgi ceļu norādot šo Landingpage node/NID.
Ko no tā iegūstam? Landing page kalpo kā konteineris skata attēlošanai, un tā kā tas ir parasta node, tad tam ir node/NID adrese, kuru iespējams ievietot izvēlnes pozīcijā, saglabājot korektus gan Menu trails, gan Breadcrumb trails. Jau iebūvētā veidā iekš Views ir Page display type, kuram var nodefinēt ceļu. Taču no pieredzes zinu, ka ar šo Page variantu nāk ārā visādas ķibeles, it īpaši, ja lapa ir multi-valodu. Un ir grūtāk vadīt izvēlni, jo jāievēro procedūra - ja izvēlnes ceļš Views Page lapai ir definēts caurs Views, tad tur arī tas jākoriģē. Parasti, ja gribi ātri labot izvēlni, to dara caur /admin/build/menu... Otrs, klasiskais Views Page ceļš nedod iespēju veidot interesantākus pakārtotus izvēlnes elementus. Tā kā tas ir ierobežojums. Augstāk aprakstītais piemēra risinājums šos ierobežojumus noņem nost. Pie šī aprakstītā risinājuma ir jāņem vērā tas, ka faktiksi vienam Content type tiek piesaistīts konkrēts skats, kas nozīmē, ka otru šādu content type ar citiem satura veidiem būs sarežģītāk izmantot, jo būs jālieto argumenti, un jāplāno ceļi. Kā alternatīvu var Views attach vietā izmantot Reference views, kur universālā veidā piedāvāt listi ar pieļaujamiem skatiem to attēlošanai. Tad, veidojot jaunu Landing page papildus būs jāizvēlas kāds no pieejamie skatiem. Šis risinājums arī ļoti labi iet kopā ar Internationalization moduli. Un protams, kā jau daudz kas Drupal, šis nav vienīgais risinājums. Ir daudz dažādu, kur jāmeklē sev atbilstošākais vai vieglākais. Šis ir tikai viens no veidiem, kā to panākt, pie kam nesaistoties ar programmēšanu, moduļu rakstīšanu vai arī neizmantojot PHP kodus Body saturā, kas ir salīdzinoši riskants pasākums.
Uff, Jāni, nu gan sarakstīji. Visticamāk, ka Māris nobīsies un tālāk nemēģinās :) Pašos pamatos (jau no senām Drupal versijām) nepieciešamo funkcionalitāti nodrošina taksonomija. Pieliekam klāt Taxonomy menu moduli, lai nav jāveido taksonomijas terminu izvēlnes elementi ar roku. Pēc tam varam 'uzfrišināt' ar Views, Menu Trails, utt.
Gan jau ka nenobīsies, ja jau reiz līdz Drupalam ir ticis :) Kā minēju, tas ir tikai viens no veidiem. Man pašam kaut kā Taxonomy risinājumi nepatīk, jo ir čakars ar tulkošanām, menedžmentiem, utt. (ja lapa ir viena cilvēka pārziņā, tad ir OK) Līdz ar ko, lai panāktu vajadzīgo kontroli, tā pat lietas saistās ap papildus moduļiem. Bet jā, ja der vispārējs general attēlojums tīzeriem, tad tavs risinājums būs ātrāks. Views, protams, to var izskaistināt.