Licentia_Fidelitas - Version 2.5.0.0

Version Notes

Email marketing

Download this release

Release Info

Developer bento
Extension Licentia_Fidelitas
Version 2.5.0.0
Comparing to
See all releases


Code changes from version 2.3.0.2 to 2.5.0.0

app/code/community/Licentia/Fidelitas/Block/Products.php ADDED
@@ -0,0 +1,36 @@
1
+ <?php
2
+
3
+ /**
4
+ * Licentia Fidelitas - Advanced Email and SMS Marketing Automation for E-Goi
5
+ *
6
+ * NOTICE OF LICENSE
7
+ * This source file is subject to the Creative Commons Attribution-NonCommercial 4.0 International
8
+ * It is available through the world-wide-web at this URL:
9
+ * http://creativecommons.org/licenses/by-nc/4.0/
10
+ *
11
+ * @title Advanced Email and SMS Marketing Automation
12
+ * @category Marketing
13
+ * @package Licentia
14
+ * @author Bento Vilas Boas <bento@licentia.pt>
15
+ * @copyright Copyright (c) 2012 Licentia - http://licentia.pt
16
+ * @license Creative Commons Attribution-NonCommercial 4.0 International
17
+ */
18
+ class Licentia_Fidelitas_Block_Products extends Mage_Catalog_Block_Product_Abstract implements Mage_Widget_Block_Interface
19
+ {
20
+
21
+ protected function _toHtml()
22
+ {
23
+
24
+ $params = $this->getData('params');
25
+
26
+ $this->setTemplate('fidelitas/' . $params['template'] . '.phtml');
27
+
28
+ $model = Mage::getModel('fidelitas/products')->getWidget($params);
29
+
30
+ $this->setData('product_collection', $model);
31
+ $this->setData('title', $params['title']);
32
+
33
+ return parent::_toHtml();
34
+ }
35
+
36
+ }
app/code/community/Licentia/Fidelitas/Model/Lists.php CHANGED
@@ -93,7 +93,7 @@ class Licentia_Fidelitas_Model_Lists extends Mage_Core_Model_Abstract
93
}
94
95
$store = Mage::app()->getStore();
96
- $url = $store->getBaseUrl() . 'fidelitas/callback/';
97
98
$callback = array();
99
$callback['listID'] = $list->hasListnum() ? $list->getData('listnum') : $list->getData('listID');
93
}
94
95
$store = Mage::app()->getStore();
96
+ $url = $store->getBaseUrl() . 'egoi/callback/';
97
98
$callback = array();
99
$callback['listID'] = $list->hasListnum() ? $list->getData('listnum') : $list->getData('listID');
app/code/community/Licentia/Fidelitas/Model/Products.php ADDED
@@ -0,0 +1,532 @@
1
+ <?php
2
+
3
+ /**
4
+ * Licentia Fidelitas - Advanced Email and SMS Marketing Automation for E-Goi
5
+ *
6
+ * NOTICE OF LICENSE
7
+ * This source file is subject to the Creative Commons Attribution-NonCommercial 4.0 International
8
+ * It is available through the world-wide-web at this URL:
9
+ * http://creativecommons.org/licenses/by-nc/4.0/
10
+ *
11
+ * @title Advanced Email and SMS Marketing Automation
12
+ * @category Marketing
13
+ * @package Licentia
14
+ * @author Bento Vilas Boas <bento@licentia.pt>
15
+ * @copyright Copyright (c) 2012 Licentia - http://licentia.pt
16
+ * @license Creative Commons Attribution-NonCommercial 4.0 International
17
+ */
18
+ class Licentia_Fidelitas_Model_Products extends Mage_Core_Model_Abstract
19
+ {
20
+
21
+ protected $_productIds = array();
22
+
23
+
24
+ /**
25
+ * @return Licentia_Fidelitas_Model_Subscribers
26
+ */
27
+ public function getSubscriber()
28
+ {
29
+
30
+ return Mage::registry('fidelitas_subscriber');
31
+
32
+ }
33
+
34
+ public function getSubscriberEmail()
35
+ {
36
+
37
+ if ($this->getSubscriber()->getEmail()) {
38
+ return $this->getSubscriber()->getEmail();
39
+ }
40
+ return false;
41
+ }
42
+
43
+
44
+ public function getWidget($data)
45
+ {
46
+
47
+ $storeId = $this->getSubscriber()->getStoreId();
48
+
49
+ if (!$storeId) {
50
+ $storeId = Mage::app()->getDefaultStoreView()->getId();
51
+ }
52
+
53
+ Mage::app()->getStore()->setId($storeId);
54
+
55
+
56
+ $segments = explode(',', $data['segments']);
57
+ $segments = array_values($segments);
58
+ $segments['number_products'] = $data['number_products'];
59
+
60
+ $productsIds = array();
61
+
62
+ $productsIds[] = $this->getRelatedProductsFromLastOrder($segments);
63
+ $productsIds[] = $this->getRelatedProducts($segments);
64
+ $productsIds[] = $this->getAbandonedCart($segments);
65
+ $productsIds[] = $this->getViewsProducts($segments);
66
+ $productsIds[] = $this->getWishlistProducts($segments);
67
+ $productsIds[] = $this->getCategoriesProducts($segments);
68
+ $productsIds[] = $this->getAttributesProducts($segments);
69
+ $productsIds[] = $this->getRecentProducts($segments);
70
+
71
+
72
+ $prod = array();
73
+ foreach ($productsIds as $list) {
74
+ if (is_array($list)) {
75
+ foreach ($list as $value) {
76
+ if (!isset($prod[$value])) {
77
+ $prod[$value] = 0;
78
+ } else {
79
+ $prod[$value] = $prod[$value] + 1;
80
+ }
81
+ }
82
+ }
83
+ }
84
+
85
+ $productsIds = $prod;
86
+
87
+ krsort($productsIds);
88
+
89
+ if (count($productsIds) > $segments['number_products']) {
90
+ $productsIds = array_slice($productsIds, 0, $segments['number_products']);
91
+ }
92
+ $productsIds = array_keys($productsIds);
93
+
94
+
95
+ $catalog = Mage::getModel('catalog/product')
96
+ ->getCollection()
97
+ ->addAttributeToFilter('entity_id', array('in' => $productsIds))
98
+ ->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds())
99
+ ->addMinimalPrice()
100
+ ->addFinalPrice()
101
+ ->addTaxPercents()
102
+ ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
103
+ ->addUrlRewrite()
104
+ ->addStoreFilter();
105
+
106
+ switch ($data['sort_results']) {
107
+ CASE 'random':
108
+ $catalog->getSelect()->order('rand()');
109
+ break;
110
+ CASE 'created_at':
111
+ $catalog->addAttributeToSort('created_at', 'DESC');
112
+ break;
113
+ CASE 'price_asc':
114
+ $catalog->addAttributeToSort('price', 'ASC');
115
+ break;
116
+ CASE 'price_desc':
117
+ default:
118
+ $catalog->addAttributeToSort('price', 'DESC');
119
+ break;
120
+ }
121
+
122
+ Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($catalog);
123
+
124
+ return $catalog;
125
+ }
126
+
127
+ public function getWishlistProducts($info)
128
+ {
129
+
130
+ $customerId = $this->getSubscriber()->getCustomerId();
131
+
132
+ if (!$customerId) {
133
+ return false;
134
+ }
135
+
136
+ if (!in_array('wishlist', $info))
137
+ return false;
138
+
139
+ if (isset($this->_productIds['wishlist'])) {
140
+ return $this->_productIds['wishlist'];
141
+ }
142
+
143
+ $wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer($customerId)
144
+ ->getItemCollection()
145
+ ->setOrder('added_at', 'asc');
146
+
147
+
148
+ $productsIds = array();
149
+
150
+ foreach ($wishlist as $item) {
151
+ $productsIds[] = $item->getProductId();
152
+ }
153
+
154
+ if (count($productsIds) > $info['number_products']) {
155
+ $productsIds = array_slice($productsIds, 0, $info['number_products']);
156
+ }
157
+
158
+ $this->_productIds['wishlist'] = $productsIds;
159
+
160
+ return $this->_productIds['wishlist'];
161
+ }
162
+
163
+ public function getCategoriesProducts($info)
164
+ {
165
+
166
+
167
+ if (!in_array('categories', $info))
168
+ return false;
169
+
170
+ if (isset($this->_productIds['categories'])) {
171
+ return $this->_productIds['categories'];
172
+ }
173
+
174
+ $info[] = 'views';
175
+
176
+ $items = $this->getViewsProducts($info);
177
+
178
+ $productsIds = array();
179
+ $cats = array();
180
+
181
+ foreach ($items as $item) {
182
+ $product = Mage::getModel('catalog/product')->load($item);
183
+
184
+ if (!$product->getId())
185
+ continue;
186
+
187
+ $rp = $product->getCategoryIds();
188
+ foreach ($rp as $value) {
189
+ $cats[] = $value;
190
+ }
191
+ }
192
+
193
+ $cats = array_unique($cats);
194
+
195
+ $collection = Mage::getModel('catalog/product')->getCollection();
196
+ $collection->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left');
197
+ $collection->distinct(true);
198
+ $collection->addAttributeToFilter('category_id', array('in' => array('finset' => implode(',', $cats))));
199
+ $collection->addAttributeToSort('price', 'desc');
200
+ $collection->setPageSize($info['number_products']);
201
+
202
+
203
+ foreach ($collection as $product) {
204
+ $productsIds[] = $product->getId();
205
+ }
206
+
207
+ $this->_productIds['categories'] = $productsIds;
208
+
209
+ return $this->_productIds['categories'];
210
+ }
211
+
212
+ public function getAttributesProducts($info)
213
+ {
214
+
215
+
216
+ if (!in_array('attributes', $info))
217
+ return false;
218
+
219
+ if (isset($this->_productIds['attributes'])) {
220
+ return $this->_productIds['attributes'];
221
+ }
222
+
223
+
224
+ $info[] = 'views';
225
+
226
+ $items = $this->getViewsProducts($info);
227
+
228
+ $products = Mage::getModel('catalog/product')
229
+ ->getCollection()
230
+ ->addAttributeToSort('price', 'desc')
231
+ ->setPageSize($info['number_products'])
232
+ ->addAttributeToFilter('entity_id', array('in' => $items));
233
+
234
+ $productsIds = array();
235
+
236
+ $attrs = array();
237
+
238
+ foreach ($products as $product) {
239
+
240
+ $attributes = $product->getAttributes();
241
+ foreach ($attributes as $attribute) {
242
+ if ($attribute->getData('is_filterable')) {
243
+ if (!isset($attrs[$attribute->getName()])) {
244
+ $attrs[$attribute->getName()] = 1;
245
+ } else {
246
+ $attrs[$attribute->getName()] = $attrs[$attribute->getName()] + 1;
247
+ }
248
+ }
249
+ }
250
+ }
251
+
252
+ ksort($attrs);
253
+
254
+ $attr = array_keys($attrs);
255
+ $attr = $attr[0];
256
+
257
+ $catalog = Mage::getModel('catalog/product')->getCollection()
258
+ ->addAttributeToFilter($attr, array('neq' => 'fidelitas'));
259
+
260
+ foreach ($catalog as $prod) {
261
+ $value = $prod->getId();
262
+ if (!isset($productsIds[$value])) {
263
+ $productsIds[$value] = 1;
264
+ } else {
265
+ $productsIds[$value] = $productsIds[$value] + 1;
266
+ }
267
+ }
268
+
269
+ krsort($productsIds);
270
+
271
+ $productsIds = array_keys($productsIds);
272
+
273
+ $this->_productIds['attributes'] = $productsIds;
274
+
275
+ return $this->_productIds['attributes'];
276
+ }
277
+
278
+ public function getRelatedProductsFromLastOrder($info)
279
+ {
280
+
281
+ $customerId = $this->getSubscriber()->getCustomerId();
282
+
283
+ if (!$customerId) {
284
+ return false;
285
+ }
286
+
287
+ if (!in_array('related_order', $info))
288
+ return false;
289
+
290
+ if (isset($this->_productIds['related_order'])) {
291
+ return $this->_productIds['related_order'];
292
+ }
293
+
294
+ $orders = Mage::getModel('sales/order')->getCollection()
295
+ ->addAttributeToSelect('entity_id')
296
+ ->addAttributeToFilter('state', 'complete')
297
+ ->setPageSize(1)
298
+ ->addAttributeToFilter('customer_id', $customerId);
299
+
300
+ $productsIds = array();
301
+
302
+ foreach ($orders as $orderObject) {
303
+
304
+ $items = $orderObject->getItemsCollection();
305
+ foreach ($items as $item) {
306
+
307
+ $product = Mage::getModel('catalog/product')->load($item->getProductId());
308
+
309
+ if (!$product->getId())
310
+ continue;
311
+
312
+
313
+ $rp = $product->getRelatedProductIds();
314
+ foreach ($rp as $value) {
315
+ if (!isset($productsIds[$value])) {
316
+ $productsIds[$value] = 1;
317
+ } else {
318
+ $productsIds[$value] = $productsIds[$value] + 1;
319
+ }
320
+ }
321
+ }
322
+ }
323
+
324
+
325
+ krsort($productsIds);
326
+
327
+ if (count($productsIds) > $info['number_products']) {
328
+ $productsIds = array_slice($productsIds, 0, $info['number_products']);
329
+ }
330
+
331
+ $productsIds = array_keys($productsIds);
332
+
333
+ $this->_productIds['related_order'] = $productsIds;
334
+
335
+ return $this->_productIds['related_order'];
336
+ }
337
+
338
+ public function getRelatedProducts($info)
339
+ {
340
+
341
+ $customerId = $this->getSubscriber()->getCustomerId();
342
+
343
+ if (!$customerId) {
344
+ return false;
345
+ }
346
+
347
+ if (!in_array('related', $info))
348
+ return false;
349
+
350
+ if (isset($this->_productIds['related'])) {
351
+ return $this->_productIds['related'];
352
+ }
353
+
354
+ $orders = Mage::getModel('sales/order')->getCollection()
355
+ ->addAttributeToSelect('entity_id')
356
+ ->addAttributeToFilter('state', 'complete')
357
+ ->addAttributeToFilter('customer_id', $customerId);
358
+
359
+ $productsIds = array();
360
+
361
+ foreach ($orders as $order) {
362
+ $items = $order->getItemsCollection();
363
+
364
+ foreach ($items as $item) {
365
+ $product = Mage::getModel('catalog/product')->load($item->getProductId());
366
+
367
+ if (!$product->getId())
368
+ continue;
369
+
370
+ $rp = $product->getRelatedProductIds();
371
+ foreach ($rp as $value) {
372
+ if (!isset($productsIds[$value])) {
373
+ $productsIds[$value] = 1;
374
+ } else {
375
+ $productsIds[$value] = $productsIds[$value] + 1;
376
+ }
377
+ }
378
+ }
379
+ }
380
+
381
+ krsort($productsIds);
382
+
383
+ if (count($productsIds) > $info['number_products']) {
384
+ $productsIds = array_slice($productsIds, 0, $info['number_products']);
385
+ }
386
+
387
+ $productsIds = array_keys($productsIds);
388
+
389
+ $this->_productIds['related'] = $productsIds;
390
+
391
+ return $this->_productIds['related'];
392
+ }
393
+
394
+ public function getAbandonedCart($info)
395
+ {
396
+
397
+ $customerId = $this->getSubscriber()->getCustomerId();
398
+
399
+ if (!$customerId) {
400
+ return false;
401
+ }
402
+
403
+ if (!in_array('abandoned', $info))
404
+ return false;
405
+
406
+ if (isset($this->_productIds['abandoned'])) {
407
+ return $this->_productIds['abandoned'];
408
+ }
409
+
410
+ $orders = Mage::getResourceModel('sales/quote_collection')
411
+ ->addFieldToSelect('*')
412
+ ->addFieldToFilter('store_id', Mage::app()->getStore()->getId())
413
+ ->addFieldToFilter('customer_id', $customerId)
414
+ ->addFieldToFilter('items_count', array('neq' => '0'))
415
+ ->addFieldToFilter('is_active', '1');
416
+
417
+ $productsIds = array();
418
+
419
+ foreach ($orders as $order) {
420
+ $items = $order->getItemsCollection();
421
+
422
+ foreach ($items as $item) {
423
+
424
+ if (!isset($productsIds[$item->getProductId()])) {
425
+ $productsIds[$item->getProductId()] = 1;
426
+ } else {
427
+ $productsIds[$item->getProductId()] = $productsIds[$item->getProductId()] + 1;
428
+ }
429
+ }
430
+ }
431
+
432
+ krsort($productsIds);
433
+
434
+ if (count($productsIds) > $info['number_products']) {
435
+ $productsIds = array_slice($productsIds, 0, $info['number_products']);
436
+ }
437
+
438
+ $productsIds = array_keys($productsIds);
439
+
440
+ $this->_productIds['abandoned'] = $productsIds;
441
+
442
+
443
+ return $this->_productIds['abandoned'];
444
+ }
445
+
446
+ public function getRecentProducts($info)
447
+ {
448
+
449
+ if (!in_array('new', $info))
450
+ return false;
451
+
452
+ if (isset($this->_productIds['new'])) {
453
+ return $this->_productIds['new'];
454
+ }
455
+
456
+ $todayDate = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
457
+
458
+ $collection = Mage::getResourceModel('catalog/product_collection');
459
+ $collection->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInSiteIds());
460
+
461
+ $collection->addAttributeToFilter('news_from_date', array('or' => array(
462
+ 0 => array('date' => true, 'to' => $todayDate),
463
+ 1 => array('is' => new Zend_Db_Expr('null'))),
464
+ ), 'left')
465
+ ->addAttributeToFilter('news_to_date', array('or' => array(
466
+ 0 => array('date' => true, 'from' => $todayDate),
467
+ 1 => array('is' => new Zend_Db_Expr('null'))),
468
+ ), 'left')
469
+ ->addAttributeToSort('news_from_date', 'desc')
470
+ ->setPageSize($info['number_products']);
471
+
472
+
473
+ $productsIds = array();
474
+
475
+ foreach ($collection as $value) {
476
+ $productsIds[] = $value->getId();
477
+ }
478
+
479
+ $this->_productIds['new'] = $productsIds;
480
+
481
+ return $this->_productIds['new'];
482
+ }
483
+
484
+ public function getViewsProducts($info)
485
+ {
486
+
487
+ $customerId = $this->getSubscriber()->getCustomerId();
488
+
489
+ if (!$customerId) {
490
+ return false;
491
+ }
492
+
493
+ if (!in_array('views', $info))
494
+ return false;
495
+
496
+ if (isset($this->_productIds['views'])) {
497
+ return $this->_productIds['views'];
498
+ }
499
+
500
+ $report = Mage::getModel('reports/event')->getCollection()
501
+ ->addFieldToFilter('event_type_id', 1)
502
+ ->addOrder('views', 'desc')
503
+ ->addFieldToFilter('subject_id', $customerId);
504
+
505
+ $report->getSelect()
506
+ ->columns(array('views' => new Zend_Db_Expr('COUNT(object_id)')))
507
+ ->group('object_id')
508
+ ->limit($info['number_products']);
509
+
510
+
511
+ $result = $report->getData();
512
+
513
+ $productsIds = array();
514
+
515
+ foreach ($result as $value) {
516
+ $productsIds[$value['object_id']] = $value['views'];
517
+ }
518
+
519
+ krsort($productsIds);
520
+
521
+ if (count($productsIds) > $info['number_products']) {
522
+ $productsIds = array_slice($productsIds, 0, $info['number_products']);
523
+ }
524
+
525
+ $productsIds = array_keys($productsIds);
526
+
527
+ $this->_productIds['views'] = $productsIds;
528
+
529
+ return $this->_productIds['views'];
530
+ }
531
+
532
+ }
app/code/community/Licentia/Fidelitas/controllers/ProductsController.php ADDED
@@ -0,0 +1,58 @@
1
+ <?php
2
+
3
+ /**
4
+ * Licentia Fidelitas - Advanced Email and SMS Marketing Automation for E-Goi
5
+ *
6
+ * NOTICE OF LICENSE
7
+ * This source file is subject to the Creative Commons Attribution-NonCommercial 4.0 International
8
+ * It is available through the world-wide-web at this URL:
9
+ * http://creativecommons.org/licenses/by-nc/4.0/
10
+ *
11
+ * @title Advanced Email and SMS Marketing Automation
12
+ * @category Marketing
13
+ * @package Licentia
14
+ * @author Bento Vilas Boas <bento@licentia.pt>
15
+ * @copyright Copyright (c) 2012 Licentia - http://licentia.pt
16
+ * @license Creative Commons Attribution-NonCommercial 4.0 International
17
+ */
18
+ class Licentia_Fidelitas_ProductsController extends Mage_Core_Controller_Front_Action
19
+ {
20
+ public function getAction()
21
+ {
22
+ $subscriber = new Varien_Object();
23
+ $email = $this->getRequest()->getParam('email');
24
+ $uid = $this->getRequest()->getParam('uid');
25
+
26
+ $params = $this->getRequest()->getParams();
27
+
28
+ $paramsDefault = array();
29
+ $paramsDefault['number_products'] = 10;
30
+ $paramsDefault['title'] = '';
31
+ $paramsDefault['sort_results'] = 'price';
32
+ $paramsDefault['segments'] = 'new';
33
+ $paramsDefault['template'] = 'products';
34
+ $paramsDefault['image_size'] = '120';
35
+ $paramsDefault['columns_count'] = 4;
36
+
37
+ $params = array_merge($paramsDefault, $params);
38
+
39
+
40
+ if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
41
+ $subscriber = Mage::getModel('fidelitas/subscribers')->load($email, 'email');
42
+ }
43
+
44
+ if (!$subscriber->getId()) {
45
+ $subscriber = Mage::getModel('fidelitas/subscribers')->load($uid, 'uid');
46
+ }
47
+
48
+ Mage::register('fidelitas_subscriber', $subscriber);
49
+
50
+ $block = $this->getLayout()->createBlock('Licentia_Fidelitas_Block_Products', 'fidelitas_products');
51
+ $block->setData('params', $params);
52
+
53
+ echo $block->toHtml();
54
+
55
+ die();
56
+ }
57
+
58
+ }
app/code/community/Licentia/Fidelitas/etc/config.xml CHANGED
@@ -3,7 +3,7 @@
3
<config>
4
<modules>
5
<Licentia_Fidelitas>
6
- <version>2.3.0.2</version>
7
</Licentia_Fidelitas>
8
</modules>
9
<frontend>
@@ -42,7 +42,7 @@
42
<use>standard</use>
43
<args>
44
<module>Licentia_Fidelitas</module>
45
- <frontName>fidelitas</frontName>
46
</args>
47
</fidelitas>
48
</routers>
3
<config>
4
<modules>
5
<Licentia_Fidelitas>
6
+ <version>2.5.0.0</version>
7
</Licentia_Fidelitas>
8
</modules>
9
<frontend>
42
<use>standard</use>
43
<args>
44
<module>Licentia_Fidelitas</module>
45
+ <frontName>egoi</frontName>
46
</args>
47
</fidelitas>
48
</routers>
app/design/frontend/base/default/template/fidelitas/products.phtml ADDED
@@ -0,0 +1,34 @@
1
+ <?php if (($_products = $this->getProductCollection()) && $_products->getSize()): ?>
2
+ <div class="widget widget-new-products">
3
+ <?php if ($this->getData('params/title')): ?>
4
+ <div class="widget-title">
5
+ <h2><?php echo $this->__($this->getData('params/title')) ?></h2>
6
+ </div>
7
+ <?php endif; ?>
8
+ <div class="widget-products">
9
+ <?php echo $this->getPagerHtml() ?>
10
+ <?php $_columnCount = $this->getData('params/columns_count'); ?>
11
+ <?php $i = 0;
12
+ foreach ($_products->getItems() as $_product): ?>
13
+ <?php if ($i++ % $_columnCount == 0): ?>
14
+ <ul class="products-grid">
15
+ <?php endif ?>
16
+ <div>
17
+ <a href="<?php echo $_product->getProductUrl() ?>"
18
+ title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"
19
+ class="product-image"><img
20
+ src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize($this->getData('params/image_size')) ?>"
21
+ width="<?php echo $this->getData('params/image_size') ?>" height="<?php echo $this->getData('params/image_size') ?>"
22
+ alt="<?php echo $this->stripTags($_product->getName(), null, true) ?>"/></a>
23
+ <h3 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>"
24
+ title="<?php echo $this->stripTags($_product->getName(), null, true) ?>)"><?php echo $this->helper('catalog/output')->productAttribute($_product, $_product->getName(), 'name') ?></a>
25
+ </h3>
26
+ <?php echo $this->getPriceHtml($_product, true) ?>
27
+ </div>
28
+ <?php if ($i % $_columnCount == 0 || $i == count($_products)): ?>
29
+ </ul>
30
+ <?php endif ?>
31
+ <?php endforeach; ?>
32
+ </div>
33
+ </div>
34
+ <?php endif; ?>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
<?xml version="1.0"?>
2
<package>
3
<name>Licentia_Fidelitas</name>
4
- <version>2.3.0.2</version>
5
<stability>stable</stability>
6
<license uri="http://creativecommons.org/licenses/by-nc/4.0/">Creative Commons - Attribution-NonCommercial 4.0 International </license>
7
<channel>community</channel>
@@ -10,9 +10,9 @@
10
<description>Email marketing</description>
11
<notes>Email marketing</notes>
12
<authors><author><name>bento</name><user>licentia</user><email>bento@licentia.pt</email></author></authors>
13
- <date>2017-02-14</date>
14
- <time>23:55:41</time>
15
- <contents><target name="magecommunity"><dir name="Licentia"><dir name="Fidelitas"><dir name="Block"><dir name="Adminhtml"><dir name="Account"><dir name="New"><dir name="Edit"><file name="Form.php" hash="6802d636f325a1c1e91515d906c35352"/><dir name="Tab"><file name="Api.php" hash="320ffbcc93452ab7c2ffd0a83aa96020"/><file name="Form.php" hash="d58c80db9a08fb05ae059e18215cb378"/></dir><file name="Tabs.php" hash="8add5cc4a3edbd6ef92c6f0a00db0e2e"/></dir><file name="Edit.php" hash="b86f3f3b32c38ba80c5e74bd0c858e08"/></dir><file name="New.php" hash="d5fc7f250b2d2cd816e4b5cc91242272"/><dir name="Support"><dir name="Edit"><file name="Form.php" hash="0eacee9a220ba52968442575c9f9a406"/><dir name="Tab"><file name="Form.php" hash="5cecbf817777f9322a8a4066805c6dd4"/></dir><file name="Tabs.php" hash="3de3e6aa7541058be94a4cdad5f479ae"/></dir><file name="Edit.php" hash="9dbc6988f63239978405ca3703ed2ce6"/></dir><file name="Support.php" hash="8a8ca7ba9dd695f10fca5e6f2fe7b55a"/><dir name="Sync"><dir name="Edit"><file name="Form.php" hash="f0283c4d94ded6843b5d807cd8ef1a29"/><dir name="Tab"><file name="Form.php" hash="62aa790142e7c7d5f7c1efd403bc8caf"/></dir><file name="Tabs.php" hash="69846a0c99c896a88e9ab56766d7e53f"/></dir><file name="Edit.php" hash="564693d4f8dfb59b9ff0efd47a1119cd"/></dir><file name="Sync.php" hash="2c1d8b495043e8f07dcd9e360bb188d3"/></dir><file name="Account.php" hash="7852371d0a9d7be6df7a2d06e2ee631c"/><dir name="Autoresponders"><dir name="Edit"><file name="Form.php" hash="356ca946f042ef4707f4c2d87d449852"/><dir name="Tab"><file name="Data.php" hash="bbacf805657b8f029d6b91b36d28bb77"/><file name="Main.php" hash="37bdc3f0d2b704bc1fb208a7f5515a6a"/></dir><file name="Tabs.php" hash="ea583251e1c289ef5bcb883140966474"/></dir><file name="Edit.php" hash="814a0172d583f9678cf6fa67972e0198"/><file name="Grid.php" hash="44ce976d0426680e89d84fd0327e6ae2"/></dir><file name="Autoresponders.php" hash="7e2d11c1b3bb81a3bd2e1e347c1dcf0f"/><dir name="Events"><file name="Grid.php" hash="fb96492b69dec4628b42a25c8bbfd284"/></dir><file name="Events.php" hash="d5e7420ab36d092fb36f0c800dd55a1d"/><dir name="Lists"><dir name="Edit"><file name="Form.php" hash="1887d528edc782f9c918894238e3e5a4"/><dir name="Tab"><file name="Main.php" hash="5bd978fd01c24854f590288a57081cae"/></dir><file name="Tabs.php" hash="b0687d00f6c93ea0955ad5432c2dc1ab"/></dir><file name="Edit.php" hash="f9e149d2b0922c33ffb89a99e256c4b3"/><file name="Grid.php" hash="c2684f64f5dac5e6e83a74a6d9cd0664"/></dir><file name="Lists.php" hash="cc3df10e61a0a0cef65deb0e7bd029bb"/><dir name="Subscribers"><dir name="Edit"><file name="Form.php" hash="aadce50da358d664c99fc2c27d519b2e"/><dir name="Tab"><file name="Form.php" hash="56f4c6b69545e15b3e4bfad1228c2d57"/></dir><file name="Tabs.php" hash="62462849bc5bd297fb764a075abb6b69"/></dir><file name="Edit.php" hash="c86c116e9b7894b653713db6c1f5b405"/><file name="Grid.php" hash="b6307e585a5e6feb8af3801db5b5019f"/></dir><file name="Subscribers.php" hash="5880102fd07c90d645fee6c9f90f5662"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Test.php" hash="55c625dced6d7e265c28377eed3fea21"/></dir></dir></dir></dir></dir><file name="Egoimmerce.php" hash="66ea73ddc94914d705ab22ee90da0c08"/></dir><dir name="Helper"><file name="Data.php" hash="d9c90d95319fab4b6431b2d30fbfae6f"/></dir><dir name="Model"><file name="Account.php" hash="ac6a858eebdf9335b22e7cced2145fa8"/><file name="Autoresponders.php" hash="3f6808a6b9c7e356002c31cc00597317"/><file name="Egoi.php" hash="0cb8ee3d086087086bb1c7e2535fa649"/><file name="Events.php" hash="190cf15070bd6f799f8b10c0921133f5"/><file name="Extra.php" hash="e8b6d2da034b77b143db81cf649ead1c"/><file name="Lists.php" hash="5463a15c33c2d4a4c87fa053974ac482"/><dir name="Mysql4"><dir name="Account"><file name="Collection.php" hash="2d668e62a13f4ef5e384aeec0e514c1a"/></dir><file name="Account.php" hash="7c9967d6a86f49378f1e513acfc07078"/><dir name="Autoresponders"><file name="Collection.php" hash="bb924ad5979b3b27b312f46d84fe44c6"/></dir><file name="Autoresponders.php" hash="84fe50177e1c3cf4b8773b6133017ab4"/><dir name="Events"><file name="Collection.php" hash="3eb76ae733c4d76f27dae40cda7f9f4c"/></dir><file name="Events.php" hash="c68be7cbd8bcb077729de120a4af2cb3"/><dir name="Extra"><file name="Collection.php" hash="3378a705bbc8fd647c87d50c729b6715"/></dir><file name="Extra.php" hash="2e7c8ae5c07f92a22b04b5080f0712b4"/><dir name="Lists"><file name="Collection.php" hash="bb48b44e845ee9c28a8ce8fdbc42674d"/></dir><file name="Lists.php" hash="eb23516e199ed10234c7df1a6922a313"/><dir name="Subscribers"><file name="Collection.php" hash="fc44d78d088c11aab5345aacd12b80b6"/></dir><file name="Subscribers.php" hash="4478e53edda9027e02fb62163164ce97"/></dir><file name="Observer.php" hash="f575478e27bd583931acfbb2c8731503"/><dir name="Source"><file name="Addressattributes.php" hash="c8cf64629c92f54859c3335832b43ee6"/><file name="Method.php" hash="151497a995e79e0a6e226ec1aae3eaec"/><file name="Sender.php" hash="2c054ca6a46b43545a0cec4eef381b8a"/></dir><file name="Subscribers.php" hash="cba8c3ad04801303bd89fb51332d8afd"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Fidelitas"><file name="AccountController.php" hash="256b3f15331cf08ca508202e566675e1"/><file name="AutorespondersController.php" hash="000336c4a0bbe237404ea8de5a399e66"/><file name="EventsController.php" hash="37252a1a492bb4a90d2badae5c92e472"/><file name="ListsController.php" hash="5915bf0646216756b91b1636b38c52ca"/><file name="SubscribersController.php" hash="c3c0393809c664891b02f07a89ca3f7b"/></dir></dir><file name="CallbackController.php" hash="a5c1e7ef880f3faeaa32287791737669"/></dir><dir name="etc"><file name="adminhtml.xml" hash="f7e2021f617fe0d719cc71641927c6c9"/><file name="config.xml" hash="e542cf5a6e00a9d13f71a7e85df1e52b"/><file name="system.xml" hash="bfbfc6ba8827e6ba20f1cd88b2f25105"/></dir><dir name="sql"><dir name="fidelitas_setup"><file name="mysql4-install-2.0.0.0.php" hash="665ca2dfe422a474f4faad8ae1985e6c"/><file name="mysql4-upgrade-2.0.0.5-2.1.0.0.php" hash="628f9f7253d152847971708552849b90"/><file name="mysql4-upgrade-2.1.0.4-2.1.0.5.php" hash="5fe08f874391f6d174be2c33e2f81cfd"/><file name="mysql4-upgrade-2.2.0.4-2.2.0.5.php" hash="ed2e1a7d5e7cd959277823d7a03bff5a"/></dir></dir><file name=".DS_Store" hash="7eb1289aa5052c8b91c98dfd5214f08a"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Licentia_Fidelitas.xml" hash="fb5bebd3e734d581867a362a1046df7c"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="fidelitas.xml" hash="78efe5b2c2cbf4650e4d3d5acea8df12"/></dir><dir name="template"><dir name="fidelitas"><file name="egoimmerce.phtml" hash="8402f2defee218269dad4989ce80651f"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="fidelitas.xml" hash="fbf163f93a515a6b834468bbbddd49da"/></dir><dir name="template"><dir name="fidelitas"><dir name="account"><file name="account.phtml" hash="502fd3aa14466f51b760e54d3754728a"/><file name="new.phtml" hash="b77874642f2fe60d966ba52ba808ff87"/></dir></dir></dir></dir></dir></dir></target></contents>
16
<compatible/>
17
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><extension><name>soap</name><min/><max/></extension></required></dependencies>
18
</package>
1
<?xml version="1.0"?>
2
<package>
3
<name>Licentia_Fidelitas</name>
4
+ <version>2.5.0.0</version>
5
<stability>stable</stability>
6
<license uri="http://creativecommons.org/licenses/by-nc/4.0/">Creative Commons - Attribution-NonCommercial 4.0 International </license>
7
<channel>community</channel>
10
<description>Email marketing</description>
11
<notes>Email marketing</notes>
12
<authors><author><name>bento</name><user>licentia</user><email>bento@licentia.pt</email></author></authors>
13
+ <date>2017-02-15</date>
14
+ <time>00:55:18</time>
15
+ <contents><target name="magecommunity"><dir name="Licentia"><dir name="Fidelitas"><dir name="Block"><dir name="Adminhtml"><dir name="Account"><dir name="New"><dir name="Edit"><file name="Form.php" hash="6802d636f325a1c1e91515d906c35352"/><dir name="Tab"><file name="Api.php" hash="320ffbcc93452ab7c2ffd0a83aa96020"/><file name="Form.php" hash="d58c80db9a08fb05ae059e18215cb378"/></dir><file name="Tabs.php" hash="8add5cc4a3edbd6ef92c6f0a00db0e2e"/></dir><file name="Edit.php" hash="b86f3f3b32c38ba80c5e74bd0c858e08"/></dir><file name="New.php" hash="d5fc7f250b2d2cd816e4b5cc91242272"/><dir name="Support"><dir name="Edit"><file name="Form.php" hash="0eacee9a220ba52968442575c9f9a406"/><dir name="Tab"><file name="Form.php" hash="5cecbf817777f9322a8a4066805c6dd4"/></dir><file name="Tabs.php" hash="3de3e6aa7541058be94a4cdad5f479ae"/></dir><file name="Edit.php" hash="9dbc6988f63239978405ca3703ed2ce6"/></dir><file name="Support.php" hash="8a8ca7ba9dd695f10fca5e6f2fe7b55a"/><dir name="Sync"><dir name="Edit"><file name="Form.php" hash="f0283c4d94ded6843b5d807cd8ef1a29"/><dir name="Tab"><file name="Form.php" hash="62aa790142e7c7d5f7c1efd403bc8caf"/></dir><file name="Tabs.php" hash="69846a0c99c896a88e9ab56766d7e53f"/></dir><file name="Edit.php" hash="564693d4f8dfb59b9ff0efd47a1119cd"/></dir><file name="Sync.php" hash="2c1d8b495043e8f07dcd9e360bb188d3"/></dir><file name="Account.php" hash="7852371d0a9d7be6df7a2d06e2ee631c"/><dir name="Autoresponders"><dir name="Edit"><file name="Form.php" hash="356ca946f042ef4707f4c2d87d449852"/><dir name="Tab"><file name="Data.php" hash="bbacf805657b8f029d6b91b36d28bb77"/><file name="Main.php" hash="37bdc3f0d2b704bc1fb208a7f5515a6a"/></dir><file name="Tabs.php" hash="ea583251e1c289ef5bcb883140966474"/></dir><file name="Edit.php" hash="814a0172d583f9678cf6fa67972e0198"/><file name="Grid.php" hash="44ce976d0426680e89d84fd0327e6ae2"/></dir><file name="Autoresponders.php" hash="7e2d11c1b3bb81a3bd2e1e347c1dcf0f"/><dir name="Events"><file name="Grid.php" hash="fb96492b69dec4628b42a25c8bbfd284"/></dir><file name="Events.php" hash="d5e7420ab36d092fb36f0c800dd55a1d"/><dir name="Lists"><dir name="Edit"><file name="Form.php" hash="1887d528edc782f9c918894238e3e5a4"/><dir name="Tab"><file name="Main.php" hash="5bd978fd01c24854f590288a57081cae"/></dir><file name="Tabs.php" hash="b0687d00f6c93ea0955ad5432c2dc1ab"/></dir><file name="Edit.php" hash="f9e149d2b0922c33ffb89a99e256c4b3"/><file name="Grid.php" hash="c2684f64f5dac5e6e83a74a6d9cd0664"/></dir><file name="Lists.php" hash="cc3df10e61a0a0cef65deb0e7bd029bb"/><dir name="Subscribers"><dir name="Edit"><file name="Form.php" hash="aadce50da358d664c99fc2c27d519b2e"/><dir name="Tab"><file name="Form.php" hash="56f4c6b69545e15b3e4bfad1228c2d57"/></dir><file name="Tabs.php" hash="62462849bc5bd297fb764a075abb6b69"/></dir><file name="Edit.php" hash="c86c116e9b7894b653713db6c1f5b405"/><file name="Grid.php" hash="b6307e585a5e6feb8af3801db5b5019f"/></dir><file name="Subscribers.php" hash="5880102fd07c90d645fee6c9f90f5662"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Test.php" hash="55c625dced6d7e265c28377eed3fea21"/></dir></dir></dir></dir></dir><file name="Egoimmerce.php" hash="66ea73ddc94914d705ab22ee90da0c08"/><file name="Products.php" hash="fe93effd102dc4b569725e37f6c004dd"/></dir><dir name="Helper"><file name="Data.php" hash="d9c90d95319fab4b6431b2d30fbfae6f"/></dir><dir name="Model"><file name="Account.php" hash="ac6a858eebdf9335b22e7cced2145fa8"/><file name="Autoresponders.php" hash="3f6808a6b9c7e356002c31cc00597317"/><file name="Egoi.php" hash="0cb8ee3d086087086bb1c7e2535fa649"/><file name="Events.php" hash="190cf15070bd6f799f8b10c0921133f5"/><file name="Extra.php" hash="e8b6d2da034b77b143db81cf649ead1c"/><file name="Lists.php" hash="942fdb6168b11f21b6aee13a520a7ddc"/><dir name="Mysql4"><dir name="Account"><file name="Collection.php" hash="2d668e62a13f4ef5e384aeec0e514c1a"/></dir><file name="Account.php" hash="7c9967d6a86f49378f1e513acfc07078"/><dir name="Autoresponders"><file name="Collection.php" hash="bb924ad5979b3b27b312f46d84fe44c6"/></dir><file name="Autoresponders.php" hash="84fe50177e1c3cf4b8773b6133017ab4"/><dir name="Events"><file name="Collection.php" hash="3eb76ae733c4d76f27dae40cda7f9f4c"/></dir><file name="Events.php" hash="c68be7cbd8bcb077729de120a4af2cb3"/><dir name="Extra"><file name="Collection.php" hash="3378a705bbc8fd647c87d50c729b6715"/></dir><file name="Extra.php" hash="2e7c8ae5c07f92a22b04b5080f0712b4"/><dir name="Lists"><file name="Collection.php" hash="bb48b44e845ee9c28a8ce8fdbc42674d"/></dir><file name="Lists.php" hash="eb23516e199ed10234c7df1a6922a313"/><dir name="Subscribers"><file name="Collection.php" hash="fc44d78d088c11aab5345aacd12b80b6"/></dir><file name="Subscribers.php" hash="4478e53edda9027e02fb62163164ce97"/></dir><file name="Observer.php" hash="f575478e27bd583931acfbb2c8731503"/><file name="Products.php" hash="5cf10877d58d6c825c1b2a80ae0d8f0e"/><dir name="Source"><file name="Addressattributes.php" hash="c8cf64629c92f54859c3335832b43ee6"/><file name="Method.php" hash="151497a995e79e0a6e226ec1aae3eaec"/><file name="Sender.php" hash="2c054ca6a46b43545a0cec4eef381b8a"/></dir><file name="Subscribers.php" hash="cba8c3ad04801303bd89fb51332d8afd"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Fidelitas"><file name="AccountController.php" hash="256b3f15331cf08ca508202e566675e1"/><file name="AutorespondersController.php" hash="000336c4a0bbe237404ea8de5a399e66"/><file name="EventsController.php" hash="37252a1a492bb4a90d2badae5c92e472"/><file name="ListsController.php" hash="5915bf0646216756b91b1636b38c52ca"/><file name="SubscribersController.php" hash="c3c0393809c664891b02f07a89ca3f7b"/></dir></dir><file name="CallbackController.php" hash="a5c1e7ef880f3faeaa32287791737669"/><file name="ProductsController.php" hash="368d75d6057c36710359fc0bfc945186"/></dir><dir name="etc"><file name="adminhtml.xml" hash="f7e2021f617fe0d719cc71641927c6c9"/><file name="config.xml" hash="533b23c46bfae21dbc9bafe9cdff7eae"/><file name="system.xml" hash="bfbfc6ba8827e6ba20f1cd88b2f25105"/></dir><dir name="sql"><dir name="fidelitas_setup"><file name="mysql4-install-2.0.0.0.php" hash="665ca2dfe422a474f4faad8ae1985e6c"/><file name="mysql4-upgrade-2.0.0.5-2.1.0.0.php" hash="628f9f7253d152847971708552849b90"/><file name="mysql4-upgrade-2.1.0.4-2.1.0.5.php" hash="5fe08f874391f6d174be2c33e2f81cfd"/><file name="mysql4-upgrade-2.2.0.4-2.2.0.5.php" hash="ed2e1a7d5e7cd959277823d7a03bff5a"/></dir></dir><file name=".DS_Store" hash="7eb1289aa5052c8b91c98dfd5214f08a"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Licentia_Fidelitas.xml" hash="fb5bebd3e734d581867a362a1046df7c"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="fidelitas.xml" hash="78efe5b2c2cbf4650e4d3d5acea8df12"/></dir><dir name="template"><dir name="fidelitas"><file name="egoimmerce.phtml" hash="8402f2defee218269dad4989ce80651f"/><file name="products.phtml" hash="6b704c921c38bcc25a6d90764e01a879"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="fidelitas.xml" hash="fbf163f93a515a6b834468bbbddd49da"/></dir><dir name="template"><dir name="fidelitas"><dir name="account"><file name="account.phtml" hash="502fd3aa14466f51b760e54d3754728a"/><file name="new.phtml" hash="b77874642f2fe60d966ba52ba808ff87"/></dir></dir></dir></dir></dir></dir></target></contents>
16
<compatible/>
17
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><extension><name>soap</name><min/><max/></extension></required></dependencies>
18
</package>