<?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>Anders Hassis &#187; PHP</title>
	<atom:link href="http://hassis.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://hassis.com</link>
	<description>Did mmorpgs overwrite your common sense?</description>
	<lastBuildDate>Sun, 06 May 2012 19:07:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>WP Multi-Site: Aktivering av tillägg</title>
		<link>/2011/05/16/wp-multi-site-aktivering-av-tillagg/</link>
		<comments>/2011/05/16/wp-multi-site-aktivering-av-tillagg/#comments</comments>
		<pubDate>Mon, 16 May 2011 13:49:55 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=543</guid>
		<description><![CDATA[Inledning Stötte för någon vecka på ett nytt problem för min del. Det handlade om att jag skulle skapa ett plugin som används i multi-site. Jag har jobbat relativt lite med Multi-Sites och problemet var att tabellerna inte skapades för alla &#8221;siterna&#8221; som fanns i nätverket. Källkod register_activation_hook&#40;__FILE__, 'hass_vote_activate'&#41;; &#160; function hass_vote_activate&#40;&#41; &#123; global $wpdb; [...]]]></description>
			<content:encoded><![CDATA[<h3>Inledning</h3>
<p>Stötte för någon vecka på ett nytt problem för min del. Det handlade om att jag skulle skapa ett plugin som används i multi-site. Jag har jobbat relativt lite med Multi-Sites och problemet var att tabellerna inte skapades för alla &#8221;siterna&#8221; som fanns i nätverket.</p>
<h3>Källkod</h3>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">register_activation_hook<span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'hass_vote_activate'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> hass_vote_activate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'is_multisite'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> is_multisite<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'networkwide'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'networkwide'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$old_blog</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">blogid</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000088;">$blogids</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_col</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prepare</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT blog_id FROM <span style="color: #006699; font-weight: bold;">$wpdb-&gt;blogs</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$blogids</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$blog_id</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				switch_to_blog<span style="color: #009900;">&#40;</span><span style="color: #000088;">$blog_id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				_hass_vote_activate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			switch_to_blog<span style="color: #009900;">&#40;</span><span style="color: #000088;">$old_blog</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #b1b100;">return</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>	
	<span style="color: #009900;">&#125;</span> 
	_hass_vote_activate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>		
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> _hass_vote_activate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$table_name</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prefix</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'yourtable'</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_var</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SHOW TABLES LIKE '<span style="color: #006699; font-weight: bold;">$table_name</span>'&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$table_name</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;CREATE TABLE &quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$table_name</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot; (
			id mediumint(9) NOT NULL AUTO_INCREMENT,
     			dateadded bigint(11) DEFAULT '0' NOT NULL,
     			subject VARCHAR(255) NOT NULL,
	  		UNIQUE KEY id (id)
	  	);&quot;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span>ABSPATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'wp-admin/includes/upgrade.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  		dbDelta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ovanstående kod vandrar igenom alla dina siter som är uppsatta i nätverket och kör aktiveringsfunktionen för dessa.</p>
<p>Koden ovan raderar inte tabellerna vid inaktivering, det skapar heller inte tabellerna för nya siter som aktiveras i nätverket. Du får i sådana fall använda följande actions:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'wpmu_new_blog'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'your_function_activation_on_new_blog'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 		<span style="color: #666666; font-style: italic;">// For new site</span>
register_deactivation_hook<span style="color: #009900;">&#40;</span> <span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'your_deactivation_function'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">// For deactivation</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>/2011/05/16/wp-multi-site-aktivering-av-tillagg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQTouch och WordPress</title>
		<link>/2010/08/23/jqtouch-och-wordpress/</link>
		<comments>/2010/08/23/jqtouch-och-wordpress/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 11:42:07 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=356</guid>
		<description><![CDATA[Eftersom mobila webbplatser är &#8221;the shizzle&#8221; numera så vill inte jag vara sämre än att haka på tåget. Då jag bygger mycket webbplatser i WordPress så vill jag ha ett &#8221;enkelt&#8221; sätt att ha ett separat tema för den mobila sidan och låta den rulla med hjälp av jQTouch. Tillägget Så, vad är det jag [...]]]></description>
			<content:encoded><![CDATA[<p>Eftersom mobila webbplatser är &#8221;the shizzle&#8221; numera så vill inte jag vara sämre än att haka på tåget. Då jag bygger mycket webbplatser i WordPress så vill jag ha ett &#8221;enkelt&#8221; sätt att ha ett separat tema för den mobila sidan och låta den rulla med hjälp av <a href="http://jqtouch.com/">jQTouch</a>. </p>
<h3>Tillägget</h3>
<p>Så, vad är det jag vill göra, jag vill identifiera besökarens webbläsare och om det är en mobil så ska den &#8221;on-the-fly&#8221; byta till mitt mobila tema. Jag vill sedan ha ett sätt att kunna hoppa mellan den mobila och vanliga webbplatsen.</p>
<p>All kod finns <a href="http://gist.github.com/545298">i en Gist på GitHub</a> (mycket anpassad för mina behov) för hur jag löst detta. Jag skapade ett plugin som tog hand om det hela. Om mitt vanliga tema heter &#8216;xc1-test&#8217;, så kommer jag att kolla ifall temat &#8216;xc1-test-mobile&#8217; existerar.</p>
<p>WordPress ger oss möjligheten att ladda in ett separat tema med hjälp av filtret &#8216;stylesheet&#8217;, så vi gör en kontroll ifall temat finns (och efterfrågas) och i sådana fall hoppar vi över till det.</p>
<h3>Temat</h3>
<p>Temat xc1-test-mobile innehåller inte så mycket annat än exempelkod från jQTouchs lösning, så det är inte mycket nytt under solen där. </p>
<p>Det som inte är så vackert just nu är hur sidor och inlägg hämtas ifrån WordPress, jQTouch hämtar enbart statiska filer, därför har jag fått lov att lägga till .html i slutet på mina sidor. Poster däremot får man lov att ändra manuellt permalänk-inställningen i administrationen så den har .html på slutet. Detta kommer jag nog ändra och skriva om AJAX-hämtningen manuellt, men detta var mest för att få allting att fungera i ett inledande skede.</p>
<p>Temats filer single.php och page.php ska inte innehålla <em>get_header()</em> och <em>get_footer()</em>. </p>
<p>Jag kan sedan hoppa mellan de två olika versionerna genom querystringen <em>?xc1-layout=mobile</em> och <em>?xc1-layout=default</em>.</p>
<h4>Menyer</h4>
<p>Något som är riktigt fint i WordPress 3 är att jag kan skapa en separat meny (i menyhanteraren) för den mobila versionen och använda den i detta mobila tema, då kan jag skapa separata mobilversioner av de sidor som jag vill ha tillgängliga ifrån mobilen.</p>
<h3>Slutord</h3>
<p>Jag har tittat mycket på hur <a href="http://mobile.tutsplus.com/tutorials/html5/jqtouch-mobile-wordpress-1/">andra</a> har löst <a href="http://wordpress.org/extend/plugins/wptouch/">detta</a>, jag kommer skriva mer om detta när jag känner mig nöjd med lösningen, ge gärna kommentarer på hur ni löst detta. </p>
]]></content:encoded>
			<wfw:commentRss>/2010/08/23/jqtouch-och-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress pluginguide: Sätta ny titel i en shortcode</title>
		<link>/2010/07/21/wordpress-pluginguide-satta-ny-titel-i-en-shortcode/</link>
		<comments>/2010/07/21/wordpress-pluginguide-satta-ny-titel-i-en-shortcode/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 15:59:04 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=280</guid>
		<description><![CDATA[Jag håller på med ett Reddit-liknande WordPress-plugin på ett projekt hos Populate. Systemet listar ett antal frågor som du som besökare kan &#8221;rösta upp&#8221;, sedan visar man de populäraste frågorna och lite annat. Varje fråga har en egen landningssida, exempelvis /fraga/10 (där 10 är id:t på frågan). Landningssidan och listningen av frågorna definieras av shortcodes [...]]]></description>
			<content:encoded><![CDATA[<p>Jag håller på med ett <a href="http://www.reddit.com">Reddit</a>-liknande WordPress-plugin på ett projekt hos <a href="http://www.populate.se">Populate</a>. </p>
<p>Systemet listar ett antal frågor som du som besökare kan &#8221;rösta upp&#8221;, sedan visar man de populäraste frågorna och lite annat. Varje fråga har en egen landningssida, exempelvis /fraga/10 (där 10 är id:t på frågan). Landningssidan och listningen av frågorna definieras av shortcodes i sidor, exempelvis: [poll_show_single] och [poll_list]. </p>
<p>På sidan som innehåller [poll_show_single], i det här fallet är det sidan &#8216;fraga&#8217;, vill jag ha möjlighet att sätta frågans rubrik som ny titel (via filtret wp_title). </p>
<p>Det går tyvärr inte att ändra titeln inifrån shortcoden, utan man får identifiera vilken sida som shortcoden finns på och sen sätta titeln separat. Detta kan du göra på följande sätt:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> locate_shortcode <span style="color: #009900;">&#40;</span><span style="color: #000088;">$shortcode</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$search</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>?<span style="color: #0000ff;">&quot; OR &quot;</span><span style="color: #339933;">:</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;post_content LIKE '%<span style="color: #006699; font-weight: bold;">$shortcode</span>%'&quot;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000088;">$query</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT ID,post_title,post_name,post_content FROM <span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span> WHERE <span style="color: #006699; font-weight: bold;">$search</span> AND post_type='page'&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_results</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #b1b100;">return</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'title'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post_title</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post_name</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> get_page_uri<span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Sedan läser du av den:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$pollSingle</span> <span style="color: #339933;">=</span> locate_shortcode<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'poll_show_single'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
<span style="color: #000088;">$pollSingleURI</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$pollSingle</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'uri'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Då får jag fram vilken sida som innehåller shortcoden för att visa en enskild fråga, därefter kan jag haka in mig på filtret &#8216;wp&#8217; och sätta titeln:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'wp'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'titles'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I titels() kollar vi sedan upp om vi står på rätt sida (den som finns i $pollSingleURI) och jämför den med $wp_query->query['pagename']:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> titles<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wp_query</span><span style="color: #339933;">,</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newTitle</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pollSingleURI</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Single poll</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pagename'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$pollSingleURI</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\d+\/?$/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'page'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$pollID</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$wp_query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'page'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_results</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT subject FROM <span style="color: #009933; font-weight: bold;">%s</span>poll WHERE id = <span style="color: #009933; font-weight: bold;">%d</span> LIMIT 1&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prefix</span><span style="color: #339933;">,</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">escape</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pollID</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #666666; font-style: italic;">// Set title</span>
      <span style="color: #000088;">$newTitle</span> <span style="color: #339933;">=</span> esc_html<span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">subject</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'wp_title'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'frontend_set_title'</span> <span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ovanstående SQL-fråga hämtar just nu frågans titel, men detta ändrar du givetvis till det du vill ha som titel.</p>
<p>Och eftersom PHP fortfarande har lite problem med closures/anonyma funktioner så måste titeln sättas separat:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> frontend_set_title<span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #339933;">,</span> <span style="color: #000088;">$separator</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$newTitle</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">return</span> esc_html<span style="color: #009900;">&#40;</span><span style="color: #000088;">$newTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$separator</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Allt är ryckt ur en klass för att lättare kunna visa hur det fungerar, därav alla globala variabler *urk*. Denna metod kräver inga &#8221;rewrites&#8221; eller &#8221;template redirect intercepts&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>/2010/07/21/wordpress-pluginguide-satta-ny-titel-i-en-shortcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visa ID på Media i WordPress</title>
		<link>/2010/06/30/visa-id-pa-media-i-wordpress/</link>
		<comments>/2010/06/30/visa-id-pa-media-i-wordpress/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 11:46:37 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=250</guid>
		<description><![CDATA[Jag hade nyss ett behov på jobbet att visa vilket ID ett objekt har i mediaredigeraren (WordPress). Detta kan vara bra att ha när man ska bygga gallerier, framförallt när man exkluderar vissa bilder genom att använda ID:et. Kod: add_filter&#40;'attachment_fields_to_edit', 'enable_media_id', 10, 2&#41;; function enable_media_id&#40; $form_fields, $post &#41; &#123; $form_fields&#91;&#34;enable-media-id&#34;&#93; = array&#40;&#34;label&#34; =&#62; &#34;MediaID&#34;, &#34;input&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>Jag hade nyss ett behov <a href="http://www.populate.se">på jobbet</a> att visa vilket ID ett objekt har i mediaredigeraren (WordPress). Detta kan vara bra att ha när man ska bygga gallerier, framförallt när man exkluderar vissa bilder genom att använda ID:et.</p>
<p>Kod:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'attachment_fields_to_edit'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'enable_media_id'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> enable_media_id<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$form_fields</span><span style="color: #339933;">,</span> <span style="color: #000088;">$post</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$form_fields</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;enable-media-id&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;label&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;MediaID&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;input&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;html&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;html&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;&lt;p&gt;&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;/p&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$form_fields</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Bild på hur det kommer se ut:<br />
<a href="http://hassis.com/static/uploads/hassis.com/2010/06/mediaexempel.jpg" rel="lightbox[250]" title="Visa ID på Media i WordPress"><img src="http://hassis.com/static/uploads/hassis.com/2010/06/mediaexempel-287x300.jpg" alt="" width="287" height="300" class="alignnone size-medium wp-image-253" /></a></p>
<p>(Jag såg idag att någon hade önskat denna funktionaliteten på <a href="http://wordpress.org/extend/ideas/topic/display-id-of-pictures">WordPress.org -&gt; Ideas</a>)</p>
]]></content:encoded>
			<wfw:commentRss>/2010/06/30/visa-id-pa-media-i-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>R.I.P PHPSidan 2002-2010</title>
		<link>/2010/06/29/r-i-p-phpsidan-2002-2010/</link>
		<comments>/2010/06/29/r-i-p-phpsidan-2002-2010/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 17:55:03 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Personligt]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=224</guid>
		<description><![CDATA[Läs om PHPSidans historia fram tills nedläggningen, PHPSidan var ända fram tills slutet en av Sveriges ledande diskussionsforum för webbutveckling, främst inom PHP.]]></description>
			<content:encoded><![CDATA[<p><em>PHPSidan var ända fram tills nedläggningen en av Sveriges ledande diskussionsforum för webbutveckling, främst inom PHP.</em></p>
<p>PHPSidan startades av mig och Björn Enochsson i högstadiet (2002) som ett roligt projekt, främst för att jag ville lära mig PHP bättre. På den tiden höll jag på med ASP (Classic) och hade precis börjat titta på PHP. Namnet PHPSidan kommer ifrån den kända <a href="http://www.aspsidan.se">ASPsidan</a>.</p>
<p>I början driftade jag PHPSidan på en server som jag hade hemma hos mina föräldrar i Orsa, efter ett tag så växte sidan sig allt för stor för att jag skulle vilja drifta den på en ostabil 0.5 Mbit/s -lina. Därefter fick vi sponsring från lite olika håll innan vi till slut hamnade hos <a href="http://www.loopia.se">Loopia</a>. </p>
<h3>Så, vad hände sen?</h3>
<p>Väldigt mycket (de första åren), sen blev det mindre och mindre tid över till PHPSidan från både mitt och Björns håll. Om jag inte minns fel så var det 2006 vi släppte PHPSidan version 6, därefter gjorde vi många försök för att få klart en helt ny version som skulle passa våra (och hela webbens) nya behov bättre. Men på grund av tidsbristen så blev aldrig den nya versionen riktigt klar.</p>
<p>En av mina personliga anledningar till att PHPSidan aldrig färdigsställdes, var att jag blev mer och mer övertygad om att de engelska resurserna som fanns (finns) är så mycket bättre än det vi kan publicera. Därför kände jag aldrig det personliga behovet av att göra allt det som de gjorde, fast på svenska.</p>
<h3>Nu då?</h3>
<p>Efter en lång tids velande så tog vi beslutet att lägga ner PHPSidan. Besökarantalet på sidan har sakta men säkert dalat. Jag bestämde att jag inte ville att någon skulle ta över PHPSidan och driva vidare den. En av anledningarna till det beslutet är att domänen fortfarande används aktivt av mig. Att låta någon ta över en viss &#8221;del&#8221; av domänen, men att jag får behålla någon slags kontroll över eposten kändes inte riktigt rätt mot den personen, den personen skulle nog aldrig kunna satsa 110% på PHPSidan utan fullständig kontroll över domänen.</p>
<p>Jag antar att jag samtidigt på något sätt ville att PHPSidan v7 skulle göras på &#8221;mitt&#8221; sätt.</p>
<p>PHPSidan har betytt enormt mycket för mig personligen, jag har fått vänner som jag fortfarande har kontakt med och träffar aktivt. Jag har fått höra från många andra att PHPSidan har betytt väldigt mycket och fått dem att börja med programmering.</p>
<p>Strax innan nedläggningen så startade några på PHPSidan upp <a href="http://phpsverige.se/">PHP Sverige</a>, jag hoppas att många hittar dit och att de gör något riktigt bra av den sidan. Några andra webbplatser ni kan besöka ifall för PHP-relaterade ämnen är <a href="http://www.w3sidan.net">W3sidan</a> och <a href="http://www.phpportalen.net">PHPportalen</a>. Det är fortfarande aktivitet på IRC-kanalen #phpsidan på Quakenet ifall ni känner för att prata med någon av oss.</p>
<h3>Summan av kardemumman</h3>
<p>Tack för denna tid allihop, hoppas vi hörs på andra diskussionsforum och om inte annat så hör gärna av er till mig för att snacka webb. Stort tack till <a href="http://www.loopia.se">Loopia</a> för att ni har tagit hand om oss så länge!</p>
<h3>Nostalgitripp</h3>
<p>Här kan vi se olika utseenden som PHPSidan haft under åren som gått. Ni kan även se några av de tidiga konceptbilderna på version 7.</p>

<a href='/2010/06/29/r-i-p-phpsidan-2002-2010/phpsidan/' title='phpsidan'><img width="150" height="150" src="/static/uploads/hassis.com/2010/06/phpsidan-150x150.jpg" class="attachment-thumbnail" alt="phpsidan" title="phpsidan" /></a>
<a href='/2010/06/29/r-i-p-phpsidan-2002-2010/attachment/3/' title='3'><img width="150" height="150" src="/static/uploads/hassis.com/2010/06/3-150x150.jpg" class="attachment-thumbnail" alt="3" title="3" /></a>
<a href='/2010/06/29/r-i-p-phpsidan-2002-2010/phpsidan4_1/' title='phpsidan4_1'><img width="150" height="150" src="/static/uploads/hassis.com/2010/06/phpsidan4_1-150x150.jpg" class="attachment-thumbnail" alt="phpsidan4_1" title="phpsidan4_1" /></a>
<a href='/2010/06/29/r-i-p-phpsidan-2002-2010/phpsidan5/' title='phpsidan5'><img width="150" height="150" src="/static/uploads/hassis.com/2010/06/phpsidan5-150x150.jpg" class="attachment-thumbnail" alt="phpsidan5" title="phpsidan5" /></a>
<a href='/2010/06/29/r-i-p-phpsidan-2002-2010/v6/' title='v6'><img width="150" height="150" src="/static/uploads/hassis.com/2010/06/v6-150x150.jpg" class="attachment-thumbnail" alt="v6" title="v6" /></a>
<a href='/2010/06/29/r-i-p-phpsidan-2002-2010/final/' title='final'><img width="150" height="150" src="/static/uploads/hassis.com/2010/06/final-150x150.jpg" class="attachment-thumbnail" alt="final" title="final" /></a>
<a href='/2010/06/29/r-i-p-phpsidan-2002-2010/php/' title='PHP'><img width="150" height="150" src="/static/uploads/hassis.com/2010/06/PHP-150x150.gif" class="attachment-thumbnail" alt="PHP" title="PHP" /></a>
<a href='/2010/06/29/r-i-p-phpsidan-2002-2010/phpsajt/' title='phpsajt'><img width="150" height="150" src="/static/uploads/hassis.com/2010/06/phpsajt-150x150.gif" class="attachment-thumbnail" alt="phpsajt" title="phpsajt" /></a>
<a href='/2010/06/29/r-i-p-phpsidan-2002-2010/v7temp/' title='v7temp'><img width="150" height="150" src="/static/uploads/hassis.com/2010/06/v7temp-150x150.jpg" class="attachment-thumbnail" alt="v7temp" title="v7temp" /></a>

<h3>Uppdatering 2010-08-23</h3>
<p>Jag får en del frågor där folk vill ha tillgång till artiklarna och scripten som fanns på PHPSidan för att publicera dessa på sin egen webbplats. Detta går tyvärr inte, eftersom personerna som skrev artiklarna och laddade upp scripten gjorde detta till PHPSidan, jag har ingen rätt att distribuera dessa vidare.</p>
]]></content:encoded>
			<wfw:commentRss>/2010/06/29/r-i-p-phpsidan-2002-2010/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>WordPresstillägg: XC1 Maintenance</title>
		<link>/2009/12/22/wordpresstillagg-xc1-maintenance/</link>
		<comments>/2009/12/22/wordpresstillagg-xc1-maintenance/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 19:44:14 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=85</guid>
		<description><![CDATA[Jag har laddat upp ett wordpress-tillägg under namnet XC1 Maintenance, det används för att sätta webbplatsen i underhållsläge. Inte så mycket mer att säga om detta]]></description>
			<content:encoded><![CDATA[<p>Jag har laddat upp ett wordpress-tillägg under namnet <a href="http://hassis.com/projekt/xc1-maintenance/">XC1 Maintenance</a>, det används för att sätta webbplatsen i underhållsläge. Inte så mycket mer att säga om detta <img src='http://hassis.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>/2009/12/22/wordpresstillagg-xc1-maintenance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Översättningen till Shopp uppdaterad</title>
		<link>/2009/11/26/oversattningen-till-shopp-uppdaterad/</link>
		<comments>/2009/11/26/oversattningen-till-shopp-uppdaterad/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 23:23:11 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Shopp]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=58</guid>
		<description><![CDATA[Nu har jag lagt upp en uppdaterad version av den svenska översättningen för Shopp. Den nya versionen 1.0.17 släpptes för någon timme sedan.]]></description>
			<content:encoded><![CDATA[<p>Nu har jag lagt upp en uppdaterad version av den <a href="http://hassis.com/projekt/shopp_sv-se/">svenska översättningen</a> för <a href="http://www.shopplugin.net">Shopp</a>. Den nya versionen 1.0.17 släpptes för någon timme sedan.</p>
]]></content:encoded>
			<wfw:commentRss>/2009/11/26/oversattningen-till-shopp-uppdaterad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ladda Javascript &#8221;rätt&#8221; i WordPress</title>
		<link>/2009/11/09/ladda-javascript-ratt-i-wordpress/</link>
		<comments>/2009/11/09/ladda-javascript-ratt-i-wordpress/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 19:32:25 +0000</pubDate>
		<dc:creator>Anders</dc:creator>
				<category><![CDATA[Programmering]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://hassis.com/?p=45</guid>
		<description><![CDATA[Den senaste tiden har jag gjort en del jobb i WordPress och kommit i kontakt med många olika tillägg som finns skrivna till WordPress. En irriterande sak med många tillägg är hur deras Javascript läggs till, en bra tumregel är att alltid ladda Javascript i sidfoten. För att åstadkomma detta så ska det sista argumentet [...]]]></description>
			<content:encoded><![CDATA[<p>Den senaste tiden har jag gjort en del jobb i WordPress och kommit i kontakt med många olika tillägg som finns skrivna till WordPress.</p>
<p>En irriterande sak med många tillägg är hur deras Javascript läggs till, en bra tumregel är att <strong>alltid</strong> ladda Javascript i sidfoten. För att åstadkomma detta så ska det sista argumentet i <a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_script">wp_enqueue_script</a> vara satt till <strong>true</strong>.</p>
<p>Så om ni har tid över kan ni försöka uppmärksamma tilläggsutvecklarna som inte gör på detta sätt på problemet.</p>
<p>Ett litet bekymmer som brukar uppstå är även att tillägg som är beroende av jQuery tvingar detta att ladda i sidhuvudet (innan <em>wp_head()</em> ), detta kan du komma runt genom att göra ett litet &#8221;fulhack&#8221; i din <em>functions.php</em>.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// May have to be changed in future depending on jquerys directory</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>is_admin<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    wp_enqueue_script<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'jquery'</span><span style="color: #339933;">,</span> get_option<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'siteurl'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/wp-includes/js/jquery/jquery.js'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Vi är tvungna att se till att jQuery laddas som vanligt i administrationen, därav <em>is_admin()</em>.</p>
<p>I övrigt så är WordPress ganska smidigt att jobba med (så länge du inte försöker göra saker WordPress inte riktigt är tänkt för), akta dig för att aktivera för mycket tillägg bara. Det kan bli en hel del anslutningar för att hämta diverse Javascript och CSS-filer. </p>
<p>För de Javascript och CSS ni lägger till själv kan jag iaf rekommendera <a href="http://wordpress.org/extend/plugins/wp-js/">WP-JS</a> och <a href="http://wordpress.org/extend/plugins/wp-css/">WP-CSS</a> för att slå ihop och komprimera dessa.</p>
]]></content:encoded>
			<wfw:commentRss>/2009/11/09/ladda-javascript-ratt-i-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

