Mzax_Emarketing - Version 0.2.7

Version Notes

Please note, this extension is currently under development and it is still in beta.

Download this release

Release Info

Developer Jacob Siefer
Extension Mzax_Emarketing
Version 0.2.7
Comparing to
See all releases


Code changes from version 0.2.6 to 0.2.7

Files changed (440) hide show
  1. app/code/community/Mzax/Emarketing/Block/Campaign/Edit.php +10 -2
  2. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Form.php +1 -1
  3. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Medium/Abstract.php +1 -1
  4. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Medium/Email.php +1 -1
  5. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Medium/Email/Tab/Inbox.php +7 -1
  6. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Medium/Email/Tab/Outbox.php +7 -1
  7. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Content.php +1 -1
  8. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Content/Original.php +1 -1
  9. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Content/Variation.php +1 -1
  10. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Errors.php +2 -2
  11. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Filters.php +2 -2
  12. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Inbox.php +1 -1
  13. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Medium.php +10 -1
  14. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Recipients.php +1 -1
  15. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Recipients/Grid.php +5 -1
  16. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Report.php +2 -2
  17. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Settings.php +133 -107
  18. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Tasks.php +1 -1
  19. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Test.php +1 -1
  20. app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tabs.php +11 -7
  21. app/code/community/Mzax/Emarketing/Block/Campaign/Grid.php +2 -2
  22. app/code/community/Mzax/Emarketing/Block/Campaign/Grid/Filter/Filter.php +1 -1
  23. app/code/community/Mzax/Emarketing/Block/Campaign/Grid/Renderer/Action.php +1 -1
  24. app/code/community/Mzax/Emarketing/Block/Campaign/Grid/Renderer/Filter.php +1 -1
  25. app/code/community/Mzax/Emarketing/Block/Campaign/Grid/Renderer/SendMail.php +1 -1
  26. app/code/community/Mzax/Emarketing/Block/Campaign/Grid/Renderer/Sender.php +1 -1
  27. app/code/community/Mzax/Emarketing/Block/Campaign/Grid/Renderer/Stats.php +1 -1
  28. app/code/community/Mzax/Emarketing/Block/Campaign/New.php +2 -2
  29. app/code/community/Mzax/Emarketing/Block/Campaign/New/Presets.php +52 -0
  30. app/code/community/Mzax/Emarketing/Block/Campaign/Preview.php +11 -7
  31. app/code/community/Mzax/Emarketing/Block/Campaign/SendTestMail.php +1 -1
  32. app/code/community/Mzax/Emarketing/Block/Campaign/SendTestMail/Form.php +1 -1
  33. app/code/community/Mzax/Emarketing/Block/Campaign/Test.php +1 -1
  34. app/code/community/Mzax/Emarketing/Block/Campaign/Test/Emulate.php +1 -1
  35. app/code/community/Mzax/Emarketing/Block/Campaign/View.php +1 -1
  36. app/code/community/Mzax/Emarketing/Block/Chart/Abstract.php +1 -1
  37. app/code/community/Mzax/Emarketing/Block/Chart/Area.php +1 -1
  38. app/code/community/Mzax/Emarketing/Block/Chart/Bar.php +1 -1
  39. app/code/community/Mzax/Emarketing/Block/Chart/Column.php +1 -1
  40. app/code/community/Mzax/Emarketing/Block/Chart/Geo.php +1 -1
  41. app/code/community/Mzax/Emarketing/Block/Chart/Line.php +1 -1
  42. app/code/community/Mzax/Emarketing/Block/Chart/Pie.php +1 -1
  43. app/code/community/Mzax/Emarketing/Block/Chart/Scatter.php +1 -1
  44. app/code/community/Mzax/Emarketing/Block/Chart/SteppedArea.php +1 -1
  45. app/code/community/Mzax/Emarketing/Block/Chart/Widget/Container.php +1 -1
  46. app/code/community/Mzax/Emarketing/Block/Chart/Widget/Geo.php +1 -1
  47. app/code/community/Mzax/Emarketing/Block/Chart/Widget/Tab.php +2 -2
  48. app/code/community/Mzax/Emarketing/Block/Conditions.php +2 -2
  49. app/code/community/Mzax/Emarketing/Block/Editable.php +2 -2
  50. app/code/community/Mzax/Emarketing/Block/Filter/Object/Grid.php +2 -2
  51. app/code/community/Mzax/Emarketing/Block/Filter/Test/Recursive.php +1 -1
  52. app/code/community/Mzax/Emarketing/Block/Filter/Test/Single.php +2 -2
  53. app/code/community/Mzax/Emarketing/Block/Filters.php +2 -2
  54. app/code/community/Mzax/Emarketing/Block/Grid/Column/Renderer/Action.php +2 -2
  55. app/code/community/Mzax/Emarketing/Block/Grid/Column/Renderer/Campaign.php +2 -2
  56. app/code/community/Mzax/Emarketing/Block/Grid/Column/Renderer/Recipient.php +2 -2
  57. app/code/community/Mzax/Emarketing/Block/Grid/Column/Renderer/Size.php +2 -2
  58. app/code/community/Mzax/Emarketing/Block/Inbox/Email.php +1 -1
  59. app/code/community/Mzax/Emarketing/Block/Inbox/Email/Form.php +2 -2
  60. app/code/community/Mzax/Emarketing/Block/Inbox/Grid.php +1 -1
  61. app/code/community/Mzax/Emarketing/Block/Inbox/View.php +1 -1
  62. app/code/community/Mzax/Emarketing/Block/Outbox/Email.php +1 -1
  63. app/code/community/Mzax/Emarketing/Block/Outbox/Email/Form.php +1 -1
  64. app/code/community/Mzax/Emarketing/Block/Outbox/Grid.php +3 -3
  65. app/code/community/Mzax/Emarketing/Block/Outbox/View.php +1 -1
  66. app/code/community/Mzax/Emarketing/Block/Recipients/Column/Renderer/Attribute.php +1 -1
  67. app/code/community/Mzax/Emarketing/Block/Recipients/Column/Renderer/Object.php +2 -2
  68. app/code/community/Mzax/Emarketing/Block/Recipients/Grid.php +1 -1
  69. app/code/community/Mzax/Emarketing/Block/System/Config/Form/Field/DomainThreshold.php +1 -1
  70. app/code/community/Mzax/Emarketing/Block/System/Config/Form/Field/MailStorage.php +1 -1
  71. app/code/community/Mzax/Emarketing/Block/Template.php +129 -0
  72. app/code/community/Mzax/Emarketing/Block/Template/Edit.php +1 -1
  73. app/code/community/Mzax/Emarketing/Block/Template/Edit/Form.php +1 -1
  74. app/code/community/Mzax/Emarketing/Block/Template/Grid.php +1 -1
  75. app/code/community/Mzax/Emarketing/Block/Template/Upload.php +1 -1
  76. app/code/community/Mzax/Emarketing/Block/Template/Upload/Form.php +1 -1
  77. app/code/community/Mzax/Emarketing/Block/Template/View.php +1 -1
  78. app/code/community/Mzax/Emarketing/Block/Tracker/Edit.php +2 -2
  79. app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Form.php +1 -1
  80. app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Tab/Conditions.php +1 -1
  81. app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Tab/GoalType.php +2 -2
  82. app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Tab/Settings.php +2 -2
  83. app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Tab/Tasks.php +2 -2
  84. app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Tab/Test.php +1 -1
  85. app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Tabs.php +2 -2
  86. app/code/community/Mzax/Emarketing/Block/Tracker/Grid.php +1 -1
  87. app/code/community/Mzax/Emarketing/Block/Tracker/New.php +2 -2
  88. app/code/community/Mzax/Emarketing/Block/Tracker/Test.php +1 -1
  89. app/code/community/Mzax/Emarketing/Block/Tracker/Test/Emulate.php +1 -1
  90. app/code/community/Mzax/Emarketing/Block/Tracker/Upload.php +2 -2
  91. app/code/community/Mzax/Emarketing/Block/Tracker/Upload/Form.php +2 -2
  92. app/code/community/Mzax/Emarketing/Block/Tracker/View.php +1 -1
  93. app/code/community/Mzax/Emarketing/Block/Unsubscribe.php +2 -2
  94. app/code/community/Mzax/Emarketing/Db/Select.php +1 -1
  95. app/code/community/Mzax/Emarketing/Helper/Campaign.php +2 -2
  96. app/code/community/Mzax/Emarketing/Helper/Data.php +1 -1
  97. app/code/community/Mzax/Emarketing/Helper/Newsletter.php +2 -2
  98. app/code/community/Mzax/Emarketing/Helper/Request.php +2 -2
  99. app/code/community/Mzax/Emarketing/Helper/SqlFormatter.php +1 -1
  100. app/code/community/Mzax/Emarketing/Model/Campaign.php +94 -1
  101. app/code/community/Mzax/Emarketing/Model/Campaign/Content.php +1 -1
  102. app/code/community/Mzax/Emarketing/Model/Campaign/Preset.php +118 -0
  103. app/code/community/Mzax/Emarketing/Model/Campaign/Variation.php +13 -1
  104. app/code/community/Mzax/Emarketing/Model/Conversion/Goal.php +1 -1
  105. app/code/community/Mzax/Emarketing/Model/Conversion/Goal/Abstract.php +1 -1
  106. app/code/community/Mzax/Emarketing/Model/Conversion/Goal/Orders.php +2 -2
  107. app/code/community/Mzax/Emarketing/Model/Conversion/Select.php +1 -1
  108. app/code/community/Mzax/Emarketing/Model/Conversion/Tracker.php +1 -1
  109. app/code/community/Mzax/Emarketing/Model/DomainThrottle.php +1 -1
  110. app/code/community/Mzax/Emarketing/Model/Email.php +1 -1
  111. app/code/community/Mzax/Emarketing/Model/Form/Element/Ace.php +1 -1
  112. app/code/community/Mzax/Emarketing/Model/Form/Element/Credits.php +1 -1
  113. app/code/community/Mzax/Emarketing/Model/Form/Element/EmailEditor.php +2 -2
  114. app/code/community/Mzax/Emarketing/Model/Form/Element/Info.php +1 -1
  115. app/code/community/Mzax/Emarketing/Model/Form/Element/TemplateEditor.php +1 -1
  116. app/code/community/Mzax/Emarketing/Model/Form/Element/Textarea.php +2 -2
  117. app/code/community/Mzax/Emarketing/Model/Form/Element/Wildselect.php +2 -2
  118. app/code/community/Mzax/Emarketing/Model/Goal.php +2 -2
  119. app/code/community/Mzax/Emarketing/Model/Inbox.php +2 -2
  120. app/code/community/Mzax/Emarketing/Model/Inbox/Bounce/Detector/Abstract.php +1 -1
  121. app/code/community/Mzax/Emarketing/Model/Inbox/Bounce/Detector/Recipient.php +1 -1
  122. app/code/community/Mzax/Emarketing/Model/Inbox/Bounce/Detector/Store.php +2 -2
  123. app/code/community/Mzax/Emarketing/Model/Inbox/Bounce/Detector/Unsubscribe.php +2 -2
  124. app/code/community/Mzax/Emarketing/Model/Inbox/Email.php +1 -1
  125. app/code/community/Mzax/Emarketing/Model/Inbox/Email/Collector.php +2 -2
  126. app/code/community/Mzax/Emarketing/Model/Inbox/Email/Pull/Abstract.php +2 -2
  127. app/code/community/Mzax/Emarketing/Model/Inbox/Email/Pull/Storage.php +2 -2
  128. app/code/community/Mzax/Emarketing/Model/Link.php +1 -1
  129. app/code/community/Mzax/Emarketing/Model/Link/Reference.php +2 -2
  130. app/code/community/Mzax/Emarketing/Model/Medium.php +2 -2
  131. app/code/community/Mzax/Emarketing/Model/Medium/Abstract.php +2 -2
  132. app/code/community/Mzax/Emarketing/Model/Medium/Email.php +2 -2
  133. app/code/community/Mzax/Emarketing/Model/Medium/Email/Composer.php +2 -2
  134. app/code/community/Mzax/Emarketing/Model/Medium/Email/Filter.php +22 -2
  135. app/code/community/Mzax/Emarketing/Model/Medium/Email/Processor.php +2 -2
  136. app/code/community/Mzax/Emarketing/Model/Medium/Email/Snippets.php +2 -2
  137. app/code/community/Mzax/Emarketing/Model/Object/Abstract.php +1 -1
  138. app/code/community/Mzax/Emarketing/Model/Object/Address.php +1 -1
  139. app/code/community/Mzax/Emarketing/Model/Object/Collection.php +1 -1
  140. app/code/community/Mzax/Emarketing/Model/Object/Collection/Item.php +2 -2
  141. app/code/community/Mzax/Emarketing/Model/Object/Customer.php +1 -1
  142. app/code/community/Mzax/Emarketing/Model/Object/Customer/Address.php +2 -2
  143. app/code/community/Mzax/Emarketing/Model/Object/Filter.php +1 -1
  144. app/code/community/Mzax/Emarketing/Model/Object/Filter/Abstract.php +59 -15
  145. app/code/community/Mzax/Emarketing/Model/Object/Filter/Address/City.php +1 -1
  146. app/code/community/Mzax/Emarketing/Model/Object/Filter/Address/Country.php +1 -1
  147. app/code/community/Mzax/Emarketing/Model/Object/Filter/Address/Postcode.php +1 -1
  148. app/code/community/Mzax/Emarketing/Model/Object/Filter/Address/Region.php +1 -1
  149. app/code/community/Mzax/Emarketing/Model/Object/Filter/Address/Street.php +1 -1
  150. app/code/community/Mzax/Emarketing/Model/Object/Filter/Attribute.php +3 -3
  151. app/code/community/Mzax/Emarketing/Model/Object/Filter/Campaign/Goal.php +1 -1
  152. app/code/community/Mzax/Emarketing/Model/Object/Filter/Campaign/Recipient/Abstract.php +1 -1
  153. app/code/community/Mzax/Emarketing/Model/Object/Filter/Campaign/Recipient/Interact.php +1 -1
  154. app/code/community/Mzax/Emarketing/Model/Object/Filter/Column.php +2 -2
  155. app/code/community/Mzax/Emarketing/Model/Object/Filter/Combine.php +11 -14
  156. app/code/community/Mzax/Emarketing/Model/Object/Filter/Component.php +36 -76
  157. app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Abstract.php +2 -2
  158. app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Address.php +1 -1
  159. app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Address/Attribute.php +1 -1
  160. app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Attribute.php +1 -1
  161. app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Event.php +313 -0
  162. app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Lastlogin.php +1 -1
  163. app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Name.php +1 -1
  164. app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Order.php +19 -13
  165. app/code/community/Mzax/Emarketing/Model/Object/Filter/Main.php +1 -14
  166. app/code/community/Mzax/Emarketing/Model/Object/Filter/Newsletter.php +13 -36
  167. app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Abstract.php +4 -3
  168. app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Address.php +2 -2
  169. app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Campaign.php +2 -2
  170. app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Item/Abstract.php +3 -3
  171. app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Item/Table.php +2 -2
  172. app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Items.php +24 -6
  173. app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Previous.php +7 -14
  174. app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/ShippedAt.php +92 -0
  175. app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Table.php +3 -2
  176. app/code/community/Mzax/Emarketing/Model/Object/Filter/Product/Abstract.php +2 -2
  177. app/code/community/Mzax/Emarketing/Model/Object/Filter/Product/Attribute.php +1 -1
  178. app/code/community/Mzax/Emarketing/Model/Object/Filter/Product/Category.php +1 -1
  179. app/code/community/Mzax/Emarketing/Model/Object/Filter/Quote/Abstract.php +3 -3
  180. app/code/community/Mzax/Emarketing/Model/Object/Filter/Quote/Address.php +3 -3
  181. app/code/community/Mzax/Emarketing/Model/Object/Filter/Quote/Item/Table.php +2 -2
  182. app/code/community/Mzax/Emarketing/Model/Object/Filter/Quote/Items.php +25 -6
  183. app/code/community/Mzax/Emarketing/Model/Object/Filter/Quote/Table.php +3 -2
  184. app/code/community/Mzax/Emarketing/Model/Object/Filter/Table.php +3 -21
  185. app/code/community/Mzax/Emarketing/Model/Object/Order.php +14 -5
  186. app/code/community/Mzax/Emarketing/Model/Object/OrderAddress.php +2 -2
  187. app/code/community/Mzax/Emarketing/Model/Object/OrderItem.php +1 -1
  188. app/code/community/Mzax/Emarketing/Model/Object/Product.php +2 -2
  189. app/code/community/Mzax/Emarketing/Model/Object/Quote.php +2 -2
  190. app/code/community/Mzax/Emarketing/Model/Object/QuoteAddress.php +2 -2
  191. app/code/community/Mzax/Emarketing/Model/Object/QuoteItem.php +109 -0
  192. app/code/community/Mzax/Emarketing/Model/Object/Recipient.php +1 -1
  193. app/code/community/Mzax/Emarketing/Model/Object/Subscriber.php +2 -2
  194. app/code/community/Mzax/Emarketing/Model/Observer.php +1 -1
  195. app/code/community/Mzax/Emarketing/Model/Observer/Abstract.php +2 -2
  196. app/code/community/Mzax/Emarketing/Model/Observer/Cron.php +2 -2
  197. app/code/community/Mzax/Emarketing/Model/Observer/Customer.php +2 -2
  198. app/code/community/Mzax/Emarketing/Model/Observer/Goal.php +2 -2
  199. app/code/community/Mzax/Emarketing/Model/Observer/Order.php +2 -2
  200. app/code/community/Mzax/Emarketing/Model/Outbox.php +33 -9
  201. app/code/community/Mzax/Emarketing/Model/Outbox/Email.php +22 -7
  202. app/code/community/Mzax/Emarketing/Model/Outbox/Transporter.php +1 -1
  203. app/code/community/Mzax/Emarketing/Model/Outbox/Transporter/File.php +2 -2
  204. app/code/community/Mzax/Emarketing/Model/Outbox/Transporter/Interface.php +1 -1
  205. app/code/community/Mzax/Emarketing/Model/Outbox/Transporter/Sendmail.php +2 -2
  206. app/code/community/Mzax/Emarketing/Model/Outbox/Transporter/Smtp.php +2 -2
  207. app/code/community/Mzax/Emarketing/Model/Premailer.php +1 -1
  208. app/code/community/Mzax/Emarketing/Model/Recipient.php +2 -2
  209. app/code/community/Mzax/Emarketing/Model/Recipient/Error.php +2 -2
  210. app/code/community/Mzax/Emarketing/Model/Recipient/Provider.php +2 -2
  211. app/code/community/Mzax/Emarketing/Model/Recipient/Provider/Abstract.php +15 -1
  212. app/code/community/Mzax/Emarketing/Model/Recipient/Provider/Customer.php +1 -1
  213. app/code/community/Mzax/Emarketing/Model/Recipient/Provider/Newsletter.php +2 -2
  214. app/code/community/Mzax/Emarketing/Model/Recipient/Provider/Order.php +54 -2
  215. app/code/community/Mzax/Emarketing/Model/Recipient/Provider/Quote.php +39 -2
  216. app/code/community/Mzax/Emarketing/Model/Report.php +2 -2
  217. app/code/community/Mzax/Emarketing/Model/Report/Aggregator.php +2 -2
  218. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Abstract.php +2 -2
  219. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Campaign.php +2 -2
  220. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension.php +1 -1
  221. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Abstract.php +1 -1
  222. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Country.php +1 -1
  223. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Dayofweek.php +1 -1
  224. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/DeviceBrand.php +1 -1
  225. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/DeviceType.php +1 -1
  226. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Hour.php +1 -1
  227. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Os.php +1 -1
  228. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Region.php +1 -1
  229. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Useragent.php +1 -1
  230. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Events.php +2 -2
  231. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Goals.php +2 -2
  232. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Rates.php +2 -2
  233. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Recipient.php +2 -2
  234. app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Tracker.php +1 -1
  235. app/code/community/Mzax/Emarketing/Model/Report/Query.php +2 -2
  236. app/code/community/Mzax/Emarketing/Model/Report/Seeder.php +1 -1
  237. app/code/community/Mzax/Emarketing/Model/Resource/Campaign.php +17 -1
  238. app/code/community/Mzax/Emarketing/Model/Resource/Campaign/Collection.php +2 -2
  239. app/code/community/Mzax/Emarketing/Model/Resource/Campaign/Preset.php +191 -0
  240. app/code/community/Mzax/Emarketing/Model/Resource/Campaign/Preset/Collection.php +69 -0
  241. app/code/community/Mzax/Emarketing/Model/Resource/Campaign/Variation.php +1 -1
  242. app/code/community/Mzax/Emarketing/Model/Resource/Campaign/Variation/Collection.php +1 -1
  243. app/code/community/Mzax/Emarketing/Model/Resource/Conversion/Tracker.php +1 -1
  244. app/code/community/Mzax/Emarketing/Model/Resource/Conversion/Tracker/Collection.php +1 -1
  245. app/code/community/Mzax/Emarketing/Model/Resource/Email/Collection.php +2 -2
  246. app/code/community/Mzax/Emarketing/Model/Resource/Goal.php +1 -1
  247. app/code/community/Mzax/Emarketing/Model/Resource/Helper.php +1 -1
  248. app/code/community/Mzax/Emarketing/Model/Resource/Inbox/Email.php +1 -1
  249. app/code/community/Mzax/Emarketing/Model/Resource/Inbox/Email/Collection.php +1 -1
  250. app/code/community/Mzax/Emarketing/Model/Resource/Link.php +1 -1
  251. app/code/community/Mzax/Emarketing/Model/Resource/Link/Reference.php +1 -1
  252. app/code/community/Mzax/Emarketing/Model/Resource/Outbox/Email.php +2 -2
  253. app/code/community/Mzax/Emarketing/Model/Resource/Outbox/Email/Collection.php +6 -2
  254. app/code/community/Mzax/Emarketing/Model/Resource/Recipient.php +1 -1
  255. app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Address.php +1 -1
  256. app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Binding.php +1 -1
  257. app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Collection.php +1 -1
  258. app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Error.php +2 -2
  259. app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Error/Collection.php +2 -2
  260. app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Event.php +1 -1
  261. app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Goal/Binder.php +1 -1
  262. app/code/community/Mzax/Emarketing/Model/Resource/Setup.php +20 -4
  263. app/code/community/Mzax/Emarketing/Model/Resource/Template.php +1 -1
  264. app/code/community/Mzax/Emarketing/Model/Resource/Template/Collection.php +1 -1
  265. app/code/community/Mzax/Emarketing/Model/Resource/Useragent.php +1 -1
  266. app/code/community/Mzax/Emarketing/Model/Session.php +2 -2
  267. app/code/community/Mzax/Emarketing/Model/System/Config/Backend/DomainThreshold.php +1 -1
  268. app/code/community/Mzax/Emarketing/Model/System/Config/Source/GeoIp.php +1 -1
  269. app/code/community/Mzax/Emarketing/Model/System/Config/Source/MailStorage.php +1 -1
  270. app/code/community/Mzax/Emarketing/Model/System/Config/Source/SmtpAuthentication.php +1 -1
  271. app/code/community/Mzax/Emarketing/Model/Template.php +1 -1
  272. app/code/community/Mzax/Emarketing/Model/Template/Exception.php +1 -1
  273. app/code/community/Mzax/Emarketing/controllers/Admin/CampaignController.php +174 -13
  274. app/code/community/Mzax/Emarketing/controllers/Admin/InboxController.php +7 -1
  275. app/code/community/Mzax/Emarketing/controllers/Admin/OutboxController.php +9 -2
  276. app/code/community/Mzax/Emarketing/controllers/Admin/ShortcutController.php +1 -1
  277. app/code/community/Mzax/Emarketing/controllers/Admin/TemplateController.php +11 -5
  278. app/code/community/Mzax/Emarketing/controllers/Admin/TrackerController.php +12 -3
  279. app/code/community/Mzax/Emarketing/controllers/BeaconController.php +1 -1
  280. app/code/community/Mzax/Emarketing/controllers/EmailController.php +1 -1
  281. app/code/community/Mzax/Emarketing/controllers/LinkController.php +2 -2
  282. app/code/community/Mzax/Emarketing/controllers/UnsubscribeController.php +1 -1
  283. app/code/community/Mzax/Emarketing/data/useragent_regexes.php +1 -1
  284. app/code/community/Mzax/Emarketing/etc/adminhtml.xml +1 -1
  285. app/code/community/Mzax/Emarketing/etc/config.xml +6 -4
  286. app/code/community/Mzax/Emarketing/etc/system.xml +1 -1
  287. app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/install-0.2.php +1 -1
  288. app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/mzax-abandon-cart.mzax.campaign +1 -0
  289. app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/mzax-after-ship.mzax.campaign +1 -0
  290. app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/mzax-female30-40.mzax.campaign +1 -0
  291. app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/mzax-happy-birthday.mzax.campaign +1 -0
  292. app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/mzax-viewed-products.mzax.campaign +1 -0
  293. app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/uninstall.php +1 -1
  294. app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/upgrade-0.2.6-0.2.7.php +43 -0
  295. app/design/adminhtml/default/default/layout/mzax/emarketing.xml +1 -1
  296. app/design/adminhtml/default/default/template/mzax/emarketing/campaign/content-tabs.phtml +1 -1
  297. app/design/adminhtml/default/default/template/mzax/emarketing/campaign/filters/emulate.phtml +1 -1
  298. app/design/adminhtml/default/default/template/mzax/emarketing/campaign/load_template.phtml +1 -1
  299. app/design/adminhtml/default/default/template/mzax/emarketing/campaign/medium/email/preview.phtml +59 -52
  300. app/design/adminhtml/default/default/template/mzax/emarketing/campaign/presets.phtml +43 -0
  301. app/design/adminhtml/default/default/template/mzax/emarketing/campaign/recipients.phtml +1 -1
  302. app/design/adminhtml/default/default/template/mzax/emarketing/campaign/report.phtml +1 -1
  303. app/design/adminhtml/default/default/template/mzax/emarketing/campaign/tasks.phtml +34 -1
  304. app/design/adminhtml/default/default/template/mzax/emarketing/edit/js.phtml +1 -1
  305. app/design/adminhtml/default/default/template/mzax/emarketing/editor/text.phtml +1 -1
  306. app/design/adminhtml/default/default/template/mzax/emarketing/fieldset.phtml +1 -1
  307. app/design/adminhtml/default/default/template/mzax/emarketing/filter/page-preview.phtml +1 -1
  308. app/design/adminhtml/default/default/template/mzax/emarketing/filter/test/filter.phtml +1 -1
  309. app/design/adminhtml/default/default/template/mzax/emarketing/filter/test/recursive.phtml +1 -1
  310. app/design/adminhtml/default/default/template/mzax/emarketing/filter/test/single.phtml +1 -1
  311. app/design/adminhtml/default/default/template/mzax/emarketing/tracker/conditions/emulate.phtml +1 -1
  312. app/design/adminhtml/default/default/template/mzax/emarketing/tracker/tasks.phtml +1 -1
  313. app/design/adminhtml/default/default/template/mzax/emarketing/widget/chart-geo.phtml +1 -1
  314. app/design/adminhtml/default/default/template/mzax/emarketing/widget/chart-tab.phtml +1 -1
  315. app/design/frontend/base/default/layout/mzax/emarketing.xml +1 -1
  316. app/design/frontend/base/default/template/mzax/email/order-items.phtml +21 -0
  317. app/design/frontend/base/default/template/mzax/email/quote-items.phtml +21 -0
  318. js/mzax/ace/ext-mage_autocomplete.js +1 -1
  319. js/mzax/ace/mode-mage.js +1 -1
  320. js/mzax/ace/theme-mage.js +1 -1
  321. js/mzax/ckeditor.plugin.mage.js +1 -1
  322. js/mzax/editor.js +36 -29
  323. js/mzax/report.js +1 -1
  324. lib/Html2Text/Html2Text.php +23 -2
  325. lib/Html2Text/Html2TextException.php +2 -1
  326. lib/Html2Text/README.md +1 -1
  327. lib/Html2Text/composer.json +7 -4
  328. lib/Html2Text/composer.lock +118 -182
  329. lib/Mzax/Bounce.php +2 -2
  330. lib/Mzax/Bounce/Detector.php +2 -2
  331. lib/Mzax/Bounce/Detector/Abstract.php +2 -2
  332. lib/Mzax/Bounce/Detector/Arf.php +2 -2
  333. lib/Mzax/Bounce/Detector/Autoreply.php +2 -2
  334. lib/Mzax/Bounce/Detector/Extended.php +2 -2
  335. lib/Mzax/Bounce/Detector/Failure.php +2 -2
  336. lib/Mzax/Bounce/Detector/Rfc1892.php +2 -2
  337. lib/Mzax/Bounce/Mail.php +2 -2
  338. lib/Mzax/Bounce/Message.php +2 -2
  339. lib/Mzax/Bounce/Mime/Decode.php +2 -2
  340. lib/Mzax/Bounce/Mime/Part.php +2 -2
  341. lib/Mzax/Chart/Table.php +2 -2
  342. lib/Mzax/Db/Select.php +4 -4
  343. lib/Mzax/GeoIp.php +2 -2
  344. lib/Mzax/GeoIp/Adapter/Abstract.php +9 -2
  345. lib/Mzax/GeoIp/Adapter/FreeGeoIp.php +2 -2
  346. lib/Mzax/GeoIp/Adapter/GeoPlugin.php +18 -1
  347. lib/Mzax/GeoIp/Adapter/Ipinfo.php +2 -2
  348. lib/Mzax/GeoIp/Exception.php +2 -2
  349. lib/Mzax/GeoIp/Region.php +2 -2
  350. lib/Mzax/GeoIp/Request.php +2 -2
  351. lib/Mzax/Mail.php +2 -2
  352. lib/Mzax/Mail/Transport/File.php +2 -2
  353. lib/Mzax/Mail/Transport/Mock.php +2 -2
  354. lib/Mzax/Once.php +2 -2
  355. lib/Mzax/Presist.php +2 -2
  356. lib/Symfony/Component/CssSelector/CssSelector.php +2 -1
  357. lib/Symfony/Component/CssSelector/Exception/ExceptionInterface.php +2 -1
  358. lib/Symfony/Component/CssSelector/Exception/ExpressionErrorException.php +3 -2
  359. lib/Symfony/Component/CssSelector/Exception/InternalErrorException.php +3 -2
  360. lib/Symfony/Component/CssSelector/Exception/ParseException.php +2 -1
  361. lib/Symfony/Component/CssSelector/Exception/SyntaxErrorException.php +3 -2
  362. lib/Symfony/Component/CssSelector/Node/AbstractNode.php +2 -1
  363. lib/Symfony/Component/CssSelector/Node/AttributeNode.php +2 -1
  364. lib/Symfony/Component/CssSelector/Node/ClassNode.php +2 -1
  365. lib/Symfony/Component/CssSelector/Node/CombinedSelectorNode.php +2 -1
  366. lib/Symfony/Component/CssSelector/Node/ElementNode.php +2 -1
  367. lib/Symfony/Component/CssSelector/Node/FunctionNode.php +2 -1
  368. lib/Symfony/Component/CssSelector/Node/HashNode.php +2 -1
  369. lib/Symfony/Component/CssSelector/Node/NegationNode.php +2 -1
  370. lib/Symfony/Component/CssSelector/Node/NodeInterface.php +2 -1
  371. lib/Symfony/Component/CssSelector/Node/PseudoNode.php +2 -1
  372. lib/Symfony/Component/CssSelector/Node/SelectorNode.php +2 -1
  373. lib/Symfony/Component/CssSelector/Node/Specificity.php +2 -1
  374. lib/Symfony/Component/CssSelector/Parser/Handler/CommentHandler.php +2 -1
  375. lib/Symfony/Component/CssSelector/Parser/Handler/HandlerInterface.php +2 -1
  376. lib/Symfony/Component/CssSelector/Parser/Handler/HashHandler.php +2 -1
  377. lib/Symfony/Component/CssSelector/Parser/Handler/IdentifierHandler.php +2 -1
  378. lib/Symfony/Component/CssSelector/Parser/Handler/NumberHandler.php +2 -1
  379. lib/Symfony/Component/CssSelector/Parser/Handler/StringHandler.php +2 -1
  380. lib/Symfony/Component/CssSelector/Parser/Handler/WhitespaceHandler.php +2 -1
  381. lib/Symfony/Component/CssSelector/Parser/Parser.php +2 -1
  382. lib/Symfony/Component/CssSelector/Parser/ParserInterface.php +2 -1
  383. lib/Symfony/Component/CssSelector/Parser/Reader.php +2 -1
  384. lib/Symfony/Component/CssSelector/Parser/Shortcut/ClassParser.php +2 -1
  385. lib/Symfony/Component/CssSelector/Parser/Shortcut/ElementParser.php +2 -1
  386. lib/Symfony/Component/CssSelector/Parser/Shortcut/EmptyStringParser.php +2 -1
  387. lib/Symfony/Component/CssSelector/Parser/Shortcut/HashParser.php +2 -1
  388. lib/Symfony/Component/CssSelector/Parser/Token.php +2 -1
  389. lib/Symfony/Component/CssSelector/Parser/TokenStream.php +3 -2
  390. lib/Symfony/Component/CssSelector/Parser/Tokenizer/Tokenizer.php +2 -1
  391. lib/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerEscaping.php +2 -1
  392. lib/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerPatterns.php +2 -1
  393. lib/Symfony/Component/CssSelector/XPath/Extension/AbstractExtension.php +2 -1
  394. lib/Symfony/Component/CssSelector/XPath/Extension/AttributeMatchingExtension.php +2 -1
  395. lib/Symfony/Component/CssSelector/XPath/Extension/CombinationExtension.php +2 -1
  396. lib/Symfony/Component/CssSelector/XPath/Extension/ExtensionInterface.php +2 -1
  397. lib/Symfony/Component/CssSelector/XPath/Extension/FunctionExtension.php +3 -2
  398. lib/Symfony/Component/CssSelector/XPath/Extension/HtmlExtension.php +11 -10
  399. lib/Symfony/Component/CssSelector/XPath/Extension/NodeExtension.php +2 -1
  400. lib/Symfony/Component/CssSelector/XPath/Extension/PseudoClassExtension.php +2 -1
  401. lib/Symfony/Component/CssSelector/XPath/Translator.php +2 -1
  402. lib/Symfony/Component/CssSelector/XPath/TranslatorInterface.php +2 -1
  403. lib/Symfony/Component/CssSelector/XPath/XPathExpr.php +2 -1
  404. lib/Symfony/Component/CssSelector/composer.json +5 -6
  405. lib/Symfony/Component/CssSelector/phpunit.xml.dist +1 -0
  406. lib/TijsVerkoyen/CssToInlineStyles/CssToInlineStyles.php +36 -21
  407. lib/TijsVerkoyen/CssToInlineStyles/Exception.php +1 -1
  408. lib/TijsVerkoyen/CssToInlineStyles/Specificity.php +1 -1
  409. lib/UAParser/AbstractParser.php +1 -1
  410. lib/UAParser/{CHANGELOG → CHANGELOG.md} +81 -63
  411. lib/UAParser/Command/ConvertCommand.php +1 -1
  412. lib/UAParser/Command/FetchCommand.php +1 -1
  413. lib/UAParser/Command/LogfileCommand.php +1 -1
  414. lib/UAParser/Command/ParserCommand.php +1 -1
  415. lib/UAParser/Command/UpdateCommand.php +1 -1
  416. lib/UAParser/DeviceParser.php +1 -1
  417. lib/UAParser/Exception/DomainException.php +1 -1
  418. lib/UAParser/Exception/FetcherException.php +1 -1
  419. lib/UAParser/Exception/FileNotFoundException.php +1 -1
  420. lib/UAParser/Exception/InvalidArgumentException.php +1 -1
  421. lib/UAParser/Exception/ReaderException.php +1 -1
  422. lib/UAParser/OperatingSystemParser.php +1 -1
  423. lib/UAParser/Parser.php +1 -1
  424. lib/UAParser/README.md +0 -34
  425. lib/UAParser/Result/AbstractClient.php +1 -1
  426. lib/UAParser/Result/AbstractSoftware.php +1 -1
  427. lib/UAParser/Result/AbstractVersionedSoftware.php +1 -1
  428. lib/UAParser/Result/Client.php +1 -1
  429. lib/UAParser/Result/Device.php +1 -1
  430. lib/UAParser/Result/OperatingSystem.php +1 -1
  431. lib/UAParser/Result/UserAgent.php +1 -1
  432. lib/UAParser/UserAgentParser.php +1 -1
  433. lib/UAParser/Util/Converter.php +1 -1
  434. lib/UAParser/Util/Fetcher.php +1 -1
  435. lib/UAParser/Util/Logfile/AbstractReader.php +1 -1
  436. lib/UAParser/Util/Logfile/ApacheCommonLogFormatReader.php +1 -1
  437. lib/UAParser/Util/Logfile/ReaderInterface.php +1 -1
  438. lib/UAParser/resources/regexes.php +381 -324
  439. package.xml +4 -4
  440. skin/adminhtml/default/default/mzax/emarketing.css +1 -1
app/code/community/Mzax/Emarketing/Block/Campaign/Edit.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -52,7 +52,15 @@ class Mzax_Emarketing_Block_Campaign_Edit extends Mage_Adminhtml_Block_Widget_Fo
52
  return $text;
53
  }
54
  else {
55
- return $this->__('New %s Campaign', Mage::getSingleton('mzax_emarketing/medium')->getOptionText($campaign->getData('medium')));
 
 
 
 
 
 
 
 
56
  }
57
  }
58
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
52
  return $text;
53
  }
54
  else {
55
+ if($preset = $campaign->getPreset()) {
56
+ return $this->__('New %s - %s campaign',
57
+ Mage::getSingleton('mzax_emarketing/medium')->getOptionText($campaign->getData('medium')),
58
+ $preset->getName());
59
+ }
60
+ else {
61
+ return $this->__('New %s Campaign',
62
+ Mage::getSingleton('mzax_emarketing/medium')->getOptionText($campaign->getData('medium')));
63
+ }
64
  }
65
  }
66
 
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Form.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Medium/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Medium/Email.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Medium/Email/Tab/Inbox.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -73,4 +73,10 @@ class Mzax_Emarketing_Block_Campaign_Edit_Medium_Email_Tab_Inbox extends Mzax_Em
73
  return $this->getUrl('*/admin_inbox/email', array('id'=>$row->getId()));
74
  }
75
 
 
 
 
 
 
 
76
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
73
  return $this->getUrl('*/admin_inbox/email', array('id'=>$row->getId()));
74
  }
75
 
76
+
77
+
78
+ protected function getAdditionalJavascript()
79
+ {
80
+ return "window.{$this->getId()}_massactionJsObject = {$this->getId()}_massactionJsObject;";
81
+ }
82
  }
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Medium/Email/Tab/Outbox.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -82,4 +82,10 @@ class Mzax_Emarketing_Block_Campaign_Edit_Medium_Email_Tab_Outbox extends Mzax_E
82
  return true;
83
  }
84
 
 
 
 
 
 
 
85
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
82
  return true;
83
  }
84
 
85
+
86
+ protected function getAdditionalJavascript()
87
+ {
88
+ return "window.{$this->getId()}_massactionJsObject = {$this->getId()}_massactionJsObject;";
89
+ }
90
+
91
  }
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Content.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Content/Original.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Content/Variation.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Errors.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Block_Campaign_Edit_Tab_Errors extends Mage_Adminhtml_Block_Widget_Grid
29
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Block_Campaign_Edit_Tab_Errors extends Mage_Adminhtml_Block_Widget_Grid
29
  {
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Filters.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -40,7 +40,7 @@ class Mzax_Emarketing_Block_Campaign_Edit_Tab_Filters extends Mage_Adminhtml_Blo
40
  ->setNewFilterUrl($this->getUrl('*/*/newFilterHtml', array('campaign' => $campaign->getId())));
41
 
42
  $fieldset = $form->addFieldset('conditions_fieldset', array(
43
- 'legend'=>Mage::helper('salesrule')->__('Only send email to people matching the filters below')
44
  ))->setRenderer($renderer);
45
 
46
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
40
  ->setNewFilterUrl($this->getUrl('*/*/newFilterHtml', array('campaign' => $campaign->getId())));
41
 
42
  $fieldset = $form->addFieldset('conditions_fieldset', array(
43
+ 'legend'=>Mage::helper('salesrule')->__('Only send campaign to people matching the filters below')
44
  ))->setRenderer($renderer);
45
 
46
 
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Inbox.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Medium.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -70,6 +70,15 @@ class Mzax_Emarketing_Block_Campaign_Edit_Tab_Medium extends Mage_Adminhtml_Bloc
70
  ));
71
 
72
 
 
 
 
 
 
 
 
 
 
73
  $form->addValues($campaign->getData());
74
  $this->setForm($form);
75
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
70
  ));
71
 
72
 
73
+
74
+ /**
75
+ * Campaign
76
+ */
77
+ $fieldset = $form->addFieldset('presets', array(
78
+ 'legend' => $this->__('Campaign Presets'),
79
+ ))->setRenderer($this->getLayout()->createBlock('mzax_emarketing/campaign_new_presets'));
80
+
81
+
82
  $form->addValues($campaign->getData());
83
  $this->setForm($form);
84
 
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Recipients.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Recipients/Grid.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -98,5 +98,9 @@ class Mzax_Emarketing_Block_Campaign_Edit_Tab_Recipients_Grid extends Mzax_Emark
98
  }
99
 
100
 
 
 
 
 
101
 
102
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
98
  }
99
 
100
 
101
+ protected function getAdditionalJavascript()
102
+ {
103
+ return "window.{$this->getId()}_massactionJsObject = {$this->getId()}_massactionJsObject;";
104
+ }
105
 
106
  }
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Report.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Block_Campaign_Edit_Tab_Report extends Mage_Adminhtml_Block_Widget
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Block_Campaign_Edit_Tab_Report extends Mage_Adminhtml_Block_Widget
31
  {
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Settings.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -55,31 +55,70 @@ class Mzax_Emarketing_Block_Campaign_Edit_Tab_Settings extends Mage_Adminhtml_Bl
55
  }
56
 
57
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
  $fieldset->addField('name','text', array(
60
  'name' => 'name',
61
  'required' => true,
62
- 'label' => $this->__('Campaign Name'),
63
- 'title' => $this->__('Campaign Name'),
64
  ));
65
 
66
-
67
- $fieldset->addField('medium','hidden', array(
68
- 'name' => 'medium'
69
- ));
70
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
 
72
-
73
- // @todo disable if it has reci
74
- $fieldset->addField('provider','select', array(
75
- 'name' => 'provider',
76
- 'label' => $this->__('Campaign Recipient'),
77
- 'title' => $this->__('Campaign Recipient'),
78
- 'values' => $campaign->getAvailableProviders(false),
79
- 'note' => $this->__("Who are the recipients of this campaign"),
80
- 'disabled' => (bool) $campaign->getId(),
81
- 'required' => true,
82
- ));
 
 
 
 
 
 
 
 
 
 
 
 
83
 
84
 
85
  $fieldset->addField('store_id', 'select', array(
@@ -91,39 +130,75 @@ class Mzax_Emarketing_Block_Campaign_Edit_Tab_Settings extends Mage_Adminhtml_Bl
91
  ));
92
 
93
 
94
- $fieldset->addField('start_at','date',array(
95
- 'name' => 'start_at',
96
- 'time' => true,
97
- 'style' => 'width:60%;',
98
- 'format' => $outputFormat,
99
- 'label' => $this->__('Date Start'),
100
- 'image' => $this->getSkinUrl('images/grid-cal.gif')
101
- ));
102
- $fieldset->addField('end_at','date',array(
103
- 'name' => 'end_at',
104
- 'time' => true,
105
- 'style' => 'width:60%;',
106
- 'format' => $outputFormat,
107
- 'label' => $this->__('Date End'),
108
- 'image' => $this->getSkinUrl('images/grid-cal.gif')
109
- ));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
 
111
 
112
 
113
  if($campaign->getId()) {
114
- /*
115
- $fieldset->addField('running', 'select', array(
116
- 'label' => $this->__('Running'),
117
- 'title' => $this->__('Running'),
118
- 'name' => 'running',
119
- 'required' => true,
120
- 'options' => array(
121
- '1' => $this->__('Yes'),
122
- '0' => $this->__('No'),
123
- ),
124
- 'value' => '1'
 
 
 
 
 
125
  ));
126
- */
127
 
128
 
129
  /**
@@ -181,54 +256,6 @@ class Mzax_Emarketing_Block_Campaign_Edit_Tab_Settings extends Mage_Adminhtml_Bl
181
 
182
 
183
 
184
-
185
- $advanced->addField('check_frequency', 'select', array(
186
- 'label' => $this->__('Check Frequency'),
187
- 'title' => $this->__('Check Frequency'),
188
- 'name' => 'check_frequency',
189
- 'required' => true,
190
- 'options' => array(
191
- '1440' => $this->__('Once a day'),
192
- '720' => $this->__('Twice a day'),
193
- '360' => $this->__('Every 6 hours'),
194
- '180' => $this->__('Every 3 hours'),
195
- '60' => $this->__('Every hour'),
196
- '30' => $this->__('Every 30 minutes'),
197
- '1' => $this->__('Every time'),
198
- '0' => $this->__('Never automatically'),
199
- ),
200
- 'value' => '720',
201
- 'note' => $this->__("How often to check for new recipients, e.g. Birthdays will do once a day, while abandon carts need to check all the time."),
202
- ));
203
-
204
-
205
-
206
- $advanced->addField('min_resend_interval', 'select', array(
207
- 'label' => $this->__('Minimum Resend Interval'),
208
- 'title' => $this->__('Minimum Resend Interval'),
209
- 'name' => 'min_resend_interval',
210
- 'required' => true,
211
- 'options' => array(
212
- '0' => $this->__('[Only send once]'),
213
- '1' => $this->__('One day'),
214
- '2' => $this->__('Two days'),
215
- '7' => $this->__('One week'),
216
- '14' => $this->__('Two weeks'),
217
- '31' => $this->__('1 month'),
218
- '62' => $this->__('2 months'),
219
- '91' => $this->__('3 months'),
220
- '122' => $this->__('4 months'),
221
- '152' => $this->__('5 months'),
222
- '183' => $this->__('6 months'),
223
- '274' => $this->__('9 months'),
224
- '364' => $this->__('12 months')
225
- ),
226
- 'value' => '0',
227
- 'note' => $this->__("The minimum time before a recipient can recieve this campaign again."),
228
- ));
229
-
230
-
231
-
232
  $advanced->addField('expire_time', 'select', array(
233
  'name' => 'expire_time',
234
  'label' => $this->__('Expire Time'),
@@ -262,7 +289,7 @@ class Mzax_Emarketing_Block_Campaign_Edit_Tab_Settings extends Mage_Adminhtml_Bl
262
  'title' => $this->__('Email Sender'),
263
  'values' => Mage::getModel('adminhtml/system_config_source_email_identity')->toOptionArray(),
264
  'required' => true,
265
- 'note' => $this->__("The sender identity to use when sending out the emails. Keep in mind that email bounces will get send back to that email address in case you have defined an inbox to check.")
266
  ));
267
 
268
 
@@ -273,23 +300,22 @@ class Mzax_Emarketing_Block_Campaign_Edit_Tab_Settings extends Mage_Adminhtml_Bl
273
 
274
 
275
  $advanced->addField('default_tracker_id','select', array(
276
- 'name' => 'default_tracker_id',
277
- 'label' => $this->__('Default Conversion Tracker'),
278
- 'title' => $this->__('Default Conversion Tracker'),
279
- 'values' => $trackers,
280
- 'required' => true,
281
  ));
282
 
 
 
 
 
 
 
283
  } // has id
284
 
285
 
286
- if($medium = $campaign->getMedium()) {
287
- $medium->initSettingsForm($form, $campaign);
288
- $form->addValues($campaign->getMediumData()->getData());
289
- }
290
-
291
-
292
-
293
  $form->addValues($campaign->getData());
294
  $this->setForm($form);
295
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
55
  }
56
 
57
 
58
+ $fieldset->addField('medium','hidden', array(
59
+ 'name' => 'medium'
60
+ ));
61
+
62
+
63
+ if($campaign->getPreset()) {
64
+ $fieldset->addField('preset_name','hidden', array(
65
+ 'name' => 'preset_name',
66
+ 'value' => $campaign->getPreset()->getName()
67
+ ));
68
+ }
69
+
70
+
71
 
72
  $fieldset->addField('name','text', array(
73
  'name' => 'name',
74
  'required' => true,
75
+ 'label' => $this->__('Campaign Name'),
76
+ 'title' => $this->__('Campaign Name'),
77
  ));
78
 
 
 
 
 
79
 
80
+ if($campaign->getId()) {
81
+ $fieldset->addField('description','textarea', array(
82
+ 'name' => 'description',
83
+ 'required' => false,
84
+ 'style' => 'height:60px;',
85
+ 'label' => $this->__('Description'),
86
+ 'title' => $this->__('Description'),
87
+ 'note' => $this->__("For internal use only"),
88
+ ));
89
+
90
+ $fieldset->addField('tags','text', array(
91
+ 'name' => 'tags',
92
+ 'required' => false,
93
+ 'label' => $this->__('Tags'),
94
+ 'title' => $this->__('Campaign'),
95
+ 'note' => $this->__("Space separated tags for internal organising purpose only (e.g. draft reminder ad need-review…)"),
96
+ ));
97
+ }
98
 
99
+
100
+ // don't show when creating by presets
101
+ if(!$campaign->getPreset()) {
102
+ $fieldset->addField('provider','select', array(
103
+ 'name' => 'provider',
104
+ 'label' => $this->__('Campaign Recipient'),
105
+ 'title' => $this->__('Campaign Recipient'),
106
+ 'values' => $campaign->getAvailableProviders(false),
107
+ 'note' => !$campaign->getId()
108
+ ? $this->__("Who are the recipients of this campaign")
109
+ : ($campaign->countRecipients()
110
+ ? $this->__("Changing may alter your current filters")
111
+ : $this->__("This can not be changed once a recipient has been created.")
112
+ ),
113
+ 'disabled' => $campaign->getId() && $campaign->countRecipients(),
114
+ 'required' => true,
115
+ ));
116
+ }
117
+ else {
118
+ $fieldset->addField('provider', 'hidden', array(
119
+ 'name' => 'provider'
120
+ ));
121
+ }
122
 
123
 
124
  $fieldset->addField('store_id', 'select', array(
130
  ));
131
 
132
 
133
+ // don't show when creating by presets
134
+ if(!$campaign->getPreset())
135
+ {
136
+ $fieldset->addField('check_frequency', 'select', array(
137
+ 'label' => $this->__('Check Frequency'),
138
+ 'title' => $this->__('Check Frequency'),
139
+ 'name' => 'check_frequency',
140
+ 'required' => true,
141
+ 'options' => array(
142
+ '1440' => $this->__('Once a day'),
143
+ '720' => $this->__('Twice a day'),
144
+ '360' => $this->__('Every 6 hours'),
145
+ '180' => $this->__('Every 3 hours'),
146
+ '60' => $this->__('Every hour'),
147
+ '30' => $this->__('Every 30 minutes'),
148
+ '1' => $this->__('Every time'),
149
+ '0' => $this->__('Never automatically'),
150
+ ),
151
+ 'value' => '720',
152
+ 'note' => $this->__("How often to check for new recipients, e.g. Birthdays will do once a day, while abandon carts need to check all the time."),
153
+ ));
154
+
155
+ $fieldset->addField('min_resend_interval', 'select', array(
156
+ 'label' => $this->__('Minimum Resend Interval'),
157
+ 'title' => $this->__('Minimum Resend Interval'),
158
+ 'name' => 'min_resend_interval',
159
+ 'required' => true,
160
+ 'options' => array(
161
+ '0' => $this->__('[Only send once]'),
162
+ '1' => $this->__('One day'),
163
+ '2' => $this->__('Two days'),
164
+ '7' => $this->__('One week'),
165
+ '14' => $this->__('Two weeks'),
166
+ '31' => $this->__('1 month'),
167
+ '62' => $this->__('2 months'),
168
+ '91' => $this->__('3 months'),
169
+ '122' => $this->__('4 months'),
170
+ '152' => $this->__('5 months'),
171
+ '183' => $this->__('6 months'),
172
+ '274' => $this->__('9 months'),
173
+ '364' => $this->__('12 months')
174
+ ),
175
+ 'value' => '0',
176
+ 'note' => $this->__("The minimum time before a recipient can recieve this campaign again."),
177
+ ));
178
+ }
179
+
180
+
181
 
182
 
183
 
184
  if($campaign->getId()) {
185
+
186
+ $fieldset->addField('start_at','date',array(
187
+ 'name' => 'start_at',
188
+ 'time' => true,
189
+ 'style' => 'width:60%;',
190
+ 'format' => $outputFormat,
191
+ 'label' => $this->__('Date Start'),
192
+ 'image' => $this->getSkinUrl('images/grid-cal.gif')
193
+ ));
194
+ $fieldset->addField('end_at','date',array(
195
+ 'name' => 'end_at',
196
+ 'time' => true,
197
+ 'style' => 'width:60%;',
198
+ 'format' => $outputFormat,
199
+ 'label' => $this->__('Date End'),
200
+ 'image' => $this->getSkinUrl('images/grid-cal.gif')
201
  ));
 
202
 
203
 
204
  /**
256
 
257
 
258
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  $advanced->addField('expire_time', 'select', array(
260
  'name' => 'expire_time',
261
  'label' => $this->__('Expire Time'),
289
  'title' => $this->__('Email Sender'),
290
  'values' => Mage::getModel('adminhtml/system_config_source_email_identity')->toOptionArray(),
291
  'required' => true,
292
+ 'note' => $this->__("The sender identity to use when sending out the emails. Keep in mind that email bounces will get send back to that email address in case you have defined an inbox to check.")
293
  ));
294
 
295
 
300
 
301
 
302
  $advanced->addField('default_tracker_id','select', array(
303
+ 'name' => 'default_tracker_id',
304
+ 'label' => $this->__('Default Conversion Tracker'),
305
+ 'title' => $this->__('Default Conversion Tracker'),
306
+ 'values' => $trackers,
307
+ 'required' => true,
308
  ));
309
 
310
+
311
+ if($medium = $campaign->getMedium()) {
312
+ $medium->initSettingsForm($form, $campaign);
313
+ $form->addValues($campaign->getMediumData()->getData());
314
+ }
315
+
316
  } // has id
317
 
318
 
 
 
 
 
 
 
 
319
  $form->addValues($campaign->getData());
320
  $this->setForm($form);
321
 
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Tasks.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tab/Test.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Edit/Tabs.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -66,13 +66,12 @@ class Mzax_Emarketing_Block_Campaign_Edit_Tabs extends Mage_Adminhtml_Block_Widg
66
  'content' => $this->getLayout()->createBlock('mzax_emarketing/campaign_edit_tab_content')->toHtml(),
67
  'active' => false
68
  ));
69
-
70
  // only available if saved
71
  if($campaign->getId())
72
  {
73
-
74
  $this->addTab('filters', array(
75
- 'label' => $this->__('Filters'),
76
  'content' => $this->getLayout()->createBlock('mzax_emarketing/campaign_edit_tab_filters')->initForm()->toHtml(),
77
  'active' => false
78
  ));
@@ -83,7 +82,6 @@ class Mzax_Emarketing_Block_Campaign_Edit_Tabs extends Mage_Adminhtml_Block_Widg
83
  ));
84
 
85
  if(!$campaign->isArchived()) {
86
- // we want to initalize it
87
  $this->getLayout()->createBlock('mzax_emarketing/campaign_edit_tab_report');
88
  $this->addTab('report', array(
89
  'label' => $this->__('Report'),
@@ -108,8 +106,14 @@ class Mzax_Emarketing_Block_Campaign_Edit_Tabs extends Mage_Adminhtml_Block_Widg
108
  'url' => $this->getUrl('*/*/errorGrid', array('_current' => true))
109
  ));
110
  }
111
-
112
-
 
 
 
 
 
 
113
  }
114
  }
115
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
66
  'content' => $this->getLayout()->createBlock('mzax_emarketing/campaign_edit_tab_content')->toHtml(),
67
  'active' => false
68
  ));
69
+
70
  // only available if saved
71
  if($campaign->getId())
72
  {
 
73
  $this->addTab('filters', array(
74
+ 'label' => $this->__('Filters / Segmentation'),
75
  'content' => $this->getLayout()->createBlock('mzax_emarketing/campaign_edit_tab_filters')->initForm()->toHtml(),
76
  'active' => false
77
  ));
82
  ));
83
 
84
  if(!$campaign->isArchived()) {
 
85
  $this->getLayout()->createBlock('mzax_emarketing/campaign_edit_tab_report');
86
  $this->addTab('report', array(
87
  'label' => $this->__('Report'),
106
  'url' => $this->getUrl('*/*/errorGrid', array('_current' => true))
107
  ));
108
  }
109
+ }
110
+ else if($campaign->getPreset())
111
+ {
112
+ $this->addTab('filters', array(
113
+ 'label' => $this->__('Filters / Segmentation'),
114
+ 'content' => $this->getLayout()->createBlock('mzax_emarketing/campaign_edit_tab_filters')->initForm()->toHtml(),
115
+ 'active' => false
116
+ ));
117
  }
118
  }
119
 
app/code/community/Mzax/Emarketing/Block/Campaign/Grid.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Block_Campaign_Grid extends Mage_Adminhtml_Block_Widget_Grid
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Block_Campaign_Grid extends Mage_Adminhtml_Block_Widget_Grid
31
  {
app/code/community/Mzax/Emarketing/Block/Campaign/Grid/Filter/Filter.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Grid/Renderer/Action.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Grid/Renderer/Filter.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Grid/Renderer/SendMail.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Grid/Renderer/Sender.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Grid/Renderer/Stats.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/New.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -22,7 +22,7 @@
22
  *
23
  * @author Jacob Siefer
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
- * @version 0.2.6
26
  */
27
  class Mzax_Emarketing_Block_Campaign_New extends Mzax_Emarketing_Block_Campaign_Edit
28
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
22
  *
23
  * @author Jacob Siefer
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ * @version 0.2.7
26
  */
27
  class Mzax_Emarketing_Block_Campaign_New extends Mzax_Emarketing_Block_Campaign_Edit
28
  {
app/code/community/Mzax/Emarketing/Block/Campaign/New/Presets.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Mzax Emarketing (www.mzax.de)
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this Extension in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @version 0.2.7
13
+ * @category Mzax
14
+ * @package Mzax_Emarketing
15
+ * @author Jacob Siefer (jacob@mzax.de)
16
+ * @copyright Copyright (c) 2015 Jacob Siefer
17
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
+ */
19
+
20
+
21
+ class Mzax_Emarketing_Block_Campaign_New_Presets extends Mage_Adminhtml_Block_Widget_Form_Renderer_Fieldset
22
+ {
23
+
24
+ /**
25
+ *
26
+ * @var Mzax_Emarketing_Model_Resource_Campaign_Preset_Collection
27
+ */
28
+ protected $_presets;
29
+
30
+
31
+ public function _construct()
32
+ {
33
+ parent::_construct();
34
+ $this->setTemplate('mzax/emarketing/campaign/presets.phtml');
35
+ }
36
+
37
+
38
+
39
+ /**
40
+ * Retrieve presets
41
+ *
42
+ * @return Mzax_Emarketing_Model_Resource_Campaign_Preset_Collection
43
+ */
44
+ public function getPresets()
45
+ {
46
+ if(!$this->_presets) {
47
+ $this->_presets = Mage::getResourceModel('mzax_emarketing/campaign_preset_collection');
48
+ }
49
+ return $this->_presets;
50
+ }
51
+
52
+ }
app/code/community/Mzax/Emarketing/Block/Campaign/Preview.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -172,14 +172,18 @@ class Mzax_Emarketing_Block_Campaign_Preview extends Mage_Adminhtml_Block_Widget
172
  public function getEmail()
173
  {
174
  if(!$this->_email) {
175
- $recipient = $this->getRecipient();
176
- $recipient->prepare();
177
-
178
  /* @var $email Mzax_Emarketing_Model_Outbox_Email */
179
  $this->_email = Mage::getModel('mzax_emarketing/outbox_email');
180
- $this->_email->setTo($recipient->getAddress());
181
- $this->_email->setRecipient($recipient);
182
- $this->_email->render();
 
 
 
 
 
 
 
183
  }
184
  return $this->_email;
185
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
172
  public function getEmail()
173
  {
174
  if(!$this->_email) {
 
 
 
175
  /* @var $email Mzax_Emarketing_Model_Outbox_Email */
176
  $this->_email = Mage::getModel('mzax_emarketing/outbox_email');
177
+ try {
178
+ $recipient = $this->getRecipient();
179
+ $recipient->prepare();
180
+ $this->_email->setTo($recipient->getAddress());
181
+ $this->_email->setRecipient($recipient);
182
+ $this->_email->render();
183
+ }
184
+ catch(Exception $error) {
185
+ $this->setError($error);
186
+ }
187
  }
188
  return $this->_email;
189
  }
app/code/community/Mzax/Emarketing/Block/Campaign/SendTestMail.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/SendTestMail/Form.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Test.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/Test/Emulate.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Campaign/View.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Chart/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Chart/Area.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Chart/Bar.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Chart/Column.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Chart/Geo.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Chart/Line.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Chart/Pie.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Chart/Scatter.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Chart/SteppedArea.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Chart/Widget/Container.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Chart/Widget/Geo.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Chart/Widget/Tab.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Block_Chart_Widget_Tab extends Mage_Adminhtml_Block_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Block_Chart_Widget_Tab extends Mage_Adminhtml_Block_Abstract
30
  {
app/code/community/Mzax/Emarketing/Block/Conditions.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Block_Conditions implements Varien_Data_Form_Element_Renderer_Interface
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Block_Conditions implements Varien_Data_Form_Element_Renderer_Interface
30
  {
app/code/community/Mzax/Emarketing/Block/Editable.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Block_Editable extends Mage_Core_Block_Abstract
30
  implements Varien_Data_Form_Element_Renderer_Interface
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Block_Editable extends Mage_Core_Block_Abstract
30
  implements Varien_Data_Form_Element_Renderer_Interface
app/code/community/Mzax/Emarketing/Block/Filter/Object/Grid.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -102,7 +102,7 @@ class Mzax_Emarketing_Block_Filter_Object_Grid extends Mage_Adminhtml_Block_Widg
102
  */
103
  public function getObject()
104
  {
105
- return $this->getFilter()->getObject();
106
  }
107
 
108
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
102
  */
103
  public function getObject()
104
  {
105
+ return $this->getFilter()->getParentObject();
106
  }
107
 
108
 
app/code/community/Mzax/Emarketing/Block/Filter/Test/Recursive.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Filter/Test/Single.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -31,7 +31,7 @@
31
  *
32
  * @author Jacob Siefer
33
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
34
- * @version 0.2.6
35
  */
36
  class Mzax_Emarketing_Block_Filter_Test_Single extends Mage_Adminhtml_Block_Template
37
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
31
  *
32
  * @author Jacob Siefer
33
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
34
+ * @version 0.2.7
35
  */
36
  class Mzax_Emarketing_Block_Filter_Test_Single extends Mage_Adminhtml_Block_Template
37
  {
app/code/community/Mzax/Emarketing/Block/Filters.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Block_Filters implements Varien_Data_Form_Element_Renderer_Interface
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Block_Filters implements Varien_Data_Form_Element_Renderer_Interface
31
  {
app/code/community/Mzax/Emarketing/Block/Grid/Column/Renderer/Action.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Block_Grid_Column_Renderer_Action extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Block_Grid_Column_Renderer_Action extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action
30
  {
app/code/community/Mzax/Emarketing/Block/Grid/Column/Renderer/Campaign.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Block_Grid_Column_Renderer_Campaign
29
  extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Options
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Block_Grid_Column_Renderer_Campaign
29
  extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Options
app/code/community/Mzax/Emarketing/Block/Grid/Column/Renderer/Recipient.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Block_Grid_Column_Renderer_Recipient
31
  extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Block_Grid_Column_Renderer_Recipient
31
  extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
app/code/community/Mzax/Emarketing/Block/Grid/Column/Renderer/Size.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Block_Grid_Column_Renderer_Size
31
  extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Block_Grid_Column_Renderer_Size
31
  extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
app/code/community/Mzax/Emarketing/Block/Inbox/Email.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Inbox/Email/Form.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Block_Inbox_Email_Form extends Mage_Adminhtml_Block_Widget_Form
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Block_Inbox_Email_Form extends Mage_Adminhtml_Block_Widget_Form
30
  {
app/code/community/Mzax/Emarketing/Block/Inbox/Grid.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Inbox/View.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Outbox/Email.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Outbox/Email/Form.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Outbox/Grid.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -21,9 +21,9 @@
21
  class Mzax_Emarketing_Block_Outbox_Grid extends Mage_Adminhtml_Block_Widget_Grid
22
  {
23
 
24
- public function __construct()
25
  {
26
- parent::__construct();
27
  $this->setId('outbox_grid');
28
  $this->setUseAjax(true);
29
  $this->setSaveParametersInSession(true);
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
21
  class Mzax_Emarketing_Block_Outbox_Grid extends Mage_Adminhtml_Block_Widget_Grid
22
  {
23
 
24
+ protected function _construct()
25
  {
26
+ parent::_construct();
27
  $this->setId('outbox_grid');
28
  $this->setUseAjax(true);
29
  $this->setSaveParametersInSession(true);
app/code/community/Mzax/Emarketing/Block/Outbox/View.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Recipients/Column/Renderer/Attribute.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Recipients/Column/Renderer/Object.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -52,7 +52,7 @@ class Mzax_Emarketing_Block_Recipients_Column_Renderer_Object extends Mage_Admin
52
 
53
  $url = $this->getObject()->getAdminUrl($row->getData($idField));
54
  if($url) {
55
- return "<a href=\"{$url}\">$label</a>";
56
  }
57
  return $label;
58
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
52
 
53
  $url = $this->getObject()->getAdminUrl($row->getData($idField));
54
  if($url) {
55
+ return "<a href=\"{$url}\" target=\"_blank\">$label</a>";
56
  }
57
  return $label;
58
  }
app/code/community/Mzax/Emarketing/Block/Recipients/Grid.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/System/Config/Form/Field/DomainThreshold.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/System/Config/Form/Field/MailStorage.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Template.php ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Mzax Emarketing (www.mzax.de)
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this Extension in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @version 0.2.7
13
+ * @category Mzax
14
+ * @package Mzax_Emarketing
15
+ * @author Jacob Siefer (jacob@mzax.de)
16
+ * @copyright Copyright (c) 2015 Jacob Siefer
17
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
+ */
19
+
20
+
21
+
22
+ /**
23
+ * Template block helper class with usefull methods
24
+ *
25
+ *
26
+ * @method Mage_Sales_Model_Order getOrder()
27
+ * @method Mage_Sales_Model_Quote getQuote()
28
+ *
29
+ * @author Jacob Siefer
30
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
31
+ * @version 0.2.7
32
+ */
33
+ class Mzax_Emarketing_Block_Template extends Mage_Core_Block_Template
34
+ {
35
+
36
+
37
+ /**
38
+ * Retrieve all items from order or quote and
39
+ * include product object
40
+ *
41
+ * @param mixed $object
42
+ * @param string $attributes
43
+ * @return Mage_Sales_Model_Resource_Order_Collection
44
+ */
45
+ public function getAllItems($object, $attributes = '*', $limit = 20)
46
+ {
47
+ $result = array();
48
+
49
+ /* @var $collection Mage_Sales_Model_Resource_Order_Collection */
50
+ $collection = $object->getItemsCollection();
51
+
52
+ $productsCollection = Mage::getResourceModel('catalog/product_collection')
53
+ ->addIdFilter($collection->getColumnValues('product_id'))
54
+ //->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInSiteIds())
55
+ ->addAttributeToSelect($attributes)
56
+ ->addPriceData()
57
+ ->setPageSize($limit)
58
+ ->load();
59
+
60
+ foreach($collection as $item) {
61
+ $product = $productsCollection->getItemById($item->getProductId());
62
+ if($product) {
63
+ $item->setProduct($product);
64
+ if(!$item->getParentItem()) {
65
+ $result[] = $item;
66
+ }
67
+ }
68
+ }
69
+ return $result;
70
+ }
71
+
72
+
73
+
74
+ /**
75
+ * Retrieve product
76
+ *
77
+ * @param mixed $object
78
+ * @return Mage_Catalog_Model_Product|NULL
79
+ */
80
+ public function getProduct($object = null)
81
+ {
82
+ if(!$object) {
83
+ return $this->getData('product');
84
+ }
85
+ if($object instanceof Mage_Catalog_Model_Product) {
86
+ return $object;
87
+ }
88
+ if( $object instanceof Mage_Sales_Model_Order_Item ||
89
+ $object instanceof Mage_Sales_Model_Quote_Item ||
90
+ $object instanceof Mage_Sales_Model_Order_Invoice_Item ||
91
+ $object instanceof Mage_Sales_Model_Order_Shipment_Item ||
92
+ $object instanceof Mage_Sales_Model_Order_Creditmemo_Item)
93
+ {
94
+ return $object->getProduct();
95
+ }
96
+
97
+ // @todo check for productId or sku?
98
+ return null;
99
+ }
100
+
101
+
102
+
103
+
104
+ /**
105
+ * Retrieve catalog image helper instance
106
+ *
107
+ * @param mixed $object
108
+ * @param string $attribute
109
+ * @param number $size
110
+ * @return Mage_Catalog_Helper_Image
111
+ */
112
+ public function getProductImage($object, $attribute = 'small_image', $size = 100)
113
+ {
114
+ $product = $this->getProduct($object);
115
+ $helper = $this->helper('catalog/image');
116
+ if($product) {
117
+ $helper->init($product, 'small_image')
118
+ ->constrainOnly(true)
119
+ ->keepAspectRatio(true)
120
+ ->keepFrame(false)
121
+ ->setQuality(40)
122
+ ->resize($size, $size);
123
+ }
124
+ return $helper;
125
+ }
126
+
127
+
128
+
129
+ }
app/code/community/Mzax/Emarketing/Block/Template/Edit.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Template/Edit/Form.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Template/Grid.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Template/Upload.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Template/Upload/Form.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Template/View.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Tracker/Edit.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Block_Tracker_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
29
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Block_Tracker_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
29
  {
app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Form.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Tab/Conditions.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Tab/GoalType.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Block_Tracker_Edit_Tab_GoalType extends Mage_Adminhtml_Block_Widget_Form
29
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Block_Tracker_Edit_Tab_GoalType extends Mage_Adminhtml_Block_Widget_Form
29
  {
app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Tab/Settings.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Block_Tracker_Edit_Tab_Settings extends Mage_Adminhtml_Block_Widget_Form
29
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Block_Tracker_Edit_Tab_Settings extends Mage_Adminhtml_Block_Widget_Form
29
  {
app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Tab/Tasks.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Block_Tracker_Edit_Tab_Tasks extends Mage_Adminhtml_Block_Template
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Block_Tracker_Edit_Tab_Tasks extends Mage_Adminhtml_Block_Template
30
  {
app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Tab/Test.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Tracker/Edit/Tabs.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Block_Tracker_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
29
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Block_Tracker_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
29
  {
app/code/community/Mzax/Emarketing/Block/Tracker/Grid.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Tracker/New.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -22,7 +22,7 @@
22
  *
23
  * @author Jacob Siefer
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
- * @version 0.2.6
26
  */
27
  class Mzax_Emarketing_Block_Tracker_New extends Mzax_Emarketing_Block_Tracker_Edit
28
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
22
  *
23
  * @author Jacob Siefer
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ * @version 0.2.7
26
  */
27
  class Mzax_Emarketing_Block_Tracker_New extends Mzax_Emarketing_Block_Tracker_Edit
28
  {
app/code/community/Mzax/Emarketing/Block/Tracker/Test.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Tracker/Test/Emulate.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Tracker/Upload.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Block_Tracker_Upload extends Mage_Adminhtml_Block_Widget_Form_Container
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Block_Tracker_Upload extends Mage_Adminhtml_Block_Widget_Form_Container
30
  {
app/code/community/Mzax/Emarketing/Block/Tracker/Upload/Form.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Block_Tracker_Upload_Form extends Mage_Adminhtml_Block_Widget_Form
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Block_Tracker_Upload_Form extends Mage_Adminhtml_Block_Widget_Form
31
  {
app/code/community/Mzax/Emarketing/Block/Tracker/View.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Block/Unsubscribe.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Block_Unsubscribe extends Mage_Core_Block_Template
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Block_Unsubscribe extends Mage_Core_Block_Template
31
  {
app/code/community/Mzax/Emarketing/Db/Select.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Helper/Campaign.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Helper_Campaign extends Mage_Core_Helper_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Helper_Campaign extends Mage_Core_Helper_Abstract
30
  {
app/code/community/Mzax/Emarketing/Helper/Data.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Helper/Newsletter.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Helper_Newsletter extends Mage_Core_Helper_Abstract
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Helper_Newsletter extends Mage_Core_Helper_Abstract
31
  {
app/code/community/Mzax/Emarketing/Helper/Request.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Helper_Request extends Mage_Core_Helper_Abstract
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Helper_Request extends Mage_Core_Helper_Abstract
31
  {
app/code/community/Mzax/Emarketing/Helper/SqlFormatter.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Campaign.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -31,6 +31,7 @@
31
  * @method Mzax_Emarketing_Model_Campaign setCheckFrequency(string $value)
32
  * @method Mzax_Emarketing_Model_Campaign setLastCheck(string $value)
33
  * @method Mzax_Emarketing_Model_Campaign setMinResendInterval(string $value)
 
34
  * @method Mzax_Emarketing_Model_Campaign setAbtestEnable(string $value)
35
  * @method Mzax_Emarketing_Model_Campaign setAbtestTraffic(string $value)
36
  * @method Mzax_Emarketing_Model_Campaign setStoreId(string $value)
@@ -53,6 +54,7 @@
53
  * @method string getCheckFrequency()
54
  * @method string getLastCheck()
55
  * @method string getMinResendInterval()
 
56
  * @method string getAbtestEnable()
57
  * @method string getAbtestTraffic()
58
  * @method string getStoreId()
@@ -176,6 +178,10 @@ class Mzax_Emarketing_Model_Campaign
176
  protected function _construct()
177
  {
178
  $this->_init('mzax_emarketing/campaign');
 
 
 
 
179
  }
180
 
181
 
@@ -227,6 +233,13 @@ class Mzax_Emarketing_Model_Campaign
227
  if( $this->_variations ) {
228
  $this->_variations->save();
229
  }
 
 
 
 
 
 
 
230
  }
231
 
232
 
@@ -780,6 +793,24 @@ class Mzax_Emarketing_Model_Campaign
780
  //--------------------------------------------------------------------------
781
 
782
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
783
  /**
784
  * Try to bind recipients to goals
785
  *
@@ -1026,6 +1057,68 @@ class Mzax_Emarketing_Model_Campaign
1026
 
1027
 
1028
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1029
 
1030
 
1031
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
31
  * @method Mzax_Emarketing_Model_Campaign setCheckFrequency(string $value)
32
  * @method Mzax_Emarketing_Model_Campaign setLastCheck(string $value)
33
  * @method Mzax_Emarketing_Model_Campaign setMinResendInterval(string $value)
34
+ * @method Mzax_Emarketing_Model_Campaign setExpireTime(string $value)
35
  * @method Mzax_Emarketing_Model_Campaign setAbtestEnable(string $value)
36
  * @method Mzax_Emarketing_Model_Campaign setAbtestTraffic(string $value)
37
  * @method Mzax_Emarketing_Model_Campaign setStoreId(string $value)
54
  * @method string getCheckFrequency()
55
  * @method string getLastCheck()
56
  * @method string getMinResendInterval()
57
+ * @method string getExpireTime()
58
  * @method string getAbtestEnable()
59
  * @method string getAbtestTraffic()
60
  * @method string getStoreId()
178
  protected function _construct()
179
  {
180
  $this->_init('mzax_emarketing/campaign');
181
+ $this->setMinResendInterval(0);
182
+ $this->setCheckFrequency(720);
183
+ $this->setExpireTime(720);
184
+ $this->setIdentity('emarketing');
185
  }
186
 
187
 
233
  if( $this->_variations ) {
234
  $this->_variations->save();
235
  }
236
+
237
+ if( $variations = $this->getClonedVariations() ) {
238
+ foreach($variations as $variation) {
239
+ $variation->save();
240
+ }
241
+ $this->setClonedVariations(false);
242
+ }
243
  }
244
 
245
 
793
  //--------------------------------------------------------------------------
794
 
795
 
796
+ /**
797
+ * Check number of recipients
798
+ *
799
+ * @return integer
800
+ */
801
+ public function countRecipients()
802
+ {
803
+ $count = $this->getData('recipients_count');
804
+ if($count === null) {
805
+ $count = $this->getResource()->countRecipients($this);
806
+ $this->setData('recipients_count', $count);
807
+ }
808
+ return $count;
809
+ }
810
+
811
+
812
+
813
+
814
  /**
815
  * Try to bind recipients to goals
816
  *
1057
 
1058
 
1059
 
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+ //--------------------------------------------------------------------------
1067
+ //
1068
+ // Misc
1069
+ //
1070
+ //--------------------------------------------------------------------------
1071
+
1072
+
1073
+
1074
+ /**
1075
+ * Convert to campaign to encoded string
1076
+ *
1077
+ * @return string
1078
+ */
1079
+ public function export()
1080
+ {
1081
+ // set current extension version
1082
+ $this->setVersion(Mage::helper('mzax_emarketing')->getVersion());
1083
+
1084
+ $filterData = $this->getRecipientProvider()->export();
1085
+ $this->setFilterExport(Zend_Json::encode($filterData));
1086
+
1087
+ $json = $this->toJson(array(
1088
+ 'version',
1089
+ 'name',
1090
+ 'description',
1091
+ 'check_frequency',
1092
+ 'min_resend_interval',
1093
+ 'autologin',
1094
+ 'expire_time',
1095
+ 'provider',
1096
+ 'filter_export',
1097
+ 'medium',
1098
+ 'medium_json'));
1099
+
1100
+ return base64_encode($json);
1101
+ }
1102
+
1103
+
1104
+
1105
+ public function __clone()
1106
+ {
1107
+ $variations = array();
1108
+ foreach($this->getVariations() as $variation) {
1109
+ $newVariation = clone $variation;
1110
+ $newVariation->setCampaign($this);
1111
+ $variations[] = $newVariation;
1112
+ }
1113
+ $this->_variations = null;
1114
+
1115
+ $this->setDuplicateOf($this->getId());
1116
+ $this->setId(null);
1117
+ $this->setCreatedAt(null);
1118
+ $this->setUpdatedAt(null);
1119
+ $this->setClonedVariations($variations);
1120
+
1121
+ }
1122
 
1123
 
1124
  }
app/code/community/Mzax/Emarketing/Model/Campaign/Content.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Campaign/Preset.php ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Mzax Emarketing (www.mzax.de)
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this Extension in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @version 0.2.7
13
+ * @category Mzax
14
+ * @package Mzax_Emarketing
15
+ * @author Jacob Siefer (jacob@mzax.de)
16
+ * @copyright Copyright (c) 2015 Jacob Siefer
17
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
+ */
19
+
20
+
21
+
22
+ /**
23
+ *
24
+ * @method string getName()
25
+ * @method string getDescription()
26
+ * @method string getFile()
27
+ * @method string getFilename()
28
+ *
29
+ * @author Jacob Siefer
30
+ *
31
+ */
32
+ class Mzax_Emarketing_Model_Campaign_Preset extends Varien_Object
33
+ {
34
+
35
+
36
+ /**
37
+ * Validate the version of the preset
38
+ * against the installed extension version
39
+ *
40
+ * @return boolean
41
+ */
42
+ public function validateVersion()
43
+ {
44
+ if($version = $this->getVersion()) {
45
+ return (version_compare($version, Mage::helper('mzax_emarketing')->getVersion()) >= 0);
46
+ }
47
+ return true;
48
+ }
49
+
50
+
51
+
52
+ /**
53
+ * Make new campaign from this preset
54
+ *
55
+ * @return Mzax_Emarketing_Model_Campaign
56
+ */
57
+ public function makeCampaign()
58
+ {
59
+ /* @var $campaign Mzax_Emarketing_Model_Campaign */
60
+ $campaign = Mage::getModel('mzax_emarketing/campaign');
61
+ $campaign->addData($this->getData());
62
+ $campaign->setPreset($this);
63
+ $campaign->setName(null);
64
+
65
+ if( $provider = $campaign->getRecipientProvider() ) {
66
+ $provider->load($this->getFilterExport());
67
+ }
68
+
69
+ Mage::dispatchEvent('mzax_emarketing_preset_make_campaign', array(
70
+ 'preset' => $this,
71
+ 'campaign' => $campaign
72
+ ));
73
+
74
+ return $campaign;
75
+ }
76
+
77
+
78
+
79
+ /**
80
+ * Load by file
81
+ *
82
+ * @param string $file
83
+ * @return Mzax_Emarketing_Model_Campaign_Preset
84
+ */
85
+ public function loadByFile($file)
86
+ {
87
+ $this->_getResource()->loadByFile($this, $file);
88
+ return $this;
89
+
90
+ }
91
+
92
+
93
+ /**
94
+ * Load by filename
95
+ *
96
+ * @param string $name
97
+ * @return Mzax_Emarketing_Model_Campaign_Preset
98
+ */
99
+ public function load($name)
100
+ {
101
+ $this->_getResource()->load($this, $name);
102
+ return $this;
103
+ }
104
+
105
+
106
+
107
+
108
+ /**
109
+ * Retrieve resource model
110
+ *
111
+ * @return Mzax_Emarketing_Model_Resource_Campaign_Preset
112
+ */
113
+ protected function _getResource()
114
+ {
115
+ return Mage::getResourceSingleton('mzax_emarketing/campaign_preset');
116
+ }
117
+
118
+ }
app/code/community/Mzax/Emarketing/Model/Campaign/Variation.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -106,6 +106,9 @@ class Mzax_Emarketing_Model_Campaign_Variation
106
  if($this->_mediumData) {
107
  $this->setData('medium_json', $this->_mediumData->toJson());
108
  }
 
 
 
109
 
110
  parent::_beforeSave();
111
  }
@@ -219,6 +222,15 @@ class Mzax_Emarketing_Model_Campaign_Variation
219
  }
220
 
221
 
 
 
 
 
 
 
 
 
 
222
 
223
 
224
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
106
  if($this->_mediumData) {
107
  $this->setData('medium_json', $this->_mediumData->toJson());
108
  }
109
+ if($this->_campaign) {
110
+ $this->setCampaignId($this->_campaign->getId());
111
+ }
112
 
113
  parent::_beforeSave();
114
  }
222
  }
223
 
224
 
225
+
226
+
227
+ public function __clone()
228
+ {
229
+ $this->setDuplicateOf($this->getId());
230
+ $this->setId(null);
231
+ $this->setCreatedAt(null);
232
+ $this->setUpdatedAt(null);
233
+ }
234
 
235
 
236
  }
app/code/community/Mzax/Emarketing/Model/Conversion/Goal.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Conversion/Goal/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Conversion/Goal/Orders.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Model_Conversion_Goal_Orders
29
  extends Mzax_Emarketing_Model_Conversion_Goal_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Model_Conversion_Goal_Orders
29
  extends Mzax_Emarketing_Model_Conversion_Goal_Abstract
app/code/community/Mzax/Emarketing/Model/Conversion/Select.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Conversion/Tracker.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/DomainThrottle.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Email.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Form/Element/Ace.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Form/Element/Credits.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Form/Element/EmailEditor.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Form_Element_EmailEditor
31
  extends Mzax_Emarketing_Model_Form_Element_TemplateEditor
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Form_Element_EmailEditor
31
  extends Mzax_Emarketing_Model_Form_Element_TemplateEditor
app/code/community/Mzax/Emarketing/Model/Form/Element/Info.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Form/Element/TemplateEditor.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Form/Element/Textarea.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Form_Element_Textarea
30
  extends Varien_Data_Form_Element_Textarea
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Form_Element_Textarea
30
  extends Varien_Data_Form_Element_Textarea
app/code/community/Mzax/Emarketing/Model/Form/Element/Wildselect.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Form_Element_Wildselect
31
  extends Varien_Data_Form_Element_Multiselect
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Form_Element_Wildselect
31
  extends Varien_Data_Form_Element_Multiselect
app/code/community/Mzax/Emarketing/Model/Goal.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -40,7 +40,7 @@
40
  *
41
  * @author Jacob Siefer
42
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
43
- * @version 0.2.6
44
  */
45
  class Mzax_Emarketing_Model_Goal extends Mage_Core_Model_Abstract
46
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
40
  *
41
  * @author Jacob Siefer
42
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
43
+ * @version 0.2.7
44
  */
45
  class Mzax_Emarketing_Model_Goal extends Mage_Core_Model_Abstract
46
  {
app/code/community/Mzax/Emarketing/Model/Inbox.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Model_Inbox
29
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Model_Inbox
29
  {
app/code/community/Mzax/Emarketing/Model/Inbox/Bounce/Detector/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Inbox/Bounce/Detector/Recipient.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Inbox/Bounce/Detector/Store.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -26,7 +26,7 @@
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
- * @version 0.2.6
30
  */
31
  class Mzax_Emarketing_Model_Inbox_Bounce_Detector_Store
32
  extends Mzax_Emarketing_Model_Inbox_Bounce_Detector_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
+ * @version 0.2.7
30
  */
31
  class Mzax_Emarketing_Model_Inbox_Bounce_Detector_Store
32
  extends Mzax_Emarketing_Model_Inbox_Bounce_Detector_Abstract
app/code/community/Mzax/Emarketing/Model/Inbox/Bounce/Detector/Unsubscribe.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Model_Inbox_Bounce_Detector_Unsubscribe
29
  extends Mzax_Emarketing_Model_Inbox_Bounce_Detector_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Model_Inbox_Bounce_Detector_Unsubscribe
29
  extends Mzax_Emarketing_Model_Inbox_Bounce_Detector_Abstract
app/code/community/Mzax/Emarketing/Model/Inbox/Email.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Inbox/Email/Collector.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Inbox_Email_Collector
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Inbox_Email_Collector
30
  {
app/code/community/Mzax/Emarketing/Model/Inbox/Email/Pull/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  abstract class Mzax_Emarketing_Model_Inbox_Email_Pull_Abstract extends Varien_Object
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  abstract class Mzax_Emarketing_Model_Inbox_Email_Pull_Abstract extends Varien_Object
30
  {
app/code/community/Mzax/Emarketing/Model/Inbox/Email/Pull/Storage.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Inbox_Email_Pull_Storage
30
  extends Mzax_Emarketing_Model_Inbox_Email_Pull_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Inbox_Email_Pull_Storage
30
  extends Mzax_Emarketing_Model_Inbox_Email_Pull_Abstract
app/code/community/Mzax/Emarketing/Model/Link.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Link/Reference.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -29,7 +29,7 @@
29
  *
30
  * @author Jacob Siefer
31
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
32
- * @version 0.2.6
33
  */
34
  class Mzax_Emarketing_Model_Link_Reference extends Mage_Core_Model_Abstract
35
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
29
  *
30
  * @author Jacob Siefer
31
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
32
+ * @version 0.2.7
33
  */
34
  class Mzax_Emarketing_Model_Link_Reference extends Mage_Core_Model_Abstract
35
  {
app/code/community/Mzax/Emarketing/Model/Medium.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Medium implements Mage_Eav_Model_Entity_Attribute_Source_Interface
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Medium implements Mage_Eav_Model_Entity_Attribute_Source_Interface
31
  {
app/code/community/Mzax/Emarketing/Model/Medium/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  abstract class Mzax_Emarketing_Model_Medium_Abstract
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  abstract class Mzax_Emarketing_Model_Medium_Abstract
31
  {
app/code/community/Mzax/Emarketing/Model/Medium/Email.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Medium_Email extends Mzax_Emarketing_Model_Medium_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Medium_Email extends Mzax_Emarketing_Model_Medium_Abstract
30
  {
app/code/community/Mzax/Emarketing/Model/Medium/Email/Composer.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Medium_Email_Composer
30
  extends Mage_Core_Model_Template
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Medium_Email_Composer
30
  extends Mage_Core_Model_Template
app/code/community/Mzax/Emarketing/Model/Medium/Email/Filter.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Medium_Email_Filter
30
  extends Mage_Widget_Model_Template_Filter
@@ -83,4 +83,24 @@ class Mzax_Emarketing_Model_Medium_Email_Filter
83
  }
84
 
85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Medium_Email_Filter
30
  extends Mage_Widget_Model_Template_Filter
83
  }
84
 
85
 
86
+
87
+ /**
88
+ * Filter the string as template.
89
+ * Rewrited for logging exceptions
90
+ *
91
+ * @param string $value
92
+ * @return string
93
+ */
94
+ public function filter($value)
95
+ {
96
+ try {
97
+ $value = Varien_Filter_Template::filter($value);
98
+ }
99
+ catch (Exception $e) {
100
+ throw $e;
101
+ //$value = '';
102
+ //Mage::logException($e);
103
+ }
104
+ return $value;
105
+ }
106
  }
app/code/community/Mzax/Emarketing/Model/Medium/Email/Processor.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Medium_Email_Processor
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Medium_Email_Processor
30
  {
app/code/community/Mzax/Emarketing/Model/Medium/Email/Snippets.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Medium_Email_Snippets
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Medium_Email_Snippets
30
  {
app/code/community/Mzax/Emarketing/Model/Object/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Address.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Collection.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Collection/Item.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  * @see Mzax_Emarketing_Model_Object_Collection::getNewEmptyItem()
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Object_Collection_Item extends Varien_Object
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  * @see Mzax_Emarketing_Model_Object_Collection::getNewEmptyItem()
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Object_Collection_Item extends Varien_Object
31
  {
app/code/community/Mzax/Emarketing/Model/Object/Customer.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Customer/Address.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Object_Customer_Address extends Mzax_Emarketing_Model_Object_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Object_Customer_Address extends Mzax_Emarketing_Model_Object_Abstract
30
  {
app/code/community/Mzax/Emarketing/Model/Object/Filter.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -118,37 +118,51 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Abstract extends Mzax_Emarket
118
  /**
119
  * Add child filter
120
  *
121
- * @param mixed $filter
122
  * @return Mzax_Emarketing_Model_Object_Filter_Abstract
123
  */
124
- public function addFilter($filter, $quite = true)
125
  {
126
- if(is_string($filter)) {
127
- $instance = self::getFilterFactory()->factory($filter);
128
- if(!$instance) {
129
  if(!$quite) {
130
  throw new Mage_Exception(Mage::helper('mzax_emarketing')->__('Failed to initialise filter with type “%s”. This filter might not be installed on your system.', $filter['type']));
131
  }
132
  return null;
133
  }
134
- $filter = $instance;
135
  }
136
- else if(is_array($filter) && isset($filter['type'])) {
137
- $instance = self::getFilterFactory()->factory($filter['type']);
138
- if(!$instance) {
139
  if(!$quite) {
140
  throw new Mage_Exception(Mage::helper('mzax_emarketing')->__('Failed to initialise filter with type “%s”. This filter might not be installed on your system.', $filter['type']));
141
  }
142
  return null;
143
  }
144
- $instance->load($filter);
145
- $filter = $instance;
146
  }
 
 
 
 
147
  if(!$filter instanceof Mzax_Emarketing_Model_Object_Filter_Abstract) {
148
  return null;
149
  }
 
 
 
 
 
 
 
 
150
  $this->_filters[] = $filter->setParent($this);
151
  $filter->setId($this->getId() . '--' . count($this->_filters));
 
 
 
 
 
152
  return $filter;
153
  }
154
 
@@ -412,6 +426,17 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Abstract extends Mzax_Emarket
412
  }
413
 
414
 
 
 
 
 
 
 
 
 
 
 
 
415
 
416
 
417
  /**
@@ -661,6 +686,25 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Abstract extends Mzax_Emarket
661
 
662
 
663
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
664
 
665
  /**
666
  * Helper for simple select element
@@ -888,8 +932,8 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Abstract extends Mzax_Emarket
888
  $future = $this->getTimeDirection($key);
889
  }
890
 
891
- $from = (int) $this->getData($fromKey);
892
- $to = (int) $this->getData($toKey);
893
  $unit = (string) $this->getData($unitKey);
894
  // days => DAY, weeks => WEEK,...
895
  $unit = substr(strtoupper($unit), 0, -1);
@@ -1095,7 +1139,7 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Abstract extends Mzax_Emarket
1095
 
1096
  protected function getTimeExpr($key, $field, $substract = false)
1097
  {
1098
- $value = (int) $this->getData("{$key}_value");
1099
  $unit = (string) $this->getData("{$key}_unit");
1100
 
1101
  $unit = substr(strtoupper($unit), 0, -1);
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
118
  /**
119
  * Add child filter
120
  *
121
+ * @param mixed $param
122
  * @return Mzax_Emarketing_Model_Object_Filter_Abstract
123
  */
124
+ public function addFilter($param, $quite = true)
125
  {
126
+ if(is_string($param)) {
127
+ $filter = self::getFilterFactory()->factory($param);
128
+ if(!$filter) {
129
  if(!$quite) {
130
  throw new Mage_Exception(Mage::helper('mzax_emarketing')->__('Failed to initialise filter with type “%s”. This filter might not be installed on your system.', $filter['type']));
131
  }
132
  return null;
133
  }
 
134
  }
135
+ else if(is_array($param) && isset($param['type'])) {
136
+ $filter = self::getFilterFactory()->factory($param['type']);
137
+ if(!$filter) {
138
  if(!$quite) {
139
  throw new Mage_Exception(Mage::helper('mzax_emarketing')->__('Failed to initialise filter with type “%s”. This filter might not be installed on your system.', $filter['type']));
140
  }
141
  return null;
142
  }
 
 
143
  }
144
+ else {
145
+ $filter = $param;
146
+ }
147
+
148
  if(!$filter instanceof Mzax_Emarketing_Model_Object_Filter_Abstract) {
149
  return null;
150
  }
151
+
152
+ if(!$this->acceptFilter($filter)) {
153
+ if(!$quite) {
154
+ throw new Mage_Exception(Mage::helper('mzax_emarketing')->__('Filter of type “%s” does not allow child of type %s.', $this->getType(), $filter->getType()));
155
+ }
156
+ return null;
157
+ }
158
+
159
  $this->_filters[] = $filter->setParent($this);
160
  $filter->setId($this->getId() . '--' . count($this->_filters));
161
+
162
+ if(is_array($param)) {
163
+ $filter->load($param);
164
+ }
165
+
166
  return $filter;
167
  }
168
 
426
  }
427
 
428
 
429
+ /**
430
+ * Retreive data for export
431
+ *
432
+ * @return array
433
+ */
434
+ public function export()
435
+ {
436
+ return $this->asArray();
437
+ }
438
+
439
+
440
 
441
 
442
  /**
686
 
687
 
688
 
689
+ /**
690
+ * Add hidden input field
691
+ *
692
+ * @param string $name
693
+ * @param string $value
694
+ * @return Varien_Data_Form_Element_Abstract
695
+ */
696
+ protected function getHiddenField($name, $value)
697
+ {
698
+ return $this->getForm()->addField($name, 'hidden', array(
699
+ 'name' => $name,
700
+ 'class' => 'hidden',
701
+ 'no_span' => true,
702
+ 'is_meta' => true,
703
+ 'value' => $value
704
+ ));
705
+ }
706
+
707
+
708
 
709
  /**
710
  * Helper for simple select element
932
  $future = $this->getTimeDirection($key);
933
  }
934
 
935
+ $from = (float) $this->getData($fromKey);
936
+ $to = (float) $this->getData($toKey);
937
  $unit = (string) $this->getData($unitKey);
938
  // days => DAY, weeks => WEEK,...
939
  $unit = substr(strtoupper($unit), 0, -1);
1139
 
1140
  protected function getTimeExpr($key, $field, $substract = false)
1141
  {
1142
+ $value = (float) $this->getData("{$key}_value");
1143
  $unit = (string) $this->getData("{$key}_unit");
1144
 
1145
  $unit = substr(strtoupper($unit), 0, -1);
app/code/community/Mzax/Emarketing/Model/Object/Filter/Address/City.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Address/Country.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Address/Postcode.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Address/Region.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Address/Street.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Attribute.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -31,7 +31,7 @@
31
  *
32
  * @author Jacob Siefer
33
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
34
- * @version 0.2.6
35
  */
36
  abstract class Mzax_Emarketing_Model_Object_Filter_Attribute
37
  extends Mzax_Emarketing_Model_Object_Filter_Abstract
@@ -69,7 +69,7 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Attribute
69
 
70
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
71
  {
72
- return $this->_acceptParent($parent, $this->_requireBinding);
73
  }
74
 
75
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
31
  *
32
  * @author Jacob Siefer
33
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
34
+ * @version 0.2.7
35
  */
36
  abstract class Mzax_Emarketing_Model_Object_Filter_Attribute
37
  extends Mzax_Emarketing_Model_Object_Filter_Abstract
69
 
70
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
71
  {
72
+ return $parent->hasBinding($this->_requireBinding);
73
  }
74
 
75
 
app/code/community/Mzax/Emarketing/Model/Object/Filter/Campaign/Goal.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Campaign/Recipient/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Campaign/Recipient/Interact.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Column.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -49,7 +49,7 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Column
49
 
50
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
51
  {
52
- return $this->_acceptParent($parent, $this->_requireBinding);
53
  }
54
 
55
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
49
 
50
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
51
  {
52
+ return $parent->hasBinding($this->_requireBinding);
53
  }
54
 
55
 
app/code/community/Mzax/Emarketing/Model/Object/Filter/Combine.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -34,19 +34,6 @@ class Mzax_Emarketing_Model_Object_Filter_Combine
34
 
35
 
36
 
37
- /**
38
- * This filter does not provide its own object
39
- * instead it always uses its parents one
40
- *
41
- * @return boolean
42
- */
43
- public function hasOwnObject()
44
- {
45
- return false;
46
- }
47
-
48
-
49
-
50
 
51
  /**
52
  * Works with all parents
@@ -61,6 +48,16 @@ class Mzax_Emarketing_Model_Object_Filter_Combine
61
 
62
 
63
 
 
 
 
 
 
 
 
 
 
 
64
 
65
  /**
66
  * Retrieve final filter query that unites all id filter queries
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
34
 
35
 
36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
  /**
39
  * Works with all parents
48
 
49
 
50
 
51
+ public function acceptChild(Mzax_Emarketing_Model_Object_Filter_Component $child)
52
+ {
53
+ if($this->_parent) {
54
+ return $this->_parent->acceptChild($child);
55
+ }
56
+ return true;
57
+ }
58
+
59
+
60
+
61
 
62
  /**
63
  * Retrieve final filter query that unites all id filter queries
app/code/community/Mzax/Emarketing/Model/Object/Filter/Component.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -83,34 +83,6 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Component extends Varien_Obje
83
  }
84
 
85
 
86
- /**
87
- * Wheather the filter has own object
88
- * or uses the parents object only
89
- *
90
- * @return boolean
91
- */
92
- public function hasOwnObject()
93
- {
94
- return $this->_allowChildren;
95
- }
96
-
97
-
98
- /**
99
- * Allow children to reuse bindings even if this
100
- * filter already uses them
101
- *
102
- * Be default never
103
- *
104
- * @param string $binding
105
- * @return boolean
106
- */
107
- public function allowChildBinding($binding)
108
- {
109
- return false;
110
- }
111
-
112
-
113
-
114
 
115
  /**
116
  * Retrieve Expresion used for current time
@@ -258,21 +230,6 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Component extends Varien_Obje
258
 
259
 
260
 
261
- /**
262
- *
263
- * @return Mzax_Emarketing_Model_Object_Collection
264
- *//*
265
- public function getCollection()
266
- {
267
- if(!$this->_collection) {
268
- $this->_collection = $this->getParentObject()->getCollection();
269
- $this->_prepareCollection($this->_collection);
270
- }
271
- return $this->_collection;
272
- }
273
- */
274
-
275
-
276
 
277
 
278
  /**
@@ -437,51 +394,54 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Component extends Varien_Obje
437
 
438
 
439
 
 
 
 
 
 
 
 
 
 
 
440
 
441
 
442
- public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
 
 
 
 
 
 
 
 
 
 
 
 
443
  {
444
- return false;
 
 
 
445
  }
446
-
 
447
 
448
  /**
449
- * Helper method to if filter can accept parent using bindings
450
  *
451
  * @param Mzax_Emarketing_Model_Object_Filter_Component $parent
452
- * @param string $binding
453
- * @return boolean|Ambigous <boolean, mixed>
454
  */
455
- protected function _acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent, $binding)
456
  {
457
- $bindngs = func_get_args();
458
- array_shift($bindngs);
459
-
460
- foreach($bindngs as $binding) {
461
- // parent may allow to reuse filters for certain bindings
462
- if(!$parent->allowChildBinding($binding))
463
- {
464
- /* @var $ancestor Mzax_Emarketing_Model_Object_Filter_Component */
465
- foreach($parent->getAncestors() as $ancestor) {
466
- // skip all filtes that only pass down objects
467
- if(!$ancestor->hasOwnObject()) {
468
- continue;
469
- }
470
- // stop if ancestor filter already has binding
471
- if($ancestor->hasBinding($binding)) {
472
- continue 2;
473
- }
474
- break;
475
- }
476
- }
477
- if($parent->hasBinding($binding)) {
478
- return true;
479
- }
480
- }
481
  return false;
482
  }
483
 
484
 
 
 
485
  /**
486
  * Retrieve id filter name
487
  *
@@ -522,7 +482,7 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Component extends Varien_Obje
522
 
523
  /* @var $filter Mzax_Emarketing_Model_Object_Filter_Abstract */
524
  foreach($filters as $name => $filter) {
525
- if($filter->acceptParent($this)) {
526
  foreach($filter->getOptions() as $key => $title) {
527
  $result[$key] = $title;
528
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
83
  }
84
 
85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
 
87
  /**
88
  * Retrieve Expresion used for current time
230
 
231
 
232
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
233
 
234
 
235
  /**
394
 
395
 
396
 
397
+ /**
398
+ * Both parent and child need to accept
399
+ *
400
+ * @param Mzax_Emarketing_Model_Object_Filter_Component $filter
401
+ * @return boolean
402
+ */
403
+ public function acceptFilter(Mzax_Emarketing_Model_Object_Filter_Component $filter)
404
+ {
405
+ return $filter->acceptParent($this) && $this->acceptChild($filter);
406
+ }
407
 
408
 
409
+
410
+ /**
411
+ * Accept child
412
+ *
413
+ * By default we can accept all childs, however if the parent
414
+ * already accepts this child then skip it to prevent useless nesting.
415
+ *
416
+ * Sometimes this is unwanted, in that case overwrite this method
417
+ *
418
+ * @param Mzax_Emarketing_Model_Object_Filter_Component $child
419
+ * @return boolean
420
+ */
421
+ public function acceptChild(Mzax_Emarketing_Model_Object_Filter_Component $child)
422
  {
423
+ if($this->_parent) {
424
+ return !$child->acceptParent($this->_parent);
425
+ }
426
+ return true;
427
  }
428
+
429
+
430
 
431
  /**
432
+ * Accept parent
433
  *
434
  * @param Mzax_Emarketing_Model_Object_Filter_Component $parent
435
+ * @return boolean
 
436
  */
437
+ public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
438
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
439
  return false;
440
  }
441
 
442
 
443
+
444
+
445
  /**
446
  * Retrieve id filter name
447
  *
482
 
483
  /* @var $filter Mzax_Emarketing_Model_Object_Filter_Abstract */
484
  foreach($filters as $name => $filter) {
485
+ if($this->acceptFilter($filter)) {
486
  foreach($filter->getOptions() as $key => $title) {
487
  $result[$key] = $title;
488
  }
app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -29,7 +29,7 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Customer_Abstract
29
 
30
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
31
  {
32
- return $this->_acceptParent($parent, 'customer_id');
33
  }
34
 
35
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
29
 
30
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
31
  {
32
+ return $parent->hasBinding('customer_id');
33
  }
34
 
35
 
app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Address.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Address/Attribute.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Attribute.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Event.php ADDED
@@ -0,0 +1,313 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Mzax Emarketing (www.mzax.de)
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this Extension in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @version 0.2.7
13
+ * @category Mzax
14
+ * @package Mzax_Emarketing
15
+ * @author Jacob Siefer (jacob@mzax.de)
16
+ * @copyright Copyright (c) 2015 Jacob Siefer
17
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
+ */
19
+
20
+
21
+
22
+ /**
23
+ *
24
+ * Listen to 'mzax_emarketing_email_filter_prepare_customer_events' to add
25
+ * your own customer event filters
26
+ *
27
+ * @method Mzax_Emarketing_Model_Object_Filter_Customer_Event setName(string $value)
28
+ * @method Mzax_Emarketing_Model_Object_Filter_Customer_Event setAggregator(string $value)
29
+ * @method Mzax_Emarketing_Model_Object_Filter_Customer_Event setExpectation(string $value)
30
+ * @method Mzax_Emarketing_Model_Object_Filter_Customer_Event setEventDateTo(string $value)
31
+ * @method Mzax_Emarketing_Model_Object_Filter_Customer_Event setEventDateFrom(string $value)
32
+ * @method Mzax_Emarketing_Model_Object_Filter_Customer_Event setEventDateUnit(string $value)
33
+ *
34
+ *
35
+ * @author Jacob Siefer
36
+ *
37
+ */
38
+ class Mzax_Emarketing_Model_Object_Filter_Customer_Event
39
+ extends Mzax_Emarketing_Model_Object_Filter_Customer_Abstract
40
+ {
41
+
42
+
43
+ const DEFAULT_AGGREGATOR = 'all';
44
+
45
+ const DEFAULT_EXPECTATION = 'true';
46
+
47
+
48
+ /**
49
+ *
50
+ * @var stdClass
51
+ */
52
+ protected $_event;
53
+
54
+
55
+ /**
56
+ *
57
+ * @var array
58
+ */
59
+ protected $_events = array();
60
+
61
+
62
+ /**
63
+ *
64
+ * @var array
65
+ */
66
+ protected $_eventTypeIds;
67
+
68
+
69
+ /**
70
+ *
71
+ * @var boolean
72
+ */
73
+ protected $_allowChildren = true;
74
+
75
+
76
+
77
+ public function getTitle()
78
+ {
79
+ return "Customer";
80
+ }
81
+
82
+
83
+
84
+ /**
85
+ *
86
+ * (non-PHPdoc)
87
+ * @see Mzax_Emarketing_Model_Object_Filter_Abstract::_prepareFilter($config)
88
+ */
89
+ protected function _prepareFilter(Mage_Core_Model_Config_Element $config)
90
+ {
91
+ parent::_prepareFilter($config);
92
+ $this->_registerEvents();
93
+ Mage::dispatchEvent("mzax_emarketing_email_filter_prepare_customer_events", array('filter' => $this));
94
+ }
95
+
96
+
97
+
98
+
99
+ public function _registerEvents()
100
+ {
101
+ $view = $this->addEvent('catalog_product_view');
102
+ $view->label = $this->__('Customer viewed product ... ago.');
103
+ $view->form = $this->__('Customer viewed product %s ago that matches %s of these conditions %s:');
104
+
105
+ $friend = $this->addEvent('sendfriend_product');
106
+ $friend->label = $this->__('Customer sent product to a friend ... ago.');
107
+ $friend->form = $this->__('Customer sent product to a friend %s ago that matches %s of these conditions %s:');
108
+
109
+ $cart = $this->addEvent('checkout_cart_add_product');
110
+ $cart->label = $this->__('Customer added product to cart ... ago.');
111
+ $cart->form = $this->__('Customer added product to cart %s ago that matches %s of these conditions %s:');
112
+
113
+ $wishlist = $this->addEvent('wishlist_add_product');
114
+ $wishlist->label = $this->__('Customer added product to wishlist ... ago.');
115
+ $wishlist->form = $this->__('Customer added product to wishlist %s ago that matches %s of these conditions %s:');
116
+
117
+ }
118
+
119
+
120
+
121
+
122
+ /**
123
+ * Use product object
124
+ *
125
+ * @return Mzax_Emarketing_Model_Object_Product
126
+ */
127
+ public function getObject()
128
+ {
129
+ return Mage::getSingleton('mzax_emarketing/object_product');
130
+ }
131
+
132
+
133
+
134
+
135
+ protected function _prepareQuery(Mzax_Emarketing_Db_Select $query)
136
+ {
137
+ $event = $this->getEvent();
138
+
139
+ $conditions = $this->_getConditions();
140
+ $aggregator = $this->getDataSetDefault('aggregator', self::DEFAULT_AGGREGATOR);
141
+ $expectation = $this->getDataSetDefault('expectation', self::DEFAULT_EXPECTATION);
142
+
143
+
144
+ $query->useTemporaryTable($this->getTempTableName());
145
+ $query->joinTable(array('subject_id' => '{customer_id}'), 'reports/event', 'event');
146
+ if(!empty($conditions)) {
147
+ $select = $this->_combineConditions($conditions, $aggregator, $expectation);
148
+ $query->joinSelect(array('id' => '`event`.`object_id`'), $select, 'filter');
149
+ }
150
+ $query->where('`event`.`subtype` = 0'); // subject type = customer
151
+ $query->where('`event`.`event_type_id` = ?', $event->typeId);
152
+ $query->where($this->getTimeRangeExpr('`event`.`logged_at`', 'event_date', false));
153
+
154
+ if($storeId = $this->getParam('store_id')) {
155
+ $query->where('`event`.`store_id` = ?', $storeId);
156
+ }
157
+
158
+ $query->group();
159
+ }
160
+
161
+
162
+ protected function _prepareCollection(Mzax_Emarketing_Model_Object_Collection $collection)
163
+ {
164
+ parent::_prepareCollection($collection);
165
+ $collection->addField('event_date', new Zend_Db_Expr('MAX(`event`.`logged_at`)'));
166
+ }
167
+
168
+
169
+
170
+ public function prepareGridColumns(Mzax_Emarketing_Block_Filter_Object_Grid $grid)
171
+ {
172
+ parent::prepareGridColumns($grid);
173
+
174
+ $grid->addColumn('event_date', array(
175
+ 'header' => $this->__('Event Date'),
176
+ 'width' => '180px',
177
+ 'index' => 'event_date',
178
+ 'gmtoffset' => true,
179
+ 'type' =>'datetime'
180
+ ));
181
+ }
182
+
183
+
184
+
185
+
186
+
187
+
188
+ /**
189
+ * Add new event
190
+ *
191
+ * @param string $eventName
192
+ * @return stdClass
193
+ */
194
+ public function addEvent($eventName)
195
+ {
196
+ $event = new stdClass();
197
+ $event->name = $eventName;
198
+ $event->typeId = $this->getEventTypeId($eventName);
199
+ $this->_events[$eventName] = $event;
200
+ return $event;
201
+ }
202
+
203
+
204
+
205
+
206
+
207
+
208
+ /**
209
+ * html for settings in option form
210
+ *
211
+ * @return string
212
+ */
213
+ protected function prepareForm()
214
+ {
215
+ $event = $this->getEvent();
216
+
217
+ if(!$event) {
218
+ return $this->__("No such event defined (%s)", $this->getName());
219
+ }
220
+
221
+ $aggregatorElment = $this->getSelectElement('aggregator', self::DEFAULT_AGGREGATOR);
222
+ $expectationElment = $this->getSelectElement('expectation', self::DEFAULT_EXPECTATION);
223
+
224
+ $html = $this->getHiddenField('name', $event->name)->toHtml();
225
+
226
+ return $html . $this->__($event->form,
227
+ $this->getTimeRangeHtml('event_date'),
228
+ $aggregatorElment->toHtml(),
229
+ $expectationElment->toHtml()
230
+ );
231
+ }
232
+
233
+
234
+
235
+
236
+ /**
237
+ * Retrieve current event
238
+ *
239
+ * @return stdClass
240
+ */
241
+ public function getEvent()
242
+ {
243
+ if( $this->_event === null) {
244
+ $eventName = $this->getName();
245
+ if(isset($this->_events[$eventName])) {
246
+ $this->_event = $this->_events[$eventName];
247
+ }
248
+ }
249
+ return $this->_event;
250
+ }
251
+
252
+
253
+
254
+
255
+ /**
256
+ *
257
+ * (non-PHPdoc)
258
+ * @see Mzax_Emarketing_Model_Object_Filter_Abstract::getOptions()
259
+ */
260
+ public function getOptions()
261
+ {
262
+ $title = $this->getTitle();
263
+ $type = $this->getType();
264
+ $options = array();
265
+
266
+ foreach($this->_events as $event)
267
+ {
268
+ $options[$type.'?name=' . $event->name] = "{$title} | {$event->label}";
269
+ }
270
+
271
+ asort($options);
272
+ return $options;
273
+ }
274
+
275
+
276
+
277
+
278
+
279
+ /**
280
+ * Retrieve event type id by event name
281
+ *
282
+ * @param string $name
283
+ * @return number
284
+ */
285
+ protected function getEventTypeId($name)
286
+ {
287
+ $typeIds = $this->getEventTypeIds();
288
+
289
+ if(isset($typeIds[$name])) {
290
+ return (int) $typeIds[$name];
291
+ }
292
+ return 0;
293
+ }
294
+
295
+
296
+
297
+ /**
298
+ * Retrieve event name => id hash
299
+ *
300
+ * @return array
301
+ */
302
+ protected function getEventTypeIds()
303
+ {
304
+ if($this->_eventTypeIds === null) {
305
+ $select = $this->_select('reports/event_type', null, array('event_name', 'event_type_id'));
306
+ $this->_eventTypeIds = $this->_getReadAdapter()->fetchPairs($select);
307
+ }
308
+ return $this->_eventTypeIds;
309
+ }
310
+
311
+
312
+
313
+ }
app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Lastlogin.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Name.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Customer/Order.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -42,7 +42,7 @@ class Mzax_Emarketing_Model_Object_Filter_Customer_Order
42
  */
43
  public function getTitle()
44
  {
45
- return "Customer | Has order(s)...";
46
  }
47
 
48
 
@@ -80,25 +80,31 @@ class Mzax_Emarketing_Model_Object_Filter_Customer_Order
80
 
81
  $select = $this->_combineConditions($conditions, $aggregator, $expectation);
82
 
83
- /* Check if we are looking for customer with no orders,
84
- * Use current query object and alter it without breaking the query structure as
85
- * we need to union the result with the sub filters
86
- */
87
  if($this->checkIfMatchZero('orders')) {
88
 
89
  $customerId = new Zend_Db_Expr('`customer`.`entity_id`');
 
 
90
  $zeroOrderQuery = $this->getQuery();
91
- $zeroOrderQuery->joinRight(array('entity_id' => '{customer_id}'), 'customer/entity', 'customer');
92
- $zeroOrderQuery->where('{order_id} IS NULL');
93
- $zeroOrderQuery->addColumn('customer_id', $customerId);
94
- $zeroOrderQuery->group($customerId);
95
- $select = $this->_select()->union(array($zeroOrderQuery->getSelect(), $select));
 
 
 
 
 
96
  }
97
-
 
 
98
  $select->useTemporaryTable($this->getTempTableName());
99
 
 
100
  $query->joinSelect('customer_id', $select, 'filter', 'customer_id');
101
- $query->having($this->getWhereSql('orders', 'COUNT(`order_id`)'));
102
  $query->group();
103
  }
104
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
42
  */
43
  public function getTitle()
44
  {
45
+ return "Customer | If number of orders,...";
46
  }
47
 
48
 
80
 
81
  $select = $this->_combineConditions($conditions, $aggregator, $expectation);
82
 
83
+ // Check if we are looking for customer with no orders
 
 
 
84
  if($this->checkIfMatchZero('orders')) {
85
 
86
  $customerId = new Zend_Db_Expr('`customer`.`entity_id`');
87
+
88
+ // Query with all orders + customers with out any orders
89
  $zeroOrderQuery = $this->getQuery();
90
+ $zeroOrderQuery->joinTableRight(array('entity_id' => '{customer_id}'), 'customer/entity', 'customer');
91
+ $zeroOrderQuery->setColumn('matches', new Zend_Db_Expr('0'));
92
+ $zeroOrderQuery->setColumn('customer_id', $customerId);
93
+ $zeroOrderQuery->group($customerId, true);
94
+
95
+ $select = $this->_select()->union(array($zeroOrderQuery, $select));
96
+
97
+ // count customer_id AS order_id maybe NULL
98
+ // reduce by 1 as we added zero order results as well.
99
+ $query->having($this->getWhereSql('orders', 'COUNT({customer_id})-1'));
100
  }
101
+ else {
102
+ $query->having($this->getWhereSql('orders', 'COUNT(`filter`.`order_id`)'));
103
+ }
104
  $select->useTemporaryTable($this->getTempTableName());
105
 
106
+
107
  $query->joinSelect('customer_id', $select, 'filter', 'customer_id');
 
108
  $query->group();
109
  }
110
 
app/code/community/Mzax/Emarketing/Model/Object/Filter/Main.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -27,19 +27,6 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Main extends Mzax_Emarketing_
27
  return '1';
28
  }
29
 
30
-
31
-
32
- /**
33
- * A main filter object should always provide
34
- * its own object
35
- *
36
- * @return boolean
37
- */
38
- public function hasOwnObject()
39
- {
40
- return true;
41
- }
42
-
43
 
44
  /**
45
  * Has any filters been added?
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
27
  return '1';
28
  }
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
  /**
32
  * Has any filters been added?
app/code/community/Mzax/Emarketing/Model/Object/Filter/Newsletter.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -18,11 +18,22 @@
18
  */
19
 
20
 
 
 
 
 
 
 
 
 
 
 
 
21
  class Mzax_Emarketing_Model_Object_Filter_Newsletter
22
  extends Mzax_Emarketing_Model_Object_Filter_Abstract
23
  {
24
 
25
- const DEFAULT_STATUS = 1;
26
  const DEFAULT_CONDITION = 'is';
27
 
28
 
@@ -37,7 +48,6 @@ class Mzax_Emarketing_Model_Object_Filter_Newsletter
37
 
38
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
39
  {
40
- return $this->_acceptParent($parent, 'customer_id', 'subscriber_id', 'subscriber_status');
41
  return $parent->hasBinding('customer_id', 'subscriber_id', 'subscriber_status');
42
  }
43
 
@@ -141,38 +151,5 @@ class Mzax_Emarketing_Model_Object_Filter_Newsletter
141
 
142
 
143
 
144
-
145
-
146
-
147
- /*
148
- protected function _prepareCollection(Mzax_Emarketing_Model_Object_Collection $collection)
149
- {
150
- parent::_prepareCollection($collection);
151
-
152
- if(!$collection->hasBinding('subscriber_status'))
153
- {
154
- if($collection->hasBinding('subscriber_id')) {
155
- $collection->getQuery()->joinLeft('subscriber_id', 'newsletter/subscriber', 'subscriber');
156
- }
157
- else if($collection->hasBinding('customer_id')) {
158
- $collection->getQuery()->joinLeft('customer_id', 'newsletter/subscriber', 'subscriber');
159
- }
160
- $collection->addField('newsletter_status', 'subscriber.subscriber_status');
161
- }
162
- else {
163
- $collection->addField('newsletter_status', 'subscriber_status');
164
- }
165
-
166
- return $collection;
167
- }
168
-
169
- */
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
 
178
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
18
  */
19
 
20
 
21
+
22
+ /**
23
+ * Simple newsletter status filter
24
+ *
25
+ * @method Mzax_Emarketing_Model_Object_Filter_Newsletter setCondition(string $value)
26
+ * @method Mzax_Emarketing_Model_Object_Filter_Newsletter setStatus(string $value)
27
+ *
28
+ * @author Jacob Siefer
29
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
30
+ * @version 0.2.7
31
+ */
32
  class Mzax_Emarketing_Model_Object_Filter_Newsletter
33
  extends Mzax_Emarketing_Model_Object_Filter_Abstract
34
  {
35
 
36
+ const DEFAULT_STATUS = Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
37
  const DEFAULT_CONDITION = 'is';
38
 
39
 
48
 
49
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
50
  {
 
51
  return $parent->hasBinding('customer_id', 'subscriber_id', 'subscriber_status');
52
  }
53
 
151
 
152
 
153
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
 
155
  }
app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  abstract class Mzax_Emarketing_Model_Object_Filter_Order_Abstract
30
  extends Mzax_Emarketing_Model_Object_Filter_Abstract
@@ -33,9 +33,10 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Order_Abstract
33
 
34
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
35
  {
36
- return $this->_acceptParent($parent, 'order_id');
37
  }
38
 
39
 
 
40
 
41
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  abstract class Mzax_Emarketing_Model_Object_Filter_Order_Abstract
30
  extends Mzax_Emarketing_Model_Object_Filter_Abstract
33
 
34
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
35
  {
36
+ return $parent->hasBinding('order_id');
37
  }
38
 
39
 
40
+
41
 
42
  }
app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Address.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Model_Object_Filter_Order_Address
29
  extends Mzax_Emarketing_Model_Object_Filter_Order_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Model_Object_Filter_Order_Address
29
  extends Mzax_Emarketing_Model_Object_Filter_Order_Abstract
app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Campaign.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Object_Filter_Order_Campaign
30
  extends Mzax_Emarketing_Model_Object_Filter_Order_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Object_Filter_Order_Campaign
30
  extends Mzax_Emarketing_Model_Object_Filter_Order_Abstract
app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Item/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  abstract class Mzax_Emarketing_Model_Object_Filter_Order_Item_Abstract
30
  extends Mzax_Emarketing_Model_Object_Filter_Abstract
@@ -33,7 +33,7 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Order_Item_Abstract
33
 
34
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
35
  {
36
- return $this->_acceptParent($parent, 'order_item_id');
37
  }
38
 
39
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  abstract class Mzax_Emarketing_Model_Object_Filter_Order_Item_Abstract
30
  extends Mzax_Emarketing_Model_Object_Filter_Abstract
33
 
34
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
35
  {
36
+ return $parent->hasBinding('order_item_id');
37
  }
38
 
39
 
app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Item/Table.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -32,7 +32,7 @@
32
  *
33
  * @author Jacob Siefer
34
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
35
- * @version 0.2.6
36
  */
37
  class Mzax_Emarketing_Model_Object_Filter_Order_Item_Table
38
  extends Mzax_Emarketing_Model_Object_Filter_Table
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
32
  *
33
  * @author Jacob Siefer
34
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
35
+ * @version 0.2.7
36
  */
37
  class Mzax_Emarketing_Model_Object_Filter_Order_Item_Table
38
  extends Mzax_Emarketing_Model_Object_Filter_Table
app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Items.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Model_Object_Filter_Order_Items
29
  extends Mzax_Emarketing_Model_Object_Filter_Order_Abstract
@@ -94,11 +94,22 @@ class Mzax_Emarketing_Model_Object_Filter_Order_Items
94
  $expectation = $this->getDataSetDefault('expectation', self::DEFAULT_EXPECTATION);
95
 
96
  $select = $this->_combineConditions($conditions, $aggregator, $expectation);
97
- $select->useTemporaryTable($this->getTempTableName());
98
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  $query->joinSelect('order_id', $select, 'filter');
100
  $query->addBinding('value', new Zend_Db_Expr('SUM(`filter`.`sum_field`)'));
101
- $query->having($this->getWhereSql('value', 'SUM(`filter`.`sum_field`)'));
102
  $query->group();
103
  }
104
 
@@ -117,13 +128,20 @@ class Mzax_Emarketing_Model_Object_Filter_Order_Items
117
  {
118
  parent::prepareGridColumns($grid);
119
 
 
 
 
 
 
 
 
 
120
  $grid->addColumn('value', array(
121
- 'header' => $this->__('Total'),
122
  'index' => 'value',
123
  'type' => 'number'
124
  ));
125
 
126
-
127
  $grid->setDefaultSort('increment_id');
128
  $grid->setDefaultDir('DESC');
129
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Model_Object_Filter_Order_Items
29
  extends Mzax_Emarketing_Model_Object_Filter_Order_Abstract
94
  $expectation = $this->getDataSetDefault('expectation', self::DEFAULT_EXPECTATION);
95
 
96
  $select = $this->_combineConditions($conditions, $aggregator, $expectation);
 
97
 
98
+ // if value can match zero include all records
99
+ if($this->checkIfMatchZero('value')) {
100
+
101
+ $zeroRecords = $this->getQuery();
102
+ // assume all orders have items, no right join required
103
+ $zeroRecords->setColumn('sum_field', new Zend_Db_Expr('0'));
104
+ $zeroRecords->setColumn('matches', new Zend_Db_Expr('0'));
105
+
106
+ $select = $this->_select()->union(array($zeroRecords, $select));
107
+ }
108
+
109
+ $query->useTemporaryTable($this->getTempTableName());
110
  $query->joinSelect('order_id', $select, 'filter');
111
  $query->addBinding('value', new Zend_Db_Expr('SUM(`filter`.`sum_field`)'));
112
+ $query->having($this->getWhereSql('value', '{value}'));
113
  $query->group();
114
  }
115
 
128
  {
129
  parent::prepareGridColumns($grid);
130
 
131
+ $sumOptions = $this->getSumOptions();
132
+ if(isset($sumOptions[$this->getSum()])) {
133
+ $title = ucwords($sumOptions[$this->getSum()]);
134
+ }
135
+ else {
136
+ $title = $this->__('Total');
137
+ }
138
+
139
  $grid->addColumn('value', array(
140
+ 'header' => $title,
141
  'index' => 'value',
142
  'type' => 'number'
143
  ));
144
 
 
145
  $grid->setDefaultSort('increment_id');
146
  $grid->setDefaultDir('DESC');
147
 
app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Previous.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Object_Filter_Order_Previous
30
  extends Mzax_Emarketing_Model_Object_Filter_Order_Abstract
@@ -58,30 +58,23 @@ class Mzax_Emarketing_Model_Object_Filter_Order_Previous
58
  }
59
 
60
 
61
-
62
-
63
-
64
- public function getTitle()
65
  {
66
- return "Order | Has preceded or followed orders matching...";
67
  }
68
 
69
 
70
 
71
 
72
- /**
73
- * The child filter will use order_id binding again which is ok
74
- *
75
- * @return boolean
76
- */
77
- public function allowChildBinding($binding)
78
  {
79
- return $binding === 'order_id';
80
  }
81
 
82
 
83
 
84
 
 
85
  /**
86
  *
87
  * @return Mzax_Emarketing_Model_Object_Order
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Object_Filter_Order_Previous
30
  extends Mzax_Emarketing_Model_Object_Filter_Order_Abstract
58
  }
59
 
60
 
61
+ public function acceptChild(Mzax_Emarketing_Model_Object_Filter_Component $child)
 
 
 
62
  {
63
+ return true;
64
  }
65
 
66
 
67
 
68
 
69
+ public function getTitle()
 
 
 
 
 
70
  {
71
+ return "Order | Has preceded or followed orders matching...";
72
  }
73
 
74
 
75
 
76
 
77
+
78
  /**
79
  *
80
  * @return Mzax_Emarketing_Model_Object_Order
app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/ShippedAt.php ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Mzax Emarketing (www.mzax.de)
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this Extension in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @version 0.2.7
13
+ * @category Mzax
14
+ * @package Mzax_Emarketing
15
+ * @author Jacob Siefer (jacob@mzax.de)
16
+ * @copyright Copyright (c) 2015 Jacob Siefer
17
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
+ */
19
+
20
+
21
+ /**
22
+ *
23
+ *
24
+ * @method Mzax_Emarketing_Model_Object_Filter_Order_ShippedAt setShippedAtFrom(string $value)
25
+ * @method Mzax_Emarketing_Model_Object_Filter_Order_ShippedAt setShippedAtTo(string $value)
26
+ * @method Mzax_Emarketing_Model_Object_Filter_Order_ShippedAt setShippedAtUnit(string $value)
27
+ *
28
+ * @author Jacob Siefer
29
+ *
30
+ */
31
+ class Mzax_Emarketing_Model_Object_Filter_Order_ShippedAt
32
+ extends Mzax_Emarketing_Model_Object_Filter_Order_Abstract
33
+ {
34
+
35
+
36
+ public function getTitle()
37
+ {
38
+ return "Order | Shipped ... ago";
39
+ }
40
+
41
+
42
+
43
+
44
+ protected function _prepareQuery(Mzax_Emarketing_Db_Select $query)
45
+ {
46
+ $query->joinTable('order_id', 'sales/shipment', 'shipment');
47
+
48
+
49
+ $query->group();
50
+ $query->having($this->getTimeRangeExpr('MIN(`shipment`.`created_at`)', 'shipped_at', false));
51
+ }
52
+
53
+
54
+ protected function _prepareCollection(Mzax_Emarketing_Model_Object_Collection $collection)
55
+ {
56
+ parent::_prepareCollection($collection);
57
+ $collection->addField('shipped_at', new Zend_Db_Expr('MIN(`shipment`.`created_at`)'));
58
+ }
59
+
60
+
61
+
62
+ public function prepareGridColumns(Mzax_Emarketing_Block_Filter_Object_Grid $grid)
63
+ {
64
+ parent::prepareGridColumns($grid);
65
+
66
+ $grid->addColumn('shipped_at', array(
67
+ 'header' => $this->__('Shipped At'),
68
+ 'width' => '180px',
69
+ 'index' => 'shipped_at',
70
+ 'gmtoffset' => true,
71
+ 'type' =>'datetime'
72
+ ));
73
+ }
74
+
75
+
76
+
77
+
78
+
79
+ /**
80
+ * html for settings in option form
81
+ *
82
+ * @return string
83
+ */
84
+ protected function prepareForm()
85
+ {
86
+ return $this->__('Order was shipped %s ago.',
87
+ $this->getTimeRangeHtml('shipped_at')
88
+ );
89
+ }
90
+
91
+
92
+ }
app/code/community/Mzax/Emarketing/Model/Object/Filter/Order/Table.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Model_Object_Filter_Order_Table
29
  extends Mzax_Emarketing_Model_Object_Filter_Table
@@ -69,6 +69,7 @@ class Mzax_Emarketing_Model_Object_Filter_Order_Table
69
  $column = $this->addColumn('created_at', 'Order Date', 'date');
70
  $column->allowFuture = false;
71
 
 
72
  $this->addColumn('base_grand_total', 'Grand Total', 'currency');
73
  $this->addColumn('base_subtotal', 'Subtotal', 'currency');
74
  $this->addColumn('base_shipping_amount', 'Shipping Amount', 'currency');
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Model_Object_Filter_Order_Table
29
  extends Mzax_Emarketing_Model_Object_Filter_Table
69
  $column = $this->addColumn('created_at', 'Order Date', 'date');
70
  $column->allowFuture = false;
71
 
72
+ $this->addColumn('store_id', 'Store', 'multiselect', 'adminhtml/system_config_source_store');
73
  $this->addColumn('base_grand_total', 'Grand Total', 'currency');
74
  $this->addColumn('base_subtotal', 'Subtotal', 'currency');
75
  $this->addColumn('base_shipping_amount', 'Shipping Amount', 'currency');
app/code/community/Mzax/Emarketing/Model/Object/Filter/Product/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -29,7 +29,7 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Product_Abstract
29
 
30
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
31
  {
32
- return $this->_acceptParent($parent, 'product_id');
33
  }
34
 
35
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
29
 
30
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
31
  {
32
+ return $parent->hasBinding('product_id');
33
  }
34
 
35
 
app/code/community/Mzax/Emarketing/Model/Object/Filter/Product/Attribute.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Product/Category.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Filter/Quote/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  abstract class Mzax_Emarketing_Model_Object_Filter_Quote_Abstract
30
  extends Mzax_Emarketing_Model_Object_Filter_Abstract
@@ -33,7 +33,7 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Quote_Abstract
33
 
34
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
35
  {
36
- return $this->_acceptParent($parent, 'quote_id');
37
  }
38
 
39
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  abstract class Mzax_Emarketing_Model_Object_Filter_Quote_Abstract
30
  extends Mzax_Emarketing_Model_Object_Filter_Abstract
33
 
34
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
35
  {
36
+ return $parent->hasBinding('quote_id');
37
  }
38
 
39
 
app/code/community/Mzax/Emarketing/Model/Object/Filter/Quote/Address.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Object_Filter_Quote_Address
30
  extends Mzax_Emarketing_Model_Object_Filter_Quote_Abstract
@@ -55,7 +55,7 @@ class Mzax_Emarketing_Model_Object_Filter_Quote_Address
55
 
56
  /**
57
  *
58
- * @return Mzax_Emarketing_Model_Object_OrderItem
59
  */
60
  public function getObject()
61
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Object_Filter_Quote_Address
30
  extends Mzax_Emarketing_Model_Object_Filter_Quote_Abstract
55
 
56
  /**
57
  *
58
+ * @return Mzax_Emarketing_Model_Object_OrderAddress
59
  */
60
  public function getObject()
61
  {
app/code/community/Mzax/Emarketing/Model/Object/Filter/Quote/Item/Table.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -32,7 +32,7 @@
32
  *
33
  * @author Jacob Siefer
34
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
35
- * @version 0.2.6
36
  */
37
  class Mzax_Emarketing_Model_Object_Filter_Quote_Item_Table
38
  extends Mzax_Emarketing_Model_Object_Filter_Table
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
32
  *
33
  * @author Jacob Siefer
34
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
35
+ * @version 0.2.7
36
  */
37
  class Mzax_Emarketing_Model_Object_Filter_Quote_Item_Table
38
  extends Mzax_Emarketing_Model_Object_Filter_Table
app/code/community/Mzax/Emarketing/Model/Object/Filter/Quote/Items.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Model_Object_Filter_Quote_Items
29
  extends Mzax_Emarketing_Model_Object_Filter_Quote_Abstract
@@ -52,7 +52,7 @@ class Mzax_Emarketing_Model_Object_Filter_Quote_Items
52
  /**
53
  * Use order item object
54
  *
55
- * @return Mzax_Emarketing_Model_Object_OrderItem
56
  */
57
  public function getObject()
58
  {
@@ -94,11 +94,22 @@ class Mzax_Emarketing_Model_Object_Filter_Quote_Items
94
  $expectation = $this->getDataSetDefault('expectation', self::DEFAULT_EXPECTATION);
95
 
96
  $select = $this->_combineConditions($conditions, $aggregator, $expectation);
97
- $select->useTemporaryTable($this->getTempTableName());
98
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  $query->joinSelect('quote_id', $select, 'filter');
100
  $query->addBinding('value', new Zend_Db_Expr('SUM(`filter`.`sum_field`)'));
101
- $query->having($this->getWhereSql('value', 'SUM(`filter`.`sum_field`)'));
102
  $query->group();
103
  }
104
 
@@ -116,9 +127,17 @@ class Mzax_Emarketing_Model_Object_Filter_Quote_Items
116
  public function prepareGridColumns(Mzax_Emarketing_Block_Filter_Object_Grid $grid)
117
  {
118
  parent::prepareGridColumns($grid);
 
 
 
 
 
 
 
 
119
 
120
  $grid->addColumn('value', array(
121
- 'header' => $this->__('Total'),
122
  'index' => 'value',
123
  'type' => 'number'
124
  ));
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Model_Object_Filter_Quote_Items
29
  extends Mzax_Emarketing_Model_Object_Filter_Quote_Abstract
52
  /**
53
  * Use order item object
54
  *
55
+ * @return Mzax_Emarketing_Model_Object_QuoteItem
56
  */
57
  public function getObject()
58
  {
94
  $expectation = $this->getDataSetDefault('expectation', self::DEFAULT_EXPECTATION);
95
 
96
  $select = $this->_combineConditions($conditions, $aggregator, $expectation);
 
97
 
98
+ // if value can match zero include all records
99
+ if($this->checkIfMatchZero('value')) {
100
+
101
+ $zeroRecords = $this->getQuery();
102
+ // assume all quotes have items, no right join required
103
+ $zeroRecords->setColumn('sum_field', new Zend_Db_Expr('0'));
104
+ $zeroRecords->setColumn('matches', new Zend_Db_Expr('0'));
105
+
106
+ $select = $this->_select()->union(array($zeroRecords, $select));
107
+ }
108
+
109
+ $query->useTemporaryTable($this->getTempTableName());
110
  $query->joinSelect('quote_id', $select, 'filter');
111
  $query->addBinding('value', new Zend_Db_Expr('SUM(`filter`.`sum_field`)'));
112
+ $query->having($this->getWhereSql('value', '{value}'));
113
  $query->group();
114
  }
115
 
127
  public function prepareGridColumns(Mzax_Emarketing_Block_Filter_Object_Grid $grid)
128
  {
129
  parent::prepareGridColumns($grid);
130
+
131
+ $sumOptions = $this->getSumOptions();
132
+ if(isset($sumOptions[$this->getSum()])) {
133
+ $title = ucwords($sumOptions[$this->getSum()]);
134
+ }
135
+ else {
136
+ $title = $this->__('Total');
137
+ }
138
 
139
  $grid->addColumn('value', array(
140
+ 'header' => $title,
141
  'index' => 'value',
142
  'type' => 'number'
143
  ));
app/code/community/Mzax/Emarketing/Model/Object/Filter/Quote/Table.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Model_Object_Filter_Quote_Table
29
  extends Mzax_Emarketing_Model_Object_Filter_Table
@@ -72,6 +72,7 @@ class Mzax_Emarketing_Model_Object_Filter_Quote_Table
72
  $column = $this->addColumn('updated_at', 'Last Update', 'date');
73
  $column->allowFuture = false;
74
 
 
75
  $this->addColumn('base_grand_total', 'Grand Total', 'currency');
76
  $this->addColumn('base_subtotal', 'Subtotal', 'currency');
77
  $this->addColumn('is_virtual', 'Virtual', 'boolean');
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Model_Object_Filter_Quote_Table
29
  extends Mzax_Emarketing_Model_Object_Filter_Table
72
  $column = $this->addColumn('updated_at', 'Last Update', 'date');
73
  $column->allowFuture = false;
74
 
75
+ $this->addColumn('store_id', 'Store', 'multiselect', 'adminhtml/system_config_source_store');
76
  $this->addColumn('base_grand_total', 'Grand Total', 'currency');
77
  $this->addColumn('base_subtotal', 'Subtotal', 'currency');
78
  $this->addColumn('is_virtual', 'Virtual', 'boolean');
app/code/community/Mzax/Emarketing/Model/Object/Filter/Table.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -28,7 +28,7 @@
28
  *
29
  * @author Jacob Siefer
30
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
31
- * @version 0.2.6
32
  */
33
  abstract class Mzax_Emarketing_Model_Object_Filter_Table
34
  extends Mzax_Emarketing_Model_Object_Filter_Abstract
@@ -139,7 +139,7 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Table
139
  */
140
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
141
  {
142
- return $this->_acceptParent($parent, $this->_requireBinding);
143
  }
144
 
145
 
@@ -458,24 +458,6 @@ abstract class Mzax_Emarketing_Model_Object_Filter_Table
458
 
459
 
460
 
461
- /**
462
- * Add hidden input field
463
- *
464
- * @param string $name
465
- * @param string $value
466
- * @return Varien_Data_Form_Element_Abstract
467
- */
468
- protected function getHiddenField($name, $value)
469
- {
470
- return $this->getForm()->addField($name, 'hidden', array(
471
- 'name' => $name,
472
- 'class' => 'hidden',
473
- 'no_span' => true,
474
- 'is_meta' => true,
475
- 'value' => $value
476
- ));
477
- }
478
-
479
 
480
 
481
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
28
  *
29
  * @author Jacob Siefer
30
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
31
+ * @version 0.2.7
32
  */
33
  abstract class Mzax_Emarketing_Model_Object_Filter_Table
34
  extends Mzax_Emarketing_Model_Object_Filter_Abstract
139
  */
140
  public function acceptParent(Mzax_Emarketing_Model_Object_Filter_Component $parent)
141
  {
142
+ return $parent->hasBinding($this->_requireBinding);
143
  }
144
 
145
 
458
 
459
 
460
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
461
 
462
 
463
 
app/code/community/Mzax/Emarketing/Model/Object/Order.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -79,6 +79,8 @@ class Mzax_Emarketing_Model_Object_Order extends Mzax_Emarketing_Model_Object_Ab
79
  $collection->addField('created_at');
80
  $collection->addField('status');
81
  $collection->addField('increment_id');
 
 
82
  }
83
 
84
 
@@ -88,7 +90,7 @@ class Mzax_Emarketing_Model_Object_Order extends Mzax_Emarketing_Model_Object_Ab
88
 
89
  if (!Mage::app()->isSingleStoreMode()) {
90
  $grid->addColumn('store_id', array(
91
- 'header' => Mage::helper('sales')->__('Purchased From (Store)'),
92
  'index' => 'store_id',
93
  'type' => 'store',
94
  'store_view'=> true,
@@ -107,15 +109,22 @@ class Mzax_Emarketing_Model_Object_Order extends Mzax_Emarketing_Model_Object_Ab
107
  'object' => Mage::getSingleton('mzax_emarketing/object_customer')
108
  ));
109
 
 
 
 
 
 
 
 
110
  $grid->addColumn('created_at', array(
111
- 'header' => Mage::helper('sales')->__('Purchased On'),
112
  'index' => 'created_at',
113
  'type' => 'datetime',
114
- 'width' => '100px',
115
  ));
116
 
117
  $grid->addColumn('status', array(
118
- 'header' => Mage::helper('sales')->__('Status'),
119
  'index' => 'status',
120
  'type' => 'options',
121
  'width' => '70px',
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
79
  $collection->addField('created_at');
80
  $collection->addField('status');
81
  $collection->addField('increment_id');
82
+ $collection->addField('customer_id');
83
+ $collection->addField('email');
84
  }
85
 
86
 
90
 
91
  if (!Mage::app()->isSingleStoreMode()) {
92
  $grid->addColumn('store_id', array(
93
+ 'header' => $this->__('Purchased From (Store)'),
94
  'index' => 'store_id',
95
  'type' => 'store',
96
  'store_view'=> true,
109
  'object' => Mage::getSingleton('mzax_emarketing/object_customer')
110
  ));
111
 
112
+
113
+ $grid->addColumn('email', array(
114
+ 'header' => Mage::helper('sales')->__('Email'),
115
+ 'index' => 'email'
116
+ ));
117
+
118
+
119
  $grid->addColumn('created_at', array(
120
+ 'header' => $this->__('Purchased On'),
121
  'index' => 'created_at',
122
  'type' => 'datetime',
123
+ 'width' => '120px',
124
  ));
125
 
126
  $grid->addColumn('status', array(
127
+ 'header' => $this->__('Status'),
128
  'index' => 'status',
129
  'type' => 'options',
130
  'width' => '70px',
app/code/community/Mzax/Emarketing/Model/Object/OrderAddress.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Object_OrderAddress extends Mzax_Emarketing_Model_Object_Address
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Object_OrderAddress extends Mzax_Emarketing_Model_Object_Address
31
  {
app/code/community/Mzax/Emarketing/Model/Object/OrderItem.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Product.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -45,7 +45,7 @@ class Mzax_Emarketing_Model_Object_Product extends Mzax_Emarketing_Model_Object_
45
  public function getQuery()
46
  {
47
  $query = parent::getQuery();
48
- $query->addBinding('product_id', 'product_id');
49
 
50
  return $query;
51
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
45
  public function getQuery()
46
  {
47
  $query = parent::getQuery();
48
+ $query->addBinding('product_id', $this->getIdFieldName());
49
 
50
  return $query;
51
  }
app/code/community/Mzax/Emarketing/Model/Object/Quote.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Object_Quote extends Mzax_Emarketing_Model_Object_Abstract
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Object_Quote extends Mzax_Emarketing_Model_Object_Abstract
31
  {
app/code/community/Mzax/Emarketing/Model/Object/QuoteAddress.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Object_QuoteAddress extends Mzax_Emarketing_Model_Object_Address
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Object_QuoteAddress extends Mzax_Emarketing_Model_Object_Address
31
  {
app/code/community/Mzax/Emarketing/Model/Object/QuoteItem.php ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Mzax Emarketing (www.mzax.de)
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this Extension in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @version 0.2.7
13
+ * @category Mzax
14
+ * @package Mzax_Emarketing
15
+ * @author Jacob Siefer (jacob@mzax.de)
16
+ * @copyright Copyright (c) 2015 Jacob Siefer
17
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
+ */
19
+
20
+
21
+ /**
22
+ *
23
+ *
24
+ * @author Jacob Siefer
25
+ *
26
+ */
27
+ class Mzax_Emarketing_Model_Object_QuoteItem extends Mzax_Emarketing_Model_Object_Abstract
28
+ {
29
+
30
+ public function _construct()
31
+ {
32
+ $this->_init('sales/quote_item');
33
+ }
34
+
35
+
36
+
37
+ public function getName()
38
+ {
39
+ return $this->__('Quote Item');
40
+ }
41
+
42
+
43
+ public function getQuery()
44
+ {
45
+ $query = parent::getQuery();
46
+ $query->addBinding('quote_id', 'quote_id');
47
+ $query->addBinding('product_id', 'product_id');
48
+ $query->addBinding('quote_item_id', 'item_id');
49
+
50
+ return $query;
51
+ }
52
+
53
+
54
+
55
+ public function prepareCollection(Mzax_Emarketing_Model_Object_Collection $collection)
56
+ {
57
+ parent::prepareCollection($collection);
58
+
59
+ $collection->addField('quote_item_id');
60
+ $collection->addField('product_type');
61
+ $collection->addField('product_id');
62
+ $collection->addField('sku');
63
+ $collection->addField('name');
64
+ $collection->addField('qty');
65
+ }
66
+
67
+
68
+
69
+
70
+
71
+ public function prepareGridColumns(Mzax_Emarketing_Block_Filter_Object_Grid $grid)
72
+ {
73
+ foreach(Mage::getSingleton('catalog/product_type')->getOptions() as $option) {
74
+ $productTypes[$option['value']] = $option['label'];
75
+ }
76
+
77
+ $grid->addColumn('product_type', array(
78
+ 'header' => $this->__('Product Type'),
79
+ 'index' => 'product_type',
80
+ 'type' => 'options',
81
+ 'options' => $productTypes
82
+ ));
83
+
84
+
85
+ /*
86
+ $grid->addColumn('product', array(
87
+ 'header' => $this->__('Product SKU'),
88
+ 'is_system' => true,
89
+ 'width' => '25%',
90
+ 'id_field' => 'product_id',
91
+ 'label_field' => 'sku',
92
+ 'renderer' => 'mzax_emarketing/recipients_column_renderer_subject',
93
+ 'object' => Mage::getSingleton('mzax_emarketing/object_product'),
94
+ ));
95
+ */
96
+
97
+ $grid->addColumn('sku', array(
98
+ 'header' => Mage::helper('sales')->__('SKU'),
99
+ 'index' => 'sku',
100
+ 'width' => '30%'
101
+ ));
102
+
103
+ $grid->addColumn('name', array(
104
+ 'header' => Mage::helper('sales')->__('Name'),
105
+ 'index' => 'name',
106
+ ));
107
+ }
108
+
109
+ }
app/code/community/Mzax/Emarketing/Model/Object/Recipient.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Object/Subscriber.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Object_Subscriber extends Mzax_Emarketing_Model_Object_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Object_Subscriber extends Mzax_Emarketing_Model_Object_Abstract
30
  {
app/code/community/Mzax/Emarketing/Model/Observer.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Observer/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  abstract class Mzax_Emarketing_Model_Observer_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  abstract class Mzax_Emarketing_Model_Observer_Abstract
30
  {
app/code/community/Mzax/Emarketing/Model/Observer/Cron.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -26,7 +26,7 @@
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
- * @version 0.2.6
30
  */
31
  class Mzax_Emarketing_Model_Observer_Cron
32
  extends Mzax_Emarketing_Model_Observer_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
+ * @version 0.2.7
30
  */
31
  class Mzax_Emarketing_Model_Observer_Cron
32
  extends Mzax_Emarketing_Model_Observer_Abstract
app/code/community/Mzax/Emarketing/Model/Observer/Customer.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Observer_Customer
31
  extends Mzax_Emarketing_Model_Observer_Goal
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Observer_Customer
31
  extends Mzax_Emarketing_Model_Observer_Goal
app/code/community/Mzax/Emarketing/Model/Observer/Goal.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Observer_Goal
31
  extends Mzax_Emarketing_Model_Observer_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Observer_Goal
31
  extends Mzax_Emarketing_Model_Observer_Abstract
app/code/community/Mzax/Emarketing/Model/Observer/Order.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Observer_Order
31
  extends Mzax_Emarketing_Model_Observer_Goal
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Observer_Order
31
  extends Mzax_Emarketing_Model_Observer_Goal
app/code/community/Mzax/Emarketing/Model/Outbox.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -71,16 +71,22 @@ class Mzax_Emarketing_Model_Outbox
71
  */
72
  public function sendEmails(array $options = array())
73
  {
 
 
74
  $lock = Mage::helper('mzax_emarketing')->lock('send_emails');
75
  if(!$lock) {
 
 
 
76
  return false;
77
  }
78
 
79
- $options = new Varien_Object($options);
80
 
81
  $timeout = $options->getDataSetDefault('timeout', 60*5);
82
  $maximum = $options->getDataSetDefault('maximum', 200);
83
  $now = $options->getDataSetDefault('now', time());
 
84
  $emailIds = $options->getDataSetDefault('ids', false);
85
 
86
 
@@ -91,10 +97,13 @@ class Mzax_Emarketing_Model_Outbox
91
  $emails->assignRecipients();
92
  $emails->addFieldToFilter('sent_at', array('null' => true));
93
  $emails->addFieldToFilter('status', Mzax_Emarketing_Model_Outbox_Email::STATUS_NOT_SEND);
94
- $emails->addTimeFilter();
95
  $emails->setOrder('expire_at', 'ASC');
96
  $emails->setPageSize($maximum);
97
 
 
 
 
 
98
  if(!empty($emailIds)) {
99
  $emails->addFieldToFilter('email_id', array('in' => $emailIds));
100
  }
@@ -125,6 +134,10 @@ class Mzax_Emarketing_Model_Outbox
125
  $domainThrottle->purge();
126
  }
127
 
 
 
 
 
128
 
129
  $start = time();
130
 
@@ -142,7 +155,7 @@ class Mzax_Emarketing_Model_Outbox
142
  }
143
 
144
  if(time() - $start > $timeout) {
145
- $this->log("Mzax Emarketing: Reached timelimit of {$timeout}sec");
146
  break;
147
  }
148
 
@@ -162,13 +175,17 @@ class Mzax_Emarketing_Model_Outbox
162
 
163
  if($domainThrottle && ($time = $domainThrottle->isResting($email->getDomain()))) {
164
  $notice = "DomainThrottle currently prevents this message from sending for at least $time more seconds";
165
- $this->log($notice);
166
  $email->getLog()->notice($notice);
167
  $email->save();
168
  continue;
169
  }
170
 
171
- $email->send();
 
 
 
 
172
  $lock->touch();
173
  $count++;
174
  }
@@ -178,11 +195,18 @@ class Mzax_Emarketing_Model_Outbox
178
  }
179
 
180
 
181
-
182
- protected function log($message)
 
 
 
 
 
183
  {
184
  Mage::log($message);
185
- echo "$message\n";
 
 
186
  }
187
 
188
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
71
  */
72
  public function sendEmails(array $options = array())
73
  {
74
+ $options = new Varien_Object($options);
75
+
76
  $lock = Mage::helper('mzax_emarketing')->lock('send_emails');
77
  if(!$lock) {
78
+ if($options->getVerbose()) {
79
+ echo "\nACITVE LOCK- STOP\n\n\n";
80
+ }
81
  return false;
82
  }
83
 
84
+
85
 
86
  $timeout = $options->getDataSetDefault('timeout', 60*5);
87
  $maximum = $options->getDataSetDefault('maximum', 200);
88
  $now = $options->getDataSetDefault('now', time());
89
+ $force = $options->getDataSetDefault('force', false);
90
  $emailIds = $options->getDataSetDefault('ids', false);
91
 
92
 
97
  $emails->assignRecipients();
98
  $emails->addFieldToFilter('sent_at', array('null' => true));
99
  $emails->addFieldToFilter('status', Mzax_Emarketing_Model_Outbox_Email::STATUS_NOT_SEND);
 
100
  $emails->setOrder('expire_at', 'ASC');
101
  $emails->setPageSize($maximum);
102
 
103
+ if(!$force) {
104
+ $emails->addTimeFilter($now);
105
+ }
106
+
107
  if(!empty($emailIds)) {
108
  $emails->addFieldToFilter('email_id', array('in' => $emailIds));
109
  }
134
  $domainThrottle->purge();
135
  }
136
 
137
+ if($options->getVerbose()) {
138
+ echo sprintf("found %s emails...\n", count($emails));
139
+ }
140
+
141
 
142
  $start = time();
143
 
155
  }
156
 
157
  if(time() - $start > $timeout) {
158
+ $this->log("Mzax Emarketing: Reached timelimit of {$timeout}sec", $options->getVerbose());
159
  break;
160
  }
161
 
175
 
176
  if($domainThrottle && ($time = $domainThrottle->isResting($email->getDomain()))) {
177
  $notice = "DomainThrottle currently prevents this message from sending for at least $time more seconds";
178
+ $this->log($notice, $options->getVerbose());
179
  $email->getLog()->notice($notice);
180
  $email->save();
181
  continue;
182
  }
183
 
184
+ if($options->getVerbose()) {
185
+ echo sprintf("try sending email %s to %s.\n", $email->getId(), $email->getTo());
186
+ }
187
+
188
+ $email->send($options->getVerbose());
189
  $lock->touch();
190
  $count++;
191
  }
195
  }
196
 
197
 
198
+ /**
199
+ * Log message
200
+ *
201
+ * @param string $message
202
+ * @param boolean $verbose
203
+ */
204
+ protected function log($message, $verbose = false)
205
  {
206
  Mage::log($message);
207
+ if($verbose) {
208
+ echo "$message\n";
209
+ }
210
  }
211
 
212
 
app/code/community/Mzax/Emarketing/Model/Outbox/Email.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -21,7 +21,7 @@
21
  *
22
  * @method string getExpireAt()
23
  * @method string getStatus()
24
- * @method string getEmail()
25
  * @method string getDomain()
26
  * @method string getSubject()
27
  * @method string getBodyText()
@@ -33,7 +33,7 @@
33
  *
34
  * @method Mzax_Emarketing_Model_Resource_Outbox_Email setExpireAt()
35
  * @method Mzax_Emarketing_Model_Resource_Outbox_Email setStatus()
36
- * @method Mzax_Emarketing_Model_Resource_Outbox_Email setEmail()
37
  * @method Mzax_Emarketing_Model_Resource_Outbox_Email setDomain()
38
  * @method Mzax_Emarketing_Model_Resource_Outbox_Email setSubject()
39
  * @method Mzax_Emarketing_Model_Resource_Outbox_Email setBodyText()
@@ -512,12 +512,15 @@ class Mzax_Emarketing_Model_Outbox_Email
512
  * @param integer $now
513
  * @return boolean
514
  */
515
- public function canSend($now)
516
  {
517
  if(!$now) {
518
  $now = time();
519
  }
520
 
 
 
 
521
  if($filter = $this->getDayFilter()) {
522
  $dayOfWeek = date('w', $now);
523
  $filter = explode(',', $filter);
@@ -534,7 +537,8 @@ class Mzax_Emarketing_Model_Outbox_Email
534
  return false;
535
  }
536
  }
537
- return !$this->isExpired($now);
 
538
  }
539
 
540
 
@@ -566,11 +570,14 @@ class Mzax_Emarketing_Model_Outbox_Email
566
 
567
 
568
 
569
- public function send()
570
  {
571
  try {
572
  Mage::log("Send Message: #{$this->getId()} - {$this->getEmail()}");
573
- $this->_send();
 
 
 
574
  $this->setStatus(self::STATUS_SENT);
575
  $this->setSentAt(now());
576
  $this->getRecipient()->isSent(true);
@@ -584,6 +591,10 @@ class Mzax_Emarketing_Model_Outbox_Email
584
  $this->getLog()->err($message);
585
  $this->setStatus(self::STATUS_FAILED);
586
 
 
 
 
 
587
  if(Mage::getIsDeveloperMode()) {
588
  throw $e;
589
  }
@@ -602,6 +613,10 @@ class Mzax_Emarketing_Model_Outbox_Email
602
  $mail = $this->createMailObject();
603
  if($mail) {
604
  $mail->send($this->_prepareTransporter());
 
 
 
 
605
  }
606
  }
607
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
21
  *
22
  * @method string getExpireAt()
23
  * @method string getStatus()
24
+ * @method string getTo()
25
  * @method string getDomain()
26
  * @method string getSubject()
27
  * @method string getBodyText()
33
  *
34
  * @method Mzax_Emarketing_Model_Resource_Outbox_Email setExpireAt()
35
  * @method Mzax_Emarketing_Model_Resource_Outbox_Email setStatus()
36
+ * @method Mzax_Emarketing_Model_Resource_Outbox_Email setTo()
37
  * @method Mzax_Emarketing_Model_Resource_Outbox_Email setDomain()
38
  * @method Mzax_Emarketing_Model_Resource_Outbox_Email setSubject()
39
  * @method Mzax_Emarketing_Model_Resource_Outbox_Email setBodyText()
512
  * @param integer $now
513
  * @return boolean
514
  */
515
+ public function canSend($now = null)
516
  {
517
  if(!$now) {
518
  $now = time();
519
  }
520
 
521
+ // use admin store time
522
+ $now -= (int) Mage::app()->getLocale()->storeDate(Mage_Core_Model_App::ADMIN_STORE_ID)->getGmtOffset();
523
+
524
  if($filter = $this->getDayFilter()) {
525
  $dayOfWeek = date('w', $now);
526
  $filter = explode(',', $filter);
537
  return false;
538
  }
539
  }
540
+
541
+ return true;
542
  }
543
 
544
 
570
 
571
 
572
 
573
+ public function send($verbose = false)
574
  {
575
  try {
576
  Mage::log("Send Message: #{$this->getId()} - {$this->getEmail()}");
577
+
578
+ if(!$this->_send()) {
579
+ Mage::log("Message was not send. #{$this->getId()} - {$this->getEmail()}");
580
+ }
581
  $this->setStatus(self::STATUS_SENT);
582
  $this->setSentAt(now());
583
  $this->getRecipient()->isSent(true);
591
  $this->getLog()->err($message);
592
  $this->setStatus(self::STATUS_FAILED);
593
 
594
+ if($verbose) {
595
+ echo $message;
596
+ }
597
+
598
  if(Mage::getIsDeveloperMode()) {
599
  throw $e;
600
  }
613
  $mail = $this->createMailObject();
614
  if($mail) {
615
  $mail->send($this->_prepareTransporter());
616
+ return true;
617
+ }
618
+ else {
619
+ return false;
620
  }
621
  }
622
 
app/code/community/Mzax/Emarketing/Model/Outbox/Transporter.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Outbox/Transporter/File.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -26,7 +26,7 @@
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
- * @version 0.2.6
30
  */
31
  class Mzax_Emarketing_Model_Outbox_Transporter_File
32
  extends Mzax_Mail_Transport_File
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
+ * @version 0.2.7
30
  */
31
  class Mzax_Emarketing_Model_Outbox_Transporter_File
32
  extends Mzax_Mail_Transport_File
app/code/community/Mzax/Emarketing/Model/Outbox/Transporter/Interface.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Outbox/Transporter/Sendmail.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Outbox_Transporter_Sendmail
31
  extends Zend_Mail_Transport_Smtp
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Outbox_Transporter_Sendmail
31
  extends Zend_Mail_Transport_Smtp
app/code/community/Mzax/Emarketing/Model/Outbox/Transporter/Smtp.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Outbox_Transporter_Smtp
31
  extends Zend_Mail_Transport_Smtp
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Outbox_Transporter_Smtp
31
  extends Zend_Mail_Transport_Smtp
app/code/community/Mzax/Emarketing/Model/Premailer.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Recipient.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -51,7 +51,7 @@
51
  *
52
  * @author Jacob Siefer
53
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
54
- * @version 0.2.6
55
  */
56
  class Mzax_Emarketing_Model_Recipient extends Mage_Core_Model_Abstract
57
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
51
  *
52
  * @author Jacob Siefer
53
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
54
+ * @version 0.2.7
55
  */
56
  class Mzax_Emarketing_Model_Recipient extends Mage_Core_Model_Abstract
57
  {
app/code/community/Mzax/Emarketing/Model/Recipient/Error.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Emarketing_Model_Recipient_Error extends Mage_Core_Model_Abstract
29
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Emarketing_Model_Recipient_Error extends Mage_Core_Model_Abstract
29
  {
app/code/community/Mzax/Emarketing/Model/Recipient/Provider.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Recipient_Provider implements Mage_Eav_Model_Entity_Attribute_Source_Interface
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Recipient_Provider implements Mage_Eav_Model_Entity_Attribute_Source_Interface
31
  {
app/code/community/Mzax/Emarketing/Model/Recipient/Provider/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -102,6 +102,20 @@ abstract class Mzax_Emarketing_Model_Recipient_Provider_Abstract
102
 
103
 
104
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
 
107
  /**
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
102
 
103
 
104
 
105
+ public function setDefaultFilters()
106
+ {
107
+ Mage::dispatchEvent('mzax_emarketing_campaign_default_filters', array(
108
+ 'provider' => $this
109
+ ));
110
+
111
+ /* @var $newsletterFilter Mzax_Emarketing_Model_Object_Filter_Newsletter */
112
+ $newsletterFilter = $this->addFilter('newsletter');
113
+ if( $newsletterFilter ) {
114
+ $newsletterFilter->setCondition('is');
115
+ $newsletterFilter->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED);
116
+ }
117
+ }
118
+
119
 
120
 
121
  /**
app/code/community/Mzax/Emarketing/Model/Recipient/Provider/Customer.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Recipient/Provider/Newsletter.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Recipient_Provider_Newsletter
30
  extends Mzax_Emarketing_Model_Recipient_Provider_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Recipient_Provider_Newsletter
30
  extends Mzax_Emarketing_Model_Recipient_Provider_Abstract
app/code/community/Mzax/Emarketing/Model/Recipient/Provider/Order.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Recipient_Provider_Order
30
  extends Mzax_Emarketing_Model_Recipient_Provider_Abstract
@@ -50,6 +50,58 @@ class Mzax_Emarketing_Model_Recipient_Provider_Order
50
  }
51
 
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
 
54
 
55
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Recipient_Provider_Order
30
  extends Mzax_Emarketing_Model_Recipient_Provider_Abstract
50
  }
51
 
52
 
53
+ /**
54
+ * Set order default filters
55
+ *
56
+ * (non-PHPdoc)
57
+ * @see Mzax_Emarketing_Model_Recipient_Provider_Abstract::setDefaultFilters()
58
+ */
59
+ public function setDefaultFilters()
60
+ {
61
+ parent::setDefaultFilters();
62
+
63
+ /* @var $storeFilter Mzax_Emarketing_Model_Object_Filter_Order_Table */
64
+ $storeFilter = $this->addFilter('order_table');
65
+ if( $storeFilter && $this->getCampaign() ) {
66
+ $storeFilter->setColumn('store_id');
67
+ $storeFilter->setValue($this->getCampaign()->getStoreId());
68
+ $storeFilter->setOperator('()');
69
+ }
70
+
71
+ /* @var $statusFilter Mzax_Emarketing_Model_Object_Filter_Order_Table */
72
+ $statusFilter = $this->addFilter('order_table');
73
+ if( $statusFilter) {
74
+ $statusFilter->setColumn('status');
75
+ $statusFilter->setValue(Mage_Sales_Model_Order::STATE_COMPLETE);
76
+ $statusFilter->setOperator('()');
77
+ }
78
+
79
+ /* @var $shippedFilter Mzax_Emarketing_Model_Object_Filter_Order_ShippedAt */
80
+ $shippedFilter = $this->addFilter('order_shipped');
81
+ if( $shippedFilter) {
82
+ $shippedFilter->setShippedAtFrom(5);
83
+ $shippedFilter->setShippedAtTo(8);
84
+ $shippedFilter->setShippedAtUnit('days');
85
+ }
86
+ }
87
+
88
+
89
+
90
+ public function prepareSnippets(Mzax_Emarketing_Model_Medium_Email_Snippets $snippets)
91
+ {
92
+ parent::prepareSnippets($snippets);
93
+
94
+ $snippets->addVar('order.customer_firstname', 'Customer Firstname', 'Firstname of the customer from the order');
95
+ $snippets->addVar('order.customer_lastname', 'Customer Lastname', 'Lastname of the customer from the order');
96
+
97
+ $snippets->addSnippets(
98
+ 'mage.order.products',
99
+ '{{block type="mzax_emarketing/template" area="frontend" template="mzax/email/order-items.phtml" order="$order"}}',
100
+ $this->__('Order Products Table'),
101
+ $this->__('Simple table to display the order products.'));
102
+
103
+ }
104
+
105
 
106
 
107
 
app/code/community/Mzax/Emarketing/Model/Recipient/Provider/Quote.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Recipient_Provider_Quote
30
  extends Mzax_Emarketing_Model_Recipient_Provider_Abstract
@@ -51,6 +51,43 @@ class Mzax_Emarketing_Model_Recipient_Provider_Quote
51
 
52
 
53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
 
55
 
56
  public function prepareRecipient(Mzax_Emarketing_Model_Recipient $recipient)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Recipient_Provider_Quote
30
  extends Mzax_Emarketing_Model_Recipient_Provider_Abstract
51
 
52
 
53
 
54
+ /**
55
+ * Set order default filters
56
+ *
57
+ * (non-PHPdoc)
58
+ * @see Mzax_Emarketing_Model_Recipient_Provider_Abstract::setDefaultFilters()
59
+ */
60
+ public function setDefaultFilters()
61
+ {
62
+ parent::setDefaultFilters();
63
+
64
+ /* @var $storeFilter Mzax_Emarketing_Model_Object_Filter_Quote_Table */
65
+ $storeFilter = $this->addFilter('quote_table');
66
+ if( $storeFilter && $this->getCampaign() ) {
67
+ $storeFilter->setColumn('store_id');
68
+ $storeFilter->setValue($this->getCampaign()->getStoreId());
69
+ $storeFilter->setOperator('()');
70
+ }
71
+
72
+ }
73
+
74
+
75
+
76
+ public function prepareSnippets(Mzax_Emarketing_Model_Medium_Email_Snippets $snippets)
77
+ {
78
+ parent::prepareSnippets($snippets);
79
+
80
+ $snippets->addVar('quote.customer_firstname', 'Customer Firstname', 'Firstname of the customer from the quote');
81
+ $snippets->addVar('quote.customer_lastname', 'Customer Lastname', 'Lastname of the customer from the quote');
82
+
83
+ $snippets->addSnippets(
84
+ 'mage.cart.products',
85
+ '{{block type="mzax_emarketing/template" area="frontend" template="mzax/email/quote-items.phtml" quote="$quote"}}',
86
+ $this->__('Shopping Cart Products Table'),
87
+ $this->__('Simple table to display the shopping cart products.'));
88
+
89
+ }
90
+
91
 
92
 
93
  public function prepareRecipient(Mzax_Emarketing_Model_Recipient $recipient)
app/code/community/Mzax/Emarketing/Model/Report.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Report
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Report
31
  {
app/code/community/Mzax/Emarketing/Model/Report/Aggregator.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Report_Aggregator extends Mzax_Emarketing_Model_Report_Aggregator_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Report_Aggregator extends Mzax_Emarketing_Model_Report_Aggregator_Abstract
30
  {
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  abstract class Mzax_Emarketing_Model_Report_Aggregator_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  abstract class Mzax_Emarketing_Model_Report_Aggregator_Abstract
30
  {
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Campaign.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Report_Aggregator_Campaign
31
  extends Mzax_Emarketing_Model_Report_Aggregator_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Report_Aggregator_Campaign
31
  extends Mzax_Emarketing_Model_Report_Aggregator_Abstract
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Country.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Dayofweek.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/DeviceBrand.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/DeviceType.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Hour.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Os.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Region.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Dimension/Useragent.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Events.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -26,7 +26,7 @@
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
- * @version 0.2.6
30
  */
31
  class Mzax_Emarketing_Model_Report_Aggregator_Events
32
  extends Mzax_Emarketing_Model_Report_Aggregator_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
+ * @version 0.2.7
30
  */
31
  class Mzax_Emarketing_Model_Report_Aggregator_Events
32
  extends Mzax_Emarketing_Model_Report_Aggregator_Abstract
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Goals.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -37,7 +37,7 @@
37
  *
38
  * @author Jacob Siefer
39
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
40
- * @version 0.2.6
41
  */
42
  class Mzax_Emarketing_Model_Report_Aggregator_Goals
43
  extends Mzax_Emarketing_Model_Report_Aggregator_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
37
  *
38
  * @author Jacob Siefer
39
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
40
+ * @version 0.2.7
41
  */
42
  class Mzax_Emarketing_Model_Report_Aggregator_Goals
43
  extends Mzax_Emarketing_Model_Report_Aggregator_Abstract
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Rates.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -26,7 +26,7 @@
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
- * @version 0.2.6
30
  */
31
  class Mzax_Emarketing_Model_Report_Aggregator_Rates
32
  extends Mzax_Emarketing_Model_Report_Aggregator_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
+ * @version 0.2.7
30
  */
31
  class Mzax_Emarketing_Model_Report_Aggregator_Rates
32
  extends Mzax_Emarketing_Model_Report_Aggregator_Abstract
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Recipient.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -37,7 +37,7 @@
37
  *
38
  * @author Jacob Siefer
39
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
40
- * @version 0.2.6
41
  */
42
  class Mzax_Emarketing_Model_Report_Aggregator_Recipient
43
  extends Mzax_Emarketing_Model_Report_Aggregator_Abstract
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
37
  *
38
  * @author Jacob Siefer
39
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
40
+ * @version 0.2.7
41
  */
42
  class Mzax_Emarketing_Model_Report_Aggregator_Recipient
43
  extends Mzax_Emarketing_Model_Report_Aggregator_Abstract
app/code/community/Mzax/Emarketing/Model/Report/Aggregator/Tracker.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Report/Query.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -26,7 +26,7 @@
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
- * @version 0.2.6
30
  */
31
  class Mzax_Emarketing_Model_Report_Query
32
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
+ * @version 0.2.7
30
  */
31
  class Mzax_Emarketing_Model_Report_Query
32
  {
app/code/community/Mzax/Emarketing/Model/Report/Seeder.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Campaign.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -50,6 +50,22 @@ class Mzax_Emarketing_Model_Resource_Campaign extends Mage_Core_Model_Resource_D
50
  }
51
 
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
 
54
 
55
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
50
  }
51
 
52
 
53
+
54
+ /**
55
+ * Retreive number of recipients
56
+ *
57
+ * @param Mzax_Emarketing_Model_Campaign $camapgin
58
+ * @return integer
59
+ */
60
+ public function countRecipients(Mzax_Emarketing_Model_Campaign $camapgin)
61
+ {
62
+ $select = $this->_getReadAdapter()->select()
63
+ ->from($this->getTable('mzax_emarketing/recipient'), 'COUNT(recipient_id)')
64
+ ->where('campaign_id = ?', $camapgin->getId())
65
+ ->group('campaign_id');
66
+
67
+ return (int) $this->_getReadAdapter()->fetchOne($select);
68
+ }
69
 
70
 
71
 
app/code/community/Mzax/Emarketing/Model/Resource/Campaign/Collection.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Resource_Campaign_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Resource_Campaign_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
30
  {
app/code/community/Mzax/Emarketing/Model/Resource/Campaign/Preset.php ADDED
@@ -0,0 +1,191 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Mzax Emarketing (www.mzax.de)
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this Extension in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @version 0.2.7
13
+ * @category Mzax
14
+ * @package Mzax_Emarketing
15
+ * @author Jacob Siefer (jacob@mzax.de)
16
+ * @copyright Copyright (c) 2015 Jacob Siefer
17
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
+ */
19
+
20
+
21
+
22
+ class Mzax_Emarketing_Model_Resource_Campaign_Preset
23
+ {
24
+ const SUFFIX = '.mzax.campaign';
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+ /**
33
+ * Load preset from file
34
+ *
35
+ * @param Mzax_Emarketing_Model_Campaign_Preset $preset
36
+ * @param string $file
37
+ * @return Mzax_Emarketing_Model_Resource_Campaign_Preset
38
+ */
39
+ public function loadByFile(Mzax_Emarketing_Model_Campaign_Preset $preset, $file)
40
+ {
41
+ $data = $this->_decodeData(file_get_contents($file));
42
+
43
+ $preset->setData($data);
44
+ $preset->setFile($file);
45
+ $preset->setFilename(basename($file, self::SUFFIX));
46
+
47
+ return $this;
48
+ }
49
+
50
+
51
+
52
+ /**
53
+ * Load preset by name (filename)
54
+ *
55
+ * @param Mzax_Emarketing_Model_Campaign_Preset $preset
56
+ * @param string $name
57
+ * @throws Exception
58
+ * @return Mzax_Emarketing_Model_Resource_Campaign_Preset
59
+ */
60
+ public function load(Mzax_Emarketing_Model_Campaign_Preset $preset, $name)
61
+ {
62
+ if(!preg_match('/^[a-z0-9_-]+$/i', $name)) {
63
+ throw new Exception("Invalid preset filename. ($name)");
64
+ }
65
+ $file = $this->getPath() . DS . $name . self::SUFFIX;
66
+
67
+ if(!file_exists($file)) {
68
+ throw new Mage_Core_Exception(Mage::helper('mzax_emarketing')->__("Could not find any preset by name '%s'", $name));
69
+ }
70
+
71
+ return $this->loadByFile($preset, $file);
72
+ }
73
+
74
+
75
+ /**
76
+ * Install preset from file
77
+ *
78
+ * @param string $file
79
+ * @param string $overwrite
80
+ * @param string $author
81
+ * @return Mzax_Emarketing_Model_Resource_Campaign_Preset
82
+ */
83
+ public function installFile($file, $overwrite = false, $author = null)
84
+ {
85
+ $name = basename($file, self::SUFFIX);
86
+ $data = file_get_contents($file);
87
+ if(!$data) {
88
+ throw new Exception('File is empty');
89
+ }
90
+ return $this->install($name, $data, $overwrite, $author);
91
+ }
92
+
93
+
94
+
95
+
96
+ /**
97
+ * Install preset
98
+ *
99
+ * @param string $name
100
+ * @param string $data
101
+ * @param boolean $overwrite
102
+ * @throws Exception
103
+ * @throws Mage_Core_Exception
104
+ * @return Mzax_Emarketing_Model_Resource_Campaign_Preset
105
+ */
106
+ public function install($name, $data, $overwrite = false, $author = null)
107
+ {
108
+ if(!preg_match('/^[a-z0-9_-]+$/i', $name)) {
109
+ throw new Exception("Invalid preset filename. ($name)");
110
+ }
111
+
112
+ $file = $this->getPath() . DS . $name . self::SUFFIX;
113
+
114
+ if(!$overwrite && !file_exists($file)) {
115
+ throw new Mage_Core_Exception(Mage::helper('mzax_emarketing')->__("Preset by nae '%s' already installed", $name));
116
+ }
117
+
118
+ $data = $this->_decodeData($data);
119
+ if(!$data) {
120
+ throw new Exception("Failed to decode preset");
121
+ }
122
+ if($author) {
123
+ $data['author'] = (string) $author;
124
+ }
125
+ $data['installed_at'] = time();
126
+
127
+ $data = $this->_encodeData($data);
128
+
129
+ if(!file_put_contents($file, $data)) {
130
+ throw new Exception("Failed to install preset");
131
+ }
132
+
133
+ @chmod($file, 0666);
134
+
135
+ return $this;
136
+ }
137
+
138
+
139
+
140
+
141
+ /**
142
+ * Retrieve all preset files
143
+ *
144
+ * @return array
145
+ */
146
+ public function getAllPresetFiles()
147
+ {
148
+ $pattern = $this->getPath() . DS . '*' . self::SUFFIX;
149
+ return glob($pattern);
150
+ }
151
+
152
+
153
+
154
+ /**
155
+ * Retrieve preset storage path
156
+ *
157
+ * @throws Exception
158
+ * @return string
159
+ */
160
+ public function getPath()
161
+ {
162
+ $path = array(
163
+ Mage::getBaseDir('var'),
164
+ 'mzax_emarketing',
165
+ 'presets'
166
+ );
167
+ $path = implode(DS, $path);
168
+
169
+ if(!is_dir($path) && !mkdir($path, 0777, true)) {
170
+ throw new Exception("Failed to make directory ($path)");
171
+ }
172
+
173
+ return $path;
174
+ }
175
+
176
+
177
+ protected function _decodeData($data)
178
+ {
179
+ $data = base64_decode($data);
180
+ return Zend_Json::decode($data);
181
+ }
182
+
183
+
184
+ protected function _encodeData($data)
185
+ {
186
+ $data = Zend_Json::encode($data);
187
+ return base64_encode($data);
188
+ }
189
+
190
+
191
+ }
app/code/community/Mzax/Emarketing/Model/Resource/Campaign/Preset/Collection.php ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Mzax Emarketing (www.mzax.de)
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this Extension in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @version 0.2.7
13
+ * @category Mzax
14
+ * @package Mzax_Emarketing
15
+ * @author Jacob Siefer (jacob@mzax.de)
16
+ * @copyright Copyright (c) 2015 Jacob Siefer
17
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
+ */
19
+
20
+
21
+ /**
22
+ * Campagin Preset Collection
23
+ *
24
+ * @method Mzax_Emarketing_Model_Campaign_Preset getNewEmptyItem()
25
+ *
26
+ * @author Jacob Siefer
27
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
+ */
30
+ class Mzax_Emarketing_Model_Resource_Campaign_Preset_Collection extends Varien_Data_Collection
31
+ {
32
+
33
+ public function __construct()
34
+ {
35
+ parent::__construct();
36
+ $this->setItemObjectClass('mzax_emarketing/campaign_preset');
37
+ }
38
+
39
+
40
+ public function loadData($printQuery = false, $logQuery = false)
41
+ {
42
+ $files = $this->_getResource()->getAllPresetFiles();
43
+ foreach($files as $file) {
44
+ $item = $this->getNewEmptyItem();
45
+ $item->loadByFile($file);
46
+ $this->addItem($item);
47
+ }
48
+
49
+
50
+ return $this;
51
+ }
52
+
53
+
54
+
55
+
56
+
57
+ /**
58
+ * Retrieve resource model
59
+ *
60
+ * @return Mzax_Emarketing_Model_Resource_Campaign_Preset
61
+ */
62
+ protected function _getResource()
63
+ {
64
+ return Mage::getResourceSingleton('mzax_emarketing/campaign_preset');
65
+ }
66
+
67
+
68
+
69
+ }
app/code/community/Mzax/Emarketing/Model/Resource/Campaign/Variation.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Campaign/Variation/Collection.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Conversion/Tracker.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Conversion/Tracker/Collection.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Email/Collection.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -29,7 +29,7 @@
29
  *
30
  * @author Jacob Siefer
31
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
32
- * @version 0.2.6
33
  */
34
  abstract class Mzax_Emarketing_Model_Resource_Email_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
35
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
29
  *
30
  * @author Jacob Siefer
31
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
32
+ * @version 0.2.7
33
  */
34
  abstract class Mzax_Emarketing_Model_Resource_Email_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
35
  {
app/code/community/Mzax/Emarketing/Model/Resource/Goal.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Helper.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Inbox/Email.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Inbox/Email/Collection.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Link.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Link/Reference.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Outbox/Email.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Resource_Outbox_Email extends Mage_Core_Model_Resource_Db_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Resource_Outbox_Email extends Mage_Core_Model_Resource_Db_Abstract
30
  {
app/code/community/Mzax/Emarketing/Model/Resource/Outbox/Email/Collection.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -39,8 +39,12 @@ class Mzax_Emarketing_Model_Resource_Outbox_Email_Collection
39
  public function addTimeFilter($now = null)
40
  {
41
  if(!$now) {
42
- $now = Mage::app()->getLocale()->storeTimeStamp();
43
  }
 
 
 
 
44
  $this->addFieldToFilter('day_filter', array(array('finset' => date('w', $now)), array('eq' => '')));
45
  $this->addFieldToFilter('time_filter', array(array('finset' => date('G', $now)), array('eq' => '')));
46
  return $this;
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
39
  public function addTimeFilter($now = null)
40
  {
41
  if(!$now) {
42
+ $now = time();
43
  }
44
+
45
+ // use admin store time
46
+ $now -= (int) Mage::app()->getLocale()->storeDate(Mage_Core_Model_App::ADMIN_STORE_ID)->getGmtOffset();
47
+
48
  $this->addFieldToFilter('day_filter', array(array('finset' => date('w', $now)), array('eq' => '')));
49
  $this->addFieldToFilter('time_filter', array(array('finset' => date('G', $now)), array('eq' => '')));
50
  return $this;
app/code/community/Mzax/Emarketing/Model/Resource/Recipient.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Address.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Binding.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Collection.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Error.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Model_Resource_Recipient_Error extends Mage_Core_Model_Resource_Db_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Model_Resource_Recipient_Error extends Mage_Core_Model_Resource_Db_Abstract
30
  {
app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Error/Collection.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_Model_Resource_Recipient_Error_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_Model_Resource_Recipient_Error_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
31
  {
app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Event.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Recipient/Goal/Binder.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Setup.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -29,6 +29,25 @@ class Mzax_Emarketing_Model_Resource_Setup extends Mage_Eav_Model_Entity_Setup
29
  {
30
 
31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
 
34
  /**
@@ -53,9 +72,6 @@ class Mzax_Emarketing_Model_Resource_Setup extends Mage_Eav_Model_Entity_Setup
53
  $table->addForeignKey($fkName, $columnName, $refTable, $columnName,
54
  Varien_Db_Ddl_Table::ACTION_CASCADE, Varien_Db_Ddl_Table::ACTION_CASCADE);
55
 
56
-
57
- //$this->getConnection()->addForeignKey($fkName, $table, $columnName, $refTable, $refColumnName);
58
-
59
  return $this;
60
  }
61
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
29
  {
30
 
31
 
32
+ /**
33
+ * Install campaign presets specified dir
34
+ *
35
+ * @param string $sourceDir
36
+ * @return Mzax_Emarketing_Model_Resource_Setup
37
+ */
38
+ public function installCampaignPresets($dir)
39
+ {
40
+ /* @var $resource Mzax_Emarketing_Model_Resource_Campaign_Preset */
41
+ $resource = Mage::getResourceSingleton('mzax_emarketing/campaign_preset');
42
+ $pattern = rtrim($dir, DS) . DS . '*' . $resource::SUFFIX;
43
+
44
+ foreach(glob($pattern) as $file) {
45
+ $resource->installFile($file, true, 'Mzax - eMarketing');
46
+ }
47
+
48
+ return $this;
49
+ }
50
+
51
 
52
 
53
  /**
72
  $table->addForeignKey($fkName, $columnName, $refTable, $columnName,
73
  Varien_Db_Ddl_Table::ACTION_CASCADE, Varien_Db_Ddl_Table::ACTION_CASCADE);
74
 
 
 
 
75
  return $this;
76
  }
77
 
app/code/community/Mzax/Emarketing/Model/Resource/Template.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Template/Collection.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Resource/Useragent.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Session.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -31,7 +31,7 @@
31
  *
32
  * @author Jacob Siefer
33
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
34
- * @version 0.2.6
35
  */
36
  class Mzax_Emarketing_Model_Session extends Mage_Core_Model_Session_Abstract
37
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
31
  *
32
  * @author Jacob Siefer
33
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
34
+ * @version 0.2.7
35
  */
36
  class Mzax_Emarketing_Model_Session extends Mage_Core_Model_Session_Abstract
37
  {
app/code/community/Mzax/Emarketing/Model/System/Config/Backend/DomainThreshold.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/System/Config/Source/GeoIp.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/System/Config/Source/MailStorage.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/System/Config/Source/SmtpAuthentication.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Template.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/Model/Template/Exception.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/controllers/Admin/CampaignController.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,6 +25,9 @@ class Mzax_Emarketing_Admin_CampaignController extends Mage_Adminhtml_Controller
25
 
26
  public function indexAction()
27
  {
 
 
 
28
  $this->loadLayout();
29
  $this->_setActiveMenu('promo/emarketing');
30
 
@@ -44,6 +47,8 @@ class Mzax_Emarketing_Admin_CampaignController extends Mage_Adminhtml_Controller
44
 
45
  /**
46
  * Create new campaign action
 
 
47
  */
48
  public function newAction()
49
  {
@@ -69,6 +74,9 @@ class Mzax_Emarketing_Admin_CampaignController extends Mage_Adminhtml_Controller
69
  return $this->_forward('edit');
70
  }
71
 
 
 
 
72
  $this->loadLayout();
73
  $this->_setActiveMenu('promo/emarketing');
74
  $this->renderLayout();
@@ -77,6 +85,52 @@ class Mzax_Emarketing_Admin_CampaignController extends Mage_Adminhtml_Controller
77
 
78
 
79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
 
81
  public function editAction()
82
  {
@@ -90,6 +144,12 @@ class Mzax_Emarketing_Admin_CampaignController extends Mage_Adminhtml_Controller
90
  $campaign->setFilters($values['filters']);
91
  }
92
  }
 
 
 
 
 
 
93
 
94
  $this->loadLayout();
95
  $this->_setActiveMenu('promo/emarketing');
@@ -139,26 +199,37 @@ class Mzax_Emarketing_Admin_CampaignController extends Mage_Adminhtml_Controller
139
  }
140
  }
141
  }
142
-
143
-
144
  $campaign->save();
145
 
 
 
 
 
 
146
  Mage::app()->cleanCache(array($campaign::CACHE_TAG));
147
 
148
- Mage::getSingleton('adminhtml/session')->addSuccess($this->__('Campaign was successfully saved'));
 
 
 
 
 
 
149
  Mage::dispatchEvent('adminhtml_campaign_save_after', array('campaign' => $campaign));
150
 
151
  if ($redirectBack) {
152
  $this->_redirect('*/*/edit', array(
153
- 'id' => $campaign->getId(),
154
- '_current'=>true
155
  ));
156
  return;
157
  }
158
  }
159
  catch (Exception $e){
160
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
161
- Mage::getSingleton('adminhtml/session')->setCampaignData($data);
162
  $this->getResponse()->setRedirect($this->getUrl('*/*/edit', array('id'=>$campaign->getId())));
163
  return;
164
  }
@@ -281,7 +352,7 @@ class Mzax_Emarketing_Admin_CampaignController extends Mage_Adminhtml_Controller
281
  $this->_getSession()->addSuccess($this->__("Campaign moved to archive."));
282
  }
283
  else {
284
- $this->_getSession()->addSuccess($this->__("Campaign sucessfully unarchived."));
285
  }
286
  }
287
  }
@@ -291,6 +362,91 @@ class Mzax_Emarketing_Admin_CampaignController extends Mage_Adminhtml_Controller
291
 
292
 
293
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
 
295
 
296
  /**
@@ -660,6 +816,9 @@ class Mzax_Emarketing_Admin_CampaignController extends Mage_Adminhtml_Controller
660
  {
661
  $campaign = $this->_initCampaign();
662
 
 
 
 
663
  $this->loadLayout('mzax_popup');
664
  $this->_addContent(
665
  $this->getLayout()->createBlock('mzax_emarketing/campaign_preview')->setCampaign($campaign));
@@ -701,7 +860,9 @@ class Mzax_Emarketing_Admin_CampaignController extends Mage_Adminhtml_Controller
701
 
702
  Mage::register('current_recipient', $recipient);
703
 
704
-
 
 
705
  $this->loadLayout('mzax_popup');
706
  $this->renderLayout();
707
  }
@@ -771,10 +932,10 @@ class Mzax_Emarketing_Admin_CampaignController extends Mage_Adminhtml_Controller
771
  if ($campaign->getId()) {
772
  try {
773
  $campaign->delete();
774
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('mzax_emarketing')->__('Campaign was deleted'));
775
  }
776
  catch (Exception $e){
777
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
778
  }
779
  }
780
  $this->_redirect('*/*');
@@ -813,7 +974,7 @@ class Mzax_Emarketing_Admin_CampaignController extends Mage_Adminhtml_Controller
813
  $this->_getSession()->addError($this->__('Template not found'));
814
  }
815
  }
816
- Mage::getSingleton('adminhtml/session')->setCampaignData($data);
817
  }
818
  $this->getResponse()->setRedirect($this->getUrl('*/*/edit', array('id'=>$campaign->getId())));
819
  }
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
 
26
  public function indexAction()
27
  {
28
+ $this->_title($this->__('eMarketing'))
29
+ ->_title($this->__('Manage Campaigns'));
30
+
31
  $this->loadLayout();
32
  $this->_setActiveMenu('promo/emarketing');
33
 
47
 
48
  /**
49
  * Create new campaign action
50
+ *
51
+ * @return void
52
  */
53
  public function newAction()
54
  {
74
  return $this->_forward('edit');
75
  }
76
 
77
+ $this->_title($this->__('eMarketing'))
78
+ ->_title($this->__('New Campaign'));
79
+
80
  $this->loadLayout();
81
  $this->_setActiveMenu('promo/emarketing');
82
  $this->renderLayout();
85
 
86
 
87
 
88
+ /**
89
+ * Create new campaign from preset action
90
+ *
91
+ * @return void
92
+ */
93
+ public function usePresetAction()
94
+ {
95
+ $presetName = $this->getRequest()->getParam('preset');
96
+
97
+ if(!$presetName) {
98
+ $this->_redirect('*/*/new');
99
+ return;
100
+ }
101
+
102
+ try {
103
+ /* @var $preset Mzax_Emarketing_Model_Campaign_Preset */
104
+ $preset = Mage::getModel('mzax_emarketing/campaign_preset')->load($presetName);
105
+
106
+ $campaign = $preset->makeCampaign();
107
+
108
+ Mage::register('current_campaign', $campaign);
109
+
110
+ $this->_forward('new');
111
+ }
112
+ catch(Mage_Core_Exception $e) {
113
+ $this->_getSession()->addError($this->__("Failed to load preset"));
114
+ $this->_redirect('*/*/new');
115
+ return;
116
+ }
117
+ catch(Exception $e) {
118
+ if(Mage::getIsDeveloperMode()) {
119
+ $this->_getSession()->addError($e->getMessage());
120
+ }
121
+ else {
122
+ $this->_getSession()->addError($this->__("Failed to load preset"));
123
+ }
124
+ Mage::logException($e);
125
+ $this->_redirect('*/*/new');
126
+ return;
127
+ }
128
+ }
129
+
130
+
131
+
132
+
133
+
134
 
135
  public function editAction()
136
  {
144
  $campaign->setFilters($values['filters']);
145
  }
146
  }
147
+ else if($campaign->getId() && $this->_getSession()->getData('init_default_filters', true) == $campaign->getId()) {
148
+ $campaign->getRecipientProvider()->setDefaultFilters();
149
+ }
150
+
151
+ $this->_title($this->__('eMarketing'))
152
+ ->_title($this->__('Edit %s', $campaign->getName()));
153
 
154
  $this->loadLayout();
155
  $this->_setActiveMenu('promo/emarketing');
199
  }
200
  }
201
  }
202
+
203
+ $initDefaultFilters = !$campaign->getId() && !$campaign->getPresetName();
204
  $campaign->save();
205
 
206
+ if($initDefaultFilters) {
207
+ $this->_getSession()->setData('init_default_filters', $campaign->getId());
208
+ }
209
+
210
+
211
  Mage::app()->cleanCache(array($campaign::CACHE_TAG));
212
 
213
+ if($campaign->getPresetName()) {
214
+ $this->_getSession()->addSuccess($this->__('Campaign was successfully created from preset `%s`.', $campaign->getPresetName()));
215
+ $this->_getSession()->addNotice($this->__("Double check your filter and segmentation settings!"));
216
+ }
217
+ else {
218
+ $this->_getSession()->addSuccess($this->__('Campaign was successfully saved'));
219
+ }
220
  Mage::dispatchEvent('adminhtml_campaign_save_after', array('campaign' => $campaign));
221
 
222
  if ($redirectBack) {
223
  $this->_redirect('*/*/edit', array(
224
+ 'id' => $campaign->getId(),
225
+ '_current'=>true
226
  ));
227
  return;
228
  }
229
  }
230
  catch (Exception $e){
231
+ $this->_getSession()->addError($e->getMessage());
232
+ $this->_getSession()->setCampaignData($data);
233
  $this->getResponse()->setRedirect($this->getUrl('*/*/edit', array('id'=>$campaign->getId())));
234
  return;
235
  }
352
  $this->_getSession()->addSuccess($this->__("Campaign moved to archive."));
353
  }
354
  else {
355
+ $this->_getSession()->addSuccess($this->__("Campaign successfully unarchived."));
356
  }
357
  }
358
  }
362
 
363
 
364
 
365
+ public function duplicateAction()
366
+ {
367
+ $campaign = $this->_initCampaign();
368
+ if ($campaign->getId()) {
369
+ $newCampaign = clone $campaign;
370
+ $newCampaign->setName($this->__('Copy of %s', $campaign->getName()));
371
+ $newCampaign->isArchived(false);
372
+ $newCampaign->save();
373
+ $this->_getSession()->addSuccess($this->__("Campaign sucessfully duplicated."));
374
+ }
375
+ $this->_redirect('*/*/edit', array('_current' => true, 'tab' => 'tasks', 'id' => $newCampaign->getId()));
376
+ }
377
+
378
+
379
+ /**
380
+ * Download campaign template
381
+ *
382
+ * @return void
383
+ */
384
+ public function downloadAction()
385
+ {
386
+ $campaign = $this->_initCampaign();
387
+ if ($campaign->getId()) {
388
+ try {
389
+ $data = $campaign->export();
390
+
391
+ $fileName = preg_replace('/[^a-z0-9]+/', '-', strtolower($campaign->getName()));
392
+ $fileName.= Mzax_Emarketing_Model_Resource_Campaign_Preset::SUFFIX;
393
+
394
+ $contentLength = strlen($data);
395
+
396
+ $this->getResponse()
397
+ ->setHttpResponseCode(200)
398
+ ->setHeader('Pragma', 'public', true)
399
+ ->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
400
+ ->setHeader('Content-type', 'text/plain', true)
401
+ ->setHeader('Content-Length', $contentLength)
402
+ ->setHeader('Content-Disposition', 'attachment; filename="'.$fileName.'"')
403
+ ->setHeader('Last-Modified', date('r'))
404
+ ->setBody($data);
405
+
406
+ return;
407
+ }
408
+ catch (Exception $e){
409
+ $this->_getSession()->addError($e->getMessage());
410
+ }
411
+ }
412
+ $this->_redirect('*/*');
413
+ }
414
+
415
+
416
+
417
+ /**
418
+ * Install new preset from campaign
419
+ *
420
+ * @return void
421
+ */
422
+ public function installAsPresetAction()
423
+ {
424
+ $campaign = $this->_initCampaign();
425
+ if ($campaign->getId()) {
426
+ try {
427
+ $data = $campaign->export();
428
+
429
+ $filename = preg_replace('/[^a-z0-9]+/', '-', strtolower($campaign->getName()));
430
+
431
+ $user = Mage::getSingleton('admin/session')->getUser();
432
+
433
+ /* @var $resource Mzax_Emarketing_Model_Resource_Campaign_Preset */
434
+ $resource = Mage::getResourceSingleton('mzax_emarketing/campaign_preset');
435
+ $resource->install('local-' . $filename, $data, true, $user->getName());
436
+
437
+ $this->_getSession()->addSuccess('Preset installed successfully');
438
+ $this->_redirect('*/*/new');
439
+ return;
440
+ }
441
+ catch (Exception $e){
442
+ $this->_getSession()->addError($e->getMessage());
443
+ }
444
+ }
445
+ $this->_redirect('*/*');
446
+ }
447
+
448
+
449
+
450
 
451
 
452
  /**
816
  {
817
  $campaign = $this->_initCampaign();
818
 
819
+ $this->_title($this->__('eMarketing'))
820
+ ->_title($this->__('Preview Email'));
821
+
822
  $this->loadLayout('mzax_popup');
823
  $this->_addContent(
824
  $this->getLayout()->createBlock('mzax_emarketing/campaign_preview')->setCampaign($campaign));
860
 
861
  Mage::register('current_recipient', $recipient);
862
 
863
+ $this->_title($this->__('eMarketing'))
864
+ ->_title($this->__('Send Email'));
865
+
866
  $this->loadLayout('mzax_popup');
867
  $this->renderLayout();
868
  }
932
  if ($campaign->getId()) {
933
  try {
934
  $campaign->delete();
935
+ $this->_getSession()->addSuccess(Mage::helper('mzax_emarketing')->__('Campaign was deleted'));
936
  }
937
  catch (Exception $e){
938
+ $this->_getSession()->addError($e->getMessage());
939
  }
940
  }
941
  $this->_redirect('*/*');
974
  $this->_getSession()->addError($this->__('Template not found'));
975
  }
976
  }
977
+ $this->_getSession()->setCampaignData($data);
978
  }
979
  $this->getResponse()->setRedirect($this->getUrl('*/*/edit', array('id'=>$campaign->getId())));
980
  }
app/code/community/Mzax/Emarketing/controllers/Admin/InboxController.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,6 +24,9 @@ class Mzax_Emarketing_Admin_InboxController extends Mage_Adminhtml_Controller_Ac
24
 
25
  public function indexAction()
26
  {
 
 
 
27
  $this->loadLayout();
28
  $this->_setActiveMenu('promo/emarketing');
29
 
@@ -41,6 +44,9 @@ class Mzax_Emarketing_Admin_InboxController extends Mage_Adminhtml_Controller_Ac
41
  {
42
  $message = $this->_initEmail();
43
 
 
 
 
44
  $this->loadLayout();
45
  $this->_setActiveMenu('promo/emarketing');
46
  $this->renderLayout();
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
 
25
  public function indexAction()
26
  {
27
+ $this->_title($this->__('eMarketing'))
28
+ ->_title($this->__('Inbox'));
29
+
30
  $this->loadLayout();
31
  $this->_setActiveMenu('promo/emarketing');
32
 
44
  {
45
  $message = $this->_initEmail();
46
 
47
+ $this->_title($this->__('eMarketing'))
48
+ ->_title($this->__('Inbox Email'));
49
+
50
  $this->loadLayout();
51
  $this->_setActiveMenu('promo/emarketing');
52
  $this->renderLayout();
app/code/community/Mzax/Emarketing/controllers/Admin/OutboxController.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,6 +24,10 @@ class Mzax_Emarketing_Admin_OutboxController extends Mage_Adminhtml_Controller_A
24
 
25
  public function indexAction()
26
  {
 
 
 
 
27
  $this->loadLayout();
28
  $this->_setActiveMenu('promo/emarketing');
29
 
@@ -41,6 +45,9 @@ class Mzax_Emarketing_Admin_OutboxController extends Mage_Adminhtml_Controller_A
41
  {
42
  $message = $this->_initEmail();
43
 
 
 
 
44
  $this->loadLayout();
45
  $this->_setActiveMenu('promo/emarketing');
46
  $this->renderLayout();
@@ -177,7 +184,7 @@ class Mzax_Emarketing_Admin_OutboxController extends Mage_Adminhtml_Controller_A
177
  {
178
  $messages = $this->getRequest()->getPost('messages');
179
  if(!empty($messages)) {
180
- if($count = $this->getOutbox()->sendEmails(array('ids' => $messages))) {
181
  $this->_getSession()->addSuccess(
182
  $this->__('%s emails sent.', $count)
183
  );
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
 
25
  public function indexAction()
26
  {
27
+ $this->_title($this->__('eMarketing'))
28
+ ->_title($this->__('Outbox'));
29
+
30
+
31
  $this->loadLayout();
32
  $this->_setActiveMenu('promo/emarketing');
33
 
45
  {
46
  $message = $this->_initEmail();
47
 
48
+ $this->_title($this->__('eMarketing'))
49
+ ->_title($this->__('Outbox Email'));
50
+
51
  $this->loadLayout();
52
  $this->_setActiveMenu('promo/emarketing');
53
  $this->renderLayout();
184
  {
185
  $messages = $this->getRequest()->getPost('messages');
186
  if(!empty($messages)) {
187
+ if($count = $this->getOutbox()->sendEmails(array('ids' => $messages, 'force' => true))) {
188
  $this->_getSession()->addSuccess(
189
  $this->__('%s emails sent.', $count)
190
  );
app/code/community/Mzax/Emarketing/controllers/Admin/ShortcutController.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/controllers/Admin/TemplateController.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,6 +25,9 @@ class Mzax_Emarketing_Admin_TemplateController extends Mage_Adminhtml_Controller
25
 
26
  public function indexAction()
27
  {
 
 
 
28
  $this->loadLayout();
29
  $this->_setActiveMenu('promo/emarketing');
30
 
@@ -47,7 +50,10 @@ class Mzax_Emarketing_Admin_TemplateController extends Mage_Adminhtml_Controller
47
  $template->addData($values['template']);
48
  }
49
  }
50
-
 
 
 
51
  $this->loadLayout();
52
  $this->_setActiveMenu('promo/emarketing');
53
  $this->renderLayout();
@@ -166,9 +172,9 @@ class Mzax_Emarketing_Admin_TemplateController extends Mage_Adminhtml_Controller
166
  $template->addData($data['template']);
167
  }
168
 
169
-
170
  $template->save();
171
-
 
172
  Mage::getSingleton('adminhtml/session')->addSuccess($this->__('Template was successfully saved'));
173
 
174
  if ($redirectBack) {
@@ -213,7 +219,7 @@ class Mzax_Emarketing_Admin_TemplateController extends Mage_Adminhtml_Controller
213
  ->setHttpResponseCode(200)
214
  ->setHeader('Pragma', 'public', true)
215
  ->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
216
- ->setHeader('Content-type', 'text/csv', true)
217
  ->setHeader('Content-Length', $contentLength)
218
  ->setHeader('Content-Disposition', 'attachment; filename="'.$fileName.'"')
219
  ->setHeader('Last-Modified', date('r'))
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
 
26
  public function indexAction()
27
  {
28
+ $this->_title($this->__('eMarketing'))
29
+ ->_title($this->__('Manage Templates'));
30
+
31
  $this->loadLayout();
32
  $this->_setActiveMenu('promo/emarketing');
33
 
50
  $template->addData($values['template']);
51
  }
52
  }
53
+
54
+ $this->_title($this->__('eMarketing'))
55
+ ->_title($this->__('Edit Template'));
56
+
57
  $this->loadLayout();
58
  $this->_setActiveMenu('promo/emarketing');
59
  $this->renderLayout();
172
  $template->addData($data['template']);
173
  }
174
 
 
175
  $template->save();
176
+
177
+ Mage::app()->cleanCache(array(Mzax_Emarketing_Model_Campaign::CACHE_TAG));
178
  Mage::getSingleton('adminhtml/session')->addSuccess($this->__('Template was successfully saved'));
179
 
180
  if ($redirectBack) {
219
  ->setHttpResponseCode(200)
220
  ->setHeader('Pragma', 'public', true)
221
  ->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
222
+ ->setHeader('Content-type', 'text/plain', true)
223
  ->setHeader('Content-Length', $contentLength)
224
  ->setHeader('Content-Disposition', 'attachment; filename="'.$fileName.'"')
225
  ->setHeader('Last-Modified', date('r'))
app/code/community/Mzax/Emarketing/controllers/Admin/TrackerController.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Emarketing_Admin_TrackerController extends Mage_Adminhtml_Controller_Action
30
  {
@@ -33,6 +33,9 @@ class Mzax_Emarketing_Admin_TrackerController extends Mage_Adminhtml_Controller_
33
 
34
  public function indexAction()
35
  {
 
 
 
36
  $this->loadLayout();
37
  $this->_setActiveMenu('promo/emarketing');
38
 
@@ -59,6 +62,9 @@ class Mzax_Emarketing_Admin_TrackerController extends Mage_Adminhtml_Controller_
59
  if($tracker->getId() && $tracker->isActive() && !$tracker->isAggregated()) {
60
  $this->_getSession()->addWarning($this->__('This tracker has changed and is not yet aggregated. You can do it manually under "Tasks" or wait a while.'));
61
  }
 
 
 
62
 
63
  $this->loadLayout();
64
  $this->_setActiveMenu('promo/emarketing');
@@ -111,6 +117,9 @@ class Mzax_Emarketing_Admin_TrackerController extends Mage_Adminhtml_Controller_
111
  return $this->_forward('edit');
112
  }
113
 
 
 
 
114
  $this->loadLayout();
115
  $this->_setActiveMenu('promo/emarketing');
116
  $this->renderLayout();
@@ -409,7 +418,7 @@ class Mzax_Emarketing_Admin_TrackerController extends Mage_Adminhtml_Controller_
409
  ->setHttpResponseCode(200)
410
  ->setHeader('Pragma', 'public', true)
411
  ->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
412
- ->setHeader('Content-type', 'text/csv', true)
413
  ->setHeader('Content-Length', $contentLength)
414
  ->setHeader('Content-Disposition', 'attachment; filename="'.$fileName.'"')
415
  ->setHeader('Last-Modified', date('r'))
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Emarketing_Admin_TrackerController extends Mage_Adminhtml_Controller_Action
30
  {
33
 
34
  public function indexAction()
35
  {
36
+ $this->_title($this->__('eMarketing'))
37
+ ->_title($this->__('Manage Trackers'));
38
+
39
  $this->loadLayout();
40
  $this->_setActiveMenu('promo/emarketing');
41
 
62
  if($tracker->getId() && $tracker->isActive() && !$tracker->isAggregated()) {
63
  $this->_getSession()->addWarning($this->__('This tracker has changed and is not yet aggregated. You can do it manually under "Tasks" or wait a while.'));
64
  }
65
+
66
+ $this->_title($this->__('eMarketing'))
67
+ ->_title($this->__('Edit Tracker'));
68
 
69
  $this->loadLayout();
70
  $this->_setActiveMenu('promo/emarketing');
117
  return $this->_forward('edit');
118
  }
119
 
120
+ $this->_title($this->__('eMarketing'))
121
+ ->_title($this->__('New Tracker'));
122
+
123
  $this->loadLayout();
124
  $this->_setActiveMenu('promo/emarketing');
125
  $this->renderLayout();
418
  ->setHttpResponseCode(200)
419
  ->setHeader('Pragma', 'public', true)
420
  ->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
421
+ ->setHeader('Content-type', 'text/plain', true)
422
  ->setHeader('Content-Length', $contentLength)
423
  ->setHeader('Content-Disposition', 'attachment; filename="'.$fileName.'"')
424
  ->setHeader('Last-Modified', date('r'))
app/code/community/Mzax/Emarketing/controllers/BeaconController.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/controllers/EmailController.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/controllers/LinkController.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Emarketing_LinkController extends Mage_Core_Controller_Front_Action
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Emarketing_LinkController extends Mage_Core_Controller_Front_Action
31
  {
app/code/community/Mzax/Emarketing/controllers/UnsubscribeController.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/data/useragent_regexes.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/etc/adminhtml.xml CHANGED
@@ -10,7 +10,7 @@
10
  * It is also available through the world-wide-web at this URL:
11
  * http://opensource.org/licenses/osl-3.0.php
12
  *
13
- * @version 0.2.6
14
  * @category Mzax
15
  * @package Mzax_Emarketing
16
  * @author Jacob Siefer (jacob@mzax.de)
10
  * It is also available through the world-wide-web at this URL:
11
  * http://opensource.org/licenses/osl-3.0.php
12
  *
13
+ * @version 0.2.7
14
  * @category Mzax
15
  * @package Mzax_Emarketing
16
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/etc/config.xml CHANGED
@@ -10,7 +10,7 @@
10
  * It is also available through the world-wide-web at this URL:
11
  * http://opensource.org/licenses/osl-3.0.php
12
  *
13
- * @version 0.2.6
14
  * @category Mzax
15
  * @package Mzax_Emarketing
16
  * @author Jacob Siefer (jacob@mzax.de)
@@ -21,7 +21,7 @@
21
  <config>
22
  <modules>
23
  <Mzax_Emarketing>
24
- <version>0.2.6</version>
25
  </Mzax_Emarketing>
26
  </modules>
27
  <global>
@@ -153,8 +153,10 @@
153
  </customer_attribute>
154
  <customer_address><model>mzax_emarketing/object_filter_customer_address</model></customer_address>
155
  <customer_address_attribute><model>mzax_emarketing/object_filter_customer_address_attribute</model></customer_address_attribute>
 
156
 
157
  <order_table><model>mzax_emarketing/object_filter_order_table</model></order_table>
 
158
  <order_addrass><model>mzax_emarketing/object_filter_order_address</model></order_addrass>
159
  <order_previous><model>mzax_emarketing/object_filter_order_previous</model></order_previous>
160
  <order_campaign><model>mzax_emarketing/object_filter_order_campaign</model></order_campaign>
@@ -163,8 +165,8 @@
163
 
164
  <quote_table><model>mzax_emarketing/object_filter_quote_table</model></quote_table>
165
  <quote_addrass><model>mzax_emarketing/object_filter_quote_address</model></quote_addrass>
166
- <quote_items><model>mzax_emarketing/object_filter_order_items</model></quote_items>
167
- <quote_item_table><model>mzax_emarketing/object_filter_order_item_table</model></quote_item_table>
168
 
169
  <addrass_street><model>mzax_emarketing/object_filter_address_street</model></addrass_street>
170
  <addrass_city><model>mzax_emarketing/object_filter_address_city</model></addrass_city>
10
  * It is also available through the world-wide-web at this URL:
11
  * http://opensource.org/licenses/osl-3.0.php
12
  *
13
+ * @version 0.2.7
14
  * @category Mzax
15
  * @package Mzax_Emarketing
16
  * @author Jacob Siefer (jacob@mzax.de)
21
  <config>
22
  <modules>
23
  <Mzax_Emarketing>
24
+ <version>0.2.7</version>
25
  </Mzax_Emarketing>
26
  </modules>
27
  <global>
153
  </customer_attribute>
154
  <customer_address><model>mzax_emarketing/object_filter_customer_address</model></customer_address>
155
  <customer_address_attribute><model>mzax_emarketing/object_filter_customer_address_attribute</model></customer_address_attribute>
156
+ <customer_event><model>mzax_emarketing/object_filter_customer_event</model></customer_event>
157
 
158
  <order_table><model>mzax_emarketing/object_filter_order_table</model></order_table>
159
+ <order_shipped><model>mzax_emarketing/object_filter_order_shippedAt</model></order_shipped>
160
  <order_addrass><model>mzax_emarketing/object_filter_order_address</model></order_addrass>
161
  <order_previous><model>mzax_emarketing/object_filter_order_previous</model></order_previous>
162
  <order_campaign><model>mzax_emarketing/object_filter_order_campaign</model></order_campaign>
165
 
166
  <quote_table><model>mzax_emarketing/object_filter_quote_table</model></quote_table>
167
  <quote_addrass><model>mzax_emarketing/object_filter_quote_address</model></quote_addrass>
168
+ <quote_items><model>mzax_emarketing/object_filter_quote_items</model></quote_items>
169
+ <quote_item_table><model>mzax_emarketing/object_filter_quote_item_table</model></quote_item_table>
170
 
171
  <addrass_street><model>mzax_emarketing/object_filter_address_street</model></addrass_street>
172
  <addrass_city><model>mzax_emarketing/object_filter_address_city</model></addrass_city>
app/code/community/Mzax/Emarketing/etc/system.xml CHANGED
@@ -10,7 +10,7 @@
10
  * It is also available through the world-wide-web at this URL:
11
  * http://opensource.org/licenses/osl-3.0.php
12
  *
13
- * @version 0.2.6
14
  * @category Mzax
15
  * @package Mzax_Emarketing
16
  * @author Jacob Siefer (jacob@mzax.de)
10
  * It is also available through the world-wide-web at this URL:
11
  * http://opensource.org/licenses/osl-3.0.php
12
  *
13
+ * @version 0.2.7
14
  * @category Mzax
15
  * @package Mzax_Emarketing
16
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/install-0.2.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/mzax-abandon-cart.mzax.campaign ADDED
@@ -0,0 +1 @@
 
1
+ eyJ2ZXJzaW9uIjoiMC4yLjciLCJuYW1lIjoiQWJhbmRvbiBTaG9wcGluZyBDYXJ0IiwiZGVzY3JpcHRpb24iOiJTZW5kIG91dCBhbiBlbWFpbCB0byB5b3VyIGFiYW5kb24gc2hvcHBpbmcgY2FydHMgYWZ0ZXIgWCBob3VycyBhbmQgdHJ5IGdldHRpbmcgeW91ciBjdXN0b21lcnMgYmFjayBvbiB0cmFjay4iLCJjaGVja19mcmVxdWVuY3kiOiI3MjAiLCJtaW5fcmVzZW5kX2ludGVydmFsIjoiMCIsImF1dG9sb2dpbiI6IjEiLCJleHBpcmVfdGltZSI6IjYwIiwicHJvdmlkZXIiOiJxdW90ZSIsImZpbHRlcl9leHBvcnQiOiJ7XCJ0eXBlXCI6XCJxdW90ZVwiLFwiYWdncmVnYXRvclwiOlwiYWxsXCIsXCJleHBlY3RhdGlvblwiOlwidHJ1ZVwiLFwicGFyYW1fY2FtcGFpZ25cIjp7fSxcInBhcmFtX3N0b3JlX2lkXCI6XCIxXCIsXCJwYXJhbV9nbXRfb2Zmc2V0XCI6LTYwMCxcImZpbHRlcnNcIjpbe1widHlwZVwiOlwibmV3c2xldHRlclwiLFwiY29uZGl0aW9uXCI6XCJpc1wiLFwic3RhdHVzXCI6XCIxXCJ9LHtcInR5cGVcIjpcInF1b3RlX3RhYmxlXCIsXCJjb2x1bW5cIjpcInN0b3JlX2lkXCIsXCJvcGVyYXRvclwiOlwiKClcIixcInZhbHVlXCI6W1wiMVwiXX0se1widHlwZVwiOlwicXVvdGVfdGFibGVcIixcImNvbHVtblwiOlwiYmFzZV9ncmFuZF90b3RhbFwiLFwib3BlcmF0b3JcIjpcIj49XCIsXCJ2YWx1ZVwiOlwiMjVcIn0se1widHlwZVwiOlwicXVvdGVfdGFibGVcIixcImNvbHVtblwiOlwidXBkYXRlZF9hdFwiLFwicmVsYXRpdmVcIjpcIjFcIixcImFubml2ZXJzYXJ5XCI6XCJcIixcImRpcmVjdGlvblwiOlwicGFzdFwiLFwidmFsdWVfZnJvbVwiOlwiMS41XCIsXCJ2YWx1ZV90b1wiOlwiM1wiLFwidmFsdWVfdW5pdFwiOlwiaG91cnNcIn1dfSIsIm1lZGl1bSI6ImVtYWlsIiwibWVkaXVtX2pzb24iOiJ7XCJkZXNpZ25tb2RlXCI6XCIxXCIsXCJ0ZW1wbGF0ZV9pZFwiOlwiOVwiLFwic3ViamVjdFwiOlwiWW91IGxlZnQgaXRlbXMgaW4geW91ciBjYXJ0XCIsXCJib2R5XCI6XCJ7XFxcInZlcnNpb25cXFwiOjEsXFxcImN1c3RvbUNzc1xcXCI6e1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpudWxsfSxcXFwiZmllbGRzXFxcIjp7XFxcInNob3J0X3RlYXNlclxcXCI6W3tcXFwicmVtb3ZlXFxcIjpmYWxzZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6XFxcIlVzZSB0aGlzIGFyZWEgdG8gb2ZmZXIgYSBzaG9ydCB0ZWFzZXIgb2YgeW91ciBlbWFpbCYjMzk7cyBjb250ZW50LiBUZXh0IGhlcmUgd2lsbCBzaG93IGluIHRoZSBwcmV2aWV3IGFyZWEgb2Ygc29tZSBlbWFpbCBjbGllbnRzLlxcXCJ9XSxcXFwiSGVhZGVyXFxcIjpbe1xcXCJyZW1vdmVcXFwiOnRydWUsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOm51bGx9XSxcXFwiaGVhZGVyX2ltYWdlXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiaHR0cDpcXFwvXFxcL2dhbGxlcnkubWFpbGNoaW1wLmNvbVxcXC8yNDI1ZWE4YWQzXFxcL2ltYWdlc1xcXC9oZWFkZXJfcGxhY2Vob2xkZXJfNjAwcHgucG5nXFxcIn1dLFxcXCJtYWluX2NvbnRlbnRcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCI8cD48c3Ryb25nPkhlbGxvJm5ic3A7e3t2YXIgcXVvdGUuY3VzdG9tZXJfZmlyc3RuYW1lfX0sPFxcXC9zdHJvbmc+PGJyIFxcXC8+XFxcXG5UaGVyZSBpcyBzb21ldGhpbmcgaW4geW91ciBjYXJ0Li4uLjxcXFwvcD5cXFxcbnt7YmxvY2sgdHlwZT1cXFxcXFxcIm16YXhfZW1hcmtldGluZ1xcXC90ZW1wbGF0ZVxcXFxcXFwiIGFyZWE9XFxcXFxcXCJmcm9udGVuZFxcXFxcXFwiIHRlbXBsYXRlPVxcXFxcXFwibXpheFxcXC9lbWFpbFxcXC9xdW90ZS1pdGVtcy5waHRtbFxcXFxcXFwiIHF1b3RlPVxcXFxcXFwiJHF1b3RlXFxcXFxcXCJ9fVxcXFxuXFxcXG48cD48YSBocmVmPVxcXFxcXFwie3tzdG9yZSB1cmw9J2NoZWNrb3V0XFxcL2NhcnQnfX1cXFxcXFxcIj5DaGVja291dCBub3c8XFxcL2E+PFxcXC9wPlxcXFxuXFxcIn1dLFxcXCJjb250ZW50Qm90dG9tXFxcIjpbe1xcXCJyZW1vdmVcXFwiOnRydWUsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOm51bGx9XSxcXFwiY29udGVudEJvdHRvbVRyXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpudWxsfV0sXFxcImxlZnRfY29sdW1uX2ltYWdlXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiaHR0cDpcXFwvXFxcL2dhbGxlcnkubWFpbGNoaW1wLmNvbVxcXC8yN2FhYzhhNjVlNjRjOTk0YzQ0MTZkNmI4XFxcL2ltYWdlc1xcXC9oZWFkZXJfcGxhY2Vob2xkZXJfMjYwcHgucG5nXFxcIn1dLFxcXCJsZWZ0X2NvbHVtbl9jb250ZW50XFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiPGgzPlJlcGVhdGFibGUgQ29udGVudDxcXFwvaDM+XFxcXG48YSBocmVmPVxcXFxcXFwiaHR0cDpcXFwvXFxcL2tiLm1haWxjaGltcC5jb21cXFwvYXJ0aWNsZVxcXC9ob3ctZG8taS13b3JrLXdpdGgtcmVwZWF0YWJsZS1jb250ZW50LWJsb2Nrc1xcXFxcXFwiIHRhcmdldD1cXFxcXFxcIl9ibGFua1xcXFxcXFwiPlJlcGVhdGFibGUgc2VjdGlvbnM8XFxcL2E+IGFyZSBub3RlZCB3aXRoIHBsdXMgYW5kIG1pbnVzIHNpZ25zIHNvIHRoYXQgeW91IGNhbiBhZGQgYW5kIHN1YnRyYWN0IGNvbnRlbnQgYmxvY2tzLjxiciBcXFwvPlxcXFxuPGJyIFxcXC8+XFxcXG5Zb3UgY2FuIGdldCBhIGxpdHRsZSBmYW5jeTsgcmVwZWF0IGJsb2NrcyBhbmQgcmVtb3ZlIGFsbCB0ZXh0IHRvIG1ha2UgaW1hZ2UgZ2FsbGVyaWVzLCBvciBkbyB0aGUgb3Bwb3NpdGUgYW5kIHJlbW92ZSBpbWFnZXMgZm9yIHRleHQtb25seSBibG9ja3MuXFxcIn1dLFxcXCJyaWdodF9jb2x1bW5faW1hZ2VcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCJodHRwOlxcXC9cXFwvZ2FsbGVyeS5tYWlsY2hpbXAuY29tXFxcLzI3YWFjOGE2NWU2NGM5OTRjNDQxNmQ2YjhcXFwvaW1hZ2VzXFxcL2hlYWRlcl9wbGFjZWhvbGRlcl8yNjBweC5wbmdcXFwifV0sXFxcInJpZ2h0X2NvbHVtbl9jb250ZW50XFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiPGgzPlJlcGVhdGFibGUgQ29udGVudDxcXFwvaDM+XFxcXG48YSBocmVmPVxcXFxcXFwiaHR0cDpcXFwvXFxcL2tiLm1haWxjaGltcC5jb21cXFwvYXJ0aWNsZVxcXC9ob3ctZG8taS13b3JrLXdpdGgtcmVwZWF0YWJsZS1jb250ZW50LWJsb2Nrc1xcXFxcXFwiIHRhcmdldD1cXFxcXFxcIl9ibGFua1xcXFxcXFwiPlJlcGVhdGFibGUgc2VjdGlvbnM8XFxcL2E+IGFyZSBub3RlZCB3aXRoIHBsdXMgYW5kIG1pbnVzIHNpZ25zIHNvIHRoYXQgeW91IGNhbiBhZGQgYW5kIHN1YnRyYWN0IGNvbnRlbnQgYmxvY2tzLjxiciBcXFwvPlxcXFxuPGJyIFxcXC8+XFxcXG5Zb3UgY2FuIGFsc28gZ2V0IGEgbGl0dGxlIGZhbmN5OyByZXBlYXQgYmxvY2tzIGFuZCByZW1vdmUgYWxsIHRleHQgdG8gbWFrZSBpbWFnZSBnYWxsZXJpZXMsIG9yIGRvIHRoZSBvcHBvc2l0ZSBhbmQgcmVtb3ZlIGltYWdlcyBmb3IgdGV4dC1vbmx5IGJsb2Nrcy5cXFwifV0sXFxcIkZvb3RlclxcXCI6W3tcXFwicmVtb3ZlXFxcIjpmYWxzZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6bnVsbH1dLFxcXCJVbnN1YnNjcmliZVxcXCI6W3tcXFwicmVtb3ZlXFxcIjpmYWxzZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6bnVsbH1dfX1cIixcInByZXJlbmRlclwiOlwiMFwiLFwiZm9yd2FyZF9lbWFpbHNcIjpcIlwifSJ9
app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/mzax-after-ship.mzax.campaign ADDED
@@ -0,0 +1 @@
 
1
+ eyJ2ZXJzaW9uIjoiMC4yLjciLCJuYW1lIjoiQWZ0ZXIgb3JkZXIgc2hpcHBlZCBlbWFpbCIsImRlc2NyaXB0aW9uIjoiQW4gZW1haWwgdGhhdCBnZXRzIHNlbmQgWCBkYXlzIGFmdGVyIGFuIG9yZGVyIGhhcyBiZWVuIHNoaXBwZWQuIiwiY2hlY2tfZnJlcXVlbmN5IjoiNzIwIiwibWluX3Jlc2VuZF9pbnRlcnZhbCI6IjAiLCJhdXRvbG9naW4iOiIwIiwiZXhwaXJlX3RpbWUiOiIyODgwIiwicHJvdmlkZXIiOiJvcmRlcnMiLCJmaWx0ZXJfZXhwb3J0Ijoie1widHlwZVwiOlwib3JkZXJzXCIsXCJhZ2dyZWdhdG9yXCI6XCJhbGxcIixcImV4cGVjdGF0aW9uXCI6XCJ0cnVlXCIsXCJwYXJhbV9jYW1wYWlnblwiOnt9LFwicGFyYW1fc3RvcmVfaWRcIjpcIjFcIixcInBhcmFtX2dtdF9vZmZzZXRcIjotNjAwLFwiZmlsdGVyc1wiOlt7XCJ0eXBlXCI6XCJvcmRlcl9zaGlwcGVkXCIsXCJzaGlwcGVkX2F0X2Zyb21cIjpcIjVcIixcInNoaXBwZWRfYXRfdG9cIjpcIjdcIixcInNoaXBwZWRfYXRfdW5pdFwiOlwiZGF5c1wifSx7XCJ0eXBlXCI6XCJvcmRlcl90YWJsZVwiLFwiY29sdW1uXCI6XCJzdG9yZV9pZFwiLFwib3BlcmF0b3JcIjpcIigpXCIsXCJ2YWx1ZVwiOltcIjFcIl19LHtcInR5cGVcIjpcIm9yZGVyX3RhYmxlXCIsXCJjb2x1bW5cIjpcInN0YXR1c1wiLFwib3BlcmF0b3JcIjpcIigpXCIsXCJ2YWx1ZVwiOltcImNvbXBsZXRlXCJdfSx7XCJ0eXBlXCI6XCJvcmRlcl90YWJsZVwiLFwiY29sdW1uXCI6XCJpc192aXJ0dWFsXCIsXCJvcGVyYXRvclwiOlwiIT1cIn1dfSIsIm1lZGl1bSI6ImVtYWlsIiwibWVkaXVtX2pzb24iOiJ7XCJ0ZW1wbGF0ZV9pZFwiOlwiM1wiLFwic3ViamVjdFwiOlwiR2l2ZSB1cyB5b3VyIGZlZWRiYWNrXCIsXCJib2R5XCI6XCJ7XFxcInZlcnNpb25cXFwiOjEsXFxcImN1c3RvbUNzc1xcXCI6e1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiXFxcXG4ucHJvZHVjdC10YWJsZSB7XFxcXG4gICAgYm9yZGVyOjFweCBzb2xpZCAjY2NjO1xcXFxuICAgIGJhY2tncm91bmQ6d2hpdGU7XFxcXG59XFxcXG5cXFxcbi5wcm9kdWN0LXRhYmxlIHRkIHtcXFxcbiAgICBwYWRkaW5nOjVweDtcXFxcbn1cXFxcblxcXFxuXFxcIn0sXFxcImZpZWxkc1xcXCI6e1xcXCJzaG9ydF90ZWFzZXJcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCJXZSB3b3VsZCBsb3ZlIHRvIGdldCBzb21lIGZlZWRiYWNrXFxcIn1dLFxcXCJIZWFkZXJcXFwiOlt7XFxcInJlbW92ZVxcXCI6dHJ1ZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6bnVsbH1dLFxcXCJoZWFkZXJfaW1hZ2VcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCJ7e21lZGlhIHVybD0nd3lzaXd5Z1xcXC82NjIuanBnJ319XFxcIn1dLFxcXCJtYWluX2NvbnRlbnRcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCI8cD48c3Ryb25nPkhlbGxvJm5ic3A7e3t2YXIgb3JkZXIuY3VzdG9tZXJfZmlyc3RuYW1lfX0sPFxcXC9zdHJvbmc+PFxcXC9wPlxcXFxuXFxcXG48cD5EbyB5b3UgcmVtZW1iZXIgdXMsIHlvdSBoYXZlIHJlY2VudGx5IG9yZGVyZWQgYmVsbG93ZWQgaXRlbXMgYW5kIHdlIHdoZXJlIHdvbmRlcmluZyBpZiB5b3UgY291bGQgZ2l2ZSB1cyBzb21lIGZlZWRiYWNrLjxcXFwvcD5cXFxcbnt7YmxvY2sgdHlwZT1cXFxcXFxcIm16YXhfZW1hcmtldGluZ1xcXC90ZW1wbGF0ZVxcXFxcXFwiIGFyZWE9XFxcXFxcXCJmcm9udGVuZFxcXFxcXFwiIHRlbXBsYXRlPVxcXFxcXFwibXpheFxcXC9lbWFpbFxcXC9vcmRlci1pdGVtcy5waHRtbFxcXFxcXFwiIG9yZGVyPVxcXFxcXFwiJG9yZGVyXFxcXFxcXCJ9fVxcXCJ9XSxcXFwiY29udGVudEJvdHRvbVxcXCI6W3tcXFwicmVtb3ZlXFxcIjp0cnVlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpudWxsfV0sXFxcImNvbnRlbnRCb3R0b21UclxcXCI6W3tcXFwicmVtb3ZlXFxcIjpmYWxzZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6bnVsbH0se1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpudWxsfV0sXFxcImxlZnRfY29sdW1uX2ltYWdlXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiaHR0cDpcXFwvXFxcL2dhbGxlcnkubWFpbGNoaW1wLmNvbVxcXC8yN2FhYzhhNjVlNjRjOTk0YzQ0MTZkNmI4XFxcL2ltYWdlc1xcXC9oZWFkZXJfcGxhY2Vob2xkZXJfMjYwcHgucG5nXFxcIn0se1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiaHR0cDpcXFwvXFxcL2dhbGxlcnkubWFpbGNoaW1wLmNvbVxcXC8yN2FhYzhhNjVlNjRjOTk0YzQ0MTZkNmI4XFxcL2ltYWdlc1xcXC9oZWFkZXJfcGxhY2Vob2xkZXJfMjYwcHgucG5nXFxcIn1dLFxcXCJsZWZ0X2NvbHVtbl9jb250ZW50XFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiPGgzPlJlcGVhdGFibGUgQ29nZ2g8XFxcL2gzPlxcXFxuWW91IGNhbiBhbGZqZmhqZ3NvIGdmZ2hqZXQgYSBsaXR0bGUgZmFuY3k7IHJlcGVhdCBibG9ja3MgYW5kIHJlbW92ZSBhbGwgdGV4dCB0byBtYWtlIGltYWdlIGdhbGxlcmllcywgb3IgZG8gdGhlIG9wcG9zaXRlIGFuZCByZW1vdmUgaW1hZ2VzIGZvciB0ZXh0LW9ubHkgYmxvY2tzLlxcXCJ9LHtcXFwicmVtb3ZlXFxcIjpmYWxzZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6XFxcIjxoMz5SZXBlYXRhYmxlIENvbnRlbnQ8XFxcL2gzPlxcXFxuPGEgaHJlZj1cXFxcXFxcImh0dHA6XFxcL1xcXC9rYi5tYWlsY2hpbXAuY29tXFxcL2FydGljbGVcXFwvaG93LWRvLWktd29yay13aXRoLXJlcGVhdGFibGUtY29udGVudC1ibG9ja3NcXFxcXFxcIiB0YXJnZXQ9XFxcXFxcXCJfYmxhbmtcXFxcXFxcIj5SZXBlYXRhYmxlIHNlY3Rpb25zPFxcXC9hPiBhcmUgbm90ZWQgd2l0aCBwbHVzIGFuZCBtaW51cyBzaWducyBzbyB0aGF0IHlvdSBmZ2hqcG9zaXRlIGFuZCByZW1vdmUgaW1hZ2VzIGZvciB0ZXh0LW9ubHkgYmxvY2tzLlxcXCJ9XSxcXFwicmlnaHRfY29sdW1uX2ltYWdlXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiaHR0cDpcXFwvXFxcL2dhbGxlcnkubWFpbGNoaW1wLmNvbVxcXC8yN2FhYzhhNjVlNjRjOTk0YzQ0MTZkNmI4XFxcL2ltYWdlc1xcXC9oZWFkZXJfcGxhY2Vob2xkZXJfMjYwcHgucG5nXFxcIn0se1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiaHR0cDpcXFwvXFxcL2dhbGxlcnkubWFpbGNoaW1wLmNvbVxcXC8yN2FhYzhhNjVlNjRjOTk0YzQ0MTZkNmI4XFxcL2ltYWdlc1xcXC9oZWFkZXJfcGxhY2Vob2xkZXJfMjYwcHgucG5nXFxcIn1dLFxcXCJyaWdodF9jb2x1bW5fY29udGVudFxcXCI6W3tcXFwicmVtb3ZlXFxcIjpmYWxzZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6XFxcIjxoMz5SZXBlaGg8XFxcL2gzPlxcXFxuPGJyIFxcXC8+XFxcXG5Zb3UgY2FuIGFsc28gZ2V0IGEgbGl0dGxlIGZhbmN5OyByZXBlYXQgYmxvY2tzIGFuZCByZW1vdmUgYWxsIHRleHQgdG8gbWFrZSBpbWFnZSBnYWxsZXJpZXMsIG9yIGRvIHRoZSBvcHBvc2l0ZSBhbmQgcmVtb3ZlIGltYWdlcyBmb3IgdGV4dC1vbmx5IGJsb2Nrcy5cXFwifSx7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCI8aDM+UmVwZWF0YWJsZSBDb250ZW50PFxcXC9oMz5cXFxcbjxhIGhyZWY9XFxcXFxcXCJodHRwOlxcXC9cXFwva2IubWFpbGNoaW1wLmNvbVxcXC9hcnRpY2xlXFxcL2hvdy1kby1pLXdvcmstd2l0aC1yZXBlYXRhYmxlLWNvbnRlbnQtYmxvY2tzXFxcXFxcXCIgdGFyZ2V0PVxcXFxcXFwiX2JsYW5rXFxcXFxcXCI+UmVwZWF0YWJsZSBzZWN0aW9uczxcXFwvYT4gYXJlIG5vdGVkIHdpdGggcGx1cyBhbmQgbWludXMgc2lnbnMgc28gdGhhdCB5b2ZnaGp0IHRvIG1ha2UgaW1hZ2UgZ2FsbGVyaWVzLCBvciBkbyB0aGUgb3Bwb3NpdGUgYW5kIHJlbW92ZSBpbWFnZXMgZm9yIHRleHQtb25seSBibG9ja3MuXFxcIn1dLFxcXCJGb290ZXJcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOm51bGx9XSxcXFwiVW5zdWJzY3JpYmVcXFwiOlt7XFxcInJlbW92ZVxcXCI6dHJ1ZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6bnVsbH1dLFxcXCJmb290ZXJFbmRcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOm51bGx9XSxcXFwiZmluYWxGb290ZXJcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCJPcHRpb25hbCBGb290ZXIgVGV4dFxcXCJ9XX19XCIsXCJkYXlfZmlsdGVyXCI6W1wiMFwiLFwiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiXSxcInRpbWVfZmlsdGVyXCI6W1wiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sXCJkZXNpZ25tb2RlXCI6XCIxXCIsXCJwcmVyZW5kZXJcIjpcIjBcIixcImZvcndhcmRfZW1haWxzXCI6XCJcIn0ifQ==
app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/mzax-female30-40.mzax.campaign ADDED
@@ -0,0 +1 @@
 
1
+ eyJ2ZXJzaW9uIjoiMC4yLjciLCJuYW1lIjoiRmVtYWxlIDMwLTQwIHVwY29taW5nIGJpcnRoZGF5IiwiZGVzY3JpcHRpb24iOiJTdGFydCBhbiBjYW1wYWlnbiB0byBhbGwgeW91ciBmZW1hbGUgY3VzdG9tZXJzIGJldHdlZW4gdGhlIGFnZSBvZiAzMCBhbmQgNDAgYW5kIGJpcnRoZGF5IGlzIHNvb24uIiwiY2hlY2tfZnJlcXVlbmN5IjoiMTQ0MCIsIm1pbl9yZXNlbmRfaW50ZXJ2YWwiOiIwIiwiYXV0b2xvZ2luIjoiMCIsImV4cGlyZV90aW1lIjoiMjg4MCIsInByb3ZpZGVyIjoiY3VzdG9tZXJzIiwiZmlsdGVyX2V4cG9ydCI6IntcInR5cGVcIjpcImN1c3RvbWVyc1wiLFwiYWdncmVnYXRvclwiOlwiYWxsXCIsXCJleHBlY3RhdGlvblwiOlwidHJ1ZVwiLFwicGFyYW1fY2FtcGFpZ25cIjp7fSxcInBhcmFtX3N0b3JlX2lkXCI6XCIxXCIsXCJwYXJhbV9nbXRfb2Zmc2V0XCI6LTYwMCxcImZpbHRlcnNcIjpbe1widHlwZVwiOlwibmV3c2xldHRlclwiLFwiY29uZGl0aW9uXCI6XCJpc1wiLFwic3RhdHVzXCI6XCIxXCJ9LHtcInR5cGVcIjpcImN1c3RvbWVyX2xhc3Rsb2dpblwiLFwibG9naW5fZnJvbVwiOlwiMFwiLFwibG9naW5fdG9cIjpcIjEyXCIsXCJsb2dpbl91bml0XCI6XCJtb250aHNcIn0se1widHlwZVwiOlwiY3VzdG9tZXJfYXR0cmlidXRlXCIsXCJhdHRyaWJ1dGVcIjpcImdlbmRlclwiLFwib3BlcmF0b3JcIjpcIj09XCIsXCJ2YWx1ZVwiOlwiOTlcIn0se1widHlwZVwiOlwiY3VzdG9tZXJfYXR0cmlidXRlXCIsXCJhdHRyaWJ1dGVcIjpcImRvYlwiLFwicmVsYXRpdmVcIjpcIjFcIixcImFubml2ZXJzYXJ5XCI6XCJcIixcImRpcmVjdGlvblwiOlwicGFzdFwiLFwidmFsdWVfZnJvbVwiOlwiMzBcIixcInZhbHVlX3RvXCI6XCI0MFwiLFwidmFsdWVfdW5pdFwiOlwieWVhcnNcIn0se1widHlwZVwiOlwiY3VzdG9tZXJfYXR0cmlidXRlXCIsXCJhdHRyaWJ1dGVcIjpcImRvYlwiLFwicmVsYXRpdmVcIjpcIjFcIixcImFubml2ZXJzYXJ5XCI6XCIxXCIsXCJkaXJlY3Rpb25cIjpcImZ1dHVyZVwiLFwidmFsdWVfZnJvbVwiOlwiNFwiLFwidmFsdWVfdG9cIjpcIjVcIixcInZhbHVlX3VuaXRcIjpcIndlZWtzXCJ9XX0iLCJtZWRpdW0iOiJlbWFpbCIsIm1lZGl1bV9qc29uIjoie1wiZGVzaWdubW9kZVwiOlwiMVwiLFwidGVtcGxhdGVfaWRcIjpcIjNcIixcInN1YmplY3RcIjpcIkNlbGVicmF0ZSB0aGUgMzAtc29tZXRoaW5nXCIsXCJib2R5XCI6XCJ7XFxcInZlcnNpb25cXFwiOjEsXFxcImN1c3RvbUNzc1xcXCI6e1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpudWxsfSxcXFwiZmllbGRzXFxcIjp7XFxcInNob3J0X3RlYXNlclxcXCI6W3tcXFwicmVtb3ZlXFxcIjpmYWxzZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6XFxcIlVzZSB0aGlzIGFyZWEgdG8gb2ZmZXIgYSBzaG9ydCB0ZWFzZXIgb2YgeW91ciBlbWFpbCYjMzk7cyBjb250ZW50LiBUZXh0IGhlcmUgd2lsbCBzaG93IGluIHRoZSBwcmV2aWV3IGFyZWEgb2Ygc29tZSBlbWFpbCBjbGllbnRzLlxcXCJ9XSxcXFwiSGVhZGVyXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpudWxsfV0sXFxcImhlYWRlcl9pbWFnZVxcXCI6W3tcXFwicmVtb3ZlXFxcIjpmYWxzZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6XFxcImh0dHA6XFxcL1xcXC9nYWxsZXJ5Lm1haWxjaGltcC5jb21cXFwvMjQyNWVhOGFkM1xcXC9pbWFnZXNcXFwvaGVhZGVyX3BsYWNlaG9sZGVyXzYwMHB4LnBuZ1xcXCJ9XSxcXFwibWFpbl9jb250ZW50XFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiPHA+PHN0cm9uZz5IaSZuYnNwO3t7dmFyIGN1c3RvbWVyLm5hbWV9fSE8XFxcL3N0cm9uZz48YnIgXFxcLz5cXFxcbllvdXIgYmlydGhkYXkgaXMgY29taW5nIHVwIGFuZCB3ZSBtaWdodCBoYXZlIHdoYXQgeW91IG5lZWQgZm9yIHlvdXIgUGFydHkhPFxcXC9wPlxcXFxuXFxcIn1dLFxcXCJjb250ZW50Qm90dG9tXFxcIjpbe1xcXCJyZW1vdmVcXFwiOnRydWUsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOm51bGx9XSxcXFwiY29udGVudEJvdHRvbVRyXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpudWxsfV0sXFxcImxlZnRfY29sdW1uX2ltYWdlXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiaHR0cDpcXFwvXFxcL2dhbGxlcnkubWFpbGNoaW1wLmNvbVxcXC8yN2FhYzhhNjVlNjRjOTk0YzQ0MTZkNmI4XFxcL2ltYWdlc1xcXC9oZWFkZXJfcGxhY2Vob2xkZXJfMjYwcHgucG5nXFxcIn1dLFxcXCJsZWZ0X2NvbHVtbl9jb250ZW50XFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiPGgzPlJlcGVhdGFibGUgQ29udGVudDxcXFwvaDM+XFxcXG5SZXBlYXRhYmxlIHNlY3Rpb25zIGFyZSBub3RlZCB3aXRoIHBsdXMgYW5kIG1pbnVzIHNpZ25zIHNvIHRoYXQgeW91IGNhbiBhZGQgYW5kIHN1YnRyYWN0IGNvbnRlbnQgYmxvY2tzLjxiciBcXFwvPlxcXFxuPGJyIFxcXC8+XFxcXG5Zb3UgY2FuIGFsc28gZ2V0IGEgbGl0dGxlIGZhbmN5OyByZXBlYXQgYmxvY2tzIGFuZCByZW1vdmUgYWxsIHRleHQgdG8gbWFrZSBpbWFnZSBnYWxsZXJpZXMsIG9yIGRvIHRoZSBvcHBvc2l0ZSBhbmQgcmVtb3ZlIGltYWdlcyBmb3IgdGV4dC1vbmx5IGJsb2Nrcy5cXFwifV0sXFxcInJpZ2h0X2NvbHVtbl9pbWFnZVxcXCI6W3tcXFwicmVtb3ZlXFxcIjpmYWxzZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6XFxcImh0dHA6XFxcL1xcXC9nYWxsZXJ5Lm1haWxjaGltcC5jb21cXFwvMjdhYWM4YTY1ZTY0Yzk5NGM0NDE2ZDZiOFxcXC9pbWFnZXNcXFwvaGVhZGVyX3BsYWNlaG9sZGVyXzI2MHB4LnBuZ1xcXCJ9XSxcXFwicmlnaHRfY29sdW1uX2NvbnRlbnRcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCI8aDM+UmVwZWF0YWJsZSBDb250ZW50PFxcXC9oMz5cXFxcblJlcGVhdGFibGUgc2VjdGlvbnMgYXJlIG5vdGVkIHdpdGggcGx1cyBhbmQgbWludXMgc2lnbnMgc28gdGhhdCB5b3UgY2FuIGFkZCBhbmQgc3VidHJhY3QgY29udGVudCBibG9ja3MuPGJyIFxcXC8+XFxcXG48YnIgXFxcLz5cXFxcbllvdSBjYW4gYWxzbyBnZXQgYSBsaXR0bGUgZmFuY3k7IHJlcGVhdCBibG9ja3MgYW5kIHJlbW92ZSBhbGwgdGV4dCB0byBtYWtlIGltYWdlIGdhbGxlcmllcywgb3IgZG8gdGhlIG9wcG9zaXRlIGFuZCByZW1vdmUgaW1hZ2VzIGZvciB0ZXh0LW9ubHkgYmxvY2tzLlxcXCJ9XSxcXFwiRm9vdGVyXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpudWxsfV0sXFxcIlVuc3Vic2NyaWJlXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpudWxsfV19fVwiLFwicHJlcmVuZGVyXCI6XCIwXCIsXCJmb3J3YXJkX2VtYWlsc1wiOlwiXCJ9In0=
app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/mzax-happy-birthday.mzax.campaign ADDED
@@ -0,0 +1 @@
 
1
+ eyJ2ZXJzaW9uIjoiMC4yLjciLCJuYW1lIjoiSGFwcHkgQmlydGhkYXkiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY2hlY2tfZnJlcXVlbmN5IjoiNzIwIiwibWluX3Jlc2VuZF9pbnRlcnZhbCI6IjI3NCIsImF1dG9sb2dpbiI6IjAiLCJleHBpcmVfdGltZSI6IjcyMCIsInByb3ZpZGVyIjoiY3VzdG9tZXJzIiwiZmlsdGVyX2V4cG9ydCI6IntcInR5cGVcIjpcImN1c3RvbWVyc1wiLFwiYWdncmVnYXRvclwiOlwiYWxsXCIsXCJleHBlY3RhdGlvblwiOlwidHJ1ZVwiLFwicGFyYW1fY2FtcGFpZ25cIjp7fSxcInBhcmFtX3N0b3JlX2lkXCI6XCIxXCIsXCJwYXJhbV9nbXRfb2Zmc2V0XCI6LTYwMCxcImZpbHRlcnNcIjpbe1widHlwZVwiOlwibmV3c2xldHRlclwiLFwiY29uZGl0aW9uXCI6XCJpc1wiLFwic3RhdHVzXCI6XCIxXCJ9LHtcInR5cGVcIjpcImN1c3RvbWVyX2xhc3Rsb2dpblwiLFwibG9naW5fZnJvbVwiOlwiMFwiLFwibG9naW5fdG9cIjpcIjEyXCIsXCJsb2dpbl91bml0XCI6XCJtb250aHNcIn0se1widHlwZVwiOlwiY3VzdG9tZXJfYXR0cmlidXRlXCIsXCJhdHRyaWJ1dGVcIjpcImRvYlwiLFwicmVsYXRpdmVcIjpcIjFcIixcImFubml2ZXJzYXJ5XCI6XCIxXCIsXCJkaXJlY3Rpb25cIjpcImZ1dHVyZVwiLFwidmFsdWVfZnJvbVwiOlwiMFwiLFwidmFsdWVfdG9cIjpcIjBcIixcInZhbHVlX3VuaXRcIjpcImRheXNcIn1dfSIsIm1lZGl1bSI6ImVtYWlsIiwibWVkaXVtX2pzb24iOiJ7XCJkZXNpZ25tb2RlXCI6XCIxXCIsXCJ0ZW1wbGF0ZV9pZFwiOlwiM1wiLFwic3ViamVjdFwiOlwiSGFwcCBCaXJ0aGRheSB7e3ZhciBjdXN0b21lci5uYW1lfX1cIixcImJvZHlcIjpcIntcXFwidmVyc2lvblxcXCI6MSxcXFwiY3VzdG9tQ3NzXFxcIjp7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOm51bGx9LFxcXCJmaWVsZHNcXFwiOntcXFwic2hvcnRfdGVhc2VyXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiSGFwcHkgQmlydGhkYXkhXFxcIn1dLFxcXCJIZWFkZXJcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOm51bGx9XSxcXFwiaGVhZGVyX2ltYWdlXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiaHR0cDpcXFwvXFxcL2dhbGxlcnkubWFpbGNoaW1wLmNvbVxcXC8yNDI1ZWE4YWQzXFxcL2ltYWdlc1xcXC9oZWFkZXJfcGxhY2Vob2xkZXJfNjAwcHgucG5nXFxcIn1dLFxcXCJtYWluX2NvbnRlbnRcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCI8cD48c3Ryb25nPkhhcHB5IEJpcnRoZGF5Jm5ic3A7e3t2YXIgY3VzdG9tZXIubmFtZX19LDxcXFwvc3Ryb25nPjxcXFwvcD5cXFxcblxcXFxuPHA+VGhlIHRlYW0gZnJvbSZuYnNwO3t7Y29uZmlnIHBhdGg9XFxcXFxcXCJnZW5lcmFsXFxcL3N0b3JlX2luZm9ybWF0aW9uXFxcL25hbWVcXFxcXFxcIn19Jm5ic3A7d2lzaGVzIHlvdSBhIEhhcHB5IEJpcnRoZGF5ITxcXFwvcD5cXFxcblxcXFxuPHA+V2UgaG9wZSB5b3UgaGF2ZSBhIHdvbmRlcmZ1bCZuYnNwO2RheSE8XFxcL3A+XFxcXG5cXFwifV0sXFxcImNvbnRlbnRCb3R0b21cXFwiOlt7XFxcInJlbW92ZVxcXCI6dHJ1ZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6bnVsbH1dLFxcXCJjb250ZW50Qm90dG9tVHJcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOm51bGx9XSxcXFwibGVmdF9jb2x1bW5faW1hZ2VcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCJodHRwOlxcXC9cXFwvZ2FsbGVyeS5tYWlsY2hpbXAuY29tXFxcLzI3YWFjOGE2NWU2NGM5OTRjNDQxNmQ2YjhcXFwvaW1hZ2VzXFxcL2hlYWRlcl9wbGFjZWhvbGRlcl8yNjBweC5wbmdcXFwifV0sXFxcImxlZnRfY29sdW1uX2NvbnRlbnRcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCI8aDM+UmVwZWF0YWJsZSBDb250ZW50PFxcXC9oMz5cXFxcblJlcGVhdGFibGUgc2VjdGlvbnMgYXJlIG5vdGVkIHdpdGggcGx1cyBhbmQgbWludXMgc2lnbnMgc28gdGhhdCB5b3UgY2FuIGFkZCBhbmQgc3VidHJhY3QgY29udGVudCBibG9ja3MuPGJyIFxcXC8+XFxcXG48YnIgXFxcLz5cXFxcbllvdSBjYW4gYWxzbyBnZXQgYSBsaXR0bGUgZmFuY3k7IHJlcGVhdCBibG9ja3MgYW5kIHJlbW92ZSBhbGwgdGV4dCB0byBtYWtlIGltYWdlIGdhbGxlcmllcywgb3IgZG8gdGhlIG9wcG9zaXRlIGFuZCByZW1vdmUgaW1hZ2VzIGZvciB0ZXh0LW9ubHkgYmxvY2tzLlxcXCJ9XSxcXFwicmlnaHRfY29sdW1uX2ltYWdlXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiaHR0cDpcXFwvXFxcL2dhbGxlcnkubWFpbGNoaW1wLmNvbVxcXC8yN2FhYzhhNjVlNjRjOTk0YzQ0MTZkNmI4XFxcL2ltYWdlc1xcXC9oZWFkZXJfcGxhY2Vob2xkZXJfMjYwcHgucG5nXFxcIn1dLFxcXCJyaWdodF9jb2x1bW5fY29udGVudFxcXCI6W3tcXFwicmVtb3ZlXFxcIjpmYWxzZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6XFxcIjxoMz5SZXBlYXRhYmxlIENvbnRlbnQ8XFxcL2gzPlxcXFxuUmVwZWF0YWJsZSBzZWN0aW9ucyBhcmUgbm90ZWQgd2l0aCBwbHVzIGFuZCBtaW51cyBzaWducyBzbyB0aGF0IHlvdSBjYW4gYWRkIGFuZCBzdWJ0cmFjdCBjb250ZW50IGJsb2Nrcy48YnIgXFxcLz5cXFxcbjxiciBcXFwvPlxcXFxuWW91IGNhbiBhbHNvIGdldCBhIGxpdHRsZSBmYW5jeTsgcmVwZWF0IGJsb2NrcyBhbmQgcmVtb3ZlIGFsbCB0ZXh0IHRvIG1ha2UgaW1hZ2UgZ2FsbGVyaWVzLCBvciBkbyB0aGUgb3Bwb3NpdGUgYW5kIHJlbW92ZSBpbWFnZXMgZm9yIHRleHQtb25seSBibG9ja3MuXFxcIn1dLFxcXCJGb290ZXJcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOm51bGx9XSxcXFwiVW5zdWJzY3JpYmVcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOm51bGx9XX19XCIsXCJwcmVyZW5kZXJcIjpcIjBcIixcImZvcndhcmRfZW1haWxzXCI6XCJcIixcImRheV9maWx0ZXJcIjpbXCIwXCIsXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCJdLFwidGltZV9maWx0ZXJcIjpbXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiLFwiMTRcIixcIjE1XCIsXCIxNlwiLFwiMTdcIixcIjE4XCIsXCIxOVwiLFwiMjBcIl19In0=
app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/mzax-viewed-products.mzax.campaign ADDED
@@ -0,0 +1 @@
 
1
+ eyJ2ZXJzaW9uIjoiMC4yLjciLCJuYW1lIjoiVmlld2VkIFByb2R1Y3RzIiwiZGVzY3JpcHRpb24iOiJUaGUgY3VzdG9tZXIgaGFzIHZpZXdlZCBjZXJ0YWluIHByb2R1Y3RzIFggZGF5cyBhZ28gYnV0IG5vdCB5ZXQgYm91Z2h0IGFueSBvZiB0aGVtLiIsImNoZWNrX2ZyZXF1ZW5jeSI6IjE0NDAiLCJtaW5fcmVzZW5kX2ludGVydmFsIjoiNjIiLCJhdXRvbG9naW4iOiIwIiwiZXhwaXJlX3RpbWUiOiIxNDQwIiwicHJvdmlkZXIiOiJjdXN0b21lcnMiLCJmaWx0ZXJfZXhwb3J0Ijoie1widHlwZVwiOlwiY3VzdG9tZXJzXCIsXCJhZ2dyZWdhdG9yXCI6XCJhbGxcIixcImV4cGVjdGF0aW9uXCI6XCJ0cnVlXCIsXCJwYXJhbV9jYW1wYWlnblwiOnt9LFwicGFyYW1fc3RvcmVfaWRcIjpcIjFcIixcInBhcmFtX2dtdF9vZmZzZXRcIjotNjAwLFwiZmlsdGVyc1wiOlt7XCJ0eXBlXCI6XCJuZXdzbGV0dGVyXCIsXCJjb25kaXRpb25cIjpcImlzXCIsXCJzdGF0dXNcIjpcIjFcIn0se1widHlwZVwiOlwiY3VzdG9tZXJfZXZlbnRcIixcIm5hbWVcIjpcImNhdGFsb2dfcHJvZHVjdF92aWV3XCIsXCJldmVudF9kYXRlX2Zyb21cIjpcIjRcIixcImV2ZW50X2RhdGVfdG9cIjpcIjhcIixcImV2ZW50X2RhdGVfdW5pdFwiOlwiZGF5c1wiLFwiYWdncmVnYXRvclwiOlwiYWxsXCIsXCJleHBlY3RhdGlvblwiOlwidHJ1ZVwiLFwiZmlsdGVyc1wiOlt7XCJ0eXBlXCI6XCJwcm9kdWN0X2NhdGVnb3J5XCIsXCJvcGVyYXRvclwiOlwiKClcIixcInZhbHVlXCI6XCIxLDIsMyw0XCJ9XX0se1widHlwZVwiOlwiY3VzdG9tZXJfb3JkZXJcIixcImFnZ3JlZ2F0b3JcIjpcImFsbFwiLFwiZXhwZWN0YXRpb25cIjpcInRydWVcIixcIm9yZGVyc19vcGVyYXRvclwiOlwiPT1cIixcIm9yZGVyc1wiOlwiMFwiLFwiZmlsdGVyc1wiOlt7XCJ0eXBlXCI6XCJvcmRlcl90YWJsZVwiLFwiY29sdW1uXCI6XCJjcmVhdGVkX2F0XCIsXCJyZWxhdGl2ZVwiOlwiMVwiLFwiYW5uaXZlcnNhcnlcIjpcIlwiLFwiZGlyZWN0aW9uXCI6XCJwYXN0XCIsXCJ2YWx1ZV9mcm9tXCI6XCIwXCIsXCJ2YWx1ZV90b1wiOlwiMTVcIixcInZhbHVlX3VuaXRcIjpcImRheXNcIn0se1widHlwZVwiOlwib3JkZXJfaXRlbXNcIixcInN1bVwiOlwicXR5X29yZGVyZWRcIixcInZhbHVlX29wZXJhdG9yXCI6XCI+PVwiLFwidmFsdWVcIjpcIjFcIixcImFnZ3JlZ2F0b3JcIjpcImFsbFwiLFwiZmlsdGVyc1wiOlt7XCJ0eXBlXCI6XCJwcm9kdWN0X2NhdGVnb3J5XCIsXCJvcGVyYXRvclwiOlwiKClcIixcInZhbHVlXCI6XCIxLDIsMyw0XCJ9XX1dfV19IiwibWVkaXVtIjoiZW1haWwiLCJtZWRpdW1fanNvbiI6IntcImRlc2lnbm1vZGVcIjpcIjFcIixcInRlbXBsYXRlX2lkXCI6XCIzXCIsXCJzdWJqZWN0XCI6XCJXZSB0aG91Z2h0IHlvdSBtaWdodCBsaWtlIHRoaXNcIixcImJvZHlcIjpcIntcXFwidmVyc2lvblxcXCI6MSxcXFwiY3VzdG9tQ3NzXFxcIjp7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOm51bGx9LFxcXCJmaWVsZHNcXFwiOntcXFwic2hvcnRfdGVhc2VyXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiVXNlIHRoaXMgYXJlYSB0byBvZmZlciBhIHNob3J0IHRlYXNlciBvZiB5b3VyIGVtYWlsJiMzOTtzIGNvbnRlbnQuIFRleHQgaGVyZSB3aWxsIHNob3cgaW4gdGhlIHByZXZpZXcgYXJlYSBvZiBzb21lIGVtYWlsIGNsaWVudHMuXFxcIn1dLFxcXCJIZWFkZXJcXFwiOlt7XFxcInJlbW92ZVxcXCI6dHJ1ZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6bnVsbH1dLFxcXCJoZWFkZXJfaW1hZ2VcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCJodHRwOlxcXC9cXFwvZ2FsbGVyeS5tYWlsY2hpbXAuY29tXFxcLzI0MjVlYThhZDNcXFwvaW1hZ2VzXFxcL2hlYWRlcl9wbGFjZWhvbGRlcl82MDBweC5wbmdcXFwifV0sXFxcIm1haW5fY29udGVudFxcXCI6W3tcXFwicmVtb3ZlXFxcIjpmYWxzZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6XFxcIjxwPjxzdHJvbmc+SGVsbG8ge3t2YXIgY3VzdG9tZXIubmFtZX19LDxcXFwvc3Ryb25nPjxiciBcXFwvPlxcXFxuV2UgdGhvdWdodCB5b3UgbWlnaHQgbGlrZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBwcm9kdWN0cyB3ZSBoYXZlIG9uIHNhbGUgdG9kYXkuLi4uPFxcXC9wPlxcXFxuXFxcIn1dLFxcXCJjb250ZW50Qm90dG9tXFxcIjpbe1xcXCJyZW1vdmVcXFwiOnRydWUsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOm51bGx9XSxcXFwiY29udGVudEJvdHRvbVRyXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpudWxsfV0sXFxcImxlZnRfY29sdW1uX2ltYWdlXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiaHR0cDpcXFwvXFxcL2dhbGxlcnkubWFpbGNoaW1wLmNvbVxcXC8yN2FhYzhhNjVlNjRjOTk0YzQ0MTZkNmI4XFxcL2ltYWdlc1xcXC9oZWFkZXJfcGxhY2Vob2xkZXJfMjYwcHgucG5nXFxcIn1dLFxcXCJsZWZ0X2NvbHVtbl9jb250ZW50XFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpcXFwiPGgzPlJlcGVhdGFibGUgQ29udGVudDxcXFwvaDM+XFxcXG5SZXBlYXRhYmxlIHNlY3Rpb25zIGFyZSBub3RlZCB3aXRoIHBsdXMgYW5kIG1pbnVzIHNpZ25zIHNvIHRoYXQgeW91IGNhbiBhZGQgYW5kIHN1YnRyYWN0IGNvbnRlbnQgYmxvY2tzLjxiciBcXFwvPlxcXFxuPGJyIFxcXC8+XFxcXG5Zb3UgY2FuIGFsc28gZ2V0IGEgbGl0dGxlIGZhbmN5OyByZXBlYXQgYmxvY2tzIGFuZCByZW1vdmUgYWxsIHRleHQgdG8gbWFrZSBpbWFnZSBnYWxsZXJpZXMsIG9yIGRvIHRoZSBvcHBvc2l0ZSBhbmQgcmVtb3ZlIGltYWdlcyBmb3IgdGV4dC1vbmx5IGJsb2Nrcy5cXFwifV0sXFxcInJpZ2h0X2NvbHVtbl9pbWFnZVxcXCI6W3tcXFwicmVtb3ZlXFxcIjpmYWxzZSxcXFwiYWx0XFxcIjpudWxsLFxcXCJ2YWx1ZVxcXCI6XFxcImh0dHA6XFxcL1xcXC9nYWxsZXJ5Lm1haWxjaGltcC5jb21cXFwvMjdhYWM4YTY1ZTY0Yzk5NGM0NDE2ZDZiOFxcXC9pbWFnZXNcXFwvaGVhZGVyX3BsYWNlaG9sZGVyXzI2MHB4LnBuZ1xcXCJ9XSxcXFwicmlnaHRfY29sdW1uX2NvbnRlbnRcXFwiOlt7XFxcInJlbW92ZVxcXCI6ZmFsc2UsXFxcImFsdFxcXCI6bnVsbCxcXFwidmFsdWVcXFwiOlxcXCI8aDM+UmVwZWF0YWJsZSBDb250ZW50PFxcXC9oMz5cXFxcblJlcGVhdGFibGUgc2VjdGlvbnMgYXJlIG5vdGVkIHdpdGggcGx1cyBhbmQgbWludXMgc2lnbnMgc28gdGhhdCB5b3UgY2FuIGFkZCBhbmQgc3VidHJhY3QgY29udGVudCBibG9ja3MuPGJyIFxcXC8+XFxcXG48YnIgXFxcLz5cXFxcbllvdSBjYW4gYWxzbyBnZXQgYSBsaXR0bGUgZmFuY3k7IHJlcGVhdCBibG9ja3MgYW5kIHJlbW92ZSBhbGwgdGV4dCB0byBtYWtlIGltYWdlIGdhbGxlcmllcywgb3IgZG8gdGhlIG9wcG9zaXRlIGFuZCByZW1vdmUgaW1hZ2VzIGZvciB0ZXh0LW9ubHkgYmxvY2tzLlxcXCJ9XSxcXFwiRm9vdGVyXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpudWxsfV0sXFxcIlVuc3Vic2NyaWJlXFxcIjpbe1xcXCJyZW1vdmVcXFwiOmZhbHNlLFxcXCJhbHRcXFwiOm51bGwsXFxcInZhbHVlXFxcIjpudWxsfV19fVwiLFwicHJlcmVuZGVyXCI6XCIwXCIsXCJmb3J3YXJkX2VtYWlsc1wiOlwiXCJ9In0=
app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/uninstall.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/code/community/Mzax/Emarketing/sql/mzax_emarketing_setup/upgrade-0.2.6-0.2.7.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Mzax Emarketing (www.mzax.de)
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this Extension in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @version 0.2.7
13
+ * @category Mzax
14
+ * @package Mzax_Emarketing
15
+ * @author Jacob Siefer (jacob@mzax.de)
16
+ * @copyright Copyright (c) 2015 Jacob Siefer
17
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
+ */
19
+
20
+ /* @var $installer Mzax_Emarketing_Model_Resource_Setup */
21
+ $installer = $this;
22
+ $connection = $installer->getConnection();
23
+
24
+ $campaignTable = $installer->getTable('mzax_emarketing/campaign');
25
+
26
+
27
+ $connection->addColumn($campaignTable, 'description', array(
28
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
29
+ 'length' => 1024,
30
+ 'after' => 'name',
31
+ 'comment' => 'Description'
32
+ ));
33
+
34
+ $connection->addColumn($campaignTable, 'tags', array(
35
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
36
+ 'length' => 255,
37
+ 'after' => 'name',
38
+ 'comment' => 'Tags'
39
+ ));
40
+
41
+
42
+
43
+ $installer->installCampaignPresets(dirname(__FILE__));
app/design/adminhtml/default/default/layout/mzax/emarketing.xml CHANGED
@@ -10,7 +10,7 @@
10
  * It is also available through the world-wide-web at this URL:
11
  * http://opensource.org/licenses/osl-3.0.php
12
  *
13
- * @version 0.2.6
14
  * @category Mzax
15
  * @package Mzax_Emarketing
16
  * @author Jacob Siefer (jacob@mzax.de)
10
  * It is also available through the world-wide-web at this URL:
11
  * http://opensource.org/licenses/osl-3.0.php
12
  *
13
+ * @version 0.2.7
14
  * @category Mzax
15
  * @package Mzax_Emarketing
16
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/campaign/content-tabs.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/campaign/filters/emulate.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/campaign/load_template.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/campaign/medium/email/preview.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -37,59 +37,66 @@
37
 
38
  </div>
39
 
40
- <div id="tab-container">
41
- <div id="tab_html_content">
42
- <div id="preview-frame"></div>
 
43
  </div>
44
- <div id="tab_text_content">
45
- <div id="body-text-editor" class="ace-editor"><?php echo $this->getBodyText() ?></div>
46
- </div>
47
- <div id="tab_code_content">
48
- <div id="body-html-editor" class="ace-editor"><?php echo $this->htmlEscape($this->getBodyHtml()) ?></div>
49
- </div>
50
- <div id="tab_links_content">
51
- <p><?php echo $this->__("Detected %s link(s)", count($this->getLinkReferences())) ?></p>
52
- <div class="mzax-info-element"><?php echo $this->__('Important, you should not add any unique variables to your links. Try to keep them as generic as possible to get the most out of data tracking without flooding your database.') ?></div>
53
- <div id="link-grid" class="grid np">
54
- <form action="<?php echo $this->getUrl('*/*/updateLinks', array('_current' => 1)) ?>" method="post">
55
- <input type="hidden" name="form_key" value="<?php echo $this->getFormKey() ?>" />
56
-
57
- <table id="mzax-content-link-table" class="data order-tables" cellspacing="0">
58
- <thead>
59
- <tr class="headings">
60
- <th><?php echo $this->__('Link ID') ?></th>
61
- <th><?php echo $this->__('Target URL') ?></th>
62
- <th><?php echo $this->__('Anchor Text') ?></th>
63
- <th><?php echo $this->__('Is OptOut Link') ?></th>
64
- </tr>
65
- </thead>
66
- <tbody>
67
- <?php foreach($this->getLinkReferences() as $reference): ?>
68
- <tr id="<?php echo $reference->getPublicId() ?>">
69
- <td class="pid"><?php echo $reference->getPublicId() ?></td>
70
- <td class="url"><?php echo $reference->getLink()->getUrl() ?></td>
71
- <td class="anchor"><?php echo $reference->getLink()->getAnchor() ?></td>
72
- <td class="optout" align="center">
73
- <input type="hidden" name="optout[<?php echo $reference->getLink()->getId() ?>]" value="0" />
74
- <input onclick="$('form-buttons').show();" type="checkbox" name="optout[<?php echo $reference->getLink()->getId() ?>]" value="1" <?php echo $reference->getLink()->getOptout() ? 'checked="checked"' : '' ?> />
75
- </td>
76
- </tr>
77
- <?php endforeach ?>
78
- </tbody>
79
- <tfoot id="form-buttons" style="display: none;">
80
- <th></th>
81
- <th></th>
82
- <th></th>
83
- <th align="center">
84
- <button type="submit" name="update_links" value="1" >Update</button>
85
- </th>
86
- </tfoot>
87
- </table>
88
-
89
- </form>
 
 
 
 
 
 
90
  </div>
91
  </div>
92
- </div>
93
  <div id="preview-foot">
94
  <div class="render-time" onclick="reload();"><?php echo $this->__('Email rendering took <b>%.4f sec</b>', $this->getRenderTime() ) ?></div>
95
  <button id="toggle-images">Toggle images</button>
@@ -129,7 +136,7 @@ var preview = new mzax.ui.PreviewFrame($('preview-frame'), {
129
  });
130
 
131
  preview.disableLinks(function(link) {
132
- var matches = a.href.match(/\/([a-z0-9]{40})$/i);
133
  if(matches) {
134
  var url = $(matches[1]).down('.url').innerHTML;
135
  alert("Link ("+url+") Tracked");
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
37
 
38
  </div>
39
 
40
+ <?php if($error = $this->getError()): ?>
41
+ <div>
42
+ <p><button onclick="reload();">reload</button> <?php echo $error->getMessage() ?></p>
43
+ <pre><?php echo $error->getTraceAsString() ?></pre>
44
  </div>
45
+ <?php else: ?>
46
+ <div id="tab-container">
47
+ <div id="tab_html_content">
48
+ <div id="preview-frame"></div>
49
+ </div>
50
+ <div id="tab_text_content">
51
+ <div id="body-text-editor" class="ace-editor"><?php echo $this->getBodyText() ?></div>
52
+ </div>
53
+ <div id="tab_code_content">
54
+ <div id="body-html-editor" class="ace-editor"><?php echo $this->htmlEscape($this->getBodyHtml()) ?></div>
55
+ </div>
56
+ <div id="tab_links_content">
57
+ <p><?php echo $this->__("Detected %s link(s)", count($this->getLinkReferences())) ?></p>
58
+ <div class="mzax-info-element"><?php echo $this->__('Important, you should not add any unique variables to your links. Try to keep them as generic as possible to get the most out of data tracking without flooding your database.') ?></div>
59
+ <div id="link-grid" class="grid np">
60
+ <form action="<?php echo $this->getUrl('*/*/updateLinks', array('_current' => 1)) ?>" method="post">
61
+ <input type="hidden" name="form_key" value="<?php echo $this->getFormKey() ?>" />
62
+
63
+ <table id="mzax-content-link-table" class="data order-tables" cellspacing="0">
64
+ <thead>
65
+ <tr class="headings">
66
+ <th><?php echo $this->__('Link ID') ?></th>
67
+ <th><?php echo $this->__('Target URL') ?></th>
68
+ <th><?php echo $this->__('Anchor Text') ?></th>
69
+ <th><?php echo $this->__('Is OptOut Link') ?></th>
70
+ </tr>
71
+ </thead>
72
+ <tbody>
73
+ <?php foreach($this->getLinkReferences() as $reference): ?>
74
+ <tr id="<?php echo $reference->getPublicId() ?>">
75
+ <td class="pid"><?php echo $reference->getPublicId() ?></td>
76
+ <td class="url"><?php echo $reference->getLink()->getUrl() ?></td>
77
+ <td class="anchor"><?php echo $reference->getLink()->getAnchor() ?></td>
78
+ <td class="optout" align="center">
79
+ <input type="hidden" name="optout[<?php echo $reference->getLink()->getId() ?>]" value="0" />
80
+ <input onclick="$('form-buttons').show();" type="checkbox" name="optout[<?php echo $reference->getLink()->getId() ?>]" value="1" <?php echo $reference->getLink()->getOptout() ? 'checked="checked"' : '' ?> />
81
+ </td>
82
+ </tr>
83
+ <?php endforeach ?>
84
+ </tbody>
85
+ <tfoot id="form-buttons" style="display: none;">
86
+ <th></th>
87
+ <th></th>
88
+ <th></th>
89
+ <th align="center">
90
+ <button type="submit" name="update_links" value="1" >Update</button>
91
+ </th>
92
+ </tfoot>
93
+ </table>
94
+
95
+ </form>
96
+ </div>
97
  </div>
98
  </div>
99
+ <?php endif ?>
100
  <div id="preview-foot">
101
  <div class="render-time" onclick="reload();"><?php echo $this->__('Email rendering took <b>%.4f sec</b>', $this->getRenderTime() ) ?></div>
102
  <button id="toggle-images">Toggle images</button>
136
  });
137
 
138
  preview.disableLinks(function(link) {
139
+ var matches = link.href.match(/\/([a-z0-9]{16})$/i);
140
  if(matches) {
141
  var url = $(matches[1]).down('.url').innerHTML;
142
  alert("Link ("+url+") Tracked");
app/design/adminhtml/default/default/template/mzax/emarketing/campaign/presets.phtml ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* @var $this Mzax_Emarketing_Block_Campaign_New_Presets */
3
+ /* @var $preset Mzax_Emarketing_Model_Campaign_Preset */
4
+
5
+ $showVersionNotice = false;
6
+ ?>
7
+
8
+
9
+ <div class="mzax-campaign-presets">
10
+
11
+ <div class="content-header">
12
+ <h3 class="head-presets">Create new campaign from a preset.</h3>
13
+ </div>
14
+ <div class="mzax-info-element">
15
+ <p><?php echo $this->__('Campaign presets are pre-configured common campaigns that are easy to use as most filters and settings are already defined. You are of cause still able to do any changes to customise the campaign to your exact needs. ') ?></p>
16
+ </div>
17
+ <ul class="campaign-preset-list">
18
+ <?php foreach($this->getPresets() as $preset): ?>
19
+ <li class="preset">
20
+ <span class="preset-title">
21
+ <?php echo $this->htmlEscape($preset->getName()) ?>
22
+ <?php if(!$preset->validateVersion()): $showVersionNotice = true; ?>
23
+ <sup class="version"> (<?php echo $this->htmlEscape($preset->getVersion()) ?>**)</sup>
24
+ <?php endif ?>
25
+ </span>
26
+ <?php if($description = $preset->getDescription()): ?>
27
+ <p class="preset-description"><?php echo $this->htmlEscape($description) ?></p>
28
+ <?php endif ?>
29
+
30
+ <button type="button" onclick="setLocation('<?php echo $this->getUrl('*/*/usePreset', array('preset' => $preset->getFilename())) ?>');" class="scalable save"><span><?php echo $this->__('Continue') ?></span></button>
31
+ <?php if($author = $preset->getAuthor()): ?>
32
+ <span class="preset-author"><?php echo $this->__('Created by %s', $this->htmlEscape($author)) ?></span>
33
+ <?php endif ?>
34
+ </li>
35
+ <?php endforeach ?>
36
+ </ul>
37
+ <?php if($showVersionNotice): ?>
38
+ <div class="mzax-warn-element">
39
+ <?php echo $this->__('** This preset was created in a newer version of the Mzax eMarketing extension this may cause problems. Your current version is %s.', Mage::helper('mzax_emarketing')->getVersion()) ?>
40
+ </div>
41
+ <?php endif?>
42
+
43
+ </div>
app/design/adminhtml/default/default/template/mzax/emarketing/campaign/recipients.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/campaign/report.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/campaign/tasks.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -74,6 +74,39 @@ $campaign = $this->getCampaign();
74
  </td>
75
  </tr>
76
  <?php endif ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  </table>
78
 
79
 
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
74
  </td>
75
  </tr>
76
  <?php endif ?>
77
+
78
+ <tr>
79
+ <td class="scope-label">
80
+ <button onclick="setLocation('<?php echo $this->getActionUrl('download') ?>')" type="button" class="scalable"><span><?php echo $this->__('Download as Preset') ?></span></button>
81
+ </td>
82
+ <td class="scope-label">
83
+ <?php echo $this->__('Download this campaign as preset and share or install it on your Magento installation. The campaign preset will include most settings, filters and content.')?>
84
+ </td>
85
+ </tr>
86
+
87
+ <tr>
88
+ <td class="scope-label">
89
+ <button onclick="setLocation('<?php echo $this->getActionUrl('installAsPreset') ?>')" type="button" class="scalable"><span><?php echo $this->__('Install as preset') ?></span></button>
90
+ </td>
91
+ <td class="scope-label">
92
+ <?php echo $this->__('Install as preset. This will overwrite any preset with the same name.')?>
93
+ </td>
94
+ </tr>
95
+
96
+
97
+
98
+
99
+
100
+ <tr>
101
+ <td class="scope-label">
102
+ <button onclick="setLocation('<?php echo $this->getActionUrl('duplicate') ?>')" type="button" class="scalable goto"><span><?php echo $this->__('Duplicate campaign') ?></span></button>
103
+ </td>
104
+ <td class="scope-label">
105
+ <?php echo $this->__('Duplicate this campaign and start again')?>
106
+ </td>
107
+ </tr>
108
+
109
+
110
  </table>
111
 
112
 
app/design/adminhtml/default/default/template/mzax/emarketing/edit/js.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/editor/text.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/fieldset.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/filter/page-preview.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/filter/test/filter.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/filter/test/recursive.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/filter/test/single.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/tracker/conditions/emulate.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/tracker/tasks.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/widget/chart-geo.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/adminhtml/default/default/template/mzax/emarketing/widget/chart-tab.phtml CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
app/design/frontend/base/default/layout/mzax/emarketing.xml CHANGED
@@ -10,7 +10,7 @@
10
  * It is also available through the world-wide-web at this URL:
11
  * http://opensource.org/licenses/osl-3.0.php
12
  *
13
- * @version 0.2.6
14
  * @category Mzax
15
  * @package Mzax_Emarketing
16
  * @author Jacob Siefer (jacob@mzax.de)
10
  * It is also available through the world-wide-web at this URL:
11
  * http://opensource.org/licenses/osl-3.0.php
12
  *
13
+ * @version 0.2.7
14
  * @category Mzax
15
  * @package Mzax_Emarketing
16
  * @author Jacob Siefer (jacob@mzax.de)
app/design/frontend/base/default/template/mzax/email/order-items.phtml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* @var $item Mage_Sales_Model_Order_Item */
3
+ /* @var $this Mzax_Emarketing_Block_Template */
4
+ ?>
5
+ <?php if($order = $this->getOrder()): ?>
6
+ <table class="product-table order-table" cellspacing="0" cellpadding="0" border="0" width="100%">
7
+ <?php foreach ($this->getAllItems($order) as $i => $item): ?>
8
+ <tr class="<?php echo $i%2 ? 'even' : 'odd' ?>">
9
+ <td class="product-image" width="120" valign="top">
10
+ <img alt="<?php echo $item->getName() ?>" src="<?php echo $this->getProductImage($item) ?>" />
11
+ </td>
12
+ <td class="product-detail" width="100%" valign="top">
13
+ <h3><?php echo $item->getName() ?></h3>
14
+ <p><?php echo $item->getProduct()->getShortDescription() ?></p>
15
+ </td>
16
+ </tr>
17
+ <?php endforeach; ?>
18
+ </table>
19
+ <?php else: ?>
20
+ <p>No order found :(</p>
21
+ <?php endif; ?>
app/design/frontend/base/default/template/mzax/email/quote-items.phtml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* @var $item Mage_Sales_Model_Quote_Item */
3
+ /* @var $this Mzax_Emarketing_Block_Template */
4
+ ?>
5
+ <?php if($quote = $this->getQuote()): ?>
6
+ <table class="product-table quote-table" cellspacing="0" cellpadding="0" border="0" width="100%">
7
+ <?php foreach ($this->getAllItems($quote) as $i => $item): ?>
8
+ <tr class="<?php echo $i%2 ? 'even' : 'odd' ?>">
9
+ <td class="product-image" width="120" valign="top">
10
+ <img alt="<?php echo $item->getName() ?>" src="<?php echo $this->getProductImage($item) ?>" />
11
+ </td>
12
+ <td class="product-detail" width="100%" valign="top">
13
+ <h3><?php echo $item->getName() ?></h3>
14
+ <p><?php echo $item->getProduct()->getShortDescription() ?></p>
15
+ </td>
16
+ </tr>
17
+ <?php endforeach; ?>
18
+ </table>
19
+ <?php else: ?>
20
+ <p>No shopping cart found :(</p>
21
+ <?php endif; ?>
js/mzax/ace/ext-mage_autocomplete.js CHANGED
@@ -8,7 +8,7 @@
8
  * It is also available through the world-wide-web at this URL:
9
  * http://opensource.org/licenses/osl-3.0.php
10
  *
11
- * @version 0.2.6
12
  * @category Mzax
13
  * @package Mzax_Emarketing
14
  * @author Jacob Siefer (jacob@mzax.de)
8
  * It is also available through the world-wide-web at this URL:
9
  * http://opensource.org/licenses/osl-3.0.php
10
  *
11
+ * @version 0.2.7
12
  * @category Mzax
13
  * @package Mzax_Emarketing
14
  * @author Jacob Siefer (jacob@mzax.de)
js/mzax/ace/mode-mage.js CHANGED
@@ -8,7 +8,7 @@
8
  * It is also available through the world-wide-web at this URL:
9
  * http://opensource.org/licenses/osl-3.0.php
10
  *
11
- * @version 0.2.6
12
  * @category Mzax
13
  * @package Mzax_Emarketing
14
  * @author Jacob Siefer (jacob@mzax.de)
8
  * It is also available through the world-wide-web at this URL:
9
  * http://opensource.org/licenses/osl-3.0.php
10
  *
11
+ * @version 0.2.7
12
  * @category Mzax
13
  * @package Mzax_Emarketing
14
  * @author Jacob Siefer (jacob@mzax.de)
js/mzax/ace/theme-mage.js CHANGED
@@ -8,7 +8,7 @@
8
  * It is also available through the world-wide-web at this URL:
9
  * http://opensource.org/licenses/osl-3.0.php
10
  *
11
- * @version 0.2.6
12
  * @category Mzax
13
  * @package Mzax_Emarketing
14
  * @author Jacob Siefer (jacob@mzax.de)
8
  * It is also available through the world-wide-web at this URL:
9
  * http://opensource.org/licenses/osl-3.0.php
10
  *
11
+ * @version 0.2.7
12
  * @category Mzax
13
  * @package Mzax_Emarketing
14
  * @author Jacob Siefer (jacob@mzax.de)
js/mzax/ckeditor.plugin.mage.js CHANGED
@@ -8,7 +8,7 @@
8
  * It is also available through the world-wide-web at this URL:
9
  * http://opensource.org/licenses/osl-3.0.php
10
  *
11
- * @version 0.2.6
12
  * @category Mzax
13
  * @package Mzax_Emarketing
14
  * @author Jacob Siefer (jacob@mzax.de)
8
  * It is also available through the world-wide-web at this URL:
9
  * http://opensource.org/licenses/osl-3.0.php
10
  *
11
+ * @version 0.2.7
12
  * @category Mzax
13
  * @package Mzax_Emarketing
14
  * @author Jacob Siefer (jacob@mzax.de)
js/mzax/editor.js CHANGED
@@ -8,7 +8,7 @@
8
  * It is also available through the world-wide-web at this URL:
9
  * http://opensource.org/licenses/osl-3.0.php
10
  *
11
- * @version 0.2.6
12
  * @category Mzax
13
  * @package Mzax_Emarketing
14
  * @author Jacob Siefer (jacob@mzax.de)
@@ -30,31 +30,38 @@ this},getValue:function(){return this.cke?this.cke.getData():this.value},refresh
30
  b.addClassName("mzax-editor"),a.iframe=b.down(".mzax-editor-frame"),a.input=b.down(".mzax-editor-input"),a.loader=b.down(".mzax-loader"),a.loader.down(".label").innerHTML="Loading Editor",Element.hide(a.input),Element.hide(a.loader),a.enableAce&&ace&&(a.ace=ace.edit(b.down(".text-input")),a.ace.setMageSnippets(a.snippets),a.ace.owner=a,a.ace.setTheme("ace/theme/mage"),a.ace.getSession().setMode("ace/mode/mage"),a.ace.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableMageLiveAutocompletion:!0}),a.ace.browserMedia=function(){a.browserMedia(function(b){a.ace.insert(b)},!1)},a.ace.insertWidget=function(){a.insertWidget(function(b){a.ace.insert(b)},!1)});var c=b.down(".controls");a._createButton({label:"Apply",cls:"save btn-right",target:c,click:a.applyChanges.bind(a)}),a._createButton({label:"Discard",cls:"back btn-right",target:c,click:a.discardChanges.bind(a)}),a.ace&&(a._createButton({label:"Insert Variable",cls:"mzax-code html-only",target:c,click:function(){a.ace.execCommand("mage",{
31
  source:"mage"})}}),a._createButton({label:"Insert Image",cls:"mzax-image html-only",target:c,click:function(){a.browserMedia(function(b){a.ace.insert(b)},!1)}}),a._createButton({label:"Insert Widget",cls:"mzax-widget html-only",target:c,click:function(){a.insertWidget(function(b){a.ace.insert(b)},!1)}}))},_createButton:function(a){var b=new Element("button",{type:"button","class":"scalable "+(a.cls||"")}).update("<span>"+a.label+"</span>");return a.click&&b.observe("click",a.click),a.target&&a.target.insert(b),b},setHtml:function(b,d){if(this._lastScrollTop=this.scrollTop(),this.documentLoaded=!1,this.editorReady=!1,this.html=b,this.preview=d||!1,this.jQuery=null,this.CKEDITOR=null,this._customStyles=null,this.iframe)try{this.iframe.src=""}catch(e){}return this.cancelEditorLoad&&this.cancelEditorLoad(),this._docTimer&&clearInterval(this._docTimer),Element.show(this.loader),this._docTimer=c(a.document,function(){var a=this.getDocument();a.open(),a.write(b),a.close(),this.initDocument()}.bind(this)),
32
  this},scrollTop:function(a){return this.html&&this.documentLoaded?("undefined"!=typeof a&&this.getFrameWindow().scrollTo(0,a),this.getFrameWindow().scrollY):0},setValue:function(a){if(a)try{this.setData(JSON.parse(a))}catch(b){return!1}else this.setData(null);return!0},setData:function(a){if(!a)return this.fields=null,this.customCss=null,this.html&&this.setHtml(this.html),this;this._data=a,this.fields=null;var c,d;if(a&&a.fields)for(c in a.fields)if(a.fields.hasOwnProperty(c))for(d=0;d<a.fields[c].length;d++)this.getField(c,d).load(a.fields[c][d]||{});return a.customCss&&(this.customCss=new b.ui.EditorField,this.customCss.load(a.customCss),this.customCss.type="css"),this.html&&this.setHtml(this.html),this},getData:function(){this.refreshUi();var a,b,c,d,e={version:this.version},f={},g=this.fields;if(g)for(c in g)if(g.hasOwnProperty(c))for(d=f[c]=[],b=0;b<g[c].length;b++)(a=g[c][b])&&d.push(a.sleep());return this.customCss&&(e.customCss=this.customCss.sleep()),e.fields=f,e},getValue:function(){
33
- return JSON.stringify(this.getData())},renderPlaceholders:function(a){var c=this;b.ui.Placeholder.replaceHtml(c.getDocument().body,function(a,b){switch(a.directive){case"media":case"skin":return c.getImagePreviewUrl(a.expr)}if(c.snippets){var d=m(c.snippets,function(b){return h(b.snippet)===h(a.expr)?b:void 0});if(d){if(b&&d.html)return d.html;if(d.text)return d.text}}return b?a.toHtml():a.toText()},a||!1)},initDocument:function(){var a=this;a.documentLoaded=!0,a.preview&&(a.renderPlaceholders(),a.editorCss&&a.loadStyle(a.editorCss)),a.scrollTop(a._lastScrollTop||0),a.editModeFlag?a.loadEditor():Element.hide(a.loader)},getDocument:function(){var a=this.iframe;return this.content=a.contentWindow?a.contentWindow.document:a.contentDocument&&a.contentDocument.document?a.contentDocument.document:a.contentDocument,this.content},getFrameWindow:function(){var a=this.getDocument();return a.parentWindow||a.defaultView},select:function(a){var b=this.getDocument();return b?Element.select(b,a):[]},get:function(a){
34
- var b=this.select(a);return b.length?b[0]:null},loadScript:function(a){if(!this.documentLoaded)throw new Error("Document is not yet loaded and ready");var b=this.getDocument();c(b,function(){var b=new Element("script",{type:"text/javascript",src:a}),c=this.select("head");1===c.length?c[0].appendChild(b):alert("todo, no head tag found")},this)},loadStyle:function(a){if(!this.documentLoaded)throw new Error("Document is not yet loaded and ready");var b=this.getDocument();c(b,function(){var b=new Element("link",{href:a,rel:"stylesheet",type:"text/css",media:"all"}),c=this.select("head");1===c.length?c[0].appendChild(b):alert("todo, no head tag found")},this)},loadEditor:function(){function a(){(!b.jquerySrc||b.jQuery)&&(!b.enableCKEditor||b.CKEDITOR)&&(!b.editorCss||b.cssLoaded)&&(b.CKEDITOR&&b.initCKEditor(b.CKEDITOR),b.cancelEditorLoad=null,b.initEditor(),b.editorReady=!0)}if(this.editorReady)return this;if(!this.documentLoaded)return this;var b=this,c=[],d=b.getFrameWindow();if(Element.show(b.loader),
35
- b.cancelEditorLoad=function(){for(var a=c.length;--a>-1;)clearInterval(c[a]);b.cancelEditorLoad=null},b.enableCKEditor&&b.ckeditorSrc){b.CKEDITOR=null,b.loadScript(b.ckeditorSrc);var e=setInterval(function(){d.CKEDITOR&&"loaded"===d.CKEDITOR.status&&(b.CKEDITOR=d.CKEDITOR,clearInterval(e),a())},10);c.push(e)}if(b.jquerySrc){b.jQuery=null,b.loadScript(b.jquerySrc);var f=setInterval(function(){d.jQuery&&(b.initJQuery(d.jQuery),clearInterval(f),a())},10);c.push(f)}if(b.editorCss){b.cssLoaded=!1,b.loadStyle(b.editorCss);var g=setInterval(function(){b.cssLoaded=!0,clearInterval(g),a()},1e3);c.push(g)}return a(),this},initEditor:function(){function a(){var a,b=l(this),c=b.mage("id");c&&(a=i.getField(c,b.mage("index")).setElement(b))}function c(){var a,b,c=l(this),e=c.mage("id");if(e&&d(c.mage("editable")))return a=i.getField(e,c.mage("index")).setElement(c),c.is("img")?(a.type="image",c.on({click:function(b){i.editField(a,b)},mouseenter:function(){c.addClass("mzax-editor-highlight-image")},mouseleave:function(){
36
- c.removeClass("mzax-editor-highlight-image")}}),"string"!=typeof a.value&&(a.value=c.attr("src")),"string"!=typeof a.alt&&(a.alt=c.attr("alt")||""),c.attr("src",i.getImagePreviewUrl(a.value)),void c.attr("alt",a.alt)):("string"==typeof a.value?c.html(a.value):a.setValue(c.html()),j&&(c.is("td")?b=l('<div class="mzax-inline-ckeditor" contenteditable="true" />').html(a.value).appendTo(c.empty()):c.is("div")&&(b=c.addClass("mzax-inline-ckeditor").addAttr("contenteditable",!0)),b)?(a.cke=j.inline(b[0],{autoParagraph:!1,allowedContent:!0,readOnly:!1,extraPlugins:"mage_code,mzax_editor,mzax_image",format_tags:"p;h1;h2;h3;h4;h5;h6;pre;address;div",stylesSet:i.getCustomStyles(),sharedSpaces:{top:"mzax-ckeditor-top"}}),a.cke.field=a,void a.cke.on("instanceReady",function(a){a.editor.setReadOnly(!1)})):void c.on({click:function(b){i.editField(a,b)},mouseenter:function(){c.addClass("mzax-editor-highlight")},mouseleave:function(){c.removeClass("mzax-editor-highlight")}}))}function f(){var a,b,c=m,f=l(this),g=d(f.mage("repeatable")),j=d(f.mage("removable")),k=f.mage("id");
37
-
38
- if(k&&(j||g)&&!f.is(".mzax-removable-worker")){a=l('<div class="mzax-remove-handle"><span>'+h(k)+"</span></div>").appendTo(m).hide(),g&&a.addClass("mzax-repeatable"),b=i.getField(k,f.mage("index")).setElement(f),b.removable=!0,b.removeHandle=a,b.parent&&(c=b.parent.element,a.addClass("mzax-field-"+b.parent.uid)),f.addClass("mzax-removable-worker").on({mouseenter:function(){clearTimeout(o),(j||b.index)&&i.refreshUi()},mouseleave:function(b){a.hasElement(b.relatedTarget)||a.hide()},mousemove:function(c){g?b.index&&a.show():a.css({top:c.pageY-a.height()/2,left:f.offset().left-a.width()/2,opacity:1.2-(c.pageX-l(this).offset().left)/140}).show()}});var o;a.on({mousemove:function(c){if(!b.remove&&!g){var d=f.offset().top,h=f.height(),i=a.height()/2;a.css({top:e(c.pageY-i,d-i,d+h-i)})}},mouseenter:function(){clearTimeout(o),b.remove||n.moveOnTop(f).show()},mouseleave:function(){n.hide(),b.remove||a.hide()},click:function(){if(j){clearTimeout(o);var c=b.remove=!b.remove;f.toggleClass("mzax-removed",c)[c?"fadeOut":"fadeIn"]("fast"),
39
- a.toggleClass("mzax-removed",c).fixedPosition(c&&!b.parent),n.hide(),i.refreshUi(),c||(a.hide(),f.highlight())}else g&&b.index&&confirm("Are you sure?")&&(b.element.fadeOut(300,function(){b.flagAsDeleted(),i.reindexFields()}),n.fadeOut(300),a.hide())}}),b.remove&&(f.addClass("mzax-removed"),a.addClass("mzax-removed").fixedPosition(!b.parent),setTimeout(function(){f.hide()},500)),b.refreshUi(function(d){var e,h,i,k;if(!j&&!b.index)return void a.hide();if(f.is(".mzax-removed"))f.parents(".mzax-removed").length?a.hide():(c===m?(h=d.topOffset+10,k=5,i=a.prevAll(".mzax-remove-handle.mzax-removed:visible")):(e=c.offset(),h=e.top+25,k=Math.max(e.left+c.width()),i=a.prevAll(".mzax-remove-handle.mzax-field-"+b.parent.uid)),a.show().animate({top:h+i.length*(a.height()+5),left:k,opacity:1},{duration:300,complete:function(){a.show()}}));else{var e=f.offset();g?(e.left+=f.width()-a.width()+3,e.top+=-3):(e.left-=a.width()/2,delete e.top),a.css(e)}})}}function g(){var a,b,e,h=l(this),j=h.mage("id");if(j&&d(h.mage("repeatable"))){
40
- if(h.parents("[mage\\:repeatable]").length)return void h.removeAttr("mage:repeatable");a=l('<div class="mzax-repeat-handle"></div>').appendTo(m).hide(),e=l('<div class="mzax-swap-handle"></div>').appendTo(m).hide(),b=i.getField(j,h.mage("index")).setElement(h),b.repeatable=!0,b.repeatHandle=a,b.swapHandler=e;var k;h.on({mousemove:function(b){var c=b.pageY-l(this).offset().top,d=b.pageX-l(this).offset().left,f=e.is(":visible"),g=0,i=Math.min(h.height()/2-5,100);if(i>c?!f&&(k=h.prev('[mage\\:id="'+j+'"]:visible')).length&&(f=!0,swapDown=!1):c>h.height()-i?(!f&&(k=h.next('[mage\\:id="'+j+'"]:visible')).length&&(f=!0,swapDown=!0),g=h.height()):f=!1,f){var m=h.offset();m.top+=g-e.height()/2,m.left+=h.width()-20-e.width(),m.opacity=Math.min(1.5-(h.width()-d)/100,1.2-Math.abs(g-c)/50),e.css(m)}l(".mzax-swap-handle").not(e).hide(),e.toggle(f),a.css({opacity:1.1-(h.height()-c)/100})},mouseenter:function(){l(".mzax-repeat-handle").hide(),a.show(),i.refreshUi()},mouseleave:function(b){e.hasElement(b.relatedTarget)||setTimeout(e.hide.bind(e),10),
41
- a.hasElement(b.relatedTarget)||a.hide()}}),e.on({mouseenter:function(){var a=Math.min(h.height(),k.height(),60)+"px";p.moveOnTop(k).toggleClass("mzax-a",swapDown).toggleClass("mzax-b",!swapDown).css("background-size",a).flicker().show(),q.moveOnTop(h).toggleClass("mzax-b",swapDown).toggleClass("mzax-a",!swapDown).css("background-size",a).flicker().show()},mouseleave:function(){p.moveOnTop(k).flicker(!1).hide(),q.moveOnTop(h).flicker(!1).hide()},click:function(){k.length&&(k[swapDown?"insertBefore":"insertAfter"](h).data("field").swap(b),swapDown=!swapDown,i.refreshUi()),e.hide()}}),a.on({mouseenter:function(){o.moveOnTop(h).show()},mouseleave:function(){o.hide()},click:function(){var a=b.index+1;i.insertField(b.id,a);var d=b.clone().find("[mage\\:id]").andSelf().attr("mage:index",a).end().end().insertAfter(b.element).each(f).each(g).find("[mage\\:editable]").each(c).end().find("[mage\\:removable]").each(f).end();d.highlight()}});var n=i.fields[j];if(n.length>1)for(var r=1;r<n.length;r++)n[r].element||b.clone().find("[mage\\:id]").andSelf().attr("mage:index",r).end().end().insertAfter(b.element).each(f).each(g).find("[mage\\:editable]").each(c).end().find("[mage\\:removable]").each(f).end();
42
-
43
- b.refreshUi(function(){var b=h.offset();b.top+=h.height()-a.height()/2,b.left+=h.width()/2-a.width()/2,a.offset(b)})}}var i=this,j=i.CKEDITOR,k=i.getFrameWindow(),l=i.jQuery,m=l("body");if(l(k).on("resize scroll",function(){i.refreshUi(10)}),l("img").on("load error",function(){i.refreshUi(10)}),l(k).bind("keydown",function(a){if(8===a.keyCode){if(!l(a.target).is(".cke_editable,:input"))return void a.preventDefault();if(i.CKEDITOR&&i.CKEDITOR.currentInstance)try{0===i.CKEDITOR.currentInstance.getSelection().getRanges().length&&a.preventDefault()}catch(b){a.preventDefault()}}}),m.length){i.renderPlaceholders(!0);var n=l('<div class="mzax-remove-marker mzax-marker" />').appendTo(m),o=l('<div class="mzax-repeat-marker mzax-marker" />').appendTo(m),p=l('<div class="mzax-swap-marker mzax-marker mzax-a" />').appendTo(m),q=l('<div class="mzax-swap-marker mzax-marker mzax-b" />').appendTo(m);customCss=l('<div class="mzax-custom-css" />').html("&laquo;CSS&raquo;").appendTo(m),l.fn.highlight=function(){
44
- var a=this;return a.scrollIntoView(function(){o.moveOnTop(a).show().fadeOut(1e3)},300)},i.allowCustomCss!==!1?(i.customCss=i.customCss||new b.ui.EditorField,i.customCss.type="css",i.customCss.setElement(l("<style />").appendTo("head").html(i.customCss.getValue())),customCss.click(function(){i.editField(i.customCss)})):customCss.remove(),l("[mage\\:id]").each(a),l("[mage\\:editable]").each(c),l("[mage\\:repeatable]").each(g).each(f),l("[mage\\:removable]").each(f)}this.disableLinks(function(a){alert("Link ("+a.href+")")}),this.refreshUi(),setTimeout(function(){Element.hide(i.loader)},500)},initCKEditor:function(a){var c=this,d=c.jQuery;c.CKEDITOR=a,a.owner=c,a.mzax=b,a.mageSnippets=c.snippets||{},a.disableAutoInline=!0,a.plugins.addExternal("mage_code,mzax_editor,mzax_image","/js/mzax/","ckeditor.plugin.mage.js"),a.on("instanceReady",c.refreshUi.bind(c)),a.on("currentInstance",c.refreshUi.bind(c)),a.selectImageSource=function(a){c.browserMedia(a,!0)},a.getImagePreviewUrl=c.getImagePreviewUrl.bind(c),
45
- d("body").addClass("mzax-ckeditor-enabled"),d('<div id="mzax-ckeditor-top" />').prependTo("body")},initJQuery:function(a){var b=this,c=a(b.getFrameWindow());b.jQuery=a,k(a),a.fn.mage=function(a){return this.attr("mage:"+a)},a.fn.fixedPosition=function(b){var c=this.offset(),d=b?"fixed":"absolute",b=b?-1:1;return this.css("position")===d?this:this.css({position:d,top:c.top+a("body").scrollTop()*b,left:c.left+a("body").scrollLeft()*b})},a.fn.hasElement=function(b){return this.length>0&&(-1!==this.index(b)||a.contains(this[0],b))},a.fn.moveOnTop=function(a){var b=a.offset();return this.css({left:b.left,top:b.top,height:a.height(),width:a.width()})},a.fn.scrollIntoView=function(b,d){var e=(a("html, body"),parseInt(a("body").css("margin-top"))),f=c.scrollTop(),g=this.offset();return f<g.top&&f+c.height()>g.top+this.height()?(b.call(this),this):void a("html, body").animate({scrollTop:g.top-20-e},{duration:d||150,complete:b})},a.fn.flicker=function(a,b){var c=this;if(a!==!1){var d=function(){c.animate({
46
- opacity:e(Math.random(),.2,1)},{duration:b||500,queue:"flicker",complete:d}).dequeue("flicker")};d()}else c.stop("flicker",!0,!1).css("opacity","");return this}},getImagePreviewUrl:function(a){var c=new b.ui.Placeholder(a);if(c.valid&&c.params.url){var d=this[c.directive+"Url"]||"/";return d+c.params.url}return a},reindexFields:function(a){var c,d,e,f,g=this,h=g.fields;if(h)for(d in h)if(h.hasOwnProperty(d)){for(f=[],e=h[d].length;--e>-1;)(c=h[d][e])&&!c.deleted&&f.push(c);for(f=f.sort(b.ui.EditorField.indexSort),e=f.length;--e>-1;)f[e].index=e,a&&a.call(f[e],f[e],e);h[d]=f}},refreshUi:function(a){function b(){if(c.ace&&c.ace.resize(),d){var a={window:e,editor:c,topOffset:d("#mzax-ckeditor-top").height(),height:e.height()};a.bottom=e.scrollTop()+a.height,a.top=e.scrollTop()+a.topOffset,c.CKEDITOR&&d("body").css("margin-top",a.topOffset),c.reindexFields(function(b){b.refreshUi(a)})}}var c=this,d=c.jQuery,e=d?d(c.getFrameWindow()):null;this._refreshTimer&&clearTimeout(this._refreshTimer),
47
- a===!1?b():this._refreshTimer=setTimeout(b,a||5)},getField:function(a,c){var d=this,e=d.fields||(d.fields={});return c=c||0,e[a]||(e[a]=[]),e[a][c]||(e[a][c]=new b.ui.EditorField(a,1*c),e[a][c].onHtmlChange=function(a){a.find("img").on("load error",d.refreshUi.bind(d))}),this.fields[a][c]},insertField:function(a,b){var c,a,d,e=this,f=e.fields||(e.fields={});if(b=b||0,f.hasOwnProperty(a)){for(d=f[a].length;--d>=b;)(c=f[a][d])&&(c.index++,delete f[a][d],f[a][tmp.index]=c);c&&c._walk(function(a,c){e.insertField(c,b)})}},editField:function(b,c){function d(a){a&&(b.setValue(a),b.element.attr("src",e.getImagePreviewUrl(a)))}var e=this;switch(e.activeField=b,e.$.select(".controls .html-only").map(Element.hide),b.type){case"css":e.ace?(e.ace.getSession().setMode("ace/mode/css"),e.ace.setValue(b.getValue()),e.ace.clearSelection()):e.input.down("textarea").value=b.getValue(),Element.show(e.input);break;case"html":e.ace?(e.ace.getSession().setMode("ace/mode/mage"),e.ace.setValue(b.getValue()),e.ace.clearSelection()):e.input.down("textarea").value=b.getValue(),
48
- e.$.select(".controls .html-only").map(Element.show),Element.show(e.input);break;case"image":c&&c.altKey?(b.alt=a.prompt("Please enter a alt text",b.alt),b.element&&b.element.attr("alt",b.alt)):c&&c.metaKey?d(a.prompt("Please enter any source path you like",b.value)):e.browserMedia(d,!0)}this.refreshUi()},getCustomStyles:function(){if(this._customStyles)return this._customStyles;var a,b,c,d,e,f,g,h=this.getFrameWindow().Array();if(this.html){if(g=this.html.match(/<style(\s+type="text\/css")?\s*>([\s\S]*)<\/style>/gim))for(a=g.length;--a>-1;)if(d=g[a].match(/\/\*\*[^{]*@name[\s\S]+?\*\/\s*[a-z0-9]+\.[a-z0-9_-]+\s*{[^}]*}/gim))for(b=d.length;--b>-1;)e=d[b].match(/@name\s+([a-z0-9 _-]+)/i),f=d[b].match(/([a-z0-9]+)\.([a-z0-9]+)\s{/i),c=d[b].match(/{([^}]+)?}/i),e&&f&&h.push({name:e[1],element:f[1],attributes:{"class":f[2]},_ST:this.CKEDITOR.tools.normalizeCssText(c[1],!0)});this._customStyles=h}return h},applyChanges:function(){var a=this.activeField;return a&&("html"===a.type||"css"===a.type)&&a.setValue(this.ace?this.ace.getValue():this.input.down("textarea").value),
49
- this.activeField=null,Element.hide(this.input),this},discardChanges:function(){return this.activeElement=null,this.activeObject=null,Element.hide(this.input),this},editMode:function(){this.editModeFlag=!0,this.loadEditor()},getBackgroundElements:function(){if(!this._bgElements){var b=[];$A(this.getDocument().getElementsByTagName("*")).each(function(c){var d=a.getComputedStyle(c);"none"!=d.backgroundImage&&b.push({element:c,background:d.backgroundImage})}),this._bgElements=b}return this._bgElements},toggleImages:function(a){this.imageFlag=a=void 0!==a?!!a:!this.imageFlag,this.select("img").each(function(b){a?b.src=b._src:(b._src=b._src||b.src,b.src="")}),this.getBackgroundElements().each(function(b){Element.setStyle(b.element,{backgroundImage:a?b.background:"none"})})},browserMedia:function(a,b){this.mediaBrowserUrl&&MediabrowserUtility.browse(this.mediaBrowserUrl,function(c){if(c){var d=c.match(/\{\{([^\[\}])+\}\}/);a(b&&d?d[0]:c)}})},insertWidget:function(a){this.widgetToolsUrl&&widgetTools.openDialog(this.widgetToolsUrl,function(b){
50
- b&&a(b)})},disableLinks:function(a){var b=this;this.select("a").each(function(c){Element.observe(c,"click",function(d){Event.stop(d),a&&a.call(b,c)})})},loadTemplate:function(a){if(this.templateLoadUrl){var b=this;Element.show(b.loader),new Ajax.Request(b.templateLoadUrl,{parameters:{template:a},evalJSON:!0,onComplete:function(a){try{if(!a.responseJSON)throw"No valid JSON response: "+a.responseText;var c=a.responseJSON;if(c.error)throw c.message||"Unknown server error";c.html&&b.setHtml(c.html)}catch(d){alert(d)}}})}},quicksave:function(b,c){var d=this,e=d.quicksaveFields;if(b=b||d.quicksaveUrl,c=c||d.fieldName,b&&c){var f=["data["+c+"]="+encodeURIComponent(d.getValue())];FORM_KEY&&f.push("form_key="+FORM_KEY),e&&l(e,function(a,b){var c=$(a);c&&f.push("data["+b+"]="+encodeURIComponent(c.value))}),new Ajax.Request(b,{postBody:f.join("&"),evalJSON:!0,onComplete:function(b){try{if(!b.responseJSON)throw"No valid JSON response: "+b.responseText;var c=b.responseJSON;if(c.error)throw c.message||"Unknown server error";
51
-
52
- for(var e=a.previewWindows||[],f=e.length;--f>-1;)try{e[f]&&e[f].call(d,{id:d.htmlId,editor:d})}catch(g){}varienGlobalEvents&&varienGlobalEvents.fireEvent("quicksave",{id:d.htmlId,editor:d})}catch(g){alert(g)}}.bind(this)})}return this}}),b.ui.TemplateEditor=Class.create({initialize:function(a,b){var c=this;b=b||{},c.mediaUrl="/media/",c.skinUrl="/skin/",c.storeUrl="/skin/",c.$=a,c.jquerySrc="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.js",c.editorCss="/skin/adminhtml/default/default/mzax/editor.css",c.enablePreview=!0,c.enableAce=!0,c.layout=1,c._options=b,Object.extend(this,b),c.init()},init:function(){var c=this,d=c.$;d.innerHTML='<div class="mzax-content mzax-content-editor"><textarea class="text-input"></textarea></div><div class="mzax-content mzax-content-preview"></div><div class="mzax-seperator"></div><div class="mzax-disable-ui"></div>',d.addClassName("mzax-template-editor"),d.addClassName("mzax-editor"),c.$editor=d.down(".mzax-content-editor"),c.$preview=d.down(".mzax-content-preview"),
53
- c.$seperator=d.down(".mzax-seperator"),c.$disableUi=d.down(".mzax-disable-ui"),c.enableAce&&ace?(ace.require("ace/ext/mage_autocomplete"),c.ace=ace.edit(d.down(".text-input")),c.ace.owner=this,c.ace.setMageSnippets(c.snippets),c.ace.setTheme("ace/theme/mage"),c.ace.getSession().setMode("ace/mode/mage"),c.ace.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableMageLiveAutocompletion:!0}),c.ace.getSession().on("change",function(){c.updatePreview(1e3)})):d.down(".text-input").observe("keyup",function(){c.updatePreview(1e3)}),c.enablePreview&&(c.preview=new b.ui.PreviewFrame(c.$preview,Object.extend(c._options,{enableAce:c.enableAce,enableCKEditor:!1}))),this.switchLayout(this.layout);var c=this,e=this.$seperator,f=$(a.document);if(e){var g,h,i=function(){f.stopObserving("mouseup",i),f.stopObserving("mousemove",j),Element.hide(c.$disableUi)},j=function(a){a.stop(),c.setSeperatorPosition(1===c.layout?(a.pageY-g.top)/(h.height||1):(a.pageX-g.left)/(h.width||1))};e.observe("mousedown",function(){
54
- g=c.$.cumulativeOffset(),h=c.$.getDimensions(),f.observe("mouseup",i),f.observe("mousemove",j),Element.show(c.$disableUi)})}Element.hide(c.$disableUi),varienGlobalEvents.attachEventHandler("formValidateAjaxComplete",function(a){var b=a.responseText.evalJSON().html_template_errors;if(b&&c.ace){var d=ace.require("ace/range").Range,e=c.ace.session;c.removeErrorHighlights();for(var f=b.length;--f>-1;)c.errorMarkers.push(e.addMarker(new d(b[f].line-1,0,b[f].line-1,b[f].column-1),"errorHighlight","line"))}})},removeErrorHighlights:function(){if(this.ace&&this.errorMarkers)for(var a=this.errorMarkers.length;--a>-1;)this.ace.getSession().removeMarker(this.errorMarkers[a]);return this.errorMarkers=[],this},setSeperatorPosition:function(a){var b=this;a=e(a,0,1),b._sepPos=a,b.$editor.writeAttribute("style",""),b.$preview.writeAttribute("style",""),b.$seperator.writeAttribute("style","");var c=1===b.layout?["bottom","top"]:["right","left"],d={},f={};d[c[0]]=100-100*a+"%",f[c[1]]=100*a+"%",b.$editor.setStyle(d),
55
- b.$preview.setStyle(f),b.$seperator.setStyle(f),b.refreshUi()},switchLayout:function(a){var b=this.$,c="mzax-layout-";switch(this.layout=a||this.layout%2+1,b.removeClassName(c+"horz"),b.removeClassName(c+"vert"),this.layout){case 1:b.addClassName(c+"vert");break;case 2:b.addClassName(c+"horz")}return this.setSeperatorPosition(this._sepPos||.5),this},setValue:function(a){var b=this;return b.ace?(b.ace.setValue(a),b.ace.clearSelection()):b.$editor.down("textarea").value=a,b.updatePreview(!1),b},getValue:function(){return this.ace?this.ace.getValue():this.$editor.down("textarea").value},refreshUi:function(){this.ace&&this.ace.resize(),this.preview&&this.preview.refreshUi()},updatePreview:function(a){function b(){c.preview.setHtml(c.ace?c.ace.getValue():c.$editor.down("textarea").value,!0)}var c=this;return c.preview?(c._updateTimer&&clearTimeout(c._updateTimer),void(a===!1?b():c._updateTimer=setTimeout(b,a||5))):!1},execCommand:function(a){return this.ace&&this.ace.execCommand(a,{source:"mage"
56
- }),this},insert:function(a){this.ace&&this.ace.insert(a)},browserMedia:function(){var a=this;this.mediaBrowserUrl&&MediabrowserUtility.browse(this.mediaBrowserUrl,function(b){b&&a.insert(b)})},insertWidget:function(){var a=this;this.widgetToolsUrl&&widgetTools.openDialog(this.widgetToolsUrl,function(b){b&&a.insert(b)})}}),b.ui.TextEditor=Class.create({initialize:function(a,b){var c=this;c.$=a,c.enableAce=!0,c.readOnly=!1,c.autosize=!1,c.useWrapMode=!1,Object.extend(this,b||{}),c.init()},init:function(){var b,c=this,d=c.$,e=j(d.innerHTML);d.innerHTML='<div class="mzax-content mzax-content-editor"><textarea class="text-input"></textarea></div>',d.addClassName("mzax-text-editor"),d.addClassName("mzax-editor"),c.$editor=d.down(".mzax-content-editor"),c.enableAce&&ace&&(b=c.ace=ace.edit(d.down(".text-input")),b.owner=this,b.setTheme(c.theme||"ace/theme/mage"),b.getSession().setMode(c.mode||"ace/mode/mage"),b.getSession().setUseWrapMode(c.useWrapMode),b.setOptions({enableBasicAutocompletion:!0,
57
- enableSnippets:!0,enableMageLiveAutocompletion:!0}),b.setReadOnly(c.readOnly)),c.refreshUi(),Event.observe(a,"resize",function(){c.refreshUi()}),c.setValue(e)},doAutosize:function(){var a=this.ace;if(a){var b=a.getSession().getScreenLength()*a.renderer.lineHeight+a.renderer.scrollBar.getWidth()+25;this.$.setStyle({height:b.toString()+"px"})}else{var c=this.$editor.down("textarea");c.setStyle({height:"1px"}),c.setStyle({height:25+c.scrollHeight+"px"})}},execCommand:function(a){return this.ace&&this.ace.execCommand(a,{source:"mage"}),this},insert:function(a){this.ace&&this.ace.insert(a)},setValue:function(a){var b=this;return b.ace?(b.ace.setValue(a),b.ace.clearSelection()):b.$editor.down("textarea").value=a,b.refreshUi(),b},getValue:function(){return this.ace?this.ace.getValue():this.$editor.down("textarea").value},refreshUi:function(){this.autosize?(this.$.addClassName("mzax-autosize"),this.doAutosize()):this.$.removeClassName("mzax-autosize"),this.ace&&this.ace.resize()}})}(window,window.mzax),
58
- function(a,b,c){function d(a){var b;return void 0!=a?b=Event.findElement(a,"DIV"):$$("div.selected").each(function(a){b=$(a.id)}),void 0==$(b.id)?!1:b.id}if(b&&c){var e=b.prototype.insert,f=c.closeDialog;b.prototype.insert=function(b){if(!a[this.targetElementId]||!c._callback)return e.call(this,b);var f,g=(a[this.targetElementId],d(b));return g?(f={filename:g,node:this.currentNode.id,store:this.storeId,as_is:1},void new Ajax.Request(this.onInsertUrl,{parameters:f,onSuccess:function(a){try{if(this.onAjaxSuccess(a),this.getMediaBrowserOpener()&&self.blur(),c._callback){var b=a.responseText;b=b.replace(/"[^"]*\{\{(.*?)\}\}[^"]*"/g,function(a){return'"'+a.substring(1,a.length-1).replace(/"/g,"'")+'"'}),c._callback.call(null,b),c._callback=null}Windows.close("browser_window")}catch(d){alert(d.message)}}.bind(this)})):!1},c.browse=function(a,b,c,d,e){this._callback=b,this.openDialog(a,c,d,e)},c.closeDialog=function(a){return this._callback&&(this._callback.call(a,null),this._callback=null),f.call(this,a);
59
-
60
- }}}(window,Mediabrowser,MediabrowserUtility),function(a,b,c){if(b&&b.Widget&&c){var d=b.Widget,e=c.openDialog,f=c.closeDialog,g=d.prototype.insertWidget;d.prototype.insertWidget=function(){if(!a[this.widgetTargetId]&&!c._callback)return g.call(this);var b=(a[this.widgetTargetId],new varienForm(this.formEl));if(b.validator&&b.validator.validate()||!b.validator){var d=[],e=0;Form.getElements($(this.formEl)).each(function(a){a.hasClassName("skip-submit")||(d[e]=a,e++)});var f=Form.serializeElements(d);f+="&as_is=1",new Ajax.Request($(this.formEl).action,{parameters:f,onComplete:function(a){try{c.onAjaxSuccess(a),c._callback&&(c._callback.call(c,a.responseText),c._callback=null),Windows.close("widget_window")}catch(b){alert(b.message)}}.bind(this)})}},c.openDialog=function(a,b){return c._callback=b,e.call(c,a)},c.closeDialog=function(a){return c._callback&&(c._callback.call(a,null),c._callback=null),f.call(this,a)}}}(window,WysiwygWidget,widgetTools);
 
 
 
 
 
 
 
8
  * It is also available through the world-wide-web at this URL:
9
  * http://opensource.org/licenses/osl-3.0.php
10
  *
11
+ * @version 0.2.7
12
  * @category Mzax
13
  * @package Mzax_Emarketing
14
  * @author Jacob Siefer (jacob@mzax.de)
30
  b.addClassName("mzax-editor"),a.iframe=b.down(".mzax-editor-frame"),a.input=b.down(".mzax-editor-input"),a.loader=b.down(".mzax-loader"),a.loader.down(".label").innerHTML="Loading Editor",Element.hide(a.input),Element.hide(a.loader),a.enableAce&&ace&&(a.ace=ace.edit(b.down(".text-input")),a.ace.setMageSnippets(a.snippets),a.ace.owner=a,a.ace.setTheme("ace/theme/mage"),a.ace.getSession().setMode("ace/mode/mage"),a.ace.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableMageLiveAutocompletion:!0}),a.ace.browserMedia=function(){a.browserMedia(function(b){a.ace.insert(b)},!1)},a.ace.insertWidget=function(){a.insertWidget(function(b){a.ace.insert(b)},!1)});var c=b.down(".controls");a._createButton({label:"Apply",cls:"save btn-right",target:c,click:a.applyChanges.bind(a)}),a._createButton({label:"Discard",cls:"back btn-right",target:c,click:a.discardChanges.bind(a)}),a.ace&&(a._createButton({label:"Insert Variable",cls:"mzax-code html-only",target:c,click:function(){a.ace.execCommand("mage",{
31
  source:"mage"})}}),a._createButton({label:"Insert Image",cls:"mzax-image html-only",target:c,click:function(){a.browserMedia(function(b){a.ace.insert(b)},!1)}}),a._createButton({label:"Insert Widget",cls:"mzax-widget html-only",target:c,click:function(){a.insertWidget(function(b){a.ace.insert(b)},!1)}}))},_createButton:function(a){var b=new Element("button",{type:"button","class":"scalable "+(a.cls||"")}).update("<span>"+a.label+"</span>");return a.click&&b.observe("click",a.click),a.target&&a.target.insert(b),b},setHtml:function(b,d){if(this._lastScrollTop=this.scrollTop(),this.documentLoaded=!1,this.editorReady=!1,this.html=b,this.preview=d||!1,this.jQuery=null,this.CKEDITOR=null,this._customStyles=null,this.iframe)try{this.iframe.src=""}catch(e){}return this.cancelEditorLoad&&this.cancelEditorLoad(),this._docTimer&&clearInterval(this._docTimer),Element.show(this.loader),this._docTimer=c(a.document,function(){var a=this.getDocument();a.open(),a.write(b),a.close(),this.initDocument()}.bind(this)),
32
  this},scrollTop:function(a){return this.html&&this.documentLoaded?("undefined"!=typeof a&&this.getFrameWindow().scrollTo(0,a),this.getFrameWindow().scrollY):0},setValue:function(a){if(a)try{this.setData(JSON.parse(a))}catch(b){return!1}else this.setData(null);return!0},setData:function(a){if(!a)return this.fields=null,this.customCss=null,this.html&&this.setHtml(this.html),this;this._data=a,this.fields=null;var c,d;if(a&&a.fields)for(c in a.fields)if(a.fields.hasOwnProperty(c))for(d=0;d<a.fields[c].length;d++)this.getField(c,d).load(a.fields[c][d]||{});return a.customCss&&(this.customCss=new b.ui.EditorField,this.customCss.load(a.customCss),this.customCss.type="css"),this.html&&this.setHtml(this.html),this},getData:function(){this.refreshUi();var a,b,c,d,e={version:this.version},f={},g=this.fields;if(g)for(c in g)if(g.hasOwnProperty(c))for(d=f[c]=[],b=0;b<g[c].length;b++)(a=g[c][b])&&d.push(a.sleep());return this.customCss&&(e.customCss=this.customCss.sleep()),e.fields=f,e},getValue:function(){
33
+ return JSON.stringify(this.getData())},renderPlaceholders:function(a){var c=this;b.ui.Placeholder.replaceHtml(c.getDocument().body,function(a,b){switch(a.directive){case"media":case"skin":return c.getImagePreviewUrl(a.expr)}if(c.snippets){var d=m(c.snippets,function(b){return h(b.snippet)===h(a.expr)?b:void 0});if(d){if(b&&d.html)return d.html;if(d.text)return d.text}}return b?a.toHtml():a.toText()},a||!1)},initDocument:function(){var a=this;a.documentLoaded=!0,a.preview&&(a.renderPlaceholders(),a.editorCss&&a.loadStyle(a.editorCss)),a.scrollTop(a._lastScrollTop||0),a.editModeFlag?a.loadEditor():Element.hide(a.loader),a._disableLinks&&a.disableLinks(a._disableLinks)},getDocument:function(){var a=this.iframe;return this.content=a.contentWindow?a.contentWindow.document:a.contentDocument&&a.contentDocument.document?a.contentDocument.document:a.contentDocument,this.content},getFrameWindow:function(){var a=this.getDocument();return a.parentWindow||a.defaultView},select:function(a){var b=this.getDocument();
34
+
35
+ return b?Element.select(b,a):[]},get:function(a){var b=this.select(a);return b.length?b[0]:null},loadScript:function(a){if(!this.documentLoaded)throw new Error("Document is not yet loaded and ready");var b=this.getDocument();c(b,function(){var b=new Element("script",{type:"text/javascript",src:a}),c=this.select("head");1===c.length?c[0].appendChild(b):alert("todo, no head tag found")},this)},loadStyle:function(a){if(!this.documentLoaded)throw new Error("Document is not yet loaded and ready");var b=this.getDocument();c(b,function(){var b=new Element("link",{href:a,rel:"stylesheet",type:"text/css",media:"all"}),c=this.select("head");1===c.length?c[0].appendChild(b):alert("todo, no head tag found")},this)},loadEditor:function(){function a(){(!b.jquerySrc||b.jQuery)&&(!b.enableCKEditor||b.CKEDITOR)&&(!b.editorCss||b.cssLoaded)&&(b.CKEDITOR&&b.initCKEditor(b.CKEDITOR),b.cancelEditorLoad=null,b.initEditor(),b.editorReady=!0)}if(this.editorReady)return this;if(!this.documentLoaded)return this;
36
+ var b=this,c=[],d=b.getFrameWindow();if(Element.show(b.loader),b.cancelEditorLoad=function(){for(var a=c.length;--a>-1;)clearInterval(c[a]);b.cancelEditorLoad=null},b.enableCKEditor&&b.ckeditorSrc){b.CKEDITOR=null,b.loadScript(b.ckeditorSrc);var e=setInterval(function(){d.CKEDITOR&&"loaded"===d.CKEDITOR.status&&(b.CKEDITOR=d.CKEDITOR,clearInterval(e),a())},10);c.push(e)}if(b.jquerySrc){b.jQuery=null,b.loadScript(b.jquerySrc);var f=setInterval(function(){d.jQuery&&(b.initJQuery(d.jQuery),clearInterval(f),a())},10);c.push(f)}if(b.editorCss){b.cssLoaded=!1,b.loadStyle(b.editorCss);var g=setInterval(function(){b.cssLoaded=!0,clearInterval(g),a()},1e3);c.push(g)}return a(),this},initEditor:function(){function a(){var a,b=l(this),c=b.mage("id");c&&(a=i.getField(c,b.mage("index")).setElement(b))}function c(){var a,b,c=l(this),e=c.mage("id");if(e&&d(c.mage("editable")))return a=i.getField(e,c.mage("index")).setElement(c),c.is("img")?(a.type="image",c.on({click:function(b){i.editField(a,b)},mouseenter:function(){
37
+ c.addClass("mzax-editor-highlight-image")},mouseleave:function(){c.removeClass("mzax-editor-highlight-image")}}),"string"!=typeof a.value&&(a.value=c.attr("src")),"string"!=typeof a.alt&&(a.alt=c.attr("alt")||""),c.attr("src",i.getImagePreviewUrl(a.value)),void c.attr("alt",a.alt)):("string"==typeof a.value?c.html(a.value):a.setValue(c.html()),j&&(c.is("td")?b=l('<div class="mzax-inline-ckeditor" contenteditable="true" />').html(a.value).appendTo(c.empty()):c.is("div")&&(b=c.addClass("mzax-inline-ckeditor").addAttr("contenteditable",!0)),b)?(a.cke=j.inline(b[0],{autoParagraph:!1,allowedContent:!0,readOnly:!1,extraPlugins:"mage_code,mzax_editor,mzax_image",format_tags:"p;h1;h2;h3;h4;h5;h6;pre;address;div",stylesSet:i.getCustomStyles(),sharedSpaces:{top:"mzax-ckeditor-top"}}),a.cke.field=a,void a.cke.on("instanceReady",function(a){a.editor.setReadOnly(!1)})):void c.on({click:function(b){i.editField(a,b)},mouseenter:function(){c.addClass("mzax-editor-highlight")},mouseleave:function(){c.removeClass("mzax-editor-highlight");
38
+
39
+ }}))}function f(){var a,b,c=m,f=l(this),g=d(f.mage("repeatable")),j=d(f.mage("removable")),k=f.mage("id");if(k&&(j||g)&&!f.is(".mzax-removable-worker")){a=l('<div class="mzax-remove-handle"><span>'+h(k)+"</span></div>").appendTo(m).hide(),g&&a.addClass("mzax-repeatable"),b=i.getField(k,f.mage("index")).setElement(f),b.removable=!0,b.removeHandle=a,b.parent&&(c=b.parent.element,a.addClass("mzax-field-"+b.parent.uid)),f.addClass("mzax-removable-worker").on({mouseenter:function(){clearTimeout(o),(j||b.index)&&i.refreshUi()},mouseleave:function(b){a.hasElement(b.relatedTarget)||a.hide()},mousemove:function(c){g?b.index&&a.show():a.css({top:c.pageY-a.height()/2,left:f.offset().left-a.width()/2,opacity:1.2-(c.pageX-l(this).offset().left)/140}).show()}});var o;a.on({mousemove:function(c){if(!b.remove&&!g){var d=f.offset().top,h=f.height(),i=a.height()/2;a.css({top:e(c.pageY-i,d-i,d+h-i)})}},mouseenter:function(){clearTimeout(o),b.remove||n.moveOnTop(f).show()},mouseleave:function(){n.hide(),b.remove||a.hide();
40
+
41
+ },click:function(){if(j){clearTimeout(o);var c=b.remove=!b.remove;f.toggleClass("mzax-removed",c)[c?"fadeOut":"fadeIn"]("fast"),a.toggleClass("mzax-removed",c).fixedPosition(c&&!b.parent),n.hide(),c||(a.hide(),f.highlight())}else g&&b.index&&confirm("Are you sure?")&&(b.element.fadeOut(300,function(){b.flagAsDeleted(),i.reindexFields()}),n.fadeOut(300),a.hide());i.refreshUi(1)}}),b.remove&&(f.addClass("mzax-removed"),a.addClass("mzax-removed").fixedPosition(!b.parent),setTimeout(function(){f.hide()},500)),b.refreshUi(function(d){var e,h,i,k;if(!j&&!b.index)return void a.hide();if(f.is(".mzax-removed"))f.parents(".mzax-removed").length?a.hide():(c===m?(h=d.topOffset+10,k=5,i=a.prevAll(".mzax-remove-handle.mzax-removed:visible")):(e=c.offset(),h=e.top+25,k=Math.max(e.left+c.width()),i=a.prevAll(".mzax-remove-handle.mzax-field-"+b.parent.uid)),a.show().stop(!0,!1).animate({top:h+i.length*(a.height()+5),left:k,opacity:1},{duration:300,complete:function(){a.show()}}));else{var e=f.offset();g?(e.left+=f.width()-a.width()+3,
42
+ e.top+=-3):(e.left-=a.width()/2,delete e.top),a.css(e)}})}}function g(){var a,b,e,h=l(this),j=h.mage("id");if(j&&d(h.mage("repeatable"))){if(h.parents("[mage\\:repeatable]").length)return void h.removeAttr("mage:repeatable");a=l('<div class="mzax-repeat-handle"></div>').appendTo(m).hide(),e=l('<div class="mzax-swap-handle"></div>').appendTo(m).hide(),b=i.getField(j,h.mage("index")).setElement(h),b.repeatable=!0,b.repeatHandle=a,b.swapHandler=e;var k;h.on({mousemove:function(b){var c=b.pageY-l(this).offset().top,d=b.pageX-l(this).offset().left,f=e.is(":visible"),g=0,i=Math.min(h.height()/2-5,100);if(i>c?!f&&(k=h.prev('[mage\\:id="'+j+'"]:visible')).length&&(f=!0,swapDown=!1):c>h.height()-i?(!f&&(k=h.next('[mage\\:id="'+j+'"]:visible')).length&&(f=!0,swapDown=!0),g=h.height()):f=!1,f){var m=h.offset();m.top+=g-e.height()/2,m.left+=h.width()-20-e.width(),m.opacity=Math.min(1.5-(h.width()-d)/100,1.2-Math.abs(g-c)/50),e.css(m)}l(".mzax-swap-handle").not(e).hide(),e.toggle(f),a.css({opacity:1.1-(h.height()-c)/100
43
+ })},mouseenter:function(){l(".mzax-repeat-handle").hide(),a.show(),i.refreshUi()},mouseleave:function(b){e.hasElement(b.relatedTarget)||setTimeout(e.hide.bind(e),10),a.hasElement(b.relatedTarget)||a.hide()}}),e.on({mouseenter:function(){var a=Math.min(h.height(),k.height(),60)+"px";p.moveOnTop(k).toggleClass("mzax-a",swapDown).toggleClass("mzax-b",!swapDown).css("background-size",a).flicker().show(),q.moveOnTop(h).toggleClass("mzax-b",swapDown).toggleClass("mzax-a",!swapDown).css("background-size",a).flicker().show()},mouseleave:function(){p.moveOnTop(k).flicker(!1).hide(),q.moveOnTop(h).flicker(!1).hide()},click:function(){k.length&&(k[swapDown?"insertBefore":"insertAfter"](h).data("field").swap(b),swapDown=!swapDown,i.refreshUi()),e.hide()}}),a.on({mouseenter:function(){o.moveOnTop(h).show()},mouseleave:function(){o.hide()},click:function(){var a=b.index+1;i.insertField(b.id,a);var d=b.clone().find("[mage\\:id]").andSelf().attr("mage:index",a).end().end().insertAfter(b.element).each(f).each(g).find("[mage\\:editable]").each(c).end().find("[mage\\:removable]").each(f).end();
44
+
45
+ d.highlight()}});var n=i.fields[j];if(n.length>1)for(var r=1;r<n.length;r++)n[r].element||b.clone().find("[mage\\:id]").andSelf().attr("mage:index",r).end().end().insertAfter(b.element).each(f).each(g).find("[mage\\:editable]").each(c).end().find("[mage\\:removable]").each(f).end();b.refreshUi(function(){var b=h.offset();b.top+=h.height()-a.height()/2,b.left+=h.width()/2-a.width()/2,a.offset(b)})}}var i=this,j=i.CKEDITOR,k=i.getFrameWindow(),l=i.jQuery,m=l("body");if(l(k).on("resize scroll",function(){i.refreshUi(10)}),l("img").on("load error",function(){i.refreshUi(10)}),l(k).bind("keydown",function(a){if(8===a.keyCode){if(!l(a.target).is(".cke_editable,:input"))return void a.preventDefault();if(i.CKEDITOR&&i.CKEDITOR.currentInstance)try{0===i.CKEDITOR.currentInstance.getSelection().getRanges().length&&a.preventDefault()}catch(b){a.preventDefault()}}}),m.length){i.renderPlaceholders(!0);var n=l('<div class="mzax-remove-marker mzax-marker" />').appendTo(m),o=l('<div class="mzax-repeat-marker mzax-marker" />').appendTo(m),p=l('<div class="mzax-swap-marker mzax-marker mzax-a" />').appendTo(m),q=l('<div class="mzax-swap-marker mzax-marker mzax-b" />').appendTo(m);
46
+
47
+ customCss=l('<div class="mzax-custom-css" />').html("&laquo;CSS&raquo;").appendTo(m),l.fn.highlight=function(){var a=this;return a.scrollIntoView(function(){o.moveOnTop(a).show().fadeOut(1e3)},300)},i.allowCustomCss!==!1?(i.customCss=i.customCss||new b.ui.EditorField,i.customCss.type="css",i.customCss.setElement(l("<style />").appendTo("head").html(i.customCss.getValue())),customCss.click(function(){i.editField(i.customCss)})):customCss.remove(),l("[mage\\:id]").each(a),l("[mage\\:editable]").each(c),l("[mage\\:repeatable]").each(g).each(f),l("[mage\\:removable]").each(f)}this.disableLinks(function(a){alert("Link ("+a.href+")")}),this.refreshUi(),setTimeout(function(){Element.hide(i.loader)},500)},initCKEditor:function(a){var c=this,d=c.jQuery;c.CKEDITOR=a,a.owner=c,a.mzax=b,a.mageSnippets=c.snippets||{},a.disableAutoInline=!0,a.plugins.addExternal("mage_code,mzax_editor,mzax_image","/js/mzax/","ckeditor.plugin.mage.js"),a.on("instanceReady",c.refreshUi.bind(c)),a.on("currentInstance",c.refreshUi.bind(c)),
48
+ a.selectImageSource=function(a){c.browserMedia(a,!0)},a.getImagePreviewUrl=c.getImagePreviewUrl.bind(c),d("body").addClass("mzax-ckeditor-enabled"),d('<div id="mzax-ckeditor-top" />').prependTo("body")},initJQuery:function(a){var b=this,c=a(b.getFrameWindow());b.jQuery=a,k(a),a.fn.mage=function(a){return this.attr("mage:"+a)},a.fn.fixedPosition=function(b){var c=this.offset(),d=b?"fixed":"absolute",b=b?-1:1;return this.css("position")===d?this:this.css({position:d,top:c.top+a("body").scrollTop()*b,left:c.left+a("body").scrollLeft()*b})},a.fn.hasElement=function(b){return this.length>0&&(-1!==this.index(b)||a.contains(this[0],b))},a.fn.moveOnTop=function(a){var b=a.offset();return this.css({left:b.left,top:b.top,height:a.height(),width:a.width()})},a.fn.scrollIntoView=function(b,d){var e=(a("html, body"),parseInt(a("body").css("margin-top"))),f=c.scrollTop(),g=this.offset();return f<g.top&&f+c.height()>g.top+this.height()?(b.call(this),this):void a("html, body").animate({scrollTop:g.top-20-e
49
+ },{duration:d||150,complete:b})},a.fn.flicker=function(a,b){var c=this;if(a!==!1){var d=function(){c.animate({opacity:e(Math.random(),.2,1)},{duration:b||500,queue:"flicker",complete:d}).dequeue("flicker")};d()}else c.stop("flicker",!0,!1).css("opacity","");return this}},getImagePreviewUrl:function(a){var c=new b.ui.Placeholder(a);if(c.valid&&c.params.url){var d=this[c.directive+"Url"]||"/";return d+c.params.url}return a},reindexFields:function(a){var c,d,e,f,g=this,h=g.fields;if(h)for(d in h)if(h.hasOwnProperty(d)){for(f=[],e=h[d].length;--e>-1;)(c=h[d][e])&&!c.deleted&&f.push(c);for(f=f.sort(b.ui.EditorField.indexSort),e=f.length;--e>-1;)f[e].index=e,a&&a.call(f[e],f[e],e);h[d]=f}},refreshUi:function(a){function b(){if(c.ace&&c.ace.resize(),d){var a={window:e,editor:c,topOffset:d("#mzax-ckeditor-top").height(),height:e.height()};a.bottom=e.scrollTop()+a.height,a.top=e.scrollTop()+a.topOffset,c.CKEDITOR&&d("body").css("margin-top",a.topOffset),c.reindexFields(function(b){b.refreshUi(a);
50
+
51
+ })}}var c=this,d=c.jQuery,e=d?d(c.getFrameWindow()):null;this._refreshTimer&&clearTimeout(this._refreshTimer),a===!1?b():this._refreshTimer=setTimeout(b,a||5)},getField:function(a,c){var d=this,e=d.fields||(d.fields={});return c=c||0,e[a]||(e[a]=[]),e[a][c]||(e[a][c]=new b.ui.EditorField(a,1*c),e[a][c].onHtmlChange=function(a){a.find("img").on("load error",d.refreshUi.bind(d))}),this.fields[a][c]},insertField:function(a,b){var c,a,d,e=this,f=e.fields||(e.fields={});if(b=b||0,f.hasOwnProperty(a)){for(d=f[a].length;--d>=b;)(c=f[a][d])&&(c.index++,delete f[a][d],f[a][tmp.index]=c);c&&c._walk(function(a,c){e.insertField(c,b)})}},editField:function(b,c){function d(a){a&&(b.setValue(a),b.element.attr("src",e.getImagePreviewUrl(a)))}var e=this;switch(e.activeField=b,e.$.select(".controls .html-only").map(Element.hide),b.type){case"css":e.ace?(e.ace.getSession().setMode("ace/mode/css"),e.ace.setValue(b.getValue()),e.ace.clearSelection()):e.input.down("textarea").value=b.getValue(),Element.show(e.input);
52
+
53
+ break;case"html":e.ace?(e.ace.getSession().setMode("ace/mode/mage"),e.ace.setValue(b.getValue()),e.ace.clearSelection()):e.input.down("textarea").value=b.getValue(),e.$.select(".controls .html-only").map(Element.show),Element.show(e.input);break;case"image":c&&c.altKey?(b.alt=a.prompt("Please enter a alt text",b.alt),b.element&&b.element.attr("alt",b.alt)):c&&c.metaKey?d(a.prompt("Please enter any source path you like",b.value)):e.browserMedia(d,!0)}this.refreshUi()},getCustomStyles:function(){if(this._customStyles)return this._customStyles;var a,b,c,d,e,f,g,h=this.getFrameWindow().Array();if(this.html){if(g=this.html.match(/<style(\s+type="text\/css")?\s*>([\s\S]*)<\/style>/gim))for(a=g.length;--a>-1;)if(d=g[a].match(/\/\*\*[^{]*@name[\s\S]+?\*\/\s*[a-z0-9]+\.[a-z0-9_-]+\s*{[^}]*}/gim))for(b=d.length;--b>-1;)e=d[b].match(/@name\s+([a-z0-9 _-]+)/i),f=d[b].match(/([a-z0-9]+)\.([a-z0-9]+)\s{/i),c=d[b].match(/{([^}]+)?}/i),e&&f&&h.push({name:e[1],element:f[1],attributes:{"class":f[2]}});this._customStyles=h;
54
+
55
+ }return h},applyChanges:function(){var a=this.activeField;return a&&("html"===a.type||"css"===a.type)&&a.setValue(this.ace?this.ace.getValue():this.input.down("textarea").value),this.activeField=null,Element.hide(this.input),this},discardChanges:function(){return this.activeElement=null,this.activeObject=null,Element.hide(this.input),this},editMode:function(){this.editModeFlag=!0,this.loadEditor()},getBackgroundElements:function(){if(!this._bgElements){var b=[];$A(this.getDocument().getElementsByTagName("*")).each(function(c){var d=a.getComputedStyle(c);"none"!=d.backgroundImage&&b.push({element:c,background:d.backgroundImage})}),this._bgElements=b}return this._bgElements},toggleImages:function(a){this.imageFlag=a=void 0!==a?!!a:!this.imageFlag,this.select("img").each(function(b){a?b.src=b._src:(b._src=b._src||b.src,b.src="")}),this.getBackgroundElements().each(function(b){Element.setStyle(b.element,{backgroundImage:a?b.background:"none"})})},browserMedia:function(a,b){this.mediaBrowserUrl&&MediabrowserUtility.browse(this.mediaBrowserUrl,function(c){
56
+ if(c){var d=c.match(/\{\{([^\[\}])+\}\}/);a(b&&d?d[0]:c)}})},insertWidget:function(a){this.widgetToolsUrl&&widgetTools.openDialog(this.widgetToolsUrl,function(b){b&&a(b)})},disableLinks:function(a){var b=this;b._disableLinks=a,b.select("a").each(function(c){Element.observe(c,"click",function(d){Event.stop(d),a&&a.call(b,c)})})},loadTemplate:function(a){if(this.templateLoadUrl){var b=this;Element.show(b.loader),new Ajax.Request(b.templateLoadUrl,{parameters:{template:a},evalJSON:!0,onComplete:function(a){try{if(!a.responseJSON)throw"No valid JSON response: "+a.responseText;var c=a.responseJSON;if(c.error)throw c.message||"Unknown server error";c.html&&b.setHtml(c.html)}catch(d){alert(d)}}})}},quicksave:function(b,c){var d=this,e=d.quicksaveFields;if(b=b||d.quicksaveUrl,c=c||d.fieldName,b&&c){var f=["data["+c+"]="+encodeURIComponent(d.getValue())];FORM_KEY&&f.push("form_key="+FORM_KEY),e&&l(e,function(a,b){var c=$(a);c&&f.push("data["+b+"]="+encodeURIComponent(c.value))}),new Ajax.Request(b,{
57
+ postBody:f.join("&"),evalJSON:!0,onComplete:function(b){try{if(!b.responseJSON)throw"No valid JSON response: "+b.responseText;var c=b.responseJSON;if(c.error)throw c.message||"Unknown server error";for(var e=a.previewWindows||[],f=e.length;--f>-1;)try{e[f]&&e[f].call(d,{id:d.htmlId,editor:d})}catch(g){}varienGlobalEvents&&varienGlobalEvents.fireEvent("quicksave",{id:d.htmlId,editor:d})}catch(g){alert(g)}}.bind(this)})}return this}}),b.ui.TemplateEditor=Class.create({initialize:function(a,b){var c=this;b=b||{},c.mediaUrl="/media/",c.skinUrl="/skin/",c.storeUrl="/skin/",c.$=a,c.jquerySrc="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.js",c.editorCss="/skin/adminhtml/default/default/mzax/editor.css",c.enablePreview=!0,c.enableAce=!0,c.layout=1,c._options=b,Object.extend(this,b),c.init()},init:function(){var c=this,d=c.$;d.innerHTML='<div class="mzax-content mzax-content-editor"><textarea class="text-input"></textarea></div><div class="mzax-content mzax-content-preview"></div><div class="mzax-seperator"></div><div class="mzax-disable-ui"></div>',
58
+ d.addClassName("mzax-template-editor"),d.addClassName("mzax-editor"),c.$editor=d.down(".mzax-content-editor"),c.$preview=d.down(".mzax-content-preview"),c.$seperator=d.down(".mzax-seperator"),c.$disableUi=d.down(".mzax-disable-ui"),c.enableAce&&ace?(ace.require("ace/ext/mage_autocomplete"),c.ace=ace.edit(d.down(".text-input")),c.ace.owner=this,c.ace.setMageSnippets(c.snippets),c.ace.setTheme("ace/theme/mage"),c.ace.getSession().setMode("ace/mode/mage"),c.ace.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableMageLiveAutocompletion:!0}),c.ace.getSession().on("change",function(){c.updatePreview(1e3)})):d.down(".text-input").observe("keyup",function(){c.updatePreview(1e3)}),c.enablePreview&&(c.preview=new b.ui.PreviewFrame(c.$preview,Object.extend(c._options,{enableAce:c.enableAce,enableCKEditor:!1}))),this.switchLayout(this.layout);var c=this,e=this.$seperator,f=$(a.document);if(e){var g,h,i=function(){f.stopObserving("mouseup",i),f.stopObserving("mousemove",j),Element.hide(c.$disableUi);
59
+
60
+ },j=function(a){a.stop(),c.setSeperatorPosition(1===c.layout?(a.pageY-g.top)/(h.height||1):(a.pageX-g.left)/(h.width||1))};e.observe("mousedown",function(){g=c.$.cumulativeOffset(),h=c.$.getDimensions(),f.observe("mouseup",i),f.observe("mousemove",j),Element.show(c.$disableUi)})}Element.hide(c.$disableUi),varienGlobalEvents.attachEventHandler("formValidateAjaxComplete",function(a){var b=a.responseText.evalJSON().html_template_errors;if(b&&c.ace){var d=ace.require("ace/range").Range,e=c.ace.session;c.removeErrorHighlights();for(var f=b.length;--f>-1;)c.errorMarkers.push(e.addMarker(new d(b[f].line-1,0,b[f].line-1,b[f].column-1),"errorHighlight","line"))}})},removeErrorHighlights:function(){if(this.ace&&this.errorMarkers)for(var a=this.errorMarkers.length;--a>-1;)this.ace.getSession().removeMarker(this.errorMarkers[a]);return this.errorMarkers=[],this},setSeperatorPosition:function(a){var b=this;a=e(a,0,1),b._sepPos=a,b.$editor.writeAttribute("style",""),b.$preview.writeAttribute("style",""),
61
+ b.$seperator.writeAttribute("style","");var c=1===b.layout?["bottom","top"]:["right","left"],d={},f={};d[c[0]]=100-100*a+"%",f[c[1]]=100*a+"%",b.$editor.setStyle(d),b.$preview.setStyle(f),b.$seperator.setStyle(f),b.refreshUi()},switchLayout:function(a){var b=this.$,c="mzax-layout-";switch(this.layout=a||this.layout%2+1,b.removeClassName(c+"horz"),b.removeClassName(c+"vert"),this.layout){case 1:b.addClassName(c+"vert");break;case 2:b.addClassName(c+"horz")}return this.setSeperatorPosition(this._sepPos||.5),this},setValue:function(a){var b=this;return b.ace?(b.ace.setValue(a),b.ace.clearSelection()):b.$editor.down("textarea").value=a,b.updatePreview(!1),b},getValue:function(){return this.ace?this.ace.getValue():this.$editor.down("textarea").value},refreshUi:function(){this.ace&&this.ace.resize(),this.preview&&this.preview.refreshUi()},updatePreview:function(a){function b(){c.preview.setHtml(c.ace?c.ace.getValue():c.$editor.down("textarea").value,!0)}var c=this;return c.preview?(c._updateTimer&&clearTimeout(c._updateTimer),
62
+ void(a===!1?b():c._updateTimer=setTimeout(b,a||5))):!1},execCommand:function(a){return this.ace&&this.ace.execCommand(a,{source:"mage"}),this},insert:function(a){this.ace&&this.ace.insert(a)},browserMedia:function(){var a=this;this.mediaBrowserUrl&&MediabrowserUtility.browse(this.mediaBrowserUrl,function(b){b&&a.insert(b)})},insertWidget:function(){var a=this;this.widgetToolsUrl&&widgetTools.openDialog(this.widgetToolsUrl,function(b){b&&a.insert(b)})}}),b.ui.TextEditor=Class.create({initialize:function(a,b){var c=this;c.$=a,c.enableAce=!0,c.readOnly=!1,c.autosize=!1,c.useWrapMode=!1,Object.extend(this,b||{}),c.init()},init:function(){var b,c=this,d=c.$,e=j(d.innerHTML);d.innerHTML='<div class="mzax-content mzax-content-editor"><textarea class="text-input"></textarea></div>',d.addClassName("mzax-text-editor"),d.addClassName("mzax-editor"),c.$editor=d.down(".mzax-content-editor"),c.enableAce&&ace&&(b=c.ace=ace.edit(d.down(".text-input")),b.owner=this,b.setTheme(c.theme||"ace/theme/mage"),
63
+ b.getSession().setMode(c.mode||"ace/mode/mage"),b.getSession().setUseWrapMode(c.useWrapMode),b.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableMageLiveAutocompletion:!0}),b.setReadOnly(c.readOnly)),c.refreshUi(),Event.observe(a,"resize",function(){c.refreshUi()}),c.setValue(e)},doAutosize:function(){var a=this.ace;if(a){var b=a.getSession().getScreenLength()*a.renderer.lineHeight+a.renderer.scrollBar.getWidth()+25;this.$.setStyle({height:b.toString()+"px"})}else{var c=this.$editor.down("textarea");c.setStyle({height:"1px"}),c.setStyle({height:25+c.scrollHeight+"px"})}},execCommand:function(a){return this.ace&&this.ace.execCommand(a,{source:"mage"}),this},insert:function(a){this.ace&&this.ace.insert(a)},setValue:function(a){var b=this;return b.ace?(b.ace.setValue(a),b.ace.clearSelection()):b.$editor.down("textarea").value=a,b.refreshUi(),b},getValue:function(){return this.ace?this.ace.getValue():this.$editor.down("textarea").value},refreshUi:function(){this.autosize?(this.$.addClassName("mzax-autosize"),
64
+ this.doAutosize()):this.$.removeClassName("mzax-autosize"),this.ace&&this.ace.resize()}})}(window,window.mzax),function(a,b,c){function d(a){var b;return void 0!=a?b=Event.findElement(a,"DIV"):$$("div.selected").each(function(a){b=$(a.id)}),void 0==$(b.id)?!1:b.id}if(b&&c){var e=b.prototype.insert,f=c.closeDialog;b.prototype.insert=function(b){if(!a[this.targetElementId]||!c._callback)return e.call(this,b);var f,g=(a[this.targetElementId],d(b));return g?(f={filename:g,node:this.currentNode.id,store:this.storeId,as_is:1},void new Ajax.Request(this.onInsertUrl,{parameters:f,onSuccess:function(a){try{if(this.onAjaxSuccess(a),this.getMediaBrowserOpener()&&self.blur(),c._callback){var b=a.responseText;b=b.replace(/"[^"]*\{\{(.*?)\}\}[^"]*"/g,function(a){return'"'+a.substring(1,a.length-1).replace(/"/g,"'")+'"'}),c._callback.call(null,b),c._callback=null}Windows.close("browser_window")}catch(d){alert(d.message)}}.bind(this)})):!1},c.browse=function(a,b,c,d,e){this._callback=b,this.openDialog(a,c,d,e);
65
+
66
+ },c.closeDialog=function(a){return this._callback&&(this._callback.call(a,null),this._callback=null),f.call(this,a)}}}(window,Mediabrowser,MediabrowserUtility),function(a,b,c){if(b&&b.Widget&&c){var d=b.Widget,e=c.openDialog,f=c.closeDialog,g=d.prototype.insertWidget;d.prototype.insertWidget=function(){if(!a[this.widgetTargetId]&&!c._callback)return g.call(this);var b=(a[this.widgetTargetId],new varienForm(this.formEl));if(b.validator&&b.validator.validate()||!b.validator){var d=[],e=0;Form.getElements($(this.formEl)).each(function(a){a.hasClassName("skip-submit")||(d[e]=a,e++)});var f=Form.serializeElements(d);f+="&as_is=1",new Ajax.Request($(this.formEl).action,{parameters:f,onComplete:function(a){try{c.onAjaxSuccess(a),c._callback&&(c._callback.call(c,a.responseText),c._callback=null),Windows.close("widget_window")}catch(b){alert(b.message)}}.bind(this)})}},c.openDialog=function(a,b){return c._callback=b,e.call(c,a)},c.closeDialog=function(a){return c._callback&&(c._callback.call(a,null),
67
+ c._callback=null),f.call(this,a)}}}(window,WysiwygWidget,widgetTools);
js/mzax/report.js CHANGED
@@ -8,7 +8,7 @@
8
  * It is also available through the world-wide-web at this URL:
9
  * http://opensource.org/licenses/osl-3.0.php
10
  *
11
- * @version 0.2.6
12
  * @category Mzax
13
  * @package Mzax_Emarketing
14
  * @author Jacob Siefer (jacob@mzax.de)
8
  * It is also available through the world-wide-web at this URL:
9
  * http://opensource.org/licenses/osl-3.0.php
10
  *
11
+ * @version 0.2.7
12
  * @category Mzax
13
  * @package Mzax_Emarketing
14
  * @author Jacob Siefer (jacob@mzax.de)
lib/Html2Text/Html2Text.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /******************************************************************************
7
  * Copyright (c) 2010 Jevon Wright and others.
@@ -38,6 +38,9 @@ class Html2Text_Html2Text {
38
  * @throws Html2Text_Html2TextException if the HTML could not be loaded as a {@link DOMDocument}
39
  */
40
  static function convert($html) {
 
 
 
41
  $html = static::fixNewlines($html);
42
 
43
  $doc = new DOMDocument();
@@ -141,16 +144,29 @@ class Html2Text_Html2Text {
141
  case "h4":
142
  case "h5":
143
  case "h6":
144
- // add two newlines
 
 
145
  $output = "\n";
146
  break;
147
 
 
 
 
 
 
 
 
148
  case "p":
149
  case "div":
150
  // add one line
151
  $output = "\n";
152
  break;
153
 
 
 
 
 
154
  default:
155
  // print out contents of unknown tags
156
  $output = "";
@@ -226,6 +242,11 @@ class Html2Text_Html2Text {
226
  $output .= "\n";
227
  break;
228
  }
 
 
 
 
 
229
 
230
  default:
231
  // do nothing
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /******************************************************************************
7
  * Copyright (c) 2010 Jevon Wright and others.
38
  * @throws Html2Text_Html2TextException if the HTML could not be loaded as a {@link DOMDocument}
39
  */
40
  static function convert($html) {
41
+ // replace &nbsp; with spaces
42
+ $html = str_replace("&nbsp;", " ", $html);
43
+
44
  $html = static::fixNewlines($html);
45
 
46
  $doc = new DOMDocument();
144
  case "h4":
145
  case "h5":
146
  case "h6":
147
+ case "ol":
148
+ case "ul":
149
+ // add two newlines, second line is added below
150
  $output = "\n";
151
  break;
152
 
153
+ case "td":
154
+ case "th":
155
+ // add tab char to separate table fields
156
+ $output = "\t";
157
+ break;
158
+
159
+ case "tr":
160
  case "p":
161
  case "div":
162
  // add one line
163
  $output = "\n";
164
  break;
165
 
166
+ case "li":
167
+ $output = "- ";
168
+ break;
169
+
170
  default:
171
  // print out contents of unknown tags
172
  $output = "";
242
  $output .= "\n";
243
  break;
244
  }
245
+ break;
246
+
247
+ case "li":
248
+ $output .= "\n";
249
+ break;
250
 
251
  default:
252
  // do nothing
lib/Html2Text/Html2TextException.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /******************************************************************************
7
  * Copyright (c) 2010 Jevon Wright and others.
8
  * All rights reserved. This program and the accompanying materials
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /******************************************************************************
8
  * Copyright (c) 2010 Jevon Wright and others.
9
  * All rights reserved. This program and the accompanying materials
lib/Html2Text/README.md CHANGED
@@ -1,4 +1,4 @@
1
- html2text
2
  =========
3
 
4
  html2text is a very simple script that uses PHP's DOM methods to load from HTML, and then iterates over the resulting DOM to correctly output plain text. For example:
1
+ html2text [![Build Status](https://travis-ci.org/soundasleep/html2text.svg?branch=master)](https://travis-ci.org/soundasleep/html2text) [![Total Downloads](https://poser.pugx.org/soundasleep/html2text/downloads.png)](https://packagist.org/packages/soundasleep/html2text)
2
  =========
3
 
4
  html2text is a very simple script that uses PHP's DOM methods to load from HTML, and then iterates over the resulting DOM to correctly output plain text. For example:
lib/Html2Text/composer.json CHANGED
@@ -12,9 +12,6 @@
12
  "role": "Developer"
13
  }
14
  ],
15
- "require": {
16
- "php": ">=5.3.2"
17
- },
18
  "autoload": {
19
  "psr-4": {
20
  "Html2Text\\": "src"
@@ -23,7 +20,13 @@
23
  "support": {
24
  "email": "support@jevon.org"
25
  },
 
 
 
 
 
26
  "require-dev": {
27
- "phpunit/phpunit": "~4.4"
 
28
  }
29
  }
12
  "role": "Developer"
13
  }
14
  ],
 
 
 
15
  "autoload": {
16
  "psr-4": {
17
  "Html2Text\\": "src"
20
  "support": {
21
  "email": "support@jevon.org"
22
  },
23
+ "require": {
24
+ "php": ">=5.3.2",
25
+ "ext-dom": "*",
26
+ "ext-libxml": "*"
27
+ },
28
  "require-dev": {
29
+ "phpunit/phpunit": ">=4.0",
30
+ "soundasleep/component-tests": "dev-master"
31
  }
32
  }
lib/Html2Text/composer.lock CHANGED
@@ -4,75 +4,87 @@
4
  "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
  "This file is @generated automatically"
6
  ],
7
- "hash": "cec80ea0ce4bb635f073c77a316cd7ea",
8
  "packages": [],
9
  "packages-dev": [
10
  {
11
- "name": "doctrine/instantiator",
12
- "version": "1.0.4",
13
  "source": {
14
  "type": "git",
15
- "url": "https://github.com/doctrine/instantiator.git",
16
- "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119"
17
  },
18
  "dist": {
19
  "type": "zip",
20
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f976e5de371104877ebc89bd8fecb0019ed9c119",
21
- "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119",
22
  "shasum": ""
23
  },
24
  "require": {
25
- "php": ">=5.3,<8.0-DEV"
26
  },
27
  "require-dev": {
28
- "athletic/athletic": "~0.1.8",
29
- "ext-pdo": "*",
30
- "ext-phar": "*",
31
- "phpunit/phpunit": "~4.0",
32
- "squizlabs/php_codesniffer": "2.0.*@ALPHA"
33
  },
 
 
 
34
  "type": "library",
35
  "extra": {
36
  "branch-alias": {
37
- "dev-master": "1.0.x-dev"
38
  }
39
  },
40
  "autoload": {
41
  "psr-0": {
42
- "Doctrine\\Instantiator\\": "src"
43
  }
44
  },
45
  "notification-url": "https://packagist.org/downloads/",
46
  "license": [
47
- "MIT"
48
  ],
49
  "authors": [
50
  {
51
- "name": "Marco Pivetta",
52
- "email": "ocramius@gmail.com",
53
- "homepage": "http://ocramius.github.com/"
 
 
 
 
 
 
 
 
 
 
 
54
  }
55
  ],
56
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
57
- "homepage": "https://github.com/doctrine/instantiator",
58
  "keywords": [
59
- "constructor",
60
- "instantiate"
61
  ],
62
- "time": "2014-10-13 12:58:55"
63
  },
64
  {
65
  "name": "phpunit/php-code-coverage",
66
- "version": "2.0.13",
67
  "source": {
68
  "type": "git",
69
  "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
70
- "reference": "0e7d2eec5554f869fa7a4ec2d21e4b37af943ea5"
71
  },
72
  "dist": {
73
  "type": "zip",
74
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/0e7d2eec5554f869fa7a4ec2d21e4b37af943ea5",
75
- "reference": "0e7d2eec5554f869fa7a4ec2d21e4b37af943ea5",
76
  "shasum": ""
77
  },
78
  "require": {
@@ -85,7 +97,7 @@
85
  },
86
  "require-dev": {
87
  "ext-xdebug": ">=2.1.4",
88
- "phpunit/phpunit": "~4.1"
89
  },
90
  "suggest": {
91
  "ext-dom": "*",
@@ -104,9 +116,6 @@
104
  ]
105
  },
106
  "notification-url": "https://packagist.org/downloads/",
107
- "include-path": [
108
- ""
109
- ],
110
  "license": [
111
  "BSD-3-Clause"
112
  ],
@@ -124,7 +133,7 @@
124
  "testing",
125
  "xunit"
126
  ],
127
- "time": "2014-12-03 06:41:44"
128
  },
129
  {
130
  "name": "phpunit/php-file-iterator",
@@ -261,16 +270,16 @@
261
  },
262
  {
263
  "name": "phpunit/php-token-stream",
264
- "version": "1.3.0",
265
  "source": {
266
  "type": "git",
267
  "url": "https://github.com/sebastianbergmann/php-token-stream.git",
268
- "reference": "f8d5d08c56de5cfd592b3340424a81733259a876"
269
  },
270
  "dist": {
271
  "type": "zip",
272
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/f8d5d08c56de5cfd592b3340424a81733259a876",
273
- "reference": "f8d5d08c56de5cfd592b3340424a81733259a876",
274
  "shasum": ""
275
  },
276
  "require": {
@@ -283,7 +292,7 @@
283
  "type": "library",
284
  "extra": {
285
  "branch-alias": {
286
- "dev-master": "1.3-dev"
287
  }
288
  },
289
  "autoload": {
@@ -306,43 +315,43 @@
306
  "keywords": [
307
  "tokenizer"
308
  ],
309
- "time": "2014-08-31 06:12:13"
310
  },
311
  {
312
  "name": "phpunit/phpunit",
313
- "version": "4.4.0",
314
  "source": {
315
  "type": "git",
316
  "url": "https://github.com/sebastianbergmann/phpunit.git",
317
- "reference": "bbe7bcb83b6ec1a9eaabbe1b70d4795027c53ee0"
318
  },
319
  "dist": {
320
  "type": "zip",
321
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bbe7bcb83b6ec1a9eaabbe1b70d4795027c53ee0",
322
- "reference": "bbe7bcb83b6ec1a9eaabbe1b70d4795027c53ee0",
323
  "shasum": ""
324
  },
325
  "require": {
326
  "ext-dom": "*",
327
- "ext-json": "*",
328
  "ext-pcre": "*",
329
  "ext-reflection": "*",
330
  "ext-spl": "*",
331
  "php": ">=5.3.3",
332
- "phpunit/php-code-coverage": "~2.0",
333
- "phpunit/php-file-iterator": "~1.3.2",
334
  "phpunit/php-text-template": "~1.2",
335
  "phpunit/php-timer": "~1.0.2",
336
- "phpunit/phpunit-mock-objects": "~2.3",
337
- "sebastian/comparator": "~1.0",
338
  "sebastian/diff": "~1.1",
339
- "sebastian/environment": "~1.1",
340
- "sebastian/exporter": "~1.0",
341
- "sebastian/global-state": "~1.0",
342
  "sebastian/version": "~1.0",
343
  "symfony/yaml": "~2.0"
344
  },
345
  "suggest": {
 
 
 
346
  "phpunit/php-invoker": "~1.1"
347
  },
348
  "bin": [
@@ -351,7 +360,7 @@
351
  "type": "library",
352
  "extra": {
353
  "branch-alias": {
354
- "dev-master": "4.4.x-dev"
355
  }
356
  },
357
  "autoload": {
@@ -360,6 +369,10 @@
360
  ]
361
  },
362
  "notification-url": "https://packagist.org/downloads/",
 
 
 
 
363
  "license": [
364
  "BSD-3-Clause"
365
  ],
@@ -371,35 +384,34 @@
371
  }
372
  ],
373
  "description": "The PHP Unit Testing framework.",
374
- "homepage": "https://phpunit.de/",
375
  "keywords": [
376
  "phpunit",
377
  "testing",
378
  "xunit"
379
  ],
380
- "time": "2014-12-05 06:49:03"
381
  },
382
  {
383
  "name": "phpunit/phpunit-mock-objects",
384
- "version": "2.3.0",
385
  "source": {
386
  "type": "git",
387
  "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
388
- "reference": "c63d2367247365f688544f0d500af90a11a44c65"
389
  },
390
  "dist": {
391
  "type": "zip",
392
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/c63d2367247365f688544f0d500af90a11a44c65",
393
- "reference": "c63d2367247365f688544f0d500af90a11a44c65",
394
  "shasum": ""
395
  },
396
  "require": {
397
- "doctrine/instantiator": "~1.0,>=1.0.1",
398
  "php": ">=5.3.3",
399
  "phpunit/php-text-template": "~1.2"
400
  },
401
  "require-dev": {
402
- "phpunit/phpunit": "~4.3"
403
  },
404
  "suggest": {
405
  "ext-soap": "*"
@@ -407,7 +419,7 @@
407
  "type": "library",
408
  "extra": {
409
  "branch-alias": {
410
- "dev-master": "2.3.x-dev"
411
  }
412
  },
413
  "autoload": {
@@ -416,6 +428,9 @@
416
  ]
417
  },
418
  "notification-url": "https://packagist.org/downloads/",
 
 
 
419
  "license": [
420
  "BSD-3-Clause"
421
  ],
@@ -432,71 +447,7 @@
432
  "mock",
433
  "xunit"
434
  ],
435
- "time": "2014-10-03 05:12:11"
436
- },
437
- {
438
- "name": "sebastian/comparator",
439
- "version": "1.1.0",
440
- "source": {
441
- "type": "git",
442
- "url": "https://github.com/sebastianbergmann/comparator.git",
443
- "reference": "c484a80f97573ab934e37826dba0135a3301b26a"
444
- },
445
- "dist": {
446
- "type": "zip",
447
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/c484a80f97573ab934e37826dba0135a3301b26a",
448
- "reference": "c484a80f97573ab934e37826dba0135a3301b26a",
449
- "shasum": ""
450
- },
451
- "require": {
452
- "php": ">=5.3.3",
453
- "sebastian/diff": "~1.1",
454
- "sebastian/exporter": "~1.0"
455
- },
456
- "require-dev": {
457
- "phpunit/phpunit": "~4.1"
458
- },
459
- "type": "library",
460
- "extra": {
461
- "branch-alias": {
462
- "dev-master": "1.1.x-dev"
463
- }
464
- },
465
- "autoload": {
466
- "classmap": [
467
- "src/"
468
- ]
469
- },
470
- "notification-url": "https://packagist.org/downloads/",
471
- "license": [
472
- "BSD-3-Clause"
473
- ],
474
- "authors": [
475
- {
476
- "name": "Jeff Welch",
477
- "email": "whatthejeff@gmail.com"
478
- },
479
- {
480
- "name": "Volker Dusch",
481
- "email": "github@wallbash.com"
482
- },
483
- {
484
- "name": "Bernhard Schussek",
485
- "email": "bschussek@2bepublished.at"
486
- },
487
- {
488
- "name": "Sebastian Bergmann",
489
- "email": "sebastian@phpunit.de"
490
- }
491
- ],
492
- "description": "Provides the functionality to compare PHP values for equality",
493
- "homepage": "http://www.github.com/sebastianbergmann/comparator",
494
- "keywords": [
495
- "comparator",
496
- "compare",
497
- "equality"
498
- ],
499
- "time": "2014-11-16 21:32:38"
500
  },
501
  {
502
  "name": "sebastian/diff",
@@ -666,34 +617,20 @@
666
  "time": "2014-09-10 00:51:36"
667
  },
668
  {
669
- "name": "sebastian/global-state",
670
- "version": "1.0.0",
671
  "source": {
672
  "type": "git",
673
- "url": "https://github.com/sebastianbergmann/global-state.git",
674
- "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01"
675
  },
676
  "dist": {
677
  "type": "zip",
678
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
679
- "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
680
  "shasum": ""
681
  },
682
- "require": {
683
- "php": ">=5.3.3"
684
- },
685
- "require-dev": {
686
- "phpunit/phpunit": "~4.2"
687
- },
688
- "suggest": {
689
- "ext-uopz": "*"
690
- },
691
  "type": "library",
692
- "extra": {
693
- "branch-alias": {
694
- "dev-master": "1.0-dev"
695
- }
696
- },
697
  "autoload": {
698
  "classmap": [
699
  "src/"
@@ -706,69 +643,63 @@
706
  "authors": [
707
  {
708
  "name": "Sebastian Bergmann",
709
- "email": "sebastian@phpunit.de"
 
710
  }
711
  ],
712
- "description": "Snapshotting of global state",
713
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
714
- "keywords": [
715
- "global state"
716
- ],
717
- "time": "2014-10-06 09:23:50"
718
  },
719
  {
720
- "name": "sebastian/version",
721
- "version": "1.0.3",
722
  "source": {
723
  "type": "git",
724
- "url": "https://github.com/sebastianbergmann/version.git",
725
- "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43"
726
  },
727
  "dist": {
728
  "type": "zip",
729
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43",
730
- "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43",
731
  "shasum": ""
732
  },
 
 
 
 
733
  "type": "library",
734
  "autoload": {
735
- "classmap": [
736
- "src/"
737
- ]
738
  },
739
  "notification-url": "https://packagist.org/downloads/",
740
- "license": [
741
- "BSD-3-Clause"
742
- ],
743
- "authors": [
744
- {
745
- "name": "Sebastian Bergmann",
746
- "email": "sebastian@phpunit.de",
747
- "role": "lead"
748
- }
749
- ],
750
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
751
- "homepage": "https://github.com/sebastianbergmann/version",
752
- "time": "2014-03-07 15:35:33"
753
  },
754
  {
755
  "name": "symfony/yaml",
756
- "version": "v2.6.1",
757
  "target-dir": "Symfony/Component/Yaml",
758
  "source": {
759
  "type": "git",
760
  "url": "https://github.com/symfony/Yaml.git",
761
- "reference": "3346fc090a3eb6b53d408db2903b241af51dcb20"
762
  },
763
  "dist": {
764
  "type": "zip",
765
- "url": "https://api.github.com/repos/symfony/Yaml/zipball/3346fc090a3eb6b53d408db2903b241af51dcb20",
766
- "reference": "3346fc090a3eb6b53d408db2903b241af51dcb20",
767
  "shasum": ""
768
  },
769
  "require": {
770
  "php": ">=5.3.3"
771
  },
 
 
 
772
  "type": "library",
773
  "extra": {
774
  "branch-alias": {
@@ -796,15 +727,20 @@
796
  ],
797
  "description": "Symfony Yaml Component",
798
  "homepage": "http://symfony.com",
799
- "time": "2014-12-02 20:19:20"
800
  }
801
  ],
802
  "aliases": [],
803
  "minimum-stability": "stable",
804
- "stability-flags": [],
 
 
805
  "prefer-stable": false,
 
806
  "platform": {
807
- "php": ">=5.3.2"
 
 
808
  },
809
  "platform-dev": []
810
  }
4
  "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
  "This file is @generated automatically"
6
  ],
7
+ "hash": "bb90182bd8d808a06ae4762518746ed3",
8
  "packages": [],
9
  "packages-dev": [
10
  {
11
+ "name": "justinrainbow/json-schema",
12
+ "version": "1.3.7",
13
  "source": {
14
  "type": "git",
15
+ "url": "https://github.com/justinrainbow/json-schema.git",
16
+ "reference": "87b54b460febed69726c781ab67462084e97a105"
17
  },
18
  "dist": {
19
  "type": "zip",
20
+ "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/87b54b460febed69726c781ab67462084e97a105",
21
+ "reference": "87b54b460febed69726c781ab67462084e97a105",
22
  "shasum": ""
23
  },
24
  "require": {
25
+ "php": ">=5.3.0"
26
  },
27
  "require-dev": {
28
+ "json-schema/json-schema-test-suite": "1.1.0",
29
+ "phpdocumentor/phpdocumentor": "~2",
30
+ "phpunit/phpunit": "~3.7"
 
 
31
  },
32
+ "bin": [
33
+ "bin/validate-json"
34
+ ],
35
  "type": "library",
36
  "extra": {
37
  "branch-alias": {
38
+ "dev-master": "1.4.x-dev"
39
  }
40
  },
41
  "autoload": {
42
  "psr-0": {
43
+ "JsonSchema": "src/"
44
  }
45
  },
46
  "notification-url": "https://packagist.org/downloads/",
47
  "license": [
48
+ "BSD-3-Clause"
49
  ],
50
  "authors": [
51
  {
52
+ "name": "Bruno Prieto Reis",
53
+ "email": "bruno.p.reis@gmail.com"
54
+ },
55
+ {
56
+ "name": "Justin Rainbow",
57
+ "email": "justin.rainbow@gmail.com"
58
+ },
59
+ {
60
+ "name": "Igor Wiedler",
61
+ "email": "igor@wiedler.ch"
62
+ },
63
+ {
64
+ "name": "Robert Schönthal",
65
+ "email": "seroscho@googlemail.com"
66
  }
67
  ],
68
+ "description": "A library to validate a json schema.",
69
+ "homepage": "https://github.com/justinrainbow/json-schema",
70
  "keywords": [
71
+ "json",
72
+ "schema"
73
  ],
74
+ "time": "2014-08-25 02:48:14"
75
  },
76
  {
77
  "name": "phpunit/php-code-coverage",
78
+ "version": "2.0.15",
79
  "source": {
80
  "type": "git",
81
  "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
82
+ "reference": "34cc484af1ca149188d0d9e91412191e398e0b67"
83
  },
84
  "dist": {
85
  "type": "zip",
86
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/34cc484af1ca149188d0d9e91412191e398e0b67",
87
+ "reference": "34cc484af1ca149188d0d9e91412191e398e0b67",
88
  "shasum": ""
89
  },
90
  "require": {
97
  },
98
  "require-dev": {
99
  "ext-xdebug": ">=2.1.4",
100
+ "phpunit/phpunit": "~4"
101
  },
102
  "suggest": {
103
  "ext-dom": "*",
116
  ]
117
  },
118
  "notification-url": "https://packagist.org/downloads/",
 
 
 
119
  "license": [
120
  "BSD-3-Clause"
121
  ],
133
  "testing",
134
  "xunit"
135
  ],
136
+ "time": "2015-01-24 10:06:35"
137
  },
138
  {
139
  "name": "phpunit/php-file-iterator",
270
  },
271
  {
272
  "name": "phpunit/php-token-stream",
273
+ "version": "1.4.0",
274
  "source": {
275
  "type": "git",
276
  "url": "https://github.com/sebastianbergmann/php-token-stream.git",
277
+ "reference": "db32c18eba00b121c145575fcbcd4d4d24e6db74"
278
  },
279
  "dist": {
280
  "type": "zip",
281
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/db32c18eba00b121c145575fcbcd4d4d24e6db74",
282
+ "reference": "db32c18eba00b121c145575fcbcd4d4d24e6db74",
283
  "shasum": ""
284
  },
285
  "require": {
292
  "type": "library",
293
  "extra": {
294
  "branch-alias": {
295
+ "dev-master": "1.4-dev"
296
  }
297
  },
298
  "autoload": {
315
  "keywords": [
316
  "tokenizer"
317
  ],
318
+ "time": "2015-01-17 09:51:32"
319
  },
320
  {
321
  "name": "phpunit/phpunit",
322
+ "version": "4.0.0",
323
  "source": {
324
  "type": "git",
325
  "url": "https://github.com/sebastianbergmann/phpunit.git",
326
+ "reference": "b3a7c58bc39f01577f89d63da1ec578e1e993f1a"
327
  },
328
  "dist": {
329
  "type": "zip",
330
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b3a7c58bc39f01577f89d63da1ec578e1e993f1a",
331
+ "reference": "b3a7c58bc39f01577f89d63da1ec578e1e993f1a",
332
  "shasum": ""
333
  },
334
  "require": {
335
  "ext-dom": "*",
 
336
  "ext-pcre": "*",
337
  "ext-reflection": "*",
338
  "ext-spl": "*",
339
  "php": ">=5.3.3",
340
+ "phpunit/php-code-coverage": ">=2.0.0,<2.1.0",
341
+ "phpunit/php-file-iterator": "~1.3.1",
342
  "phpunit/php-text-template": "~1.2",
343
  "phpunit/php-timer": "~1.0.2",
344
+ "phpunit/phpunit-mock-objects": ">=2.0.0,<2.1.0",
 
345
  "sebastian/diff": "~1.1",
346
+ "sebastian/environment": "~1.0",
347
+ "sebastian/exporter": "~1.0.1",
 
348
  "sebastian/version": "~1.0",
349
  "symfony/yaml": "~2.0"
350
  },
351
  "suggest": {
352
+ "ext-json": "*",
353
+ "ext-simplexml": "*",
354
+ "ext-tokenizer": "*",
355
  "phpunit/php-invoker": "~1.1"
356
  },
357
  "bin": [
360
  "type": "library",
361
  "extra": {
362
  "branch-alias": {
363
+ "dev-master": "4.0.x-dev"
364
  }
365
  },
366
  "autoload": {
369
  ]
370
  },
371
  "notification-url": "https://packagist.org/downloads/",
372
+ "include-path": [
373
+ "",
374
+ "../../symfony/yaml/"
375
+ ],
376
  "license": [
377
  "BSD-3-Clause"
378
  ],
384
  }
385
  ],
386
  "description": "The PHP Unit Testing framework.",
387
+ "homepage": "http://www.phpunit.de/",
388
  "keywords": [
389
  "phpunit",
390
  "testing",
391
  "xunit"
392
  ],
393
+ "time": "2014-03-07 07:00:44"
394
  },
395
  {
396
  "name": "phpunit/phpunit-mock-objects",
397
+ "version": "2.0.10",
398
  "source": {
399
  "type": "git",
400
  "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
401
+ "reference": "e60bb929c50ae4237aaf680a4f6773f4ee17f0a2"
402
  },
403
  "dist": {
404
  "type": "zip",
405
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/e60bb929c50ae4237aaf680a4f6773f4ee17f0a2",
406
+ "reference": "e60bb929c50ae4237aaf680a4f6773f4ee17f0a2",
407
  "shasum": ""
408
  },
409
  "require": {
 
410
  "php": ">=5.3.3",
411
  "phpunit/php-text-template": "~1.2"
412
  },
413
  "require-dev": {
414
+ "phpunit/phpunit": ">=4.0.0,<4.1.0"
415
  },
416
  "suggest": {
417
  "ext-soap": "*"
419
  "type": "library",
420
  "extra": {
421
  "branch-alias": {
422
+ "dev-master": "2.0.x-dev"
423
  }
424
  },
425
  "autoload": {
428
  ]
429
  },
430
  "notification-url": "https://packagist.org/downloads/",
431
+ "include-path": [
432
+ ""
433
+ ],
434
  "license": [
435
  "BSD-3-Clause"
436
  ],
447
  "mock",
448
  "xunit"
449
  ],
450
+ "time": "2014-06-12 07:19:48"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
451
  },
452
  {
453
  "name": "sebastian/diff",
617
  "time": "2014-09-10 00:51:36"
618
  },
619
  {
620
+ "name": "sebastian/version",
621
+ "version": "1.0.4",
622
  "source": {
623
  "type": "git",
624
+ "url": "https://github.com/sebastianbergmann/version.git",
625
+ "reference": "a77d9123f8e809db3fbdea15038c27a95da4058b"
626
  },
627
  "dist": {
628
  "type": "zip",
629
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/a77d9123f8e809db3fbdea15038c27a95da4058b",
630
+ "reference": "a77d9123f8e809db3fbdea15038c27a95da4058b",
631
  "shasum": ""
632
  },
 
 
 
 
 
 
 
 
 
633
  "type": "library",
 
 
 
 
 
634
  "autoload": {
635
  "classmap": [
636
  "src/"
643
  "authors": [
644
  {
645
  "name": "Sebastian Bergmann",
646
+ "email": "sebastian@phpunit.de",
647
+ "role": "lead"
648
  }
649
  ],
650
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
651
+ "homepage": "https://github.com/sebastianbergmann/version",
652
+ "time": "2014-12-15 14:25:24"
 
 
 
653
  },
654
  {
655
+ "name": "soundasleep/component-tests",
656
+ "version": "dev-master",
657
  "source": {
658
  "type": "git",
659
+ "url": "https://github.com/soundasleep/component-tests.git",
660
+ "reference": "c1e9e6608ef41452b35d68a7057ea7add77ccd36"
661
  },
662
  "dist": {
663
  "type": "zip",
664
+ "url": "https://api.github.com/repos/soundasleep/component-tests/zipball/c1e9e6608ef41452b35d68a7057ea7add77ccd36",
665
+ "reference": "c1e9e6608ef41452b35d68a7057ea7add77ccd36",
666
  "shasum": ""
667
  },
668
+ "require": {
669
+ "justinrainbow/json-schema": "~1.3",
670
+ "phpunit/phpunit": "4.0"
671
+ },
672
  "type": "library",
673
  "autoload": {
674
+ "psr-4": {
675
+ "ComponentTests\\": "src"
676
+ }
677
  },
678
  "notification-url": "https://packagist.org/downloads/",
679
+ "description": "Common Composer and PHP component lint and validation tests",
680
+ "time": "2015-03-18 02:30:24"
 
 
 
 
 
 
 
 
 
 
 
681
  },
682
  {
683
  "name": "symfony/yaml",
684
+ "version": "v2.6.5",
685
  "target-dir": "Symfony/Component/Yaml",
686
  "source": {
687
  "type": "git",
688
  "url": "https://github.com/symfony/Yaml.git",
689
+ "reference": "0cd8e72071e46e15fc072270ae39ea1b66b10a9d"
690
  },
691
  "dist": {
692
  "type": "zip",
693
+ "url": "https://api.github.com/repos/symfony/Yaml/zipball/0cd8e72071e46e15fc072270ae39ea1b66b10a9d",
694
+ "reference": "0cd8e72071e46e15fc072270ae39ea1b66b10a9d",
695
  "shasum": ""
696
  },
697
  "require": {
698
  "php": ">=5.3.3"
699
  },
700
+ "require-dev": {
701
+ "symfony/phpunit-bridge": "~2.7"
702
+ },
703
  "type": "library",
704
  "extra": {
705
  "branch-alias": {
727
  ],
728
  "description": "Symfony Yaml Component",
729
  "homepage": "http://symfony.com",
730
+ "time": "2015-03-12 10:28:44"
731
  }
732
  ],
733
  "aliases": [],
734
  "minimum-stability": "stable",
735
+ "stability-flags": {
736
+ "soundasleep/component-tests": 20
737
+ },
738
  "prefer-stable": false,
739
+ "prefer-lowest": false,
740
  "platform": {
741
+ "php": ">=5.3.2",
742
+ "ext-dom": "*",
743
+ "ext-libxml": "*"
744
  },
745
  "platform-dev": []
746
  }
lib/Mzax/Bounce.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Bounce
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Bounce
30
  {
lib/Mzax/Bounce/Detector.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Bounce_Detector extends Mzax_Bounce_Detector_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Bounce_Detector extends Mzax_Bounce_Detector_Abstract
30
  {
lib/Mzax/Bounce/Detector/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  abstract class Mzax_Bounce_Detector_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  abstract class Mzax_Bounce_Detector_Abstract
30
  {
lib/Mzax/Bounce/Detector/Arf.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Bounce_Detector_Arf extends Mzax_Bounce_Detector_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Bounce_Detector_Arf extends Mzax_Bounce_Detector_Abstract
30
  {
lib/Mzax/Bounce/Detector/Autoreply.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -39,7 +39,7 @@
39
  *
40
  * @author Jacob Siefer
41
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
42
- * @version 0.2.6
43
  */
44
  class Mzax_Bounce_Detector_Autoreply extends Mzax_Bounce_Detector_Abstract
45
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
39
  *
40
  * @author Jacob Siefer
41
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
42
+ * @version 0.2.7
43
  */
44
  class Mzax_Bounce_Detector_Autoreply extends Mzax_Bounce_Detector_Abstract
45
  {
lib/Mzax/Bounce/Detector/Extended.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Bounce_Detector_Extended extends Mzax_Bounce_Detector_Abstract
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Bounce_Detector_Extended extends Mzax_Bounce_Detector_Abstract
31
  {
lib/Mzax/Bounce/Detector/Failure.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -38,7 +38,7 @@
38
  *
39
  * @author Jacob Siefer
40
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
41
- * @version 0.2.6
42
  */
43
  class Mzax_Bounce_Detector_Failure extends Mzax_Bounce_Detector_Abstract
44
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
38
  *
39
  * @author Jacob Siefer
40
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
41
+ * @version 0.2.7
42
  */
43
  class Mzax_Bounce_Detector_Failure extends Mzax_Bounce_Detector_Abstract
44
  {
lib/Mzax/Bounce/Detector/Rfc1892.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Bounce_Detector_Rfc1892 extends Mzax_Bounce_Detector_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Bounce_Detector_Rfc1892 extends Mzax_Bounce_Detector_Abstract
30
  {
lib/Mzax/Bounce/Mail.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Bounce_Mail extends Zend_Mail
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Bounce_Mail extends Zend_Mail
30
  {
lib/Mzax/Bounce/Message.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Bounce_Message extends Mzax_Bounce_Mime_Part
29
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Bounce_Message extends Mzax_Bounce_Mime_Part
29
  {
lib/Mzax/Bounce/Mime/Decode.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Bounce_Mime_Decode extends Zend_Mime_Decode
29
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Bounce_Mime_Decode extends Zend_Mime_Decode
29
  {
lib/Mzax/Bounce/Mime/Part.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Bounce_Mime_Part extends Zend_Mime_Part
29
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Bounce_Mime_Part extends Zend_Mime_Part
29
  {
lib/Mzax/Chart/Table.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Chart_Table extends Varien_Object
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Chart_Table extends Varien_Object
30
  {
lib/Mzax/Db/Select.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -23,7 +23,7 @@
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  class Mzax_Db_Select extends Varien_Db_Select
29
  {
@@ -247,8 +247,8 @@ class Mzax_Db_Select extends Varien_Db_Select
247
  public function hasAnyBindings()
248
  {
249
  foreach(func_get_args() as $name) {
250
- if(!isset($this->_binding[$name])) {
251
- return false;
252
  }
253
  }
254
  return true;
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ * @version 0.2.7
27
  */
28
  class Mzax_Db_Select extends Varien_Db_Select
29
  {
247
  public function hasAnyBindings()
248
  {
249
  foreach(func_get_args() as $name) {
250
+ if(isset($this->_binding[$name])) {
251
+ return true;
252
  }
253
  }
254
  return true;
lib/Mzax/GeoIp.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_GeoIp
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_GeoIp
30
  {
lib/Mzax/GeoIp/Adapter/Abstract.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -17,13 +17,20 @@
17
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
  */
19
 
 
 
 
 
 
 
 
20
  /**
21
  *
22
  *
23
  *
24
  * @author Jacob Siefer
25
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- * @version 0.2.6
27
  */
28
  abstract class Mzax_GeoIp_Adapter_Abstract
29
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
17
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
  */
19
 
20
+
21
+ if(!defined('ENT_HTML401')) {
22
+ // PHP 5.4.0
23
+ define('ENT_HTML401', 0);
24
+ }
25
+
26
+
27
  /**
28
  *
29
  *
30
  *
31
  * @author Jacob Siefer
32
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
33
+ * @version 0.2.7
34
  */
35
  abstract class Mzax_GeoIp_Adapter_Abstract
36
  {
lib/Mzax/GeoIp/Adapter/FreeGeoIp.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -26,7 +26,7 @@
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
- * @version 0.2.6
30
  */
31
  class Mzax_GeoIp_Adapter_FreeGeoIp extends Mzax_GeoIp_Adapter_Abstract
32
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
26
  *
27
  * @author Jacob Siefer
28
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
29
+ * @version 0.2.7
30
  */
31
  class Mzax_GeoIp_Adapter_FreeGeoIp extends Mzax_GeoIp_Adapter_Abstract
32
  {
lib/Mzax/GeoIp/Adapter/GeoPlugin.php CHANGED
@@ -1,4 +1,21 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
 
4
  /**
@@ -10,7 +27,7 @@
10
  *
11
  * @author Jacob Siefer
12
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
13
- * @version 0.2.6
14
  */
15
  class Mzax_GeoIp_Adapter_GeoPlugin extends Mzax_GeoIp_Adapter_Abstract
16
  {
1
  <?php
2
+ /**
3
+ * Mzax Emarketing (www.mzax.de)
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this Extension in the file LICENSE.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @version 0.2.7
13
+ * @category Mzax
14
+ * @package Mzax_Emarketing
15
+ * @author Jacob Siefer (jacob@mzax.de)
16
+ * @copyright Copyright (c) 2015 Jacob Siefer
17
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
18
+ */
19
 
20
 
21
  /**
27
  *
28
  * @author Jacob Siefer
29
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
30
+ * @version 0.2.7
31
  */
32
  class Mzax_GeoIp_Adapter_GeoPlugin extends Mzax_GeoIp_Adapter_Abstract
33
  {
lib/Mzax/GeoIp/Adapter/Ipinfo.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -28,7 +28,7 @@
28
  *
29
  * @author Jacob Siefer
30
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
31
- * @version 0.2.6
32
  */
33
  class Mzax_GeoIp_Adapter_Ipinfo extends Mzax_GeoIp_Adapter_Abstract
34
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
28
  *
29
  * @author Jacob Siefer
30
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
31
+ * @version 0.2.7
32
  */
33
  class Mzax_GeoIp_Adapter_Ipinfo extends Mzax_GeoIp_Adapter_Abstract
34
  {
lib/Mzax/GeoIp/Exception.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_GeoIp_Exception extends Zend_Exception
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_GeoIp_Exception extends Zend_Exception
30
  {
lib/Mzax/GeoIp/Region.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_GeoIp_Region
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_GeoIp_Region
30
  {
lib/Mzax/GeoIp/Request.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_GeoIp_Request
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_GeoIp_Request
31
  {
lib/Mzax/Mail.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Mail extends Zend_Mail
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Mail extends Zend_Mail
30
  {
lib/Mzax/Mail/Transport/File.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Mail_Transport_File extends Zend_Mail_Transport_Abstract
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Mail_Transport_File extends Zend_Mail_Transport_Abstract
31
  {
lib/Mzax/Mail/Transport/Mock.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Mail_Transport_Mock extends Zend_Mail_Transport_Abstract
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Mail_Transport_Mock extends Zend_Mail_Transport_Abstract
30
  {
lib/Mzax/Once.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -25,7 +25,7 @@
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
- * @version 0.2.6
29
  */
30
  class Mzax_Once
31
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
25
  *
26
  * @author Jacob Siefer
27
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
28
+ * @version 0.2.7
29
  */
30
  class Mzax_Once
31
  {
lib/Mzax/Presist.php CHANGED
@@ -9,7 +9,7 @@
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
- * @version 0.2.6
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
@@ -24,7 +24,7 @@
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
- * @version 0.2.6
28
  */
29
  class Mzax_Presist
30
  {
9
  * It is also available through the world-wide-web at this URL:
10
  * http://opensource.org/licenses/osl-3.0.php
11
  *
12
+ * @version 0.2.7
13
  * @category Mzax
14
  * @package Mzax_Emarketing
15
  * @author Jacob Siefer (jacob@mzax.de)
24
  *
25
  * @author Jacob Siefer
26
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
27
+ * @version 0.2.7
28
  */
29
  class Mzax_Presist
30
  {
lib/Symfony/Component/CssSelector/CssSelector.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Exception/ExceptionInterface.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Exception/ExpressionErrorException.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
@@ -22,6 +23,6 @@
22
  *
23
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
24
  */
25
- class Symfony_Component_CssSelector_Exception_ExpressionErrorException extends Symfony_Component_CssSelector_Exception_ParseException implements Symfony_Component_CssSelector_Exception_ExceptionInterface
26
  {
27
  }
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
23
  *
24
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
25
  */
26
+ class Symfony_Component_CssSelector_Exception_ExpressionErrorException extends Symfony_Component_CssSelector_Exception_ParseException
27
  {
28
  }
lib/Symfony/Component/CssSelector/Exception/InternalErrorException.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
@@ -22,6 +23,6 @@
22
  *
23
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
24
  */
25
- class Symfony_Component_CssSelector_Exception_InternalErrorException extends Symfony_Component_CssSelector_Exception_ParseException implements Symfony_Component_CssSelector_Exception_ExceptionInterface
26
  {
27
  }
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
23
  *
24
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
25
  */
26
+ class Symfony_Component_CssSelector_Exception_InternalErrorException extends Symfony_Component_CssSelector_Exception_ParseException
27
  {
28
  }
lib/Symfony/Component/CssSelector/Exception/ParseException.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Exception/SyntaxErrorException.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
@@ -24,7 +25,7 @@
24
  *
25
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
26
  */
27
- class Symfony_Component_CssSelector_Exception_SyntaxErrorException extends Symfony_Component_CssSelector_Exception_ParseException implements Symfony_Component_CssSelector_Exception_ExceptionInterface
28
  {
29
  /**
30
  * @param string $expectedValue
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
25
  *
26
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
27
  */
28
+ class Symfony_Component_CssSelector_Exception_SyntaxErrorException extends Symfony_Component_CssSelector_Exception_ParseException
29
  {
30
  /**
31
  * @param string $expectedValue
lib/Symfony/Component/CssSelector/Node/AbstractNode.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Node/AttributeNode.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Node/ClassNode.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Node/CombinedSelectorNode.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Node/ElementNode.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Node/FunctionNode.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Node/HashNode.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Node/NegationNode.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Node/NodeInterface.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Node/PseudoNode.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Node/SelectorNode.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Node/Specificity.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Handler/CommentHandler.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Handler/HandlerInterface.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Handler/HashHandler.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Handler/IdentifierHandler.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Handler/NumberHandler.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Handler/StringHandler.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Handler/WhitespaceHandler.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Parser.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/ParserInterface.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Reader.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Shortcut/ClassParser.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Shortcut/ElementParser.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Shortcut/EmptyStringParser.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Shortcut/HashParser.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Token.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/TokenStream.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
@@ -103,7 +104,7 @@ class Symfony_Component_CssSelector_Parser_TokenStream
103
  throw new Symfony_Component_CssSelector_Exception_InternalErrorException('Unexpected token stream end.');
104
  }
105
 
106
- return $this->tokens[$this->cursor ++];
107
  }
108
 
109
  /**
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
104
  throw new Symfony_Component_CssSelector_Exception_InternalErrorException('Unexpected token stream end.');
105
  }
106
 
107
+ return $this->tokens[$this->cursor++];
108
  }
109
 
110
  /**
lib/Symfony/Component/CssSelector/Parser/Tokenizer/Tokenizer.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerEscaping.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerPatterns.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/XPath/Extension/AbstractExtension.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/XPath/Extension/AttributeMatchingExtension.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/XPath/Extension/CombinationExtension.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/XPath/Extension/ExtensionInterface.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/XPath/Extension/FunctionExtension.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
@@ -87,7 +88,7 @@ class Symfony_Component_CssSelector_XPath_Extension_FunctionExtension extends Sy
87
 
88
  if ($last) {
89
  $expr = 'last() - '.$expr;
90
- $b--;
91
  }
92
 
93
  if (0 !== $b) {
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
88
 
89
  if ($last) {
90
  $expr = 'last() - '.$expr;
91
+ --$b;
92
  }
93
 
94
  if (0 !== $b) {
lib/Symfony/Component/CssSelector/XPath/Extension/HtmlExtension.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
@@ -101,9 +102,9 @@ class Symfony_Component_CssSelector_XPath_Extension_HtmlExtension extends Symfon
101
  public function translateDisabled(Symfony_Component_CssSelector_XPath_XPathExpr $xpath)
102
  {
103
  return $xpath->addCondition(
104
- "("
105
- ."@disabled and"
106
- ."("
107
  ."(name(.) = 'input' and @type != 'hidden')"
108
  ." or name(.) = 'button'"
109
  ." or name(.) = 'select'"
@@ -112,14 +113,14 @@ class Symfony_Component_CssSelector_XPath_Extension_HtmlExtension extends Symfon
112
  ." or name(.) = 'fieldset'"
113
  ." or name(.) = 'optgroup'"
114
  ." or name(.) = 'option'"
115
- .")"
116
- .") or ("
117
  ."(name(.) = 'input' and @type != 'hidden')"
118
  ." or name(.) = 'button'"
119
  ." or name(.) = 'select'"
120
  ." or name(.) = 'textarea'"
121
- .")"
122
- ." and ancestor::fieldset[@disabled]"
123
  );
124
  // todo: in the second half, add "and is not a descendant of that fieldset element's first legend element child, if any."
125
  }
@@ -153,10 +154,10 @@ class Symfony_Component_CssSelector_XPath_Extension_HtmlExtension extends Symfon
153
  ." or name(.) = 'textarea'"
154
  ." or name(.) = 'keygen'"
155
  .')'
156
- ." and not (@disabled or ancestor::fieldset[@disabled])"
157
  .') or ('
158
  ."name(.) = 'option' and not("
159
- ."@disabled or ancestor::optgroup[@disabled]"
160
  .')'
161
  .')'
162
  );
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
102
  public function translateDisabled(Symfony_Component_CssSelector_XPath_XPathExpr $xpath)
103
  {
104
  return $xpath->addCondition(
105
+ '('
106
+ .'@disabled and'
107
+ .'('
108
  ."(name(.) = 'input' and @type != 'hidden')"
109
  ." or name(.) = 'button'"
110
  ." or name(.) = 'select'"
113
  ." or name(.) = 'fieldset'"
114
  ." or name(.) = 'optgroup'"
115
  ." or name(.) = 'option'"
116
+ .')'
117
+ .') or ('
118
  ."(name(.) = 'input' and @type != 'hidden')"
119
  ." or name(.) = 'button'"
120
  ." or name(.) = 'select'"
121
  ." or name(.) = 'textarea'"
122
+ .')'
123
+ .' and ancestor::fieldset[@disabled]'
124
  );
125
  // todo: in the second half, add "and is not a descendant of that fieldset element's first legend element child, if any."
126
  }
154
  ." or name(.) = 'textarea'"
155
  ." or name(.) = 'keygen'"
156
  .')'
157
+ .' and not (@disabled or ancestor::fieldset[@disabled])'
158
  .') or ('
159
  ."name(.) = 'option' and not("
160
+ .'@disabled or ancestor::optgroup[@disabled]'
161
  .')'
162
  .')'
163
  );
lib/Symfony/Component/CssSelector/XPath/Extension/NodeExtension.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/XPath/Extension/PseudoClassExtension.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/XPath/Translator.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/XPath/TranslatorInterface.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/XPath/XPathExpr.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
 
6
  /*
7
  * This file is part of the Symfony package.
8
  *
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
+
7
  /*
8
  * This file is part of the Symfony package.
9
  *
lib/Symfony/Component/CssSelector/composer.json CHANGED
@@ -3,7 +3,7 @@
3
  "type": "library",
4
  "description": "Symfony CssSelector Component",
5
  "keywords": [],
6
- "homepage": "http://symfony.com",
7
  "license": "MIT",
8
  "authors": [
9
  {
@@ -16,23 +16,22 @@
16
  },
17
  {
18
  "name": "Symfony Community",
19
- "homepage": "http://symfony.com/contributors"
20
  }
21
  ],
22
  "require": {
23
- "php": ">=5.3.3"
24
  },
25
  "require-dev": {
26
  "symfony/phpunit-bridge": "~2.7"
27
  },
28
  "autoload": {
29
- "psr-0": { "Symfony\\Component\\CssSelector\\": "" }
30
  },
31
- "target-dir": "Symfony/Component/CssSelector",
32
  "minimum-stability": "dev",
33
  "extra": {
34
  "branch-alias": {
35
- "dev-master": "2.6-dev"
36
  }
37
  }
38
  }
3
  "type": "library",
4
  "description": "Symfony CssSelector Component",
5
  "keywords": [],
6
+ "homepage": "https://symfony.com",
7
  "license": "MIT",
8
  "authors": [
9
  {
16
  },
17
  {
18
  "name": "Symfony Community",
19
+ "homepage": "https://symfony.com/contributors"
20
  }
21
  ],
22
  "require": {
23
+ "php": ">=5.3.9"
24
  },
25
  "require-dev": {
26
  "symfony/phpunit-bridge": "~2.7"
27
  },
28
  "autoload": {
29
+ "psr-4": { "Symfony\\Component\\CssSelector\\": "" }
30
  },
 
31
  "minimum-stability": "dev",
32
  "extra": {
33
  "branch-alias": {
34
+ "dev-master": "2.7-dev"
35
  }
36
  }
37
  }
lib/Symfony/Component/CssSelector/phpunit.xml.dist CHANGED
@@ -9,6 +9,7 @@
9
  <php>
10
  <ini name="error_reporting" value="-1" />
11
  </php>
 
12
  <testsuites>
13
  <testsuite name="Symfony CssSelector Component Test Suite">
14
  <directory>./Tests/</directory>
9
  <php>
10
  <ini name="error_reporting" value="-1" />
11
  </php>
12
+
13
  <testsuites>
14
  <testsuite name="Symfony CssSelector Component Test Suite">
15
  <directory>./Tests/</directory>
lib/TijsVerkoyen/CssToInlineStyles/CssToInlineStyles.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  #namespace TijsVerkoyen\CssToInlineStyles;
7
 
@@ -12,7 +12,7 @@
12
  * CSS to Inline Styles class
13
  *
14
  * @author Tijs Verkoyen <php-css-to-inline-styles@verkoyen.eu>
15
- * @version 1.5.2
16
  * @copyright Copyright (c), Tijs Verkoyen. All rights reserved.
17
  * @license BSD License
18
  */
@@ -150,11 +150,14 @@ class TijsVerkoyen_CssToInlineStyles_CssToInlineStyles
150
  $document = new DOMDocument('1.0', $this->getEncoding());
151
 
152
  // set error level
153
- libxml_use_internal_errors(true);
154
 
155
  // load HTML
156
  $document->loadHTML($this->html);
157
 
 
 
 
158
  // create new XPath
159
  $xPath = new DOMXPath($document);
160
 
@@ -211,8 +214,7 @@ class TijsVerkoyen_CssToInlineStyles_CssToInlineStyles
211
  $definedStyles = (string) $stylesAttribute->value;
212
 
213
  // split into properties
214
- $definedProperties = (array) explode(';', $definedStyles);
215
-
216
  // loop properties
217
  foreach ($definedProperties as $property) {
218
  // validate property
@@ -279,7 +281,7 @@ class TijsVerkoyen_CssToInlineStyles_CssToInlineStyles
279
 
280
  if ($originalStyle != '') {
281
  $originalProperties = array();
282
- $originalStyles = (array) explode(';', $originalStyle);
283
 
284
  foreach ($originalStyles as $property) {
285
  // validate property
@@ -309,7 +311,7 @@ class TijsVerkoyen_CssToInlineStyles_CssToInlineStyles
309
  $definedStyles = (string) $stylesAttribute->value;
310
 
311
  // split into properties
312
- $definedProperties = (array) explode(';', $definedStyles);
313
 
314
  // loop properties
315
  foreach ($definedProperties as $property) {
@@ -369,7 +371,7 @@ class TijsVerkoyen_CssToInlineStyles_CssToInlineStyles
369
  if ($this->stripOriginalStyleTags) {
370
  $this->stripOriginalStyleTags($xPath);
371
  }
372
-
373
  // should we output XHTML?
374
  if ($outputXHTML) {
375
  // set formating
@@ -378,17 +380,8 @@ class TijsVerkoyen_CssToInlineStyles_CssToInlineStyles
378
  // get the HTML as XML
379
  $html = $document->saveXML(null, LIBXML_NOEMPTYTAG);
380
 
381
- // get start of the XML-declaration
382
- $startPosition = strpos($html, '<?xml');
383
-
384
- // valid start position?
385
- if ($startPosition !== false) {
386
- // get end of the xml-declaration
387
- $endPosition = strpos($html, '?>', $startPosition);
388
-
389
- // remove the XML-header
390
- $html = ltrim(substr($html, $endPosition + 1));
391
- }
392
  } // just regular HTML 4.01 as it should be used in newsletters
393
  else {
394
  // get the HTML
@@ -404,6 +397,28 @@ class TijsVerkoyen_CssToInlineStyles_CssToInlineStyles
404
  return $html;
405
  }
406
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
407
  /**
408
  * Get the encoding to use
409
  *
@@ -510,7 +525,7 @@ class TijsVerkoyen_CssToInlineStyles_CssToInlineStyles
510
  private function processCSSProperties($propertyString)
511
  {
512
  // split into chunks
513
- $properties = (array) explode(';', $propertyString);
514
 
515
  // init var
516
  $pairs = array();
@@ -571,7 +586,7 @@ class TijsVerkoyen_CssToInlineStyles_CssToInlineStyles
571
  *
572
  * @return void
573
  * @param string $encoding The encoding to use.
574
- *
575
  * @deprecated Doesn't have any effect
576
  */
577
  public function setEncoding($encoding)
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  #namespace TijsVerkoyen\CssToInlineStyles;
7
 
12
  * CSS to Inline Styles class
13
  *
14
  * @author Tijs Verkoyen <php-css-to-inline-styles@verkoyen.eu>
15
+ * @version 1.5.4
16
  * @copyright Copyright (c), Tijs Verkoyen. All rights reserved.
17
  * @license BSD License
18
  */
150
  $document = new DOMDocument('1.0', $this->getEncoding());
151
 
152
  // set error level
153
+ $internalErrors = libxml_use_internal_errors(true);
154
 
155
  // load HTML
156
  $document->loadHTML($this->html);
157
 
158
+ // Restore error level
159
+ libxml_use_internal_errors($internalErrors);
160
+
161
  // create new XPath
162
  $xPath = new DOMXPath($document);
163
 
214
  $definedStyles = (string) $stylesAttribute->value;
215
 
216
  // split into properties
217
+ $definedProperties = $this->splitIntoProperties($definedStyles);
 
218
  // loop properties
219
  foreach ($definedProperties as $property) {
220
  // validate property
281
 
282
  if ($originalStyle != '') {
283
  $originalProperties = array();
284
+ $originalStyles = $this->splitIntoProperties($originalStyle);
285
 
286
  foreach ($originalStyles as $property) {
287
  // validate property
311
  $definedStyles = (string) $stylesAttribute->value;
312
 
313
  // split into properties
314
+ $definedProperties = $this->splitIntoProperties($definedStyles);
315
 
316
  // loop properties
317
  foreach ($definedProperties as $property) {
371
  if ($this->stripOriginalStyleTags) {
372
  $this->stripOriginalStyleTags($xPath);
373
  }
374
+
375
  // should we output XHTML?
376
  if ($outputXHTML) {
377
  // set formating
380
  // get the HTML as XML
381
  $html = $document->saveXML(null, LIBXML_NOEMPTYTAG);
382
 
383
+ // remove the XML-header
384
+ $html = ltrim(preg_replace('/<?xml (.*)?>/', '', $html));
 
 
 
 
 
 
 
 
 
385
  } // just regular HTML 4.01 as it should be used in newsletters
386
  else {
387
  // get the HTML
397
  return $html;
398
  }
399
 
400
+ /**
401
+ * Split a style string into an array of properties.
402
+ * The returned array can contain empty strings.
403
+ *
404
+ * @param string $styles ex: 'color:blue;font-size:12px;'
405
+ * @return array an array of strings containing css property ex: array('color:blue','font-size:12px')
406
+ */
407
+ private function splitIntoProperties($styles) {
408
+ $properties = (array) explode(';', $styles);
409
+
410
+ for ($i = 0; $i < count($properties); $i++) {
411
+ // If next property begins with base64,
412
+ // Then the ';' was part of this property (and we should not have split on it).
413
+ if (isset($properties[$i + 1]) && strpos($properties[$i + 1], 'base64,') === 0) {
414
+ $properties[$i] .= ';' . $properties[$i + 1];
415
+ $properties[$i + 1] = '';
416
+ $i += 1;
417
+ }
418
+ }
419
+ return $properties;
420
+ }
421
+
422
  /**
423
  * Get the encoding to use
424
  *
525
  private function processCSSProperties($propertyString)
526
  {
527
  // split into chunks
528
+ $properties = $this->splitIntoProperties($propertyString);
529
 
530
  // init var
531
  $pairs = array();
586
  *
587
  * @return void
588
  * @param string $encoding The encoding to use.
589
+ *
590
  * @deprecated Doesn't have any effect
591
  */
592
  public function setEncoding($encoding)
lib/TijsVerkoyen/CssToInlineStyles/Exception.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  #namespace TijsVerkoyen\CssToInlineStyles;
7
 
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  #namespace TijsVerkoyen\CssToInlineStyles;
7
 
lib/TijsVerkoyen/CssToInlineStyles/Specificity.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  #namespace TijsVerkoyen\CssToInlineStyles;
7
 
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  #namespace TijsVerkoyen\CssToInlineStyles;
7
 
lib/UAParser/AbstractParser.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/{CHANGELOG → CHANGELOG.md} RENAMED
@@ -1,44 +1,62 @@
1
- THIS CHANGELOG IS AN ATTEMPT TO DOCUMENT CHANGES TO THIS PROJECT.
2
- SUPER MINOR REVISION NUMBERS WON'T SHOW UP IN GITHUB BUT IT'LL HELP
3
- ME ORGANIZE WHEN I MADE A SET OF FIXES
4
 
5
- UAP-3.4.0
 
 
 
 
 
 
 
6
  - ADD: device Parsing with brand model and case insensitive testing
 
 
 
7
 
8
- UAP-3.3.1
9
  - PSR-4 ready
10
  - Self repository, less useless files
11
 
12
- UAP-3.3.0
13
  - Use composer for dependency management
14
  - Introduce namespaces
15
  - Removing legacy library dependencies
16
  - Use PHPUnit for testing
17
  - Make all tests pass, fix all the remaining bugs
18
  - Introduce specific result objects
19
- - Comply with PSR-X coding standards
 
 
 
 
20
  - Use Travis for CI
21
  - Update README
22
  - Port command line tool to Symfony CLI
23
  - Secure updating: SSL certificate verification, hashing, try to do atomic updates
24
  - Restore fetching YAML file only (without generating JSON)
25
 
26
- UAP-2.1.1
27
  - FIX: making sure patch minor is being populated correctly when showing a mismatch
28
 
29
- UAP-2.1.0
30
  - ADD: support for custom regexes.json files (via @pravindahal)
31
  - FIX: formerly private vars/functions are now protected (via @pravindahal)
32
  - FIX: command line tool gets 'pretty' option for PHP 5.4 users (via @skyzyx)
33
  - FIX: refactored the regexes.yaml test suite
34
  - FIX: now check to see if allow_url_fopen is set to 'On' before trying to download the YAML file from the command line
35
  - THX: thanks to @pravindahal and @skyzyx for the pull requests
36
-
37
- UAP-2.0.1
38
  - FIX: renamed uaParser, osParser, & deviceParser to uaParse, osParse, & deviceParse to address a bug with uaParser being recognized as the contruct function for the overall lib
39
  - FIX: updated the test lib so that device failures are properly formatted
40
 
41
- UAP-2.0.0
 
 
 
 
 
 
42
  - ADD: toString() converts the version bits and family into a simple string
43
  - ADD: toVersionString() converts the version bits into a simple string
44
  - ADD: toFullString() combines the UA and OS family and version bits
@@ -58,7 +76,7 @@ UAP-2.0.0
58
  - DEL: tests no longer run against pgts_browser_list.yaml
59
  - THX: thanks to @rjd22 for the dynamic class code/fix
60
 
61
- UAP-1.5.0
62
  - ADD: command line interface is now in its own file (via @Synchro)
63
  - ADD: command line utility now supports parsing an Apache log file & recording the results
64
  - ADD: command line utility can now parse a supplied user-agent string and push out a simple list or JSON
@@ -73,83 +91,83 @@ UAP-1.5.0
73
  - FIX: if regexes.yaml picks up bad slashes the PHP lib will account for it (e.g. GoogleTV regex)
74
  - THX: thanks to @Krinkle and @Synchro for the numerous fixes
75
 
76
- UAP-1.4.5
77
  - FIX: an embarrassing debug print survived the last edit
78
  - THX: thanks to @memakeit for dropping the bug report
79
 
80
- UAP-1.4.4
81
  - FIX: made sure that the regex file is only loaded once if running the library multiple times. performance boost.
82
  - FIX: added support for identifying various game devices as mobile devices
83
  - THX: thanks to @rjd22 for pointing out the perf issue
84
 
85
- UAP-1.4.3
86
  - FIX: added support for patch & family attributes to sort of match the other libraries
87
 
88
- UAP-1.4.2
89
  - FIX: notice if regexes.yaml is missing parens (e.g. match $1) for device & os names
90
 
91
- UAP-1.4.1
92
  - FIX: notice when using UAParser from the command line
93
 
94
- UAP-1.4.0
95
  - ADD: silent mode for the UA::get() method
96
  - ADD: nobackup mode for the UA::get() method
97
  - ADD: example of how to do a redirect with ua-parser-php
98
  - The following were changes to regexes.yaml:
99
- ---- ADD: support for Google Earth browser
100
- ---- ADD: another regex for Firefox Mobile
101
- ---- ADD: support for Firefox Alpha builds
102
- ---- ADD: support for Sogou Explorer
103
- ---- ADD: support for the Raven for Mac browser
104
- ---- ADD: support for WebKit Nightly builds (though slightly pointless)
105
- ---- FIX: better pattern matching for the Pale Moon browser
106
-
107
- UAP-v1.3.2
108
  - FIX: addressed false "tablet" classification for opera mobile & mini on android
109
  - The following were changes to regexes.yaml:
110
- ---- ADD: support for Tizen Browser (aka SLP Browser) from Samsung
111
- ---- FIX: support for a new look Polaris 8.0 user agent string
112
- ---- FIX: modified where the Epiphany Browser check happens
113
 
114
- UAP-v1.3.1
115
  - FIX: now doing some sanity cleaning on the user agent strings
116
  - FIX: added a smarter default if the user agent isn't recognized at all
117
 
118
- UAP-v1.3.0
119
  - FIX: now points to Tobie's ua-parser project for the latest greatest YAML file
120
  - FIX: YAML file is now standardized as regexes.yaml instead of user_agents_regex.yaml
121
  - FIX: minor NOTICE issues resolved for very select UAs
122
 
123
- UAP-v1.2.2
124
  - The following were changes to user_agents_regex.yaml:
125
- ---- ADD: support for UC Browser
126
 
127
- UAP-v1.2.1
128
  - The following were changes to user_agents_regex.yaml:
129
- ---- ADD: support for android 4 user agents that have a dash in them
130
 
131
- UAP-v1.2.0
132
  - FIX: should be compatible with PHP 5.2
133
  - FIX: addressed STRICT mode errors
134
  - FIX: addressed NOTICE for a missing variable
135
  - FIX: if isTablet is set to true then isMobile is set to false (mobile to me means phone)
136
  - THX: Thanks to Mike Bond of WVU Libraries for pointing out the 5.2 incompatibility
137
 
138
- UAP-v1.1.0
139
  - FIX: a number of fixes from bryan shelton
140
  - The following were changes to user_agents_regex.yaml:
141
- ---- ADD: support for Chrome Mobile
142
 
143
- UAP-v1.0.0
144
  - just because i don't expect to update this anytime soon and ppl report it's working
145
 
146
- UAP-v0.3.1
147
  - FIX: swapped nil for null in parse()
148
  - FIX: smarter/saner defaults
149
  - FIX: now using isset() for family_replacement
150
  - THX: thanks to bryan shelton for these fixes
151
 
152
- UAP-v0.3.0
153
  - ADD: can now supply a specific UA to be checked
154
  - ADD: if the UA contains 'tablet' isTablet is marked true
155
  - ADD: for certain mobile OSs they report a desktop browser. marking them mobile now.
@@ -159,32 +177,32 @@ UAP-v0.3.0
159
  - FIX: for the device check, if it returns spider as a result it no longer marks it as mobile
160
  - FIX: added more mobile browsers to that specific check
161
  - The following were changes to user_agents_regex.yaml:
162
- ---- ADD: symphony, minimo, teleca, semc, up.browser, bunjaloo, jasmine, & brew browsers supported
163
- ---- ADD: windows mobile 6.5 os support
164
- ---- ADD: amoi, asus, bird, dell, docomo, huawei, i-mate, kyocera, lenovo, lg, microsoft kind,
165
  motorola, philips, samsung, softbank, & sony ericsson device checks
166
- ---- FIX: mobile firefox, opera mobile & mini, obigo, polaris, nokiabrowser, ie mobile,
167
  android, & mobile safari browser checks
168
- ---- FIX: iOS support
169
- ---- FIX: htc, android, palm/hp, kindle, ios, generic feature phones & spider device checks
170
 
171
- UAP-v0.2.0
172
  - ADD: added isMobile support
173
  - ADD: added isTablet support
174
  - ADD: added isComputer support
175
  - ADD: added isSpider support
176
 
177
- UAP-v0.1.0
178
  - The following were changes to user_agents_regex.yaml:
179
- ---- expanded support for Symbia & Nokia Devices,
180
- ---- cleaned up some slashies,
181
- ---- added Mobile Safari as the family replacement for iOS devices,
182
- ---- better support for longer HTC device names
183
- ---- added feature phones to the device check
184
- ---- added generic smartphones to the device check
185
- ---- added AvantGo to the ua check
186
- ---- tweaked a lot of the nokia checks
187
- ---- added kindle support to the device section
188
- ---- added a generic catch for android devices.
189
- ---- added support for blackberry devices
190
- ---- changed the blackberry family to 'blackberry webkit' when it's a webkit browser
1
+ # Changelog
 
 
2
 
3
+ ## 3.4.2
4
+ - Update uap-core
5
+
6
+ ## 3.4.1
7
+ - Fix a regex delimiter issue with uap-core
8
+ - Bundle regex.php with uap-php
9
+
10
+ ## 3.4.0
11
  - ADD: device Parsing with brand model and case insensitive testing
12
+ - Use `peer_name` instead of `CN_match` for PHP >=5.6
13
+ - Advertise Gitter chat for support requests
14
+ - Include uap-core as a git submodule
15
 
16
+ ## 3.3.1
17
  - PSR-4 ready
18
  - Self repository, less useless files
19
 
20
+ ## 3.3.0
21
  - Use composer for dependency management
22
  - Introduce namespaces
23
  - Removing legacy library dependencies
24
  - Use PHPUnit for testing
25
  - Make all tests pass, fix all the remaining bugs
26
  - Introduce specific result objects
27
+ - Comply with PSR-X coding standards:
28
+ * `UAParser` class is now `UAParser\Parser`
29
+ * Typed result objects: `Parser::parse()` returns `UAParser\Result\Client`, `Client::$os` is a `UAParser\Result\OperatingSystem` and `Client::$device` is a `UAParser\Result\Device`
30
+ * `toString()` and `toVersion()` are now methods
31
+ * Properties now use camelCase, not underscore_case.
32
  - Use Travis for CI
33
  - Update README
34
  - Port command line tool to Symfony CLI
35
  - Secure updating: SSL certificate verification, hashing, try to do atomic updates
36
  - Restore fetching YAML file only (without generating JSON)
37
 
38
+ ## 2.1.1
39
  - FIX: making sure patch minor is being populated correctly when showing a mismatch
40
 
41
+ ## 2.1.0
42
  - ADD: support for custom regexes.json files (via @pravindahal)
43
  - FIX: formerly private vars/functions are now protected (via @pravindahal)
44
  - FIX: command line tool gets 'pretty' option for PHP 5.4 users (via @skyzyx)
45
  - FIX: refactored the regexes.yaml test suite
46
  - FIX: now check to see if allow_url_fopen is set to 'On' before trying to download the YAML file from the command line
47
  - THX: thanks to @pravindahal and @skyzyx for the pull requests
48
+
49
+ ## 2.0.1
50
  - FIX: renamed uaParser, osParser, & deviceParser to uaParse, osParse, & deviceParse to address a bug with uaParser being recognized as the contruct function for the overall lib
51
  - FIX: updated the test lib so that device failures are properly formatted
52
 
53
+ ## 2.0.0
54
+ - Summary:
55
+ * the `UAParser` class is now dynamic
56
+ * properties are nested _(e.g. $result->family is now $result->ua->family)_
57
+ * a user agent string is now required when using `parse()`. the auto-magical "use the server provided UA" is no longer supported.
58
+ * `uaParse()`, `osParse()`, and `deviceParse()` are public and can be used to just return those select bits for a given user agent string.
59
+ * the `is*` boolean properties _(e.g. isMobile)_ have been dropped. they now exist as part of the `ua-classifier` project.
60
  - ADD: toString() converts the version bits and family into a simple string
61
  - ADD: toVersionString() converts the version bits into a simple string
62
  - ADD: toFullString() combines the UA and OS family and version bits
76
  - DEL: tests no longer run against pgts_browser_list.yaml
77
  - THX: thanks to @rjd22 for the dynamic class code/fix
78
 
79
+ ## 1.5.0
80
  - ADD: command line interface is now in its own file (via @Synchro)
81
  - ADD: command line utility now supports parsing an Apache log file & recording the results
82
  - ADD: command line utility can now parse a supplied user-agent string and push out a simple list or JSON
91
  - FIX: if regexes.yaml picks up bad slashes the PHP lib will account for it (e.g. GoogleTV regex)
92
  - THX: thanks to @Krinkle and @Synchro for the numerous fixes
93
 
94
+ ## 1.4.5
95
  - FIX: an embarrassing debug print survived the last edit
96
  - THX: thanks to @memakeit for dropping the bug report
97
 
98
+ ## 1.4.4
99
  - FIX: made sure that the regex file is only loaded once if running the library multiple times. performance boost.
100
  - FIX: added support for identifying various game devices as mobile devices
101
  - THX: thanks to @rjd22 for pointing out the perf issue
102
 
103
+ ## 1.4.3
104
  - FIX: added support for patch & family attributes to sort of match the other libraries
105
 
106
+ ## 1.4.2
107
  - FIX: notice if regexes.yaml is missing parens (e.g. match $1) for device & os names
108
 
109
+ ## 1.4.1
110
  - FIX: notice when using UAParser from the command line
111
 
112
+ ## 1.4.0
113
  - ADD: silent mode for the UA::get() method
114
  - ADD: nobackup mode for the UA::get() method
115
  - ADD: example of how to do a redirect with ua-parser-php
116
  - The following were changes to regexes.yaml:
117
+ * ADD: support for Google Earth browser
118
+ * ADD: another regex for Firefox Mobile
119
+ * ADD: support for Firefox Alpha builds
120
+ * ADD: support for Sogou Explorer
121
+ * ADD: support for the Raven for Mac browser
122
+ * ADD: support for WebKit Nightly builds (though slightly pointless)
123
+ * FIX: better pattern matching for the Pale Moon browser
124
+
125
+ ## 1.3.2
126
  - FIX: addressed false "tablet" classification for opera mobile & mini on android
127
  - The following were changes to regexes.yaml:
128
+ * ADD: support for Tizen Browser (aka SLP Browser) from Samsung
129
+ * FIX: support for a new look Polaris 8.0 user agent string
130
+ * FIX: modified where the Epiphany Browser check happens
131
 
132
+ ## 1.3.1
133
  - FIX: now doing some sanity cleaning on the user agent strings
134
  - FIX: added a smarter default if the user agent isn't recognized at all
135
 
136
+ ## 1.3.0
137
  - FIX: now points to Tobie's ua-parser project for the latest greatest YAML file
138
  - FIX: YAML file is now standardized as regexes.yaml instead of user_agents_regex.yaml
139
  - FIX: minor NOTICE issues resolved for very select UAs
140
 
141
+ ## 1.2.2
142
  - The following were changes to user_agents_regex.yaml:
143
+ * ADD: support for UC Browser
144
 
145
+ ## 1.2.1
146
  - The following were changes to user_agents_regex.yaml:
147
+ * ADD: support for android 4 user agents that have a dash in them
148
 
149
+ ## 1.2.0
150
  - FIX: should be compatible with PHP 5.2
151
  - FIX: addressed STRICT mode errors
152
  - FIX: addressed NOTICE for a missing variable
153
  - FIX: if isTablet is set to true then isMobile is set to false (mobile to me means phone)
154
  - THX: Thanks to Mike Bond of WVU Libraries for pointing out the 5.2 incompatibility
155
 
156
+ ## 1.1.0
157
  - FIX: a number of fixes from bryan shelton
158
  - The following were changes to user_agents_regex.yaml:
159
+ * ADD: support for Chrome Mobile
160
 
161
+ ## 1.0.0
162
  - just because i don't expect to update this anytime soon and ppl report it's working
163
 
164
+ ## 0.3.1
165
  - FIX: swapped nil for null in parse()
166
  - FIX: smarter/saner defaults
167
  - FIX: now using isset() for family_replacement
168
  - THX: thanks to bryan shelton for these fixes
169
 
170
+ ## 0.3.0
171
  - ADD: can now supply a specific UA to be checked
172
  - ADD: if the UA contains 'tablet' isTablet is marked true
173
  - ADD: for certain mobile OSs they report a desktop browser. marking them mobile now.
177
  - FIX: for the device check, if it returns spider as a result it no longer marks it as mobile
178
  - FIX: added more mobile browsers to that specific check
179
  - The following were changes to user_agents_regex.yaml:
180
+ * ADD: symphony, minimo, teleca, semc, up.browser, bunjaloo, jasmine, & brew browsers supported
181
+ * ADD: windows mobile 6.5 os support
182
+ * ADD: amoi, asus, bird, dell, docomo, huawei, i-mate, kyocera, lenovo, lg, microsoft kind,
183
  motorola, philips, samsung, softbank, & sony ericsson device checks
184
+ * FIX: mobile firefox, opera mobile & mini, obigo, polaris, nokiabrowser, ie mobile,
185
  android, & mobile safari browser checks
186
+ * FIX: iOS support
187
+ * FIX: htc, android, palm/hp, kindle, ios, generic feature phones & spider device checks
188
 
189
+ ## 0.2.0
190
  - ADD: added isMobile support
191
  - ADD: added isTablet support
192
  - ADD: added isComputer support
193
  - ADD: added isSpider support
194
 
195
+ ## 0.1.0
196
  - The following were changes to user_agents_regex.yaml:
197
+ * expanded support for Symbia & Nokia Devices,
198
+ * cleaned up some slashies,
199
+ * added Mobile Safari as the family replacement for iOS devices,
200
+ * better support for longer HTC device names
201
+ * added feature phones to the device check
202
+ * added generic smartphones to the device check
203
+ * added AvantGo to the ua check
204
+ * tweaked a lot of the nokia checks
205
+ * added kindle support to the device section
206
+ * added a generic catch for android devices.
207
+ * added support for blackberry devices
208
+ * changed the blackberry family to 'blackberry webkit' when it's a webkit browser
lib/UAParser/Command/ConvertCommand.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Command/FetchCommand.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Command/LogfileCommand.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Command/ParserCommand.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Command/UpdateCommand.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/DeviceParser.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Exception/DomainException.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Exception/FetcherException.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Exception/FileNotFoundException.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Exception/InvalidArgumentException.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Exception/ReaderException.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/OperatingSystemParser.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Parser.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/README.md CHANGED
@@ -4,40 +4,6 @@
4
 
5
  This is the PHP library for the [uap-core](https://github.com/ua-parser/uap-core) project.
6
 
7
- ## v3.4.2 Changes
8
- * Update uap-core
9
-
10
- ## v3.4.1 Changes
11
- * Fix a regex delimiter issue with uap-core
12
- * Bundle regex.php with uap-php
13
-
14
- ## v3.4 Changes
15
- Move done to it’s own dedicated project. Now officially available via composer as `ua-parser/uap-php`
16
- * Use `peer_name` instead of `CN_match` for PHP >=5.6
17
- * Advertise Gitter chat for support requests
18
- * Include uap-core as a git submodule
19
-
20
- ## v3.3 Changes
21
-
22
- v3.3 of the PHP library is no longer compatible with the previous version. It now supports composer, requires PHP 5.3
23
- and has a slightly different API (see below).
24
- * `UAParser` class is now `UAParser\Parser`
25
- * Typed result objects: `Parser::parse()` returns `UAParser\Result\Client`, `Client::$os` is a `UAParser\Result\OperatingSystem` and `Client::$device` is a `UAParser\Result\Device`
26
- * `toString()` and `toVersion()` are now methods
27
- * Properties now use camelCase, not underscore_case.
28
-
29
- ## v2.0 Changes ##
30
-
31
- v2.0 of the PHP library, released in December 2012, marked a huge transition from the previous pseudo-port of `ua-parser` to a true port that matches up well with the other libraries in the `ua-parser` repo. The primary changes:
32
-
33
- * the `UAParser` class is now dynamic
34
- * properties are nested _(e.g. $result->family is now $result->ua->family)_
35
- * a user agent string is now required when using `parse()`. the auto-magical "use the server provided UA" is no longer supported.
36
- * `uaParse()`, `osParse()`, and `deviceParse()` are public and can be used to just return those select bits for a given user agent string.
37
- * the `is*` boolean properties _(e.g. isMobile)_ have been dropped. they now exist as part of the `ua-classifier` project.
38
-
39
- Please refer to the `CHANGELOG` for the full list of changes.
40
-
41
  ## Demo ##
42
 
43
  You can [test the PHP library](http://uaparser.dmolsen.com/) with your browser.
4
 
5
  This is the PHP library for the [uap-core](https://github.com/ua-parser/uap-core) project.
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  ## Demo ##
8
 
9
  You can [test the PHP library](http://uaparser.dmolsen.com/) with your browser.
lib/UAParser/Result/AbstractClient.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Result/AbstractSoftware.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Result/AbstractVersionedSoftware.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Result/Client.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Result/Device.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Result/OperatingSystem.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Result/UserAgent.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/UserAgentParser.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Util/Converter.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Util/Fetcher.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Util/Logfile/AbstractReader.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Util/Logfile/ApacheCommonLogFormatReader.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/Util/Logfile/ReaderInterface.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  * NOTICE:
4
- * This code has been slightly altered by Jacob Siefer to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
1
  <?php
2
  /*
3
  * NOTICE:
4
+ * This code has been slightly altered by the Mzax_Emarketing module to use old php namespaces.
5
  */
6
  /**
7
  * ua-parser
lib/UAParser/resources/regexes.php CHANGED
@@ -4,773 +4,799 @@ return array (
4
  array (
5
  0 =>
6
  array (
7
- 'regex' => '(HbbTV)/(\\d+)\\.(\\d+)\\.(\\d+) \\(',
 
8
  ),
9
  1 =>
10
  array (
11
- 'regex' => '(Chimera|SeaMonkey|Camino)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)?',
 
12
  ),
13
  2 =>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  array (
15
  'regex' => '(Pale[Mm]oon)/(\\d+)\\.(\\d+)\\.?(\\d+)?',
16
  'family_replacement' => 'Pale Moon (Firefox Variant)',
17
  ),
18
- 3 =>
19
  array (
20
  'regex' => '(Fennec)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)',
21
  'family_replacement' => 'Firefox Mobile',
22
  ),
23
- 4 =>
24
  array (
25
  'regex' => '(Fennec)/(\\d+)\\.(\\d+)(pre)',
26
  'family_replacement' => 'Firefox Mobile',
27
  ),
28
- 5 =>
29
  array (
30
  'regex' => '(Fennec)/(\\d+)\\.(\\d+)',
31
  'family_replacement' => 'Firefox Mobile',
32
  ),
33
- 6 =>
34
  array (
35
  'regex' => 'Mobile.*(Firefox)/(\\d+)\\.(\\d+)',
36
  'family_replacement' => 'Firefox Mobile',
37
  ),
38
- 7 =>
39
  array (
40
  'regex' => '(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)',
41
  'family_replacement' => 'Firefox ($1)',
42
  ),
43
- 8 =>
44
  array (
45
  'regex' => '(Firefox)/(\\d+)\\.(\\d+)(a\\d+[a-z]*)',
46
  'family_replacement' => 'Firefox Alpha',
47
  ),
48
- 9 =>
49
  array (
50
  'regex' => '(Firefox)/(\\d+)\\.(\\d+)(b\\d+[a-z]*)',
51
  'family_replacement' => 'Firefox Beta',
52
  ),
53
- 10 =>
54
  array (
55
  'regex' => '(Firefox)-(?:\\d+\\.\\d+)?/(\\d+)\\.(\\d+)(a\\d+[a-z]*)',
56
  'family_replacement' => 'Firefox Alpha',
57
  ),
58
- 11 =>
59
  array (
60
  'regex' => '(Firefox)-(?:\\d+\\.\\d+)?/(\\d+)\\.(\\d+)(b\\d+[a-z]*)',
61
  'family_replacement' => 'Firefox Beta',
62
  ),
63
- 12 =>
64
  array (
65
  'regex' => '(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?',
66
  'family_replacement' => 'Firefox ($1)',
67
  ),
68
- 13 =>
69
  array (
70
  'regex' => '(Firefox).*Tablet browser (\\d+)\\.(\\d+)\\.(\\d+)',
71
  'family_replacement' => 'MicroB',
72
  ),
73
- 14 =>
74
  array (
75
  'regex' => '(MozillaDeveloperPreview)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?',
76
  ),
77
- 15 =>
78
  array (
79
  'regex' => '(Flock)/(\\d+)\\.(\\d+)(b\\d+?)',
80
  ),
81
- 16 =>
82
  array (
83
  'regex' => '(RockMelt)/(\\d+)\\.(\\d+)\\.(\\d+)',
84
  ),
85
- 17 =>
86
  array (
87
  'regex' => '(Navigator)/(\\d+)\\.(\\d+)\\.(\\d+)',
88
  'family_replacement' => 'Netscape',
89
  ),
90
- 18 =>
91
  array (
92
  'regex' => '(Navigator)/(\\d+)\\.(\\d+)([ab]\\d+)',
93
  'family_replacement' => 'Netscape',
94
  ),
95
- 19 =>
96
  array (
97
  'regex' => '(Netscape6)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+)?',
98
  'family_replacement' => 'Netscape',
99
  ),
100
- 20 =>
101
  array (
102
  'regex' => '(MyIBrow)/(\\d+)\\.(\\d+)',
103
  'family_replacement' => 'My Internet Browser',
104
  ),
105
- 21 =>
106
  array (
107
  'regex' => '(Opera Tablet).*Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
108
  ),
109
- 22 =>
110
  array (
111
  'regex' => '(Opera)/.+Opera Mobi.+Version/(\\d+)\\.(\\d+)',
112
  'family_replacement' => 'Opera Mobile',
113
  ),
114
- 23 =>
115
  array (
116
  'regex' => '(Opera)/(\\d+)\\.(\\d+).+Opera Mobi',
117
  'family_replacement' => 'Opera Mobile',
118
  ),
119
- 24 =>
120
  array (
121
  'regex' => 'Opera Mobi.+(Opera)(?:/|\\s+)(\\d+)\\.(\\d+)',
122
  'family_replacement' => 'Opera Mobile',
123
  ),
124
- 25 =>
125
  array (
126
  'regex' => 'Opera Mobi',
127
  'family_replacement' => 'Opera Mobile',
128
  ),
129
- 26 =>
130
  array (
131
  'regex' => '(Opera Mini)(?:/att)?/(\\d+)\\.(\\d+)',
132
  ),
133
- 27 =>
134
  array (
135
  'regex' => '(Opera)/9.80.*Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
136
  ),
137
- 28 =>
138
  array (
139
  'regex' => '(?:Mobile Safari).*(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)',
140
  'family_replacement' => 'Opera Mobile',
141
  ),
142
- 29 =>
143
  array (
144
  'regex' => '(?:Chrome).*(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)',
145
  'family_replacement' => 'Opera',
146
  ),
147
- 30 =>
148
  array (
149
  'regex' => '(Coast)/(\\d+).(\\d+).(\\d+)',
150
  'family_replacement' => 'Opera Coast',
151
  ),
152
- 31 =>
153
  array (
154
  'regex' => '(OPiOS)/(\\d+).(\\d+).(\\d+)',
155
  'family_replacement' => 'Opera Mini',
156
  ),
157
- 32 =>
158
  array (
159
  'regex' => '(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
160
  'family_replacement' => 'webOS Browser',
161
  ),
162
- 33 =>
163
  array (
164
  'regex' => '(luakit)',
165
  'family_replacement' => 'LuaKit',
166
  ),
167
- 34 =>
168
  array (
169
  'regex' => '(Snowshoe)/(\\d+)\\.(\\d+).(\\d+)',
170
  ),
171
- 35 =>
172
  array (
173
  'regex' => '(Lightning)/(\\d+)\\.(\\d+)\\.?((?:[ab]?\\d+[a-z]*)|(?:\\d*))',
174
  ),
175
- 36 =>
176
  array (
177
  'regex' => '(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?) \\(Swiftfox\\)',
178
  'family_replacement' => 'Swiftfox',
179
  ),
180
- 37 =>
181
  array (
182
  'regex' => '(Firefox)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)? \\(Swiftfox\\)',
183
  'family_replacement' => 'Swiftfox',
184
  ),
185
- 38 =>
186
  array (
187
  'regex' => '(rekonq)/(\\d+)\\.(\\d+)\\.?(\\d+)? Safari',
188
  'family_replacement' => 'Rekonq',
189
  ),
190
- 39 =>
191
  array (
192
  'regex' => 'rekonq',
193
  'family_replacement' => 'Rekonq',
194
  ),
195
- 40 =>
196
  array (
197
  'regex' => '(conkeror|Conkeror)/(\\d+)\\.(\\d+)\\.?(\\d+)?',
198
  'family_replacement' => 'Conkeror',
199
  ),
200
- 41 =>
201
  array (
202
  'regex' => '(konqueror)/(\\d+)\\.(\\d+)\\.(\\d+)',
203
  'family_replacement' => 'Konqueror',
204
  ),
205
- 42 =>
206
  array (
207
  'regex' => '(WeTab)-Browser',
208
  ),
209
- 43 =>
210
  array (
211
  'regex' => '(Comodo_Dragon)/(\\d+)\\.(\\d+)\\.(\\d+)',
212
  'family_replacement' => 'Comodo Dragon',
213
  ),
214
- 44 =>
215
- array (
216
- 'regex' => '(YottaaMonitor|BrowserMob|HttpMonitor|YandexBot|Slurp|BingPreview|PagePeeker|ThumbShotsBot|WebThumb|URL2PNG|ZooShot|GomezA|Catchpoint bot|Willow Internet Crawler|Google SketchUp|Read%20Later)',
217
- ),
218
- 45 =>
219
  array (
220
  'regex' => '(Symphony) (\\d+).(\\d+)',
221
  ),
222
- 46 =>
223
  array (
224
  'regex' => '(Minimo)',
225
  ),
226
- 47 =>
227
  array (
228
  'regex' => 'PLAYSTATION 3.+WebKit',
229
  'family_replacement' => 'NetFront NX',
230
  ),
231
- 48 =>
232
  array (
233
  'regex' => 'PLAYSTATION 3',
234
  'family_replacement' => 'NetFront',
235
  ),
236
- 49 =>
237
  array (
238
  'regex' => '(PlayStation Portable)',
239
  'family_replacement' => 'NetFront',
240
  ),
241
- 50 =>
242
  array (
243
  'regex' => '(PlayStation Vita)',
244
  'family_replacement' => 'NetFront NX',
245
  ),
246
- 51 =>
247
  array (
248
  'regex' => 'AppleWebKit.+ (NX)/(\\d+)\\.(\\d+)\\.(\\d+)',
249
  'family_replacement' => 'NetFront NX',
250
  ),
251
- 52 =>
252
  array (
253
  'regex' => '(Nintendo 3DS)',
254
  'family_replacement' => 'NetFront NX',
255
  ),
256
- 53 =>
257
  array (
258
  'regex' => '(Silk)/(\\d+)\\.(\\d+)(?:\\.([0-9\\-]+))?',
259
  'family_replacement' => 'Amazon Silk',
260
  ),
261
- 54 =>
262
  array (
263
  'regex' => '(Puffin)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
264
  ),
265
- 55 =>
266
  array (
267
  'regex' => '(CrMo)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',
268
  'family_replacement' => 'Chrome Mobile',
269
  ),
270
- 56 =>
271
  array (
272
  'regex' => '(CriOS)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',
273
  'family_replacement' => 'Chrome Mobile iOS',
274
  ),
275
- 57 =>
276
  array (
277
  'regex' => '(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+) Mobile',
278
  'family_replacement' => 'Chrome Mobile',
279
  ),
280
- 58 =>
281
  array (
282
  'regex' => '(chromeframe)/(\\d+)\\.(\\d+)\\.(\\d+)',
283
  'family_replacement' => 'Chrome Frame',
284
  ),
285
- 59 =>
286
  array (
287
  'regex' => '(UCBrowser)[ /](\\d+)\\.(\\d+)\\.(\\d+)',
288
  'family_replacement' => 'UC Browser',
289
  ),
290
- 60 =>
291
  array (
292
  'regex' => '(UC Browser)[ /](\\d+)\\.(\\d+)\\.(\\d+)',
293
  ),
294
- 61 =>
295
  array (
296
  'regex' => '(UC Browser|UCBrowser|UCWEB)(\\d+)\\.(\\d+)\\.(\\d+)',
297
  'family_replacement' => 'UC Browser',
298
  ),
299
- 62 =>
300
  array (
301
  'regex' => '(SLP Browser)/(\\d+)\\.(\\d+)',
302
  'family_replacement' => 'Tizen Browser',
303
  ),
304
- 63 =>
305
  array (
306
  'regex' => '(SE 2\\.X) MetaSr (\\d+)\\.(\\d+)',
307
  'family_replacement' => 'Sogou Explorer',
308
  ),
309
- 64 =>
310
  array (
311
  'regex' => '(baidubrowser)[/\\s](\\d+)',
312
  'family_replacement' => 'Baidu Browser',
313
  ),
314
- 65 =>
315
  array (
316
  'regex' => '(FlyFlow)/(\\d+)\\.(\\d+)',
317
  'family_replacement' => 'Baidu Explorer',
318
  ),
319
- 66 =>
320
  array (
321
  'regex' => '(MQQBrowser/Mini)(?:(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?',
322
  'family_replacement' => 'QQ Browser Mini',
323
  ),
324
- 67 =>
325
  array (
326
  'regex' => '(MQQBrowser)(?:/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?',
327
  'family_replacement' => 'QQ Browser Mobile',
328
  ),
329
- 68 =>
330
  array (
331
  'regex' => '(QQBrowser)(?:/(\\d+)(?:\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?)?',
332
  'family_replacement' => 'QQ Browser',
333
  ),
334
- 69 =>
335
- array (
336
- 'regex' => '(Pingdom.com_bot_version_)(\\d+)\\.(\\d+)',
337
- 'family_replacement' => 'PingdomBot',
338
- ),
339
- 70 =>
340
- array (
341
- 'regex' => '(facebookexternalhit)/(\\d+)\\.(\\d+)',
342
- 'family_replacement' => 'FacebookBot',
343
- ),
344
- 71 =>
345
- array (
346
- 'regex' => '(LinkedInBot)/(\\d+)\\.(\\d+)',
347
- 'family_replacement' => 'LinkedInBot',
348
- ),
349
- 72 =>
350
- array (
351
- 'regex' => '(Twitterbot)/(\\d+)\\.(\\d+)',
352
- 'family_replacement' => 'TwitterBot',
353
- ),
354
- 73 =>
355
- array (
356
- 'regex' => 'Google.*/\\+/web/snippet',
357
- 'family_replacement' => 'GooglePlusBot',
358
- ),
359
- 74 =>
360
  array (
361
  'regex' => '(Rackspace Monitoring)/(\\d+)\\.(\\d+)',
362
  'family_replacement' => 'RackspaceBot',
363
  ),
364
- 75 =>
365
  array (
366
  'regex' => '(PyAMF)/(\\d+)\\.(\\d+)\\.(\\d+)',
367
  ),
368
- 76 =>
369
  array (
370
  'regex' => '(YaBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)',
371
  'family_replacement' => 'Yandex Browser',
372
  ),
373
- 77 =>
374
  array (
375
  'regex' => '(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+).* MRCHROME',
376
  'family_replacement' => 'Mail.ru Chromium Browser',
377
  ),
378
- 78 =>
379
  array (
380
  'regex' => '(AOL) (\\d+)\\.(\\d+); AOLBuild (\\d+)',
381
  ),
382
- 79 =>
383
  array (
384
  'regex' => '(AdobeAIR|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Epiphany|Shiira|Sunrise|Flock|Netscape|Lunascape|WebPilot|NetFront|Netfront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|ThunderBrowse|Iris|UP\\.Browser|Bunjalloo|Google Earth|Raven for Mac|Openwave)/(\\d+)\\.(\\d+)\\.(\\d+)',
385
  ),
386
- 80 =>
387
  array (
388
  'regex' => 'MSOffice 12',
389
  'family_replacement' => 'Outlook',
390
  'v1_replacement' => '2007',
391
  ),
392
- 81 =>
393
  array (
394
  'regex' => 'MSOffice 14',
395
  'family_replacement' => 'Outlook',
396
  'v1_replacement' => '2010',
397
  ),
398
- 82 =>
399
  array (
400
  'regex' => 'Microsoft Outlook 15\\.\\d+\\.\\d+',
401
  'family_replacement' => 'Outlook',
402
  'v1_replacement' => '2013',
403
  ),
404
- 83 =>
405
  array (
406
  'regex' => '(Airmail) (\\d+)\\.(\\d+)(?:\\.(\\d+))?',
407
  ),
408
- 84 =>
409
  array (
410
  'regex' => '(Thunderbird)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)',
411
  'family_replacement' => 'Thunderbird',
412
  ),
413
- 85 =>
 
 
 
 
414
  array (
415
  'regex' => '(Edge)/(\\d+)\\.(\\d+)',
416
- 'family_replacement' => 'IE',
417
  ),
418
- 86 =>
419
  array (
420
  'regex' => '(Chromium|Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)',
421
  ),
422
- 87 =>
423
  array (
424
  'regex' => '\\b(Dolphin)(?: |HDCN/|/INT\\-)(\\d+)\\.(\\d+)\\.?(\\d+)?',
425
  ),
426
- 88 =>
427
  array (
428
- 'regex' => '(bingbot|Bolt|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|NetFront|Netfront|Konqueror|Googlebot|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|NetNewsWire|Space Bison|Stainless|Orca|Dolfin|BOLT|Minimo|Tizen Browser|Polaris|Abrowser|Planetweb|ICE Browser|mDolphin)/(\\d+)\\.(\\d+)\\.?(\\d+)?',
429
  ),
430
- 89 =>
431
  array (
432
  'regex' => '(Chromium|Chrome)/(\\d+)\\.(\\d+)',
433
  ),
434
- 90 =>
435
  array (
436
  'regex' => '(IEMobile)[ /](\\d+)\\.(\\d+)',
437
  'family_replacement' => 'IE Mobile',
438
  ),
439
- 91 =>
440
  array (
441
  'regex' => '(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\\d+)\\.(\\d+)\\.(\\d+)',
442
  ),
443
- 92 =>
444
  array (
445
  'regex' => '(iCab|Lunascape|Opera|Android|Jasmine|Polaris) (\\d+)\\.(\\d+)\\.?(\\d+)?',
446
  ),
447
- 93 =>
448
  array (
449
  'regex' => '(Kindle)/(\\d+)\\.(\\d+)',
450
  ),
451
- 94 =>
452
  array (
453
  'regex' => '(Android) Donut',
454
  'v1_replacement' => '1',
455
  'v2_replacement' => '2',
456
  ),
457
- 95 =>
458
  array (
459
  'regex' => '(Android) Eclair',
460
  'v1_replacement' => '2',
461
  'v2_replacement' => '1',
462
  ),
463
- 96 =>
464
  array (
465
  'regex' => '(Android) Froyo',
466
  'v1_replacement' => '2',
467
  'v2_replacement' => '2',
468
  ),
469
- 97 =>
470
  array (
471
  'regex' => '(Android) Gingerbread',
472
  'v1_replacement' => '2',
473
  'v2_replacement' => '3',
474
  ),
475
- 98 =>
476
  array (
477
  'regex' => '(Android) Honeycomb',
478
  'v1_replacement' => '3',
479
  ),
480
- 99 =>
481
  array (
482
  'regex' => '(MSIE) (\\d+)\\.(\\d+).*XBLWP7',
483
  'family_replacement' => 'IE Large Screen',
484
  ),
485
- 100 =>
486
  array (
487
  'regex' => '(Obigo)InternetBrowser',
488
  ),
489
- 101 =>
490
  array (
491
  'regex' => '(Obigo)\\-Browser',
492
  ),
493
- 102 =>
494
  array (
495
  'regex' => '(Obigo|OBIGO)[^\\d]*(\\d+)(?:.(\\d+))?',
496
  'family_replacement' => 'Obigo',
497
  ),
498
- 103 =>
499
  array (
500
  'regex' => '(MAXTHON|Maxthon) (\\d+)\\.(\\d+)',
501
  'family_replacement' => 'Maxthon',
502
  ),
503
- 104 =>
504
  array (
505
  'regex' => '(Maxthon|MyIE2|Uzbl|Shiira)',
506
  'v1_replacement' => '0',
507
  ),
508
- 105 =>
509
  array (
510
  'regex' => '(BrowseX) \\((\\d+)\\.(\\d+)\\.(\\d+)',
511
  ),
512
- 106 =>
513
  array (
514
  'regex' => '(NCSA_Mosaic)/(\\d+)\\.(\\d+)',
515
  'family_replacement' => 'NCSA Mosaic',
516
  ),
517
- 107 =>
518
  array (
519
  'regex' => '(POLARIS)/(\\d+)\\.(\\d+)',
520
  'family_replacement' => 'Polaris',
521
  ),
522
- 108 =>
523
  array (
524
  'regex' => '(Embider)/(\\d+)\\.(\\d+)',
525
  'family_replacement' => 'Polaris',
526
  ),
527
- 109 =>
528
  array (
529
  'regex' => '(BonEcho)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+)?',
530
  'family_replacement' => 'Bon Echo',
531
  ),
532
- 110 =>
533
  array (
534
  'regex' => '(CFNetwork)(?:/(\\d+)\\.(\\d+)\\.?(\\d+)?)?',
535
  'family_replacement' => 'CFNetwork',
536
  ),
537
- 111 =>
538
  array (
539
  'regex' => '(iPod).+Version/(\\d+)\\.(\\d+)\\.(\\d+)',
540
  'family_replacement' => 'Mobile Safari',
541
  ),
542
- 112 =>
543
  array (
544
  'regex' => '(iPod).*Version/(\\d+)\\.(\\d+)',
545
  'family_replacement' => 'Mobile Safari',
546
  ),
547
- 113 =>
548
  array (
549
  'regex' => '(iPhone).*Version/(\\d+)\\.(\\d+)\\.(\\d+)',
550
  'family_replacement' => 'Mobile Safari',
551
  ),
552
- 114 =>
553
  array (
554
  'regex' => '(iPhone).*Version/(\\d+)\\.(\\d+)',
555
  'family_replacement' => 'Mobile Safari',
556
  ),
557
- 115 =>
558
  array (
559
  'regex' => '(iPad).*Version/(\\d+)\\.(\\d+)\\.(\\d+)',
560
  'family_replacement' => 'Mobile Safari',
561
  ),
562
- 116 =>
563
  array (
564
  'regex' => '(iPad).*Version/(\\d+)\\.(\\d+)',
565
  'family_replacement' => 'Mobile Safari',
566
  ),
567
- 117 =>
568
  array (
569
  'regex' => '(iPod|iPhone|iPad);.*CPU.*OS (\\d+)_(\\d+)(?:_(\\d+))?.*Mobile',
570
  'family_replacement' => 'Mobile Safari',
571
  ),
572
- 118 =>
573
  array (
574
  'regex' => '(iPod|iPhone|iPad)',
575
  'family_replacement' => 'Mobile Safari',
576
  ),
577
- 119 =>
578
  array (
579
  'regex' => '(AvantGo) (\\d+).(\\d+)',
580
  ),
581
- 120 =>
582
  array (
583
  'regex' => '(OneBrowser)/(\\d+).(\\d+)',
584
  'family_replacement' => 'ONE Browser',
585
  ),
586
- 121 =>
587
  array (
588
  'regex' => '(Avant)',
589
  'v1_replacement' => '1',
590
  ),
591
- 122 =>
592
  array (
593
  'regex' => '(QtCarBrowser)',
594
  'v1_replacement' => '1',
595
  ),
596
- 123 =>
597
  array (
598
  'regex' => '^(iBrowser/Mini)(\\d+).(\\d+)',
599
  'family_replacement' => 'iBrowser Mini',
600
  ),
601
- 124 =>
602
  array (
603
  'regex' => '^(iBrowser|iRAPP)/(\\d+).(\\d+)',
604
  ),
605
- 125 =>
606
  array (
607
  'regex' => '^(Nokia)',
608
  'family_replacement' => 'Nokia Services (WAP) Browser',
609
  ),
610
- 126 =>
611
  array (
612
  'regex' => '(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)\\.(\\d+)',
613
  'family_replacement' => 'Nokia Browser',
614
  ),
615
- 127 =>
616
  array (
617
  'regex' => '(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)',
618
  'family_replacement' => 'Nokia Browser',
619
  ),
620
- 128 =>
621
  array (
622
  'regex' => '(NokiaBrowser)/(\\d+)\\.(\\d+)',
623
  'family_replacement' => 'Nokia Browser',
624
  ),
625
- 129 =>
626
  array (
627
  'regex' => '(BrowserNG)/(\\d+)\\.(\\d+).(\\d+)',
628
  'family_replacement' => 'Nokia Browser',
629
  ),
630
- 130 =>
631
  array (
632
  'regex' => '(Series60)/5\\.0',
633
  'family_replacement' => 'Nokia Browser',
634
  'v1_replacement' => '7',
635
  'v2_replacement' => '0',
636
  ),
637
- 131 =>
638
  array (
639
  'regex' => '(Series60)/(\\d+)\\.(\\d+)',
640
  'family_replacement' => 'Nokia OSS Browser',
641
  ),
642
- 132 =>
643
  array (
644
  'regex' => '(S40OviBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',
645
  'family_replacement' => 'Ovi Browser',
646
  ),
647
- 133 =>
648
  array (
649
  'regex' => '(Nokia)[EN]?(\\d+)',
650
  ),
651
- 134 =>
652
  array (
653
  'regex' => '(BB10);',
654
  'family_replacement' => 'BlackBerry WebKit',
655
  ),
656
- 135 =>
657
  array (
658
  'regex' => '(PlayBook).+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)',
659
  'family_replacement' => 'BlackBerry WebKit',
660
  ),
661
- 136 =>
662
  array (
663
  'regex' => '(Black[bB]erry).+Version/(\\d+)\\.(\\d+)\\.(\\d+)',
664
  'family_replacement' => 'BlackBerry WebKit',
665
  ),
666
- 137 =>
667
  array (
668
  'regex' => '(Black[bB]erry)\\s?(\\d+)',
669
  'family_replacement' => 'BlackBerry',
670
  ),
671
- 138 =>
672
  array (
673
  'regex' => '(OmniWeb)/v(\\d+)\\.(\\d+)',
674
  ),
675
- 139 =>
676
  array (
677
  'regex' => '(Blazer)/(\\d+)\\.(\\d+)',
678
  'family_replacement' => 'Palm Blazer',
679
  ),
680
- 140 =>
681
  array (
682
  'regex' => '(Pre)/(\\d+)\\.(\\d+)',
683
  'family_replacement' => 'Palm Pre',
684
  ),
685
- 141 =>
686
  array (
687
  'regex' => '(ELinks)/(\\d+)\\.(\\d+)',
688
  ),
689
- 142 =>
690
  array (
691
  'regex' => '(ELinks) \\((\\d+)\\.(\\d+)',
692
  ),
693
- 143 =>
694
  array (
695
  'regex' => '(Links) \\((\\d+)\\.(\\d+)',
696
  ),
697
- 144 =>
698
  array (
699
  'regex' => '(QtWeb) Internet Browser/(\\d+)\\.(\\d+)',
700
  ),
701
- 145 =>
702
  array (
703
  'regex' => '(PhantomJS)/(\\d+)\\.(\\d+)\\.(\\d+)',
704
  ),
705
- 146 =>
706
  array (
707
  'regex' => '(AppleWebKit)/(\\d+)\\.?(\\d+)?\\+ .* Safari',
708
  'family_replacement' => 'WebKit Nightly',
709
  ),
710
- 147 =>
711
  array (
712
  'regex' => '(Version)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*Safari/',
713
  'family_replacement' => 'Safari',
714
  ),
715
- 148 =>
716
  array (
717
  'regex' => '(Safari)/\\d+',
718
  ),
719
- 149 =>
720
  array (
721
  'regex' => '(OLPC)/Update(\\d+)\\.(\\d+)',
722
  ),
723
- 150 =>
724
  array (
725
  'regex' => '(OLPC)/Update()\\.(\\d+)',
726
  'v1_replacement' => '0',
727
  ),
728
- 151 =>
729
  array (
730
  'regex' => '(SEMC\\-Browser)/(\\d+)\\.(\\d+)',
731
  ),
732
- 152 =>
733
  array (
734
  'regex' => '(Teleca)',
735
  'family_replacement' => 'Teleca Browser',
736
  ),
737
- 153 =>
738
  array (
739
  'regex' => '(Phantom)/V(\\d+)\\.(\\d+)',
740
  'family_replacement' => 'Phantom Browser',
741
  ),
742
- 154 =>
743
  array (
744
  'regex' => 'Trident(.*)rv.(\\d+)\\.(\\d+)',
745
  'family_replacement' => 'IE',
746
  ),
747
- 155 =>
748
  array (
749
  'regex' => '(Espial)/(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?',
750
  ),
751
- 156 =>
752
  array (
753
  'regex' => '(AppleWebKit)/(\\d+)\\.(\\d+)\\.(\\d+)',
754
  'family_replacement' => 'AppleMail',
755
  ),
756
- 157 =>
757
  array (
758
  'regex' => '(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+)',
759
  ),
760
- 158 =>
761
  array (
762
  'regex' => '(Firefox)/(\\d+)\\.(\\d+)(pre|[ab]\\d+[a-z]*)?',
763
  ),
764
- 159 =>
765
  array (
766
  'regex' => '([MS]?IE) (\\d+)\\.(\\d+)',
767
  'family_replacement' => 'IE',
768
  ),
769
- 160 =>
770
  array (
771
  'regex' => '(python-requests)/(\\d+)\\.(\\d+)',
772
  'family_replacement' => 'Python Requests',
773
  ),
 
 
 
 
774
  ),
775
  'os_parsers' =>
776
  array (
@@ -941,366 +967,390 @@ return array (
941
  'os_replacement' => 'Windows 8.1',
942
  ),
943
  33 =>
 
 
 
 
 
 
 
 
 
 
944
  array (
945
  'regex' => '(Windows NT 5\\.0)',
946
  'os_replacement' => 'Windows 2000',
947
  ),
948
- 34 =>
949
  array (
950
  'regex' => '(WinNT4.0)',
951
  'os_replacement' => 'Windows NT 4.0',
952
  ),
953
- 35 =>
954
  array (
955
  'regex' => '(Windows ?CE)',
956
  'os_replacement' => 'Windows CE',
957
  ),
958
- 36 =>
959
  array (
960
  'regex' => 'Win ?(95|98|3.1|NT|ME|2000)',
961
  'os_replacement' => 'Windows $1',
962
  ),
963
- 37 =>
964
  array (
965
  'regex' => 'Win16',
966
  'os_replacement' => 'Windows 3.1',
967
  ),
968
- 38 =>
969
  array (
970
  'regex' => 'Win32',
971
  'os_replacement' => 'Windows 95',
972
  ),
973
- 39 =>
974
  array (
975
  'regex' => '(Tizen)/(\\d+)\\.(\\d+)',
976
  ),
977
- 40 =>
978
  array (
979
- 'regex' => '(Mac OS X) (\\d+)[_.](\\d+)(?:[_.](\\d+))?',
 
980
  ),
981
- 41 =>
982
  array (
983
  'regex' => ' (Dar)(win)/(9).(\\d+).*\\((?:i386|x86_64|Power Macintosh)\\)',
984
  'os_replacement' => 'Mac OS X',
985
  'os_v1_replacement' => '10',
986
  'os_v2_replacement' => '5',
987
  ),
988
- 42 =>
989
  array (
990
  'regex' => ' (Dar)(win)/(10).(\\d+).*\\((?:i386|x86_64)\\)',
991
  'os_replacement' => 'Mac OS X',
992
  'os_v1_replacement' => '10',
993
  'os_v2_replacement' => '6',
994
  ),
995
- 43 =>
996
  array (
997
  'regex' => ' (Dar)(win)/(11).(\\d+).*\\((?:i386|x86_64)\\)',
998
  'os_replacement' => 'Mac OS X',
999
  'os_v1_replacement' => '10',
1000
  'os_v2_replacement' => '7',
1001
  ),
1002
- 44 =>
1003
  array (
1004
  'regex' => ' (Dar)(win)/(12).(\\d+).*\\((?:i386|x86_64)\\)',
1005
  'os_replacement' => 'Mac OS X',
1006
  'os_v1_replacement' => '10',
1007
  'os_v2_replacement' => '8',
1008
  ),
1009
- 45 =>
1010
  array (
1011
  'regex' => ' (Dar)(win)/(13).(\\d+).*\\((?:i386|x86_64)\\)',
1012
  'os_replacement' => 'Mac OS X',
1013
  'os_v1_replacement' => '10',
1014
  'os_v2_replacement' => '9',
1015
  ),
1016
- 46 =>
1017
  array (
1018
  'regex' => 'Mac_PowerPC',
1019
  'os_replacement' => 'Mac OS',
1020
  ),
1021
- 47 =>
1022
  array (
1023
  'regex' => '(?:PPC|Intel) (Mac OS X)',
1024
  ),
1025
- 48 =>
 
 
 
 
 
1026
  array (
1027
  'regex' => '(CPU OS|iPhone OS|CPU iPhone) +(\\d+)[_\\.](\\d+)(?:[_\\.](\\d+))?',
1028
  'os_replacement' => 'iOS',
1029
  ),
1030
- 49 =>
1031
  array (
1032
  'regex' => '(iPhone|iPad|iPod); Opera',
1033
  'os_replacement' => 'iOS',
1034
  ),
1035
- 50 =>
1036
  array (
1037
  'regex' => '(iPhone|iPad|iPod).*Mac OS X.*Version/(\\d+)\\.(\\d+)',
1038
  'os_replacement' => 'iOS',
1039
  ),
1040
- 51 =>
1041
- array (
1042
- 'regex' => '(AppleTV)/(\\d+)\\.(\\d+)',
1043
- 'os_replacement' => 'ATV OS X',
1044
- ),
1045
- 52 =>
1046
  array (
1047
  'regex' => '(CFNetwork)/(5)48\\.0\\.3.* Darwin/11\\.0\\.0',
1048
  'os_replacement' => 'iOS',
1049
  ),
1050
- 53 =>
1051
  array (
1052
  'regex' => '(CFNetwork)/(5)48\\.(0)\\.4.* Darwin/(1)1\\.0\\.0',
1053
  'os_replacement' => 'iOS',
1054
  ),
1055
- 54 =>
1056
  array (
1057
  'regex' => '(CFNetwork)/(5)48\\.(1)\\.4',
1058
  'os_replacement' => 'iOS',
1059
  ),
1060
- 55 =>
1061
  array (
1062
  'regex' => '(CFNetwork)/(4)85\\.1(3)\\.9',
1063
  'os_replacement' => 'iOS',
1064
  ),
1065
- 56 =>
1066
  array (
1067
  'regex' => '(CFNetwork)/(6)09\\.(1)\\.4',
1068
  'os_replacement' => 'iOS',
1069
  ),
1070
- 57 =>
1071
  array (
1072
  'regex' => '(CFNetwork)/(6)(0)9',
1073
  'os_replacement' => 'iOS',
1074
  ),
1075
- 58 =>
1076
  array (
1077
  'regex' => '(CFNetwork)/6(7)2\\.(1)\\.13',
1078
  'os_replacement' => 'iOS',
1079
  ),
1080
- 59 =>
1081
  array (
1082
  'regex' => '(CFNetwork)/6(7)2\\.(1)\\.(1)4',
1083
  'os_replacement' => 'iOS',
1084
  ),
1085
- 60 =>
1086
  array (
1087
  'regex' => '(CF)(Network)/6(7)(2)\\.1\\.15',
1088
  'os_replacement' => 'iOS',
1089
  'os_v1_replacement' => '7',
1090
  'os_v2_replacement' => '1',
1091
  ),
1092
- 61 =>
1093
  array (
1094
  'regex' => '(CFNetwork)/6(7)2\\.(0)\\.(?:2|8)',
1095
  'os_replacement' => 'iOS',
1096
  ),
1097
- 62 =>
1098
  array (
1099
  'regex' => '(CFNetwork)/709\\.1',
1100
  'os_replacement' => 'iOS',
1101
  'os_v1_replacement' => '8',
1102
  'os_v2_replacement' => '0.b5',
1103
  ),
1104
- 63 =>
 
 
 
 
 
 
 
 
 
 
 
 
 
1105
  array (
1106
  'regex' => 'CFNetwork/.* Darwin/(9)\\.\\d+',
1107
  'os_replacement' => 'iOS',
1108
  'os_v1_replacement' => '1',
1109
  ),
1110
- 64 =>
1111
  array (
1112
  'regex' => 'CFNetwork/.* Darwin/(10)\\.\\d+',
1113
  'os_replacement' => 'iOS',
1114
  'os_v1_replacement' => '4',
1115
  ),
1116
- 65 =>
1117
  array (
1118
  'regex' => 'CFNetwork/.* Darwin/(11)\\.\\d+',
1119
  'os_replacement' => 'iOS',
1120
  'os_v1_replacement' => '5',
1121
  ),
1122
- 66 =>
1123
  array (
1124
  'regex' => 'CFNetwork/.* Darwin/(13)\\.\\d+',
1125
  'os_replacement' => 'iOS',
1126
  'os_v1_replacement' => '6',
1127
  ),
1128
- 67 =>
1129
  array (
1130
  'regex' => 'CFNetwork/6.* Darwin/(14)\\.\\d+',
1131
  'os_replacement' => 'iOS',
1132
  'os_v1_replacement' => '7',
1133
  ),
1134
- 68 =>
1135
  array (
1136
  'regex' => 'CFNetwork/7.* Darwin/(14)\\.\\d+',
1137
  'os_replacement' => 'iOS',
1138
  'os_v1_replacement' => '8',
1139
  'os_v2_replacement' => '0',
1140
  ),
1141
- 69 =>
1142
  array (
1143
  'regex' => '\\b(iOS[ /]|iPhone(?:/| v|[ _]OS[/,]|; | OS : |\\d,\\d/|\\d,\\d; )|iPad/)(\\d{1,2})[_\\.](\\d{1,2})(?:[_\\.](\\d+))?',
1144
  'os_replacement' => 'iOS',
1145
  ),
1146
- 70 =>
1147
  array (
1148
  'regex' => '(CrOS) [a-z0-9_]+ (\\d+)\\.(\\d+)(?:\\.(\\d+))?',
1149
  'os_replacement' => 'Chrome OS',
1150
  ),
1151
- 71 =>
1152
  array (
1153
  'regex' => '([Dd]ebian)',
1154
  'os_replacement' => 'Debian',
1155
  ),
1156
- 72 =>
1157
  array (
1158
  'regex' => '(Linux Mint)(?:/(\\d+))?',
1159
  ),
1160
- 73 =>
1161
  array (
1162
  'regex' => '(Mandriva)(?: Linux)?/(?:[\\d.-]+m[a-z]{2}(\\d+).(\\d))?',
1163
  ),
1164
- 74 =>
1165
  array (
1166
  'regex' => '(Symbian[Oo][Ss])[/ ](\\d+)\\.(\\d+)',
1167
  'os_replacement' => 'Symbian OS',
1168
  ),
1169
- 75 =>
1170
  array (
1171
  'regex' => '(Symbian/3).+NokiaBrowser/7\\.3',
1172
  'os_replacement' => 'Symbian^3 Anna',
1173
  ),
1174
- 76 =>
1175
  array (
1176
  'regex' => '(Symbian/3).+NokiaBrowser/7\\.4',
1177
  'os_replacement' => 'Symbian^3 Belle',
1178
  ),
1179
- 77 =>
1180
  array (
1181
  'regex' => '(Symbian/3)',
1182
  'os_replacement' => 'Symbian^3',
1183
  ),
1184
- 78 =>
1185
  array (
1186
  'regex' => '\\b(Series 60|SymbOS|S60Version|S60V\\d|S60\\b)',
1187
  'os_replacement' => 'Symbian OS',
1188
  ),
1189
- 79 =>
1190
  array (
1191
  'regex' => '(MeeGo)',
1192
  ),
1193
- 80 =>
1194
  array (
1195
  'regex' => 'Symbian [Oo][Ss]',
1196
  'os_replacement' => 'Symbian OS',
1197
  ),
1198
- 81 =>
1199
  array (
1200
  'regex' => 'Series40;',
1201
  'os_replacement' => 'Nokia Series 40',
1202
  ),
1203
- 82 =>
1204
  array (
1205
  'regex' => 'Series30Plus;',
1206
  'os_replacement' => 'Nokia Series 30 Plus',
1207
  ),
1208
- 83 =>
1209
  array (
1210
  'regex' => '(BB10);.+Version/(\\d+)\\.(\\d+)\\.(\\d+)',
1211
  'os_replacement' => 'BlackBerry OS',
1212
  ),
1213
- 84 =>
1214
  array (
1215
  'regex' => '(Black[Bb]erry)[0-9a-z]+/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
1216
  'os_replacement' => 'BlackBerry OS',
1217
  ),
1218
- 85 =>
1219
  array (
1220
  'regex' => '(Black[Bb]erry).+Version/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
1221
  'os_replacement' => 'BlackBerry OS',
1222
  ),
1223
- 86 =>
1224
  array (
1225
  'regex' => '(RIM Tablet OS) (\\d+)\\.(\\d+)\\.(\\d+)',
1226
  'os_replacement' => 'BlackBerry Tablet OS',
1227
  ),
1228
- 87 =>
1229
  array (
1230
  'regex' => '(Play[Bb]ook)',
1231
  'os_replacement' => 'BlackBerry Tablet OS',
1232
  ),
1233
- 88 =>
1234
  array (
1235
  'regex' => '(Black[Bb]erry)',
1236
  'os_replacement' => 'BlackBerry OS',
1237
  ),
1238
- 89 =>
1239
  array (
1240
  'regex' => '\\((?:Mobile|Tablet);.+Firefox/\\d+\\.\\d+',
1241
  'os_replacement' => 'Firefox OS',
1242
  ),
1243
- 90 =>
1244
  array (
1245
  'regex' => '(BREW)[ /](\\d+)\\.(\\d+)\\.(\\d+)',
1246
  ),
1247
- 91 =>
1248
  array (
1249
  'regex' => '(BREW);',
1250
  ),
1251
- 92 =>
1252
  array (
1253
  'regex' => '(Brew MP|BMP)[ /](\\d+)\\.(\\d+)\\.(\\d+)',
1254
  'os_replacement' => 'Brew MP',
1255
  ),
1256
- 93 =>
1257
  array (
1258
  'regex' => 'BMP;',
1259
  'os_replacement' => 'Brew MP',
1260
  ),
1261
- 94 =>
1262
  array (
1263
  'regex' => '(GoogleTV)(?: (\\d+)\\.(\\d+)(?:\\.(\\d+))?|/[\\da-z]+)',
1264
  ),
1265
- 95 =>
1266
  array (
1267
  'regex' => '(WebTV)/(\\d+).(\\d+)',
1268
  ),
1269
- 96 =>
1270
  array (
1271
  'regex' => '(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
1272
  'os_replacement' => 'webOS',
1273
  ),
1274
- 97 =>
1275
  array (
1276
  'regex' => '(VRE);',
1277
  ),
1278
- 98 =>
1279
  array (
1280
  'regex' => '(Fedora|Red Hat|PCLinuxOS|Puppy|Ubuntu|Kindle|Bada|Lubuntu|BackTrack|Slackware|(?:Free|Open|Net|\\b)BSD)[/ ](\\d+)\\.(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?',
1281
  ),
1282
- 99 =>
1283
  array (
1284
  'regex' => '(Linux)[ /](\\d+)\\.(\\d+)(?:\\.(\\d+))?.*gentoo',
1285
  'os_replacement' => 'Gentoo',
1286
  ),
1287
- 100 =>
1288
  array (
1289
  'regex' => '\\((Bada);',
1290
  ),
1291
- 101 =>
1292
  array (
1293
  'regex' => '(Windows|Android|WeTab|Maemo)',
1294
  ),
1295
- 102 =>
1296
  array (
1297
  'regex' => '(Ubuntu|Kubuntu|Arch Linux|CentOS|Slackware|Gentoo|openSUSE|SUSE|Red Hat|Fedora|PCLinuxOS|Gentoo|Mageia|(?:Free|Open|Net|\\b)BSD)',
1298
  ),
1299
- 103 =>
1300
  array (
1301
  'regex' => '(Linux)(?:[ /](\\d+)\\.(\\d+)(?:\\.(\\d+))?)?',
1302
  ),
1303
- 104 =>
1304
  array (
1305
  'regex' => 'SunOS',
1306
  'os_replacement' => 'Solaris',
@@ -1931,7 +1981,7 @@ return array (
1931
  ),
1932
  87 =>
1933
  array (
1934
- 'regex' => '; *BOBBY Build',
1935
  'regex_flag' => 'i',
1936
  'device_replacement' => '$1',
1937
  'brand_replacement' => 'Cubot',
@@ -2108,9 +2158,9 @@ return array (
2108
  112 =>
2109
  array (
2110
  'regex' => '; *(Enot|ENOT)[ -]?([^;/]+) Build',
2111
- 'device_replacement' => '$1 $2$3',
2112
  'brand_replacement' => 'Enot',
2113
- 'model_replacement' => '$2$3',
2114
  ),
2115
  113 =>
2116
  array (
@@ -3554,9 +3604,9 @@ return array (
3554
  314 =>
3555
  array (
3556
  'regex' => '; *(?:Prestigio )?((?:PAP|PMP)\\d[^;/]+) Build/',
3557
- 'device_replacement' => 'Prestigio $1 $2',
3558
  'brand_replacement' => 'Prestigio',
3559
- 'model_replacement' => '$1 $2',
3560
  ),
3561
  315 =>
3562
  array (
@@ -4781,10 +4831,10 @@ return array (
4781
  ),
4782
  488 =>
4783
  array (
4784
- 'regex' => '(AppleTV)',
4785
  'device_replacement' => 'AppleTV',
4786
  'brand_replacement' => 'Apple',
4787
- 'model_replacement' => '$1',
4788
  ),
4789
  489 =>
4790
  array (
@@ -4969,184 +5019,191 @@ return array (
4969
  'model_replacement' => '$3',
4970
  ),
4971
  515 =>
 
 
 
 
 
 
 
4972
  array (
4973
  'regex' => '(HbbTV)(?:/1\\.1\\.1)?(?: ?\\(;;;;;\\))?; *CE-HTML(?:/1\\.\\d)?; *([^ ]+) ([^;]+);',
4974
  'device_replacement' => '$1',
4975
  'brand_replacement' => '$2',
4976
  'model_replacement' => '$3',
4977
  ),
4978
- 516 =>
4979
  array (
4980
  'regex' => '(HbbTV)/1\\.1\\.1 \\(;;;;;\\) Maple_2011',
4981
  'device_replacement' => '$1',
4982
  'brand_replacement' => 'Samsung',
4983
  ),
4984
- 517 =>
4985
  array (
4986
  'regex' => '(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+ \\([^;]*; *(?:CUS:([^;]*)|([^;]+)) *; *([^;]*) *;.*;',
4987
  'device_replacement' => '$1',
4988
  'brand_replacement' => '$2$3',
4989
  'model_replacement' => '$4',
4990
  ),
4991
- 518 =>
4992
  array (
4993
  'regex' => '(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+',
4994
  'device_replacement' => '$1',
4995
  ),
4996
- 519 =>
4997
  array (
4998
  'regex' => 'LGE; (?:Media\\/)?([^;]*);[^;]*;[^;]*;?\\); "?LG NetCast(\\.TV|\\.Media|)-\\d+',
4999
  'device_replacement' => 'NetCast$2',
5000
  'brand_replacement' => 'LG',
5001
  'model_replacement' => '$1',
5002
  ),
5003
- 520 =>
5004
  array (
5005
  'regex' => 'InettvBrowser/[0-9]+\\.[0-9A-Z]+ \\([^;]*;(Sony)([^;]*);[^;]*;[^\\)]*\\)',
5006
  'device_replacement' => 'Inettv',
5007
  'brand_replacement' => '$1',
5008
  'model_replacement' => '$2',
5009
  ),
5010
- 521 =>
5011
  array (
5012
  'regex' => 'InettvBrowser/[0-9]+\\.[0-9A-Z]+ \\([^;]*;([^;]*);[^;]*;[^\\)]*\\)',
5013
  'device_replacement' => 'Inettv',
5014
  'brand_replacement' => 'Generic_Inettv',
5015
  'model_replacement' => '$1',
5016
  ),
5017
- 522 =>
5018
  array (
5019
  'regex' => '(?:InettvBrowser|TSBNetTV|NETTV|HBBTV)',
5020
  'device_replacement' => 'Inettv',
5021
  'brand_replacement' => 'Generic_Inettv',
5022
  ),
5023
- 523 =>
5024
  array (
5025
  'regex' => 'Series60/\\d\\.\\d (LG)[\\-]?([A-Za-z0-9 \\-]+)',
5026
  'device_replacement' => '$1 $2',
5027
  'brand_replacement' => '$1',
5028
  'model_replacement' => '$2',
5029
  ),
5030
- 524 =>
5031
  array (
5032
  'regex' => '\\b(?:LGE[ \\-]LG\\-(?:AX)?|LGE |LGE?-LG|LGE?[ \\-]|LG[ /\\-]|lg[\\-])([A-Za-z0-9]+)\\b',
5033
  'device_replacement' => 'LG $1',
5034
  'brand_replacement' => 'LG',
5035
  'model_replacement' => '$1',
5036
  ),
5037
- 525 =>
5038
  array (
5039
  'regex' => '(?:^LG[\\-]?|^LGE[\\-/]?)([A-Za-z]+[0-9]+[A-Za-z]*)',
5040
  'device_replacement' => 'LG $1',
5041
  'brand_replacement' => 'LG',
5042
  'model_replacement' => '$1',
5043
  ),
5044
- 526 =>
5045
  array (
5046
  'regex' => '^LG([0-9]+[A-Za-z]*)',
5047
  'device_replacement' => 'LG $1',
5048
  'brand_replacement' => 'LG',
5049
  'model_replacement' => '$1',
5050
  ),
5051
- 527 =>
5052
  array (
5053
  'regex' => '(KIN\\.[^ ]+) (\\d+)\\.(\\d+)',
5054
  'device_replacement' => 'Microsoft $1',
5055
  'brand_replacement' => 'Microsoft',
5056
  'model_replacement' => '$1',
5057
  ),
5058
- 528 =>
5059
  array (
5060
  'regex' => '(?:MSIE|XBMC).*\\b(Xbox)\\b',
5061
  'device_replacement' => '$1',
5062
  'brand_replacement' => 'Microsoft',
5063
  'model_replacement' => '$1',
5064
  ),
5065
- 529 =>
5066
  array (
5067
  'regex' => '; ARM; Trident/6\\.0; Touch[\\);]',
5068
  'device_replacement' => 'Microsoft Surface RT',
5069
  'brand_replacement' => 'Microsoft',
5070
  'model_replacement' => 'Surface RT',
5071
  ),
5072
- 530 =>
5073
  array (
5074
  'regex' => 'Motorola\\-([A-Za-z0-9]+)',
5075
  'device_replacement' => 'Motorola $1',
5076
  'brand_replacement' => 'Motorola',
5077
  'model_replacement' => '$1',
5078
  ),
5079
- 531 =>
5080
  array (
5081
  'regex' => 'MOTO\\-([A-Za-z0-9]+)',
5082
  'device_replacement' => 'Motorola $1',
5083
  'brand_replacement' => 'Motorola',
5084
  'model_replacement' => '$1',
5085
  ),
5086
- 532 =>
5087
  array (
5088
  'regex' => 'MOT\\-([A-z0-9][A-z0-9\\-]*)',
5089
  'device_replacement' => 'Motorola $1',
5090
  'brand_replacement' => 'Motorola',
5091
  'model_replacement' => '$1',
5092
  ),
5093
- 533 =>
5094
  array (
5095
  'regex' => 'Nintendo WiiU',
5096
  'device_replacement' => 'Nintendo Wii U',
5097
  'brand_replacement' => 'Nintendo',
5098
  'model_replacement' => 'Wii U',
5099
  ),
5100
- 534 =>
5101
  array (
5102
  'regex' => 'Nintendo (DS|3DS|DSi|Wii);',
5103
  'device_replacement' => 'Nintendo $1',
5104
  'brand_replacement' => 'Nintendo',
5105
  'model_replacement' => '$1',
5106
  ),
5107
- 535 =>
5108
  array (
5109
  'regex' => '(?:Pantech|PANTECH)[ _-]?([A-Za-z0-9\\-]+)',
5110
  'device_replacement' => 'Pantech $1',
5111
  'brand_replacement' => 'Pantech',
5112
  'model_replacement' => '$1',
5113
  ),
5114
- 536 =>
5115
  array (
5116
  'regex' => 'Philips([A-Za-z0-9]+)',
5117
  'device_replacement' => 'Philips $1',
5118
  'brand_replacement' => 'Philips',
5119
  'model_replacement' => '$1',
5120
  ),
5121
- 537 =>
5122
  array (
5123
  'regex' => 'Philips ([A-Za-z0-9]+)',
5124
  'device_replacement' => 'Philips $1',
5125
  'brand_replacement' => 'Philips',
5126
  'model_replacement' => '$1',
5127
  ),
5128
- 538 =>
5129
  array (
5130
  'regex' => 'SymbianOS/9\\.\\d.* Samsung[/\\-]([A-Za-z0-9 \\-]+)',
5131
  'device_replacement' => 'Samsung $1',
5132
  'brand_replacement' => 'Samsung',
5133
  'model_replacement' => '$1',
5134
  ),
5135
- 539 =>
5136
  array (
5137
  'regex' => '(Samsung)(SGH)(i[0-9]+)',
5138
  'device_replacement' => '$1 $2$3',
5139
  'brand_replacement' => '$1',
5140
  'model_replacement' => '$2-$3',
5141
  ),
5142
- 540 =>
5143
  array (
5144
  'regex' => 'SAMSUNG-ANDROID-MMS/([^;/]+)',
5145
  'device_replacement' => '$1',
5146
  'brand_replacement' => 'Samsung',
5147
  'model_replacement' => '$1',
5148
  ),
5149
- 541 =>
5150
  array (
5151
  'regex' => 'SAMSUNG(?:; |[ -/])([A-Za-z0-9\\-]+)',
5152
  'regex_flag' => 'i',
@@ -5154,131 +5211,131 @@ return array (
5154
  'brand_replacement' => 'Samsung',
5155
  'model_replacement' => '$1',
5156
  ),
5157
- 542 =>
5158
  array (
5159
  'regex' => '(Dreamcast)',
5160
  'device_replacement' => 'Sega $1',
5161
  'brand_replacement' => 'Sega',
5162
  'model_replacement' => '$1',
5163
  ),
5164
- 543 =>
5165
  array (
5166
  'regex' => '^SIE-([A-Za-z0-9]+)',
5167
  'device_replacement' => 'Siemens $1',
5168
  'brand_replacement' => 'Siemens',
5169
  'model_replacement' => '$1',
5170
  ),
5171
- 544 =>
5172
  array (
5173
  'regex' => 'Softbank/[12]\\.0/([A-Za-z0-9]+)',
5174
  'device_replacement' => 'Softbank $1',
5175
  'brand_replacement' => 'Softbank',
5176
  'model_replacement' => '$1',
5177
  ),
5178
- 545 =>
5179
  array (
5180
  'regex' => 'SonyEricsson ?([A-Za-z0-9\\-]+)',
5181
  'device_replacement' => 'Ericsson $1',
5182
  'brand_replacement' => 'SonyEricsson',
5183
  'model_replacement' => '$1',
5184
  ),
5185
- 546 =>
5186
  array (
5187
  'regex' => 'Android [^;]+; ([^ ]+) (Sony)/',
5188
  'device_replacement' => '$2 $1',
5189
  'brand_replacement' => '$2',
5190
  'model_replacement' => '$1',
5191
  ),
5192
- 547 =>
5193
  array (
5194
  'regex' => '(Sony)(?:BDP\\/|\\/)?([^ /;\\)]+)[ /;\\)]',
5195
  'device_replacement' => '$1 $2',
5196
  'brand_replacement' => '$1',
5197
  'model_replacement' => '$2',
5198
  ),
5199
- 548 =>
5200
  array (
5201
  'regex' => 'Puffin/[\\d\\.]+IT',
5202
  'device_replacement' => 'iPad',
5203
  'brand_replacement' => 'Apple',
5204
  'model_replacement' => 'iPad',
5205
  ),
5206
- 549 =>
5207
  array (
5208
  'regex' => 'Puffin/[\\d\\.]+IP',
5209
  'device_replacement' => 'iPhone',
5210
  'brand_replacement' => 'Apple',
5211
  'model_replacement' => 'iPhone',
5212
  ),
5213
- 550 =>
5214
  array (
5215
  'regex' => 'Puffin/[\\d\\.]+AT',
5216
  'device_replacement' => 'Generic Tablet',
5217
  'brand_replacement' => 'Generic',
5218
  'model_replacement' => 'Tablet',
5219
  ),
5220
- 551 =>
5221
  array (
5222
  'regex' => 'Puffin/[\\d\\.]+AP',
5223
  'device_replacement' => 'Generic Smartphone',
5224
  'brand_replacement' => 'Generic',
5225
  'model_replacement' => 'Smartphone',
5226
  ),
5227
- 552 =>
5228
  array (
5229
  'regex' => 'Android[\\- ][\\d]+\\.[\\d]+; [A-Za-z]{2}\\-[A-Za-z]{0,2}; WOWMobile (.+) Build',
5230
  'brand_replacement' => 'Generic_Android',
5231
  'model_replacement' => '$1',
5232
  ),
5233
- 553 =>
5234
  array (
5235
  'regex' => 'Android[\\- ][\\d]+\\.[\\d]+\\-update1; [A-Za-z]{2}\\-[A-Za-z]{0,2} *; *((?:(?!Build).)+) Build',
5236
  'brand_replacement' => 'Generic_Android',
5237
  'model_replacement' => '$1',
5238
  ),
5239
- 554 =>
5240
  array (
5241
  'regex' => 'Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[A-Za-z]{2}[_\\-][A-Za-z]{0,2}\\-? *; *((?:(?!Build).)+) Build',
5242
  'brand_replacement' => 'Generic_Android',
5243
  'model_replacement' => '$1',
5244
  ),
5245
- 555 =>
5246
  array (
5247
  'regex' => 'Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[A-Za-z]{0,2}\\- *; *((?:(?!Build).)+) Build',
5248
  'brand_replacement' => 'Generic_Android',
5249
  'model_replacement' => '$1',
5250
  ),
5251
- 556 =>
5252
  array (
5253
  'regex' => 'Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[a-z]{0,2}[_\\-]?[A-Za-z]{0,2};? Build',
5254
  'brand_replacement' => 'Generic',
5255
  'model_replacement' => 'Smartphone',
5256
  ),
5257
- 557 =>
5258
  array (
5259
  'regex' => 'Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *\\-?[A-Za-z]{2}; *((?:(?!Build).)+) Build',
5260
  'brand_replacement' => 'Generic_Android',
5261
  'model_replacement' => '$1',
5262
  ),
5263
- 558 =>
5264
  array (
5265
  'regex' => 'Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}(?:;.*)?; *((?:(?! Build).)+) Build',
5266
  'brand_replacement' => 'Generic_Android',
5267
  'model_replacement' => '$1',
5268
  ),
5269
- 559 =>
5270
  array (
5271
  'regex' => '(GoogleTV)',
5272
  'brand_replacement' => 'Generic_Inettv',
5273
  'model_replacement' => '$1',
5274
  ),
5275
- 560 =>
5276
  array (
5277
  'regex' => '(WebTV)/\\d+.\\d+',
5278
  'brand_replacement' => 'Generic_Inettv',
5279
  'model_replacement' => '$1',
5280
  ),
5281
- 561 =>
5282
  array (
5283
  'regex' => '(Android 3\\.\\d|Opera Tablet|Tablet; .+Firefox/|Android.*(?:Tab|Pad))',
5284
  'regex_flag' => 'i',
@@ -5286,14 +5343,14 @@ return array (
5286
  'brand_replacement' => 'Generic',
5287
  'model_replacement' => 'Tablet',
5288
  ),
5289
- 562 =>
5290
  array (
5291
  'regex' => '(Symbian|\\bS60(Version|V\\d)|\\bS60\\b|\\((Series 60|Windows Mobile|Palm OS|Bada); Opera Mini|Windows CE|Opera Mobi|BREW|Brew|Mobile; .+Firefox/|iPhone OS|Android|MobileSafari|Windows *Phone|\\(webOS/|PalmOS)',
5292
  'device_replacement' => 'Generic Smartphone',
5293
  'brand_replacement' => 'Generic',
5294
  'model_replacement' => 'Smartphone',
5295
  ),
5296
- 563 =>
5297
  array (
5298
  'regex' => '(hiptop|avantgo|plucker|xiino|blazer|elaine)',
5299
  'regex_flag' => 'i',
@@ -5301,15 +5358,15 @@ return array (
5301
  'brand_replacement' => 'Generic',
5302
  'model_replacement' => 'Smartphone',
5303
  ),
5304
- 564 =>
5305
  array (
5306
- 'regex' => '(bot|zao|borg|DBot|oegp|silk|Xenu|zeal|^NING|CCBot|crawl|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|^Java/|^JNLP/|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|spider|msnbot|msrbot|vortex|^vortex|crawler|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|bingbot|openbot|gigabot|furlbot|polybot|seekbot|^voyager|archiver|Icarus6j|mogimogi|Netvibes|blitzbot|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|SeznamBot|ProoXiBot|wsr\\-agent|Squrl Java|EtaoSpider|PaperLiBot|SputnikBot|A6\\-Indexer|netresearch|searchsight|baiduspider|YisouSpider|ICC\\-Crawler|http%20client|Python-urllib|dataparksearch|converacrawler|Screaming Frog|AppEngine-Google|YahooCacheSystem|fast\\-webcrawler|Sogou Pic Spider|semanticdiscovery|Innovazion Crawler|facebookexternalhit|Google.*/\\+/web/snippet|Google-HTTP-Java-Client)',
5307
  'regex_flag' => 'i',
5308
  'device_replacement' => 'Spider',
5309
  'brand_replacement' => 'Spider',
5310
  'model_replacement' => 'Desktop',
5311
  ),
5312
- 565 =>
5313
  array (
5314
  'regex' => '^(1207|3gso|4thp|501i|502i|503i|504i|505i|506i|6310|6590|770s|802s|a wa|acer|acs\\-|airn|alav|asus|attw|au\\-m|aur |aus |abac|acoo|aiko|alco|alca|amoi|anex|anny|anyw|aptu|arch|argo|bmobile|bell|bird|bw\\-n|bw\\-u|beck|benq|bilb|blac|c55/|cdm\\-|chtm|capi|comp|cond|dall|dbte|dc\\-s|dica|ds\\-d|ds12|dait|devi|dmob|doco|dopo|dorado|el(?:38|39|48|49|50|55|58|68)|el[3456]\\d{2}dual|erk0|esl8|ex300|ez40|ez60|ez70|ezos|ezze|elai|emul|eric|ezwa|fake|fly\\-|fly_|g\\-mo|g1 u|g560|gf\\-5|grun|gene|go.w|good|grad|hcit|hd\\-m|hd\\-p|hd\\-t|hei\\-|hp i|hpip|hs\\-c|htc |htc\\-|htca|htcg)',
5315
  'regex_flag' => 'i',
@@ -5317,7 +5374,7 @@ return array (
5317
  'brand_replacement' => 'Generic',
5318
  'model_replacement' => 'Feature Phone',
5319
  ),
5320
- 566 =>
5321
  array (
5322
  'regex' => '^(htcp|htcs|htct|htc_|haie|hita|huaw|hutc|i\\-20|i\\-go|i\\-ma|i\\-mobile|i230|iac|iac\\-|iac/|ig01|im1k|inno|iris|jata|kddi|kgt|kgt/|kpt |kwc\\-|klon|lexi|lg g|lg\\-a|lg\\-b|lg\\-c|lg\\-d|lg\\-f|lg\\-g|lg\\-k|lg\\-l|lg\\-m|lg\\-o|lg\\-p|lg\\-s|lg\\-t|lg\\-u|lg\\-w|lg/k|lg/l|lg/u|lg50|lg54|lge\\-|lge/|leno|m1\\-w|m3ga|m50/|maui|mc01|mc21|mcca|medi|meri|mio8|mioa|mo01|mo02|mode|modo|mot |mot\\-|mt50|mtp1|mtv |mate|maxo|merc|mits|mobi|motv|mozz|n100|n101|n102|n202|n203|n300|n302|n500|n502|n505|n700|n701|n710|nec\\-|nem\\-|newg|neon)',
5323
  'regex_flag' => 'i',
@@ -5325,7 +5382,7 @@ return array (
5325
  'brand_replacement' => 'Generic',
5326
  'model_replacement' => 'Feature Phone',
5327
  ),
5328
- 567 =>
5329
  array (
5330
  'regex' => '^(netf|noki|nzph|o2 x|o2\\-x|opwv|owg1|opti|oran|ot\\-s|p800|pand|pg\\-1|pg\\-2|pg\\-3|pg\\-6|pg\\-8|pg\\-c|pg13|phil|pn\\-2|pt\\-g|palm|pana|pire|pock|pose|psio|qa\\-a|qc\\-2|qc\\-3|qc\\-5|qc\\-7|qc07|qc12|qc21|qc32|qc60|qci\\-|qwap|qtek|r380|r600|raks|rim9|rove|s55/|sage|sams|sc01|sch\\-|scp\\-|sdk/|se47|sec\\-|sec0|sec1|semc|sgh\\-|shar|sie\\-|sk\\-0|sl45|slid|smb3|smt5|sp01|sph\\-|spv |spv\\-|sy01|samm|sany|sava|scoo|send|siem|smar|smit|soft|sony|t\\-mo|t218|t250|t600|t610|t618|tcl\\-|tdg\\-|telm|tim\\-|ts70|tsm\\-|tsm3|tsm5|tx\\-9|tagt)',
5331
  'regex_flag' => 'i',
@@ -5333,7 +5390,7 @@ return array (
5333
  'brand_replacement' => 'Generic',
5334
  'model_replacement' => 'Feature Phone',
5335
  ),
5336
- 568 =>
5337
  array (
5338
  'regex' => '^(talk|teli|topl|tosh|up.b|upg1|utst|v400|v750|veri|vk\\-v|vk40|vk50|vk52|vk53|vm40|vx98|virg|vertu|vite|voda|vulc|w3c |w3c\\-|wapj|wapp|wapu|wapm|wig |wapi|wapr|wapv|wapy|wapa|waps|wapt|winc|winw|wonu|x700|xda2|xdag|yas\\-|your|zte\\-|zeto|aste|audi|avan|blaz|brew|brvw|bumb|ccwa|cell|cldc|cmd\\-|dang|eml2|fetc|hipt|http|ibro|idea|ikom|ipaq|jbro|jemu|jigs|keji|kyoc|kyok|libw|m\\-cr|midp|mmef|moto|mwbp|mywa|newt|nok6|o2im|pant|pdxg|play|pluc|port|prox|rozo|sama|seri|smal|symb|treo|upsi|vx52|vx53|vx60|vx61|vx70|vx80|vx81|vx83|vx85|wap\\-|webc|whit|wmlb|xda\\-|xda_)',
5339
  'regex_flag' => 'i',
@@ -5341,14 +5398,14 @@ return array (
5341
  'brand_replacement' => 'Generic',
5342
  'model_replacement' => 'Feature Phone',
5343
  ),
5344
- 569 =>
5345
  array (
5346
  'regex' => '^(Ice)$',
5347
  'device_replacement' => 'Generic Feature Phone',
5348
  'brand_replacement' => 'Generic',
5349
  'model_replacement' => 'Feature Phone',
5350
  ),
5351
- 570 =>
5352
  array (
5353
  'regex' => '(wap[\\-\\ ]browser|maui|netfront|obigo|teleca|up\\.browser|midp|Opera Mini)',
5354
  'regex_flag' => 'i',
4
  array (
5
  0 =>
6
  array (
7
+ 'regex' => '(Pingdom.com_bot_version_)(\\d+)\\.(\\d+)',
8
+ 'family_replacement' => 'PingdomBot',
9
  ),
10
  1 =>
11
  array (
12
+ 'regex' => '(facebookexternalhit)/(\\d+)\\.(\\d+)',
13
+ 'family_replacement' => 'FacebookBot',
14
  ),
15
  2 =>
16
+ array (
17
+ 'regex' => 'Google.*/\\+/web/snippet',
18
+ 'family_replacement' => 'GooglePlusBot',
19
+ ),
20
+ 3 =>
21
+ array (
22
+ 'regex' => '/((?:Ant-)?Nutch|[A-z]+[Bb]ot|[A-z]+[Ss]pider|Axtaris|fetchurl|Isara|ShopSalad|Tailsweep)[ \\-](\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?',
23
+ ),
24
+ 4 =>
25
+ array (
26
+ 'regex' => '(008|Altresium|Argus|BaiduMobaider|BoardReader|DNSGroup|DataparkSearch|EDI|Goodzer|Grub|INGRID|Infohelfer|LinkedInBot|LOOQ|Nutch|PathDefender|Peew|PostPost|Steeler|Twitterbot|VSE|WebCrunch|WebZIP|Y!J-BR[A-Z]|YahooSeeker|envolk|sproose|wminer)/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?(?:(?!CFNetwork).)*$',
27
+ ),
28
+ 5 =>
29
+ array (
30
+ 'regex' => '(MSIE) (\\d+)\\.(\\d+)([a-z]\\d?)?;.* MSIECrawler',
31
+ 'family_replacement' => 'MSIECrawler',
32
+ ),
33
+ 6 =>
34
+ array (
35
+ 'regex' => '(Google-HTTP-Java-Client|Apache-HttpClient|http%20client|Python-urllib|HttpMonitor|TLSProber|WinHTTP|JNLP)(?:[ /](\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?',
36
+ ),
37
+ 7 =>
38
+ array (
39
+ 'regex' => '(1470\\.net crawler|50\\.nu|8bo Crawler Bot|Aboundex|Accoona-[A-z]+-Agent|AdsBot-Google(?:-[a-z]+)?|altavista|AppEngine-Google|archive.*?\\.org_bot|archiver|Ask Jeeves|[Bb]ai[Dd]u[Ss]pider(?:-[A-Za-z]+)*|bingbot|BingPreview|blitzbot|BlogBridge|BoardReader(?: [A-Za-z]+)*|boitho.com-dc|BotSeer|\\b\\w*favicon\\w*\\b|\\bYeti(?:-[a-z]+)?|Catchpoint bot|[Cc]harlotte|Checklinks|clumboot|Comodo HTTP\\(S\\) Crawler|Comodo-Webinspector-Crawler|ConveraCrawler|CRAWL-E|CrawlConvera|Daumoa(?:-feedfetcher)?|Feed Seeker Bot|findlinks|Flamingo_SearchEngine|FollowSite Bot|furlbot|Genieo|gigabot|GomezAgent|gonzo1|(?:[a-zA-Z]+-)?Googlebot(?:-[a-zA-Z]+)?|Google SketchUp|grub-client|gsa-crawler|heritrix|HiddenMarket|holmes|HooWWWer|htdig|ia_archiver|ICC-Crawler|Icarus6j|ichiro(?:/mobile)?|IconSurf|IlTrovatore(?:-Setaccio)?|InfuzApp|Innovazion Crawler|InternetArchive|IP2[a-z]+Bot|jbot\\b|KaloogaBot|Kraken|Kurzor|larbin|LEIA|LesnikBot|Linguee Bot|LinkAider|LinkedInBot|Lite Bot|Llaut|lycos|Mail\\.RU_Bot|masidani_bot|Mediapartners-Google|Microsoft .*? Bot|mogimogi|mozDex|MJ12bot|msnbot(?:-media *)?|msrbot|netresearch|Netvibes|NewsGator[^/]*|^NING|Nutch[^/]*|Nymesis|ObjectsSearch|Orbiter|OOZBOT|PagePeeker|PagesInventory|PaxleFramework|Peeplo Screenshot Bot|PlantyNet_WebRobot|Pompos|Read%20Later|Reaper|RedCarpet|Retreiver|Riddler|Riddler|Rival IQ|scooter|Scrapy|Scrubby|searchsight|seekbot|semanticdiscovery|Simpy|SimplePie|SEOstats|SimpleRSS|Slurp|snappy|Speedy Spider|Squrl Java|[Tt]eoma(?![Bb]ar)|TheUsefulbot|ThumbShotsBot|Thumbshots\\.ru|TwitterBot|URL2PNG|Vagabondo|VoilaBot|^vortex|Votay bot|^voyager|WASALive.Bot|Web-sniffer|WebThumb|WeSEE:[A-z]+|WhatWeb|WIRE|WordPress|Wotbox|www\\.almaden\\.ibm\\.com|Xenu(?:.s)? Link Sleuth|Xerka [A-z]+Bot|yacy(?:bot)?|Yahoo[a-z]*Seeker|Yahoo! Slurp|Yandex\\w+|YodaoBot(?:-[A-z]+)?|YottaaMonitor|Yowedo|^Zao|^Zao-Crawler|ZeBot_www\\.ze\\.bz|ZooShot|ZyBorg)(?:[ /]v?(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?(?:(?!CFNetwork).)*$',
40
+ ),
41
+ 8 =>
42
+ array (
43
+ 'regex' => '(?:\\/[A-Za-z0-9\\.]+)? *([A-Za-z0-9 \\-_\\!\\[\\]:]*(?:[Aa]rchiver|[Ii]ndexer|[Ss]craper|[Bb]ot|[Ss]pider|[Cc]rawl[a-z]*))/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?(?:(?!CFNetwork).)*$',
44
+ ),
45
+ 9 =>
46
+ array (
47
+ 'regex' => '(?:\\/[A-Za-z0-9\\.]+)? *([A-Za-z0-9 _\\!\\[\\]:]*(?:[Aa]rchiver|[Ii]ndexer|[Ss]craper|[Bb]ot|[Ss]pider|[Cc]rawl[a-z]*)) (\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?(?:(?!CFNetwork).)*$',
48
+ ),
49
+ 10 =>
50
+ array (
51
+ 'regex' => '((?:[A-z0-9]+|[A-z\\-]+ ?)?(?: the )?(?:[Ss][Pp][Ii][Dd][Ee][Rr]|[Ss]crape|[A-z]{2}(?!C[Uu])[Bb]ot|[Cc][Rr][Aa][Ww][Ll])[A-z0-9]*)(?:(?:[ /]| v)(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?(?:(?!CFNetwork).)*$',
52
+ ),
53
+ 11 =>
54
+ array (
55
+ 'regex' => '(HbbTV)/(\\d+)\\.(\\d+)\\.(\\d+) \\(',
56
+ ),
57
+ 12 =>
58
+ array (
59
+ 'regex' => '(Chimera|SeaMonkey|Camino)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)?',
60
+ ),
61
+ 13 =>
62
  array (
63
  'regex' => '(Pale[Mm]oon)/(\\d+)\\.(\\d+)\\.?(\\d+)?',
64
  'family_replacement' => 'Pale Moon (Firefox Variant)',
65
  ),
66
+ 14 =>
67
  array (
68
  'regex' => '(Fennec)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+[a-z]*)',
69
  'family_replacement' => 'Firefox Mobile',
70
  ),
71
+ 15 =>
72
  array (
73
  'regex' => '(Fennec)/(\\d+)\\.(\\d+)(pre)',
74
  'family_replacement' => 'Firefox Mobile',
75
  ),
76
+ 16 =>
77
  array (
78
  'regex' => '(Fennec)/(\\d+)\\.(\\d+)',
79
  'family_replacement' => 'Firefox Mobile',
80
  ),
81
+ 17 =>
82
  array (
83
  'regex' => 'Mobile.*(Firefox)/(\\d+)\\.(\\d+)',
84
  'family_replacement' => 'Firefox Mobile',
85
  ),
86
+ 18 =>
87
  array (
88
  'regex' => '(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)',
89
  'family_replacement' => 'Firefox ($1)',
90
  ),
91
+ 19 =>
92
  array (
93
  'regex' => '(Firefox)/(\\d+)\\.(\\d+)(a\\d+[a-z]*)',
94
  'family_replacement' => 'Firefox Alpha',
95
  ),
96
+ 20 =>
97
  array (
98
  'regex' => '(Firefox)/(\\d+)\\.(\\d+)(b\\d+[a-z]*)',
99
  'family_replacement' => 'Firefox Beta',
100
  ),
101
+ 21 =>
102
  array (
103
  'regex' => '(Firefox)-(?:\\d+\\.\\d+)?/(\\d+)\\.(\\d+)(a\\d+[a-z]*)',
104
  'family_replacement' => 'Firefox Alpha',
105
  ),
106
+ 22 =>
107
  array (
108
  'regex' => '(Firefox)-(?:\\d+\\.\\d+)?/(\\d+)\\.(\\d+)(b\\d+[a-z]*)',
109
  'family_replacement' => 'Firefox Beta',
110
  ),
111
+ 23 =>
112
  array (
113
  'regex' => '(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?',
114
  'family_replacement' => 'Firefox ($1)',
115
  ),
116
+ 24 =>
117
  array (
118
  'regex' => '(Firefox).*Tablet browser (\\d+)\\.(\\d+)\\.(\\d+)',
119
  'family_replacement' => 'MicroB',
120
  ),
121
+ 25 =>
122
  array (
123
  'regex' => '(MozillaDeveloperPreview)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?',
124
  ),
125
+ 26 =>
126
  array (
127
  'regex' => '(Flock)/(\\d+)\\.(\\d+)(b\\d+?)',
128
  ),
129
+ 27 =>
130
  array (
131
  'regex' => '(RockMelt)/(\\d+)\\.(\\d+)\\.(\\d+)',
132
  ),
133
+ 28 =>
134
  array (
135
  'regex' => '(Navigator)/(\\d+)\\.(\\d+)\\.(\\d+)',
136
  'family_replacement' => 'Netscape',
137
  ),
138
+ 29 =>
139
  array (
140
  'regex' => '(Navigator)/(\\d+)\\.(\\d+)([ab]\\d+)',
141
  'family_replacement' => 'Netscape',
142
  ),
143
+ 30 =>
144
  array (
145
  'regex' => '(Netscape6)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+)?',
146
  'family_replacement' => 'Netscape',
147
  ),
148
+ 31 =>
149
  array (
150
  'regex' => '(MyIBrow)/(\\d+)\\.(\\d+)',
151
  'family_replacement' => 'My Internet Browser',
152
  ),
153
+ 32 =>
154
  array (
155
  'regex' => '(Opera Tablet).*Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
156
  ),
157
+ 33 =>
158
  array (
159
  'regex' => '(Opera)/.+Opera Mobi.+Version/(\\d+)\\.(\\d+)',
160
  'family_replacement' => 'Opera Mobile',
161
  ),
162
+ 34 =>
163
  array (
164
  'regex' => '(Opera)/(\\d+)\\.(\\d+).+Opera Mobi',
165
  'family_replacement' => 'Opera Mobile',
166
  ),
167
+ 35 =>
168
  array (
169
  'regex' => 'Opera Mobi.+(Opera)(?:/|\\s+)(\\d+)\\.(\\d+)',
170
  'family_replacement' => 'Opera Mobile',
171
  ),
172
+ 36 =>
173
  array (
174
  'regex' => 'Opera Mobi',
175
  'family_replacement' => 'Opera Mobile',
176
  ),
177
+ 37 =>
178
  array (
179
  'regex' => '(Opera Mini)(?:/att)?/(\\d+)\\.(\\d+)',
180
  ),
181
+ 38 =>
182
  array (
183
  'regex' => '(Opera)/9.80.*Version/(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
184
  ),
185
+ 39 =>
186
  array (
187
  'regex' => '(?:Mobile Safari).*(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)',
188
  'family_replacement' => 'Opera Mobile',
189
  ),
190
+ 40 =>
191
  array (
192
  'regex' => '(?:Chrome).*(OPR)/(\\d+)\\.(\\d+)\\.(\\d+)',
193
  'family_replacement' => 'Opera',
194
  ),
195
+ 41 =>
196
  array (
197
  'regex' => '(Coast)/(\\d+).(\\d+).(\\d+)',
198
  'family_replacement' => 'Opera Coast',
199
  ),
200
+ 42 =>
201
  array (
202
  'regex' => '(OPiOS)/(\\d+).(\\d+).(\\d+)',
203
  'family_replacement' => 'Opera Mini',
204
  ),
205
+ 43 =>
206
  array (
207
  'regex' => '(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
208
  'family_replacement' => 'webOS Browser',
209
  ),
210
+ 44 =>
211
  array (
212
  'regex' => '(luakit)',
213
  'family_replacement' => 'LuaKit',
214
  ),
215
+ 45 =>
216
  array (
217
  'regex' => '(Snowshoe)/(\\d+)\\.(\\d+).(\\d+)',
218
  ),
219
+ 46 =>
220
  array (
221
  'regex' => '(Lightning)/(\\d+)\\.(\\d+)\\.?((?:[ab]?\\d+[a-z]*)|(?:\\d*))',
222
  ),
223
+ 47 =>
224
  array (
225
  'regex' => '(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?) \\(Swiftfox\\)',
226
  'family_replacement' => 'Swiftfox',
227
  ),
228
+ 48 =>
229
  array (
230
  'regex' => '(Firefox)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)? \\(Swiftfox\\)',
231
  'family_replacement' => 'Swiftfox',
232
  ),
233
+ 49 =>
234
  array (
235
  'regex' => '(rekonq)/(\\d+)\\.(\\d+)\\.?(\\d+)? Safari',
236
  'family_replacement' => 'Rekonq',
237
  ),
238
+ 50 =>
239
  array (
240
  'regex' => 'rekonq',
241
  'family_replacement' => 'Rekonq',
242
  ),
243
+ 51 =>
244
  array (
245
  'regex' => '(conkeror|Conkeror)/(\\d+)\\.(\\d+)\\.?(\\d+)?',
246
  'family_replacement' => 'Conkeror',
247
  ),
248
+ 52 =>
249
  array (
250
  'regex' => '(konqueror)/(\\d+)\\.(\\d+)\\.(\\d+)',
251
  'family_replacement' => 'Konqueror',
252
  ),
253
+ 53 =>
254
  array (
255
  'regex' => '(WeTab)-Browser',
256
  ),
257
+ 54 =>
258
  array (
259
  'regex' => '(Comodo_Dragon)/(\\d+)\\.(\\d+)\\.(\\d+)',
260
  'family_replacement' => 'Comodo Dragon',
261
  ),
262
+ 55 =>
 
 
 
 
263
  array (
264
  'regex' => '(Symphony) (\\d+).(\\d+)',
265
  ),
266
+ 56 =>
267
  array (
268
  'regex' => '(Minimo)',
269
  ),
270
+ 57 =>
271
  array (
272
  'regex' => 'PLAYSTATION 3.+WebKit',
273
  'family_replacement' => 'NetFront NX',
274
  ),
275
+ 58 =>
276
  array (
277
  'regex' => 'PLAYSTATION 3',
278
  'family_replacement' => 'NetFront',
279
  ),
280
+ 59 =>
281
  array (
282
  'regex' => '(PlayStation Portable)',
283
  'family_replacement' => 'NetFront',
284
  ),
285
+ 60 =>
286
  array (
287
  'regex' => '(PlayStation Vita)',
288
  'family_replacement' => 'NetFront NX',
289
  ),
290
+ 61 =>
291
  array (
292
  'regex' => 'AppleWebKit.+ (NX)/(\\d+)\\.(\\d+)\\.(\\d+)',
293
  'family_replacement' => 'NetFront NX',
294
  ),
295
+ 62 =>
296
  array (
297
  'regex' => '(Nintendo 3DS)',
298
  'family_replacement' => 'NetFront NX',
299
  ),
300
+ 63 =>
301
  array (
302
  'regex' => '(Silk)/(\\d+)\\.(\\d+)(?:\\.([0-9\\-]+))?',
303
  'family_replacement' => 'Amazon Silk',
304
  ),
305
+ 64 =>
306
  array (
307
  'regex' => '(Puffin)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
308
  ),
309
+ 65 =>
310
  array (
311
  'regex' => '(CrMo)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',
312
  'family_replacement' => 'Chrome Mobile',
313
  ),
314
+ 66 =>
315
  array (
316
  'regex' => '(CriOS)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',
317
  'family_replacement' => 'Chrome Mobile iOS',
318
  ),
319
+ 67 =>
320
  array (
321
  'regex' => '(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+) Mobile',
322
  'family_replacement' => 'Chrome Mobile',
323
  ),
324
+ 68 =>
325
  array (
326
  'regex' => '(chromeframe)/(\\d+)\\.(\\d+)\\.(\\d+)',
327
  'family_replacement' => 'Chrome Frame',
328
  ),
329
+ 69 =>
330
  array (
331
  'regex' => '(UCBrowser)[ /](\\d+)\\.(\\d+)\\.(\\d+)',
332
  'family_replacement' => 'UC Browser',
333
  ),
334
+ 70 =>
335
  array (
336
  'regex' => '(UC Browser)[ /](\\d+)\\.(\\d+)\\.(\\d+)',
337
  ),
338
+ 71 =>
339
  array (
340
  'regex' => '(UC Browser|UCBrowser|UCWEB)(\\d+)\\.(\\d+)\\.(\\d+)',
341
  'family_replacement' => 'UC Browser',
342
  ),
343
+ 72 =>
344
  array (
345
  'regex' => '(SLP Browser)/(\\d+)\\.(\\d+)',
346
  'family_replacement' => 'Tizen Browser',
347
  ),
348
+ 73 =>
349
  array (
350
  'regex' => '(SE 2\\.X) MetaSr (\\d+)\\.(\\d+)',
351
  'family_replacement' => 'Sogou Explorer',
352
  ),
353
+ 74 =>
354
  array (
355
  'regex' => '(baidubrowser)[/\\s](\\d+)',
356
  'family_replacement' => 'Baidu Browser',
357
  ),
358
+ 75 =>
359
  array (
360
  'regex' => '(FlyFlow)/(\\d+)\\.(\\d+)',
361
  'family_replacement' => 'Baidu Explorer',
362
  ),
363
+ 76 =>
364
  array (
365
  'regex' => '(MQQBrowser/Mini)(?:(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?',
366
  'family_replacement' => 'QQ Browser Mini',
367
  ),
368
+ 77 =>
369
  array (
370
  'regex' => '(MQQBrowser)(?:/(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?)?',
371
  'family_replacement' => 'QQ Browser Mobile',
372
  ),
373
+ 78 =>
374
  array (
375
  'regex' => '(QQBrowser)(?:/(\\d+)(?:\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?)?',
376
  'family_replacement' => 'QQ Browser',
377
  ),
378
+ 79 =>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
379
  array (
380
  'regex' => '(Rackspace Monitoring)/(\\d+)\\.(\\d+)',
381
  'family_replacement' => 'RackspaceBot',
382
  ),
383
+ 80 =>
384
  array (
385
  'regex' => '(PyAMF)/(\\d+)\\.(\\d+)\\.(\\d+)',
386
  ),
387
+ 81 =>
388
  array (
389
  'regex' => '(YaBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)',
390
  'family_replacement' => 'Yandex Browser',
391
  ),
392
+ 82 =>
393
  array (
394
  'regex' => '(Chrome)/(\\d+)\\.(\\d+)\\.(\\d+).* MRCHROME',
395
  'family_replacement' => 'Mail.ru Chromium Browser',
396
  ),
397
+ 83 =>
398
  array (
399
  'regex' => '(AOL) (\\d+)\\.(\\d+); AOLBuild (\\d+)',
400
  ),
401
+ 84 =>
402
  array (
403
  'regex' => '(AdobeAIR|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Epiphany|Shiira|Sunrise|Flock|Netscape|Lunascape|WebPilot|NetFront|Netfront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|ThunderBrowse|Iris|UP\\.Browser|Bunjalloo|Google Earth|Raven for Mac|Openwave)/(\\d+)\\.(\\d+)\\.(\\d+)',
404
  ),
405
+ 85 =>
406
  array (
407
  'regex' => 'MSOffice 12',
408
  'family_replacement' => 'Outlook',
409
  'v1_replacement' => '2007',
410
  ),
411
+ 86 =>
412
  array (
413
  'regex' => 'MSOffice 14',
414
  'family_replacement' => 'Outlook',
415
  'v1_replacement' => '2010',
416
  ),
417
+ 87 =>
418
  array (
419
  'regex' => 'Microsoft Outlook 15\\.\\d+\\.\\d+',
420
  'family_replacement' => 'Outlook',
421
  'v1_replacement' => '2013',
422
  ),
423
+ 88 =>
424
  array (
425
  'regex' => '(Airmail) (\\d+)\\.(\\d+)(?:\\.(\\d+))?',
426
  ),
427
+ 89 =>
428
  array (
429
  'regex' => '(Thunderbird)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)',
430
  'family_replacement' => 'Thunderbird',
431
  ),
432
+ 90 =>
433
+ array (
434
+ 'regex' => '(Vivaldi)/(\\d+)\\.(\\d+)\\.(\\d+)',
435
+ ),
436
+ 91 =>
437
  array (
438
  'regex' => '(Edge)/(\\d+)\\.(\\d+)',
 
439
  ),
440
+ 92 =>
441
  array (
442
  'regex' => '(Chromium|Chrome)/(\\d+)\\.(\\d+)\\.(\\d+)',
443
  ),
444
+ 93 =>
445
  array (
446
  'regex' => '\\b(Dolphin)(?: |HDCN/|/INT\\-)(\\d+)\\.(\\d+)\\.?(\\d+)?',
447
  ),
448
+ 94 =>
449
  array (
450
+ 'regex' => '(bingbot|Bolt|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|NetFront|Netfront|Konqueror|Googlebot|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|iTunes|MacAppStore|NetNewsWire|Space Bison|Stainless|Orca|Dolfin|BOLT|Minimo|Tizen Browser|Polaris|Abrowser|Planetweb|ICE Browser|mDolphin)/(\\d+)\\.(\\d+)\\.?(\\d+)?',
451
  ),
452
+ 95 =>
453
  array (
454
  'regex' => '(Chromium|Chrome)/(\\d+)\\.(\\d+)',
455
  ),
456
+ 96 =>
457
  array (
458
  'regex' => '(IEMobile)[ /](\\d+)\\.(\\d+)',
459
  'family_replacement' => 'IE Mobile',
460
  ),
461
+ 97 =>
462
  array (
463
  'regex' => '(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\\d+)\\.(\\d+)\\.(\\d+)',
464
  ),
465
+ 98 =>
466
  array (
467
  'regex' => '(iCab|Lunascape|Opera|Android|Jasmine|Polaris) (\\d+)\\.(\\d+)\\.?(\\d+)?',
468
  ),
469
+ 99 =>
470
  array (
471
  'regex' => '(Kindle)/(\\d+)\\.(\\d+)',
472
  ),
473
+ 100 =>
474
  array (
475
  'regex' => '(Android) Donut',
476
  'v1_replacement' => '1',
477
  'v2_replacement' => '2',
478
  ),
479
+ 101 =>
480
  array (
481
  'regex' => '(Android) Eclair',
482
  'v1_replacement' => '2',
483
  'v2_replacement' => '1',
484
  ),
485
+ 102 =>
486
  array (
487
  'regex' => '(Android) Froyo',
488
  'v1_replacement' => '2',
489
  'v2_replacement' => '2',
490
  ),
491
+ 103 =>
492
  array (
493
  'regex' => '(Android) Gingerbread',
494
  'v1_replacement' => '2',
495
  'v2_replacement' => '3',
496
  ),
497
+ 104 =>
498
  array (
499
  'regex' => '(Android) Honeycomb',
500
  'v1_replacement' => '3',
501
  ),
502
+ 105 =>
503
  array (
504
  'regex' => '(MSIE) (\\d+)\\.(\\d+).*XBLWP7',
505
  'family_replacement' => 'IE Large Screen',
506
  ),
507
+ 106 =>
508
  array (
509
  'regex' => '(Obigo)InternetBrowser',
510
  ),
511
+ 107 =>
512
  array (
513
  'regex' => '(Obigo)\\-Browser',
514
  ),
515
+ 108 =>
516
  array (
517
  'regex' => '(Obigo|OBIGO)[^\\d]*(\\d+)(?:.(\\d+))?',
518
  'family_replacement' => 'Obigo',
519
  ),
520
+ 109 =>
521
  array (
522
  'regex' => '(MAXTHON|Maxthon) (\\d+)\\.(\\d+)',
523
  'family_replacement' => 'Maxthon',
524
  ),
525
+ 110 =>
526
  array (
527
  'regex' => '(Maxthon|MyIE2|Uzbl|Shiira)',
528
  'v1_replacement' => '0',
529
  ),
530
+ 111 =>
531
  array (
532
  'regex' => '(BrowseX) \\((\\d+)\\.(\\d+)\\.(\\d+)',
533
  ),
534
+ 112 =>
535
  array (
536
  'regex' => '(NCSA_Mosaic)/(\\d+)\\.(\\d+)',
537
  'family_replacement' => 'NCSA Mosaic',
538
  ),
539
+ 113 =>
540
  array (
541
  'regex' => '(POLARIS)/(\\d+)\\.(\\d+)',
542
  'family_replacement' => 'Polaris',
543
  ),
544
+ 114 =>
545
  array (
546
  'regex' => '(Embider)/(\\d+)\\.(\\d+)',
547
  'family_replacement' => 'Polaris',
548
  ),
549
+ 115 =>
550
  array (
551
  'regex' => '(BonEcho)/(\\d+)\\.(\\d+)\\.?([ab]?\\d+)?',
552
  'family_replacement' => 'Bon Echo',
553
  ),
554
+ 116 =>
555
  array (
556
  'regex' => '(CFNetwork)(?:/(\\d+)\\.(\\d+)\\.?(\\d+)?)?',
557
  'family_replacement' => 'CFNetwork',
558
  ),
559
+ 117 =>
560
  array (
561
  'regex' => '(iPod).+Version/(\\d+)\\.(\\d+)\\.(\\d+)',
562
  'family_replacement' => 'Mobile Safari',
563
  ),
564
+ 118 =>
565
  array (
566
  'regex' => '(iPod).*Version/(\\d+)\\.(\\d+)',
567
  'family_replacement' => 'Mobile Safari',
568
  ),
569
+ 119 =>
570
  array (
571
  'regex' => '(iPhone).*Version/(\\d+)\\.(\\d+)\\.(\\d+)',
572
  'family_replacement' => 'Mobile Safari',
573
  ),
574
+ 120 =>
575
  array (
576
  'regex' => '(iPhone).*Version/(\\d+)\\.(\\d+)',
577
  'family_replacement' => 'Mobile Safari',
578
  ),
579
+ 121 =>
580
  array (
581
  'regex' => '(iPad).*Version/(\\d+)\\.(\\d+)\\.(\\d+)',
582
  'family_replacement' => 'Mobile Safari',
583
  ),
584
+ 122 =>
585
  array (
586
  'regex' => '(iPad).*Version/(\\d+)\\.(\\d+)',
587
  'family_replacement' => 'Mobile Safari',
588
  ),
589
+ 123 =>
590
  array (
591
  'regex' => '(iPod|iPhone|iPad);.*CPU.*OS (\\d+)_(\\d+)(?:_(\\d+))?.*Mobile',
592
  'family_replacement' => 'Mobile Safari',
593
  ),
594
+ 124 =>
595
  array (
596
  'regex' => '(iPod|iPhone|iPad)',
597
  'family_replacement' => 'Mobile Safari',
598
  ),
599
+ 125 =>
600
  array (
601
  'regex' => '(AvantGo) (\\d+).(\\d+)',
602
  ),
603
+ 126 =>
604
  array (
605
  'regex' => '(OneBrowser)/(\\d+).(\\d+)',
606
  'family_replacement' => 'ONE Browser',
607
  ),
608
+ 127 =>
609
  array (
610
  'regex' => '(Avant)',
611
  'v1_replacement' => '1',
612
  ),
613
+ 128 =>
614
  array (
615
  'regex' => '(QtCarBrowser)',
616
  'v1_replacement' => '1',
617
  ),
618
+ 129 =>
619
  array (
620
  'regex' => '^(iBrowser/Mini)(\\d+).(\\d+)',
621
  'family_replacement' => 'iBrowser Mini',
622
  ),
623
+ 130 =>
624
  array (
625
  'regex' => '^(iBrowser|iRAPP)/(\\d+).(\\d+)',
626
  ),
627
+ 131 =>
628
  array (
629
  'regex' => '^(Nokia)',
630
  'family_replacement' => 'Nokia Services (WAP) Browser',
631
  ),
632
+ 132 =>
633
  array (
634
  'regex' => '(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)\\.(\\d+)',
635
  'family_replacement' => 'Nokia Browser',
636
  ),
637
+ 133 =>
638
  array (
639
  'regex' => '(NokiaBrowser)/(\\d+)\\.(\\d+).(\\d+)',
640
  'family_replacement' => 'Nokia Browser',
641
  ),
642
+ 134 =>
643
  array (
644
  'regex' => '(NokiaBrowser)/(\\d+)\\.(\\d+)',
645
  'family_replacement' => 'Nokia Browser',
646
  ),
647
+ 135 =>
648
  array (
649
  'regex' => '(BrowserNG)/(\\d+)\\.(\\d+).(\\d+)',
650
  'family_replacement' => 'Nokia Browser',
651
  ),
652
+ 136 =>
653
  array (
654
  'regex' => '(Series60)/5\\.0',
655
  'family_replacement' => 'Nokia Browser',
656
  'v1_replacement' => '7',
657
  'v2_replacement' => '0',
658
  ),
659
+ 137 =>
660
  array (
661
  'regex' => '(Series60)/(\\d+)\\.(\\d+)',
662
  'family_replacement' => 'Nokia OSS Browser',
663
  ),
664
+ 138 =>
665
  array (
666
  'regex' => '(S40OviBrowser)/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)',
667
  'family_replacement' => 'Ovi Browser',
668
  ),
669
+ 139 =>
670
  array (
671
  'regex' => '(Nokia)[EN]?(\\d+)',
672
  ),
673
+ 140 =>
674
  array (
675
  'regex' => '(BB10);',
676
  'family_replacement' => 'BlackBerry WebKit',
677
  ),
678
+ 141 =>
679
  array (
680
  'regex' => '(PlayBook).+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)',
681
  'family_replacement' => 'BlackBerry WebKit',
682
  ),
683
+ 142 =>
684
  array (
685
  'regex' => '(Black[bB]erry).+Version/(\\d+)\\.(\\d+)\\.(\\d+)',
686
  'family_replacement' => 'BlackBerry WebKit',
687
  ),
688
+ 143 =>
689
  array (
690
  'regex' => '(Black[bB]erry)\\s?(\\d+)',
691
  'family_replacement' => 'BlackBerry',
692
  ),
693
+ 144 =>
694
  array (
695
  'regex' => '(OmniWeb)/v(\\d+)\\.(\\d+)',
696
  ),
697
+ 145 =>
698
  array (
699
  'regex' => '(Blazer)/(\\d+)\\.(\\d+)',
700
  'family_replacement' => 'Palm Blazer',
701
  ),
702
+ 146 =>
703
  array (
704
  'regex' => '(Pre)/(\\d+)\\.(\\d+)',
705
  'family_replacement' => 'Palm Pre',
706
  ),
707
+ 147 =>
708
  array (
709
  'regex' => '(ELinks)/(\\d+)\\.(\\d+)',
710
  ),
711
+ 148 =>
712
  array (
713
  'regex' => '(ELinks) \\((\\d+)\\.(\\d+)',
714
  ),
715
+ 149 =>
716
  array (
717
  'regex' => '(Links) \\((\\d+)\\.(\\d+)',
718
  ),
719
+ 150 =>
720
  array (
721
  'regex' => '(QtWeb) Internet Browser/(\\d+)\\.(\\d+)',
722
  ),
723
+ 151 =>
724
  array (
725
  'regex' => '(PhantomJS)/(\\d+)\\.(\\d+)\\.(\\d+)',
726
  ),
727
+ 152 =>
728
  array (
729
  'regex' => '(AppleWebKit)/(\\d+)\\.?(\\d+)?\\+ .* Safari',
730
  'family_replacement' => 'WebKit Nightly',
731
  ),
732
+ 153 =>
733
  array (
734
  'regex' => '(Version)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*Safari/',
735
  'family_replacement' => 'Safari',
736
  ),
737
+ 154 =>
738
  array (
739
  'regex' => '(Safari)/\\d+',
740
  ),
741
+ 155 =>
742
  array (
743
  'regex' => '(OLPC)/Update(\\d+)\\.(\\d+)',
744
  ),
745
+ 156 =>
746
  array (
747
  'regex' => '(OLPC)/Update()\\.(\\d+)',
748
  'v1_replacement' => '0',
749
  ),
750
+ 157 =>
751
  array (
752
  'regex' => '(SEMC\\-Browser)/(\\d+)\\.(\\d+)',
753
  ),
754
+ 158 =>
755
  array (
756
  'regex' => '(Teleca)',
757
  'family_replacement' => 'Teleca Browser',
758
  ),
759
+ 159 =>
760
  array (
761
  'regex' => '(Phantom)/V(\\d+)\\.(\\d+)',
762
  'family_replacement' => 'Phantom Browser',
763
  ),
764
+ 160 =>
765
  array (
766
  'regex' => 'Trident(.*)rv.(\\d+)\\.(\\d+)',
767
  'family_replacement' => 'IE',
768
  ),
769
+ 161 =>
770
  array (
771
  'regex' => '(Espial)/(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?',
772
  ),
773
+ 162 =>
774
  array (
775
  'regex' => '(AppleWebKit)/(\\d+)\\.(\\d+)\\.(\\d+)',
776
  'family_replacement' => 'AppleMail',
777
  ),
778
+ 163 =>
779
  array (
780
  'regex' => '(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+)',
781
  ),
782
+ 164 =>
783
  array (
784
  'regex' => '(Firefox)/(\\d+)\\.(\\d+)(pre|[ab]\\d+[a-z]*)?',
785
  ),
786
+ 165 =>
787
  array (
788
  'regex' => '([MS]?IE) (\\d+)\\.(\\d+)',
789
  'family_replacement' => 'IE',
790
  ),
791
+ 166 =>
792
  array (
793
  'regex' => '(python-requests)/(\\d+)\\.(\\d+)',
794
  'family_replacement' => 'Python Requests',
795
  ),
796
+ 167 =>
797
+ array (
798
+ 'regex' => '(Java)[/ ]{0,1}\\d+\\.(\\d+)\\.(\\d+)[_-]*([a-zA-Z0-9]+)*',
799
+ ),
800
  ),
801
  'os_parsers' =>
802
  array (
967
  'os_replacement' => 'Windows 8.1',
968
  ),
969
  33 =>
970
+ array (
971
+ 'regex' => '(Windows NT 6\\.4)',
972
+ 'os_replacement' => 'Windows 10',
973
+ ),
974
+ 34 =>
975
+ array (
976
+ 'regex' => '(Windows NT 10\\.0)',
977
+ 'os_replacement' => 'Windows 10',
978
+ ),
979
+ 35 =>
980
  array (
981
  'regex' => '(Windows NT 5\\.0)',
982
  'os_replacement' => 'Windows 2000',
983
  ),
984
+ 36 =>
985
  array (
986
  'regex' => '(WinNT4.0)',
987
  'os_replacement' => 'Windows NT 4.0',
988
  ),
989
+ 37 =>
990
  array (
991
  'regex' => '(Windows ?CE)',
992
  'os_replacement' => 'Windows CE',
993
  ),
994
+ 38 =>
995
  array (
996
  'regex' => 'Win ?(95|98|3.1|NT|ME|2000)',
997
  'os_replacement' => 'Windows $1',
998
  ),
999
+ 39 =>
1000
  array (
1001
  'regex' => 'Win16',
1002
  'os_replacement' => 'Windows 3.1',
1003
  ),
1004
+ 40 =>
1005
  array (
1006
  'regex' => 'Win32',
1007
  'os_replacement' => 'Windows 95',
1008
  ),
1009
+ 41 =>
1010
  array (
1011
  'regex' => '(Tizen)/(\\d+)\\.(\\d+)',
1012
  ),
1013
+ 42 =>
1014
  array (
1015
+ 'regex' => '((?:Mac ?|; )OS X)[\\s/](?:(\\d+)[_.](\\d+)(?:[_.](\\d+))?|Mach-O)',
1016
+ 'os_replacement' => 'Mac OS X',
1017
  ),
1018
+ 43 =>
1019
  array (
1020
  'regex' => ' (Dar)(win)/(9).(\\d+).*\\((?:i386|x86_64|Power Macintosh)\\)',
1021
  'os_replacement' => 'Mac OS X',
1022
  'os_v1_replacement' => '10',
1023
  'os_v2_replacement' => '5',
1024
  ),
1025
+ 44 =>
1026
  array (
1027
  'regex' => ' (Dar)(win)/(10).(\\d+).*\\((?:i386|x86_64)\\)',
1028
  'os_replacement' => 'Mac OS X',
1029
  'os_v1_replacement' => '10',
1030
  'os_v2_replacement' => '6',
1031
  ),
1032
+ 45 =>
1033
  array (
1034
  'regex' => ' (Dar)(win)/(11).(\\d+).*\\((?:i386|x86_64)\\)',
1035
  'os_replacement' => 'Mac OS X',
1036
  'os_v1_replacement' => '10',
1037
  'os_v2_replacement' => '7',
1038
  ),
1039
+ 46 =>
1040
  array (
1041
  'regex' => ' (Dar)(win)/(12).(\\d+).*\\((?:i386|x86_64)\\)',
1042
  'os_replacement' => 'Mac OS X',
1043
  'os_v1_replacement' => '10',
1044
  'os_v2_replacement' => '8',
1045
  ),
1046
+ 47 =>
1047
  array (
1048
  'regex' => ' (Dar)(win)/(13).(\\d+).*\\((?:i386|x86_64)\\)',
1049
  'os_replacement' => 'Mac OS X',
1050
  'os_v1_replacement' => '10',
1051
  'os_v2_replacement' => '9',
1052
  ),
1053
+ 48 =>
1054
  array (
1055
  'regex' => 'Mac_PowerPC',
1056
  'os_replacement' => 'Mac OS',
1057
  ),
1058
+ 49 =>
1059
  array (
1060
  'regex' => '(?:PPC|Intel) (Mac OS X)',
1061
  ),
1062
+ 50 =>
1063
+ array (
1064
+ 'regex' => '(Apple\\s?TV)(?:/(\\d+)\\.(\\d+))?',
1065
+ 'os_replacement' => 'ATV OS X',
1066
+ ),
1067
+ 51 =>
1068
  array (
1069
  'regex' => '(CPU OS|iPhone OS|CPU iPhone) +(\\d+)[_\\.](\\d+)(?:[_\\.](\\d+))?',
1070
  'os_replacement' => 'iOS',
1071
  ),
1072
+ 52 =>
1073
  array (
1074
  'regex' => '(iPhone|iPad|iPod); Opera',
1075
  'os_replacement' => 'iOS',
1076
  ),
1077
+ 53 =>
1078
  array (
1079
  'regex' => '(iPhone|iPad|iPod).*Mac OS X.*Version/(\\d+)\\.(\\d+)',
1080
  'os_replacement' => 'iOS',
1081
  ),
1082
+ 54 =>
 
 
 
 
 
1083
  array (
1084
  'regex' => '(CFNetwork)/(5)48\\.0\\.3.* Darwin/11\\.0\\.0',
1085
  'os_replacement' => 'iOS',
1086
  ),
1087
+ 55 =>
1088
  array (
1089
  'regex' => '(CFNetwork)/(5)48\\.(0)\\.4.* Darwin/(1)1\\.0\\.0',
1090
  'os_replacement' => 'iOS',
1091
  ),
1092
+ 56 =>
1093
  array (
1094
  'regex' => '(CFNetwork)/(5)48\\.(1)\\.4',
1095
  'os_replacement' => 'iOS',
1096
  ),
1097
+ 57 =>
1098
  array (
1099
  'regex' => '(CFNetwork)/(4)85\\.1(3)\\.9',
1100
  'os_replacement' => 'iOS',
1101
  ),
1102
+ 58 =>
1103
  array (
1104
  'regex' => '(CFNetwork)/(6)09\\.(1)\\.4',
1105
  'os_replacement' => 'iOS',
1106
  ),
1107
+ 59 =>
1108
  array (
1109
  'regex' => '(CFNetwork)/(6)(0)9',
1110
  'os_replacement' => 'iOS',
1111
  ),
1112
+ 60 =>
1113
  array (
1114
  'regex' => '(CFNetwork)/6(7)2\\.(1)\\.13',
1115
  'os_replacement' => 'iOS',
1116
  ),
1117
+ 61 =>
1118
  array (
1119
  'regex' => '(CFNetwork)/6(7)2\\.(1)\\.(1)4',
1120
  'os_replacement' => 'iOS',
1121
  ),
1122
+ 62 =>
1123
  array (
1124
  'regex' => '(CF)(Network)/6(7)(2)\\.1\\.15',
1125
  'os_replacement' => 'iOS',
1126
  'os_v1_replacement' => '7',
1127
  'os_v2_replacement' => '1',
1128
  ),
1129
+ 63 =>
1130
  array (
1131
  'regex' => '(CFNetwork)/6(7)2\\.(0)\\.(?:2|8)',
1132
  'os_replacement' => 'iOS',
1133
  ),
1134
+ 64 =>
1135
  array (
1136
  'regex' => '(CFNetwork)/709\\.1',
1137
  'os_replacement' => 'iOS',
1138
  'os_v1_replacement' => '8',
1139
  'os_v2_replacement' => '0.b5',
1140
  ),
1141
+ 65 =>
1142
+ array (
1143
+ 'regex' => '(CF)(Network)/711\\.(\\d)',
1144
+ 'os_replacement' => 'iOS',
1145
+ 'os_v1_replacement' => '8',
1146
+ ),
1147
+ 66 =>
1148
+ array (
1149
+ 'regex' => '(CF)(Network)/(720)\\.(\\d)',
1150
+ 'os_replacement' => 'Mac OS X',
1151
+ 'os_v1_replacement' => '10',
1152
+ 'os_v2_replacement' => '10',
1153
+ ),
1154
+ 67 =>
1155
  array (
1156
  'regex' => 'CFNetwork/.* Darwin/(9)\\.\\d+',
1157
  'os_replacement' => 'iOS',
1158
  'os_v1_replacement' => '1',
1159
  ),
1160
+ 68 =>
1161
  array (
1162
  'regex' => 'CFNetwork/.* Darwin/(10)\\.\\d+',
1163
  'os_replacement' => 'iOS',
1164
  'os_v1_replacement' => '4',
1165
  ),
1166
+ 69 =>
1167
  array (
1168
  'regex' => 'CFNetwork/.* Darwin/(11)\\.\\d+',
1169
  'os_replacement' => 'iOS',
1170
  'os_v1_replacement' => '5',
1171
  ),
1172
+ 70 =>
1173
  array (
1174
  'regex' => 'CFNetwork/.* Darwin/(13)\\.\\d+',
1175
  'os_replacement' => 'iOS',
1176
  'os_v1_replacement' => '6',
1177
  ),
1178
+ 71 =>
1179
  array (
1180
  'regex' => 'CFNetwork/6.* Darwin/(14)\\.\\d+',
1181
  'os_replacement' => 'iOS',
1182
  'os_v1_replacement' => '7',
1183
  ),
1184
+ 72 =>
1185
  array (
1186
  'regex' => 'CFNetwork/7.* Darwin/(14)\\.\\d+',
1187
  'os_replacement' => 'iOS',
1188
  'os_v1_replacement' => '8',
1189
  'os_v2_replacement' => '0',
1190
  ),
1191
+ 73 =>
1192
  array (
1193
  'regex' => '\\b(iOS[ /]|iPhone(?:/| v|[ _]OS[/,]|; | OS : |\\d,\\d/|\\d,\\d; )|iPad/)(\\d{1,2})[_\\.](\\d{1,2})(?:[_\\.](\\d+))?',
1194
  'os_replacement' => 'iOS',
1195
  ),
1196
+ 74 =>
1197
  array (
1198
  'regex' => '(CrOS) [a-z0-9_]+ (\\d+)\\.(\\d+)(?:\\.(\\d+))?',
1199
  'os_replacement' => 'Chrome OS',
1200
  ),
1201
+ 75 =>
1202
  array (
1203
  'regex' => '([Dd]ebian)',
1204
  'os_replacement' => 'Debian',
1205
  ),
1206
+ 76 =>
1207
  array (
1208
  'regex' => '(Linux Mint)(?:/(\\d+))?',
1209
  ),
1210
+ 77 =>
1211
  array (
1212
  'regex' => '(Mandriva)(?: Linux)?/(?:[\\d.-]+m[a-z]{2}(\\d+).(\\d))?',
1213
  ),
1214
+ 78 =>
1215
  array (
1216
  'regex' => '(Symbian[Oo][Ss])[/ ](\\d+)\\.(\\d+)',
1217
  'os_replacement' => 'Symbian OS',
1218
  ),
1219
+ 79 =>
1220
  array (
1221
  'regex' => '(Symbian/3).+NokiaBrowser/7\\.3',
1222
  'os_replacement' => 'Symbian^3 Anna',
1223
  ),
1224
+ 80 =>
1225
  array (
1226
  'regex' => '(Symbian/3).+NokiaBrowser/7\\.4',
1227
  'os_replacement' => 'Symbian^3 Belle',
1228
  ),
1229
+ 81 =>
1230
  array (
1231
  'regex' => '(Symbian/3)',
1232
  'os_replacement' => 'Symbian^3',
1233
  ),
1234
+ 82 =>
1235
  array (
1236
  'regex' => '\\b(Series 60|SymbOS|S60Version|S60V\\d|S60\\b)',
1237
  'os_replacement' => 'Symbian OS',
1238
  ),
1239
+ 83 =>
1240
  array (
1241
  'regex' => '(MeeGo)',
1242
  ),
1243
+ 84 =>
1244
  array (
1245
  'regex' => 'Symbian [Oo][Ss]',
1246
  'os_replacement' => 'Symbian OS',
1247
  ),
1248
+ 85 =>
1249
  array (
1250
  'regex' => 'Series40;',
1251
  'os_replacement' => 'Nokia Series 40',
1252
  ),
1253
+ 86 =>
1254
  array (
1255
  'regex' => 'Series30Plus;',
1256
  'os_replacement' => 'Nokia Series 30 Plus',
1257
  ),
1258
+ 87 =>
1259
  array (
1260
  'regex' => '(BB10);.+Version/(\\d+)\\.(\\d+)\\.(\\d+)',
1261
  'os_replacement' => 'BlackBerry OS',
1262
  ),
1263
+ 88 =>
1264
  array (
1265
  'regex' => '(Black[Bb]erry)[0-9a-z]+/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
1266
  'os_replacement' => 'BlackBerry OS',
1267
  ),
1268
+ 89 =>
1269
  array (
1270
  'regex' => '(Black[Bb]erry).+Version/(\\d+)\\.(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
1271
  'os_replacement' => 'BlackBerry OS',
1272
  ),
1273
+ 90 =>
1274
  array (
1275
  'regex' => '(RIM Tablet OS) (\\d+)\\.(\\d+)\\.(\\d+)',
1276
  'os_replacement' => 'BlackBerry Tablet OS',
1277
  ),
1278
+ 91 =>
1279
  array (
1280
  'regex' => '(Play[Bb]ook)',
1281
  'os_replacement' => 'BlackBerry Tablet OS',
1282
  ),
1283
+ 92 =>
1284
  array (
1285
  'regex' => '(Black[Bb]erry)',
1286
  'os_replacement' => 'BlackBerry OS',
1287
  ),
1288
+ 93 =>
1289
  array (
1290
  'regex' => '\\((?:Mobile|Tablet);.+Firefox/\\d+\\.\\d+',
1291
  'os_replacement' => 'Firefox OS',
1292
  ),
1293
+ 94 =>
1294
  array (
1295
  'regex' => '(BREW)[ /](\\d+)\\.(\\d+)\\.(\\d+)',
1296
  ),
1297
+ 95 =>
1298
  array (
1299
  'regex' => '(BREW);',
1300
  ),
1301
+ 96 =>
1302
  array (
1303
  'regex' => '(Brew MP|BMP)[ /](\\d+)\\.(\\d+)\\.(\\d+)',
1304
  'os_replacement' => 'Brew MP',
1305
  ),
1306
+ 97 =>
1307
  array (
1308
  'regex' => 'BMP;',
1309
  'os_replacement' => 'Brew MP',
1310
  ),
1311
+ 98 =>
1312
  array (
1313
  'regex' => '(GoogleTV)(?: (\\d+)\\.(\\d+)(?:\\.(\\d+))?|/[\\da-z]+)',
1314
  ),
1315
+ 99 =>
1316
  array (
1317
  'regex' => '(WebTV)/(\\d+).(\\d+)',
1318
  ),
1319
+ 100 =>
1320
  array (
1321
  'regex' => '(hpw|web)OS/(\\d+)\\.(\\d+)(?:\\.(\\d+))?',
1322
  'os_replacement' => 'webOS',
1323
  ),
1324
+ 101 =>
1325
  array (
1326
  'regex' => '(VRE);',
1327
  ),
1328
+ 102 =>
1329
  array (
1330
  'regex' => '(Fedora|Red Hat|PCLinuxOS|Puppy|Ubuntu|Kindle|Bada|Lubuntu|BackTrack|Slackware|(?:Free|Open|Net|\\b)BSD)[/ ](\\d+)\\.(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?',
1331
  ),
1332
+ 103 =>
1333
  array (
1334
  'regex' => '(Linux)[ /](\\d+)\\.(\\d+)(?:\\.(\\d+))?.*gentoo',
1335
  'os_replacement' => 'Gentoo',
1336
  ),
1337
+ 104 =>
1338
  array (
1339
  'regex' => '\\((Bada);',
1340
  ),
1341
+ 105 =>
1342
  array (
1343
  'regex' => '(Windows|Android|WeTab|Maemo)',
1344
  ),
1345
+ 106 =>
1346
  array (
1347
  'regex' => '(Ubuntu|Kubuntu|Arch Linux|CentOS|Slackware|Gentoo|openSUSE|SUSE|Red Hat|Fedora|PCLinuxOS|Gentoo|Mageia|(?:Free|Open|Net|\\b)BSD)',
1348
  ),
1349
+ 107 =>
1350
  array (
1351
  'regex' => '(Linux)(?:[ /](\\d+)\\.(\\d+)(?:\\.(\\d+))?)?',
1352
  ),
1353
+ 108 =>
1354
  array (
1355
  'regex' => 'SunOS',
1356
  'os_replacement' => 'Solaris',
1981
  ),
1982
  87 =>
1983
  array (
1984
+ 'regex' => '; *(BOBBY) Build',
1985
  'regex_flag' => 'i',
1986
  'device_replacement' => '$1',
1987
  'brand_replacement' => 'Cubot',
2158
  112 =>
2159
  array (
2160
  'regex' => '; *(Enot|ENOT)[ -]?([^;/]+) Build',
2161
+ 'device_replacement' => '$1 $2',
2162
  'brand_replacement' => 'Enot',
2163
+ 'model_replacement' => '$2',
2164
  ),
2165
  113 =>
2166
  array (
3604
  314 =>
3605
  array (
3606
  'regex' => '; *(?:Prestigio )?((?:PAP|PMP)\\d[^;/]+) Build/',
3607
+ 'device_replacement' => 'Prestigio $1',
3608
  'brand_replacement' => 'Prestigio',
3609
+ 'model_replacement' => '$1',
3610
  ),
3611
  315 =>
3612
  array (
4831
  ),
4832
  488 =>
4833
  array (
4834
+ 'regex' => '(Apple\\s?TV)',
4835
  'device_replacement' => 'AppleTV',
4836
  'brand_replacement' => 'Apple',
4837
+ 'model_replacement' => 'AppleTV',
4838
  ),
4839
  489 =>
4840
  array (
5019
  'model_replacement' => '$3',
5020
  ),
5021
  515 =>
5022
+ array (
5023
+ 'regex' => '(HbbTV)/1\\.1\\.1.*CE-HTML/1\\.\\d;(Vendor/)*(THOM[^;]*?)[;\\s](?:.*SW-Version/.*)*(LF[^;]+);?',
5024
+ 'device_replacement' => '$1',
5025
+ 'brand_replacement' => 'Thomson',
5026
+ 'model_replacement' => '$4',
5027
+ ),
5028
+ 516 =>
5029
  array (
5030
  'regex' => '(HbbTV)(?:/1\\.1\\.1)?(?: ?\\(;;;;;\\))?; *CE-HTML(?:/1\\.\\d)?; *([^ ]+) ([^;]+);',
5031
  'device_replacement' => '$1',
5032
  'brand_replacement' => '$2',
5033
  'model_replacement' => '$3',
5034
  ),
5035
+ 517 =>
5036
  array (
5037
  'regex' => '(HbbTV)/1\\.1\\.1 \\(;;;;;\\) Maple_2011',
5038
  'device_replacement' => '$1',
5039
  'brand_replacement' => 'Samsung',
5040
  ),
5041
+ 518 =>
5042
  array (
5043
  'regex' => '(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+ \\([^;]*; *(?:CUS:([^;]*)|([^;]+)) *; *([^;]*) *;.*;',
5044
  'device_replacement' => '$1',
5045
  'brand_replacement' => '$2$3',
5046
  'model_replacement' => '$4',
5047
  ),
5048
+ 519 =>
5049
  array (
5050
  'regex' => '(HbbTV)/[0-9]+\\.[0-9]+\\.[0-9]+',
5051
  'device_replacement' => '$1',
5052
  ),
5053
+ 520 =>
5054
  array (
5055
  'regex' => 'LGE; (?:Media\\/)?([^;]*);[^;]*;[^;]*;?\\); "?LG NetCast(\\.TV|\\.Media|)-\\d+',
5056
  'device_replacement' => 'NetCast$2',
5057
  'brand_replacement' => 'LG',
5058
  'model_replacement' => '$1',
5059
  ),
5060
+ 521 =>
5061
  array (
5062
  'regex' => 'InettvBrowser/[0-9]+\\.[0-9A-Z]+ \\([^;]*;(Sony)([^;]*);[^;]*;[^\\)]*\\)',
5063
  'device_replacement' => 'Inettv',
5064
  'brand_replacement' => '$1',
5065
  'model_replacement' => '$2',
5066
  ),
5067
+ 522 =>
5068
  array (
5069
  'regex' => 'InettvBrowser/[0-9]+\\.[0-9A-Z]+ \\([^;]*;([^;]*);[^;]*;[^\\)]*\\)',
5070
  'device_replacement' => 'Inettv',
5071
  'brand_replacement' => 'Generic_Inettv',
5072
  'model_replacement' => '$1',
5073
  ),
5074
+ 523 =>
5075
  array (
5076
  'regex' => '(?:InettvBrowser|TSBNetTV|NETTV|HBBTV)',
5077
  'device_replacement' => 'Inettv',
5078
  'brand_replacement' => 'Generic_Inettv',
5079
  ),
5080
+ 524 =>
5081
  array (
5082
  'regex' => 'Series60/\\d\\.\\d (LG)[\\-]?([A-Za-z0-9 \\-]+)',
5083
  'device_replacement' => '$1 $2',
5084
  'brand_replacement' => '$1',
5085
  'model_replacement' => '$2',
5086
  ),
5087
+ 525 =>
5088
  array (
5089
  'regex' => '\\b(?:LGE[ \\-]LG\\-(?:AX)?|LGE |LGE?-LG|LGE?[ \\-]|LG[ /\\-]|lg[\\-])([A-Za-z0-9]+)\\b',
5090
  'device_replacement' => 'LG $1',
5091
  'brand_replacement' => 'LG',
5092
  'model_replacement' => '$1',
5093
  ),
5094
+ 526 =>
5095
  array (
5096
  'regex' => '(?:^LG[\\-]?|^LGE[\\-/]?)([A-Za-z]+[0-9]+[A-Za-z]*)',
5097
  'device_replacement' => 'LG $1',
5098
  'brand_replacement' => 'LG',
5099
  'model_replacement' => '$1',
5100
  ),
5101
+ 527 =>
5102
  array (
5103
  'regex' => '^LG([0-9]+[A-Za-z]*)',
5104
  'device_replacement' => 'LG $1',
5105
  'brand_replacement' => 'LG',
5106
  'model_replacement' => '$1',
5107
  ),
5108
+ 528 =>
5109
  array (
5110
  'regex' => '(KIN\\.[^ ]+) (\\d+)\\.(\\d+)',
5111
  'device_replacement' => 'Microsoft $1',
5112
  'brand_replacement' => 'Microsoft',
5113
  'model_replacement' => '$1',
5114
  ),
5115
+ 529 =>
5116
  array (
5117
  'regex' => '(?:MSIE|XBMC).*\\b(Xbox)\\b',
5118
  'device_replacement' => '$1',
5119
  'brand_replacement' => 'Microsoft',
5120
  'model_replacement' => '$1',
5121
  ),
5122
+ 530 =>
5123
  array (
5124
  'regex' => '; ARM; Trident/6\\.0; Touch[\\);]',
5125
  'device_replacement' => 'Microsoft Surface RT',
5126
  'brand_replacement' => 'Microsoft',
5127
  'model_replacement' => 'Surface RT',
5128
  ),
5129
+ 531 =>
5130
  array (
5131
  'regex' => 'Motorola\\-([A-Za-z0-9]+)',
5132
  'device_replacement' => 'Motorola $1',
5133
  'brand_replacement' => 'Motorola',
5134
  'model_replacement' => '$1',
5135
  ),
5136
+ 532 =>
5137
  array (
5138
  'regex' => 'MOTO\\-([A-Za-z0-9]+)',
5139
  'device_replacement' => 'Motorola $1',
5140
  'brand_replacement' => 'Motorola',
5141
  'model_replacement' => '$1',
5142
  ),
5143
+ 533 =>
5144
  array (
5145
  'regex' => 'MOT\\-([A-z0-9][A-z0-9\\-]*)',
5146
  'device_replacement' => 'Motorola $1',
5147
  'brand_replacement' => 'Motorola',
5148
  'model_replacement' => '$1',
5149
  ),
5150
+ 534 =>
5151
  array (
5152
  'regex' => 'Nintendo WiiU',
5153
  'device_replacement' => 'Nintendo Wii U',
5154
  'brand_replacement' => 'Nintendo',
5155
  'model_replacement' => 'Wii U',
5156
  ),
5157
+ 535 =>
5158
  array (
5159
  'regex' => 'Nintendo (DS|3DS|DSi|Wii);',
5160
  'device_replacement' => 'Nintendo $1',
5161
  'brand_replacement' => 'Nintendo',
5162
  'model_replacement' => '$1',
5163
  ),
5164
+ 536 =>
5165
  array (
5166
  'regex' => '(?:Pantech|PANTECH)[ _-]?([A-Za-z0-9\\-]+)',
5167
  'device_replacement' => 'Pantech $1',
5168
  'brand_replacement' => 'Pantech',
5169
  'model_replacement' => '$1',
5170
  ),
5171
+ 537 =>
5172
  array (
5173
  'regex' => 'Philips([A-Za-z0-9]+)',
5174
  'device_replacement' => 'Philips $1',
5175
  'brand_replacement' => 'Philips',
5176
  'model_replacement' => '$1',
5177
  ),
5178
+ 538 =>
5179
  array (
5180
  'regex' => 'Philips ([A-Za-z0-9]+)',
5181
  'device_replacement' => 'Philips $1',
5182
  'brand_replacement' => 'Philips',
5183
  'model_replacement' => '$1',
5184
  ),
5185
+ 539 =>
5186
  array (
5187
  'regex' => 'SymbianOS/9\\.\\d.* Samsung[/\\-]([A-Za-z0-9 \\-]+)',
5188
  'device_replacement' => 'Samsung $1',
5189
  'brand_replacement' => 'Samsung',
5190
  'model_replacement' => '$1',
5191
  ),
5192
+ 540 =>
5193
  array (
5194
  'regex' => '(Samsung)(SGH)(i[0-9]+)',
5195
  'device_replacement' => '$1 $2$3',
5196
  'brand_replacement' => '$1',
5197
  'model_replacement' => '$2-$3',
5198
  ),
5199
+ 541 =>
5200
  array (
5201
  'regex' => 'SAMSUNG-ANDROID-MMS/([^;/]+)',
5202
  'device_replacement' => '$1',
5203
  'brand_replacement' => 'Samsung',
5204
  'model_replacement' => '$1',
5205
  ),
5206
+ 542 =>
5207
  array (
5208
  'regex' => 'SAMSUNG(?:; |[ -/])([A-Za-z0-9\\-]+)',
5209
  'regex_flag' => 'i',
5211
  'brand_replacement' => 'Samsung',
5212
  'model_replacement' => '$1',
5213
  ),
5214
+ 543 =>
5215
  array (
5216
  'regex' => '(Dreamcast)',
5217
  'device_replacement' => 'Sega $1',
5218
  'brand_replacement' => 'Sega',
5219
  'model_replacement' => '$1',
5220
  ),
5221
+ 544 =>
5222
  array (
5223
  'regex' => '^SIE-([A-Za-z0-9]+)',
5224
  'device_replacement' => 'Siemens $1',
5225
  'brand_replacement' => 'Siemens',
5226
  'model_replacement' => '$1',
5227
  ),
5228
+ 545 =>
5229
  array (
5230
  'regex' => 'Softbank/[12]\\.0/([A-Za-z0-9]+)',
5231
  'device_replacement' => 'Softbank $1',
5232
  'brand_replacement' => 'Softbank',
5233
  'model_replacement' => '$1',
5234
  ),
5235
+ 546 =>
5236
  array (
5237
  'regex' => 'SonyEricsson ?([A-Za-z0-9\\-]+)',
5238
  'device_replacement' => 'Ericsson $1',
5239
  'brand_replacement' => 'SonyEricsson',
5240
  'model_replacement' => '$1',
5241
  ),
5242
+ 547 =>
5243
  array (
5244
  'regex' => 'Android [^;]+; ([^ ]+) (Sony)/',
5245
  'device_replacement' => '$2 $1',
5246
  'brand_replacement' => '$2',
5247
  'model_replacement' => '$1',
5248
  ),
5249
+ 548 =>
5250
  array (
5251
  'regex' => '(Sony)(?:BDP\\/|\\/)?([^ /;\\)]+)[ /;\\)]',
5252
  'device_replacement' => '$1 $2',
5253
  'brand_replacement' => '$1',
5254
  'model_replacement' => '$2',
5255
  ),
5256
+ 549 =>
5257
  array (
5258
  'regex' => 'Puffin/[\\d\\.]+IT',
5259
  'device_replacement' => 'iPad',
5260
  'brand_replacement' => 'Apple',
5261
  'model_replacement' => 'iPad',
5262
  ),
5263
+ 550 =>
5264
  array (
5265
  'regex' => 'Puffin/[\\d\\.]+IP',
5266
  'device_replacement' => 'iPhone',
5267
  'brand_replacement' => 'Apple',
5268
  'model_replacement' => 'iPhone',
5269
  ),
5270
+ 551 =>
5271
  array (
5272
  'regex' => 'Puffin/[\\d\\.]+AT',
5273
  'device_replacement' => 'Generic Tablet',
5274
  'brand_replacement' => 'Generic',
5275
  'model_replacement' => 'Tablet',
5276
  ),
5277
+ 552 =>
5278
  array (
5279
  'regex' => 'Puffin/[\\d\\.]+AP',
5280
  'device_replacement' => 'Generic Smartphone',
5281
  'brand_replacement' => 'Generic',
5282
  'model_replacement' => 'Smartphone',
5283
  ),
5284
+ 553 =>
5285
  array (
5286
  'regex' => 'Android[\\- ][\\d]+\\.[\\d]+; [A-Za-z]{2}\\-[A-Za-z]{0,2}; WOWMobile (.+) Build',
5287
  'brand_replacement' => 'Generic_Android',
5288
  'model_replacement' => '$1',
5289
  ),
5290
+ 554 =>
5291
  array (
5292
  'regex' => 'Android[\\- ][\\d]+\\.[\\d]+\\-update1; [A-Za-z]{2}\\-[A-Za-z]{0,2} *; *((?:(?!Build).)+) Build',
5293
  'brand_replacement' => 'Generic_Android',
5294
  'model_replacement' => '$1',
5295
  ),
5296
+ 555 =>
5297
  array (
5298
  'regex' => 'Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[A-Za-z]{2}[_\\-][A-Za-z]{0,2}\\-? *; *((?:(?!Build).)+) Build',
5299
  'brand_replacement' => 'Generic_Android',
5300
  'model_replacement' => '$1',
5301
  ),
5302
+ 556 =>
5303
  array (
5304
  'regex' => 'Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[A-Za-z]{0,2}\\- *; *((?:(?!Build).)+) Build',
5305
  'brand_replacement' => 'Generic_Android',
5306
  'model_replacement' => '$1',
5307
  ),
5308
+ 557 =>
5309
  array (
5310
  'regex' => 'Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *[a-z]{0,2}[_\\-]?[A-Za-z]{0,2};? Build',
5311
  'brand_replacement' => 'Generic',
5312
  'model_replacement' => 'Smartphone',
5313
  ),
5314
+ 558 =>
5315
  array (
5316
  'regex' => 'Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}; *\\-?[A-Za-z]{2}; *((?:(?!Build).)+) Build',
5317
  'brand_replacement' => 'Generic_Android',
5318
  'model_replacement' => '$1',
5319
  ),
5320
+ 559 =>
5321
  array (
5322
  'regex' => 'Android[\\- ][\\d]+(?:\\.[\\d]+){1,2}(?:;.*)?; *((?:(?! Build).)+) Build',
5323
  'brand_replacement' => 'Generic_Android',
5324
  'model_replacement' => '$1',
5325
  ),
5326
+ 560 =>
5327
  array (
5328
  'regex' => '(GoogleTV)',
5329
  'brand_replacement' => 'Generic_Inettv',
5330
  'model_replacement' => '$1',
5331
  ),
5332
+ 561 =>
5333
  array (
5334
  'regex' => '(WebTV)/\\d+.\\d+',
5335
  'brand_replacement' => 'Generic_Inettv',
5336
  'model_replacement' => '$1',
5337
  ),
5338
+ 562 =>
5339
  array (
5340
  'regex' => '(Android 3\\.\\d|Opera Tablet|Tablet; .+Firefox/|Android.*(?:Tab|Pad))',
5341
  'regex_flag' => 'i',
5343
  'brand_replacement' => 'Generic',
5344
  'model_replacement' => 'Tablet',
5345
  ),
5346
+ 563 =>
5347
  array (
5348
  'regex' => '(Symbian|\\bS60(Version|V\\d)|\\bS60\\b|\\((Series 60|Windows Mobile|Palm OS|Bada); Opera Mini|Windows CE|Opera Mobi|BREW|Brew|Mobile; .+Firefox/|iPhone OS|Android|MobileSafari|Windows *Phone|\\(webOS/|PalmOS)',
5349
  'device_replacement' => 'Generic Smartphone',
5350
  'brand_replacement' => 'Generic',
5351
  'model_replacement' => 'Smartphone',
5352
  ),
5353
+ 564 =>
5354
  array (
5355
  'regex' => '(hiptop|avantgo|plucker|xiino|blazer|elaine)',
5356
  'regex_flag' => 'i',
5358
  'brand_replacement' => 'Generic',
5359
  'model_replacement' => 'Smartphone',
5360
  ),
5361
+ 565 =>
5362
  array (
5363
+ 'regex' => '(bot|zao|borg|DBot|oegp|silk|Xenu|zeal|^NING|CCBot|crawl|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|^Java/|^JNLP/|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|spider|msnbot|msrbot|vortex|^vortex|crawler|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|bingbot|openbot|gigabot|furlbot|polybot|seekbot|^voyager|archiver|Icarus6j|mogimogi|Netvibes|blitzbot|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|SeznamBot|ProoXiBot|wsr\\-agent|Squrl Java|EtaoSpider|PaperLiBot|SputnikBot|A6\\-Indexer|netresearch|searchsight|baiduspider|YisouSpider|ICC\\-Crawler|http%20client|Python-urllib|dataparksearch|converacrawler|Screaming Frog|AppEngine-Google|YahooCacheSystem|fast\\-webcrawler|Sogou Pic Spider|semanticdiscovery|Innovazion Crawler|facebookexternalhit|Google.*/\\+/web/snippet|Google-HTTP-Java-Client|BlogBridge|IlTrovatore-Setaccio|InternetArchive|GomezAgent|WebThumbnail|heritrix|NewsGator|PagePeeker|Reaper|ZooShot|holmes)',
5364
  'regex_flag' => 'i',
5365
  'device_replacement' => 'Spider',
5366
  'brand_replacement' => 'Spider',
5367
  'model_replacement' => 'Desktop',
5368
  ),
5369
+ 566 =>
5370
  array (
5371
  'regex' => '^(1207|3gso|4thp|501i|502i|503i|504i|505i|506i|6310|6590|770s|802s|a wa|acer|acs\\-|airn|alav|asus|attw|au\\-m|aur |aus |abac|acoo|aiko|alco|alca|amoi|anex|anny|anyw|aptu|arch|argo|bmobile|bell|bird|bw\\-n|bw\\-u|beck|benq|bilb|blac|c55/|cdm\\-|chtm|capi|comp|cond|dall|dbte|dc\\-s|dica|ds\\-d|ds12|dait|devi|dmob|doco|dopo|dorado|el(?:38|39|48|49|50|55|58|68)|el[3456]\\d{2}dual|erk0|esl8|ex300|ez40|ez60|ez70|ezos|ezze|elai|emul|eric|ezwa|fake|fly\\-|fly_|g\\-mo|g1 u|g560|gf\\-5|grun|gene|go.w|good|grad|hcit|hd\\-m|hd\\-p|hd\\-t|hei\\-|hp i|hpip|hs\\-c|htc |htc\\-|htca|htcg)',
5372
  'regex_flag' => 'i',
5374
  'brand_replacement' => 'Generic',
5375
  'model_replacement' => 'Feature Phone',
5376
  ),
5377
+ 567 =>
5378
  array (
5379
  'regex' => '^(htcp|htcs|htct|htc_|haie|hita|huaw|hutc|i\\-20|i\\-go|i\\-ma|i\\-mobile|i230|iac|iac\\-|iac/|ig01|im1k|inno|iris|jata|kddi|kgt|kgt/|kpt |kwc\\-|klon|lexi|lg g|lg\\-a|lg\\-b|lg\\-c|lg\\-d|lg\\-f|lg\\-g|lg\\-k|lg\\-l|lg\\-m|lg\\-o|lg\\-p|lg\\-s|lg\\-t|lg\\-u|lg\\-w|lg/k|lg/l|lg/u|lg50|lg54|lge\\-|lge/|leno|m1\\-w|m3ga|m50/|maui|mc01|mc21|mcca|medi|meri|mio8|mioa|mo01|mo02|mode|modo|mot |mot\\-|mt50|mtp1|mtv |mate|maxo|merc|mits|mobi|motv|mozz|n100|n101|n102|n202|n203|n300|n302|n500|n502|n505|n700|n701|n710|nec\\-|nem\\-|newg|neon)',
5380
  'regex_flag' => 'i',
5382
  'brand_replacement' => 'Generic',
5383
  'model_replacement' => 'Feature Phone',
5384
  ),
5385
+ 568 =>
5386
  array (
5387
  'regex' => '^(netf|noki|nzph|o2 x|o2\\-x|opwv|owg1|opti|oran|ot\\-s|p800|pand|pg\\-1|pg\\-2|pg\\-3|pg\\-6|pg\\-8|pg\\-c|pg13|phil|pn\\-2|pt\\-g|palm|pana|pire|pock|pose|psio|qa\\-a|qc\\-2|qc\\-3|qc\\-5|qc\\-7|qc07|qc12|qc21|qc32|qc60|qci\\-|qwap|qtek|r380|r600|raks|rim9|rove|s55/|sage|sams|sc01|sch\\-|scp\\-|sdk/|se47|sec\\-|sec0|sec1|semc|sgh\\-|shar|sie\\-|sk\\-0|sl45|slid|smb3|smt5|sp01|sph\\-|spv |spv\\-|sy01|samm|sany|sava|scoo|send|siem|smar|smit|soft|sony|t\\-mo|t218|t250|t600|t610|t618|tcl\\-|tdg\\-|telm|tim\\-|ts70|tsm\\-|tsm3|tsm5|tx\\-9|tagt)',
5388
  'regex_flag' => 'i',
5390
  'brand_replacement' => 'Generic',
5391
  'model_replacement' => 'Feature Phone',
5392
  ),
5393
+ 569 =>
5394
  array (
5395
  'regex' => '^(talk|teli|topl|tosh|up.b|upg1|utst|v400|v750|veri|vk\\-v|vk40|vk50|vk52|vk53|vm40|vx98|virg|vertu|vite|voda|vulc|w3c |w3c\\-|wapj|wapp|wapu|wapm|wig |wapi|wapr|wapv|wapy|wapa|waps|wapt|winc|winw|wonu|x700|xda2|xdag|yas\\-|your|zte\\-|zeto|aste|audi|avan|blaz|brew|brvw|bumb|ccwa|cell|cldc|cmd\\-|dang|eml2|fetc|hipt|http|ibro|idea|ikom|ipaq|jbro|jemu|jigs|keji|kyoc|kyok|libw|m\\-cr|midp|mmef|moto|mwbp|mywa|newt|nok6|o2im|pant|pdxg|play|pluc|port|prox|rozo|sama|seri|smal|symb|treo|upsi|vx52|vx53|vx60|vx61|vx70|vx80|vx81|vx83|vx85|wap\\-|webc|whit|wmlb|xda\\-|xda_)',
5396
  'regex_flag' => 'i',
5398
  'brand_replacement' => 'Generic',
5399
  'model_replacement' => 'Feature Phone',
5400
  ),
5401
+ 570 =>
5402
  array (
5403
  'regex' => '^(Ice)$',
5404
  'device_replacement' => 'Generic Feature Phone',
5405
  'brand_replacement' => 'Generic',
5406
  'model_replacement' => 'Feature Phone',
5407
  ),
5408
+ 571 =>
5409
  array (
5410
  'regex' => '(wap[\\-\\ ]browser|maui|netfront|obigo|teleca|up\\.browser|midp|Opera Mini)',
5411
  'regex_flag' => 'i',
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <package>
3
  <name>Mzax_Emarketing</name>
4
- <version>0.2.6</version>
5
  <stability>beta</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License v. 3.0 (OSL-3.0)</license>
7
  <channel>community</channel>
@@ -42,9 +42,9 @@ This project is currently in an early beta release, but it is already quite powe
42
  <email>mail@jacobsiefer.de</email>
43
  </author>
44
  </authors>
45
- <date>2015-07-07</date>
46
- <time>5:03:36</time>
47
- <contents><target name="mage"><file name="LICENSE" hash="cbbe04980244d5b18963e94de0ddea15"/><dir name="app"><dir name="code"><dir name="community"><dir name="Mzax"><dir name="Emarketing"><dir name="Block"><dir name="Campaign"><dir name="Edit"><file name="Form.php" hash="b7b05f1e5e36f9db8e62b5ed110e2c42"/><dir name="Medium"><file name="Abstract.php" hash="b6fc79dd77de9a94b92482dcc2c28f98"/><dir name="Email"><dir name="Tab"><file name="Inbox.php" hash="372bc1c05a2ed7bdf06b9f54eb46fcc1"/><file name="Outbox.php" hash="4e61dfb4d073f36c570e953a27da05a6"/></dir></dir><file name="Email.php" hash="6fa30cfec9a378731fa91011b5e8e81e"/></dir><dir name="Tab"><dir name="Content"><file name="Original.php" hash="ae4dea4b9bb0efc1526d15b359ff7b0b"/><file name="Variation.php" hash="2b2defdebc29c5fe0016327d1bb4dbe7"/></dir><file name="Content.php" hash="96c5aca198e099ef8992e9eb7a0f3d19"/><file name="Errors.php" hash="e2dfc16ec4755812be43560f818a794f"/><file name="Filters.php" hash="e4126ae2dd3b6f809b95686ccb4311b8"/><file name="Inbox.php" hash="981ee4fbbb11ec0a645d1c91197470da"/><file name="Medium.php" hash="e87793aa8c428b033081ba509141c0be"/><dir name="Recipients"><file name="Grid.php" hash="ac7b052a4172e60da5081a7aa4dbe364"/></dir><file name="Recipients.php" hash="df9835cf0661b0123950fd04cd026740"/><file name="Report.php" hash="c866f1d54406239cfe071944ce6d84ea"/><file name="Settings.php" hash="bcb42bc295fbecabbdfe470ef48ced9d"/><file name="Tasks.php" hash="7b3859f0a98c03217f7559eb1c3a4a5a"/><file name="Test.php" hash="f992af45337c379c4b00d878a110bd32"/></dir><file name="Tabs.php" hash="13d08a45753511d2a124d76657fffc8e"/></dir><file name="Edit.php" hash="9993bb66bebff9e1cf38dd2df7409d43"/><dir name="Grid"><dir name="Filter"><file name="Filter.php" hash="52b31badfd5c4487f626c3ea0e240b0b"/></dir><dir name="Renderer"><file name="Action.php" hash="66b593d6b243e75676fba3ee76179b63"/><file name="Filter.php" hash="337ad5870e5c655722de5f012f12f6e2"/><file name="SendMail.php" hash="bf5bc2441f8784f0bbdbb5422e2828e4"/><file name="Sender.php" hash="5d1c6b421c14ba88a9eeecf834586cfd"/><file name="Stats.php" hash="c8f0f5c8ce7d7960755a98307d766888"/></dir></dir><file name="Grid.php" hash="c55116172f9a29a07106a1fc16f50efd"/><file name="New.php" hash="5e25393d6ef2f6676c19f736585188c3"/><file name="Preview.php" hash="145edb82660bf13abce9883c76d5ab6b"/><dir name="SendTestMail"><file name="Form.php" hash="3d26ee2b5f06df61693621e3e588baf8"/></dir><file name="SendTestMail.php" hash="2ea16d3fb6cf7253203e61343be97db5"/><dir name="Test"><file name="Emulate.php" hash="dfa434c63911a7ee9245dc213f60a8df"/></dir><file name="Test.php" hash="1d8b4933593cb974201b2f6c222cf5d6"/><file name="View.php" hash="aba1c3a7f4af1b9c02a60aec40258279"/></dir><dir name="Chart"><file name="Abstract.php" hash="ef1309e233bdd3b78808a05da8190fcf"/><file name="Area.php" hash="5c7fcb6b63a4d366418ca71906a19c97"/><file name="Bar.php" hash="cffcecd6c950e4dcb2d3ad8d1c4daf2f"/><file name="Column.php" hash="0bedd238f933388888bf2216ddc5dbe4"/><file name="Geo.php" hash="15306e20cd1b4e703ecc34b3aba7f197"/><file name="Line.php" hash="1180078c5ca4e72f5ef0b9a59c275cb0"/><file name="Pie.php" hash="e249bf4bd5b1f47e48ed056eaeb713e1"/><file name="Scatter.php" hash="dba61832677a65290f703f1c25fd5ed7"/><file name="SteppedArea.php" hash="35a2e4e5253e3af209159bc0424db8e4"/><dir name="Widget"><file name="Container.php" hash="9b6ef8f254a577d761bf45104bef233b"/><file name="Geo.php" hash="87dfdef61c309c2f5454b3087cc9adbe"/><file name="Tab.php" hash="ed2a5ba55a947c74afb477eaa1c2a505"/></dir></dir><file name="Conditions.php" hash="31ba676455fb25f528ecb245054894f5"/><file name="Editable.php" hash="a94c503fbfe6656e6b51b23e3d0dad8d"/><dir name="Filter"><dir name="Object"><file name="Grid.php" hash="d4afc4ff2c17635638daf04676d1e56a"/></dir><dir name="Test"><file name="Recursive.php" hash="b4aa5768b4dd857ebe9f3b33b23814c7"/><file name="Single.php" hash="c47a421bdf4c4fb6cd5a1c10e8fd8a96"/></dir></dir><file name="Filters.php" hash="24bd247d18927ec4991bfd59f6d6598b"/><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Action.php" hash="39362ef76cc908a6e6815f395ca03f04"/><file name="Campaign.php" hash="62f81ee5ec80beb5f42374d2f6d97574"/><file name="Recipient.php" hash="53978e4b88b13ee7f5b6ea2de83fd7e3"/><file name="Size.php" hash="7bb8e97374f69ff5d0190b0ab9343f0b"/></dir></dir></dir><dir name="Inbox"><dir name="Email"><file name="Form.php" hash="904a8bb03130e0fd2a3ad4a408c7953c"/></dir><file name="Email.php" hash="cb77c28aca9459ba672a3fdc018a783c"/><file name="Grid.php" hash="7ea63a2f356d3bb1e261789cd7a9fc00"/><file name="View.php" hash="5ef48783e180bd609f4c8240df4bac17"/></dir><dir name="Outbox"><dir name="Email"><file name="Form.php" hash="185decc0c6b14cde8ffdf803e3a19f5e"/></dir><file name="Email.php" hash="1cd4d3c6637403b08fb8faf92dba7ead"/><file name="Grid.php" hash="499bffad293945e002a58193485a26ed"/><file name="View.php" hash="5b38316af43a2aabe77dfb8dd5597a7a"/></dir><dir name="Recipients"><dir name="Column"><dir name="Renderer"><file name="Attribute.php" hash="8c8ae21ec05b688b3026fc32cd3df1a7"/><file name="Object.php" hash="6440f7645494db4af61e970d32d87b8c"/></dir></dir><file name="Grid.php" hash="f18cae3d9f46dc99a18d91819c892fb8"/></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="DomainThreshold.php" hash="8f47adcb07ea23e59c5505ca5148a933"/><file name="MailStorage.php" hash="f3eddd4b4ce4861eed63e3c27867b4ce"/></dir></dir></dir></dir><dir name="Template"><dir name="Edit"><file name="Form.php" hash="dd52b0f390407b7cdeb515ffd61a201e"/></dir><file name="Edit.php" hash="5836438d1d0dc8425bdb8a22edf43d55"/><file name="Grid.php" hash="57f5340c9f0f741eed5fe0b85ae9cff3"/><dir name="Upload"><file name="Form.php" hash="ea8ef76fe83c11adb14effeb14291bf1"/></dir><file name="Upload.php" hash="a3c77ebaeb32dd49f3f69a4fe77efa3c"/><file name="View.php" hash="82f1340f6121509dfa2dd05f78c7c324"/></dir><dir name="Tracker"><dir name="Edit"><file name="Form.php" hash="c950390dcaee4ea12f5da03d40ad9f59"/><dir name="Tab"><file name="Conditions.php" hash="b0fd3caa911c2354f454440a2a7de8b2"/><file name="GoalType.php" hash="6bf8807e000f1d2cb60f4659b3dfee58"/><file name="Settings.php" hash="34e0e5aa543346a1390a4bab9f690cc6"/><file name="Tasks.php" hash="3136d64b04a0135ff980c84b4a1bec33"/><file name="Test.php" hash="a31f4fb64f50132815fdf11b1007a7f2"/></dir><file name="Tabs.php" hash="52f5a2ecbed244ecc2377b462f6b14dc"/></dir><file name="Edit.php" hash="651b0a427eed91022e71d5361446206e"/><file name="Grid.php" hash="da8e0cc75aa95b19ac67a2a95ff7aabd"/><file name="New.php" hash="2deca503a30b489f21d96b9fecaf57c6"/><dir name="Test"><file name="Emulate.php" hash="d3fc3bd4a315f6462b342a75256c7480"/></dir><file name="Test.php" hash="9f9a421c74e4ca7045ac842d49014a8b"/><dir name="Upload"><file name="Form.php" hash="6e06cb39ce169aef4d7381950cbc5569"/></dir><file name="Upload.php" hash="c22214cf7207d69985682986c9f2a755"/><file name="View.php" hash="6faff47c8e6dc5700ea9ce5233f1fe61"/></dir><file name="Unsubscribe.php" hash="e18314e8434f578ac9b1f5a728b205a8"/></dir><dir name="Db"><file name="Select.php" hash="1eefdabd69aa6e61cc98b31b1991d3a1"/></dir><dir name="Helper"><file name="Campaign.php" hash="13f8e3a7af7da24053fde75fa96417f0"/><file name="Data.php" hash="953255a92b6c74f840b4cc68281695e7"/><file name="Newsletter.php" hash="83d7f1fecb8181e0c35d65626affd1c6"/><file name="Request.php" hash="aea4c42a8bfbdbc6aea3b13d9b7656fb"/><file name="SqlFormatter.php" hash="5278521539cc3073d35bad3146584f94"/></dir><file name="LICENSE" hash="cbbe04980244d5b18963e94de0ddea15"/><dir name="Model"><dir name="Campaign"><file name="Content.php" hash="9885adaf429b368e865c204588d5c43c"/><file name="Variation.php" hash="78c36ca3560f4ed5e94474da47c8fbd4"/></dir><file name="Campaign.php" hash="d0bced5ff2fcd1e5ea03e91cbf4f477f"/><dir name="Conversion"><dir name="Goal"><file name="Abstract.php" hash="3d8da29158491c265bbebd49e8c437ea"/><file name="Orders.php" hash="3e5e4128cc16245fddebfaea5574be59"/></dir><file name="Goal.php" hash="968f1bcc6c4d3d67d79ae6691936f8b7"/><file name="Select.php" hash="4f169a92c3321893f372f2b59386f5d7"/><file name="Tracker.php" hash="255dbd9f5caabc4ef5ea1e050bcb494b"/></dir><file name="DomainThrottle.php" hash="a7ea562f4e0b0e9bb8267f1db0082710"/><file name="Email.php" hash="318845509fca2d0733ac57d2f1d3e08c"/><dir name="Form"><dir name="Element"><file name="Ace.php" hash="9fe24d371f573ced621df83310f5f814"/><file name="Credits.php" hash="36e1f907618bb378d1cbe33069e32e7d"/><file name="EmailEditor.php" hash="f54836b29848274005df4d660e2f5cdf"/><file name="Info.php" hash="ac153e62bd859e68c1494cc34f2c3d08"/><file name="TemplateEditor.php" hash="4d040c14a3fc103f9f5828c59f13f7d4"/><file name="Textarea.php" hash="6f9a6aa9011bcfd47c807d1eb2d8af46"/><file name="Wildselect.php" hash="9e3427a7eddb1fca4302f209ac702671"/></dir></dir><file name="Goal.php" hash="32870a85e90b67da036cbd44489e52db"/><dir name="Inbox"><dir name="Bounce"><dir name="Detector"><file name="Abstract.php" hash="b40fa4430d95e468cb8564a2283234a7"/><file name="Recipient.php" hash="56d7cc93c9672034e3c507e1d3aec507"/><file name="Store.php" hash="bee1161ec194a7a09d9f1ea417c38434"/><file name="Unsubscribe.php" hash="cada6876159829a0f29fb280d2058f6e"/></dir></dir><dir name="Email"><file name="Collector.php" hash="500bee5890877adbd7d19d544a9df374"/><dir name="Pull"><file name="Abstract.php" hash="6ade54fb39eefe5665ccf5648c9c094d"/><file name="Storage.php" hash="53c990dd7719c4d9feabeaca839ec170"/></dir></dir><file name="Email.php" hash="e1a7876f88a29c3ea3a49d2d77b09bb4"/></dir><file name="Inbox.php" hash="3b372fee6dfd6d43d3f8f4a4c3adb8e0"/><dir name="Link"><file name="Reference.php" hash="c559132b8055eeb29c6a657541058e49"/></dir><file name="Link.php" hash="b36470937c14b399ab87c01078231ac4"/><dir name="Medium"><file name="Abstract.php" hash="6050c4986a06c10ac7a3602611b0783f"/><dir name="Email"><file name="Composer.php" hash="b63b7e360af28679f7e16d8bb64d1fbd"/><file name="Filter.php" hash="e709ca3662648423d83a29bf31cce3c9"/><file name="Processor.php" hash="8634f7ac2665ee22d53b10ee4007e3ef"/><file name="Snippets.php" hash="b5205e4eba225a01d9e075b298f590c1"/></dir><file name="Email.php" hash="970ffe11b833adf3020b300160c928a8"/></dir><file name="Medium.php" hash="18cc47627bfabb845f43713eb7bae22f"/><dir name="Object"><file name="Abstract.php" hash="5f5d8a18665b39b98c4e77a5cfbfb9f2"/><file name="Address.php" hash="70a81de5b04f6830c5dde685b8a06734"/><dir name="Collection"><file name="Item.php" hash="68152df38bce0a900ce074febff31b6c"/></dir><file name="Collection.php" hash="d2b1870f3e2f66d524b3b9df8b4dce32"/><dir name="Customer"><file name="Address.php" hash="eb4c2f310dea973495b26bd713e874b5"/></dir><file name="Customer.php" hash="07c0bc560d954ef73a693af5ce932464"/><dir name="Filter"><file name="Abstract.php" hash="8f9a52c70438faab8805aff212d87755"/><dir name="Address"><file name="City.php" hash="9f50fd2717980d7fa82cd280e90eb227"/><file name="Country.php" hash="92e306be628bae9e253fd1126553f59b"/><file name="Postcode.php" hash="dd7aedc0c2724e56b75acb455583be08"/><file name="Region.php" hash="8d77a791d0be08bb023c2ca6f9796f58"/><file name="Street.php" hash="96b1fcf006eeea2bd9d1eb69ad44cace"/></dir><file name="Attribute.php" hash="879092bc5f73d34989c45362462883cc"/><dir name="Campaign"><file name="Goal.php" hash="9130862edfc1725d4da24c6b3565da74"/><dir name="Recipient"><file name="Abstract.php" hash="5549c4f3434f11a4bee69f6ba3095934"/><file name="Interact.php" hash="9956bfdb2cfbd21501381ca6fb454db2"/></dir></dir><file name="Column.php" hash="870ecd0be64a934b3e51337eb02ca3d2"/><file name="Combine.php" hash="0a60b4709f61f4818670cda3d9047624"/><file name="Component.php" hash="9f6f533ce928c7b04d7a648af21be3b5"/><dir name="Customer"><file name="Abstract.php" hash="52957dadaf85bc28a8337ac31ece6202"/><dir name="Address"><file name="Attribute.php" hash="40a2eeea9241377eaa1af3653f426ff4"/></dir><file name="Address.php" hash="280eb63bc72ea7e3e91ca280a7e9ab1d"/><file name="Attribute.php" hash="31e2275639f31090901397b3747b3411"/><file name="Lastlogin.php" hash="eafc73d3b0ee93c07934afe5243546a9"/><file name="Name.php" hash="e39ab4a70b02e1b8815c52fea51000f5"/><file name="Order.php" hash="278ea24fe2f70233fbd7ed2ecaa588eb"/></dir><file name="Main.php" hash="be8c4356b3aaa4c160a5c7476bc9d776"/><file name="Newsletter.php" hash="15b5baa964927b5d70ec54db8762e2b5"/><dir name="Order"><file name="Abstract.php" hash="af9ea39c15a636a3900e5daa7710ef7d"/><file name="Address.php" hash="cbb01b972447356a32d003c75297a571"/><file name="Campaign.php" hash="544f0d3d3c12921be09061839bbe9e5a"/><dir name="Item"><file name="Abstract.php" hash="efdf455dbadde04aafc34df77be2b3c8"/><file name="Table.php" hash="d8c61535711f11070ad5be1e676f32bd"/></dir><file name="Items.php" hash="9ff5e9fc601aa8cb2f1eeaa3ac31b85e"/><file name="Previous.php" hash="99b3d4185f92a9066fea3c801833f063"/><file name="Table.php" hash="c9e4930d4b920f21851f047b46bd65e4"/></dir><dir name="Product"><file name="Abstract.php" hash="113eac850e897252f15eb65bc21bae87"/><file name="Attribute.php" hash="f29ebb8646e529b3220d292cc00473a4"/><file name="Category.php" hash="01576bcfea93ddd1702552bf6544ee76"/></dir><dir name="Quote"><file name="Abstract.php" hash="612bfa63d595032480b50adb368e56cc"/><file name="Address.php" hash="7adfefe40f11cba5093408336b3c31ab"/><dir name="Item"><file name="Table.php" hash="6c259a3c6915c0248610081defe0177e"/></dir><file name="Items.php" hash="f6d953d9e51b0b4edf3b98cc18aaedb6"/><file name="Table.php" hash="7f69348eaabf95f37765e14e6e90f0e3"/></dir><file name="Table.php" hash="19ed77c7a29f9f6f1f48b5d91432c3f1"/></dir><file name="Filter.php" hash="dca1086af8038acd1588abfbac88939a"/><file name="Order.php" hash="ab91e6fa973ab0f88c7ef01b72f79afc"/><file name="OrderAddress.php" hash="7d829f6a54150716ee35e014ac4a3262"/><file name="OrderItem.php" hash="d64940cb9186b56ac194d2ca274799fd"/><file name="Product.php" hash="3ac7bf6dac85b16b9a326a0b107ddd08"/><file name="Quote.php" hash="a6c044c20bd076b76e2005513bee92f5"/><file name="QuoteAddress.php" hash="540642ea833ad8c75224f09d5fae9e44"/><file name="Recipient.php" hash="42ba7cd8588de98b8ff12dc9694df2d8"/><file name="Subscriber.php" hash="940cfcf2f26939997940e125cffe217f"/></dir><dir name="Observer"><file name="Abstract.php" hash="4741a39c0c9ee8af3578d44664341a6c"/><file name="Cron.php" hash="fe7a9eb1166c65ca1a25c3c0bbaa72f4"/><file name="Customer.php" hash="6ef03ee48d984e1db94e7ccd51bb487a"/><file name="Goal.php" hash="c152c70f56fd80e12e783cbf13188442"/><file name="Order.php" hash="4d6ec19b9c0a3992b7b822c548070a62"/></dir><file name="Observer.php" hash="c08fa923812b2a5deb4a54865bb3005e"/><dir name="Outbox"><file name="Email.php" hash="871eb6f0a0dc458e8075c4d26f09b544"/><dir name="Transporter"><file name="File.php" hash="458e5f0b856cb469e38f4a9ad0903131"/><file name="Interface.php" hash="06438109d0558a1c45b1a76a7f0a81e4"/><file name="Sendmail.php" hash="bcee88a26f0ba59e27cfd27a94e68ff9"/><file name="Smtp.php" hash="7f93fcdc7e1ece212a24ec8d380d5163"/></dir><file name="Transporter.php" hash="7b4c964e037291ff3efd29a391fbf82a"/></dir><file name="Outbox.php" hash="b891926f446c9e657bb81e0ed7863a5a"/><file name="Premailer.php" hash="6df4e0a420c8b7880bd7eef195d990a1"/><dir name="Recipient"><file name="Error.php" hash="fd0169c2f11c826f70e9c5c368ccf4b0"/><dir name="Provider"><file name="Abstract.php" hash="5c531b458f03b3604a274ce6d40ccf6d"/><file name="Customer.php" hash="ac41febb95dad078419a03487cd1c76c"/><file name="Newsletter.php" hash="7d907298f8bfe5956c3a26a5fd2cedf4"/><file name="Order.php" hash="94e30eaa9a38fb70599b3bb3fab8569e"/><file name="Quote.php" hash="052873fdd5ea8a22d94dc4c82a9ef4c6"/></dir><file name="Provider.php" hash="a458800365cdb2056fb8da0ef2e07c71"/></dir><file name="Recipient.php" hash="504a433d963e1571e7c98d6b642ac8c4"/><dir name="Report"><dir name="Aggregator"><file name="Abstract.php" hash="f1875662d6df834dad3e235edc811903"/><file name="Campaign.php" hash="486ca0e6b8faec92d658a0a83b6c8237"/><dir name="Dimension"><file name="Abstract.php" hash="c92ccc082fba90f711f433aab07bae4f"/><file name="Country.php" hash="7867f176579fb4c55a1cf0a5f9ed790a"/><file name="Dayofweek.php" hash="06f7a8c68eea454c8aca8088eaae5ff1"/><file name="DeviceBrand.php" hash="c6bc58384eea3bc31d60d947d9309c45"/><file name="DeviceType.php" hash="a106a07e415b7ccffc19ef4629e584e1"/><file name="Hour.php" hash="c34efe14b17af3b417659df39b785c5b"/><file name="Os.php" hash="5c9b8a019b1adc34b6e8dea382819647"/><file name="Region.php" hash="4f5bc49524da548d959b60cc741d9928"/><file name="Useragent.php" hash="5e2257b31d1d717952eddbf6eed52a99"/></dir><file name="Dimension.php" hash="26b026e9f7f6dd23f0ca15a78350ffa5"/><file name="Events.php" hash="c9f2b25fef1fc7bab347a4f6f63719a5"/><file name="Goals.php" hash="26c917adee4aff2be126d68b0e32c64b"/><file name="Rates.php" hash="7cb8f5a92f0848a0669d569656c5abfa"/><file name="Recipient.php" hash="2ef8aecbee52f62ba1dfcb4713f0d89e"/><file name="Tracker.php" hash="997481b71586dab2e5701fdf7ca5ead0"/></dir><file name="Aggregator.php" hash="7039e71e514b90ad4008749cb9a9a3e3"/><file name="Query.php" hash="f2b9fdb369814c0f10c1debce9d0de81"/><file name="Seeder.php" hash="8e3f1f646182a862277054641d9d3f37"/></dir><file name="Report.php" hash="4f5fe2e5a0793a68de21911a2c91b4c8"/><dir name="Resource"><dir name="Campaign"><file name="Collection.php" hash="2d4087b0f7f005750867efff9d7b7b67"/><dir name="Variation"><file name="Collection.php" hash="9e17363feaaa6fafc2608299ded1568a"/></dir><file name="Variation.php" hash="3e6bc3dc92273b4f38ebaef4a6740dab"/></dir><file name="Campaign.php" hash="32d3fc7756e5899f99d8e8e4a0af92d9"/><dir name="Conversion"><dir name="Tracker"><file name="Collection.php" hash="f9de10dd598ab21367d7219593bba5ab"/></dir><file name="Tracker.php" hash="661dab9241dc9e008425ec1b429807b2"/></dir><dir name="Email"><file name="Collection.php" hash="cc423c3a8f40bce0f76a7ff110050eeb"/></dir><file name="Goal.php" hash="43f1d678b5b3a3a2319bd4a5ef49ea34"/><file name="Helper.php" hash="dedfe935db8cf26c80df3e22757541b3"/><dir name="Inbox"><dir name="Email"><file name="Collection.php" hash="a91c908fdb883310d7b2f68cc4911cf3"/></dir><file name="Email.php" hash="00a510a93af7bd7e090d8e6520a12bd7"/></dir><dir name="Link"><file name="Reference.php" hash="bf4a176a973f29a7387d892cd6dc8029"/></dir><file name="Link.php" hash="cfdfd971faf338e7a66568fc6abc5b35"/><dir name="Outbox"><dir name="Email"><file name="Collection.php" hash="830ee5aab59e6d311fa0809e105eb78e"/></dir><file name="Email.php" hash="e3adf6fb55f06de20f794b3b300f521a"/></dir><dir name="Recipient"><file name="Address.php" hash="9cfb0a23fff9414f95dabb33f9440fd1"/><file name="Binding.php" hash="3d2c96e7a635f0ee1c9ffa2de98728a9"/><file name="Collection.php" hash="050c70ddce040b0bcb796c845f82d2e4"/><dir name="Error"><file name="Collection.php" hash="fcf6fc92f32aff776f7d48af0d768039"/></dir><file name="Error.php" hash="8698bb58ea4adc44b0851519c1620347"/><file name="Event.php" hash="58c25e9e89d45dfae091d0d8934b13b0"/><dir name="Goal"><file name="Binder.php" hash="76eed9d07bc4809200c672b6742636df"/></dir></dir><file name="Recipient.php" hash="b49718ab86fce538d852058569920aa4"/><file name="Setup.php" hash="89b2c613a9f14e9d4a2bda68be5dd00b"/><dir name="Template"><file name="Collection.php" hash="1270ee00c37137442df414dc0ee3b9cb"/></dir><file name="Template.php" hash="cf17edf5d83bb75a01fddad0a332511f"/><dir name="Useragent"><file name="regexes.php" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir><file name="Useragent.php" hash="c4a33cc541096a54f266bf90de3ae10e"/></dir><file name="Session.php" hash="3ae02afa75b2fbf3bde2df793113920b"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="DomainThreshold.php" hash="36a7dce4246b02e9085a580be2c52005"/></dir><dir name="Source"><file name="GeoIp.php" hash="f833d0f94a77331bc54b437b22894d2a"/><file name="MailStorage.php" hash="7ab694746a0d95238a3e59a986cd487a"/><file name="SmtpAuthentication.php" hash="7ea1e82b6f33d4677e84a932b62c14a0"/></dir></dir></dir><dir name="Template"><file name="Exception.php" hash="cd4b8a81d35df564188d04638a5f73c5"/></dir><file name="Template.php" hash="b745e76e2d3b90e02610c06e49ba99cd"/></dir><dir name="controllers"><dir name="Admin"><file name="CampaignController.php" hash="c5a84b76a7e830ad1d67bb6064fc1d71"/><file name="InboxController.php" hash="2fe3e23937457c5f4e1f476118beaf34"/><file name="OutboxController.php" hash="d94fb816ca1bfc88b379d957bc2aae1b"/><file name="ShortcutController.php" hash="f993988f98f3c5a5c9b2f29a832babd1"/><file name="TemplateController.php" hash="a2401b84074351493f4ffd45d592c798"/><file name="TrackerController.php" hash="10e25b22ecc5854d6bf7d43d03cd76a4"/></dir><file name="BeaconController.php" hash="207df42c19362ce8e11d24baae0fa124"/><file name="EmailController.php" hash="02f455e2a521218c22d4282e2ad96f29"/><file name="LinkController.php" hash="89548acd7d8bd106ac9435c265ccc1df"/><file name="UnsubscribeController.php" hash="a29f0a76031dfd562f2c3c62c2f433ac"/></dir><dir name="data"><file name="useragent_regexes.php" hash="2b4564a47cb2a85be3a8dd5354a3d097"/></dir><dir name="etc"><file name="adminhtml.xml" hash="af3a8562a020004db1031e8e16389268"/><file name="config.xml" hash="fca07a8de3308a9adeb1e6861ff50da2"/><file name="system.xml" hash="973d5fdaffb977a0653b57e930299f55"/></dir><dir name="sql"><dir name="mzax_emarketing_setup"><file name="direct-orders.mzax.tracker" hash="6351063c618ba1f0d7555b58af077eff"/><file name="indirect-orders.mzax.tracker" hash="e2260302f9c0a694269c8dd2ed6f7cc2"/><file name="install-0.2.php" hash="561e42ccf6b70cbc166a131dc6376c81"/><file name="sample.mzax.template" hash="db77bf43d62a480dd078c5f55a64aa7a"/><file name="uninstall.php" hash="0c7de6e280eb66fb0039b44dc94683cd"/></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="mzax"><file name="emarketing.xml" hash="28c4afcc7c23000d4cf432408291cef6"/></dir></dir><dir name="template"><dir name="mzax"><dir name="emarketing"><dir name="campaign"><file name="content-tabs.phtml" hash="ef97055252c1979347682556622bf479"/><file name="credits-left.phtml" hash="0ba657c286e94aa83882551b8fb25cd5"/><file name="emergency-stop.phtml" hash="7f22657383de19f98c8ce567e265c9ab"/><file name="fieldset-offer.phtml" hash="2b6e09dcdbfdbb52eab6a203f32100a1"/><dir name="filters"><file name="emulate.phtml" hash="4bf75f1d9029b5c355d472b4eb4d463c"/></dir><file name="load_template.phtml" hash="debc8e0a36aa64eefec32339a413622a"/><dir name="medium"><dir name="email"><file name="preview.phtml" hash="d5d139f03cad568fb17c765ad5e9ef74"/></dir></dir><file name="medium.phtml" hash="59aec898f3a31a582eeca4b6b07d2659"/><file name="recipients.phtml" hash="336daa6270e4d731840b8f2e2d1b7196"/><file name="report.phtml" hash="e14113356f7849762651c1782d76844d"/><file name="tasks.phtml" hash="baf974b4e898dd5f163588bb8a4bab48"/></dir><dir name="edit"><file name="js.phtml" hash="9cf8a1ea57c337acc4da8914d391dee6"/></dir><dir name="editor"><file name="text.phtml" hash="f7abacce019b7e31fb141aea135e363d"/></dir><file name="fieldset.phtml" hash="8562fcefb687748e1df866e06717a20f"/><dir name="filter"><file name="page-preview.phtml" hash="f9ee5362543ae546cc81a222ecaea76d"/><dir name="test"><file name="filter.phtml" hash="dda02450c7ae892725dc9bcef521459d"/><file name="recursive.phtml" hash="ecd02138415873304b8156934b4f0a41"/><file name="single.phtml" hash="67b393cdd911988932a264a261e0fea5"/></dir></dir><dir name="tracker"><dir name="conditions"><file name="emulate.phtml" hash="2ea632cf4b4d4c8af7dde0b16cf30996"/></dir><file name="tasks.phtml" hash="d355da4b9d417dbe05e86d09c9517283"/></dir><dir name="widget"><file name="chart-geo.phtml" hash="2a934344907e8d2db7a5a3d41c2dfc2e"/><file name="chart-tab.phtml" hash="a2ed62aa3fdf180aa875fb6c35e4cbfb"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="mzax"><file name="emarketing.xml" hash="7c8e3c79b5b78c4b1d9c9e7868380b0d"/></dir></dir><dir name="template"><dir name="mzax"><dir name="emarketing"><dir name="link"><file name="redirect.phtml" hash="deee18a9c58107b7be2666943026e21f"/></dir><dir name="unsubscribe"><file name="done.phtml" hash="d2320a8df0ac461b24bd1add48590d6e"/><file name="unsubscribe.phtml" hash="b98d85482c918400313173f3b50e10f3"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Mzax_Emarketing.xml" hash="3cee6fd8799acaddd8270fd7d62ba03b"/></dir></dir></dir><dir name="js"><dir name="mzax"><dir name="ace"><file name="ext-mage_autocomplete.js" hash="5f96fc51865c0296f51268b137569c5c"/><file name="mode-mage.js" hash="aaf14ef82650698077720da3d84a7565"/><file name="theme-mage.js" hash="ed01dd4eed70a2bd0817eb2d970c0671"/></dir><dir name="ckeditor"><file name="CHANGES.md" hash="086ace5f51cef680819d7804c06ef36b"/><file name="LICENSE.md" hash="b76d377d06b6a60688c32bdf4b45ff16"/><file name="README.md" hash="79e767b62fc79d117ca3c5dc2688c077"/><dir name="adapters"><file name="jquery.js" hash="e4c8afd45bf6ff622524ea428f7ff78a"/></dir><file name="build-config.js" hash="ab427e11b5dcbf596c6aec2aebf5d65c"/><file name="ckeditor.js" hash="4896c30097e66fdf7ed274b4b8939576"/><file name="config.js" hash="d56f7d8d075d6fa9b878aa7afb3e6b23"/><file name="contents.css" hash="e56702c98270ca7443a34f69d9401ee9"/><dir name="lang"><file name="de.js" hash="d0ae453502c70c77f527213e69bab785"/><file name="en.js" hash="e02a2d23d556fe01660bbd7c92532032"/><file name="es.js" hash="b2d8804a8d8d1f776ac81b0370bbc847"/></dir><dir name="plugins"><dir name="a11yhelp"><dir name="dialogs"><file name="a11yhelp.js" hash="5e9cbb2d9548a1bbdda8ab40bc6d82e8"/><dir name="lang"><file name="_translationstatus.txt" hash="9d2f1b77aa8589aad32d2e72c4a48c1c"/><file name="af.js" hash="57db7eae9fadd050140c1a79686576ef"/><file name="ar.js" hash="ae0dca6e4aca53c71d300eebf258f556"/><file name="bg.js" hash="6df810a274cdf531eac0884407c1387f"/><file name="ca.js" hash="e6770613a51e7d6ca8033bdb85a4672b"/><file name="cs.js" hash="ba9fa13cc66b4e9fcef863441894dfd8"/><file name="cy.js" hash="17cd76d97c7442f393c71f5ef3ae5df8"/><file name="da.js" hash="3b489224c0f2c8867d3c31feedb75fe4"/><file name="de.js" hash="62bdfd7e5cc9128c086f9cd366458c29"/><file name="el.js" hash="f1a0ccc89e1ece0fbf0764468d28f67e"/><file name="en-gb.js" hash="97f503f0cfec0005bef7063ef450865d"/><file name="en.js" hash="e7f716fdd18bcc7f2d1dd69d9f751457"/><file name="eo.js" hash="d7d9ace8288515db1b788b201f3c9b14"/><file name="es.js" hash="16a3b44fc1aeb37b12c77e09f5b8e061"/><file name="et.js" hash="dc71f6c0e5201a21b7c50d698e264dfb"/><file name="fa.js" hash="e749aa8c4f7a98b3eb5d372b50b12399"/><file name="fi.js" hash="7642e927603414091b6a78e2fd58e58d"/><file name="fr-ca.js" hash="2b7c2af5cf245dc4de3d94b3ddf33a50"/><file name="fr.js" hash="97137f6c50eb0c52e6079976efea6ce5"/><file name="gl.js" hash="2f5badc1fb30870417f8446e4a922f48"/><file name="gu.js" hash="57c92f55857709a6ebaa1d71df9dde18"/><file name="he.js" hash="c5ace2c1b0e97a4dfac1989956878ad4"/><file name="hi.js" hash="98a400437bbaa7bbe2dc78362a80654b"/><file name="hr.js" hash="1d8979c07e7c2c43edd7e96063d4cb87"/><file name="hu.js" hash="c7d5e59a943e27ab33a3fd9c625b96b4"/><file name="id.js" hash="96b21178e69445f6e34631af98e1897e"/><file name="it.js" hash="9dd479444a107e7a1afec265201facf2"/><file name="ja.js" hash="db6295456692cbf343f3c85303c1c561"/><file name="km.js" hash="75ee722498057c8d6230d2dd0c16e098"/><file name="ko.js" hash="8d7ed1e5e31ea1dbdffe1e499e864da6"/><file name="ku.js" hash="ce91e781995d2538b86b1917d2b5769f"/><file name="lt.js" hash="99854a038cb815d50f6c47b5e0d49b1c"/><file name="lv.js" hash="94eb2107bb4f895f0d2ba0fce046e653"/><file name="mk.js" hash="91e3afedae95d1a8670ba64ea85a0e1f"/><file name="mn.js" hash="5af562e1156d69e461b9d5a3fb07355c"/><file name="nb.js" hash="5c3b6c6c4bb268cc5a5bbcbaa35c23de"/><file name="nl.js" hash="a51056e4b267ff8aa8e6b00af69e9ed9"/><file name="no.js" hash="bbb23c2598e8135cd05df812b0f366ab"/><file name="pl.js" hash="32d99e712eb71d60e884abb180cb0588"/><file name="pt-br.js" hash="89c15d40b9fbd807a029539288f1c831"/><file name="pt.js" hash="efb4968ddd9bc06cc11e790cc2f4ae63"/><file name="ro.js" hash="4f59c58ebf7818850b74ae14bea766ca"/><file name="ru.js" hash="15e64c8841cc204dc500b365d9c971aa"/><file name="si.js" hash="b127d23b2ac9fe5173883045878d4cd1"/><file name="sk.js" hash="b895d3b67ee7ad59c99587155eb88f82"/><file name="sl.js" hash="0439bd74135483683240cb233997c5d3"/><file name="sq.js" hash="f9e265a88d197465c6ba4fc10ebef006"/><file name="sr-latn.js" hash="6774df8a488bf5299d6383a76b68a21e"/><file name="sr.js" hash="2b86e725f5df707a7d04f7eb2f037282"/><file name="sv.js" hash="69cd1ce1820cb078869dc6bbd5c1dd5f"/><file name="th.js" hash="de9aca0b1d174df16a0e46f010e01859"/><file name="tr.js" hash="a9425c2b97256a7ce939dd7b6fdecdd3"/><file name="tt.js" hash="8dfeca9c549fb0694ca7d478a78f1234"/><file name="ug.js" hash="872d326bfd275200cb7d42095a143969"/><file name="uk.js" hash="703b54d911a9127e0e28caa50dee4e54"/><file name="vi.js" hash="5543b700470c7719f1ea3268d6b99709"/><file name="zh-cn.js" hash="a4b6c1e3d9d4a3307fd462247d0a6891"/><file name="zh.js" hash="f02b803bd82bba3fb83c9831daf391b5"/></dir></dir></dir><dir name="clipboard"><dir name="dialogs"><file name="paste.js" hash="d480f919ea090843f97207a7b23fb79e"/></dir></dir><dir name="dialog"><file name="dialogDefinition.js" hash="e3d1a00050872887ebe27dd13c069231"/></dir><file name="icons.png" hash="e6afd5bb75a4ff8fc3e8fe51794b1fc2"/><file name="icons_hidpi.png" hash="3f0428b3d8ae3310d62e11cb2f541b5f"/><dir name="link"><dir name="dialogs"><file name="anchor.js" hash="92c23ab4ab30457ff85d4499c7695749"/><file name="link.js" hash="18b19628e7e314dbdfa02d0e04bdd425"/></dir><dir name="images"><file name="anchor.png" hash="cde31b4a6e7c3a89b00071b73c4e3a94"/><dir name="hidpi"><file name="anchor.png" hash="18b64b492bcef232255f85e9841531ca"/></dir></dir></dir><dir name="magicline"><dir name="images"><dir name="hidpi"><file name="icon-rtl.png" hash="186ae315c9c3cfb30d000405146c4f40"/><file name="icon.png" hash="dded37b889e0c2382dcd7fced21bc914"/></dir><file name="icon-rtl.png" hash="39bf0277ac19feb9832c8bc6540e2832"/><file name="icon.png" hash="050f18823f03b69cc953c67c3d590da7"/></dir></dir><dir name="pastefromword"><dir name="filter"><file name="default.js" hash="b63fcee1a9893d3181047be624360fd3"/></dir></dir><dir name="showprotected"><dir name="dialogs"><file name="protected.js" hash="14f77e1425e174bbca68098ce81d7e3b"/></dir><dir name="images"><file name="code.gif" hash="163488a6d1a538b131ec6fc206699e5f"/></dir></dir><dir name="specialchar"><dir name="dialogs"><dir name="lang"><file name="_translationstatus.txt" hash="194d98388d302d35875d878e37eb83d2"/><file name="af.js" hash="c40b97d8c386f3e18dd4ea140efbc097"/><file name="ar.js" hash="f13c6bd0e2d9244dc7b8c084ddfa20dc"/><file name="bg.js" hash="d42de9c665fa8673acea8b25818ef28e"/><file name="ca.js" hash="9c83c1e07f9d4722c16a31a3b46745a1"/><file name="cs.js" hash="360de9ebf51dc7f407aa0aaa02841ee0"/><file name="cy.js" hash="102d72f4361cc9f3dc1027e63b0546ab"/><file name="da.js" hash="61c6478bedbba7940cb59b68a70dc33b"/><file name="de.js" hash="efc49e4dc39a57dd6e30881e90d37d7b"/><file name="el.js" hash="16afadc8fe0b0f99c1a298b875c0b8e5"/><file name="en-gb.js" hash="18089a7a11d94d93b29658253606d9f8"/><file name="en.js" hash="945f7871dbeb50c31299bcfcf0c7c413"/><file name="eo.js" hash="6d61bf857585b9bab64a72d49d218ea5"/><file name="es.js" hash="58c66fb5089ea0c5cebdc62532992358"/><file name="et.js" hash="511a57bc06c0e19fee7527ff2ac4c1a8"/><file name="fa.js" hash="48809c1c9c99b2b5d2267dd86eaaff9e"/><file name="fi.js" hash="c933874c13b0701d74f5af8bc59fc6a3"/><file name="fr-ca.js" hash="e97737ff20da824ce9b06e4d9cd776b8"/><file name="fr.js" hash="52f1a604d5227e02aea1a79cc4aa679c"/><file name="gl.js" hash="8ea22088a992882033cbf0ab4efefe57"/><file name="he.js" hash="38ca00105219a1eb075ae249a25e6cd8"/><file name="hr.js" hash="4c91987b9d04390f99690cc890c8d49b"/><file name="hu.js" hash="3bc9715cd3cb94d9241bf60ef3296d09"/><file name="id.js" hash="ff9be390ff67fd48f7512c85d968eed3"/><file name="it.js" hash="5f103e92352a7514f283fbf7d0dee18e"/><file name="ja.js" hash="0ad16954d5d5c5eebec4ca8794b31cb7"/><file name="km.js" hash="b8f2bb7926959c5030130dd7df51ab0d"/><file name="ku.js" hash="2ab01472dcc5cccbb17b440dcfacf5e5"/><file name="lt.js" hash="82092f207ae96d96155185af4186d4aa"/><file name="lv.js" hash="b24a1e0e2c922be6a66ff69930c4efa0"/><file name="nb.js" hash="47473a52bd2f40eaab010b36497d42a5"/><file name="nl.js" hash="a60a53f34a2fc46104f43ae7208f7c30"/><file name="no.js" hash="7e559ac208f439e0828cb5b34d8e6d25"/><file name="pl.js" hash="689428c1b70925257030d557948146fb"/><file name="pt-br.js" hash="a3a9f87a3100e818205520f7132df79f"/><file name="pt.js" hash="edd07c226d60b95da27404f5f7570eb9"/><file name="ru.js" hash="c1fc597d32c66c8c6a703c5919c2323c"/><file name="si.js" hash="1b32fc96f1ac0adf8b85cc8688ba32d8"/><file name="sk.js" hash="f4517a5d725fdf1a2329378d22efb715"/><file name="sl.js" hash="f811125c01943e4b0e9c1b56feddcf3d"/><file name="sq.js" hash="0e03d2caaa809c9e1ad811fa836764a1"/><file name="sv.js" hash="ca12a09364634c0567884961be6ab7f3"/><file name="th.js" hash="d304551279386c78142b4e0ee9c56a4a"/><file name="tr.js" hash="b3d9b0dedc876fb4894a6b637fdf2c84"/><file name="tt.js" hash="75cb0bd8ec39356c232506db2360907e"/><file name="ug.js" hash="96507f5a5d7e72f15469a99f0d645de6"/><file name="uk.js" hash="209b972cbb6066e97e7b8b4122616567"/><file name="vi.js" hash="1ee97e539e40c1080297c3a84c5e3f85"/><file name="zh-cn.js" hash="e1d97232891432a18d096feb9e78a0bb"/><file name="zh.js" hash="828048855d947be77aa26f399534279e"/></dir><file name="specialchar.js" hash="ab8882c71bf9938d5817552b7b4794f7"/></dir></dir><dir name="table"><dir name="dialogs"><file name="table.js" hash="287e36bff701e171addb148a29fe813e"/></dir></dir><dir name="tabletools"><dir name="dialogs"><file name="tableCell.js" hash="66c936d062f18e3d01a41e7c5f8a9de9"/></dir></dir><dir name="widget"><dir name="images"><file name="handle.png" hash="8166041f605df672ac83054b6f14693d"/></dir></dir></dir><dir name="samples"><file name="ajax.html" hash="13e12c904135762c54e2642d31634123"/><file name="api.html" hash="5669d9f1f1a904ed1e85e0ea1e15ef97"/><file name="appendto.html" hash="9cf44738ffa6773f5eb3cceb3bcfba1c"/><dir name="assets"><dir name="inlineall"><file name="logo.png" hash="3b4e496615dc92d13bb0dcd0f23acbab"/></dir><dir name="outputxhtml"><file name="outputxhtml.css" hash="5a86ee8ed5c92ad7e93eb5f126709007"/></dir><file name="posteddata.php" hash="87bde163c8c49508cbf0966ecccd35f9"/><file name="sample.jpg" hash="77ed4b8c5beca4c18b4e0d007ac5bf9e"/><dir name="uilanguages"><file name="languages.js" hash="34db2de9bb1301834a32fd9b26584e0c"/></dir></dir><file name="datafiltering.html" hash="599bd5e7de272b30fa755146fd2b19ea"/><file name="divreplace.html" hash="96128b12518bbaada7366fb6659a2d98"/><file name="index.html" hash="52d578befbb65b42162ad0e6ed8895ba"/><file name="inlineall.html" hash="9537678653e090800aa3c7e1dd5499b0"/><file name="inlinebycode.html" hash="1a95857074012d655fafc8ee8d041d15"/><file name="inlinetextarea.html" hash="4d70e1b01e4782ad9a8d0830b4f1cc43"/><file name="jquery.html" hash="29dbd93c398652866b8af428b7c4213d"/><dir name="plugins"><dir name="dialog"><dir name="assets"><file name="my_dialog.js" hash="5f440a90c0eeaa86c386cc7a40494b08"/></dir><file name="dialog.html" hash="b471851873c91312b788dba7808e17f5"/></dir><dir name="enterkey"><file name="enterkey.html" hash="72ad01f514cfd0821cbfb4dcc2342a11"/></dir><dir name="htmlwriter"><dir name="assets"><dir name="outputforflash"><file name="outputforflash.fla" hash="3435fafe2a602f5fd1f6c551bc9ddc38"/><file name="outputforflash.swf" hash="e36a324b70d2cd73941ac1961706daa4"/><file name="swfobject.js" hash="23d81623f093e69cb1f4480f0d6f2958"/></dir></dir><file name="outputforflash.html" hash="30cdec9c17dec4bef9ad7640be16412d"/><file name="outputhtml.html" hash="51cd8a08381d779893f9ace786a98a14"/></dir><dir name="magicline"><file name="magicline.html" hash="d4a3793d63f5f29cf8a11ca609993ee6"/></dir><dir name="sharedspace"><file name="sharedspace.html" hash="1e934807fb99bb5d268bf84668391741"/></dir><dir name="toolbar"><file name="toolbar.html" hash="b3f21442e61e28aac6bd7cb8126cf291"/></dir></dir><file name="readonly.html" hash="b6a0650cef87b334cdbf46fd9de8d668"/><file name="replacebyclass.html" hash="c1aa7fd11107222f311cbeb56a08eca5"/><file name="replacebycode.html" hash="464937c66127b7b1fcd47e46e5804f0b"/><file name="sample.css" hash="45da17bc8bfe713fb52366056b3d5626"/><file name="sample.js" hash="3d98c86ea6c35cf32979a67656686219"/><file name="sample_posteddata.php" hash="cba787bedaffd8a646a7eed4622d7615"/><file name="tabindex.html" hash="5247faf3c7d0e0133e95a2f3bb9d898b"/><file name="uicolor.html" hash="f10e31e66f6431acf57961c46ecf70f8"/><file name="uilanguages.html" hash="03f98f3d7ffc5c2dc9c8b7ab246b55fc"/><file name="xhtmlstyle.html" hash="2adcd1c79ff558ff21f0173d8f81f3b3"/></dir><dir name="skins"><dir name="icy_orange"><file name="bold.png" hash="c122fb13c15a4346166295f32e71a1d3"/><file name="dialog.css" hash="33e783cfaea32ca54788941a63bdd6eb"/><file name="dialog_ie.css" hash="acf2be239117d898f7a9e73e09026116"/><file name="dialog_ie7.css" hash="d5cc9da7a9ba1326e84958c54e9b20e7"/><file name="dialog_ie8.css" hash="94e74ab7b315bbd264ffb23db9cfdc84"/><file name="dialog_iequirks.css" hash="c7726bb743f20ce5b6115d12474e2dc6"/><file name="dialog_opera.css" hash="636c409500ea025885fd10b6d53946a7"/><file name="editor.css" hash="4ff7a3e087bfc0d05db738383d4086e2"/><file name="editor_gecko.css" hash="817a8392831b505002c9a93ce0fa354d"/><file name="editor_ie.css" hash="d65159db471a5bfe98827ce63060db1a"/><file name="editor_ie7.css" hash="009428ac76e92a7695510f18a580fbb6"/><file name="editor_ie8.css" hash="f0eed619cf520a34f2e0d767f1959596"/><file name="editor_iequirks.css" hash="c262e36d3ac8750bb6f0dd9b2d34e8f0"/><file name="find-rtl.png" hash="058bf3745d0d8a05ba3d8ce6c3dd31a9"/><file name="icons.png" hash="2ce53daffb36da967bb628bb70c42d73"/><file name="icons_hidpi.png" hash="878057da02b2ecc2ae61cad5ea4c132c"/><dir name="images"><file name="arrow.png" hash="bf00bd704f4c07bf68ac74fc97f4048b"/><file name="close.png" hash="400b7d585f873156c91bed734052ed23"/><dir name="hidpi"><file name="close.png" hash="0b50469fa387095e0fef5a3d14f1e696"/><file name="lock-open.png" hash="e605db29a9dd200ff67c7a6a47cb8cf5"/><file name="lock.png" hash="fa2ec8251bc7e3ba3adeeb057196bc79"/><file name="refresh.png" hash="e0c80d3ca0fe5353af93daad399279e7"/></dir><file name="lock-open.png" hash="6bd731e0c165ed297a0bdf11a41ed26c"/><file name="lock.png" hash="2fc75413fd693917d55cc206ce4c2a1c"/><file name="refresh.png" hash="230b1b1f62af875f64afc0b1664453cf"/></dir><file name="readme.md" hash="a2e00abd50e5d5f7edb67d7de9f3216c"/><file name="scayt.png" hash="e5729a0bd4942e8f6a80f8dc8a667c8e"/></dir></dir><file name="styles.js" hash="3e62be48fe794f4a1d31cc0aa66471d5"/></dir><file name="ckeditor.plugin.mage.js" hash="91ee8841d3579667c169f2e298659885"/><file name="editor.js" hash="fe3dee1cebecfa726d3cf8d95748f4ae"/><file name="report.js" hash="3f2b7c1f06e2be9f82431cfb40f9c0fb"/></dir></dir><dir name="lib"><dir name="Html2Text"><file name="Html2Text.php" hash="3b9113127d07c9fc96a9389af99ed5de"/><file name="Html2TextException.php" hash="de2aaec1a823a6598a376b0e6123b0ac"/><file name="LICENSE.md" hash="b5d7f7156f7785ca2eb55d6cc1b4c118"/><file name="README.md" hash="d905c816088cc87c187c14b52fa70945"/><file name="composer.json" hash="cec80ea0ce4bb635f073c77a316cd7ea"/><file name="composer.lock" hash="cefbcdca2ed380b03e69f98b492c778c"/><file name="phpunit.xml" hash="321806966ac2442ace7e2b98a0c4c20d"/></dir><dir name="Mzax"><dir name="Bounce"><dir name="Detector"><file name="Abstract.php" hash="e7155dc60f49c7dfe7999a17b23820d8"/><file name="Arf.php" hash="81c33dc885c050ae04efa338c9030154"/><file name="Autoreply.php" hash="de34e3cfbe65f09c75204b1b8ac390a6"/><dir name="Data"><file name="phrases.cnf" hash="604ba8af56bea9769e6e3e961316cfcc"/></dir><file name="Extended.php" hash="ea9c18044821c39107660c8e427361fa"/><file name="Failure.php" hash="13312b3caea904d9ee12a70d08f9d17d"/><file name="Rfc1892.php" hash="d15ec98d06ff72113f0b19d9cb545ebc"/></dir><file name="Detector.php" hash="0a60633c0c1974e5e4effa8f4c2ba897"/><file name="Mail.php" hash="40db4e6c2272f65b4a0811a7cf48ae19"/><file name="Message.php" hash="26c61a750ca8f03f4c7958fcefc1955e"/><dir name="Mime"><file name="Decode.php" hash="473748578bb958ba2725380a5faec9dd"/><file name="Part.php" hash="8dd7a5f12f9f3217705f409da3774549"/></dir></dir><file name="Bounce.php" hash="5f3318edc6f348f40098f7ce1cbe576b"/><dir name="Chart"><file name="Table.php" hash="a2450c6c9a76d7ee3d2fb2e0c71c903c"/></dir><dir name="Db"><file name="Select.php" hash="818bedfba9cd461146581612b6cbddcf"/></dir><dir name="GeoIp"><dir name="Adapter"><file name="Abstract.php" hash="d3337ca825d3ea1d96c43de5a307765e"/><file name="FreeGeoIp.php" hash="ee6b31ba85e0eb54c8885afddd2fcfa9"/><file name="GeoPlugin.php" hash="906157234e7e3ed5d04dceb93de6cddb"/><file name="Ipinfo.php" hash="4295536c14cb0212383141438cf5a884"/></dir><dir name="Data"><file name="region_timezones.csv" hash="13b7a5ea6271a191692c1a6685a0404e"/><file name="subdivison_codes.csv" hash="c6b9628e2a5f57b514a16f5f49369ad1"/><file name="timezones.csv" hash="339f7239cd5b2389b9fa72a45200f241"/></dir><file name="Exception.php" hash="33e98e1acd694549e445ec0d384a48de"/><file name="Region.php" hash="62e607ee9ff896a3e81c187e5863ecc5"/><file name="Request.php" hash="36e25072c8d6791cb8e29a971eb74a07"/></dir><file name="GeoIp.php" hash="9470f0804de0cc65de76e776d440d04d"/><dir name="Mail"><dir name="Transport"><file name="File.php" hash="fbf6de05adb86e39e9ac09572ba0e761"/><file name="Mock.php" hash="1f785fcd063f48cb1cdb924a6c567718"/></dir></dir><file name="Mail.php" hash="da89aa2f23f7b08808eafcd18cdb3779"/><file name="Once.php" hash="9423cd2ea3a978147f8e89047aa3e28e"/><file name="Presist.php" hash="de6067835de71c0746d52f61b5ae4318"/></dir><dir name="Symfony"><dir name="Component"><dir name="CssSelector"><file name="CHANGELOG.md" hash="29b39013d7b608953abbd2ec2a2b108e"/><file name="CssSelector.php" hash="7e3c899ed51c274c7255b39a9d01971b"/><dir name="Exception"><file name="ExceptionInterface.php" hash="81b87b8254324d20d01883d31a8a31fa"/><file name="ExpressionErrorException.php" hash="a4780f238a4468ea2537a655cc9b060b"/><file name="InternalErrorException.php" hash="03829b68e8e9169f226e009867dcf03c"/><file name="ParseException.php" hash="328c79304302dc7d8b0a1078da5a849e"/><file name="SyntaxErrorException.php" hash="c37b2bf7fd04b3009038f0fc7493aa69"/></dir><file name="LICENSE" hash="56dedd4bd25ecd034ac4e1c17ebba0cc"/><dir name="Node"><file name="AbstractNode.php" hash="5382eea600df0d380af1084e08945215"/><file name="AttributeNode.php" hash="114198a6dea5486360743e72d5d69e2a"/><file name="ClassNode.php" hash="e284deaee27c9ff58e1a3b3cc033097a"/><file name="CombinedSelectorNode.php" hash="7ea2ae6f69661cef7835ec6977e04972"/><file name="ElementNode.php" hash="be27346ba0e5749e898768820e250231"/><file name="FunctionNode.php" hash="5913b9aaa0a5ff854826856f4f273bd8"/><file name="HashNode.php" hash="d8904a853df1fe8b8925b06ec8eb227a"/><file name="NegationNode.php" hash="90bd405b703201eef96670921dbf7461"/><file name="NodeInterface.php" hash="2b41a648dd16bdffa49d9f3489a6b178"/><file name="PseudoNode.php" hash="5959f4767a8afbddcfcb02f2ef5c5255"/><file name="SelectorNode.php" hash="791446c82811953eab167bb685cf5eb1"/><file name="Specificity.php" hash="b11339c857c76b7c1a7c45e11ddcc525"/></dir><dir name="Parser"><dir name="Handler"><file name="CommentHandler.php" hash="956bebe94f4a97650ba7d8d1eecd2332"/><file name="HandlerInterface.php" hash="51803aa58222c064dd9bca4f486825a9"/><file name="HashHandler.php" hash="375e70e9b2eed56ad409bb9c0a5ea774"/><file name="IdentifierHandler.php" hash="da0a5fced14dc4e0cdf3a40577b3d3d4"/><file name="NumberHandler.php" hash="2f31d0dd40459498b2f50516ad3889a4"/><file name="StringHandler.php" hash="a90d5b12ef1ff87b817131539191a8f4"/><file name="WhitespaceHandler.php" hash="57fd3c6e26b9ca2099a409cb20084029"/></dir><file name="Parser.php" hash="7cb284344dcd54e50a2b77b6d037a0cc"/><file name="ParserInterface.php" hash="5d6a71eba525e4076245955333b5e041"/><file name="Reader.php" hash="161edf2539ea8b78fe5dd690cebd8ad5"/><dir name="Shortcut"><file name="ClassParser.php" hash="ebd65dcf5a91659b9374437e4de86356"/><file name="ElementParser.php" hash="d3957780b5ed3f1183631457ece68db3"/><file name="EmptyStringParser.php" hash="0a6651291b6c7e9edfe76448a39d2e21"/><file name="HashParser.php" hash="1c0da84b145e1ec6e1e6e2d0f4b7266c"/></dir><file name="Token.php" hash="c71d9bb8dcd3acc2e5a2230131093200"/><file name="TokenStream.php" hash="fa78405d84218349f8fde4f019e0656c"/><dir name="Tokenizer"><file name="Tokenizer.php" hash="992cd824010c019494248b5835166b81"/><file name="TokenizerEscaping.php" hash="2e2afbddc13976d1a437f338e7ccb6d2"/><file name="TokenizerPatterns.php" hash="7dea1a3cadd0fbd41430077517fefee2"/></dir></dir><file name="README.md" hash="587d98dd3ba273664b871f6bdb5178df"/><dir name="XPath"><dir name="Extension"><file name="AbstractExtension.php" hash="fc1cdfba835b7ca2e0bd17d951c03e80"/><file name="AttributeMatchingExtension.php" hash="5a6cb303917a1c3cb50756781ad3f347"/><file name="CombinationExtension.php" hash="4e24ae896c651e51bb840ab71999995c"/><file name="ExtensionInterface.php" hash="0152d4cdc7bbce6ce69ca0b3821472bb"/><file name="FunctionExtension.php" hash="df163689e18cd99f43a69629b7df50c9"/><file name="HtmlExtension.php" hash="9bbf100a7e6cafebc6cde995650ea15f"/><file name="NodeExtension.php" hash="76fce6e4b87f868a116f05124a56b08f"/><file name="PseudoClassExtension.php" hash="9fc07588f8e53c2b5d13834eaa34509f"/></dir><file name="Translator.php" hash="e51e79ab1fa22bade7d910bb25506e0f"/><file name="TranslatorInterface.php" hash="68c6e9ceb7893d292ddd6b8c2d657b76"/><file name="XPathExpr.php" hash="feb0adde624e3fc047c9f7f67567d122"/></dir><file name="composer.json" hash="48614c4cd7df505743fae99ff1533c63"/><file name="phpunit.xml.dist" hash="ce82fe4e83c04bee3883118cbe1acc0a"/></dir></dir></dir><dir name="TijsVerkoyen"><dir name="CssToInlineStyles"><file name="CssToInlineStyles.php" hash="dfca32cbb9af40a9702873599e91cb2c"/><file name="Exception.php" hash="00d2e57adcd2fec19ce70ce3f3e0e12a"/><file name="LICENSE.md" hash="d5bbe692a9b717fb631a681aa3ace904"/><file name="Specificity.php" hash="102aa19c0896f371e9be65a06965529d"/><file name="composer.json" hash="a47437496b448eb8220e0281ffa75b09"/></dir></dir><dir name="UAParser"><file name="AbstractParser.php" hash="7a6a80517c0acdab4a806b1401584150"/><file name="CHANGELOG" hash="21ed505b06c829a9c06f6f19c517c242"/><dir name="Command"><file name="ConvertCommand.php" hash="acb1ee8017e906a377f473ca382909df"/><file name="FetchCommand.php" hash="063882953b4c474da7157aacb363a774"/><file name="LogfileCommand.php" hash="a17010c64b080cfc60bfa49f1b3fb289"/><file name="ParserCommand.php" hash="b7c746edcbfb2f2ebe428b83ff807c5a"/><file name="UpdateCommand.php" hash="cdba47be1ac1674fbb52614480facbcb"/></dir><file name="DeviceParser.php" hash="e47214bd348f1ed1b22ee02281d0e1e2"/><dir name="Exception"><file name="DomainException.php" hash="7db0900cb3691b10f89ce46831358720"/><file name="FetcherException.php" hash="7c2d26aa01bd84c18f44e1a638735876"/><file name="FileNotFoundException.php" hash="eaf5c829b3f43eb236b1ee4b6164338d"/><file name="InvalidArgumentException.php" hash="9a655005409f2f4b4a95d8bfa6c44c2e"/><file name="ReaderException.php" hash="c9ab014735a5818b0726cf7285a2109b"/></dir><file name="LICENSE" hash="e1bf063eb79c08cc980356d2b3745bed"/><file name="OperatingSystemParser.php" hash="79a8173ccff26fecbc34dc27eece4876"/><file name="Parser.php" hash="13c00a686a28e1ff5b522b90cc4c1889"/><file name="README.md" hash="27cf047d540a92349a2382e8c887147d"/><dir name="Result"><file name="AbstractClient.php" hash="7a0f15aac45c4217564c79c6aea5d247"/><file name="AbstractSoftware.php" hash="23af630ec726bd7f3b993189af0afee9"/><file name="AbstractVersionedSoftware.php" hash="d63e4c1fd1c1064b33ce8c4d44f9a756"/><file name="Client.php" hash="7fbdab4558df0294fbd7a54e74e3c8e5"/><file name="Device.php" hash="47c11721128612fbc1063f3a69a6e79b"/><file name="OperatingSystem.php" hash="5ee377eee2502708159f9655425551b2"/><file name="UserAgent.php" hash="1874776bc1bce469c8348d4cbf03587e"/></dir><file name="UserAgentParser.php" hash="1be1fb32da9aeeaccd12d06ffa74e1af"/><dir name="Util"><file name="Converter.php" hash="f3a4b6d18d9c1a484523e9d613899816"/><file name="Fetcher.php" hash="ab801cadaba2b6518cdbb85c8930af19"/><dir name="Logfile"><file name="AbstractReader.php" hash="ed6595ea11e46e688d74009ea0122605"/><file name="ApacheCommonLogFormatReader.php" hash="7372b00a21eb85f5f7372f9e53139e45"/><file name="ReaderInterface.php" hash="0956a91d253b03de64c4656117a7655c"/></dir></dir><file name="composer.json" hash="7a14f9c576783d9db694da31225239ee"/><file name="phpunit.xml.dist" hash="cd168009a2f37eb12b87d77ad43d713a"/><dir name="resources"><file name="ca-bundle.crt" hash="cb94f8f36f085eaf644db687b0d411f5"/><file name="regexes.php" hash="c16a2571a1fe083a69ac97298cbf5b08"/></dir><file name="update-resources.sh" hash="53d68ccfa9ec45642569546796fdb884"/></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="mzax"><file name="editor.css" hash="3d501ab3e06e253045ea2aa55ed7980c"/><file name="emarketing.css" hash="c94ddb5b2ac244a7880efcd61afdee67"/><dir name="images"><file name="add-tiny.png" hash="04f642db30ac836b58d91770c42a7087"/><file name="add.png" hash="f2e51ed86b5c87693bc31eb18cffcde6"/><file name="bg-remove.png" hash="085b0ea8bf4488c53a5eaab2f28eaf4c"/><file name="block-bg.png" hash="eb5b5a1dbaa4a40b4d7d56ea36b0db8f"/><file name="corner-arrows.png" hash="98f15a0b96a79bd35f7cc9c3552f27b2"/><file name="dd-chart-tab.png" hash="bfca5a1d3deb031e2fbbc4d89cf2adf6"/><file name="delete-tiny.png" hash="58c14611b1a036c55353b9b5993a85df"/><file name="delete.png" hash="f2c735bea2def15264ab2ec87a722407"/><file name="element-add.png" hash="bdd3ce65d6777550f983f8bba949340a"/><file name="element-clone.png" hash="762e0d3593f83f589afca4e9d785cd78"/><file name="element-remove.png" hash="8c51a642226558f6bb34159da34d0123"/><file name="element-remove2.png" hash="e89ce65e9a80e1ee9e35e784cd7b9a1e"/><file name="element-repeat.png" hash="3ccfbc455a907a30a34bdd61e3f4ec49"/><file name="element-swap.png" hash="92b97e695db713a4000fdbc88628e723"/><file name="fullscreen.png" hash="0a00475876e23a623a8ee346de991dc2"/><file name="funnel-arrow.png" hash="eb56bc2bb6865ea4f123105e4d2f2de6"/><file name="icon_image.png" hash="9acff5f2211bcfdf12af6db057e7a019"/><file name="icon_source.png" hash="d9a2353334fd2786b1e7def89e6d6b63"/><file name="image.png" hash="4da12ca4c81d857c8a718556a999ba45"/><file name="mage_code.png" hash="434f9cb7723f1bc0fa92b2438e287933"/><file name="preview-tab-icons.png" hash="292b16d26d02c9a0d299b4457033e502"/><file name="preview-toggle.png" hash="9eaf699db62fa3727f5d08cc118b2f90"/><file name="save.png" hash="a26d2b01209b95edd6a352fd9f49ee40"/><file name="start.png" hash="aba370113bf888ee5655e81f938f73ee"/><file name="stop.png" hash="527ef0809d2fc1949ff3c4c6ff363ac9"/><file name="swap-down.png" hash="9c269cd00e1b0d676bec912de671d1b6"/><file name="swap-up.png" hash="788d244ba3443a826f44476ffb2f056f"/><file name="variable.png" hash="f71ee09f953cd3be23d55dd5963b32e9"/><file name="widget.png" hash="bd36b41f43b95c28ce0caf83f3b2495a"/></dir></dir></dir></dir></dir></dir></target></contents>
48
  <compatible/>
49
  <dependencies>
50
  <required>
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <package>
3
  <name>Mzax_Emarketing</name>
4
+ <version>0.2.7</version>
5
  <stability>beta</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License v. 3.0 (OSL-3.0)</license>
7
  <channel>community</channel>
42
  <email>mail@jacobsiefer.de</email>
43
  </author>
44
  </authors>
45
+ <date>2015-07-16</date>
46
+ <time>4:44:11</time>
47
+ <contents><target name="mage"><file name="LICENSE" hash="cbbe04980244d5b18963e94de0ddea15"/><dir name="app"><dir name="code"><dir name="community"><dir name="Mzax"><dir name="Emarketing"><dir name="Block"><dir name="Campaign"><dir name="Edit"><file name="Form.php" hash="bf858f6071dbac5e75880d0a31782c6b"/><dir name="Medium"><file name="Abstract.php" hash="d9e8bffc2e0beb6c1487f81550a768f8"/><dir name="Email"><dir name="Tab"><file name="Inbox.php" hash="4c6802b09a390b565b73a0333d517ed1"/><file name="Outbox.php" hash="656291a744ab58d4f5082ec6a8dbb627"/></dir></dir><file name="Email.php" hash="28c7be202b0598529a75c9c0c164ebd2"/></dir><dir name="Tab"><dir name="Content"><file name="Original.php" hash="bc34745e64ea9657e23b45a2ba2157af"/><file name="Variation.php" hash="de56d9b789fec29240ebf59385235e0d"/></dir><file name="Content.php" hash="bc1d2bce6cb7dd925b913a1d9ddc2f6c"/><file name="Errors.php" hash="982bdb783f0b03d69961e4fb4ed2a3bc"/><file name="Filters.php" hash="4960641d92166a8e1166bc326e094598"/><file name="Inbox.php" hash="e6cd0c05c0cf5de0820c070781efcafc"/><file name="Medium.php" hash="da568023f980845fca6d513a3381186b"/><dir name="Recipients"><file name="Grid.php" hash="7ab635adf5458ebc434b50f568825d9b"/></dir><file name="Recipients.php" hash="254b42cf370902503118e9f4c89e57ea"/><file name="Report.php" hash="842e23a434c1fb1abfc967b1e653bc7e"/><file name="Settings.php" hash="f24d6665e2903bb27189cdef606f9f67"/><file name="Tasks.php" hash="92eab015f56ba102e5c3c66d0e00a4c0"/><file name="Test.php" hash="e7ea62c11ddaab62e19cd523f0ed4909"/></dir><file name="Tabs.php" hash="5d367b66a8d8c459013025ca1ebccf11"/></dir><file name="Edit.php" hash="be419b71462628602bde3c37ebeebe2c"/><dir name="Grid"><dir name="Filter"><file name="Filter.php" hash="7ca31331e65b0ca292a28bbfa9a7a8d7"/></dir><dir name="Renderer"><file name="Action.php" hash="2d88051214d458f0c6b8c8c11ade03d0"/><file name="Filter.php" hash="6e5fbbb1194ce4f923b3cb875e2636a2"/><file name="SendMail.php" hash="cf04bfadcb606d4b8f16e378316a684b"/><file name="Sender.php" hash="2a10626b24e27213f3f8feb69c29baef"/><file name="Stats.php" hash="30ea047f5ed67b2e4e876fe6d225ceb9"/></dir></dir><file name="Grid.php" hash="84397153ea5f28191f03a1209ef8e0fb"/><dir name="New"><file name="Presets.php" hash="93d5c3fff557abe71630d317f17151d6"/></dir><file name="New.php" hash="3e0dea7c5bd1cb3b5e4905c18cd4100c"/><file name="Preview.php" hash="a7cba65810452b515271d8fffa94056b"/><dir name="SendTestMail"><file name="Form.php" hash="d5f50cf3dedf4e004cd218f12c93c2f8"/></dir><file name="SendTestMail.php" hash="0ab22f53eb8cb29e507e1b2ed5829d48"/><dir name="Test"><file name="Emulate.php" hash="a31dac970e1b85d419e311ab809750a0"/></dir><file name="Test.php" hash="e4934e3ec2ac62ad12f1de6cb72fc3f2"/><file name="View.php" hash="56db5110b1586e40bf69046d06033ed9"/></dir><dir name="Chart"><file name="Abstract.php" hash="8dbe0594dcf3f2e0b7c35db450a0d16d"/><file name="Area.php" hash="d7cdf64a0019d98711c169466990d8d7"/><file name="Bar.php" hash="75d98f1590eebe75b46571854233fe97"/><file name="Column.php" hash="099efa6610b6d9e098ac636e77557eaa"/><file name="Geo.php" hash="f9907dbe189945ffe0533070692881de"/><file name="Line.php" hash="281bc20223791861d82b7bb367d8c1d4"/><file name="Pie.php" hash="bf08fc6f2afeccfd881fd9d7bcb807fa"/><file name="Scatter.php" hash="ec40cdf16bb5b5406b837c363cf8402c"/><file name="SteppedArea.php" hash="122a5d5a0662bc5463c383e2c8e3444f"/><dir name="Widget"><file name="Container.php" hash="fd468fcce421e5ca591a1be801791951"/><file name="Geo.php" hash="c9f85dce1b76a365f7dc201cdfbb9335"/><file name="Tab.php" hash="862f2827953d2a484f3e7e3c1218e6f9"/></dir></dir><file name="Conditions.php" hash="6cfdcff8a102f8e4b53685335487af21"/><file name="Editable.php" hash="626e74b1278307a774ddf35f2aa85aa0"/><dir name="Filter"><dir name="Object"><file name="Grid.php" hash="010a12edf2b7d069c4961b05f230e5d7"/></dir><dir name="Test"><file name="Recursive.php" hash="f3dca86993f2222a85111b9a1286330a"/><file name="Single.php" hash="6b2f67396a0bfda15894ad63b29c3614"/></dir></dir><file name="Filters.php" hash="16f0bf8f1d7c061b5462a303bc9d113b"/><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Action.php" hash="21128bc6ed861a7db1110d174f52a83d"/><file name="Campaign.php" hash="ed6b43bd4ef784640d8a6f31cf9eaf84"/><file name="Recipient.php" hash="af33a62a7b7a6c942e67db9d2400cf7f"/><file name="Size.php" hash="4b6cf219d8aca9675312581a7bee884f"/></dir></dir></dir><dir name="Inbox"><dir name="Email"><file name="Form.php" hash="ddf03b9b355a3e4bf4b98ff8e97fcfa3"/></dir><file name="Email.php" hash="763ffad2a27f176151811f621f62ba5b"/><file name="Grid.php" hash="dd380339104f7c428892af4537630631"/><file name="View.php" hash="8611c8c68b45997ad755b032e202f894"/></dir><dir name="Outbox"><dir name="Email"><file name="Form.php" hash="9b804090e5dc24b8cd92f8c43ca1192d"/></dir><file name="Email.php" hash="c8c55851e6f22de294f77d66716608e2"/><file name="Grid.php" hash="fbe9b80c4b9d073c2268ae54a758bd89"/><file name="View.php" hash="6401cff173c91c12be0eb2c5ea2851d3"/></dir><dir name="Recipients"><dir name="Column"><dir name="Renderer"><file name="Attribute.php" hash="ef5b7239b0f740bbc976f58ad30ca6e3"/><file name="Object.php" hash="6b623ead0aae14fb0fe9ca603909861f"/></dir></dir><file name="Grid.php" hash="31669b01662411ba99d1589ddc33ae41"/></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="DomainThreshold.php" hash="d78287121bff2df95a76372873d3ca5b"/><file name="MailStorage.php" hash="dc88ed1b13d0d64e00de152f1ab889e4"/></dir></dir></dir></dir><dir name="Template"><dir name="Edit"><file name="Form.php" hash="462e505fd8af0f80962031b107869746"/></dir><file name="Edit.php" hash="48bfdd7dbc7a07b74329f34fc15e2b7b"/><file name="Grid.php" hash="edaa2ba95d3e8d3e51dca87edd22599c"/><dir name="Upload"><file name="Form.php" hash="641ff8661a8bfc9da057762dd3531902"/></dir><file name="Upload.php" hash="f987f2622db027177d73f36e82ba9e07"/><file name="View.php" hash="c0f9d5e150c8966023bfe74f2a5a4424"/></dir><file name="Template.php" hash="e20c6cfb40305d2b881fdcdb142cb5e1"/><dir name="Tracker"><dir name="Edit"><file name="Form.php" hash="0d9f652248217ab0f394da51ef6f6d4d"/><dir name="Tab"><file name="Conditions.php" hash="b31492d97b6f7f7e3d23632b3ee2e17c"/><file name="GoalType.php" hash="5f50116962c2057d8f15c3b18ce8c3af"/><file name="Settings.php" hash="34ebd572a1be5d66332617636c2bc0c7"/><file name="Tasks.php" hash="c926c3e634083dc5a5158c12e23a0a35"/><file name="Test.php" hash="41fceb82ac6a4aa81d657afc543c9b40"/></dir><file name="Tabs.php" hash="968db82dc842269f7277783e44055294"/></dir><file name="Edit.php" hash="898e18adc9a40f6d59fb81ddecab5ae4"/><file name="Grid.php" hash="b5bc868d2e9b450875a4eb1539d57333"/><file name="New.php" hash="6f6888c512d84f049510a3ca2ab63193"/><dir name="Test"><file name="Emulate.php" hash="fdd2868862f81b954a8c02357d817b0a"/></dir><file name="Test.php" hash="484980216a181558caa1501ee9af974a"/><dir name="Upload"><file name="Form.php" hash="477838487137e3eb1e5dc35e51663e23"/></dir><file name="Upload.php" hash="c4b5dabd676d454780b0cfe675789f0b"/><file name="View.php" hash="aea1414d4007a74722afd085efa066a3"/></dir><file name="Unsubscribe.php" hash="36965a93d8b8e91c582b7741f32cb6c5"/></dir><dir name="Db"><file name="Select.php" hash="58fe600969f874f5e67d1b9d94b6cb45"/></dir><dir name="Helper"><file name="Campaign.php" hash="f01faaaf3c5a6986907d24899fc7beff"/><file name="Data.php" hash="63c169b10f5c1972b7a05d5738b76338"/><file name="Newsletter.php" hash="00419621c5b5e6409a031265789263ab"/><file name="Request.php" hash="f666492ef94b09e54cfe26e686179d75"/><file name="SqlFormatter.php" hash="b96d3145709013afbafbaf103a222a27"/></dir><file name="LICENSE" hash="cbbe04980244d5b18963e94de0ddea15"/><dir name="Model"><dir name="Campaign"><file name="Content.php" hash="283669b358dab3eb5caab9564706e329"/><file name="Preset.php" hash="0954e4379531054d2a75ce237b23dd1a"/><file name="Variation.php" hash="7a37bcd84e19775b382b1fb462ebeb29"/></dir><file name="Campaign.php" hash="7f4a72062611cd4e4dff825607f6a953"/><dir name="Conversion"><dir name="Goal"><file name="Abstract.php" hash="bdfaa9b669874180bd541f7a46891ab3"/><file name="Orders.php" hash="2d45598cbec8bb2af62929b1b1bd8485"/></dir><file name="Goal.php" hash="d992d57544ac19bcab694b32f3043897"/><file name="Select.php" hash="6737ede0253c3c39b470dbde78b20a3c"/><file name="Tracker.php" hash="acd28811dbdf189294030a80de377e52"/></dir><file name="DomainThrottle.php" hash="82b48629495a22a303b6dafa4f81bcbf"/><file name="Email.php" hash="258ff059211b3ddc04f26b8b294b211b"/><dir name="Form"><dir name="Element"><file name="Ace.php" hash="7c3fff8bb64b327ba7d198de7ee313a6"/><file name="Credits.php" hash="3853a36dbee012cdd8332f24635716a4"/><file name="EmailEditor.php" hash="d1a24e7f9727f231283b93cee2fbccf3"/><file name="Info.php" hash="10d6d74cb99682007d5ebcd7cc49f6d1"/><file name="TemplateEditor.php" hash="f2e5cb976b33383613f93f041ced4972"/><file name="Textarea.php" hash="3debd4461c6bea7daf0ba94a44de93de"/><file name="Wildselect.php" hash="6fdb8b0c04c23de963167155b965220c"/></dir></dir><file name="Goal.php" hash="eafa411d1fde8a58d2cccd048cda9ffd"/><dir name="Inbox"><dir name="Bounce"><dir name="Detector"><file name="Abstract.php" hash="f5b6a0104e6b1190d30e4620d4c421a4"/><file name="Recipient.php" hash="d10f333a7568200f0c4ab27b3284ddc9"/><file name="Store.php" hash="1f44d0222c7b188b9d48a48346bb0852"/><file name="Unsubscribe.php" hash="79601a97156e9d062110507eec312bf6"/></dir></dir><dir name="Email"><file name="Collector.php" hash="783434d68d2b06725d0a315480afacae"/><dir name="Pull"><file name="Abstract.php" hash="becb442fb688529f7147959d3e5081ac"/><file name="Storage.php" hash="402e14d850f18def36a8328d57f5214c"/></dir></dir><file name="Email.php" hash="2b4df735cfae4343a440e1dbf417f7c7"/></dir><file name="Inbox.php" hash="f57a319f5022f67a86abfd0757f261d1"/><dir name="Link"><file name="Reference.php" hash="ead786e40545f4ebde8530e16e5b6b87"/></dir><file name="Link.php" hash="48854d4541334d939beea7d06f31f2ae"/><dir name="Medium"><file name="Abstract.php" hash="68083ebc6623d1235c4cdeb450923c2b"/><dir name="Email"><file name="Composer.php" hash="c5f4b7191a18dde4cb7bf3f6fdb43028"/><file name="Filter.php" hash="a8373151c942af0a747d11d1c0c91a19"/><file name="Processor.php" hash="c39cad49cd35b6181ff7946ecbf2064f"/><file name="Snippets.php" hash="d7a11e22383b92bf50f0ad39c36fe2c0"/></dir><file name="Email.php" hash="a60d70b38f208c4313a17e4aec41afe3"/></dir><file name="Medium.php" hash="e8ec445730c59014a6eef87f90e77526"/><dir name="Object"><file name="Abstract.php" hash="fa305e2dfa29e84c433d29db3ba48183"/><file name="Address.php" hash="d1e9a798cddf252109a368fdbd4b4285"/><dir name="Collection"><file name="Item.php" hash="ce1b1fdddee02453931e3322f2d24acd"/></dir><file name="Collection.php" hash="538250a44bb03699a87e6cf600c99f7c"/><dir name="Customer"><file name="Address.php" hash="ec549b9cb6d81886c7ee248c39f4e37a"/></dir><file name="Customer.php" hash="29fe1fe70fe9a57833538165bd67855a"/><dir name="Filter"><file name="Abstract.php" hash="5cdee81cd51c3ab0d62f43811d73a60e"/><dir name="Address"><file name="City.php" hash="55ad8764fde89be140a35624a34e9f5a"/><file name="Country.php" hash="e2bf9ed5b837014b262312867a18aed6"/><file name="Postcode.php" hash="d3b296f0f48705f828289eec87f0487d"/><file name="Region.php" hash="287a5f3a189c285bc05018984e40bf0f"/><file name="Street.php" hash="722966b753f5a23feda98c2b88fdd2f1"/></dir><file name="Attribute.php" hash="4d99e36e56f5aac0b151f3790235e4a8"/><dir name="Campaign"><file name="Goal.php" hash="b45b649adf3c0b3eedbc407b0a2abba6"/><dir name="Recipient"><file name="Abstract.php" hash="aa108be890048c34ff189d76ac6a5c3a"/><file name="Interact.php" hash="6806ed2b2c51f4f3623443858b59c733"/></dir></dir><file name="Column.php" hash="2a8ec70e405f9ec53deca5c6f3d74bb1"/><file name="Combine.php" hash="a6d74a0af994b00a6efc1bca3b3591f5"/><file name="Component.php" hash="287de4230bfa8da190e878322499c3de"/><dir name="Customer"><file name="Abstract.php" hash="cd6a67ef10978da410fae871e043f8e2"/><dir name="Address"><file name="Attribute.php" hash="3c97264d7a2ca5d4ab6e49935b4ea138"/></dir><file name="Address.php" hash="27e59f55f89c819ad3934aefaf2f6fe4"/><file name="Attribute.php" hash="619f3fada6d329232b52ae85e9db217c"/><file name="Event.php" hash="e08417946116bb244bf7f6d70aa151bd"/><file name="Lastlogin.php" hash="79d328b55d02f167a67de0754475c6ee"/><file name="Name.php" hash="f9a48bbff0c574d091981c5205abc1db"/><file name="Order.php" hash="32c684797b1a475b70600fba083cf22c"/></dir><file name="Main.php" hash="2037842d7dcdf176cdad7065c8a32593"/><file name="Newsletter.php" hash="387baa27a315ad03e7c08930f1b6e606"/><dir name="Order"><file name="Abstract.php" hash="1f57feac25cd30c2205dcfc41b1453e2"/><file name="Address.php" hash="25eb2cf61ed621ef5f195f189341f3d9"/><file name="Campaign.php" hash="531b5ceaa666f0d22d6f6ef52d27a478"/><dir name="Item"><file name="Abstract.php" hash="e174af93f89ef38829cf70913eb7ecdb"/><file name="Table.php" hash="9fd1ee63533695d86ca203d7e4ebd5ee"/></dir><file name="Items.php" hash="07587ffc5e040fd2d16b8d547bc2d595"/><file name="Previous.php" hash="7229e7870ec062bfba77c5f85f9b9e5b"/><file name="ShippedAt.php" hash="4f6c9ccdf50cff372a1c64806f9c5113"/><file name="Table.php" hash="d54875550bd144724fb72fa253cab518"/></dir><dir name="Product"><file name="Abstract.php" hash="93218442920a3530b8d83369d294ca96"/><file name="Attribute.php" hash="21b500c4f8f663f05f4b9b1918e17fba"/><file name="Category.php" hash="e99c5ed50c3ce1b38b373c874d912e0c"/></dir><dir name="Quote"><file name="Abstract.php" hash="badea5cb2b32dba10b3e1d0b3deba19b"/><file name="Address.php" hash="8a99d6dab95cb6d6417e659aaad5e198"/><dir name="Item"><file name="Table.php" hash="3fb5a711a97d73705e56f0d120cb4233"/></dir><file name="Items.php" hash="154afb59d91b7043b1b671143f8bbc22"/><file name="Table.php" hash="07c7e2ac9e3e919914b99668c8cff5b7"/></dir><file name="Table.php" hash="5ac5bc66ee6c5b896b0f1b6ada414036"/></dir><file name="Filter.php" hash="60789e02cb5e3ac77b15ecdbf82f9294"/><file name="Order.php" hash="3d4e87704e9cfcd904aa26e3b0eb1860"/><file name="OrderAddress.php" hash="3da35743fa20d6d63be6e230dbab374e"/><file name="OrderItem.php" hash="5548830ec6206fea4d7aa428f361e192"/><file name="Product.php" hash="77d99371dc8a258ace32effdf668d02e"/><file name="Quote.php" hash="a1b7715c166e6622aa0c68b2953d90ae"/><file name="QuoteAddress.php" hash="d7780719f55dda0b778d89eb68541c24"/><file name="QuoteItem.php" hash="ce9cd15768875de7b6be6e4c1efcf329"/><file name="Recipient.php" hash="848dae32054ca1757671620bbdb61b93"/><file name="Subscriber.php" hash="3d27059727873fea23c5b6fd2f5d03a7"/></dir><dir name="Observer"><file name="Abstract.php" hash="4ce57df3726192ddabf00dea9f11d2bc"/><file name="Cron.php" hash="b894b3d5755b244754696e92be212217"/><file name="Customer.php" hash="f2475a8187a6561ccf58df62dafcf891"/><file name="Goal.php" hash="d105f1a675605412880b5fbad57c52e2"/><file name="Order.php" hash="e5ea8fe8e52bdfc7e824e57f00e68247"/></dir><file name="Observer.php" hash="ca01ff31f31b99a189a782fc3ba15817"/><dir name="Outbox"><file name="Email.php" hash="fdd9e04ceb31595ed500047a181b860c"/><dir name="Transporter"><file name="File.php" hash="9e01fd3f440c30f969dc49839fcc78f9"/><file name="Interface.php" hash="5fa6c5c45fb275bc30c8d79d21e48029"/><file name="Sendmail.php" hash="1cafae2d92ef4d6d756639fc54bb53f2"/><file name="Smtp.php" hash="26b625adb843e1b13c1dcd360fe538d0"/></dir><file name="Transporter.php" hash="1cb8d86f6a9be21f74fde558ce9aec6b"/></dir><file name="Outbox.php" hash="66db891ba7d5c53a9ad0f3241316489e"/><file name="Premailer.php" hash="8cc5c88909cbc4fcde6877f80018080d"/><dir name="Recipient"><file name="Error.php" hash="03ab2ec91e529afdf6e8508523076a68"/><dir name="Provider"><file name="Abstract.php" hash="22278b5fb53fcaa26f4d6c2d1b0872dd"/><file name="Customer.php" hash="9e8c79ac70a462b4d366f876bf3c888d"/><file name="Newsletter.php" hash="3dc548418689bc0350d34678956abf79"/><file name="Order.php" hash="df3c203be3706fe318215742658edcef"/><file name="Quote.php" hash="44dbf2828b6c0c61c54b8a287f6d4a78"/></dir><file name="Provider.php" hash="d069830f14b2313b46476330a6ae16df"/></dir><file name="Recipient.php" hash="7d4eb378467ef4216e00acb024ccec42"/><dir name="Report"><dir name="Aggregator"><file name="Abstract.php" hash="29f8aad72d48248daee12c49f1cd166a"/><file name="Campaign.php" hash="138dfdaa0a43414ce908c26fcd9b3ae0"/><dir name="Dimension"><file name="Abstract.php" hash="c10f25c456fc3693fa5b9e5b6b6827dd"/><file name="Country.php" hash="0c7a5664080771a2159d05730727fb3d"/><file name="Dayofweek.php" hash="bef79b6ac25749017fa6dd6cae9322f5"/><file name="DeviceBrand.php" hash="af8831e9f3232d6c1623aa9d1d065d6c"/><file name="DeviceType.php" hash="45356b207945d1c06f4a1735d416e4f2"/><file name="Hour.php" hash="b70567aa11d059b9519915cbb2d49204"/><file name="Os.php" hash="b556cea239dc08c9d22880779392d2a8"/><file name="Region.php" hash="3fbabc0a25e2ad099c9fc7c9251cfe29"/><file name="Useragent.php" hash="2afefdc949109b99b974938544986838"/></dir><file name="Dimension.php" hash="2a31f8a9b31cd81ad4d999d6591a3b1e"/><file name="Events.php" hash="2444bc8fe97185e9266eb0de5a88aea7"/><file name="Goals.php" hash="b44cc7bef41a6b75966a647955d4a532"/><file name="Rates.php" hash="23a1befd51e042338aaba0112f18f7bd"/><file name="Recipient.php" hash="460bcac2eb52611971bbb7bf59c7bfdf"/><file name="Tracker.php" hash="6bab530b094195f5084405d5308cf263"/></dir><file name="Aggregator.php" hash="d9f25a538094f8d850e1d7dd9d7c8480"/><file name="Query.php" hash="d1fb51aab0d5632302048c117ac1411d"/><file name="Seeder.php" hash="258c6d07f68f3deced2b1432348369d2"/></dir><file name="Report.php" hash="6acd7058720277cb7ab065b8b45ba5cf"/><dir name="Resource"><dir name="Campaign"><file name="Collection.php" hash="ff3c2c6046db39b6f031ddaec99c274d"/><dir name="Preset"><file name="Collection.php" hash="1a894c4b310676b96d58b489015a8135"/></dir><file name="Preset.php" hash="996969213b9355149c617c2c7933ce27"/><dir name="Variation"><file name="Collection.php" hash="e05d5380a0532d3f8c58db739126ffe8"/></dir><file name="Variation.php" hash="68807edfa4b479e43b70b5d8e6e46359"/></dir><file name="Campaign.php" hash="49248ba177ae925910d4e2bcb249cdf1"/><dir name="Conversion"><dir name="Tracker"><file name="Collection.php" hash="060764b836b1f65b84f481c9eeba1904"/></dir><file name="Tracker.php" hash="7de516b9850b502671adc333e0d5e806"/></dir><dir name="Email"><file name="Collection.php" hash="51caeb31241c9835d2628fe43af1793e"/></dir><file name="Goal.php" hash="fd12bb1435cd222fc2ba8b2c7d99e2ad"/><file name="Helper.php" hash="04315ab6f882b948f77d9184c72d1154"/><dir name="Inbox"><dir name="Email"><file name="Collection.php" hash="2e8f4fb9f8f46d55b05fb067aac61458"/></dir><file name="Email.php" hash="c27c7dc46cddcd638116442d34389f81"/></dir><dir name="Link"><file name="Reference.php" hash="afdf545a78dfe323e6579d5e073a63d0"/></dir><file name="Link.php" hash="9ec5e15c59f83399f0e116c221dd99c7"/><dir name="Outbox"><dir name="Email"><file name="Collection.php" hash="3342b1533d44999846a14bb42d4707ab"/></dir><file name="Email.php" hash="1193cea770ff5e53130d912252e21807"/></dir><dir name="Recipient"><file name="Address.php" hash="f4a55d32b7a2d40b54e97f3de3e3268d"/><file name="Binding.php" hash="7ded3a1be784f1aca82c4d73f7d9ef05"/><file name="Collection.php" hash="b42d344615ac050969162ec55fbdd621"/><dir name="Error"><file name="Collection.php" hash="aa83137767ccd9e07d0cc2fbb878571b"/></dir><file name="Error.php" hash="32bceaf59180feaff4d158f7d9db69ee"/><file name="Event.php" hash="6740589ed5bfb33de90fde9e404da045"/><dir name="Goal"><file name="Binder.php" hash="eeccbaf6d098c6e5bcacec0a1b0bc107"/></dir></dir><file name="Recipient.php" hash="0e62a84fa699a5c0b854fed504769eac"/><file name="Setup.php" hash="b9c5153b89a0b51cabc52650d73f015b"/><dir name="Template"><file name="Collection.php" hash="ba813aa09d50934b16572507ae6592bb"/></dir><file name="Template.php" hash="4eddcc5c513bc434fd7a5562ea77743c"/><dir name="Useragent"><file name="regexes.php" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir><file name="Useragent.php" hash="4acf62bd52515354ae48d87acdafd408"/></dir><file name="Session.php" hash="12715a2622d1dbf932cb9ccce1a79dcb"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="DomainThreshold.php" hash="9df35becec7c1605b5ae6f6320bb5d57"/></dir><dir name="Source"><file name="GeoIp.php" hash="716e6376fd57a0afa5f8d6b780b2c17e"/><file name="MailStorage.php" hash="5b8431cc0f846443fff6053685d6b602"/><file name="SmtpAuthentication.php" hash="93f27f6bb3d1c92eaad765988146e25a"/></dir></dir></dir><dir name="Template"><file name="Exception.php" hash="914ad193e2bbf3372abb06fe68d6cf54"/></dir><file name="Template.php" hash="77775190f825050924912ea5e150891a"/></dir><dir name="controllers"><dir name="Admin"><file name="CampaignController.php" hash="aeae6c128aed4e5157fa6ef6a66a3a78"/><file name="InboxController.php" hash="077f44df2c4825a87e5ce10a7af00d4d"/><file name="OutboxController.php" hash="03088bdaa74e7b16d9237789b67ea337"/><file name="ShortcutController.php" hash="d8515cfeaf33fcb9b33ea60ba17829c2"/><file name="TemplateController.php" hash="b4fcdfffb50a3f98fc126984e33afca3"/><file name="TrackerController.php" hash="d914a6ae4693f647a8e930fe9bd80745"/></dir><file name="BeaconController.php" hash="de8e9ae17ad4be588d92dba4857c7bc7"/><file name="EmailController.php" hash="f46bdc9f2d4ff97d498c1c850d042569"/><file name="LinkController.php" hash="8311c66b9114822f878214ec75513bc3"/><file name="UnsubscribeController.php" hash="7530428081658766c083946122debd75"/></dir><dir name="data"><file name="useragent_regexes.php" hash="04be2c7f432ceed2aa983ddf61ed0964"/></dir><dir name="etc"><file name="adminhtml.xml" hash="8a1848ffaa34cce4c30993d8250a0921"/><file name="config.xml" hash="c0db4ccb5b11a292f0622173b6abba35"/><file name="system.xml" hash="8259dfd1a511d2fd0fb0cd397a0e1908"/></dir><dir name="sql"><dir name="mzax_emarketing_setup"><file name="direct-orders.mzax.tracker" hash="6351063c618ba1f0d7555b58af077eff"/><file name="indirect-orders.mzax.tracker" hash="e2260302f9c0a694269c8dd2ed6f7cc2"/><file name="install-0.2.php" hash="4b846249b848e7167198451185399d43"/><file name="mzax-abandon-cart.mzax.campaign" hash="7998d1657809d03025b2c0e53b8eae52"/><file name="mzax-after-ship.mzax.campaign" hash="5a38e063a0291b2f8c8f7f10a5eb38b7"/><file name="mzax-female30-40.mzax.campaign" hash="2f6c97954d0b17eb284d950f5aff5679"/><file name="mzax-happy-birthday.mzax.campaign" hash="a1e9f1754efe51df85b6bbe31e63d7bc"/><file name="mzax-viewed-products.mzax.campaign" hash="ba3840741be92d13a4e0fe7a83756ded"/><file name="sample.mzax.template" hash="db77bf43d62a480dd078c5f55a64aa7a"/><file name="uninstall.php" hash="7de9167a24479b191d3ce4bd464302aa"/><file name="upgrade-0.2.6-0.2.7.php" hash="3107c6b1eb559a4f4daf4169908bf0df"/></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="mzax"><file name="emarketing.xml" hash="59c43f25e484aae37cb6981d01a92b29"/></dir></dir><dir name="template"><dir name="mzax"><dir name="emarketing"><dir name="campaign"><file name="content-tabs.phtml" hash="e7e3f55d64aa78273c9249e7c2739d9d"/><file name="credits-left.phtml" hash="0ba657c286e94aa83882551b8fb25cd5"/><file name="emergency-stop.phtml" hash="7f22657383de19f98c8ce567e265c9ab"/><file name="fieldset-offer.phtml" hash="2b6e09dcdbfdbb52eab6a203f32100a1"/><dir name="filters"><file name="emulate.phtml" hash="06ded5a2f2c0383a2d7809473abdc08b"/></dir><file name="load_template.phtml" hash="97105ad5fdc10f152af92670211108e3"/><dir name="medium"><dir name="email"><file name="preview.phtml" hash="5dba41b514c5eebad2b69e00e0b69879"/></dir></dir><file name="medium.phtml" hash="59aec898f3a31a582eeca4b6b07d2659"/><file name="presets.phtml" hash="c535d4b49404ce7581a8c6d2c246f114"/><file name="recipients.phtml" hash="43d8e5097ca89e36240c8df2ed4c5f42"/><file name="report.phtml" hash="06ecec111394562690f0151f2ddcab70"/><file name="tasks.phtml" hash="b45cb82108b1f311fc78d3d721241455"/></dir><dir name="edit"><file name="js.phtml" hash="ff802f79540706ede1e6eace8e9756ec"/></dir><dir name="editor"><file name="text.phtml" hash="58ece2b7b236d3171276d9587e1d8ec3"/></dir><file name="fieldset.phtml" hash="7f28f56800b25224ec45d7d6b6ee53af"/><dir name="filter"><file name="page-preview.phtml" hash="af7a7c8d66657cf51c220231af06281b"/><dir name="test"><file name="filter.phtml" hash="83799de3fc31a68d9bd8d313a63756dc"/><file name="recursive.phtml" hash="16d4220d72ed0ce4f1b8299b493d3eda"/><file name="single.phtml" hash="969a0ca4ada3047718e9f34f7b5c3376"/></dir></dir><dir name="tracker"><dir name="conditions"><file name="emulate.phtml" hash="465ef1911619892bc8ca922e60a7c921"/></dir><file name="tasks.phtml" hash="cc2a6732a90102b8273c1ebc58f8a79e"/></dir><dir name="widget"><file name="chart-geo.phtml" hash="a4a75ecc183434dd1a0f621efee92c72"/><file name="chart-tab.phtml" hash="dd6aea27d4d08bc05fc8800eff39b30f"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="mzax"><file name="emarketing.xml" hash="0cfe5480dd369af51c00cbc74ed9a154"/></dir></dir><dir name="template"><dir name="mzax"><dir name="email"><file name="order-items.phtml" hash="1bb31b30dc363703f040d4ef83807c7a"/><file name="quote-items.phtml" hash="6958ca54209da6121294d2f40c05b688"/></dir><dir name="emarketing"><dir name="link"><file name="redirect.phtml" hash="deee18a9c58107b7be2666943026e21f"/></dir><dir name="unsubscribe"><file name="done.phtml" hash="d2320a8df0ac461b24bd1add48590d6e"/><file name="unsubscribe.phtml" hash="b98d85482c918400313173f3b50e10f3"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Mzax_Emarketing.xml" hash="3cee6fd8799acaddd8270fd7d62ba03b"/></dir></dir></dir><dir name="js"><dir name="mzax"><dir name="ace"><file name="ext-mage_autocomplete.js" hash="824dba8992d1455b75180dc16dff6a90"/><file name="mode-mage.js" hash="f18a1cae71c145281dec465f053a4897"/><file name="theme-mage.js" hash="f2c8daf50c94a05ba30f4280889d544b"/></dir><dir name="ckeditor"><file name="CHANGES.md" hash="086ace5f51cef680819d7804c06ef36b"/><file name="LICENSE.md" hash="b76d377d06b6a60688c32bdf4b45ff16"/><file name="README.md" hash="79e767b62fc79d117ca3c5dc2688c077"/><dir name="adapters"><file name="jquery.js" hash="e4c8afd45bf6ff622524ea428f7ff78a"/></dir><file name="build-config.js" hash="ab427e11b5dcbf596c6aec2aebf5d65c"/><file name="ckeditor.js" hash="4896c30097e66fdf7ed274b4b8939576"/><file name="config.js" hash="d56f7d8d075d6fa9b878aa7afb3e6b23"/><file name="contents.css" hash="e56702c98270ca7443a34f69d9401ee9"/><dir name="lang"><file name="de.js" hash="d0ae453502c70c77f527213e69bab785"/><file name="en.js" hash="e02a2d23d556fe01660bbd7c92532032"/><file name="es.js" hash="b2d8804a8d8d1f776ac81b0370bbc847"/></dir><dir name="plugins"><dir name="a11yhelp"><dir name="dialogs"><file name="a11yhelp.js" hash="5e9cbb2d9548a1bbdda8ab40bc6d82e8"/><dir name="lang"><file name="_translationstatus.txt" hash="9d2f1b77aa8589aad32d2e72c4a48c1c"/><file name="af.js" hash="57db7eae9fadd050140c1a79686576ef"/><file name="ar.js" hash="ae0dca6e4aca53c71d300eebf258f556"/><file name="bg.js" hash="6df810a274cdf531eac0884407c1387f"/><file name="ca.js" hash="e6770613a51e7d6ca8033bdb85a4672b"/><file name="cs.js" hash="ba9fa13cc66b4e9fcef863441894dfd8"/><file name="cy.js" hash="17cd76d97c7442f393c71f5ef3ae5df8"/><file name="da.js" hash="3b489224c0f2c8867d3c31feedb75fe4"/><file name="de.js" hash="62bdfd7e5cc9128c086f9cd366458c29"/><file name="el.js" hash="f1a0ccc89e1ece0fbf0764468d28f67e"/><file name="en-gb.js" hash="97f503f0cfec0005bef7063ef450865d"/><file name="en.js" hash="e7f716fdd18bcc7f2d1dd69d9f751457"/><file name="eo.js" hash="d7d9ace8288515db1b788b201f3c9b14"/><file name="es.js" hash="16a3b44fc1aeb37b12c77e09f5b8e061"/><file name="et.js" hash="dc71f6c0e5201a21b7c50d698e264dfb"/><file name="fa.js" hash="e749aa8c4f7a98b3eb5d372b50b12399"/><file name="fi.js" hash="7642e927603414091b6a78e2fd58e58d"/><file name="fr-ca.js" hash="2b7c2af5cf245dc4de3d94b3ddf33a50"/><file name="fr.js" hash="97137f6c50eb0c52e6079976efea6ce5"/><file name="gl.js" hash="2f5badc1fb30870417f8446e4a922f48"/><file name="gu.js" hash="57c92f55857709a6ebaa1d71df9dde18"/><file name="he.js" hash="c5ace2c1b0e97a4dfac1989956878ad4"/><file name="hi.js" hash="98a400437bbaa7bbe2dc78362a80654b"/><file name="hr.js" hash="1d8979c07e7c2c43edd7e96063d4cb87"/><file name="hu.js" hash="c7d5e59a943e27ab33a3fd9c625b96b4"/><file name="id.js" hash="96b21178e69445f6e34631af98e1897e"/><file name="it.js" hash="9dd479444a107e7a1afec265201facf2"/><file name="ja.js" hash="db6295456692cbf343f3c85303c1c561"/><file name="km.js" hash="75ee722498057c8d6230d2dd0c16e098"/><file name="ko.js" hash="8d7ed1e5e31ea1dbdffe1e499e864da6"/><file name="ku.js" hash="ce91e781995d2538b86b1917d2b5769f"/><file name="lt.js" hash="99854a038cb815d50f6c47b5e0d49b1c"/><file name="lv.js" hash="94eb2107bb4f895f0d2ba0fce046e653"/><file name="mk.js" hash="91e3afedae95d1a8670ba64ea85a0e1f"/><file name="mn.js" hash="5af562e1156d69e461b9d5a3fb07355c"/><file name="nb.js" hash="5c3b6c6c4bb268cc5a5bbcbaa35c23de"/><file name="nl.js" hash="a51056e4b267ff8aa8e6b00af69e9ed9"/><file name="no.js" hash="bbb23c2598e8135cd05df812b0f366ab"/><file name="pl.js" hash="32d99e712eb71d60e884abb180cb0588"/><file name="pt-br.js" hash="89c15d40b9fbd807a029539288f1c831"/><file name="pt.js" hash="efb4968ddd9bc06cc11e790cc2f4ae63"/><file name="ro.js" hash="4f59c58ebf7818850b74ae14bea766ca"/><file name="ru.js" hash="15e64c8841cc204dc500b365d9c971aa"/><file name="si.js" hash="b127d23b2ac9fe5173883045878d4cd1"/><file name="sk.js" hash="b895d3b67ee7ad59c99587155eb88f82"/><file name="sl.js" hash="0439bd74135483683240cb233997c5d3"/><file name="sq.js" hash="f9e265a88d197465c6ba4fc10ebef006"/><file name="sr-latn.js" hash="6774df8a488bf5299d6383a76b68a21e"/><file name="sr.js" hash="2b86e725f5df707a7d04f7eb2f037282"/><file name="sv.js" hash="69cd1ce1820cb078869dc6bbd5c1dd5f"/><file name="th.js" hash="de9aca0b1d174df16a0e46f010e01859"/><file name="tr.js" hash="a9425c2b97256a7ce939dd7b6fdecdd3"/><file name="tt.js" hash="8dfeca9c549fb0694ca7d478a78f1234"/><file name="ug.js" hash="872d326bfd275200cb7d42095a143969"/><file name="uk.js" hash="703b54d911a9127e0e28caa50dee4e54"/><file name="vi.js" hash="5543b700470c7719f1ea3268d6b99709"/><file name="zh-cn.js" hash="a4b6c1e3d9d4a3307fd462247d0a6891"/><file name="zh.js" hash="f02b803bd82bba3fb83c9831daf391b5"/></dir></dir></dir><dir name="clipboard"><dir name="dialogs"><file name="paste.js" hash="d480f919ea090843f97207a7b23fb79e"/></dir></dir><dir name="dialog"><file name="dialogDefinition.js" hash="e3d1a00050872887ebe27dd13c069231"/></dir><file name="icons.png" hash="e6afd5bb75a4ff8fc3e8fe51794b1fc2"/><file name="icons_hidpi.png" hash="3f0428b3d8ae3310d62e11cb2f541b5f"/><dir name="link"><dir name="dialogs"><file name="anchor.js" hash="92c23ab4ab30457ff85d4499c7695749"/><file name="link.js" hash="18b19628e7e314dbdfa02d0e04bdd425"/></dir><dir name="images"><file name="anchor.png" hash="cde31b4a6e7c3a89b00071b73c4e3a94"/><dir name="hidpi"><file name="anchor.png" hash="18b64b492bcef232255f85e9841531ca"/></dir></dir></dir><dir name="magicline"><dir name="images"><dir name="hidpi"><file name="icon-rtl.png" hash="186ae315c9c3cfb30d000405146c4f40"/><file name="icon.png" hash="dded37b889e0c2382dcd7fced21bc914"/></dir><file name="icon-rtl.png" hash="39bf0277ac19feb9832c8bc6540e2832"/><file name="icon.png" hash="050f18823f03b69cc953c67c3d590da7"/></dir></dir><dir name="pastefromword"><dir name="filter"><file name="default.js" hash="b63fcee1a9893d3181047be624360fd3"/></dir></dir><dir name="showprotected"><dir name="dialogs"><file name="protected.js" hash="14f77e1425e174bbca68098ce81d7e3b"/></dir><dir name="images"><file name="code.gif" hash="163488a6d1a538b131ec6fc206699e5f"/></dir></dir><dir name="specialchar"><dir name="dialogs"><dir name="lang"><file name="_translationstatus.txt" hash="194d98388d302d35875d878e37eb83d2"/><file name="af.js" hash="c40b97d8c386f3e18dd4ea140efbc097"/><file name="ar.js" hash="f13c6bd0e2d9244dc7b8c084ddfa20dc"/><file name="bg.js" hash="d42de9c665fa8673acea8b25818ef28e"/><file name="ca.js" hash="9c83c1e07f9d4722c16a31a3b46745a1"/><file name="cs.js" hash="360de9ebf51dc7f407aa0aaa02841ee0"/><file name="cy.js" hash="102d72f4361cc9f3dc1027e63b0546ab"/><file name="da.js" hash="61c6478bedbba7940cb59b68a70dc33b"/><file name="de.js" hash="efc49e4dc39a57dd6e30881e90d37d7b"/><file name="el.js" hash="16afadc8fe0b0f99c1a298b875c0b8e5"/><file name="en-gb.js" hash="18089a7a11d94d93b29658253606d9f8"/><file name="en.js" hash="945f7871dbeb50c31299bcfcf0c7c413"/><file name="eo.js" hash="6d61bf857585b9bab64a72d49d218ea5"/><file name="es.js" hash="58c66fb5089ea0c5cebdc62532992358"/><file name="et.js" hash="511a57bc06c0e19fee7527ff2ac4c1a8"/><file name="fa.js" hash="48809c1c9c99b2b5d2267dd86eaaff9e"/><file name="fi.js" hash="c933874c13b0701d74f5af8bc59fc6a3"/><file name="fr-ca.js" hash="e97737ff20da824ce9b06e4d9cd776b8"/><file name="fr.js" hash="52f1a604d5227e02aea1a79cc4aa679c"/><file name="gl.js" hash="8ea22088a992882033cbf0ab4efefe57"/><file name="he.js" hash="38ca00105219a1eb075ae249a25e6cd8"/><file name="hr.js" hash="4c91987b9d04390f99690cc890c8d49b"/><file name="hu.js" hash="3bc9715cd3cb94d9241bf60ef3296d09"/><file name="id.js" hash="ff9be390ff67fd48f7512c85d968eed3"/><file name="it.js" hash="5f103e92352a7514f283fbf7d0dee18e"/><file name="ja.js" hash="0ad16954d5d5c5eebec4ca8794b31cb7"/><file name="km.js" hash="b8f2bb7926959c5030130dd7df51ab0d"/><file name="ku.js" hash="2ab01472dcc5cccbb17b440dcfacf5e5"/><file name="lt.js" hash="82092f207ae96d96155185af4186d4aa"/><file name="lv.js" hash="b24a1e0e2c922be6a66ff69930c4efa0"/><file name="nb.js" hash="47473a52bd2f40eaab010b36497d42a5"/><file name="nl.js" hash="a60a53f34a2fc46104f43ae7208f7c30"/><file name="no.js" hash="7e559ac208f439e0828cb5b34d8e6d25"/><file name="pl.js" hash="689428c1b70925257030d557948146fb"/><file name="pt-br.js" hash="a3a9f87a3100e818205520f7132df79f"/><file name="pt.js" hash="edd07c226d60b95da27404f5f7570eb9"/><file name="ru.js" hash="c1fc597d32c66c8c6a703c5919c2323c"/><file name="si.js" hash="1b32fc96f1ac0adf8b85cc8688ba32d8"/><file name="sk.js" hash="f4517a5d725fdf1a2329378d22efb715"/><file name="sl.js" hash="f811125c01943e4b0e9c1b56feddcf3d"/><file name="sq.js" hash="0e03d2caaa809c9e1ad811fa836764a1"/><file name="sv.js" hash="ca12a09364634c0567884961be6ab7f3"/><file name="th.js" hash="d304551279386c78142b4e0ee9c56a4a"/><file name="tr.js" hash="b3d9b0dedc876fb4894a6b637fdf2c84"/><file name="tt.js" hash="75cb0bd8ec39356c232506db2360907e"/><file name="ug.js" hash="96507f5a5d7e72f15469a99f0d645de6"/><file name="uk.js" hash="209b972cbb6066e97e7b8b4122616567"/><file name="vi.js" hash="1ee97e539e40c1080297c3a84c5e3f85"/><file name="zh-cn.js" hash="e1d97232891432a18d096feb9e78a0bb"/><file name="zh.js" hash="828048855d947be77aa26f399534279e"/></dir><file name="specialchar.js" hash="ab8882c71bf9938d5817552b7b4794f7"/></dir></dir><dir name="table"><dir name="dialogs"><file name="table.js" hash="287e36bff701e171addb148a29fe813e"/></dir></dir><dir name="tabletools"><dir name="dialogs"><file name="tableCell.js" hash="66c936d062f18e3d01a41e7c5f8a9de9"/></dir></dir><dir name="widget"><dir name="images"><file name="handle.png" hash="8166041f605df672ac83054b6f14693d"/></dir></dir></dir><dir name="samples"><file name="ajax.html" hash="13e12c904135762c54e2642d31634123"/><file name="api.html" hash="5669d9f1f1a904ed1e85e0ea1e15ef97"/><file name="appendto.html" hash="9cf44738ffa6773f5eb3cceb3bcfba1c"/><dir name="assets"><dir name="inlineall"><file name="logo.png" hash="3b4e496615dc92d13bb0dcd0f23acbab"/></dir><dir name="outputxhtml"><file name="outputxhtml.css" hash="5a86ee8ed5c92ad7e93eb5f126709007"/></dir><file name="posteddata.php" hash="87bde163c8c49508cbf0966ecccd35f9"/><file name="sample.jpg" hash="77ed4b8c5beca4c18b4e0d007ac5bf9e"/><dir name="uilanguages"><file name="languages.js" hash="34db2de9bb1301834a32fd9b26584e0c"/></dir></dir><file name="datafiltering.html" hash="599bd5e7de272b30fa755146fd2b19ea"/><file name="divreplace.html" hash="96128b12518bbaada7366fb6659a2d98"/><file name="index.html" hash="52d578befbb65b42162ad0e6ed8895ba"/><file name="inlineall.html" hash="9537678653e090800aa3c7e1dd5499b0"/><file name="inlinebycode.html" hash="1a95857074012d655fafc8ee8d041d15"/><file name="inlinetextarea.html" hash="4d70e1b01e4782ad9a8d0830b4f1cc43"/><file name="jquery.html" hash="29dbd93c398652866b8af428b7c4213d"/><dir name="plugins"><dir name="dialog"><dir name="assets"><file name="my_dialog.js" hash="5f440a90c0eeaa86c386cc7a40494b08"/></dir><file name="dialog.html" hash="b471851873c91312b788dba7808e17f5"/></dir><dir name="enterkey"><file name="enterkey.html" hash="72ad01f514cfd0821cbfb4dcc2342a11"/></dir><dir name="htmlwriter"><dir name="assets"><dir name="outputforflash"><file name="outputforflash.fla" hash="3435fafe2a602f5fd1f6c551bc9ddc38"/><file name="outputforflash.swf" hash="e36a324b70d2cd73941ac1961706daa4"/><file name="swfobject.js" hash="23d81623f093e69cb1f4480f0d6f2958"/></dir></dir><file name="outputforflash.html" hash="30cdec9c17dec4bef9ad7640be16412d"/><file name="outputhtml.html" hash="51cd8a08381d779893f9ace786a98a14"/></dir><dir name="magicline"><file name="magicline.html" hash="d4a3793d63f5f29cf8a11ca609993ee6"/></dir><dir name="sharedspace"><file name="sharedspace.html" hash="1e934807fb99bb5d268bf84668391741"/></dir><dir name="toolbar"><file name="toolbar.html" hash="b3f21442e61e28aac6bd7cb8126cf291"/></dir></dir><file name="readonly.html" hash="b6a0650cef87b334cdbf46fd9de8d668"/><file name="replacebyclass.html" hash="c1aa7fd11107222f311cbeb56a08eca5"/><file name="replacebycode.html" hash="464937c66127b7b1fcd47e46e5804f0b"/><file name="sample.css" hash="45da17bc8bfe713fb52366056b3d5626"/><file name="sample.js" hash="3d98c86ea6c35cf32979a67656686219"/><file name="sample_posteddata.php" hash="cba787bedaffd8a646a7eed4622d7615"/><file name="tabindex.html" hash="5247faf3c7d0e0133e95a2f3bb9d898b"/><file name="uicolor.html" hash="f10e31e66f6431acf57961c46ecf70f8"/><file name="uilanguages.html" hash="03f98f3d7ffc5c2dc9c8b7ab246b55fc"/><file name="xhtmlstyle.html" hash="2adcd1c79ff558ff21f0173d8f81f3b3"/></dir><dir name="skins"><dir name="icy_orange"><file name="bold.png" hash="c122fb13c15a4346166295f32e71a1d3"/><file name="dialog.css" hash="33e783cfaea32ca54788941a63bdd6eb"/><file name="dialog_ie.css" hash="acf2be239117d898f7a9e73e09026116"/><file name="dialog_ie7.css" hash="d5cc9da7a9ba1326e84958c54e9b20e7"/><file name="dialog_ie8.css" hash="94e74ab7b315bbd264ffb23db9cfdc84"/><file name="dialog_iequirks.css" hash="c7726bb743f20ce5b6115d12474e2dc6"/><file name="dialog_opera.css" hash="636c409500ea025885fd10b6d53946a7"/><file name="editor.css" hash="4ff7a3e087bfc0d05db738383d4086e2"/><file name="editor_gecko.css" hash="817a8392831b505002c9a93ce0fa354d"/><file name="editor_ie.css" hash="d65159db471a5bfe98827ce63060db1a"/><file name="editor_ie7.css" hash="009428ac76e92a7695510f18a580fbb6"/><file name="editor_ie8.css" hash="f0eed619cf520a34f2e0d767f1959596"/><file name="editor_iequirks.css" hash="c262e36d3ac8750bb6f0dd9b2d34e8f0"/><file name="find-rtl.png" hash="058bf3745d0d8a05ba3d8ce6c3dd31a9"/><file name="icons.png" hash="2ce53daffb36da967bb628bb70c42d73"/><file name="icons_hidpi.png" hash="878057da02b2ecc2ae61cad5ea4c132c"/><dir name="images"><file name="arrow.png" hash="bf00bd704f4c07bf68ac74fc97f4048b"/><file name="close.png" hash="400b7d585f873156c91bed734052ed23"/><dir name="hidpi"><file name="close.png" hash="0b50469fa387095e0fef5a3d14f1e696"/><file name="lock-open.png" hash="e605db29a9dd200ff67c7a6a47cb8cf5"/><file name="lock.png" hash="fa2ec8251bc7e3ba3adeeb057196bc79"/><file name="refresh.png" hash="e0c80d3ca0fe5353af93daad399279e7"/></dir><file name="lock-open.png" hash="6bd731e0c165ed297a0bdf11a41ed26c"/><file name="lock.png" hash="2fc75413fd693917d55cc206ce4c2a1c"/><file name="refresh.png" hash="230b1b1f62af875f64afc0b1664453cf"/></dir><file name="readme.md" hash="a2e00abd50e5d5f7edb67d7de9f3216c"/><file name="scayt.png" hash="e5729a0bd4942e8f6a80f8dc8a667c8e"/></dir></dir><file name="styles.js" hash="3e62be48fe794f4a1d31cc0aa66471d5"/></dir><file name="ckeditor.plugin.mage.js" hash="3d1c6b60d63dc43880265e2c712372a3"/><file name="editor.js" hash="769a3483542674f1cb0067a60822e0c3"/><file name="report.js" hash="8a5a9ce41cdd3b86e5d7cbe2e5318d87"/></dir></dir><dir name="lib"><dir name="Html2Text"><file name="Html2Text.php" hash="5710632d174c0a196e8252b6f6652dbc"/><file name="Html2TextException.php" hash="fff9bc76e1281693997cb42defbaa173"/><file name="LICENSE.md" hash="b5d7f7156f7785ca2eb55d6cc1b4c118"/><file name="README.md" hash="2edfe5d500062bca4cf912451938837f"/><file name="composer.json" hash="bb90182bd8d808a06ae4762518746ed3"/><file name="composer.lock" hash="24624dbb0356e5b2472892a19c9e0a7e"/><file name="phpunit.xml" hash="321806966ac2442ace7e2b98a0c4c20d"/></dir><dir name="Mzax"><dir name="Bounce"><dir name="Detector"><file name="Abstract.php" hash="bc06af8c91149fd4d20c8bef86b38cfa"/><file name="Arf.php" hash="11b766b25f4067c3a8275939f6396532"/><file name="Autoreply.php" hash="f8aacd5e130524095820537d8e7c467c"/><dir name="Data"><file name="phrases.cnf" hash="604ba8af56bea9769e6e3e961316cfcc"/></dir><file name="Extended.php" hash="8b7c1b79b73463fa1b082d3a533b97d2"/><file name="Failure.php" hash="ff1b7444aab79481f524be504cfa8a31"/><file name="Rfc1892.php" hash="8d73ac830b874d302272494cb344e1de"/></dir><file name="Detector.php" hash="1abed85ead5bb96040e8252e701c5809"/><file name="Mail.php" hash="c7a04eba6a09b2dc28db645ccb9fdf8a"/><file name="Message.php" hash="fd6ddd7ee846425bf534b091b0e2152f"/><dir name="Mime"><file name="Decode.php" hash="c77ed9f1ae1fc6602c1083bb545f4529"/><file name="Part.php" hash="b78604215260b69ab492f7005029ad11"/></dir></dir><file name="Bounce.php" hash="c7ad40bdc1eb3b0713adce08c9c2c7c8"/><dir name="Chart"><file name="Table.php" hash="60542613efb4c16be1f0134f13b926e0"/></dir><dir name="Db"><file name="Select.php" hash="80f06ba7fac162e50778d7c45c3a3c6e"/></dir><dir name="GeoIp"><dir name="Adapter"><file name="Abstract.php" hash="18b976ba8cb375a09d1aaef7b4e96132"/><file name="FreeGeoIp.php" hash="0d6d2123413d9fe0acb14ba7fcfde18a"/><file name="GeoPlugin.php" hash="6f8d28a980a879e5b4ab480669a22e78"/><file name="Ipinfo.php" hash="9d6ff6a51d7cd0de2fa1656046acbaed"/></dir><dir name="Data"><file name="region_timezones.csv" hash="13b7a5ea6271a191692c1a6685a0404e"/><file name="subdivison_codes.csv" hash="c6b9628e2a5f57b514a16f5f49369ad1"/><file name="timezones.csv" hash="339f7239cd5b2389b9fa72a45200f241"/></dir><file name="Exception.php" hash="1a308e8cc02fb5c5f7a744bbaa051a79"/><file name="Region.php" hash="6ac9b30645a751af4486a2d4a42eefcf"/><file name="Request.php" hash="4e8147eb9c16c542e4df81af1697e794"/></dir><file name="GeoIp.php" hash="cb7c4e18427021561d9139ed7ad586f7"/><dir name="Mail"><dir name="Transport"><file name="File.php" hash="cbc14580a09c14a7acdf3bb6078b8c40"/><file name="Mock.php" hash="28edb99f825b66d23dff4a623c9f2506"/></dir></dir><file name="Mail.php" hash="1f68420b9741ca1317908b69b7e3f375"/><file name="Once.php" hash="9e11cf5c3aff2b786a3bbb6c91340e2e"/><file name="Presist.php" hash="02a22be260fadf5145f77176e927e538"/></dir><dir name="Symfony"><dir name="Component"><dir name="CssSelector"><file name="CHANGELOG.md" hash="29b39013d7b608953abbd2ec2a2b108e"/><file name="CssSelector.php" hash="dd1c312425f85a9d420b4b8c5497cdc5"/><dir name="Exception"><file name="ExceptionInterface.php" hash="fa1911089901af7d6db782294ec0ee88"/><file name="ExpressionErrorException.php" hash="026bd36ddee7327e087d4c30eae573e0"/><file name="InternalErrorException.php" hash="495b1a8bc78aefbe9cc9f6f7d1afec81"/><file name="ParseException.php" hash="3bfa30716d8ab605a762d3f6f6c5a71c"/><file name="SyntaxErrorException.php" hash="eafc28bafcb98f269474f8166cac2865"/></dir><file name="LICENSE" hash="56dedd4bd25ecd034ac4e1c17ebba0cc"/><dir name="Node"><file name="AbstractNode.php" hash="428a42cb6640d69c3f2751a65097cd56"/><file name="AttributeNode.php" hash="e1c51c11a8e594751ee68c8d0402fd5b"/><file name="ClassNode.php" hash="f3c68c8f592ad7c86dbd0978d6e328b6"/><file name="CombinedSelectorNode.php" hash="d8ec7635be51e56298cf4ba7280b5c43"/><file name="ElementNode.php" hash="0194453765b421ee7b588f3bc19b8207"/><file name="FunctionNode.php" hash="c6686827afc99bf717dd1a57cb365743"/><file name="HashNode.php" hash="b3365470df29fc0c2c2d38aebd4d56e8"/><file name="NegationNode.php" hash="8c076665e723e4abee7c7d661318a8ef"/><file name="NodeInterface.php" hash="d6f6c917ab9b5b571653167be83325de"/><file name="PseudoNode.php" hash="5233bd06f4742c3ab68d83745e8f4475"/><file name="SelectorNode.php" hash="a8d2504b9c9611286c32968890a61387"/><file name="Specificity.php" hash="36d2447de0d37744914e6fc9ab578e55"/></dir><dir name="Parser"><dir name="Handler"><file name="CommentHandler.php" hash="7c9a70cd1eb4e55dd00c2ead4d5af9ad"/><file name="HandlerInterface.php" hash="599be096ef9d568e1ba0dc5c6709db24"/><file name="HashHandler.php" hash="c9abb1e362502b1c29c17e2a9e8f9150"/><file name="IdentifierHandler.php" hash="f06b22f2601eaebe59c226aacbf88f9c"/><file name="NumberHandler.php" hash="0cc8f64604899b9d04cb151d05b9cbe6"/><file name="StringHandler.php" hash="abab0541bd20d5e7d35d4b91dbaffa78"/><file name="WhitespaceHandler.php" hash="12508597df2624818d9cb2ddaafe9a79"/></dir><file name="Parser.php" hash="2bf53e6d3dc94117f4c238c97bdb8ec7"/><file name="ParserInterface.php" hash="76ed5f390a2199b1ed80071c5c73aa9a"/><file name="Reader.php" hash="c063641372c02f1574e1b892c6e6627f"/><dir name="Shortcut"><file name="ClassParser.php" hash="b64eed621d8f2efaeb4bb75b8c64fbcf"/><file name="ElementParser.php" hash="1b5eb7dac8a41b516c5ab30caf859958"/><file name="EmptyStringParser.php" hash="ea30ecab27c269fdfba71dc38eb0ee9c"/><file name="HashParser.php" hash="e6f06587ea87581fce9630399223121e"/></dir><file name="Token.php" hash="f4004497a51203da9edc05a6969262ed"/><file name="TokenStream.php" hash="d34976ed25aef4f17be1f9d10b25b563"/><dir name="Tokenizer"><file name="Tokenizer.php" hash="e497fd9aece9511e76c82405a2bb554e"/><file name="TokenizerEscaping.php" hash="2d43efa6bb0bc9fdc083a56dee828bbb"/><file name="TokenizerPatterns.php" hash="df726209fae8f8165a6fa441d94fcd37"/></dir></dir><file name="README.md" hash="587d98dd3ba273664b871f6bdb5178df"/><dir name="XPath"><dir name="Extension"><file name="AbstractExtension.php" hash="65c96636f8a8c3a0f3a8300b4241547c"/><file name="AttributeMatchingExtension.php" hash="fc29930821be5bebbfb9db41c15fb9b2"/><file name="CombinationExtension.php" hash="4d6dd2a731761fc6c0176d2a120783ef"/><file name="ExtensionInterface.php" hash="953d3ea0b22c85321691637a6168bf78"/><file name="FunctionExtension.php" hash="ac3001b2b469f0224fe3b1cfd834a31a"/><file name="HtmlExtension.php" hash="c62cd9b556ee0afc0522dddc930390a6"/><file name="NodeExtension.php" hash="1bdfa61457b730dce26bfb3c29bcd6a2"/><file name="PseudoClassExtension.php" hash="dc543634c650db82f569d362d326d49e"/></dir><file name="Translator.php" hash="f3154298712670e13fbf4e8ae5cf616e"/><file name="TranslatorInterface.php" hash="5f5ac7f01ac84c47190aa3c6ceec5cac"/><file name="XPathExpr.php" hash="0c2d20536615fd27a5bf8c7757c98f9f"/></dir><file name="composer.json" hash="f501cef220ff2cb242ec442de44caf83"/><file name="phpunit.xml.dist" hash="9f400e487bed961cdad3bef4d66be91b"/></dir></dir></dir><dir name="TijsVerkoyen"><dir name="CssToInlineStyles"><file name="CssToInlineStyles.php" hash="ab80bcce9af62cf4c908770e7a583e39"/><file name="Exception.php" hash="c41f07f2187bea04d3653907ef0e886b"/><file name="LICENSE.md" hash="d5bbe692a9b717fb631a681aa3ace904"/><file name="Specificity.php" hash="10580a739c1b872f81c67b784fc35be7"/><file name="composer.json" hash="a47437496b448eb8220e0281ffa75b09"/></dir></dir><dir name="UAParser"><file name="AbstractParser.php" hash="ca2e1979f50c4b93719c4c9c034c5c66"/><file name="CHANGELOG.md" hash="a1b535d9fbfece62c9f3703fad8bc6cb"/><dir name="Command"><file name="ConvertCommand.php" hash="09b8c79df612729450eca87d8ba8e244"/><file name="FetchCommand.php" hash="3c80e891e2b1dafd7cb2688cfaba07d8"/><file name="LogfileCommand.php" hash="a993310e444c7ff1f1fd92517d880e39"/><file name="ParserCommand.php" hash="5f73cb00b1943fcbd342e2717dedc3f5"/><file name="UpdateCommand.php" hash="2caf8cb3a7c79ed2dc2c7504365767fc"/></dir><file name="DeviceParser.php" hash="483db6de6d837dbcb9c8e0b569d3f1ab"/><dir name="Exception"><file name="DomainException.php" hash="2b957f721c4203a24e09da42f4e0ffd6"/><file name="FetcherException.php" hash="2f187c54cd37fcc814152cd2ca6c1786"/><file name="FileNotFoundException.php" hash="364b62b77446d6ca96058c9f72cf7f93"/><file name="InvalidArgumentException.php" hash="b7ae5ca648a20af30700e88e3987f894"/><file name="ReaderException.php" hash="f63da14a430a0de6ceb7ff455ccd8fa6"/></dir><file name="LICENSE" hash="e1bf063eb79c08cc980356d2b3745bed"/><file name="OperatingSystemParser.php" hash="693234133cdcd1db69645d9e914ffca2"/><file name="Parser.php" hash="5e899ec4e07509ccdb8a62af542dc4d8"/><file name="README.md" hash="9b6624d78130c290cb414d7166c92bb9"/><dir name="Result"><file name="AbstractClient.php" hash="2dc599bccebd0199639e9d3388acfae0"/><file name="AbstractSoftware.php" hash="b4737539f3a44059906db2957dc27382"/><file name="AbstractVersionedSoftware.php" hash="30a2971ef5955870c3a0a3aa7c38ae23"/><file name="Client.php" hash="bf045772e396f1c68a8536580e89d267"/><file name="Device.php" hash="1f06d5a24edf8244e852a3b817eaa91a"/><file name="OperatingSystem.php" hash="10b8acc4cdbf535d7363b77a7bcf8f4e"/><file name="UserAgent.php" hash="9bf2bdb466159029d0669de8f77f0b87"/></dir><file name="UserAgentParser.php" hash="9f01754002448ea118249719c27934c6"/><dir name="Util"><file name="Converter.php" hash="de6481ab6c2da9e04965af7101c95025"/><file name="Fetcher.php" hash="c86c1c297e992802777e13fbf7e16826"/><dir name="Logfile"><file name="AbstractReader.php" hash="b72cc412a95164e71ac978470a512a2f"/><file name="ApacheCommonLogFormatReader.php" hash="f3f58c5b10268c10742d5108d12f0aac"/><file name="ReaderInterface.php" hash="33daf57831f56fc86cb9d8a4acfbb37d"/></dir></dir><file name="composer.json" hash="7a14f9c576783d9db694da31225239ee"/><file name="phpunit.xml.dist" hash="cd168009a2f37eb12b87d77ad43d713a"/><dir name="resources"><file name="ca-bundle.crt" hash="cb94f8f36f085eaf644db687b0d411f5"/><file name="regexes.php" hash="1069ff741153480b81f556d2c010407c"/></dir><file name="update-resources.sh" hash="53d68ccfa9ec45642569546796fdb884"/></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="mzax"><file name="editor.css" hash="3d501ab3e06e253045ea2aa55ed7980c"/><file name="emarketing.css" hash="17e82ec95660c9920fcd87b7bfa6bada"/><dir name="images"><file name="add-tiny.png" hash="04f642db30ac836b58d91770c42a7087"/><file name="add.png" hash="f2e51ed86b5c87693bc31eb18cffcde6"/><file name="bg-remove.png" hash="085b0ea8bf4488c53a5eaab2f28eaf4c"/><file name="block-bg.png" hash="eb5b5a1dbaa4a40b4d7d56ea36b0db8f"/><file name="corner-arrows.png" hash="98f15a0b96a79bd35f7cc9c3552f27b2"/><file name="dd-chart-tab.png" hash="bfca5a1d3deb031e2fbbc4d89cf2adf6"/><file name="delete-tiny.png" hash="58c14611b1a036c55353b9b5993a85df"/><file name="delete.png" hash="f2c735bea2def15264ab2ec87a722407"/><file name="element-add.png" hash="bdd3ce65d6777550f983f8bba949340a"/><file name="element-clone.png" hash="762e0d3593f83f589afca4e9d785cd78"/><file name="element-remove.png" hash="8c51a642226558f6bb34159da34d0123"/><file name="element-remove2.png" hash="e89ce65e9a80e1ee9e35e784cd7b9a1e"/><file name="element-repeat.png" hash="3ccfbc455a907a30a34bdd61e3f4ec49"/><file name="element-swap.png" hash="92b97e695db713a4000fdbc88628e723"/><file name="fullscreen.png" hash="0a00475876e23a623a8ee346de991dc2"/><file name="funnel-arrow.png" hash="eb56bc2bb6865ea4f123105e4d2f2de6"/><file name="icon_image.png" hash="9acff5f2211bcfdf12af6db057e7a019"/><file name="icon_source.png" hash="d9a2353334fd2786b1e7def89e6d6b63"/><file name="image.png" hash="4da12ca4c81d857c8a718556a999ba45"/><file name="mage_code.png" hash="434f9cb7723f1bc0fa92b2438e287933"/><file name="preview-tab-icons.png" hash="292b16d26d02c9a0d299b4457033e502"/><file name="preview-toggle.png" hash="9eaf699db62fa3727f5d08cc118b2f90"/><file name="save.png" hash="a26d2b01209b95edd6a352fd9f49ee40"/><file name="start.png" hash="aba370113bf888ee5655e81f938f73ee"/><file name="stop.png" hash="527ef0809d2fc1949ff3c4c6ff363ac9"/><file name="swap-down.png" hash="9c269cd00e1b0d676bec912de671d1b6"/><file name="swap-up.png" hash="788d244ba3443a826f44476ffb2f056f"/><file name="variable.png" hash="f71ee09f953cd3be23d55dd5963b32e9"/><file name="widget.png" hash="bd36b41f43b95c28ce0caf83f3b2495a"/></dir></dir></dir></dir></dir></dir></target></contents>
48
  <compatible/>
49
  <dependencies>
50
  <required>
skin/adminhtml/default/default/mzax/emarketing.css CHANGED
@@ -1 +1 @@
1
- @CHARSET "UTF-8";body.mzax-popup #anchor-content{min-height:0;padding:0}body.mzax-popup .wrapper-popup{min-width:0}body.mzax-popup.mzax-emarketing-padding #anchor-content{padding:20px}body.mzax-popup.admin-mzax-emarketing-admin-campaign-sendtestmail #anchor-content{padding:30px}.mzax-live-preview .mzax-preview-frame{width:100%;height:500px}#mzax-preview-email #preview-frame{width:100%;height:100%;border:none;display:block}#mzax-preview-email #preview-head{height:40px;background:url("../images/header_top_bg.gif") repeat-x #425E66;border-bottom:1px solid #5F767F}#mzax-preview-email #preview-head .subject{display:inline-block;color:rgba(255,255,255,0.9);padding:12px;font-size:1.2em;letter-spacing:1px}#mzax-preview-email #preview-foot{position:absolute;bottom:0;height:21px;left:0;right:0;background:#ddd;ackground:#F0F0F0;box-shadow:0 0 1px 0 rgba(0,0,0,0.3);border-top:1px solid #8E8E8E;padding:2px 10px;z-index:1000}#mzax-preview-email #preview-foot .render-time{display:inline-block;padding:0 10px}#mzax-preview-email #preview-foot .auto-refresh{float:right}#mzax-preview-email #preview-foot .toggle-switch{background:url("images/preview-toggle.png") no-repeat;display:inline-block;height:32px;width:40px;margin:5px}#mzax-preview-email #tab-container{position:absolute;border-top:1px solid #2D444F;top:41px;left:0px;right:0px;bottom:25px}#mzax-preview-email #tab-container>div{position:absolute;top:0;left:0;right:0;bottom:0}#mzax-preview-email #email_preview_tabs{position:absolute;top:4px;right:10px}#mzax-preview-email #email_preview_tabs .tab{float:right;background:#453554;margin:0 5px;background:url("images/preview-tab-icons.png") no-repeat;display:block;text-indent:-10000em;width:32px;height:32px;cursor:pointer}#mzax-preview-email #email_preview_tabs #tab_links{background-position:0px 0px}#mzax-preview-email #email_preview_tabs #tab_links:hover{background-position:0px -40px}#mzax-preview-email #email_preview_tabs #tab_links.active{background-position:0px -80px}#mzax-preview-email #email_preview_tabs #tab_html{background-position:-120px 0px}#mzax-preview-email #email_preview_tabs #tab_html:hover{background-position:-120px -40px}#mzax-preview-email #email_preview_tabs #tab_html.active{background-position:-120px -80px}#mzax-preview-email #email_preview_tabs #tab_text{background-position:-40px 0px}#mzax-preview-email #email_preview_tabs #tab_text:hover{background-position:-40px -40px}#mzax-preview-email #email_preview_tabs #tab_text.active{background-position:-40px -80px}#mzax-preview-email #email_preview_tabs #tab_code{background-position:-80px 0px}#mzax-preview-email #email_preview_tabs #tab_code:hover{background-position:-80px -40px}#mzax-preview-email #email_preview_tabs #tab_code.active{background-position:-80px -80px}#mzax-preview-email #tab_links_content{background:#fff;padding:20px}#mzax-preview-email .ace_editor,#mzax-preview-email .ace-editor{width:100%;height:100%;border:none;clear:both}.mzax-template-select{display:inline !important}.ace_editor .errorHighlight{background:rgba(255,48,0,0.29);position:absolute}.mzax-editor{position:relative;border:none}.mzax-editor .mzax-content,.mzax-editor .mzax-disable-ui{position:absolute;left:0;right:0;top:0;bottom:0}.mzax-editor .editor-container{border-width:1px;border-style:solid;border-color:#AAA #C8C8C8 #C8C8C8 #AAA;position:absolute;left:0;right:0;top:25px;bottom:0}.mzax-editor .editor-container .ace_editor{width:100%;height:100%}.mzax-editor .editor-container .mzax-content-editor textarea.text-input{width:100% !important;height:100%;border:none;font-family:monospace;min-height:20px;padding:0;margin:0}.mzax-editor .mzax-editor-frame{width:100%;height:100%;background:url("images/block-bg.png") #fff}.mzax-editor .mzax-editor-toolbar .logo{display:none}.mzax-editor .mzax-editor-toolbar .ftitle{display:none;color:rgba(255,255,255,0.9);padding:15px;font-size:1.1em;letter-spacing:1px}.mzax-editor .btn-right{float:right}.mzax-editor.no-plugin-buttons .editor-container{top:0}.mzax-editor.mzax-autosize{top:0;position:relative}.mzax-editor.fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;width:auto !important;height:auto !important;z-index:120}.mzax-editor.fullscreen .editor-container{position:absolute;top:40px;left:0;right:0;bottom:0;height:auto !important;width:auto !important;z-index:450;border:none;border-top:1px solid #2D444F;padding:0}.mzax-editor.fullscreen .mzax-editor-toolbar{position:absolute;top:0;left:0;right:0;height:39px !important;z-index:460;border:none;background:url("../images/header_top_bg.gif") repeat-x #425E66;border-bottom:1px solid #5F767F;box-shadow:0 1px 2px 1px rgba(0,0,0,0.5)}.mzax-editor.fullscreen .mzax-editor-toolbar .buttons-set{position:absolute;top:0;right:0;padding:12px}.mzax-editor.fullscreen .mzax-editor-toolbar .ftitle{display:inline-block;padding:15px}.mzax-editor.fullscreen .mzax-editor-toolbar .logo{display:inline;margin:0 10px}body.mzax-fullscreen{overflow:hidden}.mzax-template-editor .mzax-seperator{position:absolute;margin-top:-2px;top:50%;left:0;right:0;height:2px;cursor:ns-resize;z-index:100;background:url("images/block-bg.png") #E5E5E5;border-top:1px solid #D0D0D0;border-bottom:1px solid #D0D0D0}.mzax-template-editor .mzax-content-editor{bottom:50%;border:none}.mzax-template-editor .mzax-content-editor .ace_editor{width:100%;height:100%}.mzax-template-editor .mzax-content-preview{top:50%;border:none}.mzax-template-editor.mzax-layout-horz .mzax-seperator{left:50%;right:auto;height:auto;top:2px;bottom:0;width:4px;cursor:ew-resize;border:none;border-left:1px solid #D0D0D0;border-right:1px solid #D0D0D0}.mzax-template-editor.mzax-layout-horz .mzax-content-editor{bottom:0;right:50%}.mzax-template-editor.mzax-layout-horz .mzax-content-preview{top:0;left:50%}.mzax-running{background:url('../images/ajax-loader.gif') no-repeat;width:16px;height:16px;vertical-align:text-bottom;margin-right:10px;display:inline-block}button.mzax-fullscreen span{background-image:url("images/fullscreen.png");padding-left:20px}button.mzax-image span{background-image:url("images/image.png");padding-left:20px}button.mzax-quicksave span{background-image:url("images/save.png");padding-left:20px}button.mzax-widget span{background-image:url("images/widget.png");padding-left:20px}button.mzax-variable span{background-image:url("images/variable.png");padding-left:20px}button.mzax-start{height:25px;margin:0px 0 0 20px !important;padding:0px 20px;background:linear-gradient(#69A02F 0%, #427600 100%);border-color:#85BA1B #1A3C07 #1A3C07 #85BA1B}button.mzax-start span{background-image:url("images/start.png");padding-left:20px}button.mzax-start:hover{background:linear-gradient(#A8DD70 0%, #68A11F 100%)}button.mzax-stop{height:25px;margin:0px 0 0 20px !important;padding:0px 20px;border-color:#d24403 #a92000 #a92000 #d24403;background:linear-gradient(#DB2B2B 0%, #99320D 100%)}button.mzax-stop span{background-image:url("images/stop.png");padding-left:20px}button.mzax-stop:hover{background:linear-gradient(#ED6363 0%, #DA3A00 100%)}ul.mzax-variation-tabs{padding:8px 25px 0px 30px;margin:0px -27px 18px -25px;height:36px;border-bottom:1px solid #CFCFCF;background:linear-gradient(transparent 90%, rgba(0, 0, 0, 0.1) 100%) repeat-x}ul.mzax-variation-tabs .delete-variation{position:absolute;top:-5px;right:-3px;display:none}ul.mzax-variation-tabs .active .delete-variation{display:block}ul.mzax-variation-tabs li{margin:0 6px;float:left}ul.mzax-variation-tabs li a.variation-tab{display:block;position:relative;padding:5px 23px 0 23px;height:25px;color:#6F8992;text-decoration:none !important;border:1px dotted #a5a5a5;border-bottom:none;margin-top:5px;margin-bottom:-1px;background:transparent;transition:height,margin 0.1s ease-out}ul.mzax-variation-tabs li a.original{color:#5C5C5C;font-weight:bold}ul.mzax-variation-tabs li a.inactive{color:#B0BABD;font-style:italic}ul.mzax-variation-tabs li a.variation-tab:hover{border-color:#EB5E00;height:30px;margin-top:0px}ul.mzax-variation-tabs li a.active.variation-tab.active{background:#FFF;border-style:solid;border-color:#C3C3C3;box-shadow:0px -2px 2px 0px rgba(0,0,0,0.1);height:27px;margin-top:0px;border-top:2px solid #EA7614;padding-top:8px;border-bottom:none;color:#333}ul.mzax-variation-tabs li a.new-variation{border-color:#6EA845;color:#6EA845;padding:5px 10px 0}ul.mzax-variation-tabs li a.new-variation:hover{border-color:#6EA845}ul.mzax-variation-tabs li a.delete-all-variations{border-color:#C06868;color:#C56D6D;padding:5px 10px 0}ul.mzax-variation-tabs li a.delete-all-variations:hover{border-color:#C06868}ul.mzax-variation-tabs li.add-variation{margin:0 10px}ul.mzax-variation-tabs li.delete-all-variations{float:right}ul.mzax-variation-tabs a span span{background-repeat:no-repeat;width:16px;height:16px;display:block;position:absolute}ul.mzax-variation-tabs a.error span.error{background-image:url("../images/fam_bullet_error.gif");top:15px;left:-7px}ul.mzax-variation-tabs a.changed span.changed{background-image:url("../images/fam_bullet_disk.gif");top:0;left:-7px}#mzax-emarketing-report .chart-wrapper{position:relative}#mzax-emarketing-report .overlay{position:absolute;display:block;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}#mzax-emarketing-report .summary-report{display:flex;align-items:stretch;margin-bottom:10px}#mzax-emarketing-report .summary-report>.item{flex:100;text-align:center;position:relative;height:80px;white-space:nowrap}#mzax-emarketing-report .summary-report>.item.funnel{flex:200}#mzax-emarketing-report .summary-report>.item.funnel:after{display:inline-block;content:' ';background:url('./images/funnel-arrow.png') no-repeat center right;width:30px;height:100%;vertical-align:middle}#mzax-emarketing-report .summary-report>.item.total{flex:100}#mzax-emarketing-report .summary-report>.item.optout{border-left:1px dotted #888;padding-left:10px;flex:120}#mzax-emarketing-report .summary-report>.item.orders{flex:140}#mzax-emarketing-report .summary-report .chart-wrapper{display:inline-block;vertical-align:middle}#mzax-emarketing-report .summary-report .count{display:inline-block;vertical-align:middle;text-align:center;padding:0}#mzax-emarketing-report .summary-report .value{display:block;font-size:1.5em}#mzax-emarketing-report .summary-report .label{display:block;font-size:0.8em;color:#666}#mzax-emarketing-report .summary-report .percentage{width:100%;height:16px;font-size:14px;font-weight:bold;color:#444}#mzax-emarketing-report .chart-tab-container{border:1px solid #ccc;padding:0}#mzax-emarketing-report .chart-tab-container .options{background:#f5f5f5;text-align:right;padding:0 10px;font-size:0.9em;color:#444}#mzax-emarketing-report .chart-tab-container .options .cb{vertical-align:text-top}#mzax-emarketing-report .chart-tab-container .options label{color:inherit}#mzax-emarketing-report .chart-tab-container .loading{display:none;float:left;padding-left:20px;margin:3px 0;background:url('../images/ajax-loader.gif') no-repeat}#mzax-emarketing-report .chart-tab-container.loading .loading{display:block}#mzax-emarketing-report .chart-tab-container.loading .chart{opacity:0.3}#mzax-emarketing-report .chart-tab-container .breadcrumbs{float:left;font-size:1.2em}#mzax-emarketing-report .chart-tab-container .breadcrumbs li{cursor:pointer;margin-right:5px;display:inline}#mzax-emarketing-report .chart-tab-container .breadcrumbs li:before{content:'\00bb';margin-right:5px}#mzax-emarketing-report .chart-tab-container .no-data{width:50%;background:#F5F5F5;min-height:50px;text-align:center;padding:50px 25%;font-size:17px;line-height:140%;color:#BABABA;letter-spacing:1px;text-shadow:-1px -1px 1px white;font-style:italic;cursor:default}#mzax-emarketing-report .option-tabs{display:flex;align-items:flex-end;border-bottom:2px solid #F9F9F9;background:url("../images/sort_row_bg.gif") repeat-x 0 3px;margin:1px 1px 0}#mzax-emarketing-report .option-tabs .drop-arrow{position:absolute;width:25px;height:25px;top:0;bottom:0;right:0;margin:auto 0;background:url("images/dd-chart-tab.png") no-repeat}#mzax-emarketing-report .option-tabs .metric-options{position:absolute;top:25px;right:5px;z-index:200;background:#eee;text-align:left;padding:0;font-weight:normal;border:1px solid #ccc;box-shadow:0 0 6px 0 rgba(0,0,0,0.2),0 4px 0 2px rgba(0,0,0,0.05)}#mzax-emarketing-report .option-tabs .metric-options .option{padding:3px 15px;border:3px soild white;border-bottom:1px dotted #aaa;margin:0px}#mzax-emarketing-report .option-tabs .metric-options .option:hover{background:#fff}#mzax-emarketing-report .option-tabs .metric-options .option:last-child{border:none}#mzax-emarketing-report .option-tabs .tab{position:relative;text-align:center;padding:4px;background:url("../images/sort_row_bg.gif") repeat-x 0px 50%;border-style:solid;border-color:#EEE #D1CFCF #F9F9F9 #F9F9F9;border-width:2px 0 1px;cursor:pointer;font-weight:bold;font-size:0.9em;margin:0;flex:1;color:#2D444F}#mzax-emarketing-report .option-tabs .tab .title{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}#mzax-emarketing-report .option-tabs .tab.dropdown{padding-right:40px}#mzax-emarketing-report .option-tabs .tab:hover{background-position:0 100%}#mzax-emarketing-report .option-tabs .tab.active{box-shadow:inset 0 0 1px 0 rgba(0,0,0,0.5),inset 0 5px 10px 0 rgba(0,0,0,0.1)}#mzax-emarketing-report .option-tabs .tab.active.sendings{background:rgba(137,157,168,0.2);color:black}#mzax-emarketing-report .option-tabs .tab.active.views{background:rgba(21,159,196,0.2);color:black}#mzax-emarketing-report .option-tabs .tab.active.clicks{background:rgba(215,208,32,0.2);color:black}#mzax-emarketing-report .option-tabs .tab.active.trackers{background:rgba(169,194,0,0.2);color:black}#mzax-emarketing-report .option-tabs .tab.active.optouts{background:rgba(191,58,58,0.2);color:black}#mzax-emarketing-report .option-tabs .tab.active.bounces{background:rgba(113,43,43,0.2);color:black}#mzax-emarketing-report .option-tabs .tab.sendings{border-top-color:#899DA8}#mzax-emarketing-report .option-tabs .tab.views{border-top-color:#159FC4}#mzax-emarketing-report .option-tabs .tab.clicks{border-top-color:#D7D020}#mzax-emarketing-report .option-tabs .tab.trackers{border-top-color:#A9C200}#mzax-emarketing-report .option-tabs .tab.optouts{border-top-color:#BF3A3A}#mzax-emarketing-report .option-tabs .tab.bounces{border-top-color:#712B2B}#mzax-emarketing-report .option-tabs.sendings{border-bottom-color:rgba(137,157,168,0.3)}#mzax-emarketing-report .option-tabs.views{border-bottom-color:rgba(21,159,196,0.3)}#mzax-emarketing-report .option-tabs.clicks{border-bottom-color:rgba(215,208,32,0.3)}#mzax-emarketing-report .option-tabs.trackers{border-bottom-color:rgba(169,194,0,0.3)}#mzax-emarketing-report .option-tabs.optouts{border-bottom-color:rgba(191,58,58,0.3)}#mzax-emarketing-report .option-tabs.bounces{border-bottom-color:rgba(113,43,43,0.3)}#mzax-emarketing-report hr{margin:40px -15px 15px;border:none;border-top:5px solid #E8E8E8}#mzax-emarketing-report .row{display:flex;flex-wrap:wrap}#mzax-emarketing-report .column{flex:1;overflow:hidden;min-width:300px}#mzax-emarketing-report .column.small{min-width:40%}#mzax-emarketing-report .column.strech{width:100%}#mzax-emarketing-report .segments .column{padding:5px}#mzax-emarketing-report .mzax-geoip-credits{text-align:right;font-size:0.8em;color:#999;line-height:140%}#mzax-emarketing-report .mzax-geoip-credits a{color:inherit}.mzax-editor{position:relative}.mzax-editor .mzax-loader{z-index:50;background:url("../images/ajax-loader-tr.gif") no-repeat center center #fff4e9;color:#d85909;position:absolute;top:0;bottom:0;left:0;right:0;cursor:wait}.mzax-editor .mzax-loader .label{display:block;height:80px;width:100px;position:absolute;margin:auto;top:0;bottom:0;left:0;right:0;text-align:center}.mzax-editor-frame{width:100%;height:100%;border:none;display:block}.mzax-editor-input{background:#fff;position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden}.mzax-editor-input .controls{border:none;position:absolute;resize:none;height:25px;left:0;right:0;top:0;padding:5px;background:#EBEBEB url("../images/sort_row_bg.gif") repeat-x;z-index:10;box-shadow:0px 1px 2px 0 rgba(0,0,0,0.5)}.mzax-editor-input .controls button{margin-right:10px}.mzax-editor-input .input-wrapper{position:absolute;resize:none;top:35px;bottom:0;left:0;right:0}.mzax-editor-input .text-input{border:none;position:absolute;resize:none;width:100%;height:100%;padding:0;margin:0;font-family:monospace;font-size:12px}.mzax-editor-input .ace_editor{height:100%;width:100%}.mzax-mail-storage-test{padding:5px}.mzax-mail-storage-test .inbox-status{border:1px solid #ddd;background:#fff;padding:5px;text-align:center;font-weight:bold}.mzax-mail-storage-test .inbox-status.inbox-success{border-color:#608100;background:#F6FCE8;color:#608100}.mzax-mail-storage-test .inbox-status.inbox-failure{border-color:#CD0000;background:#FCEBE8;color:#CD0000}.mzax-filter-date-range{padding:5px 10px;background:#f0f0f0;border-radius:2px;margin:10px 0;box-shadow:inset 0px 1px 3px 0px #bbb}.mzax-filter-date-range div{margin:5px 0}.mzax-credits{font-size:0.9em;color:#666;cursor:context-menu;letter-spacing:0.3px;border-bottom:1px dotted #919191;padding-bottom:5px}.mzax-credits a{color:#666}.mzax-fieldset-continue{padding:10px 0}.mzax-filter-tree .form-buttons{margin:0;height:0}.mzax-offer{border-top:1px solid #D6D6D6;background:#F0F0F0;color:#A6A6A6;padding:10px;margin-top:40px;margin:50px -15px -10px;text-align:center;font-size:0.9em;cursor:default;position:relative;overflow:hidden}.mzax-offer:before{position:absolute;content:"";left:45%;right:45%;top:-30px;height:30px;border-radius:0 0 40px 40px;box-shadow:0 0 2px 0 rgba(0,0,0,0.2);transform:scaleX(8)}.mzax-offer a{color:inherit}.mzax-left-sponser{margin-top:50px;padding-right:10px;text-align:right;font-size:0.9em;color:#B2C2C2;letter-spacing:0.5px;line-height:200%;cursor:default}.mzax-left-sponser .hl{font-weight:bold}.mzax-left-sponser a{color:inherit}.maax-index-check{color:#B2700C;border:1px dotted #B2700C;padding:3px 10px;background:#FAF3D8;margin-left:15px;font-size:0.9em;font-style:italic;cursor:help;display:inline-block}.mzax-checkboxes ul.checkboxes{-webkit-column-count:4;-moz-column-count:4;column-count:4;background:white;border:1px dotted #C0C0C0;padding:5px}.mzax-emergency-stop{padding:10px;text-align:center;margin:10px;border:1px solid #CFCFCF;color:#6F6F6F;font-size:0.9em;cursor:pointer}.mzax-emergency-stop:hover{border:1px solid #E5B7B7;background:url("images/bg-remove.png") rgba(137,15,15,0.02)}.mzax-info-element{position:relative;color:#946314;border:1px dotted #E0C293;padding:10px;background:#FFFBE6;margin-bottom:20px;margin:0 0 10px;border-radius:2px;font-size:0.95em;font-style:italic;box-shadow:0px 1px 2px 0px rgba(0,0,0,0.1);cursor:default}.mzax-info-element:before{content:'';width:16px;height:16px;position:absolute;top:-4px;left:-4px;background:url('../images/note_msg_icon.gif') no-repeat}#page\:left .mzax-info-element{margin:10px;text-align:center}.mzax-grid-stats{position:relative;height:14px;width:100%;background:rgba(137,157,168,0.2);margin:2px 0;border-radius:2px;overflow:hidden}.mzax-grid-stats .mzax-grid-stat{position:absolute;height:100%;top:0;left:0;min-width:1px}.mzax-grid-stats .mzax-grid-stat.interactions{background:#D7D020;background:linear-gradient(to bottom, #D7D020 0%, #aba519 100%);z-index:1}.mzax-grid-stats .mzax-grid-stat.conversions{background:#A9C200;background:linear-gradient(to bottom, #A9C200 0%, #7d8f00 100%);z-index:2}.mzax-grid-stats .mzax-grid-stat.fails{background:#BF3A3A;background:linear-gradient(to bottom, #BF3A3A 0%, #982e2e 100%);z-index:3;left:auto;right:0}.filter-test-sql{position:relative;padding:10px;border:1px #CBD3D4 solid;background:#F6F6F6}.filter-test-sql .filter-btn-sql-hide{position:absolute;right:0;top:0}.filter-test-sql hr.mzax-sql-seperator{margin:30px 0;border:none;border-top:1px dotted #777}.filter-test-sql h6{font-size:1.2em;float:right;color:#B5B5B5;letter-spacing:1px;margin:-10px 20px;text-transform:uppercase}
1
+ @CHARSET "UTF-8";body.mzax-popup #anchor-content{min-height:0;padding:0}body.mzax-popup .wrapper-popup{min-width:0}body.mzax-popup.mzax-emarketing-padding #anchor-content{padding:20px}body.mzax-popup.admin-mzax-emarketing-admin-campaign-sendtestmail #anchor-content{padding:30px}.mzax-live-preview .mzax-preview-frame{width:100%;height:500px}#mzax-preview-email #preview-frame{width:100%;height:100%;border:none;display:block}#mzax-preview-email #preview-head{height:40px;background:url("../images/header_top_bg.gif") repeat-x #425E66;border-bottom:1px solid #5F767F}#mzax-preview-email #preview-head .subject{display:inline-block;color:rgba(255,255,255,0.9);padding:12px;font-size:1.2em;letter-spacing:1px}#mzax-preview-email #preview-foot{position:absolute;bottom:0;height:21px;left:0;right:0;background:#EEE;box-shadow:0 0 1px 0 rgba(0,0,0,0.3);border-top:1px solid #BBB;padding:2px 10px;z-index:1000;white-space:nowrap;overflow:hidden}#mzax-preview-email #preview-foot .render-time{display:inline-block;padding:0 10px}#mzax-preview-email #preview-foot .auto-refresh{float:right}#mzax-preview-email #preview-foot .toggle-switch{background:url("images/preview-toggle.png") no-repeat;display:inline-block;height:32px;width:40px;margin:5px}#mzax-preview-email #tab-container{position:absolute;border-top:1px solid #2D444F;top:41px;left:0px;right:0px;bottom:25px}#mzax-preview-email #tab-container>div{position:absolute;top:0;left:0;right:0;bottom:0}#mzax-preview-email #email_preview_tabs{position:absolute;top:4px;right:10px}#mzax-preview-email #email_preview_tabs .tab{float:right;background:#453554;margin:0 5px;background:url("images/preview-tab-icons.png") no-repeat;display:block;text-indent:-10000em;width:32px;height:32px;cursor:pointer}#mzax-preview-email #email_preview_tabs #tab_links{background-position:0px 0px}#mzax-preview-email #email_preview_tabs #tab_links:hover{background-position:0px -40px}#mzax-preview-email #email_preview_tabs #tab_links.active{background-position:0px -80px}#mzax-preview-email #email_preview_tabs #tab_html{background-position:-120px 0px}#mzax-preview-email #email_preview_tabs #tab_html:hover{background-position:-120px -40px}#mzax-preview-email #email_preview_tabs #tab_html.active{background-position:-120px -80px}#mzax-preview-email #email_preview_tabs #tab_text{background-position:-40px 0px}#mzax-preview-email #email_preview_tabs #tab_text:hover{background-position:-40px -40px}#mzax-preview-email #email_preview_tabs #tab_text.active{background-position:-40px -80px}#mzax-preview-email #email_preview_tabs #tab_code{background-position:-80px 0px}#mzax-preview-email #email_preview_tabs #tab_code:hover{background-position:-80px -40px}#mzax-preview-email #email_preview_tabs #tab_code.active{background-position:-80px -80px}#mzax-preview-email #tab_links_content{background:#fff;padding:20px;overflow:scroll}#mzax-preview-email #tab_links_content td.anchor img{max-width:200px;max-height:80px}#mzax-preview-email .ace_editor,#mzax-preview-email .ace-editor{width:100%;height:100%;border:none;clear:both}.mzax-template-select{display:inline !important}.ace_editor .errorHighlight{background:rgba(255,48,0,0.29);position:absolute}.mzax-editor{position:relative;border:none}.mzax-editor .mzax-content,.mzax-editor .mzax-disable-ui{position:absolute;left:0;right:0;top:0;bottom:0}.mzax-editor .editor-container{border-width:1px;border-style:solid;border-color:#AAA #C8C8C8 #C8C8C8 #AAA;position:absolute;left:0;right:0;top:25px;bottom:0}.mzax-editor .editor-container .ace_editor{width:100%;height:100%}.mzax-editor .editor-container .mzax-content-editor textarea.text-input{width:100% !important;height:100%;border:none;font-family:monospace;min-height:20px;padding:0;margin:0}.mzax-editor .mzax-editor-frame{width:100%;height:100%;background:url("images/block-bg.png") #fff}.mzax-editor .mzax-editor-toolbar .logo{display:none}.mzax-editor .mzax-editor-toolbar .ftitle{display:none;color:rgba(255,255,255,0.9);padding:15px;font-size:1.1em;letter-spacing:1px}.mzax-editor .btn-right{float:right}.mzax-editor.no-plugin-buttons .editor-container{top:0}.mzax-editor.mzax-autosize{top:0;position:relative}.mzax-editor.fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;width:auto !important;height:auto !important;z-index:120}.mzax-editor.fullscreen .editor-container{position:absolute;top:40px;left:0;right:0;bottom:0;height:auto !important;width:auto !important;z-index:450;border:none;border-top:1px solid #2D444F;padding:0}.mzax-editor.fullscreen .mzax-editor-toolbar{position:absolute;top:0;left:0;right:0;height:39px !important;z-index:460;border:none;background:url("../images/header_top_bg.gif") repeat-x #425E66;border-bottom:1px solid #5F767F;box-shadow:0 1px 2px 1px rgba(0,0,0,0.5)}.mzax-editor.fullscreen .mzax-editor-toolbar .buttons-set{position:absolute;top:0;right:0;padding:12px}.mzax-editor.fullscreen .mzax-editor-toolbar .ftitle{display:inline-block;padding:15px}.mzax-editor.fullscreen .mzax-editor-toolbar .logo{display:inline;margin:0 10px}body.mzax-fullscreen{overflow:hidden}.mzax-template-editor .mzax-seperator{position:absolute;margin-top:-2px;top:50%;left:0;right:0;height:2px;cursor:ns-resize;z-index:100;background:url("images/block-bg.png") #E5E5E5;border-top:1px solid #D0D0D0;border-bottom:1px solid #D0D0D0}.mzax-template-editor .mzax-content-editor{bottom:50%;border:none}.mzax-template-editor .mzax-content-editor .ace_editor{width:100%;height:100%}.mzax-template-editor .mzax-content-preview{top:50%;border:none}.mzax-template-editor.mzax-layout-horz .mzax-seperator{left:50%;right:auto;height:auto;top:2px;bottom:0;width:4px;cursor:ew-resize;border:none;border-left:1px solid #D0D0D0;border-right:1px solid #D0D0D0}.mzax-template-editor.mzax-layout-horz .mzax-content-editor{bottom:0;right:50%}.mzax-template-editor.mzax-layout-horz .mzax-content-preview{top:0;left:50%}.mzax-running{background:url('../images/ajax-loader.gif') no-repeat;width:16px;height:16px;vertical-align:text-bottom;margin-right:10px;display:inline-block}button.mzax-fullscreen span{background-image:url("images/fullscreen.png");padding-left:20px}button.mzax-image span{background-image:url("images/image.png");padding-left:20px}button.mzax-quicksave span{background-image:url("images/save.png");padding-left:20px}button.mzax-widget span{background-image:url("images/widget.png");padding-left:20px}button.mzax-variable span{background-image:url("images/variable.png");padding-left:20px}button.mzax-start{height:25px;margin:0px 0 0 20px !important;padding:0px 20px;background:linear-gradient(#69A02F 0%, #427600 100%);border-color:#85BA1B #1A3C07 #1A3C07 #85BA1B}button.mzax-start span{background-image:url("images/start.png");padding-left:20px}button.mzax-start:hover{background:linear-gradient(#A8DD70 0%, #68A11F 100%)}button.mzax-stop{height:25px;margin:0px 0 0 20px !important;padding:0px 20px;border-color:#d24403 #a92000 #a92000 #d24403;background:linear-gradient(#DB2B2B 0%, #99320D 100%)}button.mzax-stop span{background-image:url("images/stop.png");padding-left:20px}button.mzax-stop:hover{background:linear-gradient(#ED6363 0%, #DA3A00 100%)}ul.mzax-variation-tabs{padding:8px 25px 0px 30px;margin:0px -27px 18px -25px;height:36px;border-bottom:1px solid #CFCFCF;background:linear-gradient(transparent 90%, rgba(0, 0, 0, 0.1) 100%) repeat-x}ul.mzax-variation-tabs .delete-variation{position:absolute;top:-5px;right:-3px;display:none}ul.mzax-variation-tabs .active .delete-variation{display:block}ul.mzax-variation-tabs li{margin:0 6px;float:left}ul.mzax-variation-tabs li a.variation-tab{display:block;position:relative;padding:5px 23px 0 23px;height:25px;color:#6F8992;text-decoration:none !important;border:1px dotted #a5a5a5;border-bottom:none;margin-top:5px;margin-bottom:-1px;background:transparent;transition:height,margin 0.1s ease-out}ul.mzax-variation-tabs li a.original{color:#5C5C5C;font-weight:bold}ul.mzax-variation-tabs li a.inactive{color:#B0BABD;font-style:italic}ul.mzax-variation-tabs li a.variation-tab:hover{border-color:#EB5E00;height:30px;margin-top:0px}ul.mzax-variation-tabs li a.active.variation-tab.active{background:#FFF;border-style:solid;border-color:#C3C3C3;box-shadow:0px -2px 2px 0px rgba(0,0,0,0.1);height:27px;margin-top:0px;border-top:2px solid #EA7614;padding-top:8px;border-bottom:none;color:#333}ul.mzax-variation-tabs li a.new-variation{border-color:#6EA845;color:#6EA845;padding:5px 10px 0}ul.mzax-variation-tabs li a.new-variation:hover{border-color:#6EA845}ul.mzax-variation-tabs li a.delete-all-variations{border-color:#C06868;color:#C56D6D;padding:5px 10px 0}ul.mzax-variation-tabs li a.delete-all-variations:hover{border-color:#C06868}ul.mzax-variation-tabs li.add-variation{margin:0 10px}ul.mzax-variation-tabs li.delete-all-variations{float:right}ul.mzax-variation-tabs a span span{background-repeat:no-repeat;width:16px;height:16px;display:block;position:absolute}ul.mzax-variation-tabs a.error span.error{background-image:url("../images/fam_bullet_error.gif");top:15px;left:-7px}ul.mzax-variation-tabs a.changed span.changed{background-image:url("../images/fam_bullet_disk.gif");top:0;left:-7px}#mzax-emarketing-report .chart-wrapper{position:relative}#mzax-emarketing-report .overlay{position:absolute;display:block;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}#mzax-emarketing-report .summary-report{display:flex;align-items:stretch;margin-bottom:10px}#mzax-emarketing-report .summary-report>.item{flex:100;text-align:center;position:relative;height:80px;white-space:nowrap}#mzax-emarketing-report .summary-report>.item.funnel{flex:200}#mzax-emarketing-report .summary-report>.item.funnel:after{display:inline-block;content:' ';background:url('./images/funnel-arrow.png') no-repeat center right;width:30px;height:100%;vertical-align:middle}#mzax-emarketing-report .summary-report>.item.total{flex:100}#mzax-emarketing-report .summary-report>.item.optout{border-left:1px dotted #888;padding-left:10px;flex:120}#mzax-emarketing-report .summary-report>.item.orders{flex:140}#mzax-emarketing-report .summary-report .chart-wrapper{display:inline-block;vertical-align:middle}#mzax-emarketing-report .summary-report .count{display:inline-block;vertical-align:middle;text-align:center;padding:0}#mzax-emarketing-report .summary-report .value{display:block;font-size:1.5em}#mzax-emarketing-report .summary-report .label{display:block;font-size:0.8em;color:#666}#mzax-emarketing-report .summary-report .percentage{width:100%;height:16px;font-size:14px;font-weight:bold;color:#444}#mzax-emarketing-report .chart-tab-container{border:1px solid #ccc;padding:0}#mzax-emarketing-report .chart-tab-container .options{background:#f5f5f5;text-align:right;padding:0 10px;font-size:0.9em;color:#444}#mzax-emarketing-report .chart-tab-container .options .cb{vertical-align:text-top}#mzax-emarketing-report .chart-tab-container .options label{color:inherit}#mzax-emarketing-report .chart-tab-container .loading{display:none;float:left;padding-left:20px;margin:3px 0;background:url('../images/ajax-loader.gif') no-repeat}#mzax-emarketing-report .chart-tab-container.loading .loading{display:block}#mzax-emarketing-report .chart-tab-container.loading .chart{opacity:0.3}#mzax-emarketing-report .chart-tab-container .breadcrumbs{float:left;font-size:1.2em}#mzax-emarketing-report .chart-tab-container .breadcrumbs li{cursor:pointer;margin-right:5px;display:inline}#mzax-emarketing-report .chart-tab-container .breadcrumbs li:before{content:'\00bb';margin-right:5px}#mzax-emarketing-report .chart-tab-container .no-data{width:50%;background:#F5F5F5;min-height:50px;text-align:center;padding:50px 25%;font-size:17px;line-height:140%;color:#BABABA;letter-spacing:1px;text-shadow:-1px -1px 1px white;font-style:italic;cursor:default}#mzax-emarketing-report .option-tabs{display:flex;align-items:flex-end;border-bottom:2px solid #F9F9F9;background:url("../images/sort_row_bg.gif") repeat-x 0 3px;margin:1px 1px 0}#mzax-emarketing-report .option-tabs .drop-arrow{position:absolute;width:25px;height:25px;top:0;bottom:0;right:0;margin:auto 0;background:url("images/dd-chart-tab.png") no-repeat}#mzax-emarketing-report .option-tabs .metric-options{position:absolute;top:25px;right:5px;z-index:200;background:#eee;text-align:left;padding:0;font-weight:normal;border:1px solid #ccc;box-shadow:0 0 6px 0 rgba(0,0,0,0.2),0 4px 0 2px rgba(0,0,0,0.05)}#mzax-emarketing-report .option-tabs .metric-options .option{padding:3px 15px;border:3px soild white;border-bottom:1px dotted #aaa;margin:0px}#mzax-emarketing-report .option-tabs .metric-options .option:hover{background:#fff}#mzax-emarketing-report .option-tabs .metric-options .option:last-child{border:none}#mzax-emarketing-report .option-tabs .tab{position:relative;text-align:center;padding:4px;background:url("../images/sort_row_bg.gif") repeat-x 0px 50%;border-style:solid;border-color:#EEE #D1CFCF #F9F9F9 #F9F9F9;border-width:2px 0 1px;cursor:pointer;font-weight:bold;font-size:0.9em;margin:0;flex:1;color:#2D444F}#mzax-emarketing-report .option-tabs .tab .title{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}#mzax-emarketing-report .option-tabs .tab.dropdown{padding-right:40px}#mzax-emarketing-report .option-tabs .tab:hover{background-position:0 100%}#mzax-emarketing-report .option-tabs .tab.active{box-shadow:inset 0 0 1px 0 rgba(0,0,0,0.5),inset 0 5px 10px 0 rgba(0,0,0,0.1)}#mzax-emarketing-report .option-tabs .tab.active.sendings{background:rgba(137,157,168,0.2);color:black}#mzax-emarketing-report .option-tabs .tab.active.views{background:rgba(21,159,196,0.2);color:black}#mzax-emarketing-report .option-tabs .tab.active.clicks{background:rgba(215,208,32,0.2);color:black}#mzax-emarketing-report .option-tabs .tab.active.trackers{background:rgba(169,194,0,0.2);color:black}#mzax-emarketing-report .option-tabs .tab.active.optouts{background:rgba(191,58,58,0.2);color:black}#mzax-emarketing-report .option-tabs .tab.active.bounces{background:rgba(113,43,43,0.2);color:black}#mzax-emarketing-report .option-tabs .tab.sendings{border-top-color:#899DA8}#mzax-emarketing-report .option-tabs .tab.views{border-top-color:#159FC4}#mzax-emarketing-report .option-tabs .tab.clicks{border-top-color:#D7D020}#mzax-emarketing-report .option-tabs .tab.trackers{border-top-color:#A9C200}#mzax-emarketing-report .option-tabs .tab.optouts{border-top-color:#BF3A3A}#mzax-emarketing-report .option-tabs .tab.bounces{border-top-color:#712B2B}#mzax-emarketing-report .option-tabs.sendings{border-bottom-color:rgba(137,157,168,0.3)}#mzax-emarketing-report .option-tabs.views{border-bottom-color:rgba(21,159,196,0.3)}#mzax-emarketing-report .option-tabs.clicks{border-bottom-color:rgba(215,208,32,0.3)}#mzax-emarketing-report .option-tabs.trackers{border-bottom-color:rgba(169,194,0,0.3)}#mzax-emarketing-report .option-tabs.optouts{border-bottom-color:rgba(191,58,58,0.3)}#mzax-emarketing-report .option-tabs.bounces{border-bottom-color:rgba(113,43,43,0.3)}#mzax-emarketing-report hr{margin:40px -15px 15px;border:none;border-top:5px solid #E8E8E8}#mzax-emarketing-report .row{display:flex;flex-wrap:wrap}#mzax-emarketing-report .column{flex:1;overflow:hidden;min-width:300px}#mzax-emarketing-report .column.small{min-width:40%}#mzax-emarketing-report .column.strech{width:100%}#mzax-emarketing-report .segments .column{padding:5px}#mzax-emarketing-report .mzax-geoip-credits{text-align:right;font-size:0.8em;color:#999;line-height:140%}#mzax-emarketing-report .mzax-geoip-credits a{color:inherit}.mzax-editor{position:relative}.mzax-editor .mzax-loader{z-index:50;background:url("../images/ajax-loader-tr.gif") no-repeat center center #fff4e9;color:#d85909;position:absolute;top:0;bottom:0;left:0;right:0;cursor:wait}.mzax-editor .mzax-loader .label{display:block;height:80px;width:100px;position:absolute;margin:auto;top:0;bottom:0;left:0;right:0;text-align:center}.mzax-editor-frame{width:100%;height:100%;border:none;display:block}.mzax-editor-input{background:#fff;position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden}.mzax-editor-input .controls{border:none;position:absolute;resize:none;height:25px;left:0;right:0;top:0;padding:5px;background:#EBEBEB url("../images/sort_row_bg.gif") repeat-x;z-index:10;box-shadow:0px 1px 2px 0 rgba(0,0,0,0.5)}.mzax-editor-input .controls button{margin-right:10px}.mzax-editor-input .input-wrapper{position:absolute;resize:none;top:35px;bottom:0;left:0;right:0}.mzax-editor-input .text-input{border:none;position:absolute;resize:none;width:100%;height:100%;padding:0;margin:0;font-family:monospace;font-size:12px}.mzax-editor-input .ace_editor{height:100%;width:100%}.mzax-mail-storage-test{padding:5px}.mzax-mail-storage-test .inbox-status{border:1px solid #ddd;background:#fff;padding:5px;text-align:center;font-weight:bold}.mzax-mail-storage-test .inbox-status.inbox-success{border-color:#608100;background:#F6FCE8;color:#608100}.mzax-mail-storage-test .inbox-status.inbox-failure{border-color:#CD0000;background:#FCEBE8;color:#CD0000}.mzax-filter-date-range{padding:5px 10px;background:#f0f0f0;border-radius:2px;margin:10px 0;box-shadow:inset 0px 1px 3px 0px #bbb}.mzax-filter-date-range div{margin:5px 0}.mzax-credits{font-size:0.9em;color:#666;cursor:context-menu;letter-spacing:0.3px;border-bottom:1px dotted #919191;padding-bottom:5px}.mzax-credits a{color:#666}.mzax-fieldset-continue{padding:10px 0}.mzax-filter-tree .form-buttons{margin:0;height:0}.mzax-offer{border-top:1px solid #D6D6D6;background:#F0F0F0;color:#A6A6A6;padding:10px;margin-top:40px;margin:50px -15px -10px;text-align:center;font-size:0.9em;cursor:default;position:relative;overflow:hidden}.mzax-offer:before{position:absolute;content:"";left:45%;right:45%;top:-30px;height:30px;border-radius:0 0 40px 40px;box-shadow:0 0 2px 0 rgba(0,0,0,0.2);transform:scaleX(8)}.mzax-offer a{color:inherit}.mzax-left-sponser{margin-top:50px;padding-right:10px;text-align:right;font-size:0.9em;color:#B2C2C2;letter-spacing:0.5px;line-height:200%;cursor:default}.mzax-left-sponser .hl{font-weight:bold}.mzax-left-sponser a{color:inherit}.maax-index-check{color:#B2700C;border:1px dotted #B2700C;padding:3px 10px;background:#FAF3D8;margin-left:15px;font-size:0.9em;font-style:italic;cursor:help;display:inline-block}.mzax-checkboxes ul.checkboxes{-webkit-column-count:4;-moz-column-count:4;column-count:4;background:white;border:1px dotted #C0C0C0;padding:5px}.mzax-warn-element{padding:10px;margin:10px 0;color:#444;font-size:1em;cursor:pointer;border:1px solid #E5B7B7;background:url("images/bg-remove.png") rgba(137,15,15,0.02)}.mzax-info-element{position:relative;color:#946314;border:1px dotted #E0C293;padding:10px;background:#FFFBE6;margin-bottom:20px;margin:0 0 10px;border-radius:2px;font-size:0.95em;font-style:italic;box-shadow:0px 1px 2px 0px rgba(0,0,0,0.1);cursor:default}.mzax-info-element:before{content:'';width:16px;height:16px;position:absolute;top:-4px;left:-4px;background:url('../images/note_msg_icon.gif') no-repeat}#page\:left .mzax-info-element{margin:10px;text-align:center}.mzax-grid-stats{position:relative;height:14px;width:100%;background:rgba(137,157,168,0.2);margin:2px 0;border-radius:2px;overflow:hidden}.mzax-grid-stats .mzax-grid-stat{position:absolute;height:100%;top:0;left:0;min-width:1px}.mzax-grid-stats .mzax-grid-stat.interactions{background:#D7D020;background:linear-gradient(to bottom, #D7D020 0%, #aba519 100%);z-index:1}.mzax-grid-stats .mzax-grid-stat.conversions{background:#A9C200;background:linear-gradient(to bottom, #A9C200 0%, #7d8f00 100%);z-index:2}.mzax-grid-stats .mzax-grid-stat.fails{background:#BF3A3A;background:linear-gradient(to bottom, #BF3A3A 0%, #982e2e 100%);z-index:3;left:auto;right:0}.mzax-campaign-presets .preset{border:1px solid #ddd;background:#F0F0F0;margin:0 10px 10px 0;padding:10px;min-width:250px;max-width:50%;display:inline-block;vertical-align:top}.mzax-campaign-presets .preset .preset-title{display:block;font-size:1.2em;font-weight:bold;margin-bottom:5px}.mzax-campaign-presets .preset .preset-title .version{color:#B60000;font-size:10px}.mzax-campaign-presets .preset .preset-author{font-size:0.8em;color:#999}.mzax-campaign-presets .preset button.save{display:block}.filter-test-sql{position:relative;padding:10px;border:1px #CBD3D4 solid;background:#F6F6F6}.filter-test-sql .filter-btn-sql-hide{position:absolute;right:0;top:0}.filter-test-sql hr.mzax-sql-seperator{margin:30px 0;border:none;border-top:1px dotted #777}.filter-test-sql h6{font-size:1.2em;float:right;color:#B5B5B5;letter-spacing:1px;margin:-10px 20px;text-transform:uppercase}