<?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>Hot Scripts Blog &#187; Tutorials</title>
	<atom:link href="http://www.hotscripts.com/blog/category/tutorials/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hotscripts.com/blog</link>
	<description></description>
	<lastBuildDate>Thu, 17 May 2012 12:18:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Meet LESS, The Dynamic Stylesheet Language</title>
		<link>http://www.hotscripts.com/blog/meet-dynamic-stylesheet-language/</link>
		<comments>http://www.hotscripts.com/blog/meet-dynamic-stylesheet-language/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 12:40:13 +0000</pubDate>
		<dc:creator>Ahmad Permessur</dc:creator>
				<category><![CDATA[Around the Web]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.hotscripts.com/blog/?p=1995</guid>
		<description><![CDATA[LESS is a JavaScript based CSS preprocessor which allows you to write CSS in its extended syntax and it will automatically compile that code into normal CSS.<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/meet-dynamic-stylesheet-language/">Meet LESS, The Dynamic Stylesheet Language</a></p>

Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/raphael-javascript-vector-library/' rel='bookmark' title='Meet Raphaël, the JavaScript Vector Library'>Meet Raphaël, the JavaScript Vector Library</a></li>
<li><a href='http://www.hotscripts.com/blog/determining-programming-language-popularity/' rel='bookmark' title='Determining Programming Language Popularity'>Determining Programming Language Popularity</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Writing CSS is usually pretty straightforward &#8211; the syntax is simple and all you have to do is pick an HTML element, select a property and assign a value to it. However when coding CSS for complex designs, you will often see yourself writing a lot of repetitive rulesets or re-defining the same style for your markups. Obviously you could use the shorthand properties of CSS to save you some of the mundane coding, but to truly speed up your CSS development you probably need support of variables, nested rules or even functions.</p>
<p><a href="http://lesscss.org/"><img class="alignright size-full wp-image-1998" title="less-logo-large" src="http://www.hotscripts.com/blog/wp-content/uploads/2011/02/less-logo-large.png" alt="" width="199" height="81" /></a>If you want to stick to being DRY (don&#8217;t repeat yourself) for writing less code, then enter <a href="http://lesscss.org/">LESS</a>. LESS is a JavaScript based CSS preprocessor which allows you to write CSS in its extended syntax and it will automatically compile that code into normal CSS. Currently LESS supports variables, mixins, operations and nested rules.  Variables will allow you to define widely used values in a single place and then re-use them throughout the style sheet:</p>
<p><img class="aligncenter size-full wp-image-1996" title="less-example" src="http://www.hotscripts.com/blog/wp-content/uploads/2011/02/less-example.jpg" alt="" width="478" height="256" /></p>
<p>Each of these different dynamic behaviors are real time-savers and the best way to understand how they work is to refer to the site&#8217;s usage <a href="http://lesscss.org/#-client-side-usage">examples</a>.</p>
<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/meet-dynamic-stylesheet-language/">Meet LESS, The Dynamic Stylesheet Language</a></p>
<p>Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/raphael-javascript-vector-library/' rel='bookmark' title='Meet Raphaël, the JavaScript Vector Library'>Meet Raphaël, the JavaScript Vector Library</a></li>
<li><a href='http://www.hotscripts.com/blog/determining-programming-language-popularity/' rel='bookmark' title='Determining Programming Language Popularity'>Determining Programming Language Popularity</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.hotscripts.com/blog/meet-dynamic-stylesheet-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speed up your Apps with Google’s AJAX Libraries</title>
		<link>http://www.hotscripts.com/blog/speed-apps-googles-ajax-libraries/</link>
		<comments>http://www.hotscripts.com/blog/speed-apps-googles-ajax-libraries/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 11:48:10 +0000</pubDate>
		<dc:creator>Ahmad Permessur</dc:creator>
				<category><![CDATA[Around the Web]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.hotscripts.com/blog/?p=1986</guid>
		<description><![CDATA[Google offers what it calls, Google AJAX Libraries, a content delivery network (CDN) to serve popular JavaScript libraries from its data centers. <p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/speed-apps-googles-ajax-libraries/">Speed up your Apps with Google’s AJAX Libraries</a></p>

Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/google-introduces-webp-image-format/' rel='bookmark' title='Google Introduces WebP – a new image format'>Google Introduces WebP – a new image format</a></li>
<li><a href='http://www.hotscripts.com/blog/javascript-image-effects/' rel='bookmark' title='5 Amazing JavaScript Image Effects Libraries'>5 Amazing JavaScript Image Effects Libraries</a></li>
<li><a href='http://www.hotscripts.com/blog/10-great-html5-experiments-apps/' rel='bookmark' title='10 Great HTML5 Experiments and Apps'>10 Great HTML5 Experiments and Apps</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hotscripts.com/blog/wp-content/uploads/2011/01/scriptsrc.jpg"><img class="alignright size-full wp-image-1988" title="scriptsrc" src="http://www.hotscripts.com/blog/wp-content/uploads/2011/01/scriptsrc.jpg" alt="" width="200" height="179" /></a>If  you use an open source JavaScript library like <a href="http://www.hotscripts.com/category/javascript/javascript-frameworks/jquery-plugins/">jQuery</a>, Mootools or  Prototype on your site, you’re likely hosting the .js files on your  server and calling them directly in your pages. This approach is good,  but there’s an even better way of getting your JavaScript libraries  served. Google offers what it calls, <a href="http://code.google.com/apis/libraries/">Google AJAX Libraries</a>, a content  delivery network (CDN) to serve popular JavaScript libraries from its  data centers. By having Google host and serve your JavaScript, you can  reap the following benefits:</p>
<ol>
<li><strong>Saves your bandwidth </strong>- You can save up to 50Kb per visitor in bandwidth by using Google’s CDN.</li>
<li><strong>Decrease latency</strong> &#8211; your visitors will be served by a CDN server closest to their physical location)</li>
<li><strong>Better caching</strong>- a visitor who accessed a previous site using Google’s hosted JS is likely to have a copy in his cache)</li>
</ol>
<p>There’s  also a handy online tool at <a href="http://www.Scriptsrc.net">Scriptsrc.net</a> that allows you to easily  copy and paste the latest version of your JavaScript library for  insertion on your page.</p>
<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/speed-apps-googles-ajax-libraries/">Speed up your Apps with Google’s AJAX Libraries</a></p>
<p>Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/google-introduces-webp-image-format/' rel='bookmark' title='Google Introduces WebP – a new image format'>Google Introduces WebP – a new image format</a></li>
<li><a href='http://www.hotscripts.com/blog/javascript-image-effects/' rel='bookmark' title='5 Amazing JavaScript Image Effects Libraries'>5 Amazing JavaScript Image Effects Libraries</a></li>
<li><a href='http://www.hotscripts.com/blog/10-great-html5-experiments-apps/' rel='bookmark' title='10 Great HTML5 Experiments and Apps'>10 Great HTML5 Experiments and Apps</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.hotscripts.com/blog/speed-apps-googles-ajax-libraries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started with Ext JS</title>
		<link>http://www.hotscripts.com/blog/started-ext-js/</link>
		<comments>http://www.hotscripts.com/blog/started-ext-js/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 05:59:42 +0000</pubDate>
		<dc:creator>Nuno Franco da Costa</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.hotscripts.com/blog/?p=1832</guid>
		<description><![CDATA[Ext JS is a cross-browser JavaScript library for building rich internet applications (RIA). In this tutorial, Nuno will teach you how to get started with Ext JS and walkthrough with you on creating simple dialog boxes and tooltips as well as integrating Ext JS with your form. <p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/started-ext-js/">Getting Started with Ext JS</a></p>

Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/client-side-text-field-validation-with-javascript/' rel='bookmark' title='Client-side text field validation with Javascript'>Client-side text field validation with Javascript</a></li>
<li><a href='http://www.hotscripts.com/blog/cookies-with-javascript/' rel='bookmark' title='Cookies with JavaScript'>Cookies with JavaScript</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h2 id="toc-what-is-ext-js">What is Ext JS?</h2>
<p>Ext started as an extension to <a href="http://developer.yahoo.com/yui/">YUI</a> , but since has evolved into a full framework., describing itself as being a &#8220;<em>cross-browser JavaScript library for building rich internet applications</em>&#8220;. While this description stands true, it is however too simple to describe this awesome JavaScript framework.</p>
<p>Ext is extremely powerful and well written. Its true Object oriented nature and design make it perfect for seasoned developers, compared to other mainstream frameworks. If want to create Rich Internet Applications (RIA) Ext is the tool to use: it has  an extremely complete GUI toolkit, providing you with tons of components that mimic desktop applications’ fluidity and complexity on the web. Just check <a href="http://dev.sencha.com/deploy/dev/examples/">Ext demo page</a>, I&#8217;m sure you will be dazzled by what you can achieve with it.</p>
<p>You can get Ext in two forms Ext Core and Ext JS.</p>
<ol>
<li><strong>Ext Core </strong>is the &#8220;lite version&#8221; of Ext JS, offering the same kind of functionality as other popular JS frameworks. It’s licensed under the very permissive MIT license. As you might have guessed the GUI components are not included in the Core.</li>
<li><strong>Ext JS</strong> comes with a lot of extra features and lots of GUI gadgets. You can get it under one of the two licenses: under a GPL or a commercial license that waives the GPL restrictions.</li>
</ol>
<p>Ext (both Core and JS) is <a href="http://dev.sencha.com/deploy/ext/docs/">well documented</a> and feature a wide variety of <a href="http://dev.sencha.com/deploy/ext/examples/">demos</a> and an easy to follow <a href="http://www.sencha.com/products/core/manual/">manual</a> . It also has great <a href="http://www.sencha.com/forum/">support community</a>.</p>
<p>In this article we&#8217;ll teach you how to get started with Ext JS.</p>
<h2 id="toc-getting-started-with-ex">Getting started with Ex</h2>
<ol>
<li><a href="http://www.sencha.com/products/js/thank-you.php?dl=extjs330">Download</a> Ext JS</li>
<li> Unzip it to a folder and you are ready to go!</li>
</ol>
<p>Don&#8217;t be alarmed by the file size, you are downloading the full package including sources and examples  After having Ext in your project folder all that is missing is including its files in your HTML.</p>
<p>You need to include Ext JavaScript and css files:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;ext-3.3.0/resources/css/ext-all.css&quot; /&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;ext-3.3.0/adapter/ext/ext-base-debug.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;ext-3.3.0/ext-all-debug.js&quot;&gt;&lt;/script&gt;
</pre>
<p>The above code should be enough to get you started, assuming you unzipped Ext into a folder named ext-3.3.0</p>
<p>An in depth introduction to Ext HTML setup is available <a href="http://www.sencha.com/learn/Tutorial:HTML_Page_Setup">here</a> make sure you also read the <a href="http://www.sencha.com/learn/Tutorial:Ext_StartUp_Guide">Ext getting started guide</a>.</p>
<h2 id="toc-hello-world">Hello World</h2>
<p>Maybe the easiest way to start using Ext in your existing web site is by replacing those nasty JavaScript alert boxes.</p>
<p>In Ext creating a fancy alert box is easy:</p>
<pre class="brush: jscript; title: ; notranslate">
Ext.MessageBox.show({
title: 'Error Alert',
msg: 'Here is an error message!',
buttons: Ext.MessageBox.OK,
icon:Ext.MessageBox.ERROR
});
</pre>
<p>and voila! Now you have a alert box with title, text, and error Icon.</p>
<p><img class="alignnone" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/11/alert.png" alt="" width="230" height="108" /></p>
<p>Unless you are visiting a strange web site you only see alert boxes to display error information.Replacing your alert calls with this code will be a boring task &#8211;  instead you can add this code to the top of your page:</p>
<pre class="brush: jscript; title: ; notranslate">
window.alert = function(str){
Ext.MessageBox.show({
title: 'Error Alert',
msg: str,
buttons: Ext.MessageBox.OK,
icon:Ext.MessageBox.ERROR
});
}
</pre>
<p>You have overwritten the default alert function, all calls to alert() will now show the fancy Ext alert box! The Ext alert box is HTML only, so you might need to replace \n with &lt;br&gt; if your alerts are multi lined</p>
<p>You can do much more with Ext and alert boxes, check it out <a href="http://dev.sencha.com/deploy/dev/examples/message-box/msg-box.html">here</a>.</p>
<h2 id="toc-tooltips">Tooltips</h2>
<p>Tooltips are nice information messages that you can present to your visitors and the good news is that with Ext you can create them easily and automatically. The next example will show you how to automatically add tool tips to all img tags present in the page. For the tool tip text we will use the Alt attribute from the img tag</p>
<pre class="brush: jscript; title: ; notranslate">
Ext.onReady(function(){

Ext.select('img').each(function(el){
var tt = new Ext.ToolTip({
target: el,
title: el.getAttribute('alt')
});
});

});
</pre>
<p>As you can see the code is inside the Ext.onReady function. This ensures the code is executed as soon as the DOM is ready.  If you have code that needs to run on page load, this is the place to have it.</p>
<ol>
<li>The ext.select() function give us an array of all the matching DOM elements, so in our case returns an array with all the images in the page</li>
<li>Each() iterates through an array applying a function to each element</li>
<li>This way we can easily apply a tool tip to all images in the page</li>
<li>For the tool tip text the value of the ALT attribute is used</li>
</ol>
<p>As you might have noticed, with Ext almost all functions can be chained, making it easy and fast to develop</p>
<h2 id="toc-forms">Forms</h2>
<p>Forms are one of the most important components of a web site; be it a contact form, a checkout form, etc. We&#8217;ll now take a look how to create  an Ext form and HTML markup. This way we are providing users with JavaScript enabled browsers an improved user experience but not excluding users unable to process JavaScript.</p>
<p>This is a bit trickier to achieve as we can not create forms directly from HTML markup. In this example we will create an Ext form with some validation but also provide a regular form if Javascript is disabled.</p>
<pre class="brush: xml; title: ; notranslate">

&lt;form id=&quot;myfrm&quot; action=&quot;save-form.php&quot; method=&quot;POST&quot;&gt; &lt;label for=&quot;txtName&quot;&gt;Name&lt;/label&gt;

&lt;input name=&quot;txtName&quot; type=&quot;text&quot; /&gt; &lt;label for=&quot;txtFeedback&quot;&gt;Your comment&lt;/label&gt;
&lt;textarea name=&quot;txtFeedback&quot;&gt;&lt;/textarea&gt;

&lt;input type=&quot;submit&quot; value=&quot;submit&quot; /&gt; &lt;/form&gt;</pre>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[

Ext.onReady(function(){

	var simple = new Ext.FormPanel({
        url:'save-form.php',
        frame:true,
        title: 'Simple Form',
        width: 350,
        defaults: {width: 230},

        items: [
                new Ext.form.TextField({
                	fieldLabel: 'Name',
                	name: 'txtName',
                	allowBlank: false
                }),
                new Ext.form.TextArea({
                	fieldLabel: 'Your comment',
                    name: 'txtFeedBack'
                })
        ],

        buttons: [{
            text: 'submit',
        	handler: function(){
                if(simple.getForm().isValid()){
                	simple.getForm().submit();
                }
            }
        }]
    });

    simple.render('myfrm_ext');
	Ext.get('myfrm').remove();

});

// ]]&gt;&lt;/script&gt;
</pre>
<p>Lets review the code step by step.</p>
<p>In the html portion a basic form we define two elements:</p>
<ol>
<li> The form that will be visible only to users without javascript enabled</li>
<li>An empty div where we will attach our Ext Form</li>
</ol>
<p>In the JavaScript portion we create an Ext form.</p>
<ol>
<li>The first block of options define things like the submission url, the form width and the default values to be applied to form elements</li>
<li>The items option is where the fields are created, one text field and one text area, we also say that the text field must no be empty (allowBlank = false)</li>
<li>In the buttons we add the submit button with an handler function. That function will be called when the button is pressed, and it will submit the form if it passes validation</li>
</ol>
<p><img class="alignnone" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/11/form.png" alt="" width="350" height="198" /></p>
<p>If you are interested about forms take a look at the forms section in the samples, there is so much more you can with them</p>
<h2 id="toc-conclusion">Conclusion</h2>
<p>The goal of this article was to give you an introduction to Ext JS. By now you know all that you need to start adding some nice features to your web site. You can display fancy alert boxes, create eye catching forms, attach custom functions to DOM elements and also how to search and iterate through all of them.</p>
<h3 id="toc-about-the-author">About the Author</h3>
<div class="hotlist">
<p class="author-bio"><img style="background-color: white; border: 1px solid #cecece; padding: 2px; float: left; margin-right: 8px; width: auto;" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/11/nuno-mugshot.jpg" alt="" width="80" height="80" /><strong>Nuno Franco da Costa </strong> is a web developer and sys admin. By day, he works at as team leader in a big web brand, building gaming sites for over 130 million of unique monthly visitors. He loves to code and has a “getting things done” attitude. You can find over at his online presence <a href="http://www.francodacosta.com">www.francodacosta.com</a></p>
</div>
<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/started-ext-js/">Getting Started with Ext JS</a></p>
<p>Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/client-side-text-field-validation-with-javascript/' rel='bookmark' title='Client-side text field validation with Javascript'>Client-side text field validation with Javascript</a></li>
<li><a href='http://www.hotscripts.com/blog/cookies-with-javascript/' rel='bookmark' title='Cookies with JavaScript'>Cookies with JavaScript</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.hotscripts.com/blog/started-ext-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beyond Traditional Image Showcase with jQuery</title>
		<link>http://www.hotscripts.com/blog/image-showcase-jquery/</link>
		<comments>http://www.hotscripts.com/blog/image-showcase-jquery/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 11:43:13 +0000</pubDate>
		<dc:creator>Ahmad Permessur</dc:creator>
				<category><![CDATA[Around the Web]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.hotscripts.com/blog/?p=1766</guid>
		<description><![CDATA[If you run a portfolio or photography website, you're probably tired of traditional vertical, horizontal or grid layout of showcasing images.Addy Osmani, a UK-based Web developer came up with some great ways of showcasing images in a circle, ellipse and stack fashion.<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/image-showcase-jquery/">Beyond Traditional Image Showcase with jQuery</a></p>

Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/google-introduces-webp-image-format/' rel='bookmark' title='Google Introduces WebP – a new image format'>Google Introduces WebP – a new image format</a></li>
<li><a href='http://www.hotscripts.com/blog/jquery-mobile-framework-released/' rel='bookmark' title='jQuery Mobile Framework Released'>jQuery Mobile Framework Released</a></li>
<li><a href='http://www.hotscripts.com/blog/javascript-image-effects/' rel='bookmark' title='5 Amazing JavaScript Image Effects Libraries'>5 Amazing JavaScript Image Effects Libraries</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>If you run a portfolio or photography website, you&#8217;re probably tired of traditional vertical, horizontal or grid layout of showcasing images. From a usability perspective these approaches are perfect but with a personal or entertainment website you can be more unconventional and experiment with different styles. Addy Osmani, a UK-based Web developer came up with some great ways of showcasing images in a circle, ellipse and stack fashion.</p>
<h2 id="toc-jquery-roundrr"><a style="color: #157a43;" href="http://addyosmani.com/blog/jquery-roundrr/">jQuery Roundrr</a></h2>
<p>His new jQuery plugin <a href="http://addyosmani.com/blog/jquery-roundrr/">Roundrr</a> transforms list-based images in an interactive wheel-based gallery with keyboard navigation support. The Flash-like effects are smooth, sleek and functional with image caption and image enlargement support.</p>
<p><a href="http://addyosmani.com/blog/jquery-roundrr/"><img class="aligncenter size-full wp-image-1767" title="roundrr" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/10/roundrr.jpg" alt="" width="480" height="200" /></a><br />
Addy has written several other jQuery based image galleries. Here are some more:</p>
<h2 id="toc-jquery-interactive-photo-stack"><a style="color: #157a43;" href="http://addyosmani.com/blog/jquery-css3-photo-stack/">jQuery Interactive Photo Stack</a></h2>
<p><a href="http://addyosmani.com/blog/jquery-css3-photo-stack/"><img class="aligncenter size-full wp-image-1768" title="jquery-stack" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/10/jquery-stack.jpg" alt="" width="480" height="200" /></a></p>
<h2 id="toc-jquery-shinetime"><a style="color: #157a43;" href="http://addyosmani.com/blog/shinetime/">jQuery ShineTime</a></h2>
<p><a href="http://addyosmani.com/blog/shinetime/"><img class="aligncenter size-full wp-image-1769" title="jquery-shinetime" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/10/jquery-shinetime.jpg" alt="" width="480" height="200" /></a></p>
<h2 id="toc-zoomer-gallery"><a style="color: #157a43;" href="http://addyosmani.com/blog/zoomer-gallery-a-jquery-plugin-for-displaying-images-with-flash-like-zooming-effects/">Zoomer Gallery</a></h2>
<p><a href="http://addyosmani.com/blog/zoomer-gallery-a-jquery-plugin-for-displaying-images-with-flash-like-zooming-effects/"><img class="aligncenter size-full wp-image-1770" title="jquery-zoomer" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/10/jquery-zoomer.jpg" alt="" width="480" height="200" /></a></p>
<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/image-showcase-jquery/">Beyond Traditional Image Showcase with jQuery</a></p>
<p>Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/google-introduces-webp-image-format/' rel='bookmark' title='Google Introduces WebP – a new image format'>Google Introduces WebP – a new image format</a></li>
<li><a href='http://www.hotscripts.com/blog/jquery-mobile-framework-released/' rel='bookmark' title='jQuery Mobile Framework Released'>jQuery Mobile Framework Released</a></li>
<li><a href='http://www.hotscripts.com/blog/javascript-image-effects/' rel='bookmark' title='5 Amazing JavaScript Image Effects Libraries'>5 Amazing JavaScript Image Effects Libraries</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.hotscripts.com/blog/image-showcase-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>15 JavaScript Data Grids to Enhance your HTML Tables</title>
		<link>http://www.hotscripts.com/blog/15-javascript-data-grids-enhance-html-tables/</link>
		<comments>http://www.hotscripts.com/blog/15-javascript-data-grids-enhance-html-tables/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 08:26:49 +0000</pubDate>
		<dc:creator>Ahmad Permessur</dc:creator>
				<category><![CDATA[HotLists]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Top 10]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[top10]]></category>

		<guid isPermaLink="false">http://www.hotscripts.com/blog/?p=1611</guid>
		<description><![CDATA[DataGrid can help address concerns of HTML tables with large data sets by providing features like sorting, filtering, searching, pagination and even in-line editing for your tables. There are two ways you can add data grid functionality to your tables...<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/15-javascript-data-grids-enhance-html-tables/">15 JavaScript Data Grids to Enhance your HTML Tables</a></p>

Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/html-with-xml-data-binding/' rel='bookmark' title='HTML with XML Data Binding'>HTML with XML Data Binding</a></li>
<li><a href='http://www.hotscripts.com/blog/ixedit-javascript-based-interaction-tool/' rel='bookmark' title='IxEdit – A JavaScript-based interaction design tool'>IxEdit – A JavaScript-based interaction design tool</a></li>
<li><a href='http://www.hotscripts.com/blog/javascript-zoom-scripts/' rel='bookmark' title='6 Amazing JavaScript Image Zoom Scripts'>6 Amazing JavaScript Image Zoom Scripts</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Using a plain HTML table for displaying data is a common convention. It works fine as long as you don’t have many records and don’t want your user to manipulate your data. But when building a web application that serves hundreds of records in a table, presentation of data within HTML tables suffers from great usability drawbacks.</p>
<p>A data grid can help address concerns of HTML tables with large data sets by providing features like sorting, filtering, searching, pagination and even in-line editing for your tables. There are two ways you can add data grid functionality to your tables. The first method is to use server-side scripting like <a href="http://www.hotscripts.com/category/php/">PHP</a> or <a href="http://www.hotscripts.com/category/asp-net/">.NET</a> to allow your users to manipulate your table data. The second and recommended method is to use JavaScript to bind grid controls to your tables.</p>
<p>In this post, we’ll take a look at some of the most popular JavaScript Data Grids available on the Net. Some of them are based on <a href="#pure">pure JavaScript</a>, while others are plugins to JavaScript frameworks like <a href="#mootools">Mootools</a>, <a href="#jquery">jQuery</a> and <a href="#prototype">Prototype</a>.</p>
<h1 id="toc-pure-javascript-data-grids">Pure JavaScript Data Grids</h1>
<p><a name="pure"> </a></p>
<h2 id="toc-dhtmlxgrid" style="display: block; clear: left; padding-top: 20px;"><a style="color: #157a43;" href="http://dhtmlx.com/docs/products/dhtmlxGrid/">dhtmlxGrid </a></h2>
<p><a href="http://dhtmlx.com/docs/products/dhtmlxGrid/"><img class="aligncenter size-full wp-image-1638" title="dhtmlxGrid" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/dhtmlxGrid1.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://dhtmlx.com/docs/products/dhtmlxGrid/">dhtmlxGrid</a> is an Ajax-driven JavaScript grid control that supports data in different format including XML, JSON, CSV, HTML table and even custom XML format. The grid component lets you implement nice looking tables with built-in inline editing, filtering, searching and grouping capabilities</p>
<h2 id="toc-editablegrid"><a style="color: #157a43;" href="http://www.webismymind.be/editablegrid/">EditableGrid </a></h2>
<p><a href="http://www.webismymind.be/editablegrid/"><img class="aligncenter size-full wp-image-1627" title="editablegrid" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/editablegrid.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://www.webismymind.be/editablegrid/  ">EditableGrid</a> is an open source Javascript library aimed at turning HTML tables into advanced editable components. It focuses on simplicity: only a few lines of code are required to get your first table up and running. It supports sorting of columns based on different datatypes, filtering, inserting and removing rows as well as an automatic Flash chart-rendering feature.</p>
<h2 id="toc-standardista-table-sorting"><a style="color: #157a43;" href="http://www.workingwith.me.uk/articles/scripting/standardista_table_sorting">Standardista Table Sorting</a></h2>
<p><a href="http://www.workingwith.me.uk/articles/scripting/standardista_table_sorting"><img class="aligncenter size-full wp-image-1635" title="standardista" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/standardista.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://www.workingwith.me.uk/articles/scripting/standardista_table_sorting">Standardista</a> Table Sorting is a client-side JavaScript sorting module that lets you sort an HTML data table by any column. It is the most basic and easiest to implement table sorting solution we’ve found. It works great with large table sets and supports result of different data types including date, plain text, currency and number.</p>
<h2 id="toc-sortedtable"><a style="color: #157a43;" href="http://friedcellcollective.net/js/SortedTable/examples.html">SortedTable</a></h2>
<p><a href="http://friedcellcollective.net/js/SortedTable/examples.html"><img class="aligncenter size-full wp-image-1634" title="sortedtable" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/sortedtable.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://friedcellcollective.net/js/SortedTable/examples.html">SortedTable</a> is another JavaScript datagrid component that combines table sorting and rows selection and movement. It allows you to select rows and move them up or down your table or even movie them from one table to another. Its sorting feature supports different data types (similar to Standardista).</p>
<h2 id="toc-sigmagrid"><a style="color: #157a43;" href="http://www.sigmawidgets.com/products/sigma_grid2/">SigmaGrid</a></h2>
<p><a href="http://www.sigmawidgets.com/products/sigma_grid2/"><img class="aligncenter size-full wp-image-1639" title="sigmagrid" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/sigmagrid1.jpg" alt="" width="480" height="200" /></a></p>
<p>Written in pure javascript, <a href="http://www.sigmawidgets.com/products/sigma_grid2/">Sigma grid </a>is an open source AJAX data grid for displaying and inline editing data in a scrollable and sortable table. It is very powerful yet easy to use &amp;  integrate with PHP, ASP.NET,  JSP and RoR. One of its great features is the support for printable tabular data.</p>
<h1 id="toc-jquery-data-grid-plugins">jQuery Data Grid Plugins</h1>
<p><a name="jquery"> </a></p>
<h2 id="toc-jtps--datatable-jquery-plugin" style="display: block; clear: left; padding-top: 20px;"><a style="color: #157a43;" href="http://www.overset.com/2008/08/30/animated-sortable-data-table-jquery-plugin--jtps/">jTPS – Datatable jQuery Plugin</a></h2>
<p><a href="http://www.overset.com/2008/08/30/animated-sortable-data-table-jquery-plugin--jtps/"><img class="aligncenter size-full wp-image-1630" title="jtps" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/jtps.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://www.overset.com/2008/08/30/animated-sortable-data-table-jquery-plugin--jtps/">jTPS</a> is a datatable jQuery plugin that offers pagination, animated scrolling through pages and intelligent natural sorting capability. The development version is currently 15KB.</p>
<h2 id="toc-datatables--data-table-jquery-plugin"><a style="color: #157a43;" href="http://www.datatables.net/">DataTables – Data Table jQuery plugin</a></h2>
<p><a href="http://www.datatables.net/"><img class="aligncenter size-full wp-image-1625" title="datatables" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/datatables.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://www.datatables.net/">DataTables</a> is a plug-in for the jQuery Javascript library. It is a highly flexible tool, based upon the foundations of progressive enhancement, which will add advanced interaction controls to any HTML table. Some of its key features include pagination, on-the-fly filtering and multi-column sorting.</p>
<h2 id="toc-animated-table-sort"><a style="color: #157a43;" href="http://mitya.co.uk/scripts/Table-sort---now-REGEXP-friendly-111#part3">Animated table sort</a></h2>
<p><a href="http://mitya.co.uk/scripts/Table-sort---now-REGEXP-friendly-111#part3"><img class="aligncenter size-full wp-image-1624" title="animated" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/animated.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://mitya.co.uk/scripts/Table-sort---now-REGEXP-friendly-111#part3">This jQuery plugin</a> allows you to animatedly sort a table based on a column&#8217;s &lt;td&gt;s, or on the content/value of a child/descendant element within those &lt;td&gt;s. The various &lt;td&gt;s fly to their new homes, giving a nice effect. It also supports sorting on REGEXP matches. You can also control whether row relationships are maintained, whether it sorts on ascii or numeric and ascending or descending.</p>
<h2 id="toc-flexigrid-for-jquery"><a style="color: #157a43;" href="http://www.flexigrid.info/">Flexigrid for jQuery</a></h2>
<p><a href="http://www.flexigrid.info/"><img class="aligncenter size-full wp-image-1628" title="flexigrid" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/flexigrid.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://www.flexigrid.info/">Flexigrid</a> is a lightweight but rich data grid with resizable columns and a scrolling data to match the headers, plus an ability to connect to an xml based data source using Ajax to load the content. It supports resizable and sortable columns, different skinning themes, ability to connect via AJAX, pagination, toolbar and search. One of the great thing about Flexigrid is that you will find a lot of sample codes to integrate it in your preferred scripting language.</p>
<h2 id="toc-tablesorter"><a style="color: #157a43;" href="http://tablesorter.com/docs/">TableSorter </a></h2>
<p><a href="http://tablesorter.com/docs/"><img class="aligncenter size-full wp-image-1637" title="tablesorter" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/tablesorter.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://tablesorter.com/docs/">tablesorter</a> is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.</p>
<h2 id="toc-ingrid"><a style="color: #157a43;" href="http://reconstrukt.com/ingrid/">Ingrid</a></h2>
<p><a href="http://reconstrukt.com/ingrid/"><img class="aligncenter size-full wp-image-1629" title="ingrid" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/ingrid.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://reconstrukt.com/ingrid/">Ingrid</a> is an unobtrusive jQuery component that adds datagrid behaviors (column resizing, paging, sorting, row and column styling, and more) to your tables.</p>
<h1 id="toc-prototype-data-grid-components">Prototype Data Grid Components</h1>
<p><a name="prototype"> </a></p>
<h2 id="toc-tablekit" style="display: block; clear: left; padding-top: 20px;"><a style="color: #157a43;" href="http://millstream.com.au/upload/code/tablekit/index.html">TableKit</a></h2>
<p><a href="http://millstream.com.au/upload/code/tablekit/index.html"><img class="aligncenter size-full wp-image-1636" title="tablekit" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/tablekit.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://millstream.com.au/upload/code/tablekit/index.html ">TableKit</a> is a collection of HTML table enhancements using the Prototype framework. TableKit currently implements row striping, column sorting, column resizing and cell editing using Ajax. It can be implemented by simply calling the JavaScript file and attaching it to a table’s CSS class.</p>
<h2 id="toc-mytablegrid"><a style="color: #157a43;" href="http://pabloaravena.info/mytablegrid/ ">MyTableGrid</a></h2>
<p><a href="http://pabloaravena.info/mytablegrid/"><img class="aligncenter size-full wp-image-1631" title="mytablegrid" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/mytablegrid.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://pabloaravena.info/mytablegrid/ ">MyTableGrid</a> is a JavaScript based DataGrid control built on the Prototype library. It allows you to display your data in a simple and flexible way.  It supports resizable columns, sortable columns and support data import via JSON or AJAX.</p>
<h1 id="toc-mootools-data-grid-components">MooTools Data Grid Components</h1>
<p><a name="mootools"> </a></p>
<h2 id="toc-omnigrid" style="display: block; clear: left; padding-top: 20px;"><a style="color: #157a43;" href="http://www.omnisdata.com/omnigrid/">OmniGrid</a></h2>
<p><a href="http://www.omnisdata.com/omnigrid/"><img class="aligncenter size-full wp-image-1632" title="omnigridtop" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/09/omnigridtop.jpg" alt="" width="480" height="200" /></a></p>
<p><a href="http://www.omnisdata.com/omnigrid/">OmniGrid</a> is a datagrid component that supports table sorting, refresh and pagination. Its ability to connect via AJAX enables it to offer in-line editing, addition and deletion of records as well as rows duplication.</p>
<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/15-javascript-data-grids-enhance-html-tables/">15 JavaScript Data Grids to Enhance your HTML Tables</a></p>
<p>Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/html-with-xml-data-binding/' rel='bookmark' title='HTML with XML Data Binding'>HTML with XML Data Binding</a></li>
<li><a href='http://www.hotscripts.com/blog/ixedit-javascript-based-interaction-tool/' rel='bookmark' title='IxEdit – A JavaScript-based interaction design tool'>IxEdit – A JavaScript-based interaction design tool</a></li>
<li><a href='http://www.hotscripts.com/blog/javascript-zoom-scripts/' rel='bookmark' title='6 Amazing JavaScript Image Zoom Scripts'>6 Amazing JavaScript Image Zoom Scripts</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.hotscripts.com/blog/15-javascript-data-grids-enhance-html-tables/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IxEdit – A JavaScript-based interaction design tool</title>
		<link>http://www.hotscripts.com/blog/ixedit-javascript-based-interaction-tool/</link>
		<comments>http://www.hotscripts.com/blog/ixedit-javascript-based-interaction-tool/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 12:05:33 +0000</pubDate>
		<dc:creator>Ahmad Permessur</dc:creator>
				<category><![CDATA[Around the Web]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.hotscripts.com/blog/?p=1037</guid>
		<description><![CDATA[IxEdit is the first on-the-fly interaction design tool aimed at allowing designers and developers create interactions with no JavaScript coding and just basic knowledge of HTML and CSS.<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/ixedit-javascript-based-interaction-tool/">IxEdit – A JavaScript-based interaction design tool</a></p>

Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/raphael-javascript-vector-library/' rel='bookmark' title='Meet Raphaël, the JavaScript Vector Library'>Meet Raphaël, the JavaScript Vector Library</a></li>
<li><a href='http://www.hotscripts.com/blog/javascript-image-cropping-scripts/' rel='bookmark' title='8 Most Popular JavaScript Image Cropping Scripts'>8 Most Popular JavaScript Image Cropping Scripts</a></li>
<li><a href='http://www.hotscripts.com/blog/javascript-zoom-scripts/' rel='bookmark' title='6 Amazing JavaScript Image Zoom Scripts'>6 Amazing JavaScript Image Zoom Scripts</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>jQuery is the de facto solution for creating highly interactive interface elements for web applications. From date pickers, drag and drop and other DOM elements animations and effects, jQuery supports them all either natively or through its plugins. However, jQuery can be intimating for those not well versed with JavaScript especially when it comes to writing bunch of codes to create various interactions for multiple page elements.</p>
<div id="attachment_1038" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-1038 " title="changeclass" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/03/changeclass-300x212.png" alt="" width="300" height="212" /><p class="wp-caption-text">IxEdit Design Tool</p></div>
<p>Enter <a href="http://ixedit.com/">IxEdit</a>, the first on-the-fly interaction design tool aimed at allowing designers and developers create interactions with no JavaScript coding and just basic knowledge of HTML and CSS. After writing your HTML and CSS, simply embed IxEdit into your source and it will display an elegant floating tool with different options and attributes. You can then create new interactions by selecting the DOM element right from your page and setting up the interaction attributes like drag and drop, fade, etc. You can then preview your changes in real time. For example with a few mouse clicks, you can create a tab-based navigation for your form or add a date picker to your textbox. Once you&#8217;re happy with the interaction created, you can export the JavaScript generated and copy and paste it to your source.</p>
<p>IxEdit works under Firefox, Safari, Chrome and Internet Explorer to make your browser your interaction development environment.</p>
<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/ixedit-javascript-based-interaction-tool/">IxEdit – A JavaScript-based interaction design tool</a></p>
<p>Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/raphael-javascript-vector-library/' rel='bookmark' title='Meet Raphaël, the JavaScript Vector Library'>Meet Raphaël, the JavaScript Vector Library</a></li>
<li><a href='http://www.hotscripts.com/blog/javascript-image-cropping-scripts/' rel='bookmark' title='8 Most Popular JavaScript Image Cropping Scripts'>8 Most Popular JavaScript Image Cropping Scripts</a></li>
<li><a href='http://www.hotscripts.com/blog/javascript-zoom-scripts/' rel='bookmark' title='6 Amazing JavaScript Image Zoom Scripts'>6 Amazing JavaScript Image Zoom Scripts</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.hotscripts.com/blog/ixedit-javascript-based-interaction-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7 AJAX &amp; JavaScript Calendar Scripts</title>
		<link>http://www.hotscripts.com/blog/7-ajax-javascript-calendar-scripts/</link>
		<comments>http://www.hotscripts.com/blog/7-ajax-javascript-calendar-scripts/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 13:49:58 +0000</pubDate>
		<dc:creator>Ahmad Permessur</dc:creator>
				<category><![CDATA[HotLists]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.hotscripts.com/blog/?p=925</guid>
		<description><![CDATA[The ease of use, rich and intuitive scheduling solution offered by Google Calendar has inspired many to create CSS and AJAX calendars with similar interface and features. In this post, we take a look at some of these AJAX calendars &#038; JavaScript calendars along with full-fledged calendar scripts similar to Google Calendar, Microsoft Outlook's Calendar or Apple's iCal.<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/7-ajax-javascript-calendar-scripts/">7 AJAX &#038; JavaScript Calendar Scripts</a></p>

Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/javascript-image-cropping-scripts/' rel='bookmark' title='8 Most Popular JavaScript Image Cropping Scripts'>8 Most Popular JavaScript Image Cropping Scripts</a></li>
<li><a href='http://www.hotscripts.com/blog/javascript-zoom-scripts/' rel='bookmark' title='6 Amazing JavaScript Image Zoom Scripts'>6 Amazing JavaScript Image Zoom Scripts</a></li>
<li><a href='http://www.hotscripts.com/blog/oop-javascript/' rel='bookmark' title='OOP in JavaScript'>OOP in JavaScript</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The ease of use, rich and intuitive scheduling solution offered by <a href="http://www.google.com/calendar">Google Calendar</a> has inspired many to create CSS and AJAX calendars with similar interface and features. In this post, we take a look at some of these AJAX calendars &amp; JavaScript calendars along with full-fledged calendar scripts similar to Google Calendar, Microsoft Outlook&#8217;s Calendar or Apple&#8217;s iCal.</p>
<div class="blog_title">
<h1 id="toc-ajax-and-css-calendar-interfaces">AJAX and CSS Calendar Interfaces</h1>
</div>
<p>The scripts below are great starting point to build your calendar. They only provide front-end scheduling interface based on AJAX and CSS. You will have to write your own code that will hook to the different events and possibly an admin area to store and manage the events.</p>
<h2 id="toc-fullcalendar">FullCalendar</h2>
<p><a href="http://arshaw.com/fullcalendar/"><img class="alignnone size-full wp-image-932" title="fullcalendar3" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/01/fullcalendar3.jpg" alt="fullcalendar3" width="550" height="150" /></a></p>
<p><a href="http://arshaw.com/fullcalendar/ ">FullCalendar</a> is a jQuery plugin that provides a full-sized, drag &amp; drop calendar like the one below. It uses AJAX to fetch events on-the-fly for each month and is easily configured to use your own feed format (an extension is provided for Google Calendar). It is visually customizable and exposes hooks for user-triggered events (like clicking or dragging an event).</p>
<h2 id="toc-dhtmlxscheduler">dhtmlxScheduler</h2>
<p><img class="alignnone size-full wp-image-933" title="dhtmlxScheduler2" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/01/dhtmlxScheduler2.jpg" alt="dhtmlxScheduler2" width="550" height="150" /></p>
<p><a href="http://dhtmlx.com/docs/products/dhtmlxScheduler/index.shtml">dhtmlxScheduler</a> is a Web-based JavaScript events calendar that provides rich and intuitive scheduling solution similar to Microsoft Outlook Calendar, Apple&#8217;s iCal or Google Calendar. The events can be displayed in Day, Week, Month or Year views. Advanced drag-n-drop functionality allows users to change events dates and time by easily moving or resizing event boxes. Very lightweight (about 20Kb gzipped), fast-performing, and it uses Ajax to smoothly update and display events schedule.  dhtmlxScheduler is also available as plugins for WordPress, Joomla and Drupal.</p>
<h2 id="toc-jmonthcalendar">jMonthCalendar</h2>
<p><a href="http://www.bytecyclist.com/projects/jmonthcalendar/"><img class="alignnone size-full wp-image-934" title="jmonthcalendar" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/01/jmonthcalendar.jpg" alt="jmonthcalendar" width="550" height="150" /></a></p>
<p><a href="http://www.bytecyclist.com/projects/jmonthcalendar/">jMonthCalendar</a> is a full month calendar that supports events. You simply initialize the calendar with options and an events array and it can handle the rest. This calendar is based on jQuery and has extension points that allow the developer to interact with the calendar when the display is about to change months, after the display has changed months and when the event bubbles are clicked on. jMonthCalendar also supports hover extension points, hover over an event and trigger an event like an alert(); By default the events would each have a URL supplied that would link to a details page.</p>
<h2 id="toc-moogenda">MooGenda</h2>
<p><a href="http://www.moonkiki.com/moonkiki/moogenda/"><img class="alignnone size-full wp-image-941" title="moogenda" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/01/moogenda.jpg" alt="moogenda" width="550" height="150" /></a></p>
<p><a href="http://www.moonkiki.com/moonkiki/moogenda/"> MooGenda</a> is a javascript calendar based on MooTools, that reads events from JSON requests. MooGenda supports double click on event to see the deafult event view, drag and drop event in month view, every change send a request to back end, to store when and what changed in the event.</p>
<div class="blog_title">
<h1 id="toc-calendars-with-database-or-flat-files-support">Calendars with database or flat-files support</h1>
</div>
<p>If you&#8217;re looking to save time building an admin interface for any of the above solutions reviewed, then the following full-fledged calendar systems are perhaps what you need. They come with both the front-end and back-end.</p>
<h2 id="toc-luxcal">LuxCal</h2>
<p><a href="http://www.hotscripts.com/listing/luxcal-web-based-event-calendar/"><img class="alignnone size-full wp-image-935" title="luxcal" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/01/luxcal.jpg" alt="luxcal" width="550" height="150" /></a></p>
<p><a href=" http://www.hotscripts.com/listing/luxcal-web-based-event-calendar/"> LuxCal</a> is a relative new calendar solution and compared to the other calendar solutions outlined above, LuxCal does not only come with a front-end interface but a complete event management system based on PHP and MySQL. It has been designed for user-friendliness, with support for views like month, day, year and upcoming events. LuxCal has support for colored event categories, recurring events, email notifications of event due dates, private events, access rights configurable for each user and for public access, CSV file import (for instance Outlook export), multi-language support and customizable user interface colors.</p>
<h2 id="toc-monket-calendar">Monket Calendar</h2>
<p><a href="http://monket.net/wiki-v2/Monket_Calendar"><img class="alignnone size-full wp-image-936" title="monketcalendar" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/01/monketcalendar.jpg" alt="monketcalendar" width="550" height="150" /></a></p>
<p><a href="http://monket.net/wiki-v2/Monket_Calendar">Monket Calendar</a> is coded in HTML, CSS, Javascript, and PHP. It is based on the premise of providing an Apple iCal style interface that is available wherever you are. The interface has been designed to make it as easy as possible to add/change/remove events and thereby reduce the frustration of using the browser for entering and managing data. Monket Calendar is one of the few calendar scripts that can display multi-day events spanning accross the days on which they occur. This spanning of events makes it much easier to read the calendar at a glance.</p>
<h2 id="toc-planscalendar">PlansCalendar</h2>
<p><a href="http://www.planscalendar.com/"><img class="alignnone size-full wp-image-937" title="PlansCalendar" src="http://www.hotscripts.com/blog/wp-content/uploads/2010/01/PlansCalendar.jpg" alt="PlansCalendar" width="550" height="150" /></a></p>
<p><a href="http://www.planscalendar.com">PlansCalendar</a> is a highly configurable, customizable and easy-to-install calendar script. It is written in Perl. Events can be stored in either flat files or SQL databases. It has support for multiple-calendars, each of which can be managed separately all the while sharing events between each other. PlansCalendar also comes with an add-ons system whereby you can write plugins that re-use ist framework.</p>
<div class="blog_title">
<h1 id="toc-other-calendar-solutions">Other calendar solutions</h1>
</div>
<p>There are of course several other calendar scripts that you can choose from. In this post, we have only highlighted calendar scripts with an interface close to Google Calendar. For more calendars including date pickers, event planners scripts, please visit our <a href="http://www.hotscripts.com/search/all/calendar">directory</a>.</p>
<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/7-ajax-javascript-calendar-scripts/">7 AJAX &#038; JavaScript Calendar Scripts</a></p>
<p>Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/javascript-image-cropping-scripts/' rel='bookmark' title='8 Most Popular JavaScript Image Cropping Scripts'>8 Most Popular JavaScript Image Cropping Scripts</a></li>
<li><a href='http://www.hotscripts.com/blog/javascript-zoom-scripts/' rel='bookmark' title='6 Amazing JavaScript Image Zoom Scripts'>6 Amazing JavaScript Image Zoom Scripts</a></li>
<li><a href='http://www.hotscripts.com/blog/oop-javascript/' rel='bookmark' title='OOP in JavaScript'>OOP in JavaScript</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.hotscripts.com/blog/7-ajax-javascript-calendar-scripts/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PHP Parameter Skipping and Named Parameters – Finally?</title>
		<link>http://www.hotscripts.com/blog/php-parameter-skipping/</link>
		<comments>http://www.hotscripts.com/blog/php-parameter-skipping/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 15:38:19 +0000</pubDate>
		<dc:creator>seoegghead</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.hotscripts.com/blog/?p=889</guid>
		<description><![CDATA[Well, sort of; it's not 100% native, but it works, and requires only 1 simple cut-and-pasted line added per function to implement.  This article will detail how to do so, as well as the gist of its inner workings.  It's certainly easy to grep up complaints and feature requests for both parameter skipping and named parameters...<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/php-parameter-skipping/">PHP Parameter Skipping and Named Parameters – Finally?</a></p>

Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/mysql-database-handling-in-php/' rel='bookmark' title='MySQL Database Handling in PHP'>MySQL Database Handling in PHP</a></li>
<li><a href='http://www.hotscripts.com/blog/basics-of-setting-cookies-with-php/' rel='bookmark' title='Basics of Setting Cookies with PHP'>Basics of Setting Cookies with PHP</a></li>
<li><a href='http://www.hotscripts.com/blog/track-your-visitors-using-php/' rel='bookmark' title='Track Your Visitors, Using PHP'>Track Your Visitors, Using PHP</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Well, sort of; it&#8217;s not 100% native, but it works, and requires only <strong><em><span style="text-decoration: underline;">1</span></em></strong> simple cut-and-pasted line added per function to implement.  This article will detail how to do so, as well as the gist of its inner workings.  It&#8217;s certainly easy to grep up complaints and feature requests for both parameter skipping and named parameters – two oft-wanted language features.  Stanislav Malyshev, a core PHP developer says on his &#8220;PHP 10.0&#8243; blog that he misses these features in August, 2009 (<a href="http://php100.wordpress.com/2009/08/21/syntax-i-miss-in-php/">http://php100.wordpress.com/2009/08/21/syntax-i-miss-in-php/</a>).  Unfortunately, as we&#8217;ll document below, not everyone agrees.</p>
<p>Many other high-level languages support these features as well.  No matter.  We&#8217;ll examine a nice little workaround approach and implement it.  Let&#8217;s first peruse an example of a hypothetical function that may benefit from these features:</p>
<p><span style="text-decoration: underline;">function getUsers($id=null, $group_id=1, $username = &#8221;, $order=&#8217;order_fld&#8217;, $order_asc=1) {</span><br />
return $users_matching_all_criteria;<br />
}</p>
<p>As to whether 1 public function/method with so many parameters is good practice is beyond the scope of this article – it&#8217;s just a (somewhat contrived) example!  However, one may take the approach of lightly wrapping such a function with special dedicated getters, i.e.:</p>
<p><span style="text-decoration: underline;">function getUserByUsername($username) {</span><br />
return getUsers(null, 1, $username);<br />
}</p>
<p>This is a valid approach.  However, it represents a bunch of meaningless mechanical coding work.  We must have something more productive to do.  Calling the function directly is, of course, even less desirable:</p>
<p>getUsers(null, 1, &#8216;bob&#8217;);</p>
<p>And this will inevitably result in many “off-by-1” errors in parameter passing, as well as hard-coding defaults.</p>
<p>So wouldn&#8217;t it be nice if there were a better way &#8212; an easy way to specify the setting via a named list or skip over parameters with ease?</p>
<p>Unfortunately, there is no totally native way to do this.  Both of the below code snippets or similar might work in another language, but – alas – not PHP:</p>
<p>getUsers(, , $username); // <span style="text-decoration: underline;">Hypothetical; this does not work!</span></p>
<p>or –</p>
<p>getUsers(&#8216;username&#8217; =&gt; $username); // <span style="text-decoration: underline;">Hypothetical; this does not work!</span></p>
<p>Such a syntax would preserve the defaults implicitly, while allowing the programmer to modify those parameters that matter to the task at hand.  PHP IDEs that implement implicit code completion could still indicate the defaults based on the function prototype.  As another perk, it permits the programmer to retroactively change a default without locating all references to that function.  If this is not desired, simply do as one must in PHP currently anyway – hard-code the default value in a particular function call.</p>
<p>Many have proposed solutions that involve the use of hashed arrays as 1 argument, but this involves a lot of repetitive work, and the function no longer works via a list-based syntax unless a lot of code for both types of parameter syntaxes is written.  This will also disable the implicit code completion support of various PHP IDEs.  We happen to use Zend Studio for development, and we find that particular feature enhances our productivity.</p>
<p>We will present an implementation of the above features with a 1 line snippet (an include() file) as the first line of every applicable function like so:</p>
<p>(<strong>Note:</strong> No changes are made to the prototype, and implicit code completion with the various PHP IDEs will even document the function calls!)</p>
<p>function getUsers($id=null, $group_id=1, $username = &#8221;, $order=&#8217;order_fld&#8217;, $order_asc=1) {</p>
<p><strong>include(par.php); // </strong>hook in the Par code</p>
<p>&#8230; code &#8230;</p>
<p>}</p>
<p>One may then call the function like so:</p>
<p>getUsers(_, _, $username); // <span style="text-decoration: underline;">Note the underscores.</span></p>
<p>or –</p>
<p>getUsers(PAR( array(&#8216;username&#8217; =&gt; $username) ));</p>
<p>or even mix named and skipped parameters &#8211;</p>
<p>getUsers(_. PAR( array(&#8216;username&#8217; =&gt; $username) ) );</p>
<p>or even –</p>
<p>getUsers(_. PAR(&#8216;username&#8217;, $username));</p>
<p>(Note: If &#8220;_&#8221; presents a problem, another safer constant may be chosen.  PHP itself allows extended characters 128..255 to be used in the constant and variable grammars.  We briefly examined using &#8220;¬¨ (not symbol),&#8221; but this is very difficult to key on Windows machines; and just plain annoying on Macs.)</p>
<p>As for native support in PHP 6, don&#8217;t count on it:</p>
<p>A PHP &#8220;Developer Minutes&#8221; says there is no &#8220;&#8230; real need for named parameters.&#8221; And it states further that that they &#8220;&#8230; do not want to add it&#8221; (<a href="http://www.php.net/%7Ederick/meeting-notes.html#named-parameters">http://www.php.net/~derick/meeting-notes.html#named-parameters</a>).  The &#8220;PHP Todo Backlog&#8221; (<a href="http://wiki.php.net/todo/backlog#dropped_items">http://wiki.php.net/todo/backlog#dropped_items</a>) lists named parameters under &#8220;Dropped Items.&#8221;  Skipped parameters are not mentioned at all in either, but as aforementioned, Stanislav has mentioned he&#8217;d like to see them.</p>
<p>Our non-native syntax is not even terribly unwieldy, and it&#8217;s unlikely to break much, as it&#8217;s on a per-function basis.  If the PHP team decides to introduce the features natively, it will not conflict for a few reasons.  A constant is used instead of an empty parameter – the most likely native syntax for an implementation of parameter skipping.  The PAR object is even less of a problem and wraps all named parameters.  “par.php” handles and abstracts it all, and is itself a combination of reflection and elegant hackery.  It is all blissfully encapsulated inside one simple include call.  So what gives – why an include?</p>
<p>Well, include is a pseudo-closure of sorts.  Anything within the include retains the scope of the parent without specifying the particular variables as with PHP&#8217;s closure support. It is of this form:</p>
<p>$returnval = include(&#8216;FILE_FUNC_NAME&#8217;);</p>
<p>All parameters in the current scope are &#8220;passed&#8221; by reference to the &#8220;function&#8221; within FILE_FUNC_NAME.  The speed-penalty is on the order of half a millisecond per call – half of which seems to be from the include, and the other from the reflection API.  Then penalty, of course, is only present for those functions where it is implemented.  APC seems to speed it up as well, though we didn&#8217;t benchmark as much this way.</p>
<p>It&#8217;s simple on the outside, and trivial to implement on a per-function basis.  As far as we can tell, PHP 5.3&#8242;s closures cannot easily accomplish the same due to their requirement of explicitly stating relevant variables in &#8220;use.&#8221; This implementation does not require PHP 5.3, and works with any version of PHP with support for reflection.  You may download the applicable code and see more examples of implementation at the below URL:<br />
<a href="http://seoegghead.com/software/PHP-parameter-skipping-and-named-parameters.seo">http://seoegghead.com/software/PHP-parameter-skipping-and-named-parameters.seo</a><br />
<strong>Limitations:</strong><br />
So far reference parameters are not implemented for PAR(), and there may be limitations with objects or it may create a copy where you might not expect.  we just rarely use reference parameter passing in our design patterns.  In PHP, references are a tool of convenience, not performance.  Feel free to fix or contribute, and we&#8217;ll credit your contribution.  Enjoy!</p>
<div class="hotlist"><strong>Author: SEO Egghead</strong></p>
<p><a href="http://www.seoegghead.com/">SEO Egghead</a> is a web development firm dedicated to creating custom, search-engine-optimized web site applications.</div>
<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/php-parameter-skipping/">PHP Parameter Skipping and Named Parameters – Finally?</a></p>
<p>Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/mysql-database-handling-in-php/' rel='bookmark' title='MySQL Database Handling in PHP'>MySQL Database Handling in PHP</a></li>
<li><a href='http://www.hotscripts.com/blog/basics-of-setting-cookies-with-php/' rel='bookmark' title='Basics of Setting Cookies with PHP'>Basics of Setting Cookies with PHP</a></li>
<li><a href='http://www.hotscripts.com/blog/track-your-visitors-using-php/' rel='bookmark' title='Track Your Visitors, Using PHP'>Track Your Visitors, Using PHP</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.hotscripts.com/blog/php-parameter-skipping/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Developing State-enabled Applications With PHP</title>
		<link>http://www.hotscripts.com/blog/developing-php-applications/</link>
		<comments>http://www.hotscripts.com/blog/developing-php-applications/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 03:01:59 +0000</pubDate>
		<dc:creator>DEVpapers</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.hotscripts.com/blog/?p=594</guid>
		<description><![CDATA[This article explains how to increase interactivity of your website by using either cookies or sessions to remember the state of the browsing session of your visitors.<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/developing-php-applications/">Developing State-enabled Applications With PHP</a></p>

Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/phps-cookie-handeling-functions/' rel='bookmark' title='PHP&#8217;s Cookie handeling functions'>PHP&#8217;s Cookie handeling functions</a></li>
<li><a href='http://www.hotscripts.com/blog/basics-of-setting-cookies-with-php/' rel='bookmark' title='Basics of Setting Cookies with PHP'>Basics of Setting Cookies with PHP</a></li>
<li><a href='http://www.hotscripts.com/blog/login-php-mysql/' rel='bookmark' title='Developing a Login System with PHP and MySQL'>Developing a Login System with PHP and MySQL</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div><span style="font-family: Verdana; ">When a user is browsing through a website and is surfing from one web page to another, sometimes the website needs to remember the actions (e.g. choices) performed by the user. For example, in a website that sells DVDs, the user typically browses through a list of DVDs and selects individual DVDs for check out at the end of the shopping session. The website needs to remember which DVDs the user has selected because the selected items needs to be presented again to the user when the user checks out. In other words, the website needs to remember the State &#8211; i.e. the selected items &#8211; of the user&#8217;s browsing activities. </span><span><span style="font-family: Verdana; "> </span><span style="font-family: Verdana; ">However, HTTP is a Stateless protocol and is ill-equipped to handle States. A standard HTML website basically provides information to the user and a series of links that simply directs the user to other related web pages. This Stateless nature of HTTP allows the website to be replicated across many servers for load balancing purposes. A major drawback is that while browsing from one page to another, the website does not remember the State of the browsing session. This make interactivity almost impossible. </span></p>
<p><span style="font-family: Verdana; ">In order to increase interactivity, the developer can use the session handling features of PHP to augment the features of HTTP in order to remember the State of the browsing session. The are basically 2 ways PHP does this:</span></p>
<p>- Using cookies<br />
- Using Sessions</p>
<p></span></p>
<p><span style="font-family: Verdana; ">The next installment discusses how to manage sessions using cookies&#8230; </span></p>
<p><span style="font-family: Verdana; "><strong>Cookies </strong></span></p>
<p><span style="font-family: Verdana; ">Cookies are used to store State-information in the browser. Browsers are allowed to keep up to 20 cookies for each domain and the values stored in the cookie cannot exceed 4 KB. If more than 20 cookies are created by the website, only the latest 20 are stored. Cookies are only suitable in instances that do not require complex session communications and are not favoured by some developers because of privacy issues. Furthermore, some users disable support for cookies at their browsers. </span></p>
<p><span style="font-family: Verdana; ">- The following is a typical server-browser sequence of events that occur when a cookie is used:<br />
- The server knows that it needs to remember the State of browsing session<br />
- The server creates a cookie and uses the Set-Cookie header field in the HTTP response to pass the cookie to the browser<br />
- The browser reads the cookie field in the HTTP response and stores the cookie<br />
- This cookie information is passed along future browser-server communications and can be used in the PHP scripts as a variable </span></p>
<p><span style="font-family: Verdana; ">PHP provides a function called setcookie() to allow easy creation of cookies. The syntax for setcookie is: </span></p>
<p><span style="font-family: Verdana; ">int setcookie(string name, [string val], [int expiration_date], [string path], string domain, [int secure]) </span></p>
<p><span style="font-family: Verdana; ">The parameters are:</span></p>
<p><span style="color: #191970;">name</span> &#8211; this is a mandatory parameter and is used subsequently to identify the cookie<br />
<span style="color: #191970;">value</span> &#8211; the value of the cookie &#8211; e.g. if the cookie is used to store the name of the user, the value parameter will store the actual name &#8211; e.g. John<br />
<span style="color: #191970;">expiration_date</span> &#8211; the lifetime of the cookie. After this date, the cookie expires and is unusable<br />
<span style="color: #191970;">path</span> &#8211; the path refers to the URL from which the cookie is valid and allowed<br />
<span style="color: #191970;">domain</span> &#8211; the domain the created the cookie and is allowed to read the contents of the cookie<br />
<span style="color: #000080;">secure</span> &#8211; specifies if the cookie can be sent only through a secure connection &#8211; e.g. SSL enable sessions</p>
<p><span style="font-family: Verdana; ">The following is an example that displays to the user how many times a specific web page has been displayed to the user. Copy the code below (both the php and the html) into a file with the .php extension and test it out. </span></p>
<p><span style="font-family: Courier New; color: #ff4500; ">&lt;?php<br />
//check if the $count variable has been associated with the count cookie<br />
if (!isset($count)) {<br />
$count = 0;<br />
} else {<br />
$count++;<br />
}<br />
setcookie(&#8220;count&#8221;, $count, time()+600, &#8220;/&#8221;, &#8220;&#8221;, 0);<br />
?&gt;</span></p>
<p><span style="font-family: Courier New; color: #ff4500; ">&lt;html&gt;<br />
&lt;</span><span style="font-family: Courier New; color: #ff4500; ">head&gt;<br />
&lt;title&gt;Session Handling Using Cookies&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
This page has been displayed: &lt;?=$count ?&gt; times.<br />
&lt;/body&gt;<br />
&lt;/html&gt;</span></p>
<p><span style="font-family: Verdana; ">The next installment discusses how to manage sessions using PHP session handling functions with cookies enabled&#8230; </span></p>
<p><span style="font-family: Verdana; "><strong>PHP Session Handling &#8211; Cookies Enabled</strong> </span></p>
<p><span style="font-family: Verdana; ">Instead of storing session information at the browser through the use of cookies, the information can instead be stored at the server in session files. One session file is created and maintained for each user session. For example, if there are three concurrent users browsing the website, three session files will be created and maintained &#8211; one for each user. The session files are deleted if the session is explicitly closed by the PHP script or by a daemon garbage collection process provided by PHP. Good programming practice would call for sessions to be closed explicitly in the script. </span></p>
<p><span style="font-family: Verdana; ">The following is a typical server-browser sequence of events that occur when a PHP session handling is used:<br />
The server knows that it needs to remember the State of browsing session<br />
PHP generates a sssion ID and creates a session file to store future information as required by subsequent pages<br />
A cookie is generated wih the session ID at the browser<br />
This cookie that stores the session ID is transparently and automatically sent to the server for all subsequent requests to the server </span></p>
<p><span style="font-family: Verdana; ">The following PHP session-handling example accomplishes the same outcome as the previous cookie example. Copy the code below (both the php and the html) into a file with the .php extension and test it out. </span></p>
<p><span style="font-family: Courier New; color: #ff4500; ">&lt;?php<br />
//starts a session<br />
session_start(); </span></p>
<p><span style="font-family: Courier New; color: #ff4500; "> //informs PHP that count information needs to be remembered in the session file<br />
if (!session_is_registered(&#8220;count&#8221;)) {<br />
session_register(&#8220;count&#8221;);<br />
$count = 0; } else {<br />
$count++;<br />
}<br />
$session_id = session_id(); ?&gt; </span></p>
<p><span style="font-family: Verdana; "><span style="font-family: Courier New; color: #ff4500;">&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;PHP Session Handling &#8211; Cookie-Enabled&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
The current session id is: &lt;?=$session_id ?&gt;<br />
This page has been displayed: &lt;?=$count ?&gt; times.<br />
&lt;/body&gt;<br />
&lt;/html</span>&gt; </span></p>
<p><span style="font-family: Verdana; ">A summary of the functions that PHP provides for session handling are:</span></p>
<p>boolean start_session() &#8211; initializes a session<br />
string session_id([string id]) &#8211; either returns the current session id or specify the session id to be used when the session is created<br />
boolean session_register(mixed name [, mixed ...]) &#8211; registers variables to be stored in the session file. Each parameter passed in the function is a separate variable<br />
boolean session_is_registered(string variable_name) &#8211; checks if a variable has been previously registered to be stored in the session file<br />
session_unregister(string varriable_name) &#8211; unregisters a variable from the session file. Unregistered variables are no longer valid for reference in the session.<br />
session_unset() &#8211; unsets all session variables. It is important to note that all the variables remain registered.<br />
boolean session_destroy() &#8211; destroys the session. This is opposite of the start_session function.</p>
<p><span style="font-family: Verdana; ">The next installment discusses how to manage sessions using PHP session handling functions when cookies are disabled&#8230; </span></p>
<p><span style="font-family: Verdana; "><strong>PHP Session Handling &#8211; Without Cookies</strong> </span></p>
<p><span style="font-family: Verdana; ">If cookies are disabled at the browser, the above example cannot work. This is because although the session file that stores all the variables is kept at the server, a cookie is still needed at the browser to store the session ID that is used to identify the session and its associated session file. The most common way around this would be to explicitly pass the session ID back to the server from the browser as a query parameter in the URL. </span></p>
<p><span style="font-family: Verdana; ">For example, the PHP script generates requests subsequent to the start_session call in the following format: </span></p>
<p><a href="http://www.yourhost.com/yourphpfile.php?PHPSESSID=[actual"><span style="font-family: Courier New; color: #ff4500; ">http://www.yourhost.com/yourphpfile.php?PHPSESSID=[actual</span></a><span style="font-family: Courier New; color: #ff4500; "> session ID] </span></p>
<p><span style="font-family: Verdana; ">The following are excerpts that illustrate the discussion: </span></p>
<p><span style="font-family: Verdana; ">Manually building the URL: </span></p>
<p><span style="font-family: Courier New; color: #ff4500; ">$url = &#8220;</span><a href="http://www.yoursite.com/yourphppage.php?PHPSESSID"><span style="font-family: Courier New; color: #ff4500; ">http://www.yoursite.com/yourphppage.php?PHPSESSID</span></a><span style="font-family: Verdana; "><span style="font-family: Courier New; color: #ff4500;">=&#8221; . session_id();<br />
&lt;a href=&#8221;&lt;?=$url ?&gt;&#8221;&gt;Anchor Text&lt;/a&gt;</span> </span></p>
<p><span style="font-family: Verdana; ">Building the URL using SID: </span></p>
<p><span style="font-family: Courier New; color: #ff4500; ">&lt;a href=&#8221;</span><a href="http://www.yoursite.com/yourphppage.php?%3C?=SID"><span style="font-family: Courier New; color: #ff4500; ">http://www.yoursite.com/yourphppage.php?&lt;?=SID</span></a><span style="font-family: Courier New; color: #ff4500; "> ?&gt;&#8221;&gt;Anchor Text&lt;/a&gt;</span></div>
<div class="hotlist">
This article is written by daBoss. daBoss is the Webmaster of Designer Banners. daBoss can be contacted at sales (at) designerbanners (dot) com.</div>
<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/developing-php-applications/">Developing State-enabled Applications With PHP</a></p>
<p>Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/phps-cookie-handeling-functions/' rel='bookmark' title='PHP&#8217;s Cookie handeling functions'>PHP&#8217;s Cookie handeling functions</a></li>
<li><a href='http://www.hotscripts.com/blog/basics-of-setting-cookies-with-php/' rel='bookmark' title='Basics of Setting Cookies with PHP'>Basics of Setting Cookies with PHP</a></li>
<li><a href='http://www.hotscripts.com/blog/login-php-mysql/' rel='bookmark' title='Developing a Login System with PHP and MySQL'>Developing a Login System with PHP and MySQL</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.hotscripts.com/blog/developing-php-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Displaying An RSS Feed On Your Website Using PHP And MagpieRSS</title>
		<link>http://www.hotscripts.com/blog/rss-feed-php-and-magpierss/</link>
		<comments>http://www.hotscripts.com/blog/rss-feed-php-and-magpierss/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 03:01:59 +0000</pubDate>
		<dc:creator>DEVpapers</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[magpie rss]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://www.hotscripts.com/blog/?p=605</guid>
		<description><![CDATA[By using RSS and the MagpieRSS toolkit, you can import data from another web site or news source and display that information on your own site.<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/rss-feed-php-and-magpierss/">Displaying An RSS Feed On Your Website Using PHP And MagpieRSS</a></p>

Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/rss-really-simply-syndication/' rel='bookmark' title='RSS: Really Simply Syndication'>RSS: Really Simply Syndication</a></li>
<li><a href='http://www.hotscripts.com/blog/joobsbox-free-php-job-board-script/' rel='bookmark' title='JoobsBox &#8211; A free PHP Job Board Script'>JoobsBox &#8211; A free PHP Job Board Script</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div><span><span style="font-family: Verdana; ">These days everybody wants to have fresh content on their web site. Search engines like to see dynamic web pages, where the content is updated on a regular basis. Static pages that have information that doesn&#8217;t change are not only boring, but less likely to be visited by a search engine spider than a page that changes every time it is displayed. </span><span style="font-family: Verdana; ">By using RSS and the MagpieRSS toolkit, you can import data from another web site or news source and display that information on your own site. </span></p>
<p><span style="font-family: Verdana; ">First, download the MagpieRSS kit from </span><a href="http://magpierss.sourceforge.net/"><span style="font-family: Verdana; ">http://magpierss.sourceforge.net</span></a><span style="font-family: Verdana; ">. </span></p>
<p><span style="font-family: Verdana; ">Next, unpack the archive, into a directory off your root on your web site called &#8220;rss&#8221;. </span></p>
<p><span style="font-family: Verdana; ">Then, create a directory off your root called &#8220;cache&#8221;. CHMOD this directory to 777. </span></p>
<p><span style="font-family: Verdana; ">You&#8217;ll need to know the URL for the feed that you want to display. You can find this by searching for &#8220;RSS feed&#8221; in Google, or by going to one of the many sites that allow you to search thrown various sources for feeds. Syndic8.com is one, for example. </span></p>
<p><span style="font-family: Verdana; ">To display data from a single source, you can use code similar to this: </span></p>
<p><span style="font-family: Courier New; color: #ff4500; ">require_once(&#8216;rss/rss_fetch.inc&#8217;); </span></p>
<p><span style="font-family: Courier New; color: #ff4500; ">$news_feed = &#8221;; </span></p>
<p><span style="font-family: Courier New; color: #ff4500; ">error_reporting(E_ERROR); </span></p>
<p><span style="font-family: Courier New; color: #ff4500; ">$rss = fetch_rss(&#8220;</span><a href="http://www.url-of-the-rss-feed.com/"><span style="font-family: Courier New; color: #ff4500; ">http://www.url-of-the-rss-feed.com</span></a><span style="font-family: Courier New; color: #ff4500; ">&#8220;);<br />
$items = array_slice($rss-&gt;items, 0);<br />
foreach ($items as $item )<br />
{<br />
$news_feed .= &#8221; . $item['title'] . &#8221; . $item['summary'] . &#8221;;<br />
} </span></p>
<p><span style="font-family: Verdana; "><span style="font-family: Courier New; color: #ff4500;">echo $news_feed;</span> </span></p>
<p><span style="font-family: Verdana; ">MagpieRSS not only decodes the data, but it will also cache the data so it will retrieve news articles only once per hour. </span></p>
<p><span style="font-family: Verdana; ">Utilizing RSS in this fashion will allow your web site to have fresh content displayed constantly, and will (hopefully!) keep the search engine spiders interested in your site. The more the spiders index your site, the more pages you will have listed in the search engines. And with more pages listed in the search engine indexes you have a much better chance of attracting people to your web site.</span></p>
<p></span></div>
<div class="hotlist"><strong>Author: Mikel Beck</strong><br />
Mikel Beck is the owner of a number of web sites, the latest being <a href="http://www.happyhourpub.com">The Happy Hour Pub</a>.</div>
<p>Post from: <a href="http://www.hotscripts.com/blog">Hot Scripts Blog</a><br/><br/><a href="http://www.hotscripts.com/blog/rss-feed-php-and-magpierss/">Displaying An RSS Feed On Your Website Using PHP And MagpieRSS</a></p>
<p>Related posts:<ol>
<li><a href='http://www.hotscripts.com/blog/rss-really-simply-syndication/' rel='bookmark' title='RSS: Really Simply Syndication'>RSS: Really Simply Syndication</a></li>
<li><a href='http://www.hotscripts.com/blog/joobsbox-free-php-job-board-script/' rel='bookmark' title='JoobsBox &#8211; A free PHP Job Board Script'>JoobsBox &#8211; A free PHP Job Board Script</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.hotscripts.com/blog/rss-feed-php-and-magpierss/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

