File: index.php

Recommend this page to a friend!
  Classes of Pavel Kukov   Local Data   index.php   Download  
File: index.php
Role: Documentation
Content type: text/plain
Description: index.php
Class: Local Data
Store multiple values in single cookies
Author: By
Last change: update
Date: 11 years ago
Size: 16,895 bytes
 

Contents

Class file image Download
<?php ob_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge" > <script type="text/javascript" src="./js/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="./js/localdata.js"></script> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>localdata.js</title> <style type="text/css"> <!-- .clearAll { font-size:9px; height:1px; overflow:hidden; position:relative; display:block; clear:both; float:none; } .notSelectable { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } input:focus, textarea:focus, td:focus { outline: none; } html, body { font-family: "Century Gothic", CenturyGothic, "AppleGothic", "Avant Garde", Avantgarde, sans-serif; font-size:16px; margin:0; padding:0; overflow-y:scroll; } body.hl { background-color:#ffffff; } pre.hl { color:#000000; background-color:#ffffff; font-size:10pt; font-family:'Courier New'; } .hl.num { color:#0000ff; font-weight:bold; } .hl.esc { color:#a31515; } .hl.str { color:#a31515; } .hl.pps { color:#0000ff; } .hl.slc { color:#606060; } .hl.com { color:#606060; } .hl.ppc { color:#0000ff; } .hl.opt { color:#000000; } .hl.lin { color:#b0b0b0; } .hl.kwa { color:#0000ff; } .hl.kwb { color:#0000ff; } .hl.kwc { color:#2b91af; } .hl.kwd { color:#2b91af; } .hl.kwe { color:#000000; } span.required { color:#C00; font-size: 16px; } .text_description { overflow: auto; width:400px; height:80px; } .medium_size { width: 400px; } textarea.medium_size { overflow: auto; height: 80px; } select.medium_size { width: 407px; } select, textarea, input { padding: 5px 3px; display:inline-block; font-size: 14px; border: 1px solid #999; color:#003F5A; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; margin:5px; } select:focus, textarea:focus, input:focus { -webkit-box-shadow: 0 0 8px rgba(251, 184, 41, 1) !important; -moz-box-shadow: 0 0 8px rgba(251, 184, 41, 1) !important; -o-box-shadow: 0 0 8px rgba(251, 184, 41, 1) !important; -ms-box-shadow: 0 0 8px rgba(251, 184, 41, 1) !important; box-shadow: 0 0 8px rgba(251, 184, 41, 1) !important; border: 1px solid #FBB829 !important; color:#000 !important; } select:hover, textarea:hover, input:hover { -webkit-box-shadow: 0 0 4px rgba(153, 153, 153, 1); -moz-box-shadow: 0 0 4px rgba(153, 153, 153, 1); -o-box-shadow: 0 0 4px rgba(153, 153, 153, 1); -ms-box-shadow: 0 0 4px rgba(153, 153, 153, 1); box-shadow: 0 0 4px rgba(153, 153, 153, 1); border: 1px outset #999; color:#000080; } input.datepicker { background-image:url("/admin/css/images/calendar.png"); background-repeat:no-repeat; background-position:98% center; } .zebra_light { background-color:#FFFFFF; } .zebra_dark { background-color:#F9F9F9; } .date_size { width: 150px; } .normal_size { width: 300px; } .small_size { width: 150px; } select.small_size { width:157px; } .new_line { clear: both; float: none; display: block; } .small_link { font-size:10px; text-decoration: none; color:#F38630; } .small_alert { font-size: 11px; color:#C00; padding: 3px; margin:3px; clear:both; display:block; } .form-table { width:100%; } .form-table td { text-align: left; vertical-align: top; border-bottom: 1px dotted #CCC; padding:5px; margin:2px; } .form-table tr:last-child td { padding-bottom:15px !important; border-bottom:none !important; } .grid_ctrl { display: inline-block; cursor: pointer; background-image: url("/css/default/images/pencil.png"); background-repeat: no-repeat; background-position: 5px center; font-size:11px; color:#777; padding: 4px 6px 4px 26px; background-color:#DCDCDC; } .grid_ctrl:hover { background-color:#FFF; background-position: 4px center; padding: 3px 5px 3px 25px; border-bottom:1px solid #555; border-right:1px solid #555; border-top:1px solid #FFFFBE; border-left:1px solid #FFFFBE; } .kendo-list-with-icon { padding-left: 26px; background-position: 2px center; background-repeat: no-repeat; display: block; margin:2px; background-color:none !important; } label.error { -webkit-box-shadow: 0 0 8px rgba(251, 184, 41, 1); -moz-box-shadow: 0 0 8px rgba(251, 184, 41, 1); -o-box-shadow: 0 0 8px rgba(251, 184, 41, 1); -ms-box-shadow: 0 0 8px rgba(251, 184, 41, 1); box-shadow: 0 0 8px rgba(251, 184, 41, 1); border: 1px solid #FBB829; color:#CD0A0A; padding:2px 5px; margin:-2px 9px 3px 9px; -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } .go_button { background-color: #F3F3F3; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#F3F3F3'); background: -webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#F3F3F3)); background: -moz-linear-gradient(top, #FFFFFF, #F3F3F3); background: -o-linear-gradient(top, #FFFFFF, #F3F3F3); background: -ms-linear-gradient(top, #FFFFFF, #F3F3F3); background-image: linear-gradient(to bottom, #FFFFFF, #F3F3F3); padding: 3px 10px 5px 10px; margin:0 5px; text-align:center; color:#555; cursor: pointer; -moz-border-radius-topleft: 0px; -webkit-border-top-left-radius: 0px; -khtml-border-top-left-radius: 0px; border-top-left-radius: 0px; -moz-border-radius-topright: 0px; -webkit-border-top-right-radius: 0px; -khtml-border-top-right-radius: 0px; border-top-right-radius: 0px; -moz-border-radius-bottomleft: 0px; -webkit-border-bottom-left-radius: 0px; -khtml-border-bottom-left-radius: 0px; border-bottom-left-radius: 0px; -moz-border-radius-bottomright: 0px; -webkit-border-bottom-right-radius: 0px; -khtml-border-bottom-right-radius: 0px; border-bottom-right-radius: 0px; } .go_button:hover { background-color: #999; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#999999', endColorstr='#333333'); background: -webkit-gradient(linear, left top, left bottom, from(#999999), to(#333333)); background: -moz-linear-gradient(top, #999999, #333333); background: -o-linear-gradient(top, #999999, #333333); background: -ms-linear-gradient(top, #999999, #333333); background-image: linear-gradient(to bottom, #999999, #333333); color:#FFF; } #z1 { position:absolute; width:100%; height:40px; top:0; left:0; z-index:1; background-color:#1D5B7A; } #z2 { position:absolute; width:100%; height:auto; top:0; left:0; z-index:2; } .hmenu { text-decoration:none; color:#DBF2DF; float:left; margin:4px 15px 0 0; } .hmenu:hover { text-decoration:underline; } .hmenu.activ { color:#FFF; text-decoration:underline; } #msg { width:500px; height:160px; overflow:auto; } .mbox { width:600px; height:auto; overflow:auto; border:1px dashed #CCC; padding:10px; float:right; margin:10px; background-color:#F4F7F2; z-index:1; white-space: pre; /* CSS 2.0 */ white-space: pre-wrap; /* CSS 2.1 */ white-space: pre-line; /* CSS 3.0 */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ white-space: -moz-pre-wrap; /* Mozilla */ white-space: -hp-pre-wrap; /* HP Printers */ word-wrap: break-word; /* IE 5+ */ } .mbox:hover { border:1px solid #FC0; } .comment_holder { height:auto; clear:both; margin:10px; display:block; position:relative; } pre { display:block; } .rate_box { position:relative; float:left; width:70px; margin:10px 0 0 10px; } .rate_up, .rate_down { clear:both; height:22px; background-image:url(/images/arrows.png); background-repeat:no-repeat; cursor:pointer; } .rate_up { background-position:top left; } .rate_down { background-position:top right; } .rate_up:hover { background-position:bottom left; } .rate_down:hover { background-position:bottom right; } .rating { clear:both; font-size:24px; color:#2C3754; text-align:center; } .comment_from { width:610px; float:right; clear:both; margin:10px 0 0 0; } .mark { color:#1D5B7A; font-style:italic; font-size:14px; font-weight:bold; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; } --> </style> </head> <body> <div id="z1"></div> <div id="z2"> <table id="main_tbl" width="750" cellpadding="5" cellspacing="0" border="0" align="center"> <tr> <td><a class="hmenu" href="./">LOCALDATA.JS</a></td> </tr> <tr> <td> <h2>Sample usage for localdata.js</h2> <p><strong>Store</strong> - <span class="mark">$.localdata("name", "value");</span> <br /> value can be integer, string, object, array <br /> $.localdata("name", [1,2,3,4,5]); <br /> $.localdata("name", {name: "John Dow", email: "john@company.com"}); </p> <p><strong>Read</strong> - <span class="mark">$.localdata("name");</span> </p> <p><strong>Delete One Item By Key</strong> - <span class="mark">$.localdata.remove("name");</span> or $.localdata("name",null,{expires:-1}); </p> <p><strong>Delete entire cookie</strong> - <span class="mark">$.localdata.clear();</span> </p> <p><strong>Count Stored Items</strong> - <span class="mark">$.localdata.count();</span> </p> <p><strong>Force Reload</strong> - <span class="mark">$.localdata.reload();</span> </p> <p><strong>Get/Set cookie configuration</strong> - <span class="mark">$.localdata.config()</span> and <span class="mark">$.localdata.config({expires: 'in days', path: 'your new path', domain: 'domain', 'secure': true or false})</span> defaults are expires: 365, path: '/', domain: '', 'secure': ''</p> <p><strong>Get/Set cookie prefix</strong> - <span class="mark">$.localdata.prefix()</span> and <span class="mark">$.localdata.prefix("new_prefix_")</span> default is "localdata_cookie_" </p> <h2>PHP: Sample usage for localdata.php</h2> <p><strong>Include</strong> - <span class="mark">include('localdata.php');</span> <br /> <p><strong>Create Object</strong> - <span class="mark">$localdata = localdata::get();</span> <br /> <p><strong>Store</strong> - <span class="mark">$localdata("name", "value");</span> or <span class="mark">$localdata->name = "value";</span><br /> value can be integer, string, object, array <br /> $localdata("name", array(1,2,3,4,5)); <br /> $localdata("name", array("name" => "John Dow", "email" => "john@company.com")); </p><br /> <p><strong>Read</strong> - <span class="mark">$localdata("name");</span> or <span class="mark">$localdata->name</span></p> <p><strong>Delete One Item By Key</strong> - <span class="mark">$localdata->remove("name");</span> </p> <p><strong>Delete entire cookie</strong> - <span class="mark">$localdata->clear();</span> </p> <p><strong>Count Stored Items</strong> - <span class="mark">$localdata->count();</span> </p> <p><strong>Get/Set cookie configuration</strong> - <span class="mark">$localdata->config()</span> and <span class="mark">$localdata->config(Array('expires' => 'in days', 'path' => 'your new path', 'domain' => 'domain', 'secure' => true or false})</span> defaults are 'expires' => 365, 'path' => '/', 'domain' => NULL, 'secure' => NULL</p> <p><strong>Get/Set cookie prefix</strong> - <span class="mark">$localdata->prefix()</span> and <span class="mark">$localdata->prefix("new_prefix_")</span> default is "localdata_cookie_" </p> <input type="text" id="userInput" style="width:160px;" /><input id="write_to_local" type="button" value="write this to localdata" style="cursor:pointer; margin-left:10px;" /><h4>Local Data Object</h4><pre id="before_result"></pre> <h4>Local Data Object After Modification from Javascript</h4><pre id="result"></pre><h4>Local Data Object After Modification from PHP</h4><pre id="php_result"> <?php include('localdata.php'); $localdata = localdata::get(); $master_object = $localdata("master_object"); $master_object['php_data'] = array("name" => "John Dow", "email" => "john@company.com", "PHP-rand" => rand(1,1000000)); $localdata("master_object", $master_object); print_r( $localdata("master_object") ); ?> </pre> </td> </tr> </table> </div> <script type="text/javascript"> /** * Function : dump() * Arguments: The data - array,hash(associative array),object * The level - OPTIONAL * Returns : The textual representation of the array. * This function was inspired by the print_r function of PHP. * This will accept some data as the argument and return a * text that will be a more readable version of the * array/hash/object that is given. * Docs: http://www.openjs.com/scripts/others/dump_function_php_print_r.php */ function dump(arr,level) { var dumped_text = ""; if(!level) level = 0; //The padding given at the beginning of the line. var level_padding = ""; for(var j=0;j<level+1;j++) level_padding += " "; if(typeof(arr) == 'object') { //Array/Hashes/Objects for(var item in arr) { var value = arr[item]; if(typeof(value) == 'object') { //If it is an array, dumped_text += level_padding + "'" + item + "' ...\n"; dumped_text += dump(value,level+1); } else { dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n"; } } } else { //Stings/Chars/Numbers etc. dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; } return dumped_text; } function makeIsoDate(date_obj) { var month = new Array(); var Y = date_obj.getFullYear(); var m = date_obj.getMonth()+1; var d = date_obj.getDate(); var H = date_obj.getHours(); var i = date_obj.getMinutes(); var s = date_obj.getSeconds(); if(m < 10){ m = '0'+m; } if(d < 10){ d = '0'+d; } if(H < 10){ H = '0'+H; } if(i < 10){ i = '0'+i; } if(s < 10){ s = '0'+s; } return Y+'-'+m+'-'+d+' '+H+':'+i+':'+s; } $(function() { var before_str = dump($.localdata('master_object')); $("#before_result").html("Localdata Config: \n"+(dump($.localdata.config()))+"\n $.localdata('master_object') = :\n"+before_str); var array_1 = []; var array_2 = []; var array_3 = []; var createDateTime = makeIsoDate( new Date() ); var UserInput = $.localdata('userinput'); if(UserInput && UserInput != "undefined") { $("#userInput").attr("value", UserInput); } for(i=0, loops=Math.round(Math.random()*10)+1; i<loops; i++) { array_1.push( Math.round(Math.random()*100) ); } for(i=0, loops=Math.round(Math.random()*10)+1;i<loops;i++) { array_2.push( Math.round(Math.random()*100) ); } for(i=0, loops=Math.round(Math.random()*10)+1;i<loops;i++) { array_3.push( Math.round(Math.random()*100) ); } var master_object = {'createDateTime':createDateTime, 'UserInput':UserInput, 'array_1':array_1,'array_2':array_2,'array_3':array_1}; $.localdata('master_object', master_object); var read_str = dump($.localdata('master_object')); $.localdata.config({expires:182}); $("#result").html("Localdata Config: \n"+(dump($.localdata.config()))+"\n $.localdata('master_object') = :\n"+read_str); $("#write_to_local").click(function(){ $.localdata('userinput', $("#userInput").attr("value")); document.location = document.location; }); }); </script> </body> </html> <?php ob_end_flush(); ?>