<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fredrik Malmgren &#187; Utveckling</title>
	<atom:link href="http://fredrikmalmgren.se/kategori/utveckling/feed/" rel="self" type="application/rss+xml" />
	<link>http://fredrikmalmgren.se</link>
	<description>Allt inom webb och mobilt</description>
	<lastBuildDate>Wed, 30 Jun 2010 21:29:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Idag fyller Wordpress 7 år!</title>
		<link>http://fredrikmalmgren.se/2010/05/idag-fyller-wordpress-7-ar/</link>
		<comments>http://fredrikmalmgren.se/2010/05/idag-fyller-wordpress-7-ar/#comments</comments>
		<pubDate>Thu, 27 May 2010 19:20:30 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[Allmänt]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1411</guid>
		<description><![CDATA[
Idag för 7 år sedan skrev Matt Mullenweg (@photomatt) ett inlägg på Wordpress.org med rubriken WordPress Now Available. Första releasen var version 0.7 och sedan dess har mycket hänt. Nu väntar alla på version 3.0 som inte är långt ifrån att släppas.
Wordpress har under åren som gått utvecklats från en plattform för bloggar till att [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://fredrikmalmgren.se/wp-content/uploads/2010/05/wordpress-logo.png"><img class="size-full wp-image-1418 alignnone" title="Wordpress logo" src="http://fredrikmalmgren.se/wp-content/uploads/2010/05/wordpress-logo.png" alt="Wordpress logo" width="499" height="113" /></a></p>
<p>Idag för 7 år sedan skrev <a title="Matt Mullenweg - aka Photo Matt - on WordPress, Web, Jazz, Life, and Photography" href="http://ma.tt/" target="_blank">Matt Mullenweg</a> (<a title="Matt Mullenweg on Twitter" href="http://twitter.com/photomatt" target="_blank">@photomatt</a>) ett inlägg på Wordpress.org med rubriken <a title="WordPress &gt; Blog &gt; WordPress Now Available" href="http://wordpress.org/development/2003/05/wordpress-now-available/" target="_blank">WordPress Now Available</a>. Första releasen var version 0.7 och sedan dess har mycket hänt. Nu väntar alla på version 3.0 som inte är långt ifrån att släppas.</p>
<p><a title="WordPress &gt; Blog Tool and Publishing Platform" href="http://wordpress.org/" target="_blank">Wordpress</a> har under åren som gått utvecklats från en plattform för bloggar till att även fungera utmärkt som CMS för göra sajter. Innan jag fick upp ögonen för Wordpress använde jag uteslutande <a title="Joomla!" href="http://www.joomla.org/" target="_blank">Joomla</a> men har nu nästan helt gått över till Wordpress.</p>
<p>Har du inte testat Wordpress än rekommenderar jag verkligen att du ger det en chans, du kommer inte att ångra dig.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/05/idag-fyller-wordpress-7-ar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial – Skapa ett plugin för dina shortcodes i Wordpress</title>
		<link>http://fredrikmalmgren.se/2010/05/tutorial%e2%80%93skapa-ett-plugin-for-dina-shortcodes-i-wordpress/</link>
		<comments>http://fredrikmalmgren.se/2010/05/tutorial%e2%80%93skapa-ett-plugin-for-dina-shortcodes-i-wordpress/#comments</comments>
		<pubDate>Tue, 11 May 2010 07:29:13 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1338</guid>
		<description><![CDATA[En väldigt användbar funktion som kom i Wordpress 2.5 är shortcodes. Det är en liten kod som man skriver in i sin editor och när posten visas på bloggen tolkas koden och innehållet skrivs ut i bloggposten. Detta kan man till exempel använda för att placera annonser från Google Adsense mitt i en post. Läs [...]]]></description>
			<content:encoded><![CDATA[<p>En väldigt användbar funktion som kom i Wordpress 2.5 är shortcodes. Det är en liten kod som man skriver in i sin editor och när posten visas på bloggen tolkas koden och innehållet skrivs ut i bloggposten. Detta kan man till exempel använda för att placera annonser från Google Adsense mitt i en post. Läs min tutorial för <a title="Tutorial – Skriv egna shortcodes till  Wordpress" href="../2010/04/tutorial%E2%80%93skriv-egna-shortcodes-till-wordpress/" target="_blank">hur man skriver egna shortcodes till Wordpress</a> om du vill veta med om shortcodes.</p>
<h2>Vad är fördelen med att lägga shortcodes i en plugin?</h2>
<p>Det vanligaste är att man lägger sina shortcodes i functions.php som finns i de flesta teman. De uppenbara nackdelarna med detta är att när man uppdaterar eller byter ut sitt tema och glömmer att kopiera över sina shortcodes till det nya temat kommer dessa att försvinna.</p>
<p>Lösningen på detta är att skapa ett plugin där man lägger alla sina shortcodes. På detta sätt blir de tillgängliga oberoende vilket tema du använder. Det är också väldigt lätt att flytta dem till andra bloggar.</p>
<h2>Hur gör man ett plugin för sina shortcodes?</h2>
<p>Börja med att skapa en fil som heter shortcodes.php. För att det ska gå att aktivera ett plugin i Wordpress måste följande rader finnas.</p>
<pre class="brush: php;">
&lt;?php
/*
Plugin Name: Name Of The Plugin
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: The Plugin's Version Number, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
*/
?&gt;
</pre>
<p>Nu när grunden är klar återstår det bara att lägga in alla shortcodes du vill använda.</p>
<p>Så här kan ett färdigt plugin se ut med en shortcode som skriver ut Hello World.</p>
<pre class="brush: php;">
&lt;?php
/*
Plugin Name: My plugin for shortcodes
Plugin URI: http://fredrikmalmgren.se/2010/05/tutorial–skapa-ett-plugin-for-dina-shortcodes-i-wordpress
Description: This is a plugin for all my shortcodes to separate them from my theme
Version: 1.0
Author: Fredrik Malmgren
Author URI: http://fredrikmalmgren.se
*/

function hello() {
 return 'Hello, World!';
}
add_shortcode('hw', 'hello');

?&gt;
</pre>
<p>Lägg sedan denna fil i wp-content/plugins. När du gjort det borde du kunna se något liknande i Wordpress under Plugins.</p>
<div id="attachment_1339" class="wp-caption alignnone" style="width: 560px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2010/05/wordpress-plugin-for-shortcodes.jpg"><img class="size-full wp-image-1339" title="Wordpress plugin för shortcodes" src="http://fredrikmalmgren.se/wp-content/uploads/2010/05/wordpress-plugin-for-shortcodes.jpg" alt="Wordpress plugin för shortcodes" width="550" height="72" /></a><p class="wp-caption-text">Wordpress plugin för shortcodes</p></div>
<p>För att kunna börja använda sina shortcodes är det bara att man aktiverar sitt plugin.</p>
<p>Att göra ett plugin som endast ska användas för eget bruk ställer inte samma krav som ett plugin som man ska publicera i Wordpress plugin directory. Vill man göra ett plugin som ska publiceras krävs <a title="How to Add Your Plugin to the WordPress Plugin Directory | Digging into WordPress" href="http://digwp.com/2010/03/add-plugin-to-wordpress-plugin-repository/" target="_blank">en del andra saker</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/05/tutorial%e2%80%93skapa-ett-plugin-for-dina-shortcodes-i-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial – Skriv egna shortcodes till Wordpress</title>
		<link>http://fredrikmalmgren.se/2010/04/tutorial%e2%80%93skriv-egna-shortcodes-till-wordpress/</link>
		<comments>http://fredrikmalmgren.se/2010/04/tutorial%e2%80%93skriv-egna-shortcodes-till-wordpress/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 08:09:40 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[google adsense]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1245</guid>
		<description><![CDATA[I Wordpress 2.5 introducerades en funktion som kallas shortcodes. Om du någon gång har velat lägga in AdSense annonser mitt i en bloggpost eller till exempel visas din page rank kan du helt enkelt skriva [adsense] eller [pagerank] direkt i bloggposten där du vill visa det aktuella innehållet.
Vad är shortcodes?
Det finns tre grundtyper av shortcodes. [...]]]></description>
			<content:encoded><![CDATA[<p>I Wordpress 2.5 introducerades en funktion som kallas shortcodes. Om du någon gång har velat lägga in AdSense annonser mitt i en bloggpost eller till exempel visas din page rank kan du helt enkelt skriva [adsense] eller [pagerank] direkt i bloggposten där du vill visa det aktuella innehållet.</p>
<h2>Vad är shortcodes?</h2>
<p>Det finns tre grundtyper av shortcodes. Den enklaste varianten är att man endast skriver följande i sin bloggpost:</p>
<pre class="brush: php;">[adsense]</pre>
<p>Ovan version ger inget utrymme för val av till exempel storlek på annonsen. Vill man kunna välja storlek kan man lägga till en parameter:</p>
<pre class="brush: php;">[adsense format=1]</pre>
<p>Ovan version ger dig en AdSense annons med till exempel bredden 468 pixlar. Den sista typen är när man vill lägga till eget innehåll. Så här kan det se ut när man skapar en AdSense annons med en rubrik:</p>
<pre class="brush: php;">[adsense format=1]Annons:[/adsense]</pre>
<p>Dessa koder skriver man helt enkelt in i sin editor där man vill att de ska bli synliga. När sedan en besökare läser din bloggpost kommer denna shortcode att översättas och den bakomliggande funktionen körs och visar innehållet i bloggposten.</p>
<h2>Hur skapar man shortcodes?</h2>
<p>Att skapa en shortcode är väldigt enkelt. Kan du skriva lite PHP har du stora möjligheter att skapa användbara shortcodes som kommer att spara mycket tid åt dig.</p>
<p>Först skapar vi den enklaste versionen av shortcode:</p>
<pre class="brush: php;">[adsense]</pre>
<p>I detta fall finns det bara en typ av annons man kan välja på.</p>
<p>Börja med att öppna filen functions.php som ligger i ditt tema. Finns den inte kan du skapa den. Efter det skriver du in följande kod:</p>
<pre class="brush: php;">function add_adsense() {
return '&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-XXXXXXXXXXXXXX&quot;;
google_ad_slot = 'XXXXXXXXXX';
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;';
}</pre>
<p>Nu när funktionen är klar måste vi berätta för Wordpress att det är en shortcode och det gör vi med följande rad:</p>
<pre class="brush: php;">add_shortcode('adsense', 'add_adsense');</pre>
<p>Den första parametern är vad du skriver i din bloggpost för att använda din shortcode och den andra är funktionens namn i functions.php</p>
<p>Om man vill använda sig av flera olika storlekar på annonser kan man lägga till en parameter som anger format. Då får man istället en shortcode som ser ut så här:</p>
<pre class="brush: php;">[adsense format =1]</pre>
<p>I functions.php skriver man istället följande:</p>
<pre class="brush: php;">function add_adsense( $atts ) {
extract(shortcode_atts(array(
'format' =&gt; '1',
), $atts));
switch ($format) {
case 1 :
$ad = ' &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-xxxxxxxxxxxxxxxx&quot;;
google_ad_slot = &quot;xxxxxxxxxx&quot;;
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;';
break;
case 2 :
$ad = ' &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-xxxxxxxxxxxxxxxx&quot;;
google_ad_slot = &quot;xxxxxxxxxx&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;';
break;
}
$rest = '&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;';
return $ad.$rest;

}
add_shortcode('adsense', 'add_adsense');</pre>
<p>Vill man lägga till flera annonstyper är det bara att lägga till fler case i koden ovan.<br />
Om man vill bygga på sin shortcode ytterligare kan man välja att lägga till extra innehåll i form av en text som talar om att det är en annons på följande sätt.</p>
<pre class="brush: php;"> [adsense format=1]Annons:[/adsense]</pre>
<p>I vår functions.php skriver vi då följande kod:</p>
<pre class="brush: php;">function add_adsense( $atts, $content = null ) {
extract(shortcode_atts(array(
'format' =&gt; '1',
), $atts));
switch ($format) {
case 1 :
$ad = ' &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-xxxxxxxxxxxxxxxx&quot;;
google_ad_slot = &quot;xxxxxxxxxx&quot;;
google_ad_width = 468;
google_ad_height = 60;
//--&gt;
&lt;/script&gt;';
break;
case 2 :
$ad = ' &lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-xxxxxxxxxxxxxxxx&quot;;
google_ad_slot = &quot;xxxxxxxxxx&quot;;
google_ad_width = 300;
google_ad_height = 250;
//--&gt;
&lt;/script&gt;';
break;
}
$rest = '&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;';

return = '&lt;strong&gt;'.$content. '&lt;/strong&gt;&lt;br/&gt;'.$adsense.$rest;

}
add_shortcode('adsense', 'add_adsense');</pre>
<p>Det var tre exempel på olika typer av shortcodes man kan använda för att lägga till annonser från Google AdSense mitt i en bloggpost. Glöm inte bort att byta ut AdSense koden till din egen.</p>
<p>Läs mer om <a title="Shortcode API &lt;&lt; WordPress Codex" href="http://codex.wordpress.org/Shortcode_API" target="_blank">Wordpress shortcodes API﻿</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/04/tutorial%e2%80%93skriv-egna-shortcodes-till-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tutorial &#8211; Använd miniatyrbilder i Wordpress</title>
		<link>http://fredrikmalmgren.se/2010/03/tutorial-anvand-miniatyrbilder-i-wordpress/</link>
		<comments>http://fredrikmalmgren.se/2010/03/tutorial-anvand-miniatyrbilder-i-wordpress/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 07:42:49 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1035</guid>
		<description><![CDATA[Många teman som ser ut som en tidningar eller magasin har länge använt sig av en bild för varje post på startsidan. Hittills har det inte funnits något standardiserat sätt att göra detta på utan man har ofta använt sig av custom fields för att åstadkomma detta. Sedan Wordpress 2.9 finns en funktion som gör [...]]]></description>
			<content:encoded><![CDATA[<p>Många teman som ser ut som en tidningar eller magasin har länge använt sig av en bild för varje post på startsidan. Hittills har det inte funnits något standardiserat sätt att göra detta på utan man har ofta använt sig av custom fields för att åstadkomma detta. Sedan Wordpress 2.9 finns en funktion som gör att man kan ladda upp en miniatyrbild (thumbnail på engelska) till varje post eller sida.<br />
De flesta teman som använder miniatyrbilder för posterna och som är gjorda för Wordpress 2.9 använder troligtvis redan denna funktion. Skulle du hitta ett tema som inte gör det är det ingen katastrof. Det är nämligen väldigt lätt att själv lägga till denna funktion i temat.</p>
<h2>Aktivera ministyrbilder i Wordpress</h2>
<p>Det första man måste göra är att aktivera funktionen för miniatyrbilder. Man kan välja på om man vill aktivera det för både poster och sidor eller bara för någon av dem. Lägg till någon av följande rader i functions.php beroende på hur du vill göra.</p>
<pre class="brush: php;">add_theme_support( 'post-thumbnails' ); // post och sida
add_theme_support( 'post-thumbnails', array( 'post' ) ); // endast post
add_theme_support( 'post-thumbnails', array( 'page' ) ); // endast sida </pre>
<p>Nästa steg är att ange storleken för dina miniatyrbilder, även det i functions.php. Här har man lite olika val både när det gäller storleken på bilderna men även hur man ska beskära bilden. Det enklaste fallet är att ange miniatyrbilder enligt följande.</p>
<pre class="brush: php;"> set_post_thumbnail_size( 100, 100 );</pre>
<p>Detta betyder att bilder är i storlek 100&#215;100 pixlar och bilden förminskas tills den får plats inom angiven storlek. Anger man istället följande så betyder det att man beskär bilden i angiven storlek.</p>
<pre class="brush: php;"> set_post_thumbnail_size( 100, 100, true );</pre>
<p>Det kan finnas tillfällen då man vill använda samma bild fast i en annan storlek på till exempel sidan som visar hela posten (single.php). Detta gör man genom att ange fler storlekar på detta sätt i functions.php.</p>
<pre class="brush: php;"> add_image_size( 'single-post-thumbnail', 400, 9999 );</pre>
<h2>Visa miniatyrbilder på sajten</h2>
<p>För att sedan visa miniatyrbilderna i home.php eller index.php anger man följande kod.</p>
<pre class="brush: php;">&lt;?php the_post_thumbnail(); ?&gt;</pre>
<p>För att visa bilder på single.php i den större storleken anger man följande.</p>
<pre class="brush: php;">&lt;?php the_post_thumbnail( 'single-post-thumbnail' ); ?&gt;</pre>
<h2>Stöd tidigare versioner av Wordpress</h2>
<p>Om man utvecklar ett tema som man planerar att publicera kan man lägga till funktioner som kontrollerar vilken version av Wordpress man använder och om inlägget verkligen har en miniatyrbild. Ange följande kod i function.php för att kontrollera vilken version av Wordpress du använder. Använder man version 2.9 eller nyare aktiverar man funktionen för miniatyrbilder.</p>
<pre class="brush: php;">if ( function_exists( 'add_theme_support' ) ) { // Från och med 2.9
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 100, 100, true ); // index.php eller home.php
add_image_size( 'single-post-thumbnail', 400, 9999 ); // single.php
}</pre>
<p>För att kontrollera om en post innehåller en miniatyrbild anger man följande.</p>
<pre class="brush: php;">if ( has_post_thumbnail() ) {
the_post_thumbnail(); // posten har en miniatyrbild
} else {
// posten saknar en miniatyrbild
}</pre>
<h2>Använd CSS med dina thumbnails</h2>
<p>Vill man använda CSS tillsammans med sina miniatyrbilder kan man såklart göra det.</p>
<pre class="brush: php;">the_post_thumbnail('single-post-thumbnail', array('class'=&gt;'thumbnail')); </pre>
<h2>Hur fungerar det för användare?</h2>
<p>Efter att ha gått igenom hur man aktiverar miniatyrbilder i sitt tema ska vi kolla på hur det fungerar när man väl skriver inlägg i sin blogg eller på sin webbsida.</p>
<p>Har man gjort allt ovanstående och går till sidan där man skriver sina inlägg så ser man följande box där man kan ladda upp en miniatyrbild.</p>
<div id="attachment_1167" class="wp-caption alignnone" style="width: 454px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2010/03/post-set-thumbnail.png"><img class="size-full wp-image-1167   " title="Post Set Thumbnail" src="http://fredrikmalmgren.se/wp-content/uploads/2010/03/post-set-thumbnail.png" alt="Post Set Thumbnail" width="444" height="297" /></a><p class="wp-caption-text">Ladda upp en miniatyrbild</p></div>
<p>Om man klickar på Set thumbnail i bilden ovan så kommer man till den vanliga bilduppladdningen i Wordpress men nu så har man fått ytterligare ett val att använda bilden som miniatyrbild (thumbnail).</p>
<div id="attachment_1175" class="wp-caption alignnone" style="width: 485px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2010/03/use-as-thumbnail.png"><img class="size-full wp-image-1175  " title="Use As Thumbnail" src="http://fredrikmalmgren.se/wp-content/uploads/2010/03/use-as-thumbnail.png" alt="Use As Thumbnail" width="475" height="263" /></a><p class="wp-caption-text">Använd som miniatyrbild</p></div>
<p>När detta är gjort så ser man den uppladdade bilden direkt på sidan.</p>
<div id="attachment_1178" class="wp-caption alignnone" style="width: 445px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2010/03/preview-post-thumbnail.png"><img class="size-full wp-image-1178  " title="Preview Post Thumbnail" src="http://fredrikmalmgren.se/wp-content/uploads/2010/03/preview-post-thumbnail.png" alt="Preview Post Thumbnail" width="435" height="456" /></a><p class="wp-caption-text">Förhandsgranska inläggets miniatyrbild</p></div>
<p>Svårare än så är det inte att aktivera miniatyrbilder i sitt tema och att använda funktionen när man skriver inlägg på sin blogg.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/03/tutorial-anvand-miniatyrbilder-i-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utöka minnet för Wordpress</title>
		<link>http://fredrikmalmgren.se/2010/03/utoka-minnet-for-wordpress/</link>
		<comments>http://fredrikmalmgren.se/2010/03/utoka-minnet-for-wordpress/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 07:40:55 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=1103</guid>
		<description><![CDATA[Ibland när man uppdaterar Wordpress eller installerar ett stort plugin så kan Wordpress behöva använda mer minne än de 32 MB som är satt som standard. Detta hände mig när jag uppdaterade till 2.9.2. Om man råkar ut för detta kan man testa att utöka minnet på lite olika sätt beroende på vilket webbhotell man [...]]]></description>
			<content:encoded><![CDATA[<p>Ibland när man uppdaterar Wordpress eller installerar ett stort plugin så kan Wordpress behöva använda mer minne än de 32 MB som är satt som standard. Detta hände mig när jag uppdaterade till 2.9.2. Om man råkar ut för detta kan man testa att utöka minnet på lite olika sätt beroende på vilket webbhotell man använder.</p>
<ol>
<li>Om du har tillgång till php.ini, kan man ändra följande rad till 64M istället för 32M</li>
<pre class="brush: plain;">memory_limit = 64M;</pre>
<li>Om du inte har tillgång till php.ini, kan man lägga till följande rad till sin .htaccess</li>
<pre class="brush: plain;">php_value memory_limit 64M</pre>
<li>Ett annat alternativ är att lägga till följande rad till sin wp-config.php</li>
<pre class="brush: plain;">define('WP_MEMORY_LIMIT', '64M');</pre>
<li>Sista alternativet är att ta kontakt med ditt webbhotell</li>
</ol>
<p>För mig fungerade lösning nummer två bra.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2010/03/utoka-minnet-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testa din mobilsajt med ready.mobi</title>
		<link>http://fredrikmalmgren.se/2009/10/testa-din-mobilsajt-med-ready-mobi/</link>
		<comments>http://fredrikmalmgren.se/2009/10/testa-din-mobilsajt-med-ready-mobi/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 08:03:37 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[Test]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[dotMobi]]></category>
		<category><![CDATA[mobileok]]></category>
		<category><![CDATA[ready.mobi]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=196</guid>
		<description><![CDATA[Jag har varit aktiv inom mobilbranschen ett flertal år nu, dels inom MobileMonday och dels på Squace. Hittills har jag inte skrivit så mycket om mobilbranschen eller om mobilutveckling så jag tänkte börja lite smått med det nu.
När man utvecklar för webben är det viktigt att man testar sina sajter för alla olika webbläsare som [...]]]></description>
			<content:encoded><![CDATA[<p>Jag har varit aktiv inom mobilbranschen ett flertal år nu, dels inom <a title="MobileMonday.se" href="http://mobilemonday.se/" target="_blank">MobileMonday</a> och dels på <a title="Squace - Mobile social browser" href="http://www.squace.com/" target="_blank">Squace</a>. Hittills har jag inte skrivit så mycket om mobilbranschen eller om mobilutveckling så jag tänkte börja lite smått med det nu.</p>
<p>När man utvecklar för webben är det viktigt att man testar sina sajter för alla olika webbläsare som finns eftersom de beter sig lite olika. När man utvecklar sajter för mobiler är det samma sak. För att göra sin mobilsajt tillgänglig för så många mobilmodeller som möjligt är det viktigt att man följer alla de standarder och riktlinjer som finns. Ett företag som verkar för att mobilbranschen ska ta fart på allvar är <a title="dotMobi" href="http://mtld.mobi/" target="_blank">dotMobi</a> som har ett flertal sajter som handlar om mobilutveckling.</p>
<div id="attachment_787" class="wp-caption alignleft" style="width: 188px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2009/10/ready-mobi-logo.png"><img class="size-full wp-image-787" title="dotMobi compliance &amp; mobileOK checker" src="http://fredrikmalmgren.se/wp-content/uploads/2009/10/ready-mobi-logo.png" alt="dotMobi compliance &amp; mobileOK checker" width="178" height="40" /></a><p class="wp-caption-text">dotMobi compliance &amp; mobileOK checker</p></div>
<p>Företaget har utvecklat ett verktyg som heter <a title="mobiReady - dotMobi compliance &amp; mobileOK checker" href="http://ready.mobi/" target="_blank">ready.mobi</a> som kan användas för att testa hur bra en sida, en bit kod eller en hel sajt lämpar sig för mobiler. Vill man testa hela sajten på en gång måste man vara registrerad på deras sajt. Verktyget testar mot <a title="W3C mobileOK Scheme 1.0" href="http://www.w3.org/TR/mobileOK/" target="_blank">W3C mobileOK</a>, mot andra standarder och praxis inom mobilvärlden. När testet är klart får du en generell bedömning på en skala från noll till fem (där fem är bäst) men även en detaljerad rapport med förslag på förbättringar.</p>
<p>Om du utvecklar sajter för mobiler tycker jag absolut att du ska testa ready.mobi.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2009/10/testa-din-mobilsajt-med-ready-mobi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Använd INI-filer med Zend Framework och PHP</title>
		<link>http://fredrikmalmgren.se/2009/09/anvand-ini-filer-med-zend-framework-och-php/</link>
		<comments>http://fredrikmalmgren.se/2009/09/anvand-ini-filer-med-zend-framework-och-php/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 10:51:05 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[Ramverk]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=704</guid>
		<description><![CDATA[Häromdagen läste jag Baronens blogg om INI-filer och PHP så jag tänkte dela med mig av hur jag använder dessa i mina projekt. I det stora hela gör vi på samma sätt men några skillnader finns.
Eftersom jag använder Zend Framework för att implementera MVC använder mig av den inbyggda klassen Zend_Config_Ini som läser från min [...]]]></description>
			<content:encoded><![CDATA[<p>Häromdagen läste jag <a title="Så här använder du INI-filer med PHP | Andreas Eriksson - Baronen" href="http://www.baronen.org/anvand-ini-filer-med-php/" target="_blank">Baronens blogg</a> om INI-filer och PHP så jag tänkte dela med mig av hur jag använder dessa i mina projekt. I det stora hela gör vi på samma sätt men några skillnader finns.</p>
<p>Eftersom jag använder <a title="Zend Framework" href="http://framework.zend.com/" target="_blank">Zend Framework</a> för att implementera <a title="Model–view–controller - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" target="_blank">MVC</a> använder mig av den inbyggda klassen <a title="Zend_Config_Ini | Zend Framework: Documentation" href="http://framework.zend.com/manual/en/zend.config.adapters.ini.html" target="_blank">Zend_Config_Ini</a> som läser från min INI-fil. Zend_Config_Ini använder sig av  <a title="PHP: parse_ini_file - Manual" href="http://se2.php.net/parse_ini_file" target="_blank">parse_ini_file</a> som är en funktion i PHP. Min INI-fil har två sektioner, en för utveckling och en för produktion. Det fina med denna uppsättning är att sektionen ”development” kan ärva från sektionen ”production” så i &#8221;development&#8221; behöver man bara specificera skillnaden mellan dem. Så här kan en INI-fil se ut.</p>
<p><code><br />
; Production site configuration data<br />
[production]<br />
webhost                  = www.example.com<br />
database.adapter         = pdo_mysql<br />
database.params.host     = db.example.com<br />
database.params.username = dbuser<br />
database.params.password = secret<br />
database.params.dbname   = dbname</code></p>
<p><code>; Development site configuration data inherits from production and overrides values as necessary<br />
[development : production]<br />
database.params.host     = dev.example.com<br />
database.params.username = devuser<br />
database.params.password = devsecret<br />
</code></p>
<p>I min bootstrap-fil har jag definierat min INI-fil så att jag genom hela applikationen kommer åt mina inställningar. Så här kan det se ut.<br />
<code><br />
$configFile = 'config.ini';</code></p>
<p><code>$configSection = '';<br />
if (isset($_SERVER['APP_CONFIG_SECTION'])){<br />
$configSection = basename($_SERVER['APP_CONFIG_SECTION']);<br />
}</code><br />
<code>if (strlen($configSection) == 0){<br />
$configSection = 'production';<br />
}</code><br />
<code>$config = new Zend_Config_Ini('../' . $configFile, $configSection);<br />
Zend_Registry::set('config', $config);</code></p>
<p>Som ni kan se så kontrollerar jag om systemvariabeln $_SERVER['APP_CONFIG_SECTION'] är satt vilket jag bara har gjort på min utvecklingsserver. Detta är för att applikationen själv ska veta om den ligger på utvecklingsservern eller om den ligger på produktionsservern. Genom att göra på detta sätt behöver jag bara en INI-fil och jag behöver aldrig fundera över om jag läser från rätt INI-fil.</p>
<p>När jag sedan vill använda något värde från min config.ini så behövs endast följande kod:<br />
<code><br />
$config = Zend_Registry::get('config');<br />
echo $config-&gt;database-&gt;params-&gt;username;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2009/09/anvand-ini-filer-med-zend-framework-och-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Använd CSS-ramverk för att minska din utvecklingstid</title>
		<link>http://fredrikmalmgren.se/2009/08/anvand-css-ramverk-for-att-minska-din-utvecklingstid/</link>
		<comments>http://fredrikmalmgren.se/2009/08/anvand-css-ramverk-for-att-minska-din-utvecklingstid/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 11:06:59 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[Ramverk]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[Webbdesign]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=656</guid>
		<description><![CDATA[Jag har många idéer som har potential att bli väldigt användbara sajter och förhoppningsvis kan några av dem generera lite extra inkomster. Det jag tycker är roligast är konceptutveckling, att utveckla en ide till ett helt koncept med funktioner och affärsmodell. När det kommer till själva utvecklingen av sajten försöker jag göra det väldigt lätt [...]]]></description>
			<content:encoded><![CDATA[<p>Jag har många idéer som har potential att bli väldigt användbara sajter och förhoppningsvis kan några av dem generera lite extra inkomster. Det jag tycker är roligast är konceptutveckling, att utveckla en ide till ett helt koncept med funktioner och affärsmodell. När det kommer till själva utvecklingen av sajten försöker jag göra det väldigt lätt för mig och använda färdiga ramverk så ofta jag kan men utan att gå till överdrift.</p>
<p>Hittills har jag inte använt något ramverk för <a title="Cascading Style Sheets" href="http://www.w3.org/Style/CSS/" target="_blank">CSS</a> men i nästa projekt tänkte jag testa att göra det. Jag har letat en hel del på nätet efter olika CSS-ramverk och hittat några intressanta. Tre ramverk som jag fastnade för är:</p>
<ul>
<li><a title="960 Grid System" href="http://960.gs/" target="_blank">960 Grid System</a></li>
<li><a title="Blueprint: A CSS Framework | Spend your time innovating, not replicating" href="http://www.blueprintcss.org/" target="_blank">Blueprint</a></li>
<li><a title="YUI Library: Grids CSS" href="http://developer.yahoo.com/yui/grids/" target="_blank">YUI Grids CSS</a></li>
</ul>
<p>Det alla dessa ramverk har gemensamt är att det bygger på ett rutsystem. Det hela fungerar så att man delar upp sajtens bredd i ett antal kolumner. Hur många kolumner man har är lite beroende på vilken bredd sajten ska ha och avståndet mellan kolumnerna. Jag ska inte gå in exakt på hur man använder alla ramverk i detta inlägg men kan ge ett kort exempel på hur det fungerar.</p>
<p>Säg att man vill utveckla en sajt som har en meny till vänster, en större yta i mitten och slutligen en lite smalare yta till höger. Det man gör i alla ramverk är att ange bredden på ytorna i antalet kolumner de får ta upp. Om hela sajten har bredden av 24 kolumner (som är standard för Blueprint) så kan menyn till vänster vara 8 kolumner bred, ytan i mitten 12 kolumner bred. Då återstår 4 kolumner till ytan till höger. Man kan kombinera bredderna hur man vill, det ända man behöver komma ihåg är att tillsammans ska de ha bredden av 24 kolumner. I exemplet har man skapat en sajt som har tre ytor som går från toppen till botten av sajten. Självklart kan man skapa en banner längst upp. Det är bara att ange att den ska vara 24 kolumner bred. Detsamma gäller för sidfoten om man vill ha en sån. Det hela kanske låter krångligt men det är i praktiken väldigt lätt. Alla ramverk har tydliga beskrivningar som förklarar detta på ett bra sätt.</p>
<p>Har du inte testat ett CSS-ramverk så rekommenderar jag verkligen att du gör det.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2009/08/anvand-css-ramverk-for-att-minska-din-utvecklingstid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Regex Coach – Interaktiva reguljära uttryck</title>
		<link>http://fredrikmalmgren.se/2009/07/regex-coach-%e2%80%93-interaktiva-reguljara-uttryck/</link>
		<comments>http://fredrikmalmgren.se/2009/07/regex-coach-%e2%80%93-interaktiva-reguljara-uttryck/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 13:47:55 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[Verktyg]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regex coach]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=85</guid>
		<description><![CDATA[Alla som utvecklar något för webben befinner sig då och då i situationer där man måste använda sig av reguljära uttryck (på engelska regular expressions, vilket ofta förkortas till regex eller regexp). Användningsområdet för regex är många. Det kan exempelvis vara allt från när man vill validera länkar som en användare matar in i ett [...]]]></description>
			<content:encoded><![CDATA[<p>Alla som utvecklar något för webben befinner sig då och då i situationer där man måste använda sig av <a title="Reguljära uttryck - Wikipedia" href="http://sv.wikipedia.org/wiki/Regulj%C3%A4ra_uttryck" target="_blank">reguljära uttryck</a> (på engelska <strong>regular expressions</strong>, vilket ofta förkortas till <strong>regex</strong> eller <strong>regexp</strong>). Användningsområdet för regex är många. Det kan exempelvis vara allt från när man vill validera länkar som en användare matar in i ett formulär till när man ska sätta upp ett mål i Google Analytics och vill skapa en funnel och man måste matcha länkar.</p>
<p>Man kan förstås alltid testa sig fram med ”trial and error”-metoden vilket också funkar men kan ta väldigt lång tid om man inte vet på ett ungefär hur det ska se ut. Det är här <a title="The Regex Coach - interactive regular expressions" href="http://weitz.de/regex-coach/" target="_blank">Regex Coach</a> kommer till stor nytta.</p>
<div id="attachment_595" class="wp-caption aligncenter" style="width: 516px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2009/07/regex-coach-screenshot.png"><img class="size-full wp-image-595" title="Regex Coach – Interaktiva reguljära uttryck" src="http://fredrikmalmgren.se/wp-content/uploads/2009/07/regex-coach-screenshot.png" alt="Regex Coach – Interaktiva reguljära uttryck" width="506" height="545" /></a><p class="wp-caption-text">Regex Coach – Interaktiva reguljära uttryck</p></div>
<p>Programmet är väldigt enkelt. Det består egentligen av två stora textfält. I det översta skriver man in sin regex och i det understa skriver man in textsträngen man vill använda sin regex på. Den eller de delar i texten som matchar din inskrivning regex kommer att markeras med gult i realtid så man ser direkt vad varje del gör. Under textfälten finns ett antal flikar. Dessa flikar är lite överkurs men det skadar inte om du bekantar dig med dem i alla fall.</p>
<p>Vill man veta mer om hur Regex Coach fungerar rekommenderar jag att man tittar på deras <a title="The Regex Coach - Tutorial" href="http://weitz.de/regex-coach/tutorial1.html" target="_blank">tutorial</a> som går igenom programmet i några enkla steg.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2009/07/regex-coach-%e2%80%93-interaktiva-reguljara-uttryck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Luke &#8211; Lucene Index Toolbox, ett grafiskt verktyg till sökmotorn Lucene</title>
		<link>http://fredrikmalmgren.se/2009/07/luke-lucene-index-toolbox-ett-grafiskt-verktyg-till-sokmotorn-lucene/</link>
		<comments>http://fredrikmalmgren.se/2009/07/luke-lucene-index-toolbox-ett-grafiskt-verktyg-till-sokmotorn-lucene/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 08:40:46 +0000</pubDate>
		<dc:creator>Fredrik Malmgren</dc:creator>
				<category><![CDATA[Ramverk]]></category>
		<category><![CDATA[Utveckling]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[luke]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://fredrikmalmgren.se/?p=131</guid>
		<description><![CDATA[Jag har på senare tid laborerat lite med Lucene som är en sökmotor med vilken man kan indexera innehållet på sin webbsida. I mitt projekt använder jag mig av en version gjord helt i PHP som är integrerad i Zend Framework 1.8. Zend’s version av Lucene härstammar från Apache Lucene projektet som är skrivet i [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_567" class="wp-caption alignright" style="width: 310px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2009/07/lucene-logo.gif"><img class="size-full wp-image-567" title="Apache Lucene" src="http://fredrikmalmgren.se/wp-content/uploads/2009/07/lucene-logo.gif" alt="Apache Lucene" width="300" height="46" /></a><p class="wp-caption-text">Apache Lucene</p></div>
<p>Jag har på senare tid laborerat lite med Lucene som är en sökmotor med vilken man kan indexera innehållet på sin webbsida. I mitt projekt använder jag mig av en version gjord helt i PHP som är integrerad i Zend Framework 1.8. <a title="Zend Framework: Documentation -Zend Search Lucene" href="http://framework.zend.com/manual/en/zend.search.lucene.html" target="_blank">Zend’s version av Lucene</a> härstammar från <a title="Apache Lucene project" href="http://lucene.apache.org/java/docs/" target="_blank">Apache Lucene</a> projektet som är skrivet i Java.</p>
<p>Det var inte svårt att implementera Lucene på sajten. Dock fanns det inte något bra sätt att se innehållet i indexet. Efter lite letande så hittade jag ett verktyg som ger ett grafiskt gränssnitt till indexet.</p>
<p>Verktyget, som är distribuerat under Open Source, heter <a title="Luke - Lucene Index Toolbox" href="http://www.getopt.org/luke/" target="_blank">Luke &#8211; Lucene Index Toolbox</a>. Med Luke kan du bland annat:</p>
<ul>
<li>Söka i indexet och bläddra igenom resultatet</li>
<li> Analysera sökresultat</li>
<li> Editera och ta bort dokument från indexet</li>
<li> Optimera indexet</li>
</ul>
<p style="text-align: center;">
<div id="attachment_573" class="wp-caption aligncenter" style="width: 580px"><a href="http://fredrikmalmgren.se/wp-content/uploads/2009/07/luke-screenshot.gif"><img class="size-full wp-image-573    " title="Luke - Lucene Index Toolbox" src="http://fredrikmalmgren.se/wp-content/uploads/2009/07/luke-screenshot.gif" alt="Luke - Lucene Index Toolbox" width="570" /></a><p class="wp-caption-text">Bilden visar hur det ser ut när man söker i indexet med Luke</p></div>
<p>Innan jag hittade Luke kändes det som jag famlade lite i mörkret eftersom jag inte riktigt förstod hur indexet fungerade och hur dokumenten lagrades. Nu när man får en grafisk bild av hur indexet ser ut är det mycket lättare att förstå hur det fungerar och förhoppningsvis så blir det lättare att använda indexet på ett optimalt sätt. Använder du Lucene eller är nyfiken på att testa rekommenderar jag verkligen att du laddar ner och testa Luke.</p>
<p>Lämna gärna en kommentar om du vet något liknande verktyg som Luke.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredrikmalmgren.se/2009/07/luke-lucene-index-toolbox-ett-grafiskt-verktyg-till-sokmotorn-lucene/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
