Rethinking Zend Models Part 3 - Validation

July 21, 2009

I've gone ahead and added validation to our test project: http://code.google.com/p/plushcode/source/browse/#svn/trunk/ZendModel/application/default/models
If you take a look at the indexController you'll now see I've added an updateAction that uses a Zend Form component.

The goal of the validation was to provide context sensitive validation on a model. A model by itself might not know if it's valid or not so you'll want to apply different contexts depending on what the client operation is. Saving an order might have a different validation need than shipping an order. Instead of hacking a bunch of if/else statements you can simple say

  1.  
  2. $order->setValidator(new order_validation_NewOrder());
  3.  
  4. // OR
  5.  
  6. $order->setValidator(new order_validation_ShipOrder());
  7.  
  8. if(!$order->isValid()) {
  9. $messages = $order->getMessages();
  10. }



and $order->isValid() will operate on that context object. The form object get's pass a validator so it can also operate on the same validator chains as the model so you don't have to duplicate that logic.

Anyway, I think it can be improved so take a look!
If you've downloaded and installed the code you'll be able to find the example on your local machine: http://youraddress/index/update


Comments

RSS feed for comments on this post.

  1. David Boyer says:
    July 22, 2009 @ 01:17 — Reply

    Thanks Jim, I've recently started looking into Zend Framework and the one stumbling block I ran into was Models. I've seen other frameworks and their approaches never seemed to sit nicely in my mind and I always seemed to end up with chubby controllers. Your approach is making a lot of sense to me and I'd just like to thank you for taking this step-by-step approach detailing it, as I find other articles about similar designs usually lack good examples to back them up. Cheers!

  2. Giorgio Sironi says:
    July 22, 2009 @ 10:40 — Reply

    I prefer an approach where an object can never be in a invalid state, like setter convention that stops the bad data coming in.

  3. Jim Plush says:
    July 22, 2009 @ 10:44 — Reply

    hi Giorgio, I would agree with you I could see something like: $order->setValidator(new order_validation_NewOrder()); // this would throw an exception $order->addLineItem(null);

  4. Jim Plush says:
    July 22, 2009 @ 10:46 — Reply

    thanks David!

  5. Jani Hartikainen says:
    July 23, 2009 @ 06:34 — Reply

    This is not a bad approach, but the model itself should be able to validate itself in all cases. For your example of saving vs. shipping, I think having methods isSaveable or isShippable could work. @Giorgio setters can stop bad data from going in, but for something to be shippable it would need address, receiver etc., which usually would mean calling multiple setters.

  6. Jim Plush says:
    July 23, 2009 @ 10:01 — Reply

    hi Jani, the problem I have with that is that for every new context you'll have to add a new method to your model. A model to me represents something that can be moved through space. Think of a Car model a Car does not know if it's valid in a given context... Is a Car valid on a plane? Is a Car valid on a boat? Is a Car valid on a street? Is a Car valid at the bottom of the Ocean? you're method would seem to cause the model to be modified every time instead of $car = $userRepo->find(4); $car->setValidator(new validators_car_CanBeInOcean); $car->isValid();

  7. replica watches says:
    November 22, 2009 @ 19:10 — Reply

    Comment pending moderation

  8. gucci handbags says:
    November 22, 2009 @ 19:12 — Reply

    Comment pending moderation

  9. gucci handbags says:
    November 22, 2009 @ 19:13 — Reply

    Comment pending moderation

  10. ugg boots says:
    November 28, 2009 @ 00:25 — Reply

    Comment pending moderation

  11. christian louboutin says:
    December 11, 2009 @ 01:27 — Reply

    Comment pending moderation

  12. dg says:
    January 19, 2010 @ 17:42 — Reply

    Comment pending moderation

  13. Louis Vuitton Handbags Replica says:
    January 29, 2010 @ 01:40 — Reply

    Comment pending moderation

  14. 120yanyan says:
    January 29, 2010 @ 18:03 — Reply

    Comment pending moderation

  15. replica Burberry-Handbag says:
    January 29, 2010 @ 20:40 — Reply

    Comment pending moderation

  16. MBT trainers shoes says:
    February 4, 2010 @ 22:31 — Reply

    Comment pending moderation

  17. Buddhism and Meditation says:
    February 13, 2010 @ 17:01 — Reply

    Comment pending moderation

  18. Short prom dresses says:
    February 23, 2010 @ 11:56 — Reply

    Comment pending moderation

  19. Nike Dunk says:
    February 23, 2010 @ 19:04 — Reply

    Comment pending moderation

  20. Nike Dunk says:
    February 23, 2010 @ 19:05 — Reply

    Comment pending moderation

  21. nike shoes says:
    February 23, 2010 @ 19:07 — Reply

    Comment pending moderation

  22. louboutin says:
    February 25, 2010 @ 18:06 — Reply

    Comment pending moderation

  23. MBT trainers shoes says:
    February 28, 2010 @ 17:23 — Reply

    Comment pending moderation

  24. 11 says:
    March 1, 2010 @ 23:53 — Reply

    Comment pending moderation

  25. bestlouboutin says:
    March 5, 2010 @ 17:11 — Reply

    Comment pending moderation

  26. wholesale replica watches says:
    March 8, 2010 @ 23:58 — Reply

    Comment pending moderation

  27. dafs says:
    March 10, 2010 @ 19:43 — Reply

    Comment pending moderation

  28. moon says:
    March 12, 2010 @ 21:24 — Reply

    Comment pending moderation

  29. nike lebron says:
    March 16, 2010 @ 18:56 — Reply

    Comment pending moderation

  30. mbt shoes/the Christian Louboutin says:
    March 20, 2010 @ 18:18 — Reply

    Comment pending moderation

  31. mexico 66 says:
    March 22, 2010 @ 01:19 — Reply

    Comment pending moderation

  32. watches says:
    March 23, 2010 @ 19:20 — Reply

    Comment pending moderation

  33. watches says:
    March 23, 2010 @ 19:22 — Reply

    Comment pending moderation

  34. sunny lin says:
    March 25, 2010 @ 06:00 — Reply

    Comment pending moderation

  35. Buy MBT shoes says:
    March 29, 2010 @ 18:42 — Reply

    Comment pending moderation

  36. Buy MBT shoes says:
    March 29, 2010 @ 18:47 — Reply

    Comment pending moderation

  37. nike kicks says:
    March 31, 2010 @ 18:29 — Reply

    Comment pending moderation

  38. gucci-shoes-bags says:
    April 2, 2010 @ 01:33 — Reply

    Comment pending moderation

  39. discount suprashoesale says:
    April 7, 2010 @ 01:53 — Reply

    Comment pending moderation

  40. mbtshoes123 says:
    April 7, 2010 @ 04:30 — Reply

    Comment pending moderation

  41. purple supra shoes says:
    April 8, 2010 @ 23:30 — Reply

    Comment pending moderation

  42. mbtshoes123 says:
    April 13, 2010 @ 05:27 — Reply

    Comment pending moderation

  43. Nike Dunks Low says:
    April 13, 2010 @ 17:49 — Reply

    Comment pending moderation

  44. michael jackson air jordans says:
    April 13, 2010 @ 18:29 — Reply

    Comment pending moderation

  45. michael jackson air jordans says:
    April 13, 2010 @ 18:34 — Reply

    Comment pending moderation

  46. metin2 yang says:
    April 14, 2010 @ 02:07 — Reply

    Comment pending moderation

  47. Links of London Jewellery says:
    April 14, 2010 @ 07:31 — Reply

    Comment pending moderation

  48. jordan 3 true blue for sale says:
    April 14, 2010 @ 19:44 — Reply

    Comment pending moderation

  49. hanmao says:
    April 14, 2010 @ 19:46 — Reply

    Comment pending moderation

  50. womens air max says:
    April 14, 2010 @ 23:34 — Reply

    Comment pending moderation

  51. haorena says:
    April 15, 2010 @ 23:04 — Reply

    Comment pending moderation

  52. czx says:
    April 17, 2010 @ 01:26 — Reply

    Comment pending moderation

  53. blu ray ripper says:
    April 18, 2010 @ 03:49 — Reply

    Comment pending moderation

  54. Hollywood Wallpapers says:
    April 18, 2010 @ 18:29 — Reply

    Comment pending moderation

  55. sdg says:
    April 18, 2010 @ 19:31 — Reply

    Comment pending moderation

  56. dg says:
    April 19, 2010 @ 18:15 — Reply

    Comment pending moderation

  57. rain umbrella says:
    April 21, 2010 @ 01:01 — Reply

    Comment pending moderation

  58. supra shoes says:
    April 21, 2010 @ 02:18 — Reply

    Comment pending moderation

  59. golf umbrella says:
    April 21, 2010 @ 23:42 — Reply

    Comment pending moderation

  60. yiwu agent says:
    April 23, 2010 @ 17:41 — Reply

    Comment pending moderation

  61. replicahandbags says:
    April 27, 2010 @ 17:49 — Reply

    Comment pending moderation

  62. jordan shoes says:
    April 28, 2010 @ 02:33 — Reply

    Comment pending moderation

  63. paperless recorder says:
    April 29, 2010 @ 00:12 — Reply

    Comment pending moderation

  64. cheap nfl jerseys says:
    May 4, 2010 @ 00:10 — Reply

    Comment pending moderation

  65. mbt shoes says:
    May 5, 2010 @ 07:03 — Reply

    Comment pending moderation

  66. mbt says:
    May 6, 2010 @ 00:18 — Reply

    Comment pending moderation

  67. software Reviews says:
    May 6, 2010 @ 01:53 — Reply

    Comment pending moderation

  68. dgwew says:
    May 7, 2010 @ 18:02 — Reply

    Comment pending moderation

  69. dfwqtr says:
    May 7, 2010 @ 18:04 — Reply

    Comment pending moderation

  70. paperless recorder says:
    May 7, 2010 @ 21:00 — Reply

    Comment pending moderation

  71. 传奇私服 says:
    May 8, 2010 @ 01:05 — Reply

    Comment pending moderation

  72. abercrombie milano says:
    May 8, 2010 @ 21:19 — Reply

    Comment pending moderation

  73. louboutin shoes says:
    May 10, 2010 @ 03:01 — Reply

    Comment pending moderation

  74. replic handbags says:
    May 10, 2010 @ 18:18 — Reply

    Comment pending moderation

  75. replic handbags says:
    May 10, 2010 @ 18:21 — Reply

    Comment pending moderation

  76. mbt shoes says:
    May 10, 2010 @ 18:39 — Reply

    Comment pending moderation

  77. logo design says:
    May 10, 2010 @ 23:32 — Reply

    Comment pending moderation

  78. mbt shoes says:
    May 11, 2010 @ 01:36 — Reply

    Comment pending moderation

  79. coach handbags says:
    May 11, 2010 @ 01:59 — Reply

    Comment pending moderation

  80. Nike Air Yeezy says:
    May 11, 2010 @ 07:56 — Reply

    Comment pending moderation

  81. supra shoes says:
    May 11, 2010 @ 08:05 — Reply

    Comment pending moderation

  82. coach handbags says:
    May 12, 2010 @ 01:27 — Reply

    Comment pending moderation

  83. HP0-J33 says:
    May 13, 2010 @ 01:27 — Reply

    Comment pending moderation

  84. Amsterdams casino says:
    May 13, 2010 @ 11:37 — Reply

    Comment pending moderation

  85. mbtshoes123 says:
    May 13, 2010 @ 19:40 — Reply

    Comment pending moderation

  86. mbtshoes123 says:
    May 13, 2010 @ 19:42 — Reply

    Comment pending moderation

  87. christian louboutin says:
    May 13, 2010 @ 23:38 — Reply

    Comment pending moderation

  88. mbt shoes says:
    May 14, 2010 @ 00:45 — Reply

    Comment pending moderation

  89. Manolo blahnik says:
    May 14, 2010 @ 05:09 — Reply

    Comment pending moderation

  90. christian louboutin dealer says:
    May 14, 2010 @ 23:01 — Reply

    Comment pending moderation

  91. emma says:
    May 16, 2010 @ 22:49 — Reply

    Comment pending moderation

  92. nike shoes says:
    May 17, 2010 @ 19:18 — Reply

    Comment pending moderation

  93. 传奇私服 says:
    May 19, 2010 @ 07:13 — Reply

    Comment pending moderation

  94. louboutin says:
    May 19, 2010 @ 07:15 — Reply

    Comment pending moderation

  95. coach88 says:
    May 19, 2010 @ 12:32 — Reply

    Comment pending moderation

  96. coach88 says:
    May 19, 2010 @ 12:35 — Reply

    Comment pending moderation

  97. replic handbags says:
    May 19, 2010 @ 20:39 — Reply

    Comment pending moderation

  98. Acai Berry Colon Cleanse says:
    May 21, 2010 @ 00:39 — Reply

    Comment pending moderation

  99. Acai Berry says:
    May 21, 2010 @ 00:41 — Reply

    Comment pending moderation

  100. Acai Berries says:
    May 21, 2010 @ 00:44 — Reply

    Comment pending moderation

  101. Acai Berry Diet says:
    May 21, 2010 @ 00:45 — Reply

    Comment pending moderation

  102. download marmaduke says:
    May 21, 2010 @ 04:41 — Reply

    Comment pending moderation

  103. download killers says:
    May 21, 2010 @ 04:43 — Reply

    Comment pending moderation

  104. Golf Wholesale says:
    May 21, 2010 @ 19:12 — Reply

    Comment pending moderation

  105. Golf Wholesale says:
    May 21, 2010 @ 19:13 — Reply

    Comment pending moderation

  106. birkenstock says:
    May 21, 2010 @ 20:49 — Reply

    Comment pending moderation

  107. replica watches says:
    May 25, 2010 @ 01:47 — Reply

    Comment pending moderation

  108. golf shop says:
    May 26, 2010 @ 00:59 — Reply

    Comment pending moderation

  109. golf shop says:
    May 26, 2010 @ 01:00 — Reply

    Comment pending moderation

  110. safety valve says:
    May 26, 2010 @ 01:24 — Reply

    Comment pending moderation

  111. steel valve says:
    May 26, 2010 @ 01:25 — Reply

    Comment pending moderation

  112. Replcia handbags says:
    May 26, 2010 @ 01:59 — Reply

    Comment pending moderation

  113. butterfly valve says:
    May 26, 2010 @ 02:01 — Reply

    Comment pending moderation

  114. Discount for golf says:
    May 28, 2010 @ 00:40 — Reply

    Comment pending moderation

  115. coach outlet says:
    May 28, 2010 @ 03:45 — Reply

    Comment pending moderation

  116. Christian Louboutin says:
    May 28, 2010 @ 07:43 — Reply

    Comment pending moderation

  117. Abercrombie And Fitch says:
    May 28, 2010 @ 07:44 — Reply

    Comment pending moderation

  118. ugg boots Sale says:
    May 28, 2010 @ 07:45 — Reply

    Comment pending moderation

  119. Ed hardy says:
    May 28, 2010 @ 07:46 — Reply

    Comment pending moderation

  120. ghd says:
    May 28, 2010 @ 07:50 — Reply

    Comment pending moderation

  121. Ugg Boots says:
    May 28, 2010 @ 07:51 — Reply

    Comment pending moderation

  122. vibram five fingers says:
    May 28, 2010 @ 07:52 — Reply

    Comment pending moderation

  123. UGG Boots says:
    May 28, 2010 @ 23:48 — Reply

    Comment pending moderation

  124. Christian Louboutin Boots says:
    May 28, 2010 @ 23:51 — Reply

    Comment pending moderation

  125. laptp battery manufacturer says:
    May 28, 2010 @ 23:51 — Reply

    Comment pending moderation

  126. Polos says:
    May 28, 2010 @ 23:53 — Reply

    Comment pending moderation

  127. nike shox r4 says:
    May 30, 2010 @ 17:45 — Reply

    Comment pending moderation

  128. nike shox r4 says:
    May 30, 2010 @ 17:46 — Reply

    Comment pending moderation

  129. mbt shoes says:
    May 30, 2010 @ 22:22 — Reply

    Comment pending moderation

  130. Offer wrist watches says:
    May 31, 2010 @ 00:53 — Reply

    Comment pending moderation

  131. christian louboutin says:
    May 31, 2010 @ 20:47 — Reply

    Comment pending moderation

  132. wholesale laptop adapter says:
    June 1, 2010 @ 21:55 — Reply

    Comment pending moderation

  133. coach handbags says:
    June 6, 2010 @ 23:52 — Reply

    Comment pending moderation

  134. 流水线 says:
    June 7, 2010 @ 01:01 — Reply

    Comment pending moderation

  135. mackliy says:
    June 7, 2010 @ 01:43 — Reply

    Comment pending moderation

  136. Gizli hileleri says:
    June 7, 2010 @ 01:45 — Reply

    Comment pending moderation

  137. yyfq009 says:
    June 7, 2010 @ 02:20 — Reply

    Comment pending moderation

  138. trend maker says:
    June 7, 2010 @ 02:55 — Reply

    Comment pending moderation

  139. tiffany jewellery says:
    June 7, 2010 @ 18:15 — Reply

    Comment pending moderation

  140. adjustable beds says:
    June 7, 2010 @ 23:32 — Reply

    Comment pending moderation

  141. hostal roma says:
    June 8, 2010 @ 04:48 — Reply

    Comment pending moderation

  142. hjdjth says:
    June 8, 2010 @ 17:46 — Reply

    Comment pending moderation

  143. gjk says:
    June 8, 2010 @ 17:47 — Reply

    Comment pending moderation

  144. designer handbags says:
    June 8, 2010 @ 18:06 — Reply

    Comment pending moderation

  145. christianlouboutin9 says:
    June 8, 2010 @ 18:28 — Reply

    Comment pending moderation

  146. MKV to iPad says:
    June 9, 2010 @ 00:47 — Reply

    Comment pending moderation

  147. tao491309351 says:
    June 9, 2010 @ 01:12 — Reply

    Comment pending moderation

  148. tao491309351 says:
    June 9, 2010 @ 01:14 — Reply

    Comment pending moderation

  149. gfdiy says:
    June 9, 2010 @ 18:28 — Reply

    Comment pending moderation

  150. cheap handbags says:
    June 9, 2010 @ 23:46 — Reply

    Comment pending moderation

  151. true religion jeans says:
    June 9, 2010 @ 23:47 — Reply

    Comment pending moderation

  152. coach purses says:
    June 9, 2010 @ 23:50 — Reply

    Comment pending moderation

  153. mbt says:
    June 10, 2010 @ 08:13 — Reply

    Comment pending moderation

  154. air max says:
    June 10, 2010 @ 20:03 — Reply

    Comment pending moderation

  155. cheap ghd hair straighteners says:
    June 11, 2010 @ 01:19 — Reply

    Comment pending moderation

  156. hermes bags says:
    June 11, 2010 @ 01:37 — Reply

    Comment pending moderation

  157. winpromote says:
    June 11, 2010 @ 06:45 — Reply

    Comment pending moderation

  158. custom promos says:
    June 11, 2010 @ 06:46 — Reply

    Comment pending moderation

  159. louis vuitton speedy bag says:
    June 12, 2010 @ 03:17 — Reply

    Comment pending moderation

  160. aaa designer handbags says:
    June 12, 2010 @ 03:18 — Reply

    Comment pending moderation

  161. louis vuitton bag says:
    June 12, 2010 @ 03:19 — Reply

    Comment pending moderation

  162. designer handbags says:
    June 13, 2010 @ 18:12 — Reply

    Comment pending moderation

  163. designer handbags says:
    June 13, 2010 @ 18:13 — Reply

    Comment pending moderation

  164. sssss says:
    June 15, 2010 @ 00:17 — Reply

    Comment pending moderation

  165. writing research says:
    June 15, 2010 @ 06:46 — Reply

    Comment pending moderation

  166. cheap handbags says:
    June 16, 2010 @ 00:14 — Reply

    Comment pending moderation

  167. lv handbags on sale says:
    June 16, 2010 @ 00:16 — Reply

    Comment pending moderation

  168. Louis Vuitton handbags says:
    June 16, 2010 @ 00:17 — Reply

    Comment pending moderation

  169. china wholesale air force ones says:
    June 16, 2010 @ 00:20 — Reply

    Comment pending moderation

  170. Louis Vuitton handbags says:
    June 16, 2010 @ 00:28 — Reply

    Comment pending moderation

  171. christian louboutin shoes says:
    June 16, 2010 @ 08:29 — Reply

    Comment pending moderation

  172. golfclubs365 says:
    June 16, 2010 @ 20:02 — Reply

    Comment pending moderation

  173. nfl replica jerseys says:
    June 16, 2010 @ 20:49 — Reply

    Comment pending moderation

  174. mbt chapa gtx says:
    June 17, 2010 @ 00:42 — Reply

    Comment pending moderation

  175. coach outlet says:
    June 17, 2010 @ 02:57 — Reply

    Comment pending moderation

  176. replica watches says:
    June 17, 2010 @ 22:18 — Reply

    Comment pending moderation

  177. mbt chapa gtx says:
    June 18, 2010 @ 01:06 — Reply

    Comment pending moderation

  178. Five fingers shoes says:
    June 18, 2010 @ 02:35 — Reply

    Comment pending moderation

  179. evening dresses says:
    June 18, 2010 @ 08:31 — Reply

    Comment pending moderation

  180. NIKE shoes says:
    June 18, 2010 @ 19:47 — Reply

    Comment pending moderation

  181. replica handbags says:
    June 18, 2010 @ 20:04 — Reply

    Comment pending moderation

  182. louis vuitton handbags says:
    June 19, 2010 @ 01:35 — Reply

    Comment pending moderation

  183. designer replica handbags says:
    June 19, 2010 @ 01:37 — Reply

    Comment pending moderation

  184. designer handbags says:
    June 19, 2010 @ 01:38 — Reply

    Comment pending moderation

  185. louis vuitton says:
    June 19, 2010 @ 01:39 — Reply

    Comment pending moderation

  186. Microsoft Office 2007 says:
    June 19, 2010 @ 02:30 — Reply

    Comment pending moderation

  187. Nike Dunk says:
    June 19, 2010 @ 04:24 — Reply

    Comment pending moderation

  188. Nike Air Max says:
    June 19, 2010 @ 04:27 — Reply

    Comment pending moderation

  189. cheap nike shoes says:
    June 19, 2010 @ 04:29 — Reply

    Comment pending moderation

  190. cheap supra shoes says:
    June 19, 2010 @ 04:30 — Reply

    Comment pending moderation

  191. Air Jordan shoes says:
    June 19, 2010 @ 04:31 — Reply

    Comment pending moderation

  192. nike dunk shoes says:
    June 19, 2010 @ 19:31 — Reply

    Comment pending moderation

  193. nike air max shoes says:
    June 19, 2010 @ 23:19 — Reply

    Comment pending moderation

  194. nike air max shoes says:
    June 19, 2010 @ 23:21 — Reply

    Comment pending moderation

  195. mbt footwear says:
    June 19, 2010 @ 23:22 — Reply

    Comment pending moderation

  196. cheapsmbtshoes says:
    June 19, 2010 @ 23:23 — Reply

    Comment pending moderation

  197. nike shox r4 says:
    June 19, 2010 @ 23:24 — Reply

    Comment pending moderation

  198. sf says:
    June 20, 2010 @ 02:41 — Reply

    Comment pending moderation

  199. supra shoes for sale says:
    June 20, 2010 @ 23:54 — Reply

    Comment pending moderation

  200. Supra Footwear says:
    June 20, 2010 @ 23:58 — Reply

    Comment pending moderation

  201. hanxinyuyueshi says:
    June 21, 2010 @ 01:04 — Reply

    Comment pending moderation

  202. replica watches says:
    June 21, 2010 @ 01:53 — Reply

    Comment pending moderation

  203. cheap air jordans says:
    June 21, 2010 @ 02:28 — Reply

    Comment pending moderation

  204. replica watches says:
    June 21, 2010 @ 18:17 — Reply

    Comment pending moderation

  205. Leona says:
    June 21, 2010 @ 23:52 — Reply

    Comment pending moderation

  206. wholesale hats says:
    June 22, 2010 @ 02:06 — Reply

    Comment pending moderation

  207. pumashoes says:
    June 22, 2010 @ 02:17 — Reply

    Comment pending moderation

  208. supra shoes says:
    June 22, 2010 @ 02:28 — Reply

    Comment pending moderation

  209. lace front wigs says:
    June 22, 2010 @ 22:19 — Reply

    Comment pending moderation

  210. Watches says:
    June 23, 2010 @ 17:39 — Reply

    Comment pending moderation

  211. brand shoe says:
    June 23, 2010 @ 21:12 — Reply

    Comment pending moderation

  212. kaleidoscope says:
    June 23, 2010 @ 23:58 — Reply

    Comment pending moderation

  213. air jordan says:
    June 24, 2010 @ 01:11 — Reply

    Comment pending moderation

  214. air max says:
    June 24, 2010 @ 01:14 — Reply

    Comment pending moderation

  215. air max says:
    June 24, 2010 @ 01:28 — Reply

    Comment pending moderation

  216. rolex watches says:
    June 24, 2010 @ 02:45 — Reply

    Comment pending moderation

  217. des moines chiropractor says:
    June 24, 2010 @ 08:53 — Reply

    Comment pending moderation

  218. air max 2009 says:
    June 24, 2010 @ 20:55 — Reply

    Comment pending moderation

  219. Nike Air Max 2010 says:
    June 24, 2010 @ 20:56 — Reply

    Comment pending moderation

  220. Urban footwear hip-pop footwear says:
    June 24, 2010 @ 20:58 — Reply

    Comment pending moderation

  221. sky lanterns says:
    June 25, 2010 @ 00:01 — Reply

    Comment pending moderation

  222. honeycomb panels says:
    June 25, 2010 @ 00:07 — Reply

    Comment pending moderation

  223. cheap true religion says:
    June 25, 2010 @ 00:09 — Reply

    Comment pending moderation

  224. led tube says:
    June 25, 2010 @ 00:10 — Reply

    Comment pending moderation

  225. wholesale cell phone says:
    June 25, 2010 @ 00:22 — Reply

    Comment pending moderation

  226. TANTALUM says:
    June 25, 2010 @ 00:25 — Reply

    Comment pending moderation

  227. lacoste shoes says:
    June 25, 2010 @ 00:26 — Reply

    Comment pending moderation

  228. air jordan says:
    June 25, 2010 @ 00:27 — Reply

    Comment pending moderation

  229. granite sink says:
    June 25, 2010 @ 01:28 — Reply

    Comment pending moderation

  230. LED lighting supplier says:
    June 25, 2010 @ 01:42 — Reply

    Comment pending moderation

  231. solar panel says:
    June 25, 2010 @ 02:32 — Reply

    Comment pending moderation

  232. tag heuer formula 1 replica says:
    June 25, 2010 @ 02:32 — Reply

    Comment pending moderation

  233. UGG Schuhe says:
    June 25, 2010 @ 02:51 — Reply

    Comment pending moderation

  234. Ugg Sheepskin Boots says:
    June 25, 2010 @ 02:52 — Reply

    Comment pending moderation

  235. NBA jerseys says:
    June 25, 2010 @ 20:26 — Reply

    Comment pending moderation

  236. NBA jerseys says:
    June 25, 2010 @ 20:37 — Reply

    Comment pending moderation

  237. eartha says:
    June 26, 2010 @ 00:38 — Reply

    Comment pending moderation

  238. nike shoes says:
    June 26, 2010 @ 00:40 — Reply

    Comment pending moderation

  239. Discount MBT Shoes says:
    June 26, 2010 @ 08:02 — Reply

    Comment pending moderation

  240. Gadget News says:
    June 26, 2010 @ 22:36 — Reply

    Comment pending moderation

  241. coach handbag outlet says:
    June 27, 2010 @ 15:38 — Reply

    Comment pending moderation

  242. Anonymous says:
    June 27, 2010 @ 20:15 — Reply

    Comment pending moderation

Leave a Comment

Line and paragraph breaks automatic, HTML allowed: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <code> <em> <i> <strike> <strong>

Comments disabled due to spammers being losers that lead sad lives.