<?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>Andreas Johansson om webben och det där digitala &#187; php</title>
	<atom:link href="http://cynatic.org/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://cynatic.org</link>
	<description></description>
	<lastBuildDate>Wed, 08 Feb 2012 12:27:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Dynamisk sökväg för WordPress child themes</title>
		<link>http://cynatic.org/dynamisk-sokvag-for-wordpress-child-themes/</link>
		<comments>http://cynatic.org/dynamisk-sokvag-for-wordpress-child-themes/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 08:55:38 +0000</pubDate>
		<dc:creator>Andreas Johansson</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress funktion]]></category>

		<guid isPermaLink="false">http://cynatic.org/?p=2065</guid>
		<description><![CDATA[Dynamisk kanske är lite fel ord att använda, men det beskriver nog bäst den funktionen som knackades ihop igår och [...]]]></description>
			<content:encoded><![CDATA[<p>Dynamisk kanske är lite fel ord att använda, men det beskriver nog bäst den funktionen som knackades ihop igår och jag tänkte dela med mig av.</p>
<p>Problemet ligger i att jag alltid använder mig av ett child theme till ett egenknackat huvudtema, i temat ingår en del bilder &#8211; logotyp, bakgrund, favikon, knappar eller vad det nu kan vara och det vore trevligt med en fallback. Det känns väldigt bekvämt att slippa kopiera in samma bilder på två ställen men ändå snabbt ha en möjlighet att byta ut den enbart genom att droppa in en ny med samma namn i sitt nya tema.<span id="more-2065"></span></p>
<p>För att länka in dessa så används normalt <em>get_stylesheet_directory_uri();</em> alternativt <em>get_template_directory_uri();</em> vilket gör att det, för all bekvämlighets skull, uppstår problem om du länkar in image.png med template_directory och stylesheet_directory eftersom den första enbart kollar i parent theme och den andre i child theme.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;color: #FCFFBA;"><span style="color: #000000; font-weight: bold;color: #c3c181;">function</span> get_dyn_path<span style="color: #009900;color: #fff;">&#40;</span><span style="color: #b86966;">$file</span><span style="color: #009900;color: #fff;">&#41;</span> <span style="color: #009900;color: #fff;">&#123;</span>
	<span style="color: #b1b100;color: #b86966;">if</span> <span style="color: #009900;color: #fff;">&#40;</span><span style="color: #990000;color: #8FB394;">is_file</span><span style="color: #009900;color: #fff;">&#40;</span>get_stylesheet_directory<span style="color: #009900;color: #fff;">&#40;</span><span style="color: #009900;color: #fff;">&#41;</span><span style="color: #339933;color: #fff;">.</span><span style="color: #b86966;">$file</span><span style="color: #009900;color: #fff;">&#41;</span><span style="color: #009900;color: #fff;">&#41;</span> <span style="color: #009900;color: #fff;">&#123;</span> <span style="color: #b1b100;color: #b86966;">return</span> get_stylesheet_directory_uri<span style="color: #009900;color: #fff;">&#40;</span><span style="color: #009900;color: #fff;">&#41;</span><span style="color: #339933;color: #fff;">.</span><span style="color: #b86966;">$file</span><span style="color: #339933;color: #fff;">;</span> <span style="color: #009900;color: #fff;">&#125;</span>
	<span style="color: #b1b100;color: #b86966;">else</span> <span style="color: #009900;color: #fff;">&#123;</span> <span style="color: #b1b100;color: #b86966;">return</span> get_template_directory_uri<span style="color: #009900;color: #fff;">&#40;</span><span style="color: #009900;color: #fff;">&#41;</span><span style="color: #339933;color: #fff;">.</span><span style="color: #b86966;">$file</span><span style="color: #339933;color: #fff;">;</span> <span style="color: #009900;color: #fff;">&#125;</span>
<span style="color: #009900;color: #fff;">&#125;</span></pre></div></div>

<p>Vad funktionen gör är att den först kollar om det aktiva temat är ett child theme samt om filen finns i child temats mapp. Annars tar den länken till parent theme och skriver ut i stället. Kalla enkelt funktionen med <em>echo get_dyn_path(&#8216;/minmapp/bilden.png&#8217;);</em></p>
<p>Vad jag funderar på är hur pass prestandan påverkas av <em><a href="http://se.php.net/manual/en/function.is-file.php">is_file()</a></em> men jag tror det är marginellt. Alternativet <em><a href="http://se.php.net/manual/en/function.file-exists.php">file_exists()</a></em> sägs vara det mer långsamma alternativet.</p>
<p>Det är mycket som händer när en man vill vara bekväm.</p>
<hr />Publicerat av andreas för <a href="http://cynatic.org/dynamisk-sokvag-for-wordpress-child-themes/">Andreas Johansson om webben och det där digitala</a>, licensierat under <a href="http://creativecommons.org/licenses/by/2.5/se/">CC BY</a>. Alla mår bra av kärlek - speciellt länkkärlek.]]></content:encoded>
			<wfw:commentRss>http://cynatic.org/dynamisk-sokvag-for-wordpress-child-themes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ändra storlek på bilder on-the-fly med WordPress</title>
		<link>http://cynatic.org/andra-storlek-pa-bilder-on-the-fly-med-wordpress/</link>
		<comments>http://cynatic.org/andra-storlek-pa-bilder-on-the-fly-med-wordpress/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 18:49:54 +0000</pubDate>
		<dc:creator>Andreas Johansson</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[bildhantering]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://cynatic.org/?p=1942</guid>
		<description><![CDATA[Hittade precis en trevlig liten funktion som, i likhet med timthumb.php, ändrar storleken på bilder direkt när du behöver det [...]]]></description>
			<content:encoded><![CDATA[<p>Hittade precis en trevlig <a href="http://core.trac.wordpress.org/ticket/15311">liten funktion</a> som, i likhet med <a href="http://code.google.com/p/timthumb/">timthumb.php</a>, ändrar storleken på bilder direkt när du behöver det men använder WordPress inbyggda funktionallitet snarare än att bygga ihop en ny funktion. Användbarheten är enorm &#8211; speciellt när du vill visa bilder och beskära eller ej. Extra trevligt är det eftersom den verkar komplettera det som saknas i vanliga fall då man definierar egna storlekar mot <em>the_post_thumbnail()</em>;.</p>
<hr />Publicerat av andreas för <a href="http://cynatic.org/andra-storlek-pa-bilder-on-the-fly-med-wordpress/">Andreas Johansson om webben och det där digitala</a>, licensierat under <a href="http://creativecommons.org/licenses/by/2.5/se/">CC BY</a>. Alla mår bra av kärlek - speciellt länkkärlek.]]></content:encoded>
			<wfw:commentRss>http://cynatic.org/andra-storlek-pa-bilder-on-the-fly-med-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips när ni uppdaterar MAMP</title>
		<link>http://cynatic.org/tips-nar-ni-uppdaterar-mamp/</link>
		<comments>http://cynatic.org/tips-nar-ni-uppdaterar-mamp/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 23:21:08 +0000</pubDate>
		<dc:creator>Andreas Johansson</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Webbdesign]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mamp]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[uppdatering]]></category>

		<guid isPermaLink="false">http://cynatic.org/?p=1884</guid>
		<description><![CDATA[Snabbt tips om ni skulle få för er att uppdatera MAMP (Mac Apache MySQL PHP), gör det inte utan att [...]]]></description>
			<content:encoded><![CDATA[<p>Snabbt tips om ni skulle få för er att uppdatera MAMP (<em>Mac Apache MySQL PHP</em>), gör det inte utan att ta en backup på alla databaser ni har internt. Mina försvann just nu vilket kommer ge mig en massa mer jobb de närmsta dagarna. Jippie, tjo och tjim&#8230;</p>
<hr />Publicerat av andreas för <a href="http://cynatic.org/tips-nar-ni-uppdaterar-mamp/">Andreas Johansson om webben och det där digitala</a>, licensierat under <a href="http://creativecommons.org/licenses/by/2.5/se/">CC BY</a>. Alla mår bra av kärlek - speciellt länkkärlek.]]></content:encoded>
			<wfw:commentRss>http://cynatic.org/tips-nar-ni-uppdaterar-mamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Behöver inte kunna PHP, jag har WordPress&#8221;</title>
		<link>http://cynatic.org/behover-inte-kunna-php-jag-har-wordpress/</link>
		<comments>http://cynatic.org/behover-inte-kunna-php-jag-har-wordpress/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 19:44:04 +0000</pubDate>
		<dc:creator>Andreas Johansson</dc:creator>
				<category><![CDATA[Webbdesign]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Webbutveckling]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://cynatic.org/?p=1521</guid>
		<description><![CDATA[Ett citat som jag fick för någon dag sedan som jag har funderat en del över. Tar verkligen WordPress kål [...]]]></description>
			<content:encoded><![CDATA[<p>Ett citat som jag fick för någon dag sedan som jag har funderat en del över. Tar verkligen <a href="http://wordpress.org">WordPress</a> kål på behovet att kunna programmera PHP? Tvärtom skulle jag vilja påstå.</p>
<p><span id="more-1521"></span></p>
<p style="text-align: center;"><img class="aligncenter size-medium wp-image-1522" title="Behöver inte kunna PHP, jag har Wordpress" src="http://cynatic.org/wp-content/uploads/2010/02/wordpresslogga-300x300.jpg" alt="wordpresslogga 300x300 Behöver inte kunna PHP, jag har Wordpress" width="300" height="300" /></p>
<p>För det första så behöver du PHP för att kunna sätta ihop ett någorlunda bra tema till WordPress, även om du kan klara det helt utan någon kunskap om språket i övrigt. Många säger ändå att &#8220;Jag talar WordPress, inte PHP&#8221;, men steget mellan dem är inte stora. PHP är språket som används i WordPress, även i dess teman, om ändå på ett ibland ganska lustigt och kanske inte helt optimerat sätt.</p>
<p>Mitt svar på frågan är alltid att vad som kommer hända den dagen de får en förfrågan om en funktion som inte finns eller att ett tillägg inte existerar till det. Ska de ignorera eller använda en slags mellanlösning där de tar en hel kod från en guide och inte vet exakt vad den gör?</p>
<p>Problemet jag har är att jag vill inte alltid lita på tillgängligheten av tillägg, de kan helt plötsligt slutas stödjas i WordPress kärna eller helt enkelt läggas ner och sluta utvecklas. Att göra en funktion själv är alltid hundra gånger bättre än att förlita sig på tredje-part när det gäller WordPress, speciellt om det handlar om klienters webbsidor som de kan strula till själv.</p>
<p>Att utveckla sig inom PHP, och speciellt dess integrering och möjligheter inom WordPress, är något man bör behärska speciellt då systemet uppdateras och utvecklas i hög takt och innovationen absolut inte står still.</p>
<p>Lär dig PHP alltså, även om du klarar dig med kunskaperna inom WordPress du har idag &#8211; det kommer alla tjäna på i längden.</p>
<hr />Publicerat av andreas för <a href="http://cynatic.org/behover-inte-kunna-php-jag-har-wordpress/">Andreas Johansson om webben och det där digitala</a>, licensierat under <a href="http://creativecommons.org/licenses/by/2.5/se/">CC BY</a>. Alla mår bra av kärlek - speciellt länkkärlek.]]></content:encoded>
			<wfw:commentRss>http://cynatic.org/behover-inte-kunna-php-jag-har-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WWW-prefix ska inte spela någon roll</title>
		<link>http://cynatic.org/www-prefix-ska-inte-spela-nagon-roll/</link>
		<comments>http://cynatic.org/www-prefix-ska-inte-spela-nagon-roll/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 15:05:09 +0000</pubDate>
		<dc:creator>Andreas Johansson</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[301-redirect]]></category>
		<category><![CDATA[dot net]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tillgänglighet]]></category>
		<category><![CDATA[webbadresser]]></category>
		<category><![CDATA[Webbdesign]]></category>

		<guid isPermaLink="false">http://cynatic.org/?p=940</guid>
		<description><![CDATA[Idag 2009 ska man väl inte behöva bry sig om www framför webbadressen? Om en webbplats vill använda www, kör [...]]]></description>
			<content:encoded><![CDATA[<p>Idag 2009 ska man väl inte behöva bry sig om www framför webbadressen? Om en webbplats vill använda www, kör på, men lös ändå ändå en 301-redirect ifall någon som skriver adressen utan www-prefixet.</p>
<p>Om jag skriver example.com och får fram ett fel så är det föga troligt att jag testar med www före. Det behövs nog inte påpekas hur många besökare och eventuella intäkter som kan gå förlorade på detta.</p>
<div id="attachment_941" class="wp-caption alignnone" style="width: 490px"><img class="size-full wp-image-941" title="WWW prefix ska inte spela någon roll" src="http://cynatic.org/wp-content/uploads/2009/10/utanochmedwww.png" alt="utanochmedwww WWW prefix ska inte spela någon roll" width="480" height="137" /><p class="wp-caption-text">Studentkåren Sundsvall är ett dåligt exempel</p></div>
<p>Att lösa problemet är inte svårt, om man kör med Apache och har mod_rewrite aktiverat så är det enbart lägga in ett par rader i sin .htaccess:</p>
<p>[sourcecode language="plain"]RewriteCond %{HTTP_HOST} ^example.com$<br />
RewriteRule (.*) http://www.example.com/$1 [R=301,L][/sourcecode]</p>
<p>ASP.NET användare kan kolla in <a href="http://msdn.microsoft.com/en-us/library/ms525844.aspx"><em>Response.Status</em></a> och <a href="http://msdn.microsoft.com/en-us/library/ms524327.aspx">Response.Addheader</a>, kör du PHP så fungerar <a href="http://se2.php.net/manual/en/function.header.php">header()</a> fin-fint för en redirection.</p>
<p>Enkelt, smidigt och klart mer tillgängligt.</p>
<hr />Publicerat av andreas för <a href="http://cynatic.org/www-prefix-ska-inte-spela-nagon-roll/">Andreas Johansson om webben och det där digitala</a>, licensierat under <a href="http://creativecommons.org/licenses/by/2.5/se/">CC BY</a>. Alla mår bra av kärlek - speciellt länkkärlek.]]></content:encoded>
			<wfw:commentRss>http://cynatic.org/www-prefix-ska-inte-spela-nagon-roll/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Relaterade poster i WordPress utan att förstöra kommentarerna</title>
		<link>http://cynatic.org/relaterade-poster-i-wordpress-utan-att-forstora-kommentarerna/</link>
		<comments>http://cynatic.org/relaterade-poster-i-wordpress-utan-att-forstora-kommentarerna/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 07:49:20 +0000</pubDate>
		<dc:creator>Andreas Johansson</dc:creator>
				<category><![CDATA[Webbdesign]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[kod]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Webbutveckling]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://cynatic.org/?p=828</guid>
		<description><![CDATA[Ett par timmar har gått åt till att få igång en egen relaterade poster funktion till WordPress. Själva scriptet är [...]]]></description>
			<content:encoded><![CDATA[<img class="alignnone size-full wp-image-829" title="Relaterade poster i Wordpress utan att förstöra kommentarerna" src="http://cynatic.org/wp-content/uploads/2009/08/relaterade-poster.jpg" alt="relaterade poster Relaterade poster i Wordpress utan att förstöra kommentarerna" width="480" height="100" />
<p>Ett par timmar har gått åt till att få igång en egen relaterade poster funktion till <a href="http://cynatic.org/tag/wordpress">WordPress</a>. Själva scriptet är inte ett dugg konstigt utan kan <a href="http://wordpress.org/support/topic/277030">hittas</a> <a href="http://www.bin-co.com/blog/2009/04/show-related-post-in-wordpress-without-a-plugin/">lite</a> <a href="http://www.shoutmeloud.com/how-to-show-related-posts-in-wordpress-without-plugin.html">överallt</a> även om jag ville sätta en egen twist på det hela.</p>
<p>Målet var att skapa en funktion som visar bilder samt titeln på inlägget istället för en vanlig tråkig lista. Koden jag använde (utan CSS) blev till slut följande.</p>
<p>[code language="php"]<br />
$tags = wp_get_post_tags($post-&gt;ID);<br />
if ($tags) {<br />
$tag_ids = array();<br />
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag-&gt;term_id;</p>
<p>$args=array(<br />
'tag__in' =&gt; $tag_ids,<br />
'post__not_in' =&gt; array($post-&gt;ID),<br />
'showposts'=&gt;3, // Number of related posts that will be shown.<br />
'caller_get_posts'=&gt;1<br />
);<br />
$my_query = new wp_query($args);<br />
if( $my_query-&gt;have_posts() ) {<br />
echo '&lt;div class=&quot;related-posts&quot;&gt;&lt;h3&gt;Möjligen relaterat innehåll&lt;/h3&gt;&lt;ul&gt;';<br />
while ($my_query-&gt;have_posts()) {<br />
$my_query-&gt;the_post();<br />
?&gt;<br />
&lt;li&gt;<br />
&lt;a href=&quot;&lt;?php the_permalink() ?&gt;&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link to &lt;?php the_title_attribute(); ?&gt;&quot;&gt;<br />
&lt;img src=&quot;&lt;?php echo get_bloginfo('template_url'); ?&gt;/thumb.php?src=&lt;?php echo catch_that_image('default2') ?&gt;&amp;w=150&amp;h=100&amp;zc=0&amp;q=100&quot; alt=&quot;&lt;?php the_title(); ?&gt;&quot;/&gt;<br />
&lt;span&gt;&lt;?php the_title(); ?&gt;&lt;/span&gt;&lt;/a&gt;<br />
&lt;/li&gt;<br />
&lt;?php<br />
}<br />
echo '&lt;/ul&gt;&lt;/div&gt;';<br />
}<br />
}
</pre>
<p>Jag använder helt enkelt den klassiska funktionen <a href="http://www.wprecipes.com/how-to-get-the-first-image-from-the-post-and-display-it">catch_that_image()</a>, med en lite twist för att få olika storlekar på defaultbilden, och <a href="http://code.google.com/p/timthumb/">thumb.php</a> för att visa bilden och sen är resten som vanligt.</p>
<p>Problemet som visade sig var att även att <em>wp_query()</em> kallades med<em> new</em>, vilket i min bok kallas för en ny instans av objektet, så sattes alla kommentarsvariabler till den <em>senaste relaterade posten med kommentarer.</em> Detta är en sidoeffekt som direkt inte är önskvärd.</p>
<p>Lösningen är väldigt enkel: spara variabler och återanvänd dem. Innan jag börjar min nya loop så sparar jag ner ett par variabler från den gamla loopen.</p>
<p>[code language="php"]<br />
$old_comment = $comments; $old_id = $id; $old_post = $post; $old_withcomments = $withcomments;
</pre>
<p>Och efter loopen återställer jag helt enkelt värdena som de var innan.</p>
<p>[code language="php"]<br />
$comments = $old_comment; $id = $old_id; $post = $old_post; $old_widthcomments = $withcomments;
</pre>
<p>Nu får vi fram exakt den effekten som önskades från början, allt som krävs är lite <a href="http://cynatic.org/tag/css">CSS-magi</a>. Resultatet kan du se under detta inlägget.</p>
<p><em>Smidigaste sättet eller är jag fel ute?</em></p>
<hr />Publicerat av andreas för <a href="http://cynatic.org/relaterade-poster-i-wordpress-utan-att-forstora-kommentarerna/">Andreas Johansson om webben och det där digitala</a>, licensierat under <a href="http://creativecommons.org/licenses/by/2.5/se/">CC BY</a>. Alla mår bra av kärlek - speciellt länkkärlek.]]></content:encoded>
			<wfw:commentRss>http://cynatic.org/relaterade-poster-i-wordpress-utan-att-forstora-kommentarerna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prestanda, PHP-sidor och HTML-sidor</title>
		<link>http://cynatic.org/prestanda-php-och-html-sidor/</link>
		<comments>http://cynatic.org/prestanda-php-och-html-sidor/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 15:33:54 +0000</pubDate>
		<dc:creator>Andreas Johansson</dc:creator>
				<category><![CDATA[Webbdesign]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[prestanda]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://cynatic.org/?p=342</guid>
		<description><![CDATA[Det började som en frågeställning när jag gjorde mitt första WordPress tema och jag såg att PHP startades, och stängdes [...]]]></description>
			<content:encoded><![CDATA[<p>Det började som en frågeställning när jag gjorde mitt första WordPress tema och jag såg att PHP startades, och stängdes av och gick över till HTML för att sedan gå tillbaka till PHP vilket jag ser som ytterst ineffektivt. Vad är då mest effektivt? Att enbart göra hela sidan i PHP eller växla fram och tillbaka?</p>
<p>Anledningen till frågan är att jag läste en <a href="http://reinholdweber.com/?p=3">bloggpost</a> som skrev att <em>A PHP script will be served at least 2-10 times slower than a static HTML page by Apache. Try to use more static HTML pages and fewer scripts. </em></p>
<p>Visst jag kan köpa detta, men när jag lärde mig PHP så var det så att för varje gång man körde en start- och sluttagg så initierades respektive avslutades PHP-modulen vilket betyder att man bör minimera start och avslut för att effektivisera och öka prestandan.</p>
<p>Vad är då snabbare av kodning-sätten:</p>
<p>[code language="php"]<br />
&lt;?php $comment_type = get_comment_type(); ?&gt;<br />
&lt;?php if($comment_type == 'comment') { ?&gt;</p>
<p>&lt;?php if ($i%2) { echo '<br />
&lt;div class=&quot;comment-even&quot;&gt;'; } else { echo '<br />
&lt;div class=&quot;comment-odd&quot;&gt;'; } ?&gt;<br />
&lt;?php echo get_avatar( $comment, 42 ); ?&gt;<br />
&lt;span&gt;&lt;?php comment_author_link() ?&gt; tycker ...  &lt;/span&gt;<br />
&lt;div&gt;&lt;?php comment_text() ?&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;br class=&quot;dirtyLittleTrick&quot; /&gt;<br />
&lt;?php } else { $trackback = true; } /* End of is_comment statement */ ?&gt;<br />
&lt;?php endforeach; /* end for each comment */ ?&gt;</pre>
<p>Eller:</p>
<p>[code language="php"]<br />
&lt;?php $comment_type = get_comment_type();<br />
if($comment_type == 'comment') {</p>
<p>if ($i%2) { echo '<br />
&lt;div class=&quot;comment-even&quot;&gt;'; } else { echo '<br />
&lt;div class=&quot;comment-odd&quot;&gt;'; }<br />
echo get_avatar( $comment, 42 );<br />
echo '&lt;span&gt;'.comment_author_link().' tycker ...  &lt;/span&gt;<br />
&lt;div&gt;'.comment_text() .'&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;br class=&quot;dirtyLittleTrick&quot; /&gt;';<br />
} else { $trackback = true; }<br />
endforeach;  ?&gt;</pre>
<p>Exemplet  är från ett WordPress tema och jag föredrar den sista, men är det den rätta vägen att gå?</p>
<hr />Publicerat av andreas för <a href="http://cynatic.org/prestanda-php-och-html-sidor/">Andreas Johansson om webben och det där digitala</a>, licensierat under <a href="http://creativecommons.org/licenses/by/2.5/se/">CC BY</a>. Alla mår bra av kärlek - speciellt länkkärlek.]]></content:encoded>
			<wfw:commentRss>http://cynatic.org/prestanda-php-och-html-sidor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lär dig PHP, OOP-style!</title>
		<link>http://cynatic.org/lar-dig-php-oop-style/</link>
		<comments>http://cynatic.org/lar-dig-php-oop-style/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 10:53:41 +0000</pubDate>
		<dc:creator>Andreas Johansson</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[länk tips]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Webbutveckling]]></category>

		<guid isPermaLink="false">http://cynatic.org/?p=68</guid>
		<description><![CDATA[Nettuts har en helt excellent artikel om hur man kan börja lära sig objektorienterad php-programmering. Exemplet de går igenom är [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-69" title="Lär dig PHP, OOP style!" src="http://cynatic.org/wp-content/uploads/2009/03/php_oop.jpg" alt="php oop Lär dig PHP, OOP style!" width="550" height="120" /><br />
Nettuts har en helt excellent artikel om hur man kan börja lära sig <a href="http://net.tutsplus.com/tutorials/php/oop-in-php/">objektorienterad php-programmering</a>. Exemplet de går igenom är hur man hanterar bilder enkelt men kan omsättas till andra scenarion.</p>
<p>Att koda objektorienterat hjälper verkligen då man för det första gör ett projekt som fler än en person är involverad i eller gör ett projekt som är större och behöver riktig struktur. Det är också enklare när projektet kanske behöver editeras senare av en tredje part.</p>
<hr />Publicerat av andreas för <a href="http://cynatic.org/lar-dig-php-oop-style/">Andreas Johansson om webben och det där digitala</a>, licensierat under <a href="http://creativecommons.org/licenses/by/2.5/se/">CC BY</a>. Alla mår bra av kärlek - speciellt länkkärlek.]]></content:encoded>
			<wfw:commentRss>http://cynatic.org/lar-dig-php-oop-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typografera dina förkortningar med CSS och PHP</title>
		<link>http://cynatic.org/typografi-forkortningar-med-css-php/</link>
		<comments>http://cynatic.org/typografi-forkortningar-med-css-php/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 13:10:18 +0000</pubDate>
		<dc:creator>Andreas Johansson</dc:creator>
				<category><![CDATA[Typografi]]></category>
		<category><![CDATA[Webbdesign]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://cynatic.org/?p=187</guid>
		<description><![CDATA[Enligt Typografisk Handbok (Hellmark) så kan versala ord se ut som fläckar i din text. Detta kan avhjälpas genom att [...]]]></description>
			<content:encoded><![CDATA[<p>Enligt Typografisk Handbok (<em>Hellmark</em>) så kan versala ord se ut som fläckar i din text. Detta kan avhjälpas genom att spärra dem smått och sätta de i kapitäler. Jag tänkte gå igenom ett snabbt tips hur man enkelt kan lösa detta med hjälp av PHP och CSS.</p>
<blockquote><p>Flera versaler efter varandra i löpande text blir ofta påträngande […]. Det kan avhjälpas genom att man sätter versalerna en punkt mindre än den övriga texten och spärrar dem lite […].</p></blockquote>
<p>För det första är denna koden ganska generell och det reguljära uttrycket är på inget sätt optimerat då mina kunskaper inom det fortfarande är ganska låga, det finns säkert en smartare sträng som löser uppgiften.<br />
Först antar vi att din text är i en string:<br />
[code language="php"]$str = "Hej en förkortning kan se ut som detta CSS eller HTML-kod samt PHP";</pre>
<p>Sen behöver vi reguljära uttryck och en replace på de förkortningar som finns:<br />
[code language="php"]$pattern = array(<br />
"/s([A-Z][A-Z0-9]{2,})s/",<br />
"/s([A-Z][A-Z0-9]{2,}+)/"<br />
);<br />
$replace = array(<br />
"<abbr> $1 </abbr>",<br />
"<abbr> $1</abbr>"<br />
);<br />
$str = preg_replace( $pattern, $replace, $str);</pre>
<p>Detta byter ut alla förekomster av förkortningar med tre tecken eller mer i den löpande texten. Att vi har två reguljära uttryck är eftersom en förkortning kan finns som ensamstående, HTML, eller som del av ett ord, HTML-koden.</p>
<p>Det som är kvar är att sätta en stilmall på den nya layouten:<br />
[code language="css"]abbr {<br />
letter-spacing: 0.1em;<br />
font-variant: small-caps;<br />
font-size: 11px;<br />
}</pre>
<p>Att vi väljer dessa regler är ganska enkelt. En förkortning ska enligt <em>Hellmark</em> spärras med ungefär 10%, alltså blir det 0.1em. Istället för att använda versaler som ser konstigt ut så kan man istället använda kapitäler som har samma x-höjd som resterande text. Det kan också vara en bra idé att minska textstorleken med 1pixel (eller punkt i print) för att linjera texten ytterligare.</p>
<h3>Sammanfattning</h3>
<p>[code language="php"]$str = "Hej en förkortning kan se ut som detta CSS eller HTML-kod samt PHP";<br />
$pattern = array(<br />
"/s([A-Z][A-Z0-9]{2,})s/",<br />
"/s([A-Z][A-Z0-9]{2,}+)/"<br />
);<br />
$replace = array(<br />
"<abbr> $1 </abbr><abbr>",<br />
"</abbr><abbr> $1</abbr>"<br />
);<br />
$str = preg_replace( $pattern, $replace, $str);</pre>
<p>Och CSS:<br />
[code language="css"]<br />
abbr {<br />
letter-spacing: 0.1em;<br />
font-variant: small-caps;<br />
font-size: 11px;<br />
}</pre>
<hr />Publicerat av andreas för <a href="http://cynatic.org/typografi-forkortningar-med-css-php/">Andreas Johansson om webben och det där digitala</a>, licensierat under <a href="http://creativecommons.org/licenses/by/2.5/se/">CC BY</a>. Alla mår bra av kärlek - speciellt länkkärlek.]]></content:encoded>
			<wfw:commentRss>http://cynatic.org/typografi-forkortningar-med-css-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lägg in din bloggyfeed med simpleXML och PHP</title>
		<link>http://cynatic.org/lagg-in-din-bloggyfeed-med-simplexml-och-php/</link>
		<comments>http://cynatic.org/lagg-in-din-bloggyfeed-med-simplexml-och-php/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 11:54:41 +0000</pubDate>
		<dc:creator>Andreas Johansson</dc:creator>
				<category><![CDATA[Nördigt]]></category>
		<category><![CDATA[bloggy]]></category>
		<category><![CDATA[bloggy feed]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[simplexml]]></category>
		<category><![CDATA[Webbutveckling]]></category>

		<guid isPermaLink="false">http://cynatic.org/?p=124</guid>
		<description><![CDATA[Gjorde som flera andra och skaffade mig ett konto på mikrobloggsiten bloggy.se tidigare och tänkte det vore snyggt att visa [...]]]></description>
			<content:encoded><![CDATA[<p>Gjorde som flera andra och skaffade <a href="http://drago.bloggy.se">mig ett konto</a> på mikrobloggsiten <a href="http://bloggy.se">bloggy.se</a> tidigare och tänkte det vore snyggt att visa vad man gör på den sidan via sin blogg. Skrev därför ihop en snabb klass i PHP med hjälp av simpleXML som hämtar RSS-feeden från sidan och skriver ut den på bloggen.</p>
<p style="text-align: center;"><img class="size-full wp-image-952 aligncenter" title="Lägg in din bloggyfeed med simpleXML och PHP" src="http://cynatic.org/wp-content/uploads/2009/01/bloggy..png" alt="bloggy. Lägg in din bloggyfeed med simpleXML och PHP" width="400" height="126" /></p>
<p>Delar med mig av koden som skrevs här:</p>
<p>[code language="php"]&amp;lt;?php<br />
class Bloggy {<br />
function connect($feed) {<br />
return @simplexml_load_file($feed);<br />
}<br />
function getAvatar($feed) {<br />
$sxml = $this-&amp;gt;connect($feed);<br />
return $sxml-&amp;gt;channel[0]-&amp;gt;image[0]-&amp;gt;url[0];<br />
}<br />
function getFeed($feed, $limit = 10) {<br />
$sxml = $this-&amp;gt;connect($feed);<br />
$x = 0;<br />
while ($x &amp;lt; = $limit &amp;amp;&amp;amp; isset($sxml-&amp;gt;channel[0]-&amp;gt;item[$x])) {<br />
$return[$x] = array(<br />
'date' =&amp;gt; $sxml-&amp;gt;channel[0]-&amp;gt;item[$x]-&amp;gt;pubDate[0],<br />
'permLink' =&amp;gt; $sxml-&amp;gt;channel[0]-&amp;gt;item[$x]-&amp;gt;link[0],<br />
'title' =&amp;gt; utf8_decode($sxml-&amp;gt;channel[0]-&amp;gt;item[$x]-&amp;gt;title[0])<br />
);<br />
$x++;<br />
}<br />
return $return;<br />
}<br />
}<br />
?&amp;gt;</pre>
<p>Hur man använder klassen finns här under:</p>
<p>[code language="php"]<br />
$rss = 'http://drago.bloggy.se/rss';<br />
$bl = new Bloggy;<br />
echo '&amp;lt;img src=&amp;quot;'.$bl-/&amp;gt;getAvatar($rss).'&amp;quot; alt=&amp;quot;bloggy avatar&amp;quot; /&amp;gt;';</p>
<p>foreach ($bl-&amp;gt;getFeed($rss) as $value) {<br />
echo '&amp;lt;div&amp;gt;';<br />
echo $value['date'];<br />
echo '&amp;lt;a href=&amp;quot;'.$value['permLink'].'&amp;quot;&amp;gt;'.$value['title'].'&amp;lt;/a&amp;gt;';<br />
echo '&amp;lt;/div&amp;gt;';<br />
}</pre>
<p>Kom ihåg att det är en "first draft", det vill säga en snabbt skriven klass, det vill säga - alla funktioner finns inte än samt att den kanske inte är snyggast i Sverige. SimpleXML bör finnas i varje hem som kör PHP5.x.</p>
<p><em>Håll till godo.</em></p>
<hr />Publicerat av andreas för <a href="http://cynatic.org/lagg-in-din-bloggyfeed-med-simplexml-och-php/">Andreas Johansson om webben och det där digitala</a>, licensierat under <a href="http://creativecommons.org/licenses/by/2.5/se/">CC BY</a>. Alla mår bra av kärlek - speciellt länkkärlek.]]></content:encoded>
			<wfw:commentRss>http://cynatic.org/lagg-in-din-bloggyfeed-med-simplexml-och-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

