<?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>designfox.co</title>
	<atom:link href="http://www.designfox.co/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.designfox.co</link>
	<description></description>
	<lastBuildDate>Sat, 11 Feb 2012 04:32:42 +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>Custom php.ini Cautions</title>
		<link>http://www.designfox.co/news/custom-php-ini-cautions/</link>
		<comments>http://www.designfox.co/news/custom-php-ini-cautions/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 22:18:53 +0000</pubDate>
		<dc:creator>Amber</dc:creator>
				<category><![CDATA[News & Updates]]></category>

		<guid isPermaLink="false">http://www.designfox.co/?p=850</guid>
		<description><![CDATA[I was working on a client site today that required me to create a custom php.ini file so that I was able to enable some PHP functions that were disabled by default by their hosting provider.  While I was doing this, it got me thinking that I should give you all a heads up about [...]]]></description>
			<content:encoded><![CDATA[<p>I was working on a client site today that required me to create a custom php.ini file so that I was able to enable some PHP functions that were disabled by default by their hosting provider.  While I was doing this, it got me thinking that I should give you all a heads up about about why you should be cautious when using a custom php.ini file.</p>
<p>In my article <a title="So You Want A Larger Upload Limit Eh…" href="http://www.designfox.co/web-design-development/so-you-want-a-larger-upload-limit-eh/">&#8220;So You Want A Larger Upload Limit Eh&#8230;&#8221;</a> I walk you through the process of creating a custom php.ini file so that you could modify the upload limit for your server; essentially overriding the default values set by your hosting provider.  Your custom php.ini file is a <strong>copy</strong>, originally based on the php.ini file installed as part of your server&#8217;s setup for its default PHP version, and as such, you could run into serious problems if you decide to use another PHP version.</p>
<p>The reason for this being that your custom php.ini copy may contain configuration paths, extensions and other settings that are not suitable for a PHP version that gets chosen down the line.  It&#8217;s even possible it could be missing settings required by the new PHP version entirely.  That would not be good!</p>
<p>An example of problems that can arise between PHP version changes is as follows:</p>
<p><strong>PHP 5.2:</strong> <em>extension_dir=&#8221;/usr/local/lib/php/extensions/no-debug-non-zts-20060613&#8243;</em><br />
<strong>PHP 5.3:</strong> <em>extension_dir=&#8221;/opt/php53/lib/php/extensions/no-debug-non-zts-20090626&#8243;</em></p>
<p>Notice in the above example that the server path that is used for extension modules is different between PHP 5.2 and PHP 5.3.</p>
<p>If you are working with a custom php.ini copy to modify your hosts default PHP configurations, make a note of any modifications that you have made and then delete the custom php.ini copy you created along with it&#8217;s corresponding suPHP_ConfigPath pointer (if applicable, not all servers require this portion), located in your primary .htaccess file prior to implementing a PHP version change!</p>
<span id="pty_trigger"></span>]]></content:encoded>
			<wfw:commentRss>http://www.designfox.co/news/custom-php-ini-cautions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manage Subscriptions</title>
		<link>http://www.designfox.co/news/manage-subscriptions/</link>
		<comments>http://www.designfox.co/news/manage-subscriptions/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 21:38:50 +0000</pubDate>
		<dc:creator>Amber</dc:creator>
				<category><![CDATA[News & Updates]]></category>

		<guid isPermaLink="false">http://www.designfox.co/news/manage-subscriptions/</guid>
		<description><![CDATA[[wpmlmanagement]]]></description>
			<content:encoded><![CDATA[<p>[wpmlmanagement]</p>
<span id="pty_trigger"></span>]]></content:encoded>
			<wfw:commentRss>http://www.designfox.co/news/manage-subscriptions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Browser Window Size&#8230; that&#8217;s right.. BROWSER&#8230; not Screen Resolution!</title>
		<link>http://www.designfox.co/web-design-development/browser-window-size-thats-right-browser-not-screen-resolution/</link>
		<comments>http://www.designfox.co/web-design-development/browser-window-size-thats-right-browser-not-screen-resolution/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 17:54:16 +0000</pubDate>
		<dc:creator>Amber</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>

		<guid isPermaLink="false">http://www.designfox.co/?p=807</guid>
		<description><![CDATA[While working on the new fancy shmancy designFox.co layout (I know, I know, it&#8217;s been a work in progress for awhile. What can I say, I&#8217;m a bit of a perfectionist  &#62;.&#62;  &#60;.&#60; ) I decided to go back and review Browser Window Sizes and Screen Resolutions. If you&#8217;re sitting there thinking &#8220;Why the heck [...]]]></description>
			<content:encoded><![CDATA[<a class="downloadlink" href="http://www.designfox.co/downloads/1140-Grids.zip" title=" downloaded 53 times" >1140 Grids (53)</a>
<p>While working on the new fancy shmancy designFox.co layout (I know, I know, it&#8217;s been a work in progress for awhile. What can I say, I&#8217;m a bit of a perfectionist  &gt;.&gt;  &lt;.&lt; ) I decided to go back and review <strong>Browser Window Sizes and Screen Resolutions.</strong></p>
<p>If you&#8217;re sitting there thinking <em>&#8220;Why the heck did you do that, you know that 960 is the way to go!&#8221;</em>  you&#8217;re not alone&#8230; I did to.  Then I thought, <em>balls I&#8217;m going to just review it anyway</em>.</p>
<p><span id="more-807"></span><br />
Anyone who knows me knows that I&#8217;m a huge advocate of using the 960 grid layout for designs, it&#8217;s just the magical number or so it seems (you can read more about this here: <a title="Photoshop Templates Guide" href="http://www.designfox.co/web-design-development/photoshop-templates-guide/" target="_blank">960 Grid Layout and Photoshop Templates Guide</a> ).</p>
<p>The one thing that I can&#8217;t stress enough is that Screen Resolution is <strong>NOT</strong> the same as your Browser Window Size!</p>
<p>I bet you&#8217;re raising a questioning eyebrow at me right about now eh?</p>
<p>While I&#8217;m not about to say that Screen Resolution does not factor into the equation here, when creating a layout for a design what we really need to look at is <strong>Browser Window Size</strong>; that right there friends is the key.</p>
<p>The difference between the two is that Browser Window Size looks at how large your browser window is when it&#8217;s open on your screen vs. the overall resolution of your screen.</p>
<p>I&#8217;m going to throw myself into an example for you.  I run dual monitors (f.y.i dual&#8217;s are a godsend!), one is a 23&#8243; LED and the other is 22&#8243; LCD.  I constantly have multiple windows open (usually like 6+).  Typically I have both Google Chrome and Firefox browsers open (sometimes even IE) and am toggling between all my windows.  The thing to note is that even though I have large monitors with high resolutions, I don&#8217;t view my browsers full screen.  The majority of individuals likely don&#8217;t either, since they are probably toggling between various windows/programs.</p>
<p>In all actuality I probably have my Browser Window Size open usually in the range of <strong>1200 &#8211; 1400px.</strong></p>
<p>Chris Coyier wrote an article that discuss&#8217;s this very subject, as well as how to track it on your own sites if you wish.  His articles are quite insightful!  Follow the link if you&#8217;re interested in seeing that info:  <a href="http://css-tricks.com/9778-screen-resolution-notequalto-browser-window/">http://css-tricks.com/9778-screen-resolution-notequalto-browser-window</a>/</p>
<p>I know, holy crap right.  If all this info is correct, why are we not designing on grids with larger widths.  It&#8217;s really going to come down to each individuals comfort level when it comes to expanding past the 960 point.  Just keep in mind that 960 won&#8217;t be dominate forever.</p>
<p>Based on all the above, personally, I will be testing my next layout on an 1140px grid, I quite honestly cannot see why on earth I would not.  If you&#8217;re about to ask me why 1140&#8230; it just seemed like a logical number.</p>
<p><strong>Now I have a treat for you&#8230; I&#8217;m about to share that grid!  Actually 3 grids! Whoop Whoop!</strong></p>
<p>These grids are based on the way the 960 grid is laid out.  For me, I like the space of using 30px margins (15px left/right) over 20px (10 left/right) since it feels like there&#8217;s more breathing room.  However don&#8217;t dispair, I created a 20px (10 left/right) for those that prefer that instead.</p>
<p>Download the new grids here (PSD format): <a class="downloadlink" href="http://www.designfox.co/downloads/1140-Grids.zip" title=" downloaded 53 times" >1140 Grids (53)</a></p>
<p><strong>Below is a brief description on each grid.  You might want to read them!</strong></p>
<p><span style="text-decoration: underline;"><strong>1140 Grid:</strong></span>  An 1140px 12 column grid with 15px left/right margins.  Essentially this means that the direct width of the columns themselves will only be 1110px.</p>
<p><strong>*Note:</strong>  The 1140px grid using 15px left/right margins can be created using the following grid setups (I started at 4 columns and only went up to 24 if applicable):  4 cols (255px wide), 6 cols (px wide), 10 cols (84px wide), 12 cols (65px wide), 15 cols (46px wide), 19 cols (30px wide) and 20 cols (27px wide).</p>
<p><span style="text-decoration: underline;"><strong>1140 Grid v2:</strong></span>  Technically an 1170 13 column grid with 15px left/right margins.  This means that the direct width of the columns will be 1140px.  So for those that don&#8217;t like those left/right margins on the far edges can take advantage of just the columns.</p>
<p><strong>*Note:</strong>  The 1170px grid using 15px left/right margins can be created using the following grid setups (I started at 4 columns and only went up to 24 if applicable):  5 cols (204px wide), 6 cols (165px wide), 9 cols (100px wide), 10 cols (87px wide), 13 cols (60px wide), 15 cols (48px wide) and 18 cols (35px wide).</p>
<p><span style="text-decoration: underline;"><strong>1140 Grid v3:</strong></span>  An 1140px 12 column grid with 10px left/right margins.  This means that the direct width of the columns will be 1120px.</p>
<p><strong>*Note:</strong>  The 1140px grid using 10px left/right margins can be created using the following grid setups (I started at 4 columns and only went up to 24 if applicable):  4 cols (265px wide), 5 cols (208px wide), 6 cols (170px wide), 10 cols (94px wide), 12 cols (75px wide), 15 cols (56px wide), 19 cols (40px wide) and 20 cols (57px wide).</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<span id="pty_trigger"></span>]]></content:encoded>
			<wfw:commentRss>http://www.designfox.co/web-design-development/browser-window-size-thats-right-browser-not-screen-resolution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Add Custom File Extensions To WordPress</title>
		<link>http://www.designfox.co/tips-tricks/add-custom-file-extensions-to-wordpress/</link>
		<comments>http://www.designfox.co/tips-tricks/add-custom-file-extensions-to-wordpress/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 20:44:04 +0000</pubDate>
		<dc:creator>Amber</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://www.designfox.co/?p=676</guid>
		<description><![CDATA[Have you ever tried to upload a file to WordPress only to be greeted with the lovely message &#8220;Somefile has failed to upload due to an error.  Sorry, this file type is not permitted for security reasons.&#8221; If you&#8217;re like me, you probably saw that and heaved an exasperated sigh.  @_@  LOL The quickest way [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever tried to upload a file to WordPress only to be greeted with the lovely message</p>
<p><em>&#8220;Somefile has failed to upload due to an error.  Sorry, this file type is not permitted for security reasons.&#8221;</em></p>
<p>If you&#8217;re like me, you probably saw that and heaved an exasperated sigh.  @_@  LOL</p>
<p>The quickest way to work around this is to add those needed file extensions to your current theme&#8217;s function.php. <span id="more-676"></span> Navigate to this file, open it and add the following snippet (you can add/change the extensions to suit your needs):</p>
<pre class="brush: php; title: ; notranslate">function addUploadMimes($mimes) {
     $mimes = array_merge($mimes, array(
                                        // Adobe Extensions
                                        'psd' =&gt; 'application/octet-stream',
                                        'ai|eps' =&gt; 'application/postscript'
                                        ));
     return $mimes;
     }
    add_filter('upload_mimes', 'addUploadMimes');</pre>
<p>*Note:  If you have more than 1 extenstion to add that shares the same mime-type you can seperate them using a pipe ( | ).  (i.e. &#8216;ai | eps&#8217;  shown in the snippet above)<br />
If you&#8217;re not sure what mime-types go with certain extensions you can reference:  <a href="http://www.webmaster-toolkit.com/mime-types.shtml" target="_blank">MIME TYPES</a></p>
<p>Eazy Peazy Lemon Squeezy!  Happy uploading!</p>
<h3><span style="color: #ff0000;">UPDATE (08-22-2011):  Adding Custom Media Type Icons!</span></h3>
<p>WordPress can use media icons to represent attachment files on your blog and in the Admin interface, if those icons are available. It looks for image files named by media type (e.g. the icon for the media type audio would be <strong>audio</strong>.jpg or <strong>audio</strong>.png) in the directory: <em>wp-includes/images/crystal/</em>.</p>
<p>By default WordPress has 8 groups of media types (<strong>audio, video, document, spreadsheet, interactive, text, archive, code</strong>), each one covering a variety of extensions with their own icon in the directory listed above.</p>
<p>When you used the above snippet to add your own custom extensions, unfortunately, it didn&#8217;t attach an icon with it.  The reason for this is because WordPress looks for an icon named after the extension you added in <em>wp-includes/images/crystal/ </em>and there isn&#8217;t one.</p>
<p>There are 2 ways to fix this. The first is upload your missing media icons (in the case of this article it would be psd.png, ai.png, and eps.png) directly to the <em>wp-includes/images/crystal/</em></p>
<p>Or, if you don&#8217;t want to mess with your core files, then open up your theme&#8217;s function.php and right underneath the code snippet already given add the following:</p>
<p><strong>* IMPORTANT NOTE:</strong> Be sure to change the directory stucture <em>/images/media-icons/</em> to the folder you will place your attachment icons in (<em>you will need to create this directory!</em>).   Be aware that when using this method you will also need to either copy the <strong>audio, video, document, spreadsheet, interactive, text, archive, and code</strong> icons from <em>wp-includes/images/crystal/ </em>to that new directory or add your own that correspond to those titles.</p>
<pre class="brush: php; title: ; notranslate">add_filter( 'icon_dir', 'my_theme_icon_directory' );

    add_filter( 'icon_dir_uri', 'my_theme_icon_uri' );

    function my_theme_icon_directory( $icon_dir ) {
        return get_stylesheet_directory() . '/images/media-icons';
        }

        function my_theme_icon_uri( $icon_dir ) {
            return get_stylesheet_directory_uri() . '/images/media-icons';
            }</pre>
<p>Your new <strong>full</strong> snippet should now look similar to this:</p>
<pre class="brush: php; title: ; notranslate">// add mime types and custom icons!

function addUploadMimes($mimes) {
    $mimes = array_merge($mimes, array(
                                       // Adobe Extensions
                                       'psd' =&amp;gt; 'application/octet-stream',
                                       'ai|eps' =&amp;gt; 'application/postscript'
                                       ));
    return $mimes;
    }

    add_filter('upload_mimes', 'addUploadMimes');

    add_filter( 'icon_dir', 'my_theme_icon_directory' );

    add_filter( 'icon_dir_uri', 'my_theme_icon_uri' );

    function my_theme_icon_directory( $icon_dir ) {
        return get_stylesheet_directory() . '/images/media-icons';
        }

        function my_theme_icon_uri( $icon_dir ) {
            return get_stylesheet_directory_uri() . '/images/media-icons';
            }</pre>
<p>Now if you were to upload a PSD it would display in your media library with a PSD attachment icon!</p>
<span id="pty_trigger"></span>]]></content:encoded>
			<wfw:commentRss>http://www.designfox.co/tips-tricks/add-custom-file-extensions-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>So You Want A Larger Upload Limit Eh&#8230;</title>
		<link>http://www.designfox.co/web-design-development/so-you-want-a-larger-upload-limit-eh/</link>
		<comments>http://www.designfox.co/web-design-development/so-you-want-a-larger-upload-limit-eh/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 18:01:52 +0000</pubDate>
		<dc:creator>Amber</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>

		<guid isPermaLink="false">http://www.designfox.co/?p=645</guid>
		<description><![CDATA[As you sit and read this you might be wondering, Why would I want to do this? What is this for? Have you ever tried to upload a file directly from your site but couldn&#8217;t because the file was to large?  Does it leaves you grumbling and shaking your fists.  Don&#8217;t worry, you&#8217;re not alone. [...]]]></description>
			<content:encoded><![CDATA[<p>As you sit and read this you might be wondering, <em>Why would I want to do this? What is this for?</em></p>
<p>Have you ever tried to upload a file directly from your site but couldn&#8217;t because the file was to large?  Does it leaves you grumbling and shaking your fists.  Don&#8217;t worry, you&#8217;re not alone.</p>
<p>Mercifully there is a 3 step process to get around this, shown below, and the best part is we&#8217;re going to walk through it!<br />
<span id="more-645"></span></p>
<ol>
<li>Create a php document and call it getphpinfo.php</li>
<li>Create a php document and call it gettheini.php</li>
<li>Modify or create an .htaccess file</li>
</ol>
<p>While I always encourage following along and creating your own files to get a feel for the process, below is a .zip that has them pre-made.<br />
<span style="color: #800000;">*Remember you&#8217;ll still need to modify the files accordingly with your server values.  Also you will need to rename the htaccess.txt file in this .zip to .htaccess<br />
</span></p>
<p><span style="color: #3366ff;"><a href="http://www.designfox.co/downloads/custom-php_ini.zip">Click Here</a> to download.</span></p>
<p>Many hosting providers have updated their servers to run PHP5 in conjunction with PHPSuExec enabled.  Due to this configuration users are no longer able to have php flags in their .htaccess file (which was an alternate method of increasing the file upload size).  <strong>Placing PHP flags in .htaccess files is now a common cause of internal server errors on servers with PHPSuExec enabled.</strong></p>
<p>If you have a website chances are you have shared hosting with your provider.  What this means is that multiple individuals share your server and resources.  As such, it&#8217;s normal for hosting providers to set a low limit on PHP file upload size.  It&#8217;s probably anywhere from 2M &#8211; 10M (M = Megabytes).  This probably wouldn&#8217;t affect the average user, because you can still upload large files directly to your server via FTP.</p>
<p><em>What happens though, if you don&#8217;t want to upload those large files via FTP? What if you wanted to let your users use a web form or script of some sort to upload large files to you directly from your site?</em><em><br />
</em></p>
<p>That&#8217;s an excellent question! The answer is you can&#8217;t.  Not without a bit of modification.  There are pre-existing settings that control those file size definitions as well as other PHP settings in a file called php.ini.  Some hosting providers give you access to this file and some do not.</p>
<p><em>Hark!  </em>you cry<em>,  I don&#8217;t have access to this file! How do I increase my upload limit?!?! ZOMG I neeeeed this!<br />
</em></p>
<p>Never fear! We are going to walk through how to get around this by creating a custom php.ini file.  Are you ready? Let&#8217;s do it!</p>
<p><strong>STEP 1.  *Create a new PHP document. Name it getphpinfo.php, add the snippet below and then upload it to your root directory:<br />
</strong></p>
<p><strong>*Note:</strong> This step is <strong>optional</strong>.  It&#8217;s only necessary if you don&#8217;t know where your default php.ini file is located or if you&#8217;re unsure of your direct path to your root directory .  If you already know this information you can skip this.</p>
<pre escaped="true" lang="php" line="1">&lt;?php phpinfo(); ?&gt;</pre>
<p><strong>STEP 2. Create a new PHP document. Save it gettheini.php, add the snippet below and upload it to your root directory:</strong></p>
<pre escaped="true" lang="php" line="1">&lt;?php system("cp /usr/local/lib/php.ini /home/YOURUSERNAME/php.ini"); ?&gt;</pre>
<p><strong>*Note:</strong>  If you&#8217;re not sure of the value to enter for where your default php.ini file is located on your server this is where your gettheinfo.php file comes in handy.  In your browser navigate to www.yoursite.com/getphpinfo.php  this will display all the PHP configurations for your site.  The path you need should be under a section called <strong>Loaded Configuration File.</strong>  Replace <strong>/usr/local/lib/php.ini</strong> in the snippet above with the path listed under that section.</p>
<p>The second part of the above snippet <strong>/home/YOURUSERNAME/php.ini</strong> is defining where a copy of the default php.ini will be created.  If you&#8217;re not sure what the value of this direct path is you can once again navigate to www.yoursite.com/getinfophp.php in your browser and look for a section called <strong>DOCUMENT_ROOT</strong> under <strong>Environmen</strong>t.  Replace <strong>/home/YOURUSERNAME/</strong> with the path found under that section.  This will copy the default php.ini to your root directory.</p>
<p><span style="color: #ff0000;">&lt;!&#8211; IMPORTANT&#8211;&gt;</span> The safest way to do this is as described in Step 2. where you create a copy of your server&#8217;s existing php.ini and modify that.  If you just create a new custom php.ini from scratch and add only the things you want changed (i.e. max_filesize) you run the risk of overriding all the default php modules and settings that some of your scripts may need to function! <span style="color: #ff0000;">&lt;!&#8211; IMPORTANT &#8211;&gt;</span></p>
<p>In your browser navigate to your gettheini.php file (i.e www.mysite.com/gettheini.php); running this script will generate a blank or white screen but don&#8217;t worry that&#8217;s normal! Now go to your root directory (or wherever you told your script to copy the php.ini file) and you will see your copy of the php.ini file. Huzzah!</p>
<p><strong>*Note:</strong>  Some hosts may disable certain PHP <a href="http://ca.php.net/manual/en/ref.exec.php" target="_blank">Program Execution Functions</a> such as <strong>system()</strong> and <strong>passthru()</strong>. You will know when this happens as you will see a message like the following:</p>
<p><em><strong>Warning</strong>: system() has been disabled for security reasons in <strong><strong>/home/USERNAME/public_html</strong>/gettheini.php</strong> on line <strong>1</strong></em></p>
<p>Since we use <strong>system()</strong> in our gettheini.php file, if you&#8217;re receiving this error<strong> </strong>open your <strong>gettheini.php</strong> and replace <strong>&lt;?php system(</strong>  with <strong>&lt;?php exec(</strong>   (In some instances you may have to try shell_exec.)</p>
<p>Open this php.ini file in your editor of choice, find <strong>upload_max_filesize</strong> (mine is located on line 487 but yours might be different)  and change the value to suite your needs.  (i.e. upload_max_filesize = 20M) and then save.</p>
<p><span style="color: #ff0000;">&lt;!&#8211; IMPORTANT &#8211;&gt;</span> Change the permissions on this new php.ini file to 644! <span style="color: #ff0000;">&lt;!&#8211; IMPORTANT &#8211;&gt;</span></p>
<p>While the above does change the upload limit allowed by your <strong>server</strong>, scripts using PHP and POST data to determine the max file size the <strong>script</strong> will allow to be uploaded, such as WordPress <em>(WordPress default restriction is something along the lines of 10MB)</em>, need an extra step.  In your php.ini file find <strong>post_max_size </strong><em>(approx. line 373)</em> set this to something like <strong>post_max_size = 20M.  </strong>If, for example, you use WordPress, once you make this change, click &#8220;Add New&#8221; under &#8220;Media&#8221; in your WordPress admin, it should now say something like <strong>&#8220;Maximum upload file size: 20MB&#8221;</strong> (or whatever you set it to).</p>
<p>Right on rockstar! You&#8217;ve just increased your PHP upload limit but we have one more step!</p>
<p><strong>STEP 3. Create an .htaccess file, add the following snippet and upload it to your root directory:</strong></p>
<p><strong>*Note:</strong> If you already have an .htaccess file then you can simply modify it.</p>
<pre escaped="true" lang="html4strict" line="1">&lt;Files php.ini&gt;
order allow,deny
deny from all
&lt;/Files&gt;

SetEnv PHPRC /home/USERNAME/public_html/php.ini</pre>
<p>You might be thinking <em>What the earth is that stuff doing</em>? o_0</p>
<p>Weeeeeeell let me tell you!</p>
<p>In this guide we created a custom php.ini file by copying our server&#8217;s default one.  However we don&#8217;t really want any prying eyes to be able to view that new file.  The first portion of the above snippet handles this.</p>
<p>Additionally, when creating a custom php.ini file the changes will only be effective on scripts in the same directory it was placed in.  We want to make our new php.ini recursive (apply to all sub directories as well).   The second portion of the snippet <strong>SetEnv PHPRC /home/USERNAME/public_html/php.ini</strong> says <em>&#8220;hey! Apply all the configuration values from php.ini to all subdirectories of where you placed me (me = .htaccess file) in!</em>&#8221;</p>
<p>Success!  You be finished!  Go ahead and delete getphpinfo.php and gettheini.php from your server.</p>
<p><strong>Update &#8211; 09/29/2011</strong></p>
<ul>
<li>some hosts may disable certain PHP <a href="http://ca.php.net/manual/en/ref.exec.php" target="_blank">Program Execution Functions</a>.  Added <strong>*Note</strong> reference to <strong>Step 2</strong> on how to adjust gettheini.php script to accomodate this issue.<strong></strong></li>
<li>Known Hosts this issue occurs on:  <strong>HostPapa</strong> &#8211; By default HostPapa disables the following functions: <strong>dl,passthru,proc_open,proc_close,system,allow_url_fopen</strong>.  Once you create your custom php.ini file you can remove some of those functions by deleting them; found around line 199 (If you don&#8217;t know what these functions do I would only suggest possibly deleting out <strong>system</strong> and <strong>passthru</strong>).</li>
</ul>
<p><strong>Update &#8211; 08/22/2011</strong></p>
<ul>
<li>post updated to correct typo in .htaccess snippet. Removed the blank space found on the line <strong>order allow, deny</strong> that was causing internal error messages.</li>
<li>post updated to add reference for <strong>post_max_size</strong> (found before step 3). This is required for <strong>scripts</strong> (not the server) using PHP and POST data to determine the max file size allowed to be uploaded through the script itself; such as WordPress.</li>
</ul>
<span id="pty_trigger"></span>]]></content:encoded>
			<wfw:commentRss>http://www.designfox.co/web-design-development/so-you-want-a-larger-upload-limit-eh/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Add Captcha Verification To Your Forms</title>
		<link>http://www.designfox.co/web-design-development/add-captcha-verification-to-your-forms/</link>
		<comments>http://www.designfox.co/web-design-development/add-captcha-verification-to-your-forms/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 16:31:30 +0000</pubDate>
		<dc:creator>Amber</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.designfox.co/?p=582</guid>
		<description><![CDATA[In this article we will be using PHP and reCAPTCHA to add a validation box to your forms. To download the full example *As a quick note this article is separated into 3 pages, to get the full extent of the article be sure to read through them all following the page links at the [...]]]></description>
			<content:encoded><![CDATA[<p>In this article we will be using PHP and <a href="http://www.recaptcha.net" target="_blank">reCAPTCHA</a> to add a validation box to your forms.</p>
<p>To download the full example <a href="http://www.designfox.co/downloads/recaptcha-php-demo.zip">Click Here</a></p>
<p><strong>*As a quick note this article is separated into 3 pages, to get the full extent of the article be sure to read through them all following the page links at the bottom.</strong></p>
<p><span id="more-582"></span></p>
<p>Before we start some might be wondering what a Captcha is. This description is taken directly from the <a href="http://www.recaptcha.net/" target="_blank">reCAPTCHA</a> website.</p>
<p><strong><em>&#8220;A CAPTCHA is a program that can tell whether its user is a human or a computer. You&#8217;ve probably seen them — colorful images with distorted text at the bottom of Web registration forms. CAPTCHAs are used by many websites to prevent abuse from &#8220;bots,&#8221; or automated programs usually written to generate spam. No computer program can read distorted text as well as humans can, so bots cannot navigate sites protected by CAPTCHAs.&#8221;</em></strong></p>
<p>The overall process of adding reCAPTCHA is fairly simple, however the tricky part is figuring out how to redisplay the form to give the user another attempt at the captcha if they get the validation wrong.  Unfortunately there&#8217;s not a set answer for how a person can do that. It all depends on the structure of your existing code.</p>
<p>This article assumes that your form has no prior validation; meaning if a user clicks on submit it <strong>always</strong> succeeds.  That being the case you&#8217;ll have to add the reCAPTCHA validation code directly before any existing form handling code does whatever you&#8217;ve defined it to do when your users submit (i.e. sending the contents of the form to a defined email address).</p>
<h3><strong>Let&#8217;s Get Started! </strong></h3>
<p><strong>Step 1: Create Our Basic Site Files &amp; Structure (If you already have your core site files then disregard this step.)</strong></p>
<p>While this step is technically not part of adding reCAPTCHA, I am including it.  If you want to follow this tutorial from ground up then keep reading. <img src='http://www.designfox.co/superflyingdfoxwp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I am a firm believer in exceptional site structure/folder hierarchy, so that being said the first thing that we want to do is create <strong>2 folders</strong>, 1 called <strong>css</strong> and 1 called <strong>includes</strong>.  Our css folder will hold the stylesheet related to our pages and the includes folder will hold additional PHP files we will be creating.  If you don&#8217;t want to call your folder includes feel free to name it something that is logical to you.</p>
<p>Create a page called <strong>contact.php</strong> (this will be placed in your website&#8217;s root folder) and paste the following code into it (this is just a simple page with minimal styling to give you a general idea):</p>
<pre lang="html4strict" line="1" escaped="true">&lt;!DOCTYPE HTML&gt;
&lt;html&gt;
 &lt;head&gt;
 &lt;meta charset="utf-8"&gt;
 &lt;title&gt;PHP and reCAPTCHA Demo Page&lt;/title&gt;
 &lt;meta name="description" content="" /&gt;
 &lt;link href="css/main.css" rel="stylesheet" type="text/css"&gt;
 &lt;!--[if lt IE 9]&gt;
 &lt;script src="http://html5shim.googlecode.com/svn/trunk/html5.js"&gt;&lt;/script&gt;
 &lt;![endif]--&gt;
 &lt;/head&gt;
 &lt;body&gt;

 &lt;div id="wrap"&gt;

 &lt;h2&gt;Contact Form With PHP &amp;amp; reCAPTCHA Validation&lt;/h2&gt;

 &lt;section&gt;

 &lt;form method="post" action="includes/processor.php"&gt;//The action="" will take the user to the processor.php page when they click submit.

 &lt;fieldset&gt;
 &lt;legend&gt;Your Name:&lt;/legend&gt;
 &lt;input name="name" type="text" /&gt;
 &lt;/fieldset&gt;

 &lt;fieldset&gt;
 &lt;legend&gt;Your Email:&lt;/legend&gt;
 &lt;input name="email" type="text" /&gt;
 &lt;/fieldset&gt;

 &lt;fieldset&gt;
 &lt;legend&gt;Phone:&lt;/legend&gt;
 &lt;input name="phone" type="text" /&gt;
 &lt;/fieldset&gt;

 &lt;fieldset&gt;
 &lt;legend&gt;Type your comment or inquiry here:&lt;/legend&gt;
 &lt;textarea name="comment" id="comment" cols="45" rows="5"&gt;&lt;/textarea&gt;

 &lt;input type="submit" id="submit" name="Submit" value="Submit" /&gt;
 &lt;input type="reset" id="reset" name="Reset" value="Reset" /&gt;
 &lt;/fieldset&gt;

 &lt;/form&gt;

 &lt;/section&gt;

 &lt;footer&gt;

 &lt;p&gt;Simple reCAPTCHA &amp;amp; PHP Demo By &lt;a href="www.designfox.co" target="_blank"&gt;designFox&lt;/a&gt;. 2011.&lt;/p&gt;

 &lt;/footer&gt;

 &lt;/div&gt;
 &lt;/body&gt;
&lt;/html&gt;</pre>
<p>Next we are going to create our css file to give our page some basic styling.  Create a new CSS file, call it <strong>main.css</strong> and save it into your <strong>CSS</strong> folder.  You can copy the following code and paste it into your CSS document:</p>
<pre lang="css" line="1" escaped="true">@charset "UTF-8";

/* HTML5 - required for the HTML5 tags used in the demo files*/
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { display:block; }

/* GENERIC ELEMENTS */
body { margin: 0; }

/* BASICS */
#wrap {
 width: 960px;
 margin-right: auto;
 margin-left: auto;
}
#wrap h2 {
 text-align: center;
}
#wrap section form {
 width: 600px;
 margin-right: auto;
 margin-left: auto;
}
#wrap footer p {
 text-align: center;
}</pre>
<p>Our final step is to create the file that processes our form data when a user clicks submit.  In this instance we are going to have the form data emailed to us and then display a &#8220;Thank You&#8221; message.  This  will all be done with PHP on a single page so we are  going to create a new file called <strong>processor.php</strong>.  Remember that handy dandy <strong>includes</strong> folder we created earlier? We&#8217;re going to save this new file it into that folder. Copy and paste the following info into your <strong>processor.php</strong>:</p>
<pre lang="html4strict" line="1" escaped="true">&lt;!DOCTYPE HTML&gt;
&lt;html&gt;
 &lt;head&gt;
 &lt;meta charset="utf-8"&gt;
 &lt;title&gt;PHP and reCAPTCHA Demo Page&lt;/title&gt;
 &lt;meta name="description" content="" /&gt;
 &lt;link href="css/main.css" rel="stylesheet" type="text/css"&gt;
 &lt;!--[if lt IE 9]&gt;
 &lt;script src="http://html5shim.googlecode.com/svn/trunk/html5.js"&gt;&lt;/script&gt;
 &lt;![endif]--&gt;
 &lt;/head&gt;
 &lt;body&gt;

 &lt;div id="wrap"&gt;

 &lt;h2&gt;Contact Form With PHP &amp;amp; reCAPTCHA Validation&lt;/h2&gt;

 &lt;section&gt;

 &lt;h2&gt;Thanks For Your Inquiry.&lt;/h2&gt;

 &lt;p&gt;Thank you for contacting us.  We will be in touch shortly.&lt;/p&gt;

 &lt;/section&gt;

 &lt;footer&gt;

 &lt;p&gt;Simple reCAPTCHA &amp;amp; PHP Demo By &lt;a href="www.designfox.co" target="_blank"&gt;designFox&lt;/a&gt;. 2011.&lt;/p&gt;

 &lt;/footer&gt;

 &lt;/div&gt;
 &lt;/body&gt;
&lt;/html&gt;</pre>
<p>I bet you&#8217;re thinking, &#8220;Hey!  That&#8217;s just the html bits. Where&#8217;s the PHP part?&#8221;</p>
<p>It&#8217;s coming I promise.  Add the following piece of PHP code at the very top of your <strong>processor.php</strong> page:</p>
<pre lang="php" line="1" escaped="true">&lt;?php

$to = "some-email@some-email.com";
$subject = "Contact Request From Contact Form";
$message = "Name:" . $_POST['name'] . "\r\n" .
"Email: " . $_POST['email'] . "\r\n" .
"Phone Number: " . $_POST['phone'] . "\r\n" .
"Comment or Inquiry: " . $_POST['comment'];
$from = $_POST['email'];$headers = "From: $from" . "\r\n";

mail($to,$subject,$message,$headers);

?&gt;</pre>
<p>Now, if a user clicks submit on your form, all that information will always be emailed to the above defined email address.  Peeeeerfect! Well&#8230; sort of&#8230; we know that without validation we have now opened ourselves up to be susceptible to spam.</p>
<p>There is no cut and dry way to address this, we could add Spry Validation (There are built in behaviors in Dreamweaver for this specifically, and anyone who knows me knows that I am definitely not a fan of those.), we could use JavaScript, we could even expand on our PHP processor to have it validate specific fields.</p>
<p>However, as this tutorial says we are going to be adding reCAPTCHA validation.  Huzaaaaah!</p>
<span id="pty_trigger"></span>]]></content:encoded>
			<wfw:commentRss>http://www.designfox.co/web-design-development/add-captcha-verification-to-your-forms/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Different, Dynamic WordPress Sidebars Per Page!</title>
		<link>http://www.designfox.co/web-design-development/different-wordpress-sidebar-per-page/</link>
		<comments>http://www.designfox.co/web-design-development/different-wordpress-sidebar-per-page/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 01:10:51 +0000</pubDate>
		<dc:creator>Amber</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.designfox.co/?p=454</guid>
		<description><![CDATA[I was working on a project that required different, dynamic (widgetized) sidebars for different pages. After a few hours of research, loads of articles, and a few failed attempts later I finally succeeded. I thought I would share this so that it saves anyone else wanting to do the same thing the time of digging [...]]]></description>
			<content:encoded><![CDATA[<p>I was working on a project that required different, dynamic (widgetized) sidebars for different pages. After a few hours of research, loads of articles, and a few failed attempts later I finally succeeded.</p>
<p>I thought I would share this so that it saves anyone else wanting to do the same thing the time of digging through interwebz articles.</p>
<p><span id="more-454"></span></p>
<p>Before I begin, I&#8217;m going to work through this on the assumption that your sidebar is already widget capable.  That being said, in your WordPress theme find your single.php, page.php, index.php and any other custom page/post files you may have. Open them and look for:</p>
<p>&lt;?php get_sidebar(); ?&gt;</p>
<p>Replace that with the following:</p>
<p>&lt;?php if (is_page()) {<br />
// We&#8217;re on a &#8220;page&#8221;, which?<br />
if (is_page(&#8216;insert your own page id or page name here&#8217;)) {<br />
// Ah, the &#8220;blank&#8221; page!<br />
get_sidebar(name of your custom sidebar);<br />
// Oooh, grab that custom sidebar<br />
} else {<br />
// If we&#8217;re not on the &#8220;blank&#8221; page(s)<br />
if(!get_post_meta($post-&gt;ID, &#8220;noSidebar&#8221;, true)) {<br />
get_sidebar();<br />
}<br />
}<br />
};<br />
?&gt;</p>
<p>So if you&#8217;re sitting there with an expression that says <em>&#8220;wuuuuut be that? o_O&#8221;</em> let&#8217;s break it down.</p>
<p>In case you&#8217;re not sure, the very first function, the one you&#8217;re wanting to replace, <strong>&lt;?php get_sidebar(); ?&gt;</strong> calls the file named sidebar.php located in your theme files, and you guessed it! It&#8217;s responsible for the sidebar on your site!</p>
<p>Got it? Good! Now for the shiny bits! (you like shiny&#8217;s right? cuz I sure do. oooooooo)</p>
<p>When you look at the second block of code, the first thing to notice is the section <strong>&lt;?php if (is_page()) {</strong> what this is doing is saying <em>&#8220;Hey WordPress, before you display the sidebar lookey at me!&#8221;</em> followed up with a <em>&#8220;I&#8217;m on this page!&#8221;</em> which you will see defined as <strong>if (is_page(&#8216;insert your own page id or page name here&#8217;)) {</strong></p>
<p><strong>*Note:</strong> you can insert the name of your page (i.e. Sample) or the ID of the page itself; both values are accepted.  I prefer to use my page ID, just in case for some odd reason I change the name of my page I then don&#8217;t have to go back and adjust my code.</p>
<p>Alrighty, so we have the attention of WordPress&#8230; but now what&#8230;</p>
<p>You tell that beast what trick it&#8217;s gonna preform that&#8217;s what!  KACHSSSH *WHIP NOISE!*   o_O</p>
<p>No but seriously we are going to tell it what to do.  LoL.  This next line <strong>get_sidebar(name of your custom sidebar);</strong><strong> </strong>is saying <em>&#8220;WordPress, ooooh WordPress, I already told you I&#8217;m on this page so display this sidebar. Kthx!&#8221;</em></p>
<p><strong>*Note:</strong><strong> </strong>In order for WordPress to display the sidebar you define, (i.e. <strong>get_sidebar(custom);</strong> ) you need to create that file. The easiest way to do this is to duplicate your sidebar.php file and rename that duplicated file to sidebar-nameofyourcustomsidebar.php  (i.e. sidebar-custom.php).  The get_sidebar function looks for a sidebar file with the extension that you define.  So just to re-iterate the extension of your new sidebar file needs to match what you place in your <strong>get_sidebar(name of your custom sidebar);</strong> code.</p>
<p>So if right now you&#8217;re like <em>&#8220;Rock on! I gots me a slick custom sidebar for a specific page but what does that rest of that gobbledy-gook do?&#8221;</em></p>
<p>Oh ho ho! Let me tell you!</p>
<p>The next portion of our code is <strong>} else {</strong><strong> </strong>the key there is the Else part, it&#8217;s saying <em>&#8220;I&#8217;ve told WordPress what page to place the custom sidebar on but if it&#8217;s not that page then I need to do&#8230;&#8221;</em></p>
<p>You could neatly follow this up with <strong>get_sidebar();</strong> Notice how there is no custom sidebar extension defined? What this means is that WordPress will load the standard sidebar.php file.</p>
<p>However,  it&#8217;s fun to go that extra step in case it&#8217;s needed, and heck, what&#8217;s another line of code or two between developers eh?</p>
<p>Before we end with <strong>get_sidebar()</strong>; on our line prior to that you see  <strong>if(!get_post_meta($post-&gt;ID, &#8220;noSidebar&#8221;, true)) {</strong></p>
<p>For those that don&#8217;t know, you&#8217;re eagerly waiting to learn what that does right?  Well your patience shall be rewarded my Padawans!</p>
<p>What we did there was set up a <a href="http://codex.wordpress.org/Custom_Fields">Custom Field</a>.  I&#8217;m not going to get into a detailed explanation of custom fields but essentially what we are telling WordPress is if you assign a Custom Field with a name of noSidebar in your page/post (via the WordPress control panel) and set the value to true, that page/post will <strong>NOT</strong> display a sidebar (it essentially hides it).</p>
<p>Holy Cannoli&#8217;s Batman! Our article has come to a close and you should now be able to add different, dynamic sidebars to different pages in addition to the default sidebar AND with the option to &#8220;hide&#8221; the sidebar!</p>
<span id="pty_trigger"></span>]]></content:encoded>
			<wfw:commentRss>http://www.designfox.co/web-design-development/different-wordpress-sidebar-per-page/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Browsers: HTML5, Legacy Browsers and The Dreaded IE Beast!</title>
		<link>http://www.designfox.co/web-design-development/browsers-html5-legacy-browser-support/</link>
		<comments>http://www.designfox.co/web-design-development/browsers-html5-legacy-browser-support/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 22:19:34 +0000</pubDate>
		<dc:creator>Amber</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Learnable]]></category>

		<guid isPermaLink="false">http://www.designfox.co/?p=315</guid>
		<description><![CDATA[[important]*This article is posted in conjunction with &#8220;Browsers: HTML5&#8230; &#8220;OMG YOU CAN&#8217;T USE THAT!&#8221; &#8230;Why yes sir, I really CAN!&#8221;.  They were split into two to make for easier reading.[/important] Did you know that Firefox, Chrome, Safari and Opera all are able to use HTML5? And yes I mean today! Studies have shown that users [...]]]></description>
			<content:encoded><![CDATA[<p>[important]*This article is posted in conjunction with <a href="http://www.designfox.co/?p=312" target="_blank">&#8220;Browsers: HTML5&#8230; &#8220;OMG YOU CAN&#8217;T USE THAT!&#8221; &#8230;Why yes sir, I really CAN!&#8221;</a>.  They were split into two to make for easier reading.[/important]</p>
<p>Did you know that Firefox, Chrome, Safari and Opera all are able to use HTML5? And yes I mean today! Studies have shown that users of the above browsers are quicker to upgrade to the newest versions of those browsers so there is little worry about old versions that could kick back odd issues.</p>
<p><span id="more-315"></span><br />
This leaves Internet Explorer, the Dreaded Blue “E” Beast.  It does not currently (as of IE 8 ) support the new HTML5 tags; otherwise known as markup.  Doesn’t it make you just want to kick it in it’s ugly blue E face? I know it sure does for me!</p>
<p>Don’t worry; all is not lost!  Internet Explorer doesn’t realize it can recognize the new tags, but it can, you just need to hold it’s hand (watch out for it’s teeth, the little monster can bite!) and nudge it in the right direction a little bit by adding what’s called a JavaScript shiv to your pages. You would place this in between your &lt;head&gt;&lt;/head&gt; tags and it would look something like this:</p>
<p>&lt;!&#8211;[if IE]&gt; &lt;script src=&#8221;http://html5shiv.googlecode.com/svn/trunk/html5.js&#8221;&gt;&lt;/script&gt; &lt;![endif]&#8211;&gt;</p>
<p>In the above example, as you can see by the &lt;! –[if IE]&gt; (otherwise known as a conditional statement) it is only targeting Internet Explorer specifically.  It’s also hosted by Google, so it eliminates you having to host the script, although you may do so if you wish.</p>
<p>[note]*Note:  Internet Explorer 9 is currently in Beta stage and will not require the use of the shiv.  IE 9 will have support for HTML5 and CSS3 (keep in mind that it is not going to be full support as HTML5 is still a draft). HOO-AH!  Once IE 9 is released if you choose to continue support for older IE browsers you would change the shiv conditional statement to [IE lt 9].  This means the shiv will target IE browsers prior to 9.  Please be aware that when IE 9 does launch it is not scheduled to be available for Windows XP, Developers need to know that they should still support at least IE8.  Personal preference will dictate if developers will continue on with support of IE 7 and IE 6.  I am of the opinion to educate rather than enable when it comes to this matter.[/note]</p>
<p>This work-a-round to get IE to recognize HTML5 markup has both good and bad sides.  The good is that you can now effectively use and style HTML5 elements in Internet Explorer, the bad is that you are relying on JavaScript for your pages that are being rendered by Internet Explorer.  Many web developers feel that if JavaScript is required to make a browser understand markup, it crosses a line.</p>
<p>It is my personal opinion that if you want to stay a step ahead, to be part of the progress of the web world as it moves forward instead of hindering it, you need to be open to new methods instead of being a crutch that enables.  We need to loosen our white knuckled grip on our security blankets and embrace the advantages that new technology has to offer.  In addition the use of JavaScript and JavaScript libraries (i.e. jQuery) have become so commonplace (I doubt that you can open up a single page, view source and not find some type of JavaScript) that it is rare to find users that have JavaScript turned off for their browsers.  While I do believe that graceful degradation where necessary is a good idea for individuals running some type of JavaScript, this can lead back to the debate about not supporting antiquated browsers and instead educating individuals on upgrading or other browser options.</p>
<p>Another example to support my position of pro HTML5 is that many developers that wish to support older Internet Explorer browsers (more specifically IE 5.5 &amp; 6, god only knows why) that use PNG’s in their layouts also use a PNG fix.  This can be achieved via either JavaScript or CSS, but regardless of the method, you are essentially forcing a browser to do something that it does not natively do.  Yet we still do it without a second thought, so why would adding an IE conditional shiv.js for HTML5 be any different.  (This runs along the same lines as the HTML5 and CSS 2.1 reference earlier.)</p>
<p>Forge the path, don’t be content to just walk the existing one!</p>
<p>All that being said, for those that don’t want to go as far as including the IE shiv, but want to start including some HTML5 cross-browser techniques (there are loads of these, and yes, they are compatible in IE also) a short list would include elements such as:</p>
<p style="padding-left: 30px;">1)   <strong>Change your doctype:</strong> &lt;!DOCTYPE html&gt;<br />
(Simple right! View source Google and see that they are already implementing this)</p>
<p style="padding-left: 30px;">2)   <strong>Block Level links:</strong><br />
<em>&lt;div class=”article”&gt;<br />
&lt;a href=”link.html”&gt;<br />
&lt;h3&gt;This is a header&lt;/h3&gt;<br />
&lt;p&gt;This is some content&lt;p&gt;<br />
&lt;/a&gt;<br />
&lt;/div&gt;</em></p>
<p>&nbsp;</p>
<p style="padding-left: 30px;"><strong>[important]*Notice how the &lt;a&gt; element is wrapped around both the &lt;h3&gt; and &lt;p&gt; tags instead of each tag having it’s own individual link to the link.html page, this is block level linking.  This prevents duplicate links and creates a much wider hit area for a user to click on.[/important]</strong></p>
<p style="padding-left: 30px;">3)   <strong>Simplify your character set: </strong>&lt;meta charset=“utf-8” /&gt;</p>
<p style="padding-left: 30px;">4)   <strong>Use semantic names that represent the new HTML5 elements</strong></p>
<p><strong>[note]*Note:</strong> Also understand that you don’t have to use HTML5 exclusively.[/note]</p>
<p>If you are still hesitant and feel you are not quite ready to dip your toes into the exciting waters of HTML5 that’s ok.   However, you can educate yourself on it and as per the above list get into the habit of using HTML5 names in your existing HTML4 markup.  An example of this would be:</p>
<p style="padding-left: 30px;">&lt;div id=”header”&gt;&lt;/div&gt;<br />
&lt;div id=”nav”&gt;&lt;/div&gt;</p>
<p>To summarize a few of the benefits of using HTML5 include:</p>
<p style="padding-left: 30px;">1)   The addition of new semantic elements such as &lt;header&gt;&lt;nav&gt;&lt;footer&gt; that helps to reduce “div soup”<br />
*Note: “div soup” is an overuse of div’s on a page.</p>
<p style="padding-left: 30px;">2)   Your markup is cleaner.</p>
<p style="padding-left: 30px;">3)   You’re being proactive about the future of web development by staying ahead of the curve shortly before HTML5 becomes the mainstream markup language.</p>
<p>The downfalls to using HTML5 now (as discussed earlier in the article):</p>
<p style="padding-left: 30px;">1)   The spec is not finished and is likely to have some reiterations.</p>
<p style="padding-left: 30px;">2)   Not everything will work in all browsers (However the same could be said of CSS, as mentioned earlier right? ^_~).</p>
<p style="padding-left: 30px;">3)   The use of the Shiv.js is required to be included in a conditional statement to be able to style HTML5 elements with IE up to and including version 8.</p>
<p>Obviously, when and where you use HTML5, whether it is in personal or client work, is going to depend on the project itself and your own personal preferences.  There are numerous excuses on why someone wouldn’t choose to progress and adapt to a new technology, it may be simply because we are comfortable with the existing known and loved technology/methods and are not ready to see it replaced.  Be aware though that HTML5 is the future.</p>
<p>Hopefully this series of article has broadened your spectrum and got you really thinking about HTML5; it is happening and being added to browsers as you read, so closing your eyes and covering your ears singing “La La La!” isn’t really feasible anymore.  It’s not going to halt or stall, it’s going to continue to evolve and grow at a rapid pace.</p>
<p>Don’t get left behind!</p>
<span id="pty_trigger"></span>]]></content:encoded>
			<wfw:commentRss>http://www.designfox.co/web-design-development/browsers-html5-legacy-browser-support/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Browsers: HTML5… “OMG YOU CAN’T USE THAT!” …Why yes sir, I really CAN!</title>
		<link>http://www.designfox.co/web-design-development/browsers-html5/</link>
		<comments>http://www.designfox.co/web-design-development/browsers-html5/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 22:07:00 +0000</pubDate>
		<dc:creator>Amber</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Learnable]]></category>

		<guid isPermaLink="false">http://www.designfox.co/?p=312</guid>
		<description><![CDATA[[important]*For the sake of this article, I’m going to assume that you have a basic understanding of HTML and CSS.[/important] “What… HTML5 now… No, No, No, you must be wrong! You’re absolutely WRONG! You can’t use it now, it’s a draft, and it won’t be ready until 2022! REDO ALL YOUR SITES YOU HAVE USED [...]]]></description>
			<content:encoded><![CDATA[<p><em>[important]*For the sake of this article, I’m going to assume that you have a basic understanding of HTML and CSS.[/important]</em></p>
<p><em>“What… HTML5 now… No, No, No, you must be wrong! You’re absolutely WRONG! You can’t use it now, it’s a draft, and it won’t be ready until 2022! <strong>REDO ALL YOUR SITES YOU HAVE USED IT IN! YOU HAVE NO RIGHT TO USE THIS IN LIVE PRODUCTION WORK YET!</strong>”</em></p>
<p><span id="more-312"></span><br />
That’s what I hear many developers, hackles up, shouting from the rooftops.  To be fair, 2022 is the date that has been linked with HTML5 in the design and development community, so I can relate to why people have that mentality, but really that date has no real significant meaning (for the web world) and is a misinterpretation of the year HTML5 would be ready.  A much closer and far more likely date is 2012, some even say sooner than that.  That’s only a year away, and guess what else? You <strong>CAN</strong> use HTML5 <strong>today!</strong></p>
<p>What was the important date for HTML5 you ask; well it was <strong><em>October 2009</em></strong>.</p>
<p><em>“What?! 2009?! But that was 2 years ago!”</em></p>
<p>You are absolutely right, that time frame was the last call for the HTML5 working draft, basically what this means is that spec issues, bugs, enhancements and all the rest had to be submitted and written into the spec<strong><em> </em></strong>! That being said there are downsides to implementing HTML5, one is that the spec is still subject to reiterations (even though the above date was the main deadline), and another is that it is not fully supported in all browsers yet. Keyword there… <strong>Yet</strong>.  (This is also another reason for pushing browser upgrades)</p>
<p>However, the same can be said about CSS 2.1 (I am positive as a web designer or developer you are in some way familiar with CSS and use it in your projects without ever thinking about if its complete).  CSS 2.1 has been “in development” for more than 10 years and as of <strong>April 2009</strong> just became a candidate recommendation.  It doesn’t even have the full support of two browsers; the only browser that fully supports it is Internet Explorer 8.  (The switch to CSS 3 has also begun)</p>
<p>Aha! I bet you didn’t know that did you, if you knew that before would you have stopped using it? Will it stop you from continuing to use it now? Nope, it sure as heck won’t so why wouldn’t the same be said of HTML5.</p>
<p>[note]*Note: Spread browser love! Encourage people to update their outdated browsers.  If you’re a savvy interwebz user, educate people on other browser options. (Some people don’t know they have a choice, they assume the little blue E of death is the Internet!)[/note]</p>
<span id="pty_trigger"></span>]]></content:encoded>
			<wfw:commentRss>http://www.designfox.co/web-design-development/browsers-html5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lions and Tigers and CSS Navigations Oh My!</title>
		<link>http://www.designfox.co/web-design-development/lions-and-tigers-and-css-navigations-oh-my/</link>
		<comments>http://www.designfox.co/web-design-development/lions-and-tigers-and-css-navigations-oh-my/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 21:51:19 +0000</pubDate>
		<dc:creator>designFox</dc:creator>
				<category><![CDATA[Web Design & Development]]></category>
		<category><![CDATA[Learnable]]></category>

		<guid isPermaLink="false">http://www.designfox.co/?p=208</guid>
		<description><![CDATA[Often times I come across lovely websites that still use Dreamweaver&#8217;s built in behaviors to create a JavaScript styled navigation. You may have heard them called disjointed rollovers. You can recognize this if you view a websites source code where you will see blocks of JavaScript and coding elements such as onmouseover, onmouseout, onclick and [...]]]></description>
			<content:encoded><![CDATA[<p>Often times I come across lovely websites that still use Dreamweaver&#8217;s built in behaviors to create a JavaScript styled navigation. You may have heard them called disjointed rollovers. You can recognize this if you view a websites source code where you will see blocks of JavaScript and coding elements such as onmouseover, onmouseout, onclick and onload attached to individual links.<br />
<br />
<span id="more-208"></span><br />
This method, while effective, also adds to code bloat and can be achieved quite simply via one of the most powerful tools at your hot little fingertips. Yes, CSS!</p>
<p>&#8220;Who? What? Where? Why? HOW?!&#8221; You exclaim. Well, let me show you some of that CSS voodoo that we&#8230;. doodoo!? LOL</p>
<p>I&#8217;m going to review how to create a CSS horizontal navigation. Lets get started shall we?</p>
<p>One of the first things I&#8217;d like to point out is there are a probably a million and one ways to create amazing CSS styled navigations, and there are loads of awesome tutorials on this all over the web.</p>
<p>When you create a CSS styled navigation menu all you are essentially doing is creating a list, after all, what is a navigation if not a list of links right?</p>
<p>Start like this in your html code:<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Item 1&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Item 2&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Item 3&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;#&#8221;&gt;Item 4&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
You want to associate unique ids to your list and it&#8217;s elements to be able to style them separately, so now you have code that would look similar to this:<br />
&lt;ul id=&#8221;nav&#8221;&gt;<br />
&lt;li id=&#8221;nav-1&#8243;&gt;&lt;a href=&#8221;#&#8221;&gt;Item 1&lt;/a&gt;&lt;/li&gt;<br />
&lt;li id=&#8221;nav-2&#8243;&gt;&lt;a href=&#8221;#&#8221;&gt;Item 2&lt;/a&gt;&lt;/li&gt;<br />
&lt;li id=&#8221;nav-3&#8243;&gt;&lt;a href=&#8221;#&#8221;&gt;Item 3&lt;/a&gt;&lt;/li&gt;<br />
&lt;li id=&#8221;nav-4&#8243;&gt;&lt;a href=&#8221;#&#8221;&gt;Item 4&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
Still with me? Pretty simple right? So now lets add that magic ingredient, the CSS. We are going to use the power of CSS to style each link to its own button or bar image. To do this we are going to start by setting up the width and height for our list (or nav) and then removing the item bullets and telling our list to display it&#8217;s contents horizontal instead of vertical.</p>
<p>Deep breath! Ready&#8230; and&#8230; GO!<br />
ul#nav {<br />
height: 50px;<br />
width: 600px;<br />
list-style-type: none;<br />
}<br />
ul#nav li {<br />
display: inline;<br />
}<br />
This next step is just to add the general rules for your links. We&#8217;re going to set their height and float them left.<br />
ul#nav li a {<br />
float: left;<br />
height: 50px;<br />
}<br />
Phew! Alright, so now we need to style each individual link. I&#8217;m going to show examples for the link and for it&#8217;s hover state (when you move your mouse over the link). You can play around with adding different link states if you like.<br />
ul#nav li#nav-1 a {<br />
background-color: #666;<br />
background-image: url(images/nav.jpg);<br />
background-repeat: no-repeat;<br />
width: 150px;<br />
}</p>
<p>ul#nav li#nav-1 a:hover {<br />
background-color: #0FF;<br />
background-image: url(images/nav-hover.jpg);<br />
background-repeat: no-repeat;<br />
}<br />
Excellent! You have successfully styled your first navigation link! Do this for the rest of your links using the li id&#8217;s you chose in your html code. Remember we used id&#8217;s nav-1, nav-2, nav-3, nav-4, it would look something like this:<br />
ul#nav li#nav-1 a {<br />
background-color: #666;<br />
background-image: url(images/nav.jpg);<br />
background-repeat: no-repeat;<br />
width: 150px;<br />
}</p>
<p>ul#nav li#nav-1 a:hover {<br />
background-color: #0FF;<br />
background-image: url(images/nav-hover.jpg);<br />
background-repeat: no-repeat;<br />
}<br />
ul#nav li#nav-2 a {<br />
background-color: #666;<br />
background-image: url(images/nav.jpg);<br />
background-repeat: no-repeat;<br />
width: 150px;<br />
}</p>
<p>ul#nav li#nav-2 a:hover {<br />
background-color: #0FF;<br />
background-image: url(images/nav-hover.jpg);<br />
background-repeat: no-repeat;<br />
}<br />
VIOLA! We&#8217;ve reached the end of our little tutorial and you now have a functional CSS rollover navigation! (Keep in mind that you can set your own width&#8217;s, height&#8217;s etc as needed)</p>
<p><strong>*ADDITIONAL NOTES*</strong></p>
<p>I wanted to make a note that using JavaScript for your navigation to enhance it&#8217;s functionality is perfectly acceptable. This is usually done with a combination of CSS and a JavaScript library (such as jQuery) where the JavaScript coding is placed in it&#8217;s own .js file and then linked to your pages. As stated above you can find loads of useful tutorials on how to do that or create pure CSS navigation, like we just did above, online.</p>
<p>In addition I would recommend to anyone styling with CSS, to save their styles to a stylesheet and link that to their pages, not include all the CSS directly in your pages themselves. The reasoning behind this is because its easier to keep track of the styles used on each page if you ever have to change something and to reduce code bloat.</p>
<p>On a blank page this would look something like this (this example is not using HTML5 structure):<br />
&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=utf-8&#8243; /&gt;<br />
&lt;title&gt;Untitled Document&lt;/title&gt;<br />
&lt;link href=&#8221;style/style.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&gt;<br />
&lt;/head&gt;</p>
<p>&lt;body&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>
<span id="pty_trigger"></span>]]></content:encoded>
			<wfw:commentRss>http://www.designfox.co/web-design-development/lions-and-tigers-and-css-navigations-oh-my/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

Served from: www.designfox.co @ 2012-05-20 13:03:28 -->
