Etikettarkiv: kodsnuttar

Förenkla ägande av utvecklingssiter

Jag kan inte vara den enda som arbe­tar med Word­Press och blir litet smått irri­te­rad på att behö­va fyl­la i FTP-upp­gif­ter, och fram­för allt om man arbe­tar lokalt så finns det ing­en FTP. Det man kan göra är att se till så att använ­da­ren som webb­lä­sa­ren använ­der (i många fall www-data) är äga­re och grupp till alla filer.

Det­ta är ju jät­te­bra, tills man 1) Inser att den nya temp­la­ten man ska­pat ägs av ens egen använ­da­re och/eller 2) Man inte läng­re kan änd­ra filer. Lös­ning­en är enkel.

Först, se till så att du till­hör grup­pen som webb­lä­sa­ren använ­der (här för­ut­satt att vara www-data).

Ctrl+Alt+T för att få upp ter­mi­na­len, och sedan

sudo usermod -a -G www-data <user>

Note­ra: Star­ta om datorn efteråt.

För att kon­trol­le­ra så att grup­pen är tillagd, skriv groups <user> i ett ter­minal­föns­ter.

Nu behövs två kom­man­don för att få det­ta att fun­ge­ra. Först, rekur­sivt ägan­de av den spe­ci­fi­ka map­pen. OBS: kom­man­do­na här (chown and chmod) kan ska­da din dator om du inte är för­sik­tig. Se till så att map­pen som du änd­rar är exakt den map­pen som ska änd­ras, inte någon­ting annat. Du behö­ver anting­en vara inlog­gad som root eller använ­da sudo för att köra des­sa kom­man­don, av den anled­ning­en.

Först:

chown -R www-data:www-data /home/user/folder

  1. chown — change file owner and group (änd­ra filä­ga­re och grupp), se man chown för detal­jer
  2. -R — Rekur­sivt
  3. <owner>:<group>, i det­ta fall www-data:www-data
  4. Sök­vä­gen till map­pen. Om du inte är inlog­gad som rot kan du använ­da ~/folder om den lig­ger i din hem­mapp. Stan­dard­plats bru­kar vara /var/www/<någonting>

Nu “ägs” filen av www-data, vil­ket leder till den and­ra modi­fi­ka­tio­nen, som nog inte bör lig­ga på live: Grup­pen ska kun­na skri­va till filer­na ock­så:

chmod -R g+w /home/user/folder

  1. chmod — change file mode bits (änd­ra filens typ­vär­des­bi­tar). På ren svens­ka: Änd­ra filens tillå­tel­ser, se man chmod för detal­jer
  2. g+w — Lägg till skriv­rät­tig­he­ter (w, wri­te) till grup­pen. And­ra vär­den är u=user, a=all, använd - för att ta bort rät­tig­he­ter. And­ra rät­tig­he­ter är r=read och x=execute

Bashscript

Jag är lat och har trött­nat på att skri­va des­sa kom­man­don var­je gång, så här kom­mer mitt bash­script, spa­rat i ~/bin som www-permissions.sh. Det körs med ./bin/www-permissions.sh /sökväg/till/mappen/som/ska/ändras

#!/bin/bash
# Small script to chown and chmod a folder to www-data
DIR=$1

sudo chmod -R g+w ${DIR} && sudo chown -R www-data:www-data ${DIR}

För att det ska kun­na köras, använd kom­man­dot chmod +x ~/bin/www.permissions.sh

Kodsnuttar för WordPress

Om ing­et annat sägs så kan des­sa anting­en skrivas/kopieras in i ditt temas functions.php eller för den delen använ­das som en del av en plu­gin. I de fles­ta fal­len är kod­snut­tar­na såda­na som jag anting­en har hit­tat någon­stans och vida­re­ut­veck­lat, eller löst eftersom jag hade ett behov som behöv­de fyl­las. De är inte, i de fles­ta fall, skriv­na som helt kom­plet­ta, utan är till för inspi­ra­tion och vida­re­ut­veck­lan­de.

Stöd IE6 Shaming

Som nog de fles­ta vet finns det en hel del debatt om IE6 och fak­tu­met att IE6 fort­fa­ran­de finns där ute.

Det­ta är en liten funk­tion base­rad på Roots hea­der. Jag använ­der den med en kon­stant för huruvi­da den ska akti­ve­ras eller inte.

function melindrea_supportIE6Shaming()
{
    ?><!--[if lt IE 7]><div class="alert">Your browser is <em>ancient!</em> <a href="http://browsehappy.com/">
    Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">
    install Google Chrome Frame</a> to experience this site.</div><![endif]-->
    <?php
}

Avregistrera CSS för adminbar

Admin­ba­rens vara eller inte vara ver­kar vara hett omde­bat­te­rad. Över­lag tyc­ker jag om den, men har känt ett behov av att kun­na änd­ra den (Word­Press, Y U NO make admin bar respon­si­ve?).

Själ­va koden är enkel: wp_deregister_style('admin-bar');

Om man bara vill änd­ra den i fron­tend eller bac­kend bör man läg­ga den i en if-sats, anting­en !is_admin() (fron­tend) eller is_admin() (bac­kend).