Vecka 06, Måndag 6 Februari 2012 Prenumerera

Arkiv för januari, 2009

Bläddra i WordPress PHP-kod online

fredag, 30 januari, 2009

Det är ibland väldigt smidigt att få ett bra gränssnitt att se kod i, som det för WordPress källkod som går att surfa runt i online. Länkar och lite info skapas om alla funktioner, inte bara från kodens kommentarer utan man kan också snabbt se alla platser en funktion anropas från och vilka filer.

Surfa i WordPress PHP-kod

Surfa i WordPress PHP-kod

Bara nyckelord i WordPress permalänkar

torsdag, 29 januari, 2009

På sidan www.open-source-editor.com har jag valt att använda bara nyckelord i permalänkarna (webbadresserna) till WordPress, istället för datum. Genom att gå in i Admin, på Inställningar / Permalänkar har jag valt Anpassade inställningar (Custom Structure om du har engelsk blogg) och formatet /%category%/%postname%.html

  • Standardinställing ger länkar i stilen minblogg.com/?p=34. Det går förstås lyckas bra ändå, se till exempel Johnnys blogg (tips till Johnny, ändra permalänkar ;) )
  • De flesta ställer in permalänkar till första valet, då blir det minblogg.com/2007/01/29/mitt-inlagg/ , det är det enklaste att välja i inställningarna.
  • Några väljer det andra alternativet, med bara år och månad. Då blir det minblogg.com/2007/01/mitt-inlagg/
  • Den varianten jag gjorde på www.open-source-editor.com ger resultatet minblogg.com/min-kategori/mitt-inlagg.html , vilket jag tror är mer sökmotorvänligt om man arbetar med nyckelord.

En förutsättning för att jobba med permalänkar är att du kan spara en så kallad .htaccess-fil på servern där sidan ligger, eller att WordPress-skriptet har filrättiigheter att göra detta åt dig. WordPress ger dig instruktioner om hur du fixar detta när du ändrat strukturen. Kan inte WordPress skapa filen åt dig så du får en text att kopiera in. Använder som jag Mac eller Linux är .htaccess-filen en dold fil, du måste se till att ditt operativsystem visar dolda filer.

Första PHP-kursen startar 16 februari

onsdag, 28 januari, 2009

Den första PHP-kurs på distans vi kör startar 16 februari 2009. Kostnad blir 2 595 kr exkl moms för en kursplats på 4 veckor. Du behöver ha förkunskaper i HTML/CSS, ha tillgång till dator med internetuppkoppling. Kursen drivs på 100% distans via www.kurswebben.se. Vill du veta mer, fråga gärna.

Möjligheter utöver PHP-kunskap
En tanke som jag haft är att samtidigt försöka bygga ett litet nätverk av utvecklare, ge möjlighet att under kursen marknadsföra sig på den här bloggen och på www.kurswebben.se (eller internationellt på vår kommande www.open-source-editor.com). På Kurswebben kommer också en del gratiskurser dyka upp som man kan använda parallellt med PHP-kursen (WordPress-kurs m.m.) Man kan också delta i våra opensource projekt som XodaGallery som vi har på SourceForge.net

Anmäl dig till kursstarten i PHP den 16 februari

Funktion för att kontrollera indata lättare i PHP-skript

söndag, 18 januari, 2009

Det här är en simpel funktion för att kolla indata som är numeriska id. Småsak att göra, men saker som upprepas är det bra att samla i funktioner.

En återkommande uppgift när jag gör skript är att kolla indata som skickas, t.ex. ett id som skickas i adressraden. För att kontrollera sådant i PHP använder man if-satser, men man (jag) vill inte göra en massa sådana, utan så kort kod som möjligt. Då händer det att jag använder en förkortningsmetod som heter ternary operator. Jag ska visa hur ternary operator ser ut, först en vanlig if-sats för att kontrollera indata ”id” som finns i adressen:

<?php
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
	$mitt_id = $_GET['id'];
} else {
	$mitt_id = false;
}
?>

Vi förkortar det med ternary operator, (i pseudokod if this is true ? do this : or else;) :

<?php
$mitt_id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? $_GET['id'] : false;
?>

Det ser lite rörigt ut om man inte är van, det gör koden svårläst och kan ställa till det ibland. Så jag har skapat den här funktionen för att korta ned det ytterligare.

<?php
/**
 * Checks a valued and returns it if it's a numeric
 * or $default_return if it is not a numeric.
 * @param string $input			The name of GET|POST-value to check
 * @param mixed $default_return	What to return if $input is not numeric
 * @param bool $use_post		Check in POST instead of GET
 * @return mixed
 */
 function get_if_numeric($input, $default_return = false, $use_post = false) {
	if ($use_post) {
		$input = isset($_POST[$input]) ? $_POST[$input] : false;		
	} else {
	 	$input = isset($_GET[$input]) ? $_GET[$input] : false;
	}
 	return is_numeric($input) ? $input : $default_return;
 }
?>

Nu kan jag anropa funktionen i min kod väldigt enkelt:

<?php
$mitt_id = get_if_numeric('id');
?>

Smidigt! :)

Formatera datum i WordPress

fredag, 16 januari, 2009

Jag fick en fråga idag hur man ändrar datumet i WordPress-teman. Det är ganska smidigt, WordPress funktioner the_date() och the_time() använder formatet från PHP-funktionen date(). Det betyder att du kan ändra datumets format med hjälp av olika tecken, som finns listade i en tabell i dokumentationen.

Datum finns oftast utspridda lite överallt i temafilerna. Öppna dem i en texteditor och leta reda på the_date(). Testa att ändra till

<?php
the_date('Y-m-d');
?>

Det borde ge datumformatet 2009-01-16. Y stå för år, m för månad och d för dag. Bindestrecken skrivs ut som just bindestreck. Det här går precis lika bra att använda i ditt eget kodande med funktionen date(). Skapa ett PHP-skript och laborera med olika teckenkombinationer. Här skriver jag ut datum och tid:

<?php
echo date('Y-m-d H:i:s');
?>

Enkel slumpning av array

tisdag, 13 januari, 2009

Om du ska slumpa fram innehåll i en array så kan det här vara ett bra litet skript. Jag har bland annat använt det för att välja en vinnare i Xodas bildutmaning.

<?php
// Jag skapar en array med de värden vi vill använda
$input = array("Malin", "Magnus", "Terje", "TomasJ1", "TomasJ2", "Stefan", "Johnny", "Calandrella");
 
// Jag slumpar sedan fram numret på ett av värden i arrayen
// med PHPs inbyggda funktion array_rand()
$rand_key = array_rand($input);
 
// Jag skriver ut det slumpade värdet i arrayen. Jag känner inte till
// värdet utan får använda varibeln från rad 7.
echo $input[$rand_key];
 
// Svårare än så behöver det inte vara, men det beror lite på vad du 
// vill slumpa fram. För lösenord och liknande berhöver man göra 
// mer avancerade saker.
?>

Flexibel config.php-fil för webbapplikationer

tisdag, 6 januari, 2009

Vill du ha alla dina webbplatser installerade lokalt OCH på webbhotell? Då kan du göra det enkelt med en flexibel config.php för webbapplikationer som WordPress, Moodle, PHPBB3, XodaGallery etc.

Din lokala testserver och webbhotellets server har ofta olika kontoinställningar och gör att du inte kan spara över konfigurationsfilen hur som helst.

Jag använder metoden nedan för att slippa joxa med flera konfigurationsilfer, så kan jag bara skriva över dem fram och tillbaka med mitt FTP-program utan att det gör något. Test att köra följande i en PHP-fil på ditt webbhotell och på din egen server:

<?php echo $_SERVER['SERVER_NAME']; ?>

Förhoppningsvis får du ”localhost” på egen server och liknande ”www.domänen.se” på ditt webbhotell. Du kan använda server-värdet och en if-sats i config.php för att använda olika kontonamn beroende på var filen körs. Här ett exempel med variabeln för databasvärd i WordPress config.php:

if ($_SERVER['SERVER_NAME'] == 'www.domänen.se') {
    define('DB_HOST', 'mysql.domänen.se');
} else {
    define('DB_HOST', 'localhost');
}

Du behöver förstås byta ut ”domänen.se” ovan med ditt eget domännamn. Gör också ett test för att se resultatet av $_SERVER['SERVER_NAME'] också, servrar kan ha olika inställningar.

Starten på en kursblogg

söndag, 4 januari, 2009

Inför vår start av en PHP-kurs 2009 har jag köpt domänen phpkurs.se och startat den här kursbloggen. PHP-kursen kommer fortfarande köras på vår studieplattform www.kurswebben.se men på den här bloggen finns plats för marknadsföring av kursen och eleverna, skriva och informera om dess utveckling, kasta ut idéer och saker som kanske inte passar inom kursen. Ja, idéerna är många. Vi planerar att köra igång första gången i början av februari så det går snabbt i svängarna här.

Inom en snar framtid kommer du kunna anmäla dig till kursen.

Raketstart!

Raketstart!