<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2danishfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Netsans</title><link>http://www.netsans.dk</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/netsans" /><description>Næse for design og kommunikation til nettet</description><language>en</language><lastBuildDate>Wed, 19 May 2010 14:09:15 PDT</lastBuildDate><generator>http://wordpress.org/?v=abc</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/netsans" /><feedburner:info uri="netsans" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnetsans" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnetsans" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnetsans" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/netsans" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnetsans" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fnetsans" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnetsans" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item><title>Google Fonts API – Det her er stort!</title><link>http://feedproxy.google.com/~r/netsans/~3/tZDbM08s0FA/google-fonts-api-det-her-er-stort.html</link><category>CSS</category><category>Småtips</category><category>@font-face</category><category>Fonts</category><category>Google</category><category>webfonts</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Morten Brunbjerg Bech</dc:creator><pubDate>Wed, 19 May 2010 14:07:53 PDT</pubDate><guid isPermaLink="false">http://www.netsans.dk/?p=234</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Som bekendt har man relativt begrænsede typografiske muligheder i webdesign. Der findes en del workarounds, såsom <a href="http://cufon.shoqolate.com/generate/">Cufon</a> og <a href="http://wiki.novemberborn.net/sifr/">sIFR</a> og de går an, men det bliver aldrig helt godt. Nu vender Google hele møllen på hovedet med <a href="http://code.google.com/webfonts">hosting af fonts</a> og <a href="http://code.google.com/intl/da-DK/apis/webfonts/docs/getting_started.html#Quick_Start">en API, der gør det sindssygt nemt at implementere</a>.</p>
<p>Et lille eksempel:</p>
<div class="lobster">Skrifttypen Lobster</div>
<p>Smæk dette link ind i head sektionen i dit HTML dokument.</p>
<p><code>&lt;link href='http://fonts.googleapis.com/css?family=<strong>Lobster</strong>' rel='stylesheet' type='text/css'&gt;</code></p>
<p>Så er du klar til at bruge Lobster i din css som enhver anden font.</p>
<p>Det skulle efter sigende fungere helt tilbage til IE6. Skulle man endelig være negativ, kunne man sige at udvalget af skrifttyper stadig er ret begrænset, men mon ikke, der med tiden bliver lavet om på det?</p>
<p><a href="http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-google-fonts-api-youre-going-to-love-this/">Via Nettuts</a>.</p>
<img src="http://feeds.feedburner.com/~r/netsans/~4/tZDbM08s0FA" height="1" width="1"/>]]></content:encoded><description>Som bekendt har man relativt begrænsede typografiske muligheder i webdesign. Der findes en del workarounds, såsom Cufon og sIFR og de går an, men det bliver aldrig helt godt. Nu vender Google hele møllen på hovedet med hosting af fonts og en API, der gør det sindssygt nemt at implementere. Et lille eksempel: Skrifttypen Lobster</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.netsans.dk/google-fonts-api-det-her-er-stort.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.netsans.dk/google-fonts-api-det-her-er-stort.html</feedburner:origLink></item><item><title>Er du front end-ninja på udkig efter nyt job?</title><link>http://feedproxy.google.com/~r/netsans/~3/gO28OPgKP28/job-midt-marketing-interactive-s%c3%b8ger-en-erfaren-frontend-ninja.html</link><category>Småtips</category><category>Front end udvikling</category><category>Ledige job</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Morten Brunbjerg Bech</dc:creator><pubDate>Mon, 17 May 2010 01:46:32 PDT</pubDate><guid isPermaLink="false">http://www.netsans.dk/?p=231</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Mine gamle kolleger hos Midt Marketing Interactive søger en erfaren front end-ninja, der kan bøje en Photoshop-fil om til et færdigt website.</p>
<p>Du skal stå for opsnitning i HTML over implementering i CMS til undervisning af kunden  eller redaktionelt arbejde med tekster og billeder. Du skal samarbejde med Midt Marketings webdesignere om at finde den bedste løsning til kunden i forhold til pris, brugervenlighed  og høj teknisk kvalitet.</p>
<p>Er du lidt af en pixel-pusher, har udpræget kvalitetssans og sætter en ære i at levere løsninger i høj kvalitet? Er du en haj til HTML, CSS, Javascript og kender jQuery ud og ind?</p>
<p>Sådan et job kan du få i Herning. Er du interesseret?<br />
<strong><a href="http://www.it-jobbank.dk/da/job--midt-marketing-interactive-soger-en-erfaren-frontend-ninja--50246828.job">Se hele jobbeskrivelsen her.</a></strong></p>
<img src="http://feeds.feedburner.com/~r/netsans/~4/gO28OPgKP28" height="1" width="1"/>]]></content:encoded><description>Mine gamle kolleger hos Midt Marketing Interactive søger en erfaren front end-ninja, der kan bøje en Photoshop-fil om til et færdigt website. Du skal stå for opsnitning i HTML over implementering i CMS til undervisning af kunden eller redaktionelt arbejde med tekster og billeder. Du skal samarbejde med Midt Marketings webdesignere om at finde den</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.netsans.dk/job-midt-marketing-interactive-s%c3%b8ger-en-erfaren-frontend-ninja.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.netsans.dk/job-midt-marketing-interactive-s%c3%b8ger-en-erfaren-frontend-ninja.html</feedburner:origLink></item><item><title>Øg maximum upload filstørrelse på 2 mb i WordPress</title><link>http://feedproxy.google.com/~r/netsans/~3/jDQDuPVuzok/%c3%b8g-maximum-upload-filst%c3%b8rrelse-pa-2-mb-i-wordpress.html</link><category>Brugervenlighed</category><category>Wordpress</category><category>Billeder</category><category>Filstørrelser</category><category>PHP</category><category>php.ini</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Morten Brunbjerg Bech</dc:creator><pubDate>Mon, 22 Mar 2010 04:29:29 PDT</pubDate><guid isPermaLink="false">http://www.netsans.dk/?p=227</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Som udgangspunkt kan man kun uploade filer op til 2 mb i WordPress. Ikke nødvendigvis et problem for garvede brugere, der er i besiddelse af et billedbehandlingsprogram, men absolut et problem for brugere, der tror, et billede er et billede, og ikke har begreb om filstørrelser. Fotos fra et 5 megapixel kompaktkamera fylder nemt et par mb, og visse brugere vil undre sig over at være ude af stand til at uploade sådan en svend direkte fra kameraet.</p>
<p>Det har egentlig ikke noget med WordPress at gøre, men derimod indstillingerne i php.ini. Det er imidlertid ikke alle webhoteller, der tillader sine brugere at ændre i php.ini. Hos Gigahost kan man ændre visse indstillinger, men det slår af en eller anden grund ikke helt igennem i WordPress.</p>
<p>Jeg har imidlertid fået følgende løsning til at fungere:</p>
<p>1. Opret en ny php.ini fil med følgende indhold:<br />
<code>
<pre>
post_max_size = 20M
upload_max_filesize = 20M
max_execution_time = 900
</pre>
<p></code></p>
<p>2. Upload filen til <code>wp-admin</code> mappen.</p>
<p>Og voila! Nu kan man uploade filer op til 20 mb.</p>
<p>Via <a href="http://www.likoma.com/nextgen-gallery-upload_max_filesize/">Likoma.com</a></p>
<img src="http://feeds.feedburner.com/~r/netsans/~4/jDQDuPVuzok" height="1" width="1"/>]]></content:encoded><description>Som udgangspunkt kan man kun uploade filer op til 2 mb i WordPress. Ikke nødvendigvis et problem for garvede brugere, der er i besiddelse af et billedbehandlingsprogram, men absolut et problem for brugere, der tror, et billede er et billede, og ikke har begreb om filstørrelser. Fotos fra et 5 megapixel kompaktkamera fylder nemt et</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.netsans.dk/%c3%b8g-maximum-upload-filst%c3%b8rrelse-pa-2-mb-i-wordpress.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.netsans.dk/%c3%b8g-maximum-upload-filst%c3%b8rrelse-pa-2-mb-i-wordpress.html</feedburner:origLink></item><item><title>Sådan fixes IE7′s z-index bug med jQuery</title><link>http://feedproxy.google.com/~r/netsans/~3/wRQDkxdE-x8/fix-ie7-z-index-bug-jquery.html</link><category>CSS</category><category>Webdesign</category><category>Webudvikling</category><category>Bug fixes</category><category>Bugs</category><category>ie</category><category>Internet Explorer</category><category>Javascript</category><category>jQuery</category><category>z-index</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Morten Brunbjerg Bech</dc:creator><pubDate>Tue, 09 Feb 2010 03:48:33 PST</pubDate><guid isPermaLink="false">http://www.netsans.dk/?p=202</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Det er sædvanligvis Internet Explorer, der kræver ekstra opmærksomhed, workarounds og udviklingstid, når man skal gøre et website kompatibelt på tværs af webbrowsere. Jeg har lige spenderet en del tid på at komme omkring en grov renderingsfejl i IE før version 8, der rammer den orden hvori CSS positionerede HTML elementer  stables. Jeg <a href="http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html">er rendt ind i IE&#8217;s z-index bug</a>.</p>
<p>Opgaven: En lang række list items skal udstyres med forklaringer i form af drop downs. HTML koden ser således ud.</p>
<p><code> </p>
<pre>
&lt;ul class="linklist"&gt;
  &lt;li&gt;
    &lt;h4&gt;Overskrift 1&lt;/h4&gt;
    &lt;a href="#" class="dropdown-trigger"&gt;Vis beskrivelse&lt;/a&gt;
    &lt;div id="beskrivelse-1"&gt;
      Beskrivende note der falder ned, når man klikker på linket "Vis beskrivelse".
    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;h4&gt;Overskrift 2&lt;/h4&gt;
    &lt;a href="#" class="dropdown-trigger"&gt;Vis beskrivelse&lt;/a&gt;
    &lt;div id="beskrivelse-2"&gt;
      Beskrivende note der falder ned, når man klikker på linket "Vis beskrivelse".
    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</pre>
<p></code></p>
<p>CSS koden ser således ud.</p>
<p><code></p>
<pre>
.linklist li {position:relative;width:270px;}
.linklist li div.hidden {display:none;} /* skjuler div'en, før den aktiveres med jQuery .slideDown() */
.linklist li div {
  background:#ddd;
  border:1px solid #ccc;
  left:0;
  padding:6px 12px 12px;
  position:absolute;
  top:20px;
  width:244px;
}
</pre>
<p></code></p>
<p><code>&lt;div&gt;</code> elementet bør således placere sig ovenpå <code>&lt;li&gt;</code> elementerne. Det virker bare ikke i IE før version 8, fordi stakkeordenen er fejlbehæftet. Jeg prøvede at løse problemet ved at definere en lavere z-index på  <code>&lt;li&gt;</code> elementerne, end på <code>&lt;div&gt;</code> elementerne, men det løste ikke problemet. De efterfølgende <code>&lt;li&gt;</code> elementer blev stadig vist ovenpå det aktive  <code>&lt;div&gt;</code>element.</p>
<p><a href="http://www.vancelucas.com/blog/fixing-ie7-z-index-issues-with-jquery/">Efter en del søgning på nettet fandt jeg Vance Lucas&#8217; jQuery-baserede løsning af problemet</a>: </p>
<p><code>
<pre>
$(function() {
  var zIndexNumber = 1000;
  $('div').each(function() {
    $(this).css('zIndex', zIndexNumber);
    zIndexNumber -= 10;
  });
});
</pre>
<p></code></p>
<p>Ideen er, dynamisk at vende standard z-index stakkeordenen af HTML elementerne om. Således sikrer man, at elementer, der ligger højere i kildekoden også har en højere z-index orden på siden, hvilket burde løse renderingsproblemet i IE.</p>
<p>Det løste ikke umiddelbart mit problem. Jeg havde imidlertid <a href="http://brenelz.com/2009/02/03/squish-the-internet-explorer-z-index-bug/">andetsteds læst, at man skulle kunne løse problemet ved at give det relativt positionerede omgivende element en højere z-index orden</a>, end det absolut positionerede element.</p>
<p>Det gav mig ideen til også at lave en Vance Lucas jQuery løsning på det relativt positionerede <code>&lt;li&gt;</code> element, men med en højere z-index orden. Altså:</p>
<p><code>
<pre>
$(function() {
  var LizIndexNumber = 1100;
  $('li').each(function() {
    $(this).css('zIndex', LizIndexNumber);
    LizIndexNumber -= 10;
  });
  var DivzIndexNumber = 1000;
  $('div').each(function() {
    $(this).css('zIndex', DivzIndexNumber);
    DivzIndexNumber -= 10;
  });
});
</pre>
<p></code></p>
<p>Og voila! Så virker det.</p>
<img src="http://feeds.feedburner.com/~r/netsans/~4/wRQDkxdE-x8" height="1" width="1"/>]]></content:encoded><description>Det er sædvanligvis Internet Explorer, der kræver ekstra opmærksomhed, workarounds og udviklingstid, når man skal gøre et website kompatibelt på tværs af webbrowsere. Jeg har lige spenderet en del tid på at komme omkring en grov renderingsfejl i IE før version 8, der rammer den orden hvori CSS positionerede HTML elementer  stables. Jeg er rendt</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.netsans.dk/fix-ie7-z-index-bug-jquery.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://www.netsans.dk/fix-ie7-z-index-bug-jquery.html</feedburner:origLink></item><item><title>Adgang til Apache på mac fra et virtuelt OS</title><link>http://feedproxy.google.com/~r/netsans/~3/FHKnevRtyog/adgang-til-apache-pa-mac-fra-et-virtuelt-os.html</link><category>Tutorials</category><category>hosts filen</category><category>mac</category><category>MAMP</category><category>Virtual Hosts</category><category>VirtualBox</category><category>Virtuelle operativsystemer</category><category>windows</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Morten Brunbjerg Bech</dc:creator><pubDate>Wed, 20 Jan 2010 05:29:56 PST</pubDate><guid isPermaLink="false">http://www.netsans.dk/?p=200</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Jeg har lige installeret et virtuelt gæsteoperativsystem i form af Windows XP via <a href="http://www.virtualbox.org/">VirtualBox</a> på min mac for at kunne teste web-produktioner i diverse versioner af Internet Explorer. Men det kneb lidt i den virtuelle Win XP med at få fat på de sites, jeg har kørende i virtuelle hosts under <a href="http://www.mamp.info/en/index.html">MAMP</a> på mac&#8217;en.</p>
<p>Løsningen skal findes i hosts filen på gæste OS&#8217;et (den virtuelle Windows). Hosts filen ligger her:</p>
<p>c:\windows\system32\drivers\etc\hosts</p>
<p>Her tilføjes en linie for hver virtuelle host, man har sat op i MAMP&#8217;s Apache config fil:</p>
<p>10.0.2.2 sitenavn.tld</p>
<p>Hvor IP-adressen bruges som DNS-resolver af VirtualBox til at identificere værtscomputeren, og sitenavn.tld er navnet på det site/virtuelle host, man har sat op i Apache.</p>
<p><a href="http://forums.virtualbox.org/viewtopic.php?f=8&amp;t=19233&amp;start=0">Jeg fandt løsningen i VirtualBox&#8217; forum</a>.</p>
<p>Det er muligvis banalt for netværksfolk, men jeg har efterhånden fået løst en del problemer via hosts filen på både mac, win og linux. Hosts-filen er klart et mere centralt stykke værktøj, end jeg forstod for bare få år siden.</p>
<p>Se evt. også hvordan man opsætter &#8220;<a href="http://www.netsans.dk/virtual-hosts-pa-mac-under-mamp.html">Virtual hosts på mac under MAMP</a>&#8220;.</p>
<img src="http://feeds.feedburner.com/~r/netsans/~4/FHKnevRtyog" height="1" width="1"/>]]></content:encoded><description>Jeg har lige installeret et virtuelt gæsteoperativsystem i form af Windows XP via VirtualBox på min mac for at kunne teste web-produktioner i diverse versioner af Internet Explorer. Men det kneb lidt i den virtuelle Win XP med at få fat på de sites, jeg har kørende i virtuelle hosts under MAMP på mac&amp;#8217;en. Løsningen</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.netsans.dk/adgang-til-apache-pa-mac-fra-et-virtuelt-os.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.netsans.dk/adgang-til-apache-pa-mac-fra-et-virtuelt-os.html</feedburner:origLink></item><item><title>Sådan kaldes javascripts i WordPress</title><link>http://feedproxy.google.com/~r/netsans/~3/0hbRM846_c0/sadan-kaldes-javascripts-i-wordpress.html</link><category>Tutorials</category><category>Webudvikling</category><category>Wordpress</category><category>Javascript</category><category>jQuery</category><category>Plugins</category><category>Themes</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Morten Brunbjerg Bech</dc:creator><pubDate>Mon, 30 Nov 2009 00:50:34 PST</pubDate><guid isPermaLink="false">http://www.netsans.dk/?p=198</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Da version 1 af stylesheets og templates til <a href="http://horsensbibliotek.dk/">Horsens kommunes biblioteker</a> i sin tid blev kodet op, havde jeg hentet javascript-biblioteket jQuery + diverse plugins, placeret dem i wp-theme mappen og kaldt dem manuelt i theme&#8217;ets header.php script. Det var før jeg fandt ud af, at jQuery + plugins faktisk er inkluderet i WordPress og kan kaldes med indbyggede funktioner.</p>
<p>Den &#8220;rigtige&#8221; måde at kalde javascripts på i WordPress er med fuktionen <code>wp_enqueue_script</code>. Med denne funktion kan man kalde en række indbyggede javascript biblioteker, heriblandt <a href="http://jquery.com/">jQuery</a>, <a href="http://script.aculo.us/">Scriptaculous</a> og <a href="http://www.prototypejs.org/">Prototype</a>. For at kalde jQuery, skriver man således følgende i header.php:</p>
<p><code>&lt;?php wp_enqueue_script('jquery'); ?&gt;</code></p>
<p>Har man samtidig brug for diverse jQuery afhængige plugins, f.eks. <a href="http://jquery.com/demo/thickbox/">Thickbox</a> eller <a href="http://jqueryui.com/">jQuery UI</a>, kan man nøjes med at kalde disse, da jQuery så kaldes automatisk. I så fald kan man nøjes med følgende:</p>
<p><code>&lt;?php wp_enqueue_script('thickbox'); ?&gt;<br />
&lt;?php wp_enqueue_script('jquery-ui-core'); ?&gt;</code></p>
<p>Har man brug for javascripts, der ikke er indbygget i WordPress, kan disse også kaldes med <code>wp_enqueue_script</code>. Hent koden, f.eks. <a href="http://malsup.com/jquery/cycle/">jQuery Cycle</a>, og placér den i en dertil indrettet mappe i dit theme. Kald det dernæst på følgende måde:</p>
<p><code>&lt;?php wp_enqueue_script('jquery.cycle.all.pack','/wp-content/themes/dit-theme-navn/din-javascript-mappe/jquery.cycle.all.pack.js',array('jquery')); ?&gt;</code></p>
<p><a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_script">Se dokumentation til funktionen wp_enqueue_script her</a>.</p>
<img src="http://feeds.feedburner.com/~r/netsans/~4/0hbRM846_c0" height="1" width="1"/>]]></content:encoded><description>Da version 1 af stylesheets og templates til Horsens kommunes biblioteker i sin tid blev kodet op, havde jeg hentet javascript-biblioteket jQuery + diverse plugins, placeret dem i wp-theme mappen og kaldt dem manuelt i theme&amp;#8217;ets header.php script. Det var før jeg fandt ud af, at jQuery + plugins faktisk er inkluderet i WordPress og</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.netsans.dk/sadan-kaldes-javascripts-i-wordpress.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.netsans.dk/sadan-kaldes-javascripts-i-wordpress.html</feedburner:origLink></item><item><title>Virtual hosts på mac under MAMP</title><link>http://feedproxy.google.com/~r/netsans/~3/3LMojpuQWqk/virtual-hosts-pa-mac-under-mamp.html</link><category>Småtips</category><category>Webudvikling</category><category>DNS</category><category>hosts filen</category><category>IP</category><category>mac</category><category>Virtual Hosts</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Morten Brunbjerg Bech</dc:creator><pubDate>Fri, 13 Nov 2009 03:17:24 PST</pubDate><guid isPermaLink="false">http://www.netsans.dk/?p=196</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Jeg roder i øjeblikket med en testinstallation af <a href="http://www.magentocommerce.com/">Magento</a> på min mac. I den forbindelse havde jeg brug for at rette i etc/hosts/ filen, men den er ikke umiddelbart til at finde på en mac, da den er skjult. Det findes der heldigvis råd for. Jeg fandt en glimrende vejledning her:</p>
<p><a href="http://foundationphp.com/tutorials/vhosts_leopard.php">Foundation PHP: Creating a virtual host in Mac OS X 10.5 (Leopard)</a></p>
<p>Jeg bruger imidlertid ikke mac&#8217;ens indbyggede Apache server, men <a href="http://www.mamp.info/en/index.html">MAMP</a>. Derfor kunne jeg ikke rigtig bruge ovenstående vejledning til opsætning af virtual hosts i Apache&#8217;s konfigurationsfil, httpd.conf. Det findes der også råd for. Her er en fin vejledning i opsætning af virtual hosts under MAMP:</p>
<p><a href="http://www.sawmac.com/mamp/virtualhosts/">Sawyer McFarland Media, Inc.: Setting Up Virtual Hosts for MAMP</a></p>
<p>Samme site har en fin indførsel i, <a href="http://www.sawmac.com/mamp/index.php">hvordan man slipper for MAMP&#8217;s default porte 8888 og 8889 i sine lokale URL&#8217;er (Se artiklens figur 3)</a>.</p>
<img src="http://feeds.feedburner.com/~r/netsans/~4/3LMojpuQWqk" height="1" width="1"/>]]></content:encoded><description>Jeg roder i øjeblikket med en testinstallation af Magento på min mac. I den forbindelse havde jeg brug for at rette i etc/hosts/ filen, men den er ikke umiddelbart til at finde på en mac, da den er skjult. Det findes der heldigvis råd for. Jeg fandt en glimrende vejledning her: Foundation PHP: Creating a</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.netsans.dk/virtual-hosts-pa-mac-under-mamp.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.netsans.dk/virtual-hosts-pa-mac-under-mamp.html</feedburner:origLink></item><item><title>WordPress som CMS: En sidebar pr. kategori</title><link>http://feedproxy.google.com/~r/netsans/~3/4rJ3GO6uKaA/wordpress-som-cms-en-sidebar-pr-kategori.html</link><category>Tutorials</category><category>Webudvikling</category><category>Wordpress</category><category>CMS</category><category>Kategorier</category><category>Sidebars</category><category>Widgets</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Morten Brunbjerg Bech</dc:creator><pubDate>Tue, 01 Sep 2009 07:34:42 PDT</pubDate><guid isPermaLink="false">http://www.netsans.dk/?p=188</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Opnå mere fleksibilitet i brugen af WordPress som CMS med én sidebar pr. kategori. Få PHP koden her.</strong></p>
<p>Mange designere og udviklere vælger at bruge WordPress som CMS  fordi det er så enkelt og relativt nemt at implementere og udvikle til. Én af WordPress&#8217; store begrænsninger i rollen som CMS er imidlertid sidebar-metaforen. Som udgangspunkt er der i de fleste themes kun én eller to sidebars til rådighed sitewide, netop fordi WordPress er skabt som blogging værktøj. I en blog er det sjældent nødvendigt med flere.</p>
<p>Men har man brug for et decideret CMS, er der behov for relevant sekundært indhold på <em>alle</em> sider. Noget, der relaterer sig til sidens primære indhold og ikke bare en generel liste med kategorier, et arkiv og en blog roll.</p>
<p>Og så fik jeg den ide at man måske kunne opnå noget brugbart, hvis man kunne oprette en sidebar pr. emnekategori. Så ville det være muligt at målrette widget-indhold til de enkelte emner og dermed øge relevansen af sekundært indhold på indlæg og kategorisider. Efter en del eksperimenteren, lykkedes det mig at skrue nedenstående sammen.</p>
<p><strong>Nedenstående kode skal stå i dit themes functions.php fil:</strong></p>
<pre><code>
&lt;?php
# Get sidebar names from db.
global $wpdb;
$my_widget_name = $wpdb-&gt;get_col("SELECT slug
FROM $wpdb-&gt;terms, $wpdb-&gt;term_taxonomy
WHERE $wpdb-&gt;terms.term_id=term_taxonomy_id
AND taxonomy='category' AND count!=0 ORDER BY name ASC");

# Register one sidebar per category name.
foreach($my_widget_name as $my_widget) {
  register_sidebar(array(
    'name' =&gt; 'Category: ' . $my_widget,
    'before_widget' =&gt; '&lt;div id="%1$s" class="%2$s widget"&gt;',
    'after_widget' =&gt; '&lt;/div&gt;',
    'before_title' =&gt; '&lt;h3 class="widget-title"&gt;',
    'after_title' =&gt; '&lt;/h3&gt;', ));
}
?&gt;
</code></pre>
<p>Først opretter vi en forbindelse til databasen, henter kategorinavn og id fra alle kategorier, der ikke er tomme, samt sorterer kategorierne efter navn. Dernæst registrerer vi vores nye sidebars i WordPress med funktionen <code>register_sidebar</code> samt navngiver hver sidebar med det enkelte kategorinavn.</p>
<p><strong>Indsæt de nye sidebars i dit themes sidebar.php fil:</strong></p>
<pre><code>
&lt;?php
# If this is a category archive page.
if (is_category()) {
	global $wp_query;
	$cat_obj = $wp_query-&gt;get_queried_object();
	$category_slug = $cat_obj-&gt;slug;
}
# If this is a post.
elseif (is_single()) {
	$category = get_the_category();
	$category_slug = $category[0]-&gt;category_nicename;
}
# The widget.
if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('category_' . $category_slug) ) : ?&gt;
&lt;div id="search" class="widget widget_search"&gt;
	&lt;h3&gt;&lt;?php _e('Search'); ?&gt; &lt;?php bloginfo('name'); ?&gt;&lt;/h3&gt;
	&lt;?php include (TEMPLATEPATH . '/searchform.php'); ?&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;
</code></pre>
<p>For at kalde den rigtige sidebar, skal vi have fat i det rigtige kategorinavn. Hvis siden er en kategori-side, kalder vi kategoriens navn. Men hvis siden er et indlæg, kalder vi navnet på den første kategori, siden er gemt i. Nu udskrives kategoriens sidebar, hvis du befinder dig på en kategori-side eller et indlæg.</p>
<p><strong>Hvad så med &#8216;sider&#8217;?</strong><br />
Man kan lave noget tilsvarende med WordPress&#8217; side-metafor. I stedet for at tage fat i kategorierne i databasekaldet, skal man så bare have fat i tilsvarende for &#8216;sider&#8217;. I så fald vil databasekaldet se ud som følger:</p>
<pre><code>
$page_sidebars = $wpdb-&gt;get_col("SELECT post_name
FROM $wpdb-&gt;posts WHERE post_type='page'
AND post_status='publish' AND post_parent='0'
ORDER BY menu_order ASC");
</code></pre>
<p><strong>Bemærk!</strong><br />
Man skal være forsigtig med metoden, hvis man har mange kategorier og/eller sider, da WordPress laver et kald til databasen for hver sidebar, den skal loade i backend&#8217;en. Skal den lave for mange kald, får man time out og så fungerer metoden naturligvis ikke.</p>
<img src="http://feeds.feedburner.com/~r/netsans/~4/4rJ3GO6uKaA" height="1" width="1"/>]]></content:encoded><description>Opnå mere fleksibilitet i brugen af WordPress som CMS med én sidebar pr. kategori. Få PHP koden her. Mange designere og udviklere vælger at bruge WordPress som CMS fordi det er så enkelt og relativt nemt at implementere og udvikle til. Én af WordPress&amp;#8217; store begrænsninger i rollen som CMS er imidlertid sidebar-metaforen. Som udgangspunkt</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.netsans.dk/wordpress-som-cms-en-sidebar-pr-kategori.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">9</slash:comments><feedburner:origLink>http://www.netsans.dk/wordpress-som-cms-en-sidebar-pr-kategori.html</feedburner:origLink></item><item><title>WordPress hacked, defaced og inficeret med en grim iframe</title><link>http://feedproxy.google.com/~r/netsans/~3/5qdP-fPvxSU/wordpress-hacked-defaced-og-inficeret-med-en-grim-iframe.html</link><category>Webudvikling</category><category>.htaccess</category><category>Hackere</category><category>hacking</category><category>Iframes</category><category>malware</category><category>Sikkerhed</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Morten Brunbjerg Bech</dc:creator><pubDate>Wed, 26 Aug 2009 06:21:38 PDT</pubDate><guid isPermaLink="false">http://www.netsans.dk/?p=183</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>For 1½ års tid siden skiftede jeg webhotel til Gigahost efter i flere år at have været kunde hos Unoeuro. Det tillokkende var funktionaliteten og muligheden for flere domæner og databaser på samme konto. Jeg havde aldrig sikkerhedsproblemer hos Unoeuro, men siden skiftet til Gigahost er jeg blevet hacket 3 gange. I sidste uge måtte mine sites så ned og ligge igen.</p>
<p><strong>Hvad var blevet hacket?</strong></p>
<p>Mine WordPress sites havde fået nye forsider og alle index og default filer havde fået tilføjet en iframe, der sendte evt. besøgende hen et sted, hvor de kunne få inficeret deres computer med malware eller virus.</p>
<p>Det så alt sammen meget automatgenereret ud, for det var det eneste, der var gjort. Ingenting i databaserne, så det har utvivlsomt været en robot. <a href="http://wordpress.org/support/topic/281767">Det lignede det, som denne WordPress bruger har været ude for</a>.</p>
<p>Jeg er usikker på, hvordan hackeren er kommet ind. Det kan være via<a href="http://en.wikipedia.org/wiki/Remote_File_Inclusion"> remote file inclusion (RFI)</a>, men jeg har en grum mistanke om at mine ftp oplysninger er blevet opsnappet, eftersom hackeren er kommet godt omkring på alle mine sites.</p>
<p><strong>Hvordan kan man opsnappe ftp oplysningerne?</strong></p>
<p>Ofte vil det kunne gøres via inficering med vira eller malware på den forurettedes computer. Jeg har scannet mine maskiner for begge dele og tror ikke det er sket ad den vej. Men hos Gigahost bruger man kontonavn og kontokode til alt. Derfor står det også i wp-config.php, konfigurationsfilen til WordPress, så WordPress kan komme i kontakt med databasen. Har man først fået fat på brugernavn og kodeord herfra, har man således også brugernavn og kodeord til ftp og så er der fri adgang.</p>
<p><strong>Hvad gør man for at rense et inficeret site?</strong></p>
<p>Alle toplevel index.php filer var udskiftet med en index.htm fil og der var tilføjet iframes i bunden af index.php filerne i mine theme-mapper samt default og index filer i øvrige mapper. Jeg fjernede alle iframes, slettede WordPress helt og installerede forfra, for at være sikker på at de inficerede filer var helt væk.</p>
<p><a href="http://rzaman.com/remove-iframe-hack/">rzaman.com har en udmærket opskrift på, hvordan man gør.</a></p>
<p><a href="http://www.dnxpert.com/2009/07/24/cleaning-up-wordpress-iframe-hack/">Dnxpert har et fint indlæg om, hvordan man også undersøger, om databasen er inficeret.</a></p>
<p><a href="http://smackdown.blogsblogsblogs.com/2008/06/24/how-to-completely-clean-your-hacked-wordpress-installation/">Også Smackdown har en glimrende artikel om emnet.</a></p>
<p><strong>Hvordan kan man øge sikkerheden?</strong></p>
<p>Brug .htaccess filer til at blokere adgangen til bestemte mapper og filer. Her er et par ressourcer, jeg har fundet brugbare:</p>
<ul>
<li><a href="http://blogingenuity.com/2009/05/14/remote-file-inclusion-rfi-attempts-detecting-tracking-and-mitigating/#more-369">Remote File Inclusion (RFI) Attempts &#8211; Detecting, Tracking, and Mitigating or Stopping</a><br />
Forklarer begrebet RFI og anviser, hvordan man kan beskytte sig mod det med bl.a. .htaccess.</li>
<li><a href="http://codex.wordpress.org/htaccess_for_subdirectories">htaccess for subdirectories</a><br />
Beskriver hvordan man kan begrænse adgangen til undermapper med .htaccess.</li>
<li><a href="http://www.noupe.com/how-tos/wordpress-security-tips-and-hacks.html">WordPress Security Tips and Hacks</a><br />
Generelle tips til forbedring af sikkerheden i WordPress.</li>
</ul>
<p>Sørg også for at begrænse rettighederne på dine filer og mapper. Jeg bemærkede, at man nemt overser wp-config.php i den henseende. Sæt manuelt rettighederne på denne fil til 600, så andre ikke kan læse den. <a href="http://codex.wordpress.org/Changing_File_Permissions">Se udførlig artikel hos WordPress om hvordan man gør</a>.</p>
<p>Installér sikkerhedsplugins i WordPress, f.eks.:</p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/askapache-password-protect/">AskApache Password Protect</a> &#8211; der genererer .htaccess filer for dig.</li>
<li><a href="http://wordpress.org/extend/plugins/login-lockdown/">Login LockDown</a> &#8211; der tjekker om der har været mange forgæves loginforsøg fra en given ip adresse, samt blokerer denne.</li>
<li><a href="http://wordpress.org/extend/plugins/antivirus/">AntiVirus</a> &#8211; der tjekker dine theme-filer for infektion.</li>
<li><a href="http://wordpress.org/extend/plugins/wp-security-scan/">WP Security Scan</a> &#8211; der scanner din WordPress installation for sårbarheder og foreslår udbedringer.</li>
</ul>
<p>Og endelig: Skift kodeord, skift kodeord, skift kodeord. <a href="http://www.blogherald.com/2007/05/08/protect-your-blog-with-a-solid-password/">The Blog Herald har gode tips til, hvordan man finder på et godt ét</a>.</p>
<p><strong>Har Gigahost et sikkerhedshul og bliver jeg hacket igen?</strong></p>
<p>Gigahost har ikke nødvendigvis et sikkerhedshul, men det er da problematisk, at man skal bruge samme brugernavn og kodeord til alt. Og ja, eftersom jeg ikke helt ved, hvordan hackeren kommer ind, bliver jeg måske hacket igen. Men så kan det altså godt ske, jeg skifter webhotel og ser om det løser problemet.</p>
<img src="http://feeds.feedburner.com/~r/netsans/~4/5qdP-fPvxSU" height="1" width="1"/>]]></content:encoded><description>For 1½ års tid siden skiftede jeg webhotel til Gigahost efter i flere år at have været kunde hos Unoeuro. Det tillokkende var funktionaliteten og muligheden for flere domæner og databaser på samme konto. Jeg havde aldrig sikkerhedsproblemer hos Unoeuro, men siden skiftet til Gigahost er jeg blevet hacket 3 gange. I sidste uge måtte</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.netsans.dk/wordpress-hacked-defaced-og-inficeret-med-en-grim-iframe.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.netsans.dk/wordpress-hacked-defaced-og-inficeret-med-en-grim-iframe.html</feedburner:origLink></item><item><title>Dagens linkhøst, 26. august</title><link>http://feedproxy.google.com/~r/netsans/~3/GXFuR6IrIdo/dagens-linkh%c3%b8st-26-august.html</link><category>Links</category><category>@font-face</category><category>CSS</category><category>Delicious</category><category>extensions</category><category>Fonts</category><category>mediawiki</category><category>pdf</category><category>Plugins</category><category>typography</category><category>Webdesign</category><category>webfonts</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Morten Brunbjerg Bech</dc:creator><pubDate>Wed, 26 Aug 2009 04:01:54 PDT</pubDate><guid isPermaLink="false">http://www.netsans.dk/?p=181</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Bogmærker indsamlet den 26. august fra 11:29 til 11:58</p>
<dl>
<dt><a href="http://www.zeldman.com/2009/08/17/web-fonts-and-standards/">Web fonts and standards &ndash; Jeffrey Zeldman Presents The Daily Report</a></dt>
<dd><span class="delicious-date">26. august</span><br />As far back as 1998, CSS2 provided a way to link to real fonts from your style sheet. Nice round up on how to implement fonts with @font-face.</dd>
<dt><a href="http://webfonts.info/wiki/index.php?title=Fonts_available_for_%40font-face_embedding">Fonts available for @font-face embedding &#8211; Webfonts.info</a></dt>
<dd><span class="delicious-date">26. august</span><br />Nice collection of fonts for the web.</dd>
<dt><a href="http://meta.wikimedia.org/wiki/PDF_doc_search_II">PDF doc search II &#8211; Meta</a></dt>
<dd><span class="delicious-date">26. august</span><br />I edited includes/SpecialSearch.php to make the saved PDFs searchable. This contribution is limited to a small amount of PDFs. When creating the PDFs don&acute;t use compress text and images in e.g. acrobat distiller.</dd>
</dl>
<img src="http://feeds.feedburner.com/~r/netsans/~4/GXFuR6IrIdo" height="1" width="1"/>]]></content:encoded><description>Bogmærker indsamlet den 26. august fra 11:29 til 11:58 Web fonts and standards &amp;#8211; Jeffrey Zeldman Presents The Daily Report 26. augustAs far back as 1998, CSS2 provided a way to link to real fonts from your style sheet. Nice round up on how to implement fonts with @font-face. Fonts available for @font-face embedding &amp;#8211;</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.netsans.dk/dagens-linkh%c3%b8st-26-august.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.netsans.dk/dagens-linkh%c3%b8st-26-august.html</feedburner:origLink></item></channel></rss>
