Efter att ha varit aktiv här för några månader sedan, fick jag lägga ner det och istället lägga 110% av min uppmärksamhet, energi och vakna tid på ett viktigt projektjobb (ett jobb som kan leda till mera jobb och dessutom bli en utmärkt referens måste man vårda ömt). Dessvärre innebar det att jag också fick lägga ner arbetet med föreningssidan jag höll på att flytta över till Drupal (och klubben hade inte tålamod att vänta, jag fick överlåta uppdraget och nu ser det ut som om det kommer att bli en konventionell hemsida med en miljon statiska html-sidor.... men det är en annan historia och inte mitt problem).
Nu börjar projektarbetet dra sig mot sitt slut, och jag har lite tid över att börja utforska Drupal igen. Jag kastade mig ivrigt över Drupal 6 igår kväll, och var jag imponerad innan så är jag det ännu mer nu! Då som nu gör jag ett eget tema, nu gör jag en sajt för eget bruk och ska jag marknadsföra mig själv som webbdesigner/webbutvecklare så är väl det minsta man kan begära att jag åtminstone har en egen design...:)
Men... jag har tidigare gjort en hel del teman för Wordpress, och där finns något jag saknar här, eller jag kanske bara inte hittat det än, nämligen en förteckning över tillgängliga variabler (och ev funktionsanrop). Min metod nu går ut på att jag tittar i färdiga teman och plockar variabler därifrån, men det blir ganska omständigt.
Jag tycker dokumentationen för 6 är bättre än för 5 (eller är det bara jag som vant mig?), men den är fortfarande inte jättebra. Antagligen finns väl det mesta eller allting dokumenterat, men det kan vara fasligt svårt att hitta det man söker!
Comments
Finns i mallarna
Om du utgår från mallarna i phpTemplateengine så finns de variabler man har tillgång till som kommentartext i början av varje mall.
Variabler och funktioner
Lista över funktioner finns här iaf:
http://api.drupal.org/api/group/themeable/6
Det verkar inte finnas nån komplett variabel-lista för version 6 än men här finns iaf en lista på de variabler som fanns med i femman.
Variablerna finns under länkarna Comment-, Block-, Box-, Node- och Page.tpl.php
http://drupal.org/phptemplate
För övrigt tycker jag att Drupal har en väldigt bra dokumentation om man jämför med vissa andra open sourceprojekt därute.
Lycka till!
//Fabian Sörqvist
Nu kommer jag inte ihåg hur
Nu kommer jag inte ihåg hur phptemplateengine såg ut i femman, men i sexan finns inga mallar där väl?
Funktionslistan var utmärkt, tack!
Jag hittade precis tipset att använda print_r($variables) också.
Jag håller med om att Drupals dokumentation jämfört med de flesta open sourceprojekt är extremt bra. Tyvärr säger en sådan jämförelse inte särskilt mycket, eftersom många har en extremt dålig dokumentation, ibland ingen alls. Så jag jämför bara med de som är i toppskiktet när det gäller det. Där ligger nog Wordpress i allra högst i topp (av de som jag är insatt i vill säga). Och jag vill gärna att Drupal ska vara bäst även på det...:)
/Lena
PHP har riktigt bra dokumentation
OT: Jag tycker PHP har riktigt bra dokumentation, bättre än WordPress som du sätter högst i topp.
När jag började gräva i Drupal tänkte jag många gånger att jag önskade det var lika väldokumenterat och kanske framförallt välorganiserat som PHP är. Därmed inte sagt att Drupal är dåligt, som ni andra redan tagit upp är det bättre än det mesta. Men fortfarande får man sålla genom mycket och vara vaksam på vad som fortfarande gäller och vad som inte alls gör det, för det är sällan helt uppenbart.
Mallarna finns, men de leker
Mallarna finns, men de leker kurragömma, och har dessutom spritt ut sig. Huvudregel verkar dock vara att de numera finns hos sin modul.
page.tpl.php har flyttat sig till modules > system, node.tpl.php finns i modules > node, osv.
Här har vi alla default
Här har vi alla default templates, precis som Tommy säger så finns alla variabler i kommentarerna, och här har vi en lista på alla default templates med variabler man kan använda. Detta gäller för Drupal 6.
http://drupal.org/node/190815#default-templates
//Fabian Sörqvist
Egna variabler
En behändig sak i Drupal 6 är att man enkelt kan lägga till egna variabler.
I min template.php-fil har jag t.ex. följande funktion som lägger till variabeln $author_comment för comment-mallen. På så sätt kan jag lätt ge de kommentarer som författaren till noden själv skriver ett speciellt utseende.
function phptemplate_preprocess_comment(&$variables){$variables['comment']->author_comment = ( ($variables['comment']->uid == $variables['node']->uid) ? TRUE : FALSE ) ;
}
Aha, där fanns dom!
Aha, där fanns dom! Utmärkt.
Att det var så enkelt att lägga till egna variabler hade jag redan upptäckt och nästan börjat använda, men så insåg jag att det var betydligt smartare att först ta reda på vad som redan finns inbyggt. Ibland är det bra att tänka efter före :)
Tack för hjälpen!
/Lena
Devel
En fin nyhet i 6an är också att modulen Devel nu kommer med en temautvecklingsmodul som är väldigt kraftfull och häftig. Kolla på den är mitt tips!
/ Hannes Lilljequist – SthlmConnection
Ja, den har jag hittade jag
Ja, den har jag hittade jag igår! Först fattade jag inte riktigt hur jag skulle använda den, men nu är jag redan beroende... Cool!
/Lena
PHP har ofta blivit hyllat
PHP har ofta blivit hyllat för sin fantastiska dokumentation och jag kan inte mer än att hålla med. Utmärkt sökfunktion och lätt att hitta det man är ute efter. Jag skulle tro att den fantastiska dokumentationen har bidragit till och fortsätter bidra till phps popularitet.
//Fabian Sörqvist
Inte jämfört med Java
Den som har erfarenhet av Java tycker inte att PHP:s dokumentation är sååå fantastisk. :-D
Thomas Barregren – Webbredaktören
Mycket möjligt
Det är säkert sant, jag har inte haft något att göra med Java sedan en gammal sommarkurs för nästan tio år sedan, så jag kan inte uttala mig om det. Men är inte Java fusk i sammanhanget open source-projekt? Det är ju GNU numera, men så har det väl inte alltid varit.
Jag utgår ifrån att t.ex. C# också har mycket bättre dokumentering än PHP, eftersom det också är en produkt från ett stort mjukvaruföretag.
OT - men kan inte motstå...
Nu hamnar vi OT - men jag kan inte motstå frestelsen att svara i alla fall. :-)
Om jag förstår dig rätt så menar du att det är orättvist att jämföra PHP Javas dokumentation med PHP:s dokumentation eftersom (a) Java inte alltid har varit fri programvara och (b) Java har en stark supporter i Sun. Men varför skall kvalitéerna hos Sun's Java dokumentation vara mindre värd bara för att Sun är ett företag och Sun's egen implementation tidigare inte har varit helt fri? Och varför skall inte samma måttstock appliceras på PHP? PHP är ju också utvecklat av ett företag och, tillskillnad mot Java, kanske inte ens helt fritt. :-)
Apropå att Java skulle vara "fusk i sammanhanget open-source" så vill jag bara påminna om att Sun var långt före sin tid när de för 13 år sedan släppta Java under en för sin tid extremt liberala licens: gratis att använda, stor del av källkoden tillgänglig för att granska och lära från, öppen specifikation och inte minst en "community" baserad process. Det var definitivt inte fri programvara eller öppen källkod (termen var inte ens uppfunnen 1995), men det fostrade en generation av programmerare som på ett aldrig tidigare skådat sätt, vågar jag påstå, började dela med sig av sina alster under öppenkällkodslicenser. Jag skulle därför vilja påstå att öppenkällkodsrörelsen har Java att tacka för en hel del av sin framväxt.
För egen del kom jag i kontakt med fri programvara när jag pluggade på Chalmers i början av 1990-talet. Men det var först när jag började programmera Java professionellt i slutet av 1990-talet (innan dess var det C++) som jag fick rejäl smak på öppen källkod.
Thomas Barregren – Webbredaktören
Missad poäng
Jag menade inte att Java inte var friare eller mindre open source men att vara sprunget ur ett företags kommersiella produkt ger en viss "dopning" när man ska jämföra dokumentationen. Om sen Java så skulle ligga till grund för hela OSF samtidigt som PHP inte är helt fritt är det utanför poängen.
Det är hur projekten drivs och organiseras som har betydelse för dokumentationen tänker jag mig, och det var min poäng. Jag är övertygad om att de projekt där det finns starka ekonomiska företag bakom är de projekt där dokumentationen är bättre än i rena open source-projekt där folk jobbar på de bitar de känner intresse för.
Ursprunget var diskussionen om hur sorgligt det kan vara ställt med dokumentationen i open source-projekt och där Drupal (och kanske i än högre grad WordPress) i alla fall har hyfsad dokumentation. Utan att kunna alla detaljer har jag uppfattat det som att PHP har växt som ett mera traditionellt open source-projekt från grunden. Men PHP har mycket riktigt Zend i ryggen och det är antagligen därför det är så pass väl dokumenterat. (Sen kanske Java är tio ggr mer väldokumenterat i sin tur, men det är som sagt inget jag kan uttala mig om.)
Som den semiprogrammerare jag är kände jag mig bortskämd i PHP jämfört med Drupal. Det var enkelt att alltid få bra definitioner på alla funktioner i PHP, oftast med exempel. Plus de ofta värdefulla kommentarerna under. Ofta räckte det med php.net/funktionsnamn för att hitta vad jag ville ha. Jag har inte hittat den enkelheten i Drupals digra informationsbank.
Fördelen med Drupal är att
Fördelen med Drupal är att man alltid kan läsa koden ifall man undrar hur något är beskaffat. Ska man läsa PHP:s källkod krävs ganska goda kunskaper i C++ och datavetenskap - det här med interpretatorer är inte helt enkelt. :)
Något som jag tycker saknas är mer information om hur Drupals komponenter är sammansätta, t ex den ordning som Drupals formulärhantering anropar funktioner. Nu finns ju boken Pro Drupal Development som fyller många av dessa luckor men den här informationen borde vara en del av handböckerna på drupal.org.
Jakob Persson
Webbredaktören - www.webbredaktoren.se
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Jag tar mig friheten att
Jag tar mig friheten att fortsätta OT-diskussionen eftersom den ursprungliga diskussionen verkar ha slutat.
"Man kan alltid läsa källkoden"-argumentet håller bara om man är på den nivån att man förstår koden (utan större besvär). Det är knappast fallet för alla som använder Drupal idag, speciellt inte nybörjare. Det är bara att kasta ett öga i support-forumet på d.o. för att se att det finns många där som är långt ifrån "bara läsa källkoden". (Sen är det förstås sant att det är mycket enklare att med ringa kunskap läsa PHP-kod än C++-kod.)
Hehe, ja. Men angående
Hehe, ja. Men angående detta med fördelen att kunna läsa källkod. Trodde själv aldrig att jag skulle våga mig på eller kunna få ut något av det hela, men har visat sig ovärderligt i många lägen. Speciellt när när det kommer till felsökning av contribmoduler, inte så skrämmande egentligen. Källkoden är lättläst om man har någorlunda bra koll på hooks, det är magi av det slaget som rör till i skallen. Känns som att det finns en del lager att pentrera men när man väl börjar känna sig bekväm med hur drupal fungerar kodmässigt är det inga problem.
Om man använder Komodo IDE
Om man använder Komodo IDE får man dels tjusig autokomplettering av namnen på Drupals funktioner, dels popup:er med de inledande hjälpkommentarerna för funktionen ifråga. Enormt smidigt.
Jepp, PHPEclipse gör också
Jepp, PHPEclipse gör också det, det har även fördelen att det är open source och gratis. :)
Jakob Persson
Webbredaktören - www.webbredaktoren.se
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Främsta källan för information om Drupal
För mig är Drupal's API reference den främsta källan till information. Personligen tycker jag denna dokumentation står sig väl vid jämförelse med både PHP:s och Javas dokumentation. I vissa delar skulle jag vilja påstå att Drupals dokumentation faktiskt är bättre. Något jag verkligen uppskattar och dagligen har glädje av är att koden finns med i dokumentationen. Genom att läsa koden får jag svar på det flesta frågor, inklusive tillgängliga variabler i PHP Template, för att återknyta till ursprunget för denna diskussion.
Nu skall detta inte läsas som ett okritsikt hyllande av den befintliga dokumentationen. Det finns massor av förbättringar som vore trevliga. Personligen skulle jag önska att
xyzi t.ex.theme('xyz', ...)ochmodule_invoke_all('xyz', ...)vore länkar till berörd funktion respektive en lista över berörda funktioner. Det skulle ha varit "käckt". :-)Thomas Barregren – Webbredaktören
Min erfarenhet är att
Min erfarenhet är att API-referensen inte når upp till PHP:s nivå när det gäller att förklara med bra exempel för en nybörjare. Då jag höll på med det fattades det ofta exempel och kommentarer helt och hållet. Det var rätt lätt att gå vilse där.
Som jag skrev ovan så är inte alla på den nivån som du är på där man glatt läser källkoden. För många nybörjare skapar det mer frågor än det besvarar.
Och även om man läser koden så vet man inte alltid om den är aktuell eller ens bra skriven. Ta Garland som exempel, som nybörjare utgår man ofta ifrån standardtemat när man vill skapa sitt eget tema i tron att det är skrivet på ett rekommenderat sätt. Men så har inte alls varit fallet. Det är först nu som Garland får sig en sedan länge nödvändig översyn:
Det kan vara väldigt frustrerande som nybörjare att försöka lista ut vad som är best practice i Drupal upplever jag, på många nivåer.
C# och Java
Enligt mig har både C# och Javas dokumentationer ett stort problem: sökmotorerna är inte tillräckligt bra.
För java får man mer eller mindre alltid söka på google för att hitta det man vill ha, då suns webbsida enligt mig ger ett ganska rörigt intryck. Dock finns det mycket bra dokumentation för i princip alla aspekter av java, mest på grund av att javadoc är ett bra dokumentationssystem.
Vad gäller C# så kanske jag inte ska uttala mig för mycket då jag inte har allt för mycket erfarenhet av det dock är ju msdns sökmotor ökänd ;)
//Fabian Sörqvist
Måste säga att jag avgudar
Måste säga att jag avgudar Javas dokumentation vs C#, var iofs ganska länge sedan jag programmerade i java. Tar sällan till kraftuttryck men dokumentationen på msdn i sitt nuvarande utförande är ju verkligen totalt jävla otillfredställande. Att samlat allt på ett ställe är väl trevligt, men allt från .NET API till protokollspecifikationer och random howtos i mastodontisk meny som dessutom är skitjobbig/seg att navigera i är verkligen ingen god ide. Då vill man ha en sökfunktion som är bra, men inte så lätt att få till en sådan då det känns som att 95% av sökbara innehållet består av irrelevant skräp.