Drupaltips: Jobba snabbare med Drupals administrationssidor

Masskryssa med jQuery

Drupals trogne följeslagare, JavaScript-biblioteket jQuery, kommer till nytta på många ställen. Om du inte känner till jQuery rekommenderar jag att du läser mitt tidigare blogginlägg om jQuery.

jQuery är ett JavaScript-bibliotek inriktat mot att göra det enkelt att söka igenom innehållet i en webbsida och ändra och ersätta delar av det. Med CSS-selektorer som utgångspunkt kan du med jQuery snabbt radera alla stycken, lägga till händelsehanterare och skapa AJAX-funktionalitet.

Det går att använda jQuery för mer än att skriva JavaScript-kod till moduler och teman. Då jQuery laddas för så gott som varenda sida Drupal genererar finns jQuery-objektet alltid tillgängligt. Med Firebugs konsol kan du enkel köra jQuery-kod på vilken sida som helst på din drupalsajt. Testa att med Firefox 3 och Firebug installerat gå till admin/build/modules och skriva detta i Firebugs konsol och trycka på Enter:

$('input:not(:checked)').click();

Vips har varje modul som förut inte var ikryssad blivit ikryssad!

Du kan också göra det motsatta, kryssa ur varje modul som förut var ikryssad:

$('input:checked').click();

Vill du aktivera eller inaktivera en hel grupp med moduler går det också, förutsatt att de har något gemensamt. Du kan t ex kryssa i alla moduler som har med Views att göra förusatt att alla modulernas namn börjar på views så här:

$('input[id^="edit-status-views"]:not(:checked)').click(); $('input[id^="edit-status-views"]:checked').click();

Att använda jQuery på detta sätt är möjligt överallt i Drupal och inte bara på administrationssidan för moduler.

Nackdelen med detta knep är det kräver att man håller tungan rätt i mun när man skriver jQuery-koden som kan bli ganska komplex om man har avancerade sökkriterier. Om chansen är stor att man gör detta ofta kan det också vara enklare att installera en modul som tillhandahåller samma funktionalitet. Att använda jQuery på detta sätt fungerar dock utmärkt om man inte kan installera någon av de moduler som förenklar t ex hantering av moduler.

Rulla inte i onödan

Medan vi fortfarande är kvar på admin/build/modules tänkte jag dela med mig av ett annat knep. Detta fungerar i de flesta webbläsare och bygger på att kryssrutor får fokus när man klickar på dem. Vi utnyttjar det faktum att om ett fält i ett formulär har fokus när man trycker på Enter kommer formuläret att skickas. När du kryssat för en eller flera moduler, se till att en av kryssrutorna förblir markerad (har fokus), vilket indikeras av ljusare färg eller att den lyser, och tryck sedan på Enter. Då kommer dina val att sparas direkt utan att du slipper rulla ned till slutet av sidan och klicka på knappen "Save configuration".

Gruppera moduler

Modulen Administration Menu har en trevlig funktion som grupperar dina moduler på typ. Gå till admin/settings/admin_menu och kryssa för 'Collapse fieldsets on modules page'. Nu kommer din modulsida att se betydligt renare ut!

Skift i kombination

Som du antagligen märkt vid det här laget har Drupals administrationssidor gott om kryssrutor. Det blir ganska mycket kryssande med andra ord. På en del sidor finns dold stöd-funktionalitet som förenklar kryssandet avsevärt. När du administrerar innehåll (admin/content/node) behöver du inte kryssa för varje nod manuellt utan du kan kryssa för en nod i toppen av sidan, hålla inne Skift-tangenten och sedan kryssa för en nod i slutet. Kryssrutorna mellan de två du kryssade för kommer automatiskt att kryssas i. Detta är möjligt tack vare att Drupal har JavaScript-kod som förenklar hanteringen av kryssrutor i formulär. Det funkar dock inte för alla formulär i Drupal.

Drush - kommandopromptens återkomst

Om du vill bli riktigt effektiv när du administrerar din drupalsajt ska du ta dig en titt på Drush, The Drupal Shell. Ordet shell är benämningen på användargränssnittet för ett operativsystem, vanligtvis ett textbaserat sådant såsom bash (Born Again Shell) för operativsystem i Unix-familjen.

Med Drush hjälp kan du genom kommandon installera och avinstallera moduler och köra SQL-frågor mot din drupaldatabas. Läs mer om Drush.