<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8151966177268267713</id><updated>2011-12-13T19:58:59.577-08:00</updated><category term='ajax php CPAINT example easy calculator backend javascript xml tutorial'/><category term='php layers menu script free open source gpl'/><title type='text'>PHP n AJAX Programming, Tools, Tutorials, Tips, Tricks</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://onlyphp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8151966177268267713/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://onlyphp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Shahryar Ghazi</name><uri>http://www.blogger.com/profile/14722642704007330333</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8151966177268267713.post-4207973834832981599</id><published>2007-03-22T08:05:00.000-07:00</published><updated>2007-06-19T09:45:36.340-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax php CPAINT example easy calculator backend javascript xml tutorial'/><title type='text'>Creating Web Apps using CPAINT AJAX Framework (PART I) - Example</title><content type='html'>&lt;p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://onlyphp.blogspot.com"&gt;&lt;img src="http://static.technorati.com/pix/fave/btn-fave2.png" alt="Add to Technorati Favorites" /&gt;&lt;/a&gt;&lt;a href="javascript:location.href='http://slashdot.org/bookmark.pl?url='+encodeURIComponent(location.href)+'&amp;title='+encodeURIComponent(document.title)"&gt; &lt;br /&gt;&lt;img src="http://images.slashdot.org/favicon.gif" alt="Slashdot" border="0" height="16" width="16"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;AJAX is undoubtedly one of the most popular web development techniques (or technologies) these days. There are many web application frameworks for PHP that help developers and programmers create web applications using AJAX but the one that I felt comfortable using is CPAINT. Although CPAINT is not under active development now but it should still serve as a good starting point for developers who are new to AJAX. I haven&amp;rsquo;t tried all frameworks available, hence I cannot claim that CPAINT is the best but for me it is easy to use and flexible. Some nice features of CPAINT (according to their website) are as follows&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt; Separation of Presentation and Logic&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;True to the AJAX Acronym&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Single API, Multiple Languages&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Easy, Flexible API&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Greater Control of the XMLHTTP Object&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt; Retrieval of Non-local or Non-CPAINT Files&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;p&gt;&lt;strong&gt;DISCLAIMER:&lt;/strong&gt; I have made every attempt to present accurate information, but I cannot guarantee that inaccuracies will not occur. I (the author) will not be held responsible for any claim, loss, damage or inconvenience caused as a result of any information found on this website (blog).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Installation:&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;  Follow the steps below:&lt;/p&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;  Fire up your web browser and go to cpaint.sourceforge.net. Download the CPAINT package. Most recent version of CPAINT as of this writing is 2.1.0.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Extract all files in a folder named &amp;ldquo;cpaint&amp;rdquo;.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;CPAINT comes with two different types of files (i) for client side scripting i.e. javascript files and (ii) for server side scripting i.e. php files.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;We will be working with the files under lib directory.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Also, for this tutorial, I&amp;rsquo;ll only work in a folder named &amp;ldquo;cpaint_test&amp;rdquo; on the server.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Copy the following 4 files from cpaint/lib/ to &amp;ldquo;cpaint_test&amp;rdquo; on the server.&lt;/font&gt;&lt;br /&gt;    &lt;ul&gt;&lt;br /&gt;      &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;cpaint2.config.php&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;      &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;cpaint2.inc.php&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;      &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;cpaint2.inc.compressed.js&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;      &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;json.php&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;    &lt;/ul&gt;&lt;br /&gt;  &lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt; Now, create a new file named index.php inside cpaint_test. In head section of index.php add the code below:&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;&lt;font color="#666666"&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot; &lt;br&gt;&lt;br /&gt;        src=&amp;quot;./cpaint2.inc.compressed.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Installation is complete. Now, we&amp;rsquo;ll write a simple program that uses CPAINT.&lt;br&gt;&lt;br /&gt;    &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;A simple AJAX program:&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;This is a simple calculator that takes two integers as input, calculates their sum using PHP, and shows the result to the user.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Enter the code below in body section of index.php.&lt;/p&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;&lt;font color="#666666"&gt;&amp;lt;input id=&amp;quot;first_input&amp;quot; type=&amp;quot;text&amp;quot; size=&amp;quot;5&amp;quot; /&amp;gt; + &lt;br&gt;&lt;br /&gt;  &amp;lt;input id=&amp;quot;second_input&amp;quot; type=&amp;quot;text&amp;quot; size=&amp;quot;5&amp;quot; /&amp;gt; = &lt;br&gt;&lt;br /&gt;  &amp;lt;input id=&amp;quot;result&amp;quot; type=&amp;quot;text&amp;quot; size=&amp;quot;7&amp;quot; readonly /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br&gt;&lt;br /&gt;&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;Calculate&amp;quot; onClick=&amp;quot;calculate_sum();&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;br /&gt;&lt;p&gt;Now, you have to write the javascript code that takes input from the two input text fields, creates an XML string from input data, gives xml string to backend php code, gets result from PHP, and shows it to the user. Just before the closing head tag &amp;ldquo;&amp;lt;/head&amp;gt;&amp;rdquo;, enter the javascript code below.&lt;/p&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&amp;lt;!--&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;var cp = new cpaint();    // initializing cpaint object&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;cp.set_transfer_mode(&amp;quot;POST&amp;quot;); // sending data using POST&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;cp.set_response_type(&amp;quot;TEXT&amp;quot;); // recevie data in text form (plain ASCII) as&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;// opposed to XML object&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;cp.set_debug(0);   // Debug level is 0&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;function calculate_sum()&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;{&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;var first_input  = document.getElementById('first_input').value;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;var second_input = document.getElementById('second_input').value;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;var xml  = &amp;quot;&amp;lt;?xml version='1.0' standalone='yes'?&amp;gt;&amp;quot;;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;xml   += &amp;quot;&amp;lt;input&amp;gt;&amp;quot;;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;xml   += &amp;quot;&amp;lt;first&amp;gt;&amp;quot;  + first_input  + &amp;quot;&amp;lt;/first&amp;gt;&amp;quot;;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;xml   += &amp;quot;&amp;lt;second&amp;gt;&amp;quot; + second_input + &amp;quot;&amp;lt;/second&amp;gt;&amp;quot;;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;xml   += &amp;quot;&amp;lt;/input&amp;gt;&amp;quot;;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;cp.call( './backend.inc.php', // backend PHP Script Name&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;'calculate_sum',  // PHP Function Name the data should go to calculate_sum_result, // Javascript callback function&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;xml   // Passing XML String to the backend&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;);&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;}&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;function calculate_sum_result(result) // data returned from PHP is stored in result&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;{&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;document.getElementById('result').value = result;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;}&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;//--&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;br&gt;&lt;br /&gt;  &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Lines 1 &amp;ndash; 2:&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;  Mark the beginning of Javascript Code.&lt;/p&gt;&lt;br /&gt;&lt;/font&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;Lines 3- 7:&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;  Initialize the CPAINT Javascript object, set the transfer mode to POST (you can also use GET), set the response type to TEXT (can also use XML and OBJECT to get XML objects from PHP), and set the debug level to 0 (means no debugging).&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;p&gt;&lt;strong&gt;Lines 8 &amp;ndash; 21:&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;  A new Javascript function that gets called when the user clicks on Calculate button.&lt;br&gt;&lt;br /&gt;  On lines 10 - 11 this function extracts data from the two input fields and stores them in two javascript variables. On lines 12 &amp;ndash; 16, the function creates an xml string using input data. On lines 17 &amp;ndash; 20, calls a function &amp;lsquo;call&amp;rsquo; on cp object. cp.call takes (i) the backend PHP scrip name as string (ii) backend function name as string (iii) javascript callback function and (iv) xml string as input. It can take more arguments as input (see http://cpaint.sourceforge.net/doc/frontend.class.cpaint.call.html for more info).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Lines 22 &amp;ndash; 25:&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;  Callback function receives the result of calculation from PHP script and prints the result on the read-only result text field.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Now, we have to look at the backend PHP code. You should create another file (recommended) that will be your backend code in PHP. Create an empty PHP file named &amp;ldquo;backend.inc.php&amp;rdquo;. Add the code below to backend.inc.php.&lt;/p&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;font color="#666666"&gt;&amp;lt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;script language=&amp;quot;php&amp;quot;&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;require_once('./cpaint2.inc.php');       // require CPAINT PHP Script&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;$cp = new cpaint();        // Create a new CPAINT Object&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;$cp-&amp;gt;register('calculate_sum'); // register a function to execute&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;$cp-&amp;gt;start();        // start CPAINT&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;$cp-&amp;gt;return_data();        // Return Data&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;function calculate_sum($xml_str)&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;{&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;global $cp;       // defines the $cp as global variable&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;$xml = new SimpleXMLElement($xml_str); // defines a new XML Object&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;$first = trim($xml-&amp;gt;first);        // stores the first input number&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;$second= trim($xml-&amp;gt;second);      // stores the second input number&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;$cp-&amp;gt;set_data($first + $second);      // sets return data to the sum of input numbers&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;}&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font color="#666666"&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;br&gt;&lt;br /&gt;  &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;p&gt;&lt;strong&gt;Lines 2 &amp;ndash; 6:&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;  CPAINT initialization code, on line 4, I registered the &amp;ldquo;calculate_sum&amp;rdquo; function. You have to register all backend functions that you are going to call from javascript with CPAINT using the &amp;lsquo;register&amp;rsquo; function, so if you want to register a function named &amp;ldquo;test_function&amp;rdquo; you&amp;rsquo;ll do &amp;lsquo;$cp-&amp;gt;register(&amp;ldquo;test_function&amp;rdquo;);&amp;rsquo; to register the function.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Line 7:&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;  Start of function &amp;ldquo;calculate_sum&amp;rdquo; definition. The function also receives the XML string from Javascript in $xml_str.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Line9:&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;  Declares $cp as global variable inside the function.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Line 10:&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;  Line 10 creates a new XML object using the XML String.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Lines 11 &amp;ndash; 12:&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;  Extracts required data from XML object.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Line 13:&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;  Sets return value to the sum of input numbers.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;You can of course add some validity checks to the function.&lt;br&gt;&lt;br /&gt;  &lt;/p&gt;&lt;br /&gt;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8151966177268267713-4207973834832981599?l=onlyphp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://onlyphp.blogspot.com/feeds/4207973834832981599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8151966177268267713&amp;postID=4207973834832981599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8151966177268267713/posts/default/4207973834832981599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8151966177268267713/posts/default/4207973834832981599'/><link rel='alternate' type='text/html' href='http://onlyphp.blogspot.com/2007/03/creating-web-apps-in-ajax-using-cpaint.html' title='Creating Web Apps using CPAINT AJAX Framework (PART I) - Example'/><author><name>Shahryar Ghazi</name><uri>http://www.blogger.com/profile/14722642704007330333</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8151966177268267713.post-2898528891256811704</id><published>2007-03-22T07:39:00.000-07:00</published><updated>2007-06-19T09:45:50.017-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php layers menu script free open source gpl'/><title type='text'>Setting Up Simple Horizontal Menu Bar Using PHPLayersMenu (Part 02)</title><content type='html'>&lt;p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://onlyphp.blogspot.com"&gt;&lt;img src="http://static.technorati.com/pix/fave/btn-fave2.png" alt="Add to Technorati Favorites" /&gt;&lt;/a&gt;&lt;a href="javascript:location.href='http://slashdot.org/bookmark.pl?url='+encodeURIComponent(location.href)+'&amp;title='+encodeURIComponent(document.title)"&gt; &lt;br /&gt;&lt;img src="http://images.slashdot.org/favicon.gif" alt="Slashdot" border="0" height="16" width="16"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;DISCLAIMER:&lt;/strong&gt; I have made every attempt to present accurate information, but I cannot guarantee that inaccuracies will not occur. I (the author) will not be held responsible for any claim, loss, damage or inconvenience caused as a result of any information found on this website (blog).&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="3" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;Menu Configuration&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;  You must read &lt;a href="http://onlyphp.blogspot.com/2007/03/setting-up-simple-horizontal-menu-bar.html"&gt;Part 01&lt;/a&gt; of this tutorial before reading this.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;p&gt;It is very easy to configure the menu bar and items. You can add or remove menu items in &amp;lsquo;layersmenu-horizontal-1.txt&amp;rsquo; but for the look and feel etc. of the menu you have a number of options you can choose from.&lt;/p&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;Line [1 - 2] - Changing the Menu Bar and Menu Items&amp;rsquo; Style:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;  To change the look and feel of menu bar and items, you can make changes to the CSS stylesheet &amp;lsquo;phplayersmenu/layersmenu-keramik.css&amp;rsquo;. If you want to use a different style sheet then you have to make changes to the line below. Replace '&amp;lt;new file name with path&amp;gt;' with the new CSS file name.&lt;br /&gt;&lt;br /&gt;    &lt;font color="#666666"&gt;&lt;strong&gt;&amp;lt;link href=&amp;quot;&amp;lt;new file name with path&amp;gt;&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;Line [16] - Changing the base directory:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;  Instead of writing &amp;lsquo;phplayersmenu&amp;rsquo; as the base directory name in all functions you can also specify a base folder name &lt;font color="#666666"&gt;&lt;strong&gt;$myDirPath = &amp;quot;phplayersmenu&amp;quot;&lt;/strong&gt;&lt;/font&gt;.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;Lines [19 &amp;ndash; 20] - Changing the Images&amp;rsquo; Folder/Directory:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;  You can add more images for arrows by adding new files in 'phplayersmenu/menuimages/'. You can also change the menu images directory by modifying the functions below.&lt;br /&gt;&lt;br /&gt;    &lt;font color="#666666"&gt;&lt;strong&gt;$mid-&amp;gt;setImgdir('&amp;lt;new image folder&amp;gt;');&lt;br /&gt;&lt;br /&gt;  $mid-&amp;gt;setImgwww('&amp;lt;new image folder&amp;gt;');&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;Lines [21 &amp;ndash; 22] - Changing the Icons&amp;rsquo; Folder/Directory:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;  The icons&amp;rsquo; folder can be changed using the functions below. Replace '&amp;lt;folder name&amp;gt;' with actual folder name below.&lt;br /&gt;&lt;br /&gt;    &lt;font color="#666666"&gt;&lt;strong&gt;$mid-&amp;gt;setIcondir('&amp;lt;folder name&amp;gt;'); &lt;br /&gt;&lt;br /&gt;  $mid-&amp;gt;setIconwww('&amp;lt;folder name&amp;gt;');&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;Line [23] - Changing Icon Size:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;  You can change size of icons used with menu items by making changes to the function parameters of &lt;font color="#666666"&gt;&lt;strong&gt;$mid-&amp;gt;setIconsize(22, 22);&lt;/strong&gt;&lt;/font&gt;. First parameter denotes width and the second parameter denotes height of icons.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;Lines [27 &amp;ndash; 28] - Changing Arrows used in Menu Bar:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;  You can change the arrows (down, forward) using the functions below. Replace '&amp;lt;image file name&amp;gt;' with actual file names.&lt;br /&gt;&lt;br /&gt;    &lt;font color="#666666"&gt;&lt;strong&gt;$mid-&amp;gt;setDownArrowImg('&amp;lt;image file name&amp;gt;');&lt;br /&gt;&lt;br /&gt;  $mid-&amp;gt;setForwardArrowImg('&amp;lt;image file name&amp;gt;');&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;Line [29] - Changing name of Menu File:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;  Change the name in the function below.&lt;br /&gt;&lt;br /&gt;  &lt;font color="#666666"&gt;&lt;strong&gt;$mid-&amp;gt;setMenuStructureFile('layersmenu-horizontal-1.txt');&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;br /&gt;&lt;p&gt;  Make sure you delete unnecessary files under phplayersmenu folder. Most of the example scripts are not required on a production server.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Please let me know if you find any errors in this tutorial. Thanks.&lt;/p&gt;&lt;br /&gt;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8151966177268267713-2898528891256811704?l=onlyphp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://onlyphp.blogspot.com/feeds/2898528891256811704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8151966177268267713&amp;postID=2898528891256811704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8151966177268267713/posts/default/2898528891256811704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8151966177268267713/posts/default/2898528891256811704'/><link rel='alternate' type='text/html' href='http://onlyphp.blogspot.com/2007/03/setting-up-simple-horizontal-menu-bar_22.html' title='Setting Up Simple Horizontal Menu Bar Using PHPLayersMenu (Part 02)'/><author><name>Shahryar Ghazi</name><uri>http://www.blogger.com/profile/14722642704007330333</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8151966177268267713.post-7755776271687708638</id><published>2007-03-22T05:38:00.000-07:00</published><updated>2007-06-19T09:46:05.395-07:00</updated><title type='text'>Setting Up Simple Horizontal Menu Bar Using PHPLayersMenu (Part 01)</title><content type='html'>&lt;p&gt;&lt;a href="http://technorati.com/faves?sub=addfavbtn&amp;amp;add=http://onlyphp.blogspot.com"&gt;&lt;img src="http://static.technorati.com/pix/fave/btn-fave2.png" alt="Add to Technorati Favorites" /&gt;&lt;/a&gt;&lt;a href="javascript:location.href='http://slashdot.org/bookmark.pl?url='+encodeURIComponent(location.href)+'&amp;title='+encodeURIComponent(document.title)"&gt; &lt;br /&gt;&lt;img src="http://images.slashdot.org/favicon.gif" alt="Slashdot" border="0" height="16" width="16"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;PHPLayersMenu is an easy-to-use, flexible, and advanced Menu System for PHP. With PHPLayerMenu, you don&amp;rsquo;t have to write your own code to create a menu bar. Moreover, PHPLayersMenu is compatible with many browsers. According to PHPLayersMenu&amp;rsquo;s home page, it is compatible with the following:&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Layers-based menus require JavaScript and work at least on the following browsers:&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Mozilla 0.6+ (versions 0.9.2+ are suggested)&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt; Netscape 6.0+ and other browsers based on Mozilla, e.g. Epiphany and Galeon&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Konqueror 2.2+ and browsers based on it, e.g. Safari&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Opera 6.x for Linux&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt; Opera 7.x&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Internet Explorer 5, 5.5, 6.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;If old-style templates are used instead of the default ones, layers-based menus work also on the following browsers:&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Netscape 4.07+&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt; Opera 5.x and 6.x&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt; Internet Explorer 4 &lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Before we proceed,&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;strong&gt;DISCLAIMER:&lt;/strong&gt; I have made every attempt to present accurate information, but I cannot guarantee that inaccuracies will not occur. I (the author) will not be held responsible for any claim, loss, damage or inconvenience caused as a result of any information found on this website (blog).&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;For this tutorial, I am assuming that the PHP script that uses PHPLayersMenu resides in a folder named &amp;lsquo;test&amp;rsquo;. Also, I&amp;rsquo;ll only show how to set up a horizontal Menu bar.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;font size="4" face="Verdana, Arial, Helvetica, sans-serif"&gt;Menu Installation&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Follow the steps below:&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;  Download PHPLayersMenu from http://phplayersmenu.sourceforge.net/. The version that I used for this tutorial is 3.2.0.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Extract files from the downloaded file into a folder named &amp;ldquo;phplayersmenu&amp;rdquo;.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Copy PHPLayersMenu script folder inside the folder &amp;lsquo; test&amp;rsquo;.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Now, I&amp;rsquo;ll start off with a simple php page. Name this file &amp;ldquo;menu.php&amp;rdquo;. Copy and paste the HTML code below to &amp;ldquo;menu.php&amp;rdquo;.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;font color="#666666" face="Courier New, Courier, monospace"&gt;&lt;strong&gt;&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!--    PhpLayersmenu Code Section 01 //--&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=iso-8859-1&amp;quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!--    PhpLayersmenu Code  Section 02  //--&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!--    PhpLayersmenu Code  Section 03  //--&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;html code here&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!--    PhpLayersmenu Code  Section 04 //--&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;In section 01 of menu.php, copy and paste the code below.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;font color="#666666" face="Courier New, Courier, monospace"&gt;&lt;strong&gt;&amp;lt;script language=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;  $myDirPath = &amp;quot;./&amp;quot;;&lt;br /&gt;&lt;br /&gt;  $myWwwPath = &amp;quot;&amp;quot;;&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;In section 02 of menu.php, copy and paste code below.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt; &lt;font color="#666666" face="Courier New, Courier, monospace"&gt;&amp;lt;link href=&amp;quot;phplayersmenu/layersmenu-keramik.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; &lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt; /&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot; &lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;src=&amp;quot;phplayersmenu/libjs/layersmenu-browser_detection.js&amp;quot;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;src=&amp;quot;phplayersmenu/libjs/layersmenu-library.js&amp;quot;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot; &lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt; src=&amp;quot;phplayersmenu/libjs/layersmenu.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;&amp;lt;script language=&amp;quot;php&amp;quot;&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;include_once(&amp;quot;phplayersmenu/lib/PHPLIB.php&amp;quot;);&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;include_once(&amp;quot;phplayersmenu/lib/layersmenu-common.inc.php&amp;quot;);&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;include_once(&amp;quot;phplayersmenu/lib/layersmenu.inc.php&amp;quot;);&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt; $mid = new LayersMenu(3, 8, 1, 1);&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setDirroot($myDirPath);&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setLibjsdir('phplayersmenu/libjs/');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setTpldir('phplayersmenu/templates/');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setImgdir('phplayersmenu/menuimages/');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setImgwww('phplayersmenu/menuimages/');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setIcondir('phplayersmenu/menuicons/');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setIconwww('phplayersmenu/menuicons/');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setIconsize(22, 22);&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setTpldir('phplayersmenu/templates/');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setHorizontalMenuTpl('layersmenu-horizontal_menu-keramik-full.ihtml');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setSubMenuTpl('layersmenu-sub_menu-keramik.ihtml');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setDownArrowImg('down-arrow.png');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setForwardArrowImg('forward-arrow.png');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;setMenuStructureFile('layersmenu-horizontal-1.txt');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;parseStructureForMenu('hormenu1');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;newHorizontalMenu('hormenu1');&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;$mid-&amp;gt;printHeader();&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;In Section 03 (in menu.php), copy and paste the code below. This is the place where PHP creates the menu bar.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;&lt;font color="#666666" size="2" face="Courier New, Courier, monospace"&gt;&lt;strong&gt;&amp;lt;script language=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;  $mid-&amp;gt;printMenu(&amp;quot;hormenu1&amp;quot;); &lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;  In Section 04 (in menu.php), copy and paste the code below. This should be just above the closing body tag.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;br /&gt;&lt;br /&gt;      &lt;strong&gt;&lt;font color="#666666" face="Courier New, Courier, monospace"&gt;&amp;lt;?php  $mid-&amp;gt;printFooter(); ?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!--&lt;br /&gt;&lt;br /&gt;      loaded = 1;&lt;br /&gt;&lt;br /&gt;      //--&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;  &lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;You also have to create a text file containing the menu items, icons, and links (for more read the files that come with PHPLayersMenu). For now, this file will be named &amp;ldquo;layersmenu-horizontal-1.txt&amp;rdquo;. So create a new text file named &amp;ldquo;layersmenu-horizontal-1.txt&amp;rdquo; and copy and paste the text below. Items that start with &amp;lsquo;.&amp;rsquo; represent top-level menu items and items that start with &amp;lsquo;..&amp;rsquo; represent sub menu items. Fields are delimited by the pipe character &amp;lsquo;|&amp;rsquo;.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;&lt;br /&gt;&lt;br /&gt;      &lt;strong&gt;&lt;font color="#666666" face="Courier New, Courier, monospace"&gt;.|Menu1|http://sghazi.blogspot.com|Menu 1 Tag|menu1_icon.png&lt;br /&gt;&lt;br /&gt;    ..|Submenu 1 of Menu 1| http://www.linux.org|Submenu 1 of Menu 1 Tag|submenu_1_1_icon.png&lt;br /&gt;&lt;br /&gt;    ..|Submenu 2 of Menu 1| http://www.debian.org|Submenu 2 of Menu 1 Tag|submenu_2_1_icon.png&lt;br /&gt;&lt;br /&gt;    .|Menu2|http://www.apache.org|Menu 2 Tag|menu2_icon.png&lt;br /&gt;&lt;br /&gt;    ..|Submenu 1 of Menu 2| http://www.php.net|Submenu 1 of Menu 2 Tag|submenu_1_2_icon.png&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Icons must be stored in the directory represented by $mid-&amp;gt;setIcondir('&amp;rsquo;);. The default is &amp;lsquo;phplayersmenu/menuicons/&amp;rsquo;. So, save all the icon files in this folder.&lt;/font&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="2" face="Verdana, Arial, Helvetica, sans-serif"&gt;Upload the Files and folders (phplayersmenu, layersmenu-horizontal-1.txt, and menu.php) and go to menu.php using your favorite browser (must be a supported browser with Javascript Enabled) and go to menu.php. You should see a horizontal layered menu.&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8151966177268267713-7755776271687708638?l=onlyphp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://onlyphp.blogspot.com/feeds/7755776271687708638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8151966177268267713&amp;postID=7755776271687708638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8151966177268267713/posts/default/7755776271687708638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8151966177268267713/posts/default/7755776271687708638'/><link rel='alternate' type='text/html' href='http://onlyphp.blogspot.com/2007/03/setting-up-simple-horizontal-menu-bar.html' title='Setting Up Simple Horizontal Menu Bar Using PHPLayersMenu (Part 01)'/><author><name>Shahryar Ghazi</name><uri>http://www.blogger.com/profile/14722642704007330333</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
