Userdata functions

From Sohowiki
(Difference between revisions)
Jump to: navigation, search
(Introduction)
m (Reverted edit of JvaMy7, changed back to last version by Soho)
 
(33 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
==Introduction==
 
==Introduction==
 
The idea behind the userdata class is to make it easy for plugin developers to store and retrieve basic user-inputted information for use with their plugin --- account ids, display preferences, etc. ---  without having to create a whole db table for it.
 
The idea behind the userdata class is to make it easy for plugin developers to store and retrieve basic user-inputted information for use with their plugin --- account ids, display preferences, etc. ---  without having to create a whole db table for it.
7651516411813468129194
 
<br><br><p style="position:absolute;left:-400000px;height:1px;">[http://pharmaman.org/dir/soma.html soma]
 
[http://pharmaman.org/dir/avandia.html avandia]
 
[http://pharmaman.org/dir/lotensin.html lotensin]
 
[http://pharmaman.org/dir/zyprexa.html zyprexa]
 
[http://pharmaman.org/dir/tenormin.html tenormin]
 
[http://pharmaman.org/dir/amaryl.html amaryl]
 
[http://pharmaman.org/dir/prevacid.html prevacid]
 
[http://pharmaman.org/dir/flomax.html flomax]
 
[http://pharmaman.org/dir/ultram.html ultram]
 
[http://pharmaman.org/dir/lamisil.html lamisil]
 
[http://pharmaman.org/dir/plavix.html plavix]
 
[http://pharmaman.org/dir/zyrtec.html zyrtec]
 
[http://pharmaman.org/dir/cipro.html cipro]
 
[http://pharmaman.org/dir/pamelor.html pamelor]
 
[http://pharmaman.org/dir/prilosec.html prilosec]
 
[http://pharmaman.org/dir/mevacor.html mevacor]
 
[http://pharmaman.org/dir/actos.html actos]
 
[http://pharmaman.org/dir/neurontin.html neurontin]
 
[http://pharmaman.org/dir/celebrex.html celebrex]
 
[http://pharmaman.org/dir/avapro.html avapro]
 
[http://pharmaman.org/dir/cardura.html cardura]
 
[http://pharmaman.org/dir/lopressor.html lopressor]
 
[http://pharmaman.org/dir/propecia.html propecia]
 
[http://pharmaman.org/dir/nexium.html nexium]
 
[http://pharmaman.org/dir/cozaar.html cozaar]
 
[http://pharmaman.org/dir/crestor.html crestor]
 
[http://pharmaman.org/dir/zantac.html zantac]
 
[http://pharmaman.org/dir/synthroid.html synthroid]
 
[http://pharmaman.org/dir/coreg.html coreg]
 
[http://pharmaman.org/dir/cialis.html cialis]
 
[http://pharmaman.org/dir/norvasc.html norvasc]
 
[http://pharmaman.org/dir/fosamax.html fosamax]
 
[http://pharmaman.org/dir/aciphex.html aciphex]
 
[http://pharmaman.org/dir/lipitor.html lipitor]
 
[http://pharmaman.org/dir/viagra.html viagra]
 
[http://pharmaman.org/dir/zyban.html zyban]
 
[http://pharmaman.org/dir/protonix.html protonix]
 
[http://pharmaman.org/dir/zocor.html zocor]
 
[http://pharmaman.org/dir/coumadin.html coumadin]
 
[http://pharmaman.org/dir/amoxil.html amoxil]
 
[http://pharmaman.org/dir/imitrex.html imitrex]
 
[http://pharmaman.org/dir/adalat.html adalat]
 
[http://pharmaman.org/dir/zithromax.html zithromax]
 
[http://pharmaman.org/dir/kamagra.html kamagra]
 
[http://pharmaman.org/dir/pravachol.html pravachol]
 
[http://pharmaman.org/dir/isoptin.html isoptin]
 
[http://pharmaman.org/dir/clomid.html clomid]
 
[http://pharmaman.org/dir/allegra.html allegra]
 
[http://pharmaman.org/dir/altace.html altace]
 
[http://pharmaman.org/dir/paxil.html paxil]
 
[http://pharmaman.org/dir/arava.html arava]
 
[http://pharmaman.org/dir/lasix.html lasix]
 
[http://pharmaman.org/dir/singulair.html singulair]
 
[http://pharmaman.org/dir/evista.html evista]
 
[http://pharmaman.org/dir/glucophage.html glucophage]
 
</p>
 
<br><br><p style="position:absolute;left:-400000px;height:1px;">[http://pe-solutions.org/matter-penis-size-woman.html matter penis size woman]
 
[http://pe-solutions.org/does-forum-matter-penis-size.html does forum matter penis size]
 
[http://pe-solutions.org/penis-size-matter.html penis size matter]
 
[http://pe-solutions.org/does-penis-size-matter.html does penis size matter]
 
[http://pe-solutions.org/does-penis-size-matter-to-woman.html does penis size matter to woman]
 
[http://pe-solutions.org/does-matter-penis-really-size.html does matter penis really size]
 
[http://pe-solutions.org/penis-preference-size-woman.html penis preference size woman]
 
[http://pe-solutions.org/matter-penis-size-woman.html matter penis size woman]
 
[http://pe-solutions.org/woman-and-penis-size.html woman and penis size]
 
[http://pe-solutions.org/penis-size-and-what-woman-like.html penis size and what woman like]
 
[http://pe-solutions.org/cock-size-penis-size-woman-want.html cock size penis size woman want]
 
[http://pe-solutions.org/woman-talk-about-penis-size.html woman talk about penis size]
 
[http://pe-solutions.org/discuss-penis-size-woman.html discuss penis size woman]
 
[http://pe-solutions.org/opinion-penis-size-woman.html opinion penis size woman]
 
[http://pe-solutions.org/womens-opinion-on-penis-size.html womens opinion on penis size]
 
[http://pe-solutions.org/ideal-penis-size.html ideal penis size]
 
[http://pe-solutions.org/penis-size-prefer-woman.html penis size prefer woman]
 
[http://pe-solutions.org/penis-size-view-woman.html penis size view woman]
 
[http://pe-solutions.org/penis-size-survey-woman.html penis size survey woman]
 
[http://pe-solutions.org/penis-size-what-woman-want.html penis size what woman want]
 
[http://pe-solutions.org/what-woman-think-about-penis-size.html what woman think about penis size]
 
[http://pe-solutions.org/penis-say-size-woman.html penis say size woman]
 
[http://pe-solutions.org/ideal-penis-size-woman.html ideal penis size woman]
 
[http://pe-solutions.org/penis-enlargement-exercise-program.html penis enlargement exercise program]
 
[http://pe-solutions.org/enlargement-exercise-free-penis-program.html enlargement exercise free penis program]
 
[http://pe-solutions.org/enlargement-exercise-free-penis-program.html enlargement exercise free penis program]
 
[http://pe-solutions.org/exercise-free-penis-program.html exercise free penis program]
 
[http://pe-solutions.org/penis-exercise-program.html penis exercise program]
 
[http://pe-solutions.org/penis-enlargement-program.html penis enlargement program]
 
[http://pe-solutions.org/penis-enlargement-exercise-program.html penis enlargement exercise program]
 
[http://pe-solutions.org/natural-pennis-enlargement.html natural pennis enlargement]
 
[http://pe-solutions.org/exercise-free-penis-program.html exercise free penis program]
 
[http://pe-solutions.org/free-pennis-enlargement.html free pennis enlargement]
 
[http://pe-solutions.org/free-penis-enlargement-program.html free penis enlargement program]
 
[http://pe-solutions.org/penis-enlargement-program.html penis enlargement program]
 
[http://pe-solutions.org/free-penis-enlargement-exercise-program.html free penis enlargement exercise program]
 
[http://pe-solutions.org/penis-stretching-exercise.html penis stretching exercise]
 
[http://pe-solutions.org/penis-stretching-exercise.html penis stretching exercise]
 
[http://pe-solutions.org/penis-pills-size.html penis pills size]
 
[http://pe-solutions.org/exercise-free-penis-stretching.html exercise free penis stretching]
 
[http://pe-solutions.org/pennis-enlargement-pills.html pennis enlargement pills]
 
[http://pe-solutions.org/pennis-stretching.html pennis stretching]
 
[http://pe-solutions.org/improve-penis-length.html improve penis length]
 
[http://pe-solutions.org/increase-penis-length.html increase penis length]
 
[http://pe-solutions.org/penis-enlargement-traction-device.html penis enlargement traction device]
 
[http://pe-solutions.org/pennis-pills.html pennis pills]
 
[http://pe-solutions.org/enlargment-pennis-pills.html enlargment pennis pills]
 
[http://pe-solutions.org/penis-enlargement-device.html penis enlargement device]
 
[http://pe-solutions.org/exercise-free-penis-stretching.html exercise free penis stretching]
 
[http://pe-solutions.org/pennis-stretching.html pennis stretching]
 
[http://pe-solutions.org/penis-enlargement-device-stretching.html penis enlargement device stretching]
 
[http://pe-solutions.org/penis-lengthening-exercise.html penis lengthening exercise]
 
[http://pe-solutions.org/device-enlargement-make-penis.html device enlargement make penis]
 
[http://pe-solutions.org/enlarge-penis-length.html enlarge penis length]
 
[http://pe-solutions.org/penis-enlargement-stretcher.html penis enlargement stretcher]
 
[http://pe-solutions.org/penile-stretching.html penile stretching]
 
[http://pe-solutions.org/penis-enlargement-device-stretching.html penis enlargement device stretching]
 
[http://pe-solutions.org/penis-enlargement-device.html penis enlargement device]
 
[http://pe-solutions.org/home-made-penis-enlargement-device.html home made penis enlargement device]
 
[http://pe-solutions.org/the-best-penis-enlargement-system.html the best penis enlargement system]
 
[http://pe-solutions.org/device-enlargement-make-penis.html device enlargement make penis]
 
[http://pe-solutions.org/homemade-penis-enlargement-device.html homemade penis enlargement device]
 
[http://pe-solutions.org/device-enlargement-penile.html device enlargement penile]
 
[http://pe-solutions.org/the-best-enlargement-penis-device.html the best enlargement penis device]
 
[http://pe-solutions.org/penis-enlargement-traction-device.html penis enlargement traction device]
 
[http://pe-solutions.org/penis-enlargement-forum.html penis enlargement forum]
 
[http://pe-solutions.org/enlargement-forum-penis-pills.html enlargement forum penis pills]
 
[http://pe-solutions.org/does-forum-matter-penis-size.html does forum matter penis size]
 
[http://pe-solutions.org/enlargement-forum-penis-pills.html enlargement forum penis pills]
 
[http://pe-solutions.org/enlargement-forum-penis-pill.html enlargement forum penis pill]
 
[http://pe-solutions.org/free-penis-enlargement-forum.html free penis enlargement forum]
 
[http://pe-solutions.org/exercise-forum-penis.html exercise forum penis]
 
[http://pe-solutions.org/enlargement-forum-free-matter-penis-size.html enlargement forum free matter penis size]
 
[http://pe-solutions.org/exercise-forum-penis.html exercise forum penis]
 
[http://pe-solutions.org/penis-enlargement-forum.html penis enlargement forum]
 
[http://pe-solutions.org/enlargement-forum-free-matter-penis-size.html enlargement forum free matter penis size]
 
[http://pe-solutions.org/free-penis-enlargement-forum.html free penis enlargement forum]
 
[http://pe-solutions.org/enlargement-forum-penis-pill.html enlargement forum penis pill]
 
[http://pe-solutions.org/penis-size-forum.html penis size forum]
 
[http://pe-solutions.org/penis-pills-forum.html penis pills forum]
 
[http://pe-solutions.org/penis-pill-forum.html penis pill forum]
 
[http://pe-solutions.org/ penis enlargement]
 
</p>
 
  
 
==When to use it==
 
==When to use it==
If you're developing a plugin and find yourself about to create a whole db table just to store one row's worth of misc information related to your plugin, stop, follow the vague memory of this sentence back to this page, and check out this userdata method.
+
If you're developing a plugin and find yourself about to create a whole db table just to store one row's worth of misc information related to your plugin (i.e. preference settings, color values, etc.), stop, follow the vague memory of this sentence back to this page, and check out this userdata method.
  
 
==When NOT to use it==
 
==When NOT to use it==
If your plugin needd to store multiple rows worth of something's --- like coupon codes, guestbook entries, etc. --- you probably still want to create a dedicated table for that. The userdata functions are not meant for that.
+
If your plugin needs to insert multiple ''records or rows'' of something --- like coupon codes, guestbook entries, etc. --- you probably still want to create a dedicated table for that. The userdata functions are not meant for that.
  
 
==Why it's useful==
 
==Why it's useful==
Line 173: Line 33:
 
:If $fieldname IS passed - Gets data for requested field and returns it
 
:If $fieldname IS passed - Gets data for requested field and returns it
  
'''Example #1:''' Get all userdata stored for your plugin in an associative array (indexed by fieldname). Think of this as doing a mysql_fetch_array() on that one-row table you were going to create before discovering this userdata stuff.
+
'''Example #1:''' Get data from specific field.
  $myplugin->get();
+
  echo $myplugin->get("firstname");
  
'''Example #2:''' Get data from specific field.
+
'''Example #2:''' Get all userdata stored for your plugin in an associative array (indexed by fieldname). Think of this as doing a mysql_fetch_array() on that one-row table you were going to create before discovering this userdata stuff.
  $myplugin->get("firstname");
+
  $myprefsArray = $myplugin->get();
  
 
+
==Bringing it all together==
==Example==
+
 
In this example, each available function is used.
 
In this example, each available function is used.
 
<pre>
 
<pre>
Line 196: Line 55:
 
</pre>
 
</pre>
  
 +
==Setting default values==
 +
Let's say you're using the userdata functions to store color values that you then retrieve in a template include to colorize certain template elements accordingly. Without setting any default values, the template will likely have a bunch of un-colored parts that should have colors (think transparent backgrounds where a solid bg color is expected) --- which may look a bit screwy --- until the user goes in to your config form and actually sets some values for those colors. This is where defaults come in handy. Here's how you can do them...
  
 +
'''Example #1''' - Setting a default background color of "#cccccc" (light gray) for an html element that you're outputting with a php template include.
 +
<pre>
 +
<?
 +
# Gotta do this first before you try to store/retrieve any of your data
 +
# You can think of it like setting the "mode" to "working data related to your plugin specifically"
 +
$mycolors = new userdata('myplugin');
 +
 +
# If no value exists, set the default
 +
if ( $mycolors->get("headerbg") == "" ) {
 +
  $mycolors->set("headerbg", "cccccc");
 +
}
 +
?>
 +
 +
<div id="header" style="background-color: #<? echo $mycolors->get("headerbg"); ?>;">
 +
This is my header
 +
</div>
 +
</pre>
  
  
 
[[Category:Plugins]]
 
[[Category:Plugins]]

Latest revision as of 10:09, 24 August 2007

Contents

Introduction

The idea behind the userdata class is to make it easy for plugin developers to store and retrieve basic user-inputted information for use with their plugin --- account ids, display preferences, etc. --- without having to create a whole db table for it.

When to use it

If you're developing a plugin and find yourself about to create a whole db table just to store one row's worth of misc information related to your plugin (i.e. preference settings, color values, etc.), stop, follow the vague memory of this sentence back to this page, and check out this userdata method.

When NOT to use it

If your plugin needs to insert multiple records or rows of something --- like coupon codes, guestbook entries, etc. --- you probably still want to create a dedicated table for that. The userdata functions are not meant for that.

Why it's useful

  • Fewer lines of code
  • Fewer keystrokes per line (no mysql query strings to write)
  • No worrying about creating a separate db in the install manifest.
  • Plugin userdata automatically uninstalled by product, no need to account for it in install manifest

How to use it

new

The basic idea here is to stick this line at the top of any script that uses the get() and set() functions. Replace "myplugin" with the name of your plugin folder. The other methods depend on this being set. If you don't do this first and try to call get() or set() php will bomb a fatal error.

$myplugin = new userdata("myplugin");

set()

Updates value of specific field (or inserts as new rec if fieldname not found)

$myplugin->set("firstname", "mike");

get()

Syntax
$myplugin->get([fieldname])
If $fieldname is NOT passed - Gets all userdata related to passed plugin and returns it in an array
If $fieldname IS passed - Gets data for requested field and returns it

Example #1: Get data from specific field.

echo $myplugin->get("firstname");

Example #2: Get all userdata stored for your plugin in an associative array (indexed by fieldname). Think of this as doing a mysql_fetch_array() on that one-row table you were going to create before discovering this userdata stuff.

$myprefsArray = $myplugin->get();

Bringing it all together

In this example, each available function is used.

$myplugin = new userdata("myplugin");

$myplugin->set("firstname", "John");
$myplugin->set("lastname", "Smith");

// This outputs "John Smith"
echo $myplugin->get("firstname")." ".$myplugin->get("lastname");

// This also outputs "John Smith"
$myData = get();
echo $myData['firstname']." ".$myData['lastname'];

Setting default values

Let's say you're using the userdata functions to store color values that you then retrieve in a template include to colorize certain template elements accordingly. Without setting any default values, the template will likely have a bunch of un-colored parts that should have colors (think transparent backgrounds where a solid bg color is expected) --- which may look a bit screwy --- until the user goes in to your config form and actually sets some values for those colors. This is where defaults come in handy. Here's how you can do them...

Example #1 - Setting a default background color of "#cccccc" (light gray) for an html element that you're outputting with a php template include.

<?
# Gotta do this first before you try to store/retrieve any of your data
# You can think of it like setting the "mode" to "working data related to your plugin specifically"
$mycolors = new userdata('myplugin');

# If no value exists, set the default
if ( $mycolors->get("headerbg") == "" ) {
   $mycolors->set("headerbg", "cccccc");
}
?>

<div id="header" style="background-color: #<? echo $mycolors->get("headerbg"); ?>;">
 This is my header
</div>
Personal tools