Version Description
- New: Feed module to work with custom CSV feeds.
- New: Viglink module.
- New: Merchant settings: Shop info.
- New: Block template: Top listing.
- New: Price alert email templates.
- New: Price alerts option: General alert for all products in a post.
- New: Frontend text settings.
- Improvement: Compatibility with WooCommerce 5.1.0.
- Improvement: Glyphicons are no longer used on frontend.
Download this release
Release Info
Developer | keywordrush |
Plugin | Content Egg |
Version | 5.2.0 |
Comparing to | |
See all releases |
Code changes from version 5.1.0 to 5.2.0
- application/BlockShortcode.php +10 -7
- application/EggShortcode.php +10 -7
- application/Installer.php +10 -1
- application/ModuleUpdateScheduler.php +20 -15
- application/ModuleUpdateVisit.php +2 -0
- application/ModuleViewer.php +4 -4
- application/Plugin.php +36 -11
- application/PriceAlert.php +79 -37
- application/ProductSearch.php +5 -5
- application/Translator.php +33 -0
- application/WooIntegrator.php +7 -4
- application/admin/AdminNotice.php +1 -1
- application/admin/AutoblogController.php +1 -1
- application/admin/AutoblogTable.php +2 -2
- application/admin/EggMetabox.php +6 -6
- application/admin/GeneralConfig.php +292 -68
- application/admin/ModuleSettingsContoller.php +1 -1
- application/admin/PluginAdmin.php +14 -4
- application/admin/PrefillController.php +27 -4
- application/admin/ProductController.php +2 -2
- application/admin/ProductTable.php +1 -1
- application/admin/ToolsController.php +37 -6
- application/admin/views/_metabox_autoblog.php +30 -34
- application/admin/views/_metabox_results.php +1 -2
- application/admin/views/_promo_box.php +1 -1
- application/admin/views/ae_integration.php +15 -8
- application/admin/views/autoblog_edit.php +2 -2
- application/admin/views/autoblog_index.php +7 -1
- application/admin/views/module_index.php +13 -3
- application/admin/views/module_settings.php +26 -8
- application/admin/views/prefill.php +11 -6
- application/admin/views/settings.php +1 -1
- application/components/AffiliateFeedParserModule.php +21 -5
- application/components/AffiliateFeedParserModuleConfig.php +7 -4
- application/components/AffiliateParserModule.php +2 -2
- application/components/AffiliateParserModuleConfig.php +3 -3
- application/components/Config.php +1 -1
- application/components/ContentManager.php +27 -14
- application/components/LinkHandler.php +1 -1
- application/components/Module.php +2 -2
- application/components/ModuleConfig.php +1 -1
- application/components/ModuleManager.php +54 -14
- application/components/ModuleTemplateManager.php +2 -2
- application/components/ParserModule.php +32 -3
- application/components/ParserModuleConfig.php +3 -4
- application/components/Scheduler.php +8 -6
- application/components/TemplateManager.php +5 -2
- application/helpers/AdminHelper.php +17 -1
- application/helpers/CurrencyHelper.php +2 -2
- application/helpers/ImageHelper.php +1 -1
- application/helpers/TemplateHelper.php +250 -42
- application/helpers/TextHelper.php +33 -3
- application/libs/ParserClient.php +1 -2
- application/libs/RestClient.php +1 -1
- application/libs/WpHttpClient.php +3 -0
- application/libs/viglink/ViglinkApi.php +73 -0
- application/models/AutoblogModel.php +12 -7
- application/models/FeedProductModel.php +16 -1
- application/models/Model.php +1 -0
- application/models/ProductModel.php +5 -2
- application/modules/AE/AEConfig.php +1 -1
- application/modules/AE/AEModule.php +3 -3
- application/modules/AdmitadProducts/AdmitadProductsConfig.php +1 -1
- application/modules/AffilinetCoupons/AffilinetCouponsConfig.php +1 -1
- application/modules/Amazon/AmazonConfig.php +1 -1
- application/modules/Amazon/templates/data_compare.php +1 -1
- application/modules/CjLinks/CjLinksConfig.php +1 -1
- application/modules/Coupon/CouponModule.php +2 -2
- application/modules/Feed/ExtraDataAE.php +23 -0
- application/modules/Feed/FeedConfig.php +247 -0
- application/modules/Feed/FeedModule.php +334 -0
- application/modules/Feed/FeedName.php +52 -0
- application/modules/Feed/index.php +3 -0
- application/modules/Feed/models/MyFeed10ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed11ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed12ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed13ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed14ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed15ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed16ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed17ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed18ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed19ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed1ProductModel.php +26 -0
- application/modules/Feed/models/MyFeed20ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed21ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed22ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed23ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed24ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed25ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed2ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed3ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed4ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed5ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed6ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed7ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed8ProductModel.php +27 -0
- application/modules/Feed/models/MyFeed9ProductModel.php +27 -0
- application/modules/Feed/models/MyFeedProductModel.php +36 -0
- application/modules/Feed/templates/data_grid.php +10 -0
- application/modules/Feed/templates/data_item.php +10 -0
- application/modules/Feed/templates/data_item_simple.php +10 -0
- application/modules/Feed/templates/data_list.php +9 -0
- application/modules/Feed/templates/data_price_tracker_alert.php +10 -0
- application/modules/Feed/views/search_panel.php +3 -0
- application/modules/Feed/views/update_panel.php +3 -0
- application/modules/GdeSlon/GdeSlonConfig.php +1 -1
- application/modules/GdeSlon/GdeSlonModule.php +2 -2
- application/modules/Viglink/ExtraDataViglink.php +20 -0
- application/modules/Viglink/ViglinkConfig.php +158 -0
- application/modules/Viglink/ViglinkModule.php +305 -0
- application/modules/Viglink/index.php +3 -0
- application/modules/Viglink/templates/data_grid.php +11 -0
- application/modules/Viglink/templates/data_item.php +11 -0
- application/modules/Viglink/templates/data_item_simple.php +10 -0
- application/modules/Viglink/templates/data_list.php +10 -0
- application/modules/Viglink/templates/data_price_tracker_alert.php +11 -0
- application/modules/Viglink/views/search_panel.php +3 -0
- application/modules/Viglink/views/update_panel.php +3 -0
- application/templates/blocks/grid_row.php +2 -2
- application/templates/blocks/item_after_price_row.php +5 -11
- application/templates/blocks/item_features.php +29 -26
- application/templates/blocks/item_row.php +15 -9
- application/templates/blocks/list_row.php +19 -16
- application/templates/blocks/list_row_no_price.php +17 -9
- application/templates/blocks/price_alert_inline.php +9 -8
- application/templates/blocks/price_history.php +6 -6
- application/templates/data_coupon.php +4 -4
- application/templates/data_item.php +1 -1
- application/templates/data_list.php +6 -3
- application/templates/data_price_tracker_alert.php +3 -3
- content-egg.php +1 -1
- languages/content-egg.pot +995 -599
- languages/tpl/content-egg-tpl.pot +268 -231
- loader.php +2 -2
- readme.txt +54 -31
- res/app/app.js +3 -3
- res/bootstrap/css/egg-bootstrap.css +148 -807
- res/bootstrap/css/egg-bootstrap.min.css +3 -5
- res/bootstrap/css/glyphicons.css +805 -0
- res/bootstrap/js/popover.js +121 -0
- res/bootstrap/js/tooltip.js +361 -0
- res/css/admin.css +26 -16
- res/css/products.css +23 -7
- res/img/logo.png +0 -0
- res/js/common.js +1 -1
- res/js/jquery.blockUI.js +610 -606
- res/js/keywords.js +14 -14
- res/js/prefill.js +4 -4
- res/js/price_alert.js +1 -1
- res/logos/amazon-sa.png +0 -0
- templates/block_offers_logo.php +17 -14
- templates/block_offers_tile.php +1 -1
- templates/block_price_alert.php +2 -2
- templates/block_price_comparison.php +14 -15
- templates/block_price_comparison_card.php +2 -2
- templates/block_price_history.php +1 -1
- templates/block_price_statistics.php +1 -1
- templates/block_text_links.php +1 -1
- templates/block_top_listing.php +84 -0
- templates/wdgt_price_movers_grid.php +2 -2
- templates/wdgt_price_movers_list.php +3 -4
application/BlockShortcode.php
CHANGED
@@ -13,8 +13,8 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
13 |
* BlockShortcode class file
|
14 |
*
|
15 |
* @author keywordrush.com <support@keywordrush.com>
|
16 |
-
* @link http://www.keywordrush.com
|
17 |
-
* @copyright Copyright ©
|
18 |
*/
|
19 |
class BlockShortcode {
|
20 |
|
@@ -36,7 +36,7 @@ class BlockShortcode {
|
|
36 |
|
37 |
private function prepareAttr($atts)
|
38 |
{
|
39 |
-
$
|
40 |
'modules' => null,
|
41 |
'template' => '',
|
42 |
'post_id' => 0,
|
@@ -54,8 +54,11 @@ class BlockShortcode {
|
|
54 |
'product' => '',
|
55 |
'hide' => '',
|
56 |
'show' => '',
|
57 |
-
'btn_text' => ''
|
58 |
-
|
|
|
|
|
|
|
59 |
|
60 |
$a['next'] = (int) $a['next'];
|
61 |
$a['limit'] = (int) $a['limit'];
|
@@ -67,7 +70,7 @@ class BlockShortcode {
|
|
67 |
$a['group'] = \sanitize_text_field($a['group']);
|
68 |
$a['hide'] = TemplateHelper::hideParamPrepare($a['hide']);
|
69 |
$a['show'] = strtolower(TextHelper::clear($a['show']));
|
70 |
-
$a['btn_text'] = wp_strip_all_tags($a['btn_text'], true);
|
71 |
|
72 |
if ($a['group'] && !$a['groups'])
|
73 |
$a['groups'] = $a['group'];
|
@@ -158,7 +161,7 @@ class BlockShortcode {
|
|
158 |
$module_ids = array_intersect($module_ids, $supported_module_ids);
|
159 |
}
|
160 |
|
161 |
-
return ModuleViewer::getInstance()->viewBlockData($module_ids, $post_id, $a);
|
162 |
}
|
163 |
|
164 |
}
|
13 |
* BlockShortcode class file
|
14 |
*
|
15 |
* @author keywordrush.com <support@keywordrush.com>
|
16 |
+
* @link http://www.keywordrush.com
|
17 |
+
* @copyright Copyright © 2021 keywordrush.com
|
18 |
*/
|
19 |
class BlockShortcode {
|
20 |
|
36 |
|
37 |
private function prepareAttr($atts)
|
38 |
{
|
39 |
+
$allowed_atts = array(
|
40 |
'modules' => null,
|
41 |
'template' => '',
|
42 |
'post_id' => 0,
|
54 |
'product' => '',
|
55 |
'hide' => '',
|
56 |
'show' => '',
|
57 |
+
'btn_text' => ''
|
58 |
+
);
|
59 |
+
|
60 |
+
$allowed_atts = \apply_filters('cegg_block_shortcode_atts', $allowed_atts);
|
61 |
+
$a = \shortcode_atts($allowed_atts, $atts);
|
62 |
|
63 |
$a['next'] = (int) $a['next'];
|
64 |
$a['limit'] = (int) $a['limit'];
|
70 |
$a['group'] = \sanitize_text_field($a['group']);
|
71 |
$a['hide'] = TemplateHelper::hideParamPrepare($a['hide']);
|
72 |
$a['show'] = strtolower(TextHelper::clear($a['show']));
|
73 |
+
$a['btn_text'] = \wp_strip_all_tags($a['btn_text'], true);
|
74 |
|
75 |
if ($a['group'] && !$a['groups'])
|
76 |
$a['groups'] = $a['group'];
|
161 |
$module_ids = array_intersect($module_ids, $supported_module_ids);
|
162 |
}
|
163 |
|
164 |
+
return ModuleViewer::getInstance()->viewBlockData($module_ids, $post_id, $a, $content);
|
165 |
}
|
166 |
|
167 |
}
|
application/EggShortcode.php
CHANGED
@@ -14,8 +14,8 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
14 |
* EggShortcode class file
|
15 |
*
|
16 |
* @author keywordrush.com <support@keywordrush.com>
|
17 |
-
* @link
|
18 |
-
* @copyright Copyright ©
|
19 |
*/
|
20 |
class EggShortcode {
|
21 |
|
@@ -39,7 +39,7 @@ class EggShortcode {
|
|
39 |
|
40 |
private function prepareAttr($atts)
|
41 |
{
|
42 |
-
$
|
43 |
'module' => null,
|
44 |
'limit' => 0,
|
45 |
'offset' => 0,
|
@@ -56,8 +56,11 @@ class EggShortcode {
|
|
56 |
'products' => '',
|
57 |
'product' => '',
|
58 |
'hide' => '',
|
59 |
-
'btn_text' => '',
|
60 |
-
|
|
|
|
|
|
|
61 |
|
62 |
$a['next'] = (int) $a['next'];
|
63 |
$a['limit'] = (int) $a['limit'];
|
@@ -72,7 +75,7 @@ class EggShortcode {
|
|
72 |
$a['groups'] = \sanitize_text_field($a['groups']);
|
73 |
$a['group'] = \sanitize_text_field($a['group']);
|
74 |
$a['hide'] = TemplateHelper::hideParamPrepare($a['hide']);
|
75 |
-
$a['btn_text'] = wp_strip_all_tags($a['btn_text'], true);
|
76 |
if ($a['group'] && !$a['groups'])
|
77 |
$a['groups'] = $a['group'];
|
78 |
if ($a['groups'])
|
@@ -109,7 +112,7 @@ class EggShortcode {
|
|
109 |
return;
|
110 |
|
111 |
Shortcoded::getInstance($post_id)->setShortcodedModule($module_id);
|
112 |
-
return ModuleViewer::getInstance()->viewModuleData($module_id, $post_id, $a);
|
113 |
}
|
114 |
|
115 |
public static function arraySortByColumn(&$arr, $col, $dir = SORT_ASC)
|
14 |
* EggShortcode class file
|
15 |
*
|
16 |
* @author keywordrush.com <support@keywordrush.com>
|
17 |
+
* @link https://www.keywordrush.com
|
18 |
+
* @copyright Copyright © 2021 keywordrush.com
|
19 |
*/
|
20 |
class EggShortcode {
|
21 |
|
39 |
|
40 |
private function prepareAttr($atts)
|
41 |
{
|
42 |
+
$allowed_atts = array(
|
43 |
'module' => null,
|
44 |
'limit' => 0,
|
45 |
'offset' => 0,
|
56 |
'products' => '',
|
57 |
'product' => '',
|
58 |
'hide' => '',
|
59 |
+
'btn_text' => '',
|
60 |
+
);
|
61 |
+
|
62 |
+
$allowed_atts = \apply_filters('cegg_module_shortcode_atts', $allowed_atts);
|
63 |
+
$a = \shortcode_atts($allowed_atts, $atts);
|
64 |
|
65 |
$a['next'] = (int) $a['next'];
|
66 |
$a['limit'] = (int) $a['limit'];
|
75 |
$a['groups'] = \sanitize_text_field($a['groups']);
|
76 |
$a['group'] = \sanitize_text_field($a['group']);
|
77 |
$a['hide'] = TemplateHelper::hideParamPrepare($a['hide']);
|
78 |
+
$a['btn_text'] = wp_strip_all_tags($a['btn_text'], true);
|
79 |
if ($a['group'] && !$a['groups'])
|
80 |
$a['groups'] = $a['group'];
|
81 |
if ($a['groups'])
|
112 |
return;
|
113 |
|
114 |
Shortcoded::getInstance($post_id)->setShortcodedModule($module_id);
|
115 |
+
return ModuleViewer::getInstance()->viewModuleData($module_id, $post_id, $a, $content);
|
116 |
}
|
117 |
|
118 |
public static function arraySortByColumn(&$arr, $col, $dir = SORT_ASC)
|
application/Installer.php
CHANGED
@@ -13,7 +13,7 @@ use ContentEgg\application\models\AutoblogModel;
|
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
* @link https://www.keywordrush.com
|
16 |
-
* @copyright Copyright ©
|
17 |
*/
|
18 |
class Installer {
|
19 |
|
@@ -124,6 +124,9 @@ class Installer {
|
|
124 |
if ($db_version < 50)
|
125 |
self::upgrade_v50();
|
126 |
|
|
|
|
|
|
|
127 |
\update_option(Plugin::slug . '_db_version', self::dbVesrion());
|
128 |
}
|
129 |
|
@@ -157,6 +160,12 @@ class Installer {
|
|
157 |
global $wpdb;
|
158 |
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'cegg_awin_product');
|
159 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
|
161 |
public function redirect_after_activation()
|
162 |
{
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
* @link https://www.keywordrush.com
|
16 |
+
* @copyright Copyright © 2021 keywordrush.com
|
17 |
*/
|
18 |
class Installer {
|
19 |
|
124 |
if ($db_version < 50)
|
125 |
self::upgrade_v50();
|
126 |
|
127 |
+
if ($db_version < 53)
|
128 |
+
self::upgrade_v53();
|
129 |
+
|
130 |
\update_option(Plugin::slug . '_db_version', self::dbVesrion());
|
131 |
}
|
132 |
|
160 |
global $wpdb;
|
161 |
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'cegg_awin_product');
|
162 |
}
|
163 |
+
|
164 |
+
private static function upgrade_v53()
|
165 |
+
{
|
166 |
+
global $wpdb;
|
167 |
+
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'cegg_daisycon_product');
|
168 |
+
}
|
169 |
|
170 |
public function redirect_after_activation()
|
171 |
{
|
application/ModuleUpdateScheduler.php
CHANGED
@@ -12,8 +12,8 @@ use ContentEgg\application\components\ModuleManager;
|
|
12 |
* ModuleUpdateScheduler class file
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
-
* @link
|
16 |
-
* @copyright Copyright ©
|
17 |
*/
|
18 |
class ModuleUpdateScheduler extends Scheduler {
|
19 |
|
@@ -36,7 +36,7 @@ class ModuleUpdateScheduler extends Scheduler {
|
|
36 |
self::priceUpdate();
|
37 |
}
|
38 |
|
39 |
-
|
40 |
{
|
41 |
global $wpdb;
|
42 |
|
@@ -49,15 +49,18 @@ class ModuleUpdateScheduler extends Scheduler {
|
|
49 |
shuffle($module_ids);
|
50 |
foreach ($module_ids as $module_id)
|
51 |
{
|
52 |
-
$
|
53 |
-
$ttl = $module->config('ttl');
|
54 |
|
55 |
-
|
56 |
-
|
|
|
|
|
|
|
|
|
57 |
|
58 |
-
|
59 |
|
60 |
-
|
61 |
FROM {$wpdb->postmeta} last_bykeyword_update
|
62 |
INNER JOIN {$wpdb->postmeta} keyword
|
63 |
ON last_bykeyword_update.post_id = keyword.post_id
|
@@ -68,20 +71,22 @@ class ModuleUpdateScheduler extends Scheduler {
|
|
68 |
ORDER BY last_bykeyword_update.meta_value ASC
|
69 |
LIMIT " . $limit;
|
70 |
|
71 |
-
|
72 |
-
|
73 |
-
|
|
|
|
|
74 |
continue;
|
75 |
|
76 |
// update!
|
77 |
-
foreach ($
|
78 |
{
|
79 |
-
ContentManager::updateByKeyword($
|
80 |
}
|
81 |
}
|
82 |
}
|
83 |
|
84 |
-
|
85 |
{
|
86 |
global $wpdb;
|
87 |
|
12 |
* ModuleUpdateScheduler class file
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
+
* @link https://www.keywordrush.com
|
16 |
+
* @copyright Copyright © 2021 keywordrush.com
|
17 |
*/
|
18 |
class ModuleUpdateScheduler extends Scheduler {
|
19 |
|
36 |
self::priceUpdate();
|
37 |
}
|
38 |
|
39 |
+
public static function byKeywordUpdate()
|
40 |
{
|
41 |
global $wpdb;
|
42 |
|
49 |
shuffle($module_ids);
|
50 |
foreach ($module_ids as $module_id)
|
51 |
{
|
52 |
+
$post_ids = \apply_filters('cegg_keyword_update_posts', array(), $module_id);
|
|
|
53 |
|
54 |
+
if (!$post_ids)
|
55 |
+
{
|
56 |
+
$module = ModuleManager::getInstance()->factory($module_id);
|
57 |
+
$ttl = $module->config('ttl');
|
58 |
+
$meta_key_keyword = self::addKeywordPrefix($module_id);
|
59 |
+
$meta_key_last_bykeyword_update = self::addByKeywordUpdatePrefix($module_id);
|
60 |
|
61 |
+
$limit = (int) \apply_filters('cegg_update_limit_keyword', self::BYKEYWORD_UPDATE_LIMIT_FOR_MODULE);
|
62 |
|
63 |
+
$sql = "SELECT last_bykeyword_update.post_id
|
64 |
FROM {$wpdb->postmeta} last_bykeyword_update
|
65 |
INNER JOIN {$wpdb->postmeta} keyword
|
66 |
ON last_bykeyword_update.post_id = keyword.post_id
|
71 |
ORDER BY last_bykeyword_update.meta_value ASC
|
72 |
LIMIT " . $limit;
|
73 |
|
74 |
+
$query = $wpdb->prepare($sql, $meta_key_keyword, $meta_key_last_bykeyword_update);
|
75 |
+
$post_ids = $wpdb->get_col($query);
|
76 |
+
}
|
77 |
+
|
78 |
+
if (!$post_ids)
|
79 |
continue;
|
80 |
|
81 |
// update!
|
82 |
+
foreach ($post_ids as $post_id)
|
83 |
{
|
84 |
+
ContentManager::updateByKeyword($post_id, $module_id);
|
85 |
}
|
86 |
}
|
87 |
}
|
88 |
|
89 |
+
public static function priceUpdate()
|
90 |
{
|
91 |
global $wpdb;
|
92 |
|
application/ModuleUpdateVisit.php
CHANGED
@@ -78,6 +78,8 @@ class ModuleUpdateVisit {
|
|
78 |
continue;
|
79 |
|
80 |
$keyword = \get_post_meta($post->ID, ContentManager::META_PREFIX_KEYWORD . $module->getId(), true);
|
|
|
|
|
81 |
if (!$keyword)
|
82 |
continue;
|
83 |
|
78 |
continue;
|
79 |
|
80 |
$keyword = \get_post_meta($post->ID, ContentManager::META_PREFIX_KEYWORD . $module->getId(), true);
|
81 |
+
$keyword = \apply_filters('cegg_keyword_update', $keyword, $post->ID, $module->getId());
|
82 |
+
|
83 |
if (!$keyword)
|
84 |
continue;
|
85 |
|
application/ModuleViewer.php
CHANGED
@@ -124,7 +124,7 @@ class ModuleViewer {
|
|
124 |
return $content;
|
125 |
}
|
126 |
|
127 |
-
public function viewModuleData($module_id, $post_id = null, $params = array())
|
128 |
{
|
129 |
if (!$post_id)
|
130 |
{
|
@@ -224,10 +224,10 @@ class ModuleViewer {
|
|
224 |
else
|
225 |
$btn_text = '';
|
226 |
|
227 |
-
return $tpl_manager->render($template, array('items' => $data, 'title' => $title, 'keyword' => $keyword, 'post_id' => $post_id, 'module_id' => $module_id, 'cols' => $cols, 'disable_features' => $disable_features, 'btn_text' => $btn_text));
|
228 |
}
|
229 |
|
230 |
-
public function viewBlockData(array $module_ids, $post_id = null, $params = array())
|
231 |
{
|
232 |
if (!$post_id)
|
233 |
{
|
@@ -324,7 +324,7 @@ class ModuleViewer {
|
|
324 |
else
|
325 |
$cols = 0;
|
326 |
|
327 |
-
return $tpl_manager->render($params['template'], array('data' => $data, 'post_id' => $post_id, 'params' => $params, 'title' => $title, 'cols' => $cols, 'sort' => $params['sort'], 'order' => $params['order'], 'groups' => $params['groups'], 'btn_text' => $params['btn_text']));
|
328 |
}
|
329 |
|
330 |
private function spliceBlockData($data, $offset, $length)
|
124 |
return $content;
|
125 |
}
|
126 |
|
127 |
+
public function viewModuleData($module_id, $post_id = null, $params = array(), $content = '')
|
128 |
{
|
129 |
if (!$post_id)
|
130 |
{
|
224 |
else
|
225 |
$btn_text = '';
|
226 |
|
227 |
+
return $tpl_manager->render($template, array('items' => $data, 'title' => $title, 'keyword' => $keyword, 'post_id' => $post_id, 'module_id' => $module_id, 'cols' => $cols, 'disable_features' => $disable_features, 'btn_text' => $btn_text, 'atts' => $params, 'content' => $content));
|
228 |
}
|
229 |
|
230 |
+
public function viewBlockData(array $module_ids, $post_id = null, $params = array(), $content = '')
|
231 |
{
|
232 |
if (!$post_id)
|
233 |
{
|
324 |
else
|
325 |
$cols = 0;
|
326 |
|
327 |
+
return $tpl_manager->render($params['template'], array('data' => $data, 'post_id' => $post_id, 'params' => $params, 'title' => $title, 'cols' => $cols, 'sort' => $params['sort'], 'order' => $params['order'], 'groups' => $params['groups'], 'btn_text' => $params['btn_text'], 'atts' => $params, 'content' => $content));
|
328 |
}
|
329 |
|
330 |
private function spliceBlockData($data, $offset, $length)
|
application/Plugin.php
CHANGED
@@ -13,17 +13,23 @@ use ContentEgg\application\components\ExternalFeaturedImage;
|
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
* @link https://www.keywordrush.com
|
16 |
-
* @copyright Copyright ©
|
17 |
*/
|
18 |
class Plugin {
|
19 |
|
20 |
-
const version = '5.
|
21 |
-
const db_version =
|
22 |
const wp_requires = '4.6.1';
|
23 |
const slug = 'content-egg';
|
|
|
|
|
24 |
const api_base = 'https://www.keywordrush.com/api/v1';
|
25 |
const api_base2 = '';
|
26 |
const product_id = 302;
|
|
|
|
|
|
|
|
|
27 |
|
28 |
private static $instance = null;
|
29 |
private static $is_pro = null;
|
@@ -66,32 +72,49 @@ class Plugin {
|
|
66 |
|
67 |
public function registerScripts()
|
68 |
{
|
69 |
-
\wp_register_style('egg-bootstrap', \ContentEgg\PLUGIN_RES . '/bootstrap/css/egg-bootstrap.min.css');
|
70 |
\wp_register_script('bootstrap', \ContentEgg\PLUGIN_RES . '/bootstrap/js/bootstrap.min.js', array('jquery'), null, false);
|
71 |
\wp_register_script('bootstrap-tab', \ContentEgg\PLUGIN_RES . '/bootstrap/js/tab.js', array('jquery'), null, false);
|
|
|
|
|
72 |
\wp_register_style('egg-products', \ContentEgg\PLUGIN_RES . '/css/products.css', array(), '' . Plugin::version());
|
73 |
\wp_register_script('raphaeljs', \ContentEgg\PLUGIN_RES . '/js/morrisjs/raphael.min.js', array('jquery'));
|
74 |
\wp_register_script('morrisjs', \ContentEgg\PLUGIN_RES . '/js/morrisjs/morris.min.js', array('raphaeljs'));
|
75 |
\wp_register_style('morrisjs', \ContentEgg\PLUGIN_RES . '/js/morrisjs/morris.min.css');
|
76 |
}
|
77 |
|
78 |
-
static
|
79 |
{
|
80 |
return self::version;
|
81 |
}
|
82 |
|
83 |
-
static
|
|
|
|
|
|
|
|
|
|
|
84 |
{
|
85 |
return self::slug;
|
86 |
}
|
87 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
public static function getApiBase()
|
89 |
{
|
90 |
return self::api_base;
|
91 |
}
|
92 |
|
93 |
public static function isFree()
|
94 |
-
{
|
95 |
return !self::isPro();
|
96 |
}
|
97 |
|
@@ -111,7 +134,9 @@ class Plugin {
|
|
111 |
{
|
112 |
if (self::$is_envato === null)
|
113 |
{
|
114 |
-
if (
|
|
|
|
|
115 |
self::$is_envato = true;
|
116 |
else
|
117 |
self::$is_envato = false;
|
@@ -145,7 +170,7 @@ class Plugin {
|
|
145 |
{
|
146 |
$response = \wp_remote_post($api_url, $params);
|
147 |
if (\is_wp_error($response))
|
148 |
-
continue;
|
149 |
|
150 |
$response_code = (int) \wp_remote_retrieve_response_code($response);
|
151 |
if ($response_code == 200)
|
@@ -185,7 +210,7 @@ class Plugin {
|
|
185 |
|
186 |
public static function pluginSiteUrl()
|
187 |
{
|
188 |
-
return self::getPluginDomain() . 'contentegg';
|
189 |
}
|
190 |
|
191 |
public static function pluginDocsUrl()
|
@@ -195,7 +220,7 @@ class Plugin {
|
|
195 |
|
196 |
public function registerAmpStyles()
|
197 |
{
|
198 |
-
echo '.egg-container table td{padding:0} .egg-container .btn,.egg-container .cegg-price{white-space:nowrap;font-weight:700}.cegg-couponcode,.cegg-gridbox a{text-decoration:none}.egg-container .cegg-gridbox{box-shadow:0 8px 16px -6px #eee;border:1px solid #ddd;margin-bottom:25px;padding:20px}.egg-container .egg-listcontainer .row-products>div{margin-bottom:12px}.egg-container .btn{display:inline-block;padding:7px 14px;margin-bottom:0;font-size:14px;line-height:1.42857143;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.egg-container .btn-
|
199 |
}
|
200 |
|
201 |
}
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
* @link https://www.keywordrush.com
|
16 |
+
* @copyright Copyright © 2021 keywordrush.com
|
17 |
*/
|
18 |
class Plugin {
|
19 |
|
20 |
+
const version = '5.2.0';
|
21 |
+
const db_version = 53;
|
22 |
const wp_requires = '4.6.1';
|
23 |
const slug = 'content-egg';
|
24 |
+
const short_slug = 'cegg';
|
25 |
+
const name = 'Content Egg';
|
26 |
const api_base = 'https://www.keywordrush.com/api/v1';
|
27 |
const api_base2 = '';
|
28 |
const product_id = 302;
|
29 |
+
const website = 'https://www.keywordrush.com';
|
30 |
+
const supportUri = 'https://www.keywordrush.com/contact';
|
31 |
+
const panelUri = 'https://www.keywordrush.com/panel';
|
32 |
+
|
33 |
|
34 |
private static $instance = null;
|
35 |
private static $is_pro = null;
|
72 |
|
73 |
public function registerScripts()
|
74 |
{
|
75 |
+
\wp_register_style('egg-bootstrap', \ContentEgg\PLUGIN_RES . '/bootstrap/css/egg-bootstrap.min.css', array(), '' . Plugin::version());
|
76 |
\wp_register_script('bootstrap', \ContentEgg\PLUGIN_RES . '/bootstrap/js/bootstrap.min.js', array('jquery'), null, false);
|
77 |
\wp_register_script('bootstrap-tab', \ContentEgg\PLUGIN_RES . '/bootstrap/js/tab.js', array('jquery'), null, false);
|
78 |
+
\wp_register_script('bootstrap-tooltip', \ContentEgg\PLUGIN_RES . '/bootstrap/js/tooltip.js', array('jquery'), null, false);
|
79 |
+
\wp_register_script('bootstrap-popover', \ContentEgg\PLUGIN_RES . '/bootstrap/js/popover.js', array('bootstrap-tooltip'), null, false);
|
80 |
\wp_register_style('egg-products', \ContentEgg\PLUGIN_RES . '/css/products.css', array(), '' . Plugin::version());
|
81 |
\wp_register_script('raphaeljs', \ContentEgg\PLUGIN_RES . '/js/morrisjs/raphael.min.js', array('jquery'));
|
82 |
\wp_register_script('morrisjs', \ContentEgg\PLUGIN_RES . '/js/morrisjs/morris.min.js', array('raphaeljs'));
|
83 |
\wp_register_style('morrisjs', \ContentEgg\PLUGIN_RES . '/js/morrisjs/morris.min.css');
|
84 |
}
|
85 |
|
86 |
+
public static function version()
|
87 |
{
|
88 |
return self::version;
|
89 |
}
|
90 |
|
91 |
+
public static function slug()
|
92 |
+
{
|
93 |
+
return self::getSlug();
|
94 |
+
}
|
95 |
+
|
96 |
+
public static function getSlug()
|
97 |
{
|
98 |
return self::slug;
|
99 |
}
|
100 |
|
101 |
+
public static function getShortSlug()
|
102 |
+
{
|
103 |
+
return self::short_slug;
|
104 |
+
}
|
105 |
+
|
106 |
+
public static function getName()
|
107 |
+
{
|
108 |
+
return self::name;
|
109 |
+
}
|
110 |
+
|
111 |
public static function getApiBase()
|
112 |
{
|
113 |
return self::api_base;
|
114 |
}
|
115 |
|
116 |
public static function isFree()
|
117 |
+
{
|
118 |
return !self::isPro();
|
119 |
}
|
120 |
|
134 |
{
|
135 |
if (self::$is_envato === null)
|
136 |
{
|
137 |
+
if (isset($_SERVER['KEYWORDRUSH_DEVELOPMENT']) && $_SERVER['KEYWORDRUSH_DEVELOPMENT'] == '16203273895503427')
|
138 |
+
self::$is_envato = false;
|
139 |
+
elseif (class_exists("\\ContentEgg\\application\\admin\\EnvatoConfig", true) || \get_option(Plugin::slug . '_env_install'))
|
140 |
self::$is_envato = true;
|
141 |
else
|
142 |
self::$is_envato = false;
|
170 |
{
|
171 |
$response = \wp_remote_post($api_url, $params);
|
172 |
if (\is_wp_error($response))
|
173 |
+
continue;
|
174 |
|
175 |
$response_code = (int) \wp_remote_retrieve_response_code($response);
|
176 |
if ($response_code == 200)
|
210 |
|
211 |
public static function pluginSiteUrl()
|
212 |
{
|
213 |
+
return self::getPluginDomain() . 'contentegg?utm_source=cegg&utm_medium=referral&utm_campaign=plugin';
|
214 |
}
|
215 |
|
216 |
public static function pluginDocsUrl()
|
220 |
|
221 |
public function registerAmpStyles()
|
222 |
{
|
223 |
+
echo '.egg-container table td{padding:0} .egg-container .btn,.egg-container .cegg-price{white-space:nowrap;font-weight:700}.cegg-couponcode,.cegg-gridbox a{text-decoration:none}.egg-container .cegg-gridbox{box-shadow:0 8px 16px -6px #eee;border:1px solid #ddd;margin-bottom:25px;padding:20px}.egg-container .egg-listcontainer .row-products>div{margin-bottom:12px}.egg-container .btn{display:inline-block;padding:7px 14px;margin-bottom:0;font-size:14px;line-height:1.42857143;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.egg-container .btn-danger{color:#fff;background-color:#5cb85c;border-color:#4cae4c;text-decoration:none}.egg-container .panel-default{border:1px solid #ddd;padding:20px}.cegg-price-alert-wrap,.cegg-price-tracker-item div[id$=chart]{display:none}.cegg-price-tracker-panel .btn{margin-bottom:6px}.egg-container .cegg-no-top-margin{margin-top:0}.egg-container .cegg-mb5{margin-bottom:5px}.egg-container .cegg-mb10{margin-bottom:10px}.egg-container .cegg-mb15{margin-bottom:15px}.egg-container .cegg-mb20{margin-bottom:20px}.egg-container .cegg-mb25{margin-bottom:25px}.egg-container .cegg-mb30{margin-bottom:30px}.egg-container .cegg-mb35{margin-bottom:35px}.egg-container .cegg-lineh-20{line-height:20px}.egg-container .cegg-mr10{margin-right:10px}.egg-container .cegg-mr5{margin-right:5px}.egg-container .btn.cegg-btn-big{padding:13px 60px;line-height:1;font-size:20px;font-weight:700}.cegg-couponcode{text-align:center;background:#efffda;padding:8px;display:block;border:2px dashed #5cb85c;margin-bottom:12px}.cegg-bordered-box{border:2px solid #ededed;padding:25px}.cegg-price-tracker-item .cegg-price{font-size:22px;font-weight:700}.egg-list-coupons .btn{font-size:16px;font-weight:700;display:block}.cegg-listlogo-title{line-height:18px;font-size:15px}.cegg-list-withlogos .cegg-price,.egg-listcontainer .cegg-price{font-weight:700;font-size:20px;color:#5aaf0b}.egg-container .cegg-list-withlogos .btn{font-weight:700;font-size:15px;padding:8px 16px}.cegg-price-row strike{opacity:.42;font-size:90%}.cegg-list-logo-title{font-weight:700;font-size:17px}.egg-container .cegg-btn-grid .btn{display:block;margin-bottom:10px}#cegg_market .cegg-image-container img{max-height:350px}.cegg-review-block{padding:20px;border:1px solid #eee}.cegg-line-hr{clear:both;border-top:1px solid #eee;height:1px}.amp-wp-article-content .cegg-btn-row amp-img,.amp-wp-article-content .cegg-desc-cell amp-img,.amp-wp-article-content .cegg-price-tracker-panel .cegg-mb5 amp-img,.amp-wp-article-content .producttitle amp-img{display:inline-block;margin:0 4px 0 0;vertical-align:middle}.egg-container .cegg-promotion{top:25px;left:0;position:absolute;z-index:10}.egg-container .cegg-discount{background-color:#eb5e58;border-radius:0 4px 4px 0;color:#fff;display:inline-block;font-size:16px;padding:3px 5px}.cegg-thumb{position:relative} @media (max-width: 767px) {.egg-container .hidden-xs {display: none !important;}} .egg-container .visible-xs {display: none !important;} @media (max-width: 767px) {.egg-container .visible-xs {display: block !important;}}';
|
224 |
}
|
225 |
|
226 |
}
|
application/PriceAlert.php
CHANGED
@@ -16,8 +16,8 @@ use ContentEgg\application\admin\GeneralConfig;
|
|
16 |
* PriceAlert class file
|
17 |
*
|
18 |
* @author keywordrush.com <support@keywordrush.com>
|
19 |
-
* @link
|
20 |
-
* @copyright Copyright ©
|
21 |
*/
|
22 |
class PriceAlert {
|
23 |
|
@@ -56,7 +56,7 @@ class PriceAlert {
|
|
56 |
|
57 |
public function registerJs()
|
58 |
{
|
59 |
-
\wp_enqueue_script('cegg-price-alert', \ContentEgg\PLUGIN_RES . '/js/price_alert.js', array('jquery'));
|
60 |
\wp_localize_script('cegg-price-alert', 'ceggPriceAlert', array(
|
61 |
'ajaxurl' => \admin_url('admin-ajax.php'),
|
62 |
'nonce' => \wp_create_nonce('cegg-price-alert')
|
@@ -148,20 +148,37 @@ class PriceAlert {
|
|
148 |
), \get_permalink($alert['post_id']));
|
149 |
$uri .= '#' . urlencode($alert['unique_id']);
|
150 |
|
151 |
-
$
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
|
157 |
$body .= $this->getEmailSignature();
|
158 |
-
|
159 |
self::mail($email, $subject, $body);
|
160 |
}
|
161 |
|
162 |
private function getEmailSignature()
|
163 |
{
|
164 |
-
|
|
|
|
|
|
|
165 |
}
|
166 |
|
167 |
private function jsonResult($message, $status = 'success')
|
@@ -266,10 +283,10 @@ class PriceAlert {
|
|
266 |
public function tickboxInlineScript()
|
267 |
{
|
268 |
echo '<script>
|
269 |
-
jQuery(window).load
|
270 |
{
|
271 |
-
jQuery("body").append("<div style=\"display:none;\" id=\"cegg-price-alert-tickbox\"><p>' . \esc_js($this->tickbox_message) . '<div style=\"text-align:center; padding-top: 30px;padding-right: 20px;\"><input value=\"' . esc_js(__(' Ok ', 'content-egg-tpl')) . '\" type=\"button\" onclick=\"javascript:tb_remove()\"></div></p></div>");
|
272 |
-
tb_show("' . esc_js($this->tickbox_subject) . '", "
|
273 |
});</script>';
|
274 |
}
|
275 |
|
@@ -316,23 +333,25 @@ class PriceAlert {
|
|
316 |
if (!$previous_price || (float) $previous_price <= (float) $d['price']) //!!!!!
|
317 |
continue;
|
318 |
|
319 |
-
|
320 |
-
$
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
|
|
325 |
continue;
|
326 |
|
327 |
-
|
|
|
|
|
|
|
328 |
$this->sendAlertEmails($subscribers, $d, $post_id);
|
329 |
}
|
330 |
|
331 |
// clean up & optimize
|
332 |
if ($total && rand(1, 5) == 5)
|
333 |
-
{
|
334 |
PriceAlertModel::model()->cleanOld(PriceAlertModel::CLEAN_DELETED_DAYS);
|
335 |
-
}
|
336 |
}
|
337 |
|
338 |
private function sendAlertEmails($alerts, $product, $post_id)
|
@@ -356,20 +375,39 @@ class PriceAlert {
|
|
356 |
$saved_amount = TemplateHelper::formatPriceCurrency($saved_amount, $product['currencyCode']);
|
357 |
$saved_percentage = round(100 - (100 * $product['price']) / $alert['start_price'], 2);
|
358 |
|
359 |
-
$
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
373 |
$body .= $this->getEmailSignature();
|
374 |
|
375 |
// send alert email
|
@@ -389,7 +427,6 @@ class PriceAlert {
|
|
389 |
|
390 |
if (!GeneralConfig::getInstance()->option('price_alert_enabled'))
|
391 |
return false;
|
392 |
-
//get_option( 'wp_page_for_privacy_policy' )
|
393 |
|
394 |
if ($unique_id && $module_id)
|
395 |
{
|
@@ -399,4 +436,9 @@ class PriceAlert {
|
|
399 |
return true;
|
400 |
}
|
401 |
|
|
|
|
|
|
|
|
|
|
|
402 |
}
|
16 |
* PriceAlert class file
|
17 |
*
|
18 |
* @author keywordrush.com <support@keywordrush.com>
|
19 |
+
* @link https://www.keywordrush.com
|
20 |
+
* @copyright Copyright © 2021 keywordrush.com
|
21 |
*/
|
22 |
class PriceAlert {
|
23 |
|
56 |
|
57 |
public function registerJs()
|
58 |
{
|
59 |
+
\wp_enqueue_script('cegg-price-alert', \ContentEgg\PLUGIN_RES . '/js/price_alert.js', array('jquery'), Plugin::version());
|
60 |
\wp_localize_script('cegg-price-alert', 'ceggPriceAlert', array(
|
61 |
'ajaxurl' => \admin_url('admin-ajax.php'),
|
62 |
'nonce' => \wp_create_nonce('cegg-price-alert')
|
148 |
), \get_permalink($alert['post_id']));
|
149 |
$uri .= '#' . urlencode($alert['unique_id']);
|
150 |
|
151 |
+
if ($template = GeneralConfig::getInstance()->option('email_template_activation'))
|
152 |
+
{
|
153 |
+
$tags = array(
|
154 |
+
'%POST_ID%' => $alert['post_id'],
|
155 |
+
'%POST_URL%' => \get_permalink($alert['post_id']),
|
156 |
+
'%POST_TITLE%' => \get_the_title($alert['post_id']),
|
157 |
+
'%PRODUCT_TITLE%' => $product_title,
|
158 |
+
'%VALIDATE_URL%' => \esc_url($uri),
|
159 |
+
'%UNSUBSCRIBE_URL%' => $unsubscribe_url,
|
160 |
+
);
|
161 |
+
$body = self::buildTemplate($template, $tags);
|
162 |
+
} else
|
163 |
+
{
|
164 |
+
$body = '<p>' . __('Hello,', 'content-egg-tpl') . '<br></p>';
|
165 |
+
$body .= '<p>' . sprintf(__('You have successfully set a price drop alert for %s.', 'content-egg-tpl'), $product_title) . '</p>';
|
166 |
+
$body .= '<p>' . __('We will not send you any price alerts until you verified your email address.', 'content-egg-tpl');
|
167 |
+
$body .= ' ' . sprintf(__('Please open this link to validate your email address:<br> <a href="%s">%s</a>', 'content-egg-tpl'), \esc_url($uri), \esc_url($uri)) . '</p>';
|
168 |
+
$body .= '<p>' . sprintf(__('If you don\'t want to receive any price alerts from us in the future, <a href="%s">please click here</a>.', 'content-egg-tpl'), $unsubscribe_url) . '</p>';
|
169 |
+
}
|
170 |
|
171 |
$body .= $this->getEmailSignature();
|
172 |
+
|
173 |
self::mail($email, $subject, $body);
|
174 |
}
|
175 |
|
176 |
private function getEmailSignature()
|
177 |
{
|
178 |
+
if ($signature = GeneralConfig::getInstance()->option('email_signature'))
|
179 |
+
return $signature;
|
180 |
+
else
|
181 |
+
return "<pre class=\"moz-signature\" cols=\"72\">--\r\n" . sprintf(__('Thank You,', 'content-egg-tpl') . "\r\n" . __('The %s Team', 'content-egg-tpl') . "\r\n%s", \get_bloginfo('name'), \get_home_url()) . "</pre>";
|
182 |
}
|
183 |
|
184 |
private function jsonResult($message, $status = 'success')
|
283 |
public function tickboxInlineScript()
|
284 |
{
|
285 |
echo '<script>
|
286 |
+
jQuery(window).on("load", function()
|
287 |
{
|
288 |
+
jQuery("body").append("<div style=\"display:none;\" id=\"cegg-price-alert-tickbox\"><p>' . \esc_js($this->tickbox_message) . '<div style=\"text-align:center; padding-top: 30px;padding-right: 20px;\"><input value=\"' . \esc_js(__(' Ok ', 'content-egg-tpl')) . '\" type=\"button\" onclick=\"javascript:tb_remove()\"></div></p></div>");
|
289 |
+
tb_show("' . \esc_js($this->tickbox_subject) . '", "/?TB_inline&height=200&width=300&inlineId=cegg-price-alert-tickbox", false);
|
290 |
});</script>';
|
291 |
}
|
292 |
|
333 |
if (!$previous_price || (float) $previous_price <= (float) $d['price']) //!!!!!
|
334 |
continue;
|
335 |
|
336 |
+
$price_alert_mode = GeneralConfig::getInstance()->option('price_alert_mode');
|
337 |
+
if ($price_alert_mode == 'post')
|
338 |
+
$where = array('post_id=%s AND status=%d AND price >= %f', array($post_id, PriceAlertModel::STATUS_ACTIVE, $d['price']));
|
339 |
+
else
|
340 |
+
$where = array('unique_id=%s AND module_id=%s AND status=%d AND price >= %f', array($d['unique_id'], $module_id, PriceAlertModel::STATUS_ACTIVE, $d['price']));
|
341 |
+
|
342 |
+
if (!$subscribers = PriceAlertModel::model()->findAll(array('where' => $where)))
|
343 |
continue;
|
344 |
|
345 |
+
// remove dublicates by email column
|
346 |
+
$subscribers = array_reverse(array_values(array_column(array_reverse($subscribers), null, 'email')));
|
347 |
+
|
348 |
+
$total += count($subscribers);
|
349 |
$this->sendAlertEmails($subscribers, $d, $post_id);
|
350 |
}
|
351 |
|
352 |
// clean up & optimize
|
353 |
if ($total && rand(1, 5) == 5)
|
|
|
354 |
PriceAlertModel::model()->cleanOld(PriceAlertModel::CLEAN_DELETED_DAYS);
|
|
|
355 |
}
|
356 |
|
357 |
private function sendAlertEmails($alerts, $product, $post_id)
|
375 |
$saved_amount = TemplateHelper::formatPriceCurrency($saved_amount, $product['currencyCode']);
|
376 |
$saved_percentage = round(100 - (100 * $product['price']) / $alert['start_price'], 2);
|
377 |
|
378 |
+
if ($template = GeneralConfig::getInstance()->option('email_template_alert'))
|
379 |
+
{
|
380 |
+
$tags = array(
|
381 |
+
'%POST_ID%' => $post_id,
|
382 |
+
'%POST_URL%' => $post_url,
|
383 |
+
'%POST_TITLE%' => \get_the_title($post_id),
|
384 |
+
'%PRODUCT_TITLE%' => $product_title,
|
385 |
+
'%SAVED_AMOUNT%' => $saved_amount,
|
386 |
+
'%SAVED_PERCENTAGE%' => $saved_percentage,
|
387 |
+
'%DESIRED_PRICE%' => $desired_price,
|
388 |
+
'%CURRENT_PRICE%' => $current_price,
|
389 |
+
'%START_PRICE%' => $start_price,
|
390 |
+
'%UPDATE_DATE%' => TemplateHelper::getLastUpdateFormatted($alert['module_id'], $post_id),
|
391 |
+
'%UNSUBSCRIBE_URL%' => $unsubscribe_url,
|
392 |
+
);
|
393 |
+
$body = self::buildTemplate($template, $tags);
|
394 |
+
} else
|
395 |
+
{
|
396 |
+
$body = '<p>' . __('Good news!', 'content-egg-tpl') . '<br></p>';
|
397 |
+
$body .= '<p>' . __('The price target you set for the item has been reached.', 'content-egg-tpl');
|
398 |
+
$body .= '<p>' . sprintf(__('<a href="%s">Save %s (%s%%) on %s</a>', 'content-egg-tpl'), $post_url, $saved_amount, $saved_percentage, $product_title);
|
399 |
+
$body .= '<ul>';
|
400 |
+
$body .= '<li>' . sprintf(__('Desired Price: %s', 'content-egg-tpl'), $desired_price) . '</li>';
|
401 |
+
$body .= '<li>' . sprintf(__('Current Price: <strong>%s</strong>', 'content-egg-tpl'), $current_price)
|
402 |
+
. ' (' . __('as of', 'content-egg-tpl') . ' ' . TemplateHelper::getLastUpdateFormatted($alert['module_id'], $post_id) . ')</li>';
|
403 |
+
$body .= '<li>' . sprintf(__('Price dropped from %s to %s', 'content-egg-tpl'), $start_price, $current_price) . '</li>';
|
404 |
+
$body .= '</ul><br>';
|
405 |
+
$body .= sprintf(__('<a href="%s">More info...</a>', 'content-egg-tpl'), $post_url);
|
406 |
+
$body .= '</p><br>';
|
407 |
+
|
408 |
+
$body .= '<p>' . sprintf(__('This present alert has now expired. You may <a href="%s">create a new alert</a> for this item.', 'content-egg-tpl'), $post_url);
|
409 |
+
$body .= '<br>' . sprintf(__('If you don\'t want to receive any price alerts from us in the future, <a href="%s">please click here</a>.', 'content-egg-tpl'), $unsubscribe_url) . '</p>';
|
410 |
+
}
|
411 |
$body .= $this->getEmailSignature();
|
412 |
|
413 |
// send alert email
|
427 |
|
428 |
if (!GeneralConfig::getInstance()->option('price_alert_enabled'))
|
429 |
return false;
|
|
|
430 |
|
431 |
if ($unique_id && $module_id)
|
432 |
{
|
436 |
return true;
|
437 |
}
|
438 |
|
439 |
+
public static function buildTemplate($template, array $tags)
|
440 |
+
{
|
441 |
+
return str_ireplace(array_keys($tags), array_values($tags), $template);
|
442 |
+
}
|
443 |
+
|
444 |
}
|
application/ProductSearch.php
CHANGED
@@ -10,14 +10,14 @@ use ContentEgg\application\components\ModuleManager;
|
|
10 |
use ContentEgg\application\helpers\TextHelper;
|
11 |
use ContentEgg\application\ModuleViewer;
|
12 |
use ContentEgg\application\components\ContentManager;
|
13 |
-
use ContentEgg\application\
|
14 |
|
15 |
/**
|
16 |
* ProductSearch class file
|
17 |
*
|
18 |
* @author keywordrush.com <support@keywordrush.com>
|
19 |
-
* @link
|
20 |
-
* @copyright Copyright ©
|
21 |
*/
|
22 |
class ProductSearch extends VirtualPage {
|
23 |
|
@@ -71,7 +71,7 @@ class ProductSearch extends VirtualPage {
|
|
71 |
if ($total)
|
72 |
return GeneralConfig::getInstance()->option('search_page_tpl');
|
73 |
else
|
74 |
-
return
|
75 |
}
|
76 |
|
77 |
public function getTemplate()
|
@@ -116,7 +116,7 @@ class ProductSearch extends VirtualPage {
|
|
116 |
|
117 |
public function getTitle()
|
118 |
{
|
119 |
-
return sprintf(
|
120 |
}
|
121 |
|
122 |
}
|
10 |
use ContentEgg\application\helpers\TextHelper;
|
11 |
use ContentEgg\application\ModuleViewer;
|
12 |
use ContentEgg\application\components\ContentManager;
|
13 |
+
use ContentEgg\application\Translator;
|
14 |
|
15 |
/**
|
16 |
* ProductSearch class file
|
17 |
*
|
18 |
* @author keywordrush.com <support@keywordrush.com>
|
19 |
+
* @link https://www.keywordrush.com
|
20 |
+
* @copyright Copyright © 2021 keywordrush.com
|
21 |
*/
|
22 |
class ProductSearch extends VirtualPage {
|
23 |
|
71 |
if ($total)
|
72 |
return GeneralConfig::getInstance()->option('search_page_tpl');
|
73 |
else
|
74 |
+
return Translator::translate('Sorry. No products found.');
|
75 |
}
|
76 |
|
77 |
public function getTemplate()
|
116 |
|
117 |
public function getTitle()
|
118 |
{
|
119 |
+
return sprintf(Translator::translate('Search Results for "%s"'), $this->keyword);
|
120 |
}
|
121 |
|
122 |
}
|
application/Translator.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
use ContentEgg\application\admin\GeneralConfig;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Translator class file
|
11 |
+
*
|
12 |
+
* @author keywordrush.com <support@keywordrush.com>
|
13 |
+
* @link https://www.keywordrush.com
|
14 |
+
* @copyright Copyright © 2021 keywordrush.com
|
15 |
+
*/
|
16 |
+
class Translator {
|
17 |
+
|
18 |
+
private static $pairs = array();
|
19 |
+
|
20 |
+
public static function __($str)
|
21 |
+
{
|
22 |
+
return self::translate($str);
|
23 |
+
}
|
24 |
+
|
25 |
+
public static function translate($str)
|
26 |
+
{
|
27 |
+
$texts = GeneralConfig::getInstance()->option('frontend_texts');
|
28 |
+
if (!empty($texts[$str]))
|
29 |
+
return $texts[$str];
|
30 |
+
else
|
31 |
+
return __($str, 'content-egg-tpl');
|
32 |
+
}
|
33 |
+
}
|
application/WooIntegrator.php
CHANGED
@@ -12,13 +12,14 @@ use ContentEgg\application\admin\GeneralConfig;
|
|
12 |
use ContentEgg\application\components\ModuleManager;
|
13 |
use ContentEgg\application\helpers\TemplateHelper;
|
14 |
use ContentEgg\application\components\ContentProduct;
|
|
|
15 |
|
16 |
/**
|
17 |
* WooIntegrator class file
|
18 |
*
|
19 |
* @author keywordrush.com <support@keywordrush.com>
|
20 |
* @link https://www.keywordrush.com
|
21 |
-
* @copyright Copyright ©
|
22 |
*/
|
23 |
class WooIntegrator {
|
24 |
|
@@ -122,6 +123,8 @@ class WooIntegrator {
|
|
122 |
{
|
123 |
if (!$product = \wc_get_product($post_id))
|
124 |
return false;
|
|
|
|
|
125 |
|
126 |
// set price
|
127 |
if (!empty($item['price']))
|
@@ -180,7 +183,7 @@ class WooIntegrator {
|
|
180 |
$product->set_stock_status('instock');
|
181 |
}
|
182 |
|
183 |
-
if ($item['description'] && !\apply_filters('cegg_disable_description_sync', false))
|
184 |
{
|
185 |
if (\apply_filters('cegg_sync_full_description', false))
|
186 |
$product->set_description($item['description']);
|
@@ -538,7 +541,7 @@ class WooIntegrator {
|
|
538 |
|
539 |
$date = TemplateHelper::dateFormatFromGmt($item['last_update'], true);
|
540 |
|
541 |
-
echo '<span class="price_updated">' . sprintf(__('Last updated on %s'
|
542 |
}
|
543 |
}
|
544 |
|
@@ -557,7 +560,7 @@ class WooIntegrator {
|
|
557 |
if (empty($item['extra']['pricePerUnitDisplay']))
|
558 |
return;
|
559 |
|
560 |
-
echo '<div class="cegg_price_per_unit">' . sprintf(__('Price per unit: %s'
|
561 |
}
|
562 |
}
|
563 |
|
12 |
use ContentEgg\application\components\ModuleManager;
|
13 |
use ContentEgg\application\helpers\TemplateHelper;
|
14 |
use ContentEgg\application\components\ContentProduct;
|
15 |
+
use ContentEgg\application\Translator;
|
16 |
|
17 |
/**
|
18 |
* WooIntegrator class file
|
19 |
*
|
20 |
* @author keywordrush.com <support@keywordrush.com>
|
21 |
* @link https://www.keywordrush.com
|
22 |
+
* @copyright Copyright © 2021 keywordrush.com
|
23 |
*/
|
24 |
class WooIntegrator {
|
25 |
|
123 |
{
|
124 |
if (!$product = \wc_get_product($post_id))
|
125 |
return false;
|
126 |
+
|
127 |
+
$item = \apply_filters('cegg_before_woo_sync', $item, $module_id, $post_id);
|
128 |
|
129 |
// set price
|
130 |
if (!empty($item['price']))
|
183 |
$product->set_stock_status('instock');
|
184 |
}
|
185 |
|
186 |
+
if ($item['description'] && !$product->get_description() && !\apply_filters('cegg_disable_description_sync', false))
|
187 |
{
|
188 |
if (\apply_filters('cegg_sync_full_description', false))
|
189 |
$product->set_description($item['description']);
|
541 |
|
542 |
$date = TemplateHelper::dateFormatFromGmt($item['last_update'], true);
|
543 |
|
544 |
+
echo '<span class="price_updated">' . sprintf(Translator::__('Last updated on %s'), $date) . '</span>';
|
545 |
}
|
546 |
}
|
547 |
|
560 |
if (empty($item['extra']['pricePerUnitDisplay']))
|
561 |
return;
|
562 |
|
563 |
+
echo '<div class="cegg_price_per_unit">' . sprintf(Translator::__('Price per unit: %s'), $item['extra']['pricePerUnitDisplay']) . '</div>';
|
564 |
}
|
565 |
}
|
566 |
|
application/admin/AdminNotice.php
CHANGED
@@ -27,7 +27,7 @@ class AdminNotice {
|
|
27 |
'autoblog_csv_file_error' => __('Error while handling file with keywords.', 'content-egg'),
|
28 |
'autoblog_batch_created' => __('Tasks for autoblogging are saved.', 'content-egg') . ' %%ID%%.',
|
29 |
'license_reset_error' => __('License can\'t be deactivated. Write to support of plugin.', 'content-egg'),
|
30 |
-
'license_reset_success' => __('
|
31 |
);
|
32 |
}
|
33 |
|
27 |
'autoblog_csv_file_error' => __('Error while handling file with keywords.', 'content-egg'),
|
28 |
'autoblog_batch_created' => __('Tasks for autoblogging are saved.', 'content-egg') . ' %%ID%%.',
|
29 |
'license_reset_error' => __('License can\'t be deactivated. Write to support of plugin.', 'content-egg'),
|
30 |
+
'license_reset_success' => __('The license has been deactivated.', 'content-egg') . ' ' . __('You must deactivate and delete Content Egg from your current domain to use plugin on a new domain.', 'content-egg'),
|
31 |
);
|
32 |
}
|
33 |
|
application/admin/AutoblogController.php
CHANGED
@@ -64,7 +64,7 @@ class AutoblogController {
|
|
64 |
|
65 |
if ($GLOBALS['pagenow'] == 'admin.php' && !empty($_GET['page']) && $_GET['page'] == 'content-egg-autoblog-edit')
|
66 |
{
|
67 |
-
\wp_enqueue_script('contentegg-keywords', \ContentEgg\PLUGIN_RES . '/js/keywords.js', array('jquery'), '
|
68 |
// tabs
|
69 |
\wp_enqueue_script('jquery-ui-tabs');
|
70 |
\wp_enqueue_script('jquery-ui-button');
|
64 |
|
65 |
if ($GLOBALS['pagenow'] == 'admin.php' && !empty($_GET['page']) && $_GET['page'] == 'content-egg-autoblog-edit')
|
66 |
{
|
67 |
+
\wp_enqueue_script('contentegg-keywords', \ContentEgg\PLUGIN_RES . '/js/keywords.js', array('jquery'), '' . Plugin::version());
|
68 |
// tabs
|
69 |
\wp_enqueue_script('jquery-ui-tabs');
|
70 |
\wp_enqueue_script('jquery-ui-button');
|
application/admin/AutoblogTable.php
CHANGED
@@ -64,9 +64,9 @@ class AutoblogTable extends MyListTable {
|
|
64 |
function column_status($item)
|
65 |
{
|
66 |
if ($item['status'])
|
67 |
-
return '<span style="color:green">' . __('
|
68 |
else
|
69 |
-
return '<span style="color:red">' . __('
|
70 |
}
|
71 |
|
72 |
function column_keywords($item)
|
64 |
function column_status($item)
|
65 |
{
|
66 |
if ($item['status'])
|
67 |
+
return '<span style="color:green">' . __('Enabled', 'content-egg') . '</span>';
|
68 |
else
|
69 |
+
return '<span style="color:red">' . __('Disabled', 'content-egg') . '</span>';
|
70 |
}
|
71 |
|
72 |
function column_keywords($item)
|
application/admin/EggMetabox.php
CHANGED
@@ -60,7 +60,6 @@ class EggMetabox {
|
|
60 |
|
61 |
$title .= ' <a target="_blank" href="' . Plugin::pluginDocsUrl() . '">' . __('user guide', 'content-egg') . '</a>';
|
62 |
|
63 |
-
|
64 |
\add_meta_box('content_meta_box', $title, array($this, 'renderMetabox'), $post_type, 'normal', 'high');
|
65 |
$this->angularInit();
|
66 |
}
|
@@ -177,7 +176,7 @@ class EggMetabox {
|
|
177 |
private function angularInit()
|
178 |
{
|
179 |
// Justified gallery jquery plugin
|
180 |
-
\wp_enqueue_script('justified-gallery', \ContentEgg\PLUGIN_RES . '/justified_gallery/jquery.justifiedGallery.min.js', array('jquery'), Plugin::version);
|
181 |
\wp_enqueue_style('justified-gallery', \ContentEgg\PLUGIN_RES . '/justified_gallery/justifiedGallery.min.css');
|
182 |
|
183 |
// Angular core
|
@@ -188,12 +187,13 @@ class EggMetabox {
|
|
188 |
\wp_enqueue_script('angular-ui-bootstrap', \ContentEgg\PLUGIN_RES . '/app/vendor/angular-ui-bootstrap/ui-bootstrap-tpls-2.5.0.min.js', array('angularjs'), Plugin::version);
|
189 |
|
190 |
\wp_enqueue_script('angular-sortable', \ContentEgg\PLUGIN_RES . '/app/vendor/angular-sortable.js', array('angularjs', 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-mouse', 'jquery-ui-sortable'), Plugin::version);
|
191 |
-
\wp_register_script('contentegg-metabox-app', \ContentEgg\PLUGIN_RES . '/app/app.js', array('angularjs'), Plugin::version);
|
192 |
-
\wp_enqueue_script('contentegg-metabox-service', \ContentEgg\PLUGIN_RES . '/app/ModuleService.js', array('contentegg-metabox-app'), Plugin::version);
|
193 |
|
194 |
// Bootstrap
|
195 |
-
\wp_enqueue_style('egg-bootstrap', \ContentEgg\PLUGIN_RES . '/bootstrap/css/egg-bootstrap.css');
|
196 |
-
\
|
|
|
197 |
|
198 |
// ContentEgg application params
|
199 |
$this->addAppParam('active_modules', ModuleManager::getInstance()->getModulesIdList(true));
|
60 |
|
61 |
$title .= ' <a target="_blank" href="' . Plugin::pluginDocsUrl() . '">' . __('user guide', 'content-egg') . '</a>';
|
62 |
|
|
|
63 |
\add_meta_box('content_meta_box', $title, array($this, 'renderMetabox'), $post_type, 'normal', 'high');
|
64 |
$this->angularInit();
|
65 |
}
|
176 |
private function angularInit()
|
177 |
{
|
178 |
// Justified gallery jquery plugin
|
179 |
+
\wp_enqueue_script('justified-gallery', \ContentEgg\PLUGIN_RES . '/justified_gallery/jquery.justifiedGallery.min.js', array('jquery'), Plugin::version());
|
180 |
\wp_enqueue_style('justified-gallery', \ContentEgg\PLUGIN_RES . '/justified_gallery/justifiedGallery.min.css');
|
181 |
|
182 |
// Angular core
|
187 |
\wp_enqueue_script('angular-ui-bootstrap', \ContentEgg\PLUGIN_RES . '/app/vendor/angular-ui-bootstrap/ui-bootstrap-tpls-2.5.0.min.js', array('angularjs'), Plugin::version);
|
188 |
|
189 |
\wp_enqueue_script('angular-sortable', \ContentEgg\PLUGIN_RES . '/app/vendor/angular-sortable.js', array('angularjs', 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-mouse', 'jquery-ui-sortable'), Plugin::version);
|
190 |
+
\wp_register_script('contentegg-metabox-app', \ContentEgg\PLUGIN_RES . '/app/app.js', array('angularjs'), Plugin::version());
|
191 |
+
\wp_enqueue_script('contentegg-metabox-service', \ContentEgg\PLUGIN_RES . '/app/ModuleService.js', array('contentegg-metabox-app'), Plugin::version());
|
192 |
|
193 |
// Bootstrap
|
194 |
+
\wp_enqueue_style('egg-bootstrap', \ContentEgg\PLUGIN_RES . '/bootstrap/css/egg-bootstrap.min.css', array(), Plugin::version());
|
195 |
+
\wp_enqueue_style('egg-glyphicons', \ContentEgg\PLUGIN_RES . '/bootstrap/css/glyphicons.css', array(), Plugin::version());
|
196 |
+
\wp_enqueue_script('bootstrap', \ContentEgg\PLUGIN_RES . '/bootstrap/js/bootstrap.min.js', array('jquery'), Plugin::version());
|
197 |
|
198 |
// ContentEgg application params
|
199 |
$this->addAppParam('active_modules', ModuleManager::getInstance()->getModulesIdList(true));
|
application/admin/GeneralConfig.php
CHANGED
@@ -16,7 +16,7 @@ use ContentEgg\application\helpers\TextHelper;
|
|
16 |
*
|
17 |
* @author keywordrush.com <support@keywordrush.com>
|
18 |
* @link https://www.keywordrush.com
|
19 |
-
* @copyright Copyright ©
|
20 |
*/
|
21 |
class GeneralConfig extends Config {
|
22 |
|
@@ -37,6 +37,49 @@ class GeneralConfig extends Config {
|
|
37 |
\add_submenu_page(Plugin::slug, __('Settings', 'content-egg') . ' ‹ Content Egg', __('Settings', 'content-egg'), 'manage_options', $this->page_slug, array($this, 'settings_page'));
|
38 |
}
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
public static function langs()
|
41 |
{
|
42 |
return array(
|
@@ -114,7 +157,7 @@ class GeneralConfig extends Config {
|
|
114 |
'description' => __('What post types do you want to use for Content Egg?', 'content-egg'),
|
115 |
'checkbox_options' => $post_types,
|
116 |
'callback' => array($this, 'render_checkbox_list'),
|
117 |
-
'default' => array('post', 'page'),
|
118 |
'section' => __('General settings', 'content-egg'),
|
119 |
),
|
120 |
'cashback_integration' => array(
|
@@ -142,7 +185,21 @@ class GeneralConfig extends Config {
|
|
142 |
'default' => 'disabled',
|
143 |
'section' => __('General settings', 'content-egg'),
|
144 |
),
|
145 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
'woocommerce_modules' => array(
|
147 |
'title' => __('Modules for synchronization', 'content-egg'),
|
148 |
'description' => __('Select modules for automatic synchronization with WooCommerce.', 'content-egg'),
|
@@ -165,8 +222,8 @@ class GeneralConfig extends Config {
|
|
165 |
'section' => __('WooCommerce', 'content-egg'),
|
166 |
),
|
167 |
'woocommerce_attributes_sync' => array(
|
168 |
-
'title' => __('
|
169 |
-
'description' => __('
|
170 |
'callback' => array($this, 'render_checkbox'),
|
171 |
'default' => false,
|
172 |
'section' => __('WooCommerce', 'content-egg'),
|
@@ -180,7 +237,7 @@ class GeneralConfig extends Config {
|
|
180 |
'whitelist' => __('Whitelist attribute names', 'content-egg'),
|
181 |
'blacklist' => __('Blacklist attribute names', 'content-egg'),
|
182 |
),
|
183 |
-
'default' => '',
|
184 |
'section' => __('WooCommerce', 'content-egg'),
|
185 |
),
|
186 |
'woocommerce_attributes_list' => array(
|
@@ -221,22 +278,6 @@ class GeneralConfig extends Config {
|
|
221 |
'strip_tags',
|
222 |
),
|
223 |
'section' => __('WooCommerce', 'content-egg'),
|
224 |
-
),
|
225 |
-
|
226 |
-
'rel_attribute' => array(
|
227 |
-
'title' => 'Rel attribute for affiliate links',
|
228 |
-
'description' => sprintf(__('<a target="_blank" href="%s">Qualify</a> your affiliate links to Google.', 'content-egg'), 'https://support.google.com/webmasters/answer/96569'),
|
229 |
-
'checkbox_options' => array(
|
230 |
-
'nofollow' => 'nofollow',
|
231 |
-
'sponsored' => 'sponsored',
|
232 |
-
'external' => 'external',
|
233 |
-
'noopener' => 'noopener',
|
234 |
-
'noreferrer' => 'noreferrer',
|
235 |
-
'ugc' => 'ugc',
|
236 |
-
),
|
237 |
-
'callback' => array($this, 'render_checkbox_list'),
|
238 |
-
'default' => array('nofollow'),
|
239 |
-
'section' => __('Templates', 'content-egg'),
|
240 |
),
|
241 |
'filter_bots' => array(
|
242 |
'title' => __('Filter bots', 'content-egg'),
|
@@ -246,9 +287,6 @@ class GeneralConfig extends Config {
|
|
246 |
'default' => true,
|
247 |
'section' => __('General settings', 'content-egg'),
|
248 |
),
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
'price_history_days' => array(
|
253 |
'title' => __('Price history', 'content-egg'),
|
254 |
'description' => __('How long save price history. 0 - deactivate price history.', 'content-egg'),
|
@@ -300,6 +338,76 @@ class GeneralConfig extends Config {
|
|
300 |
'default' => true,
|
301 |
'section' => __('Price alerts', 'content-egg'),
|
302 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
'button_color' => array(
|
304 |
'title' => __('Button color', 'content-egg'),
|
305 |
'description' => __('Button color for default templates.', 'content-egg'),
|
@@ -308,7 +416,7 @@ class GeneralConfig extends Config {
|
|
308 |
'validator' => array(
|
309 |
'trim',
|
310 |
),
|
311 |
-
'section' => __('
|
312 |
),
|
313 |
'price_color' => array(
|
314 |
'title' => __('Price color', 'content-egg'),
|
@@ -318,8 +426,8 @@ class GeneralConfig extends Config {
|
|
318 |
'validator' => array(
|
319 |
'trim',
|
320 |
),
|
321 |
-
'section' => __('
|
322 |
-
),
|
323 |
'btn_text_buy_now' => array(
|
324 |
'title' => __('Buy now button text', 'content-egg'),
|
325 |
'description' => sprintf(__('It will be used instead of "%s".', 'content-egg'), __('Buy Now', 'content-egg-tpl')) . ' ' . __('You can use tags: %MERCHANT%, %DOMAIN%, %PRICE%, %STOCK_STATUS%.', 'content-egg'),
|
@@ -328,7 +436,7 @@ class GeneralConfig extends Config {
|
|
328 |
'validator' => array(
|
329 |
'strip_tags',
|
330 |
),
|
331 |
-
'section' => __('
|
332 |
),
|
333 |
'btn_text_coupon' => array(
|
334 |
'title' => __('Coupon button text', 'content-egg'),
|
@@ -338,7 +446,7 @@ class GeneralConfig extends Config {
|
|
338 |
'validator' => array(
|
339 |
'strip_tags',
|
340 |
),
|
341 |
-
'section' => __('
|
342 |
),
|
343 |
'show_stock_status' => array(
|
344 |
'title' => __('Stock status', 'content-egg'),
|
@@ -350,9 +458,8 @@ class GeneralConfig extends Config {
|
|
350 |
'show_instock' => __('Show InStock status only', 'content-egg'),
|
351 |
),
|
352 |
'default' => 'show_status',
|
353 |
-
'section' => __('
|
354 |
-
),
|
355 |
-
|
356 |
'redirect_prefix' => array(
|
357 |
'title' => __('Redirect prefix', 'content-egg'),
|
358 |
'description' => __('Custom prefix for local redirect links.', 'content-egg'),
|
@@ -366,7 +473,7 @@ class GeneralConfig extends Config {
|
|
366 |
'message' => sprintf(__('The field "%s" can contain only Latin letters and digits.', 'content-egg'), __('Redirect prefix', 'content-egg')),
|
367 |
),
|
368 |
),
|
369 |
-
'section' => __('General settings', 'content-egg'),
|
370 |
),
|
371 |
'outofstock_product' => array(
|
372 |
'title' => __('Out of Stock products', 'content-egg'),
|
@@ -378,33 +485,7 @@ class GeneralConfig extends Config {
|
|
378 |
'hide_product' => __('Hide product', 'content-egg'),
|
379 |
),
|
380 |
'default' => '',
|
381 |
-
'section' => __('General settings', 'content-egg'),
|
382 |
-
),
|
383 |
-
'from_name' => array(
|
384 |
-
'title' => __('From Name', 'content-egg'),
|
385 |
-
'description' => __('This name will appear in the From Name column of emails sent from CE plugin.', 'content-egg'),
|
386 |
-
'callback' => array($this, 'render_input'),
|
387 |
-
'default' => '',
|
388 |
-
'validator' => array(
|
389 |
-
'trim',
|
390 |
-
'allow_empty',
|
391 |
-
),
|
392 |
-
'section' => __('Price alerts', 'content-egg'),
|
393 |
-
),
|
394 |
-
'from_email' => array(
|
395 |
-
'title' => __('From Email', 'content-egg'),
|
396 |
-
'description' => __('Customize the From Email address.', 'content-egg') . ' ' . __('To avoid your email being marked as spam, it is recommended your "from" match your website.', 'content-egg'),
|
397 |
-
'callback' => array($this, 'render_input'),
|
398 |
-
'default' => '',
|
399 |
-
'validator' => array(
|
400 |
-
'trim',
|
401 |
-
'allow_empty',
|
402 |
-
array(
|
403 |
-
'call' => array('\ContentEgg\application\helpers\FormValidator', 'valid_email'),
|
404 |
-
'message' => sprintf(__('Field "%s" filled with wrong data.', 'content-egg'), 'Email'),
|
405 |
-
),
|
406 |
-
),
|
407 |
-
'section' => __('Price alerts', 'content-egg'),
|
408 |
),
|
409 |
'search_modules' => array(
|
410 |
'title' => __('Search modules', 'content-egg'),
|
@@ -425,10 +506,9 @@ class GeneralConfig extends Config {
|
|
425 |
'default' => '',
|
426 |
'section' => __('Frontend search', 'content-egg'),
|
427 |
),
|
428 |
-
|
429 |
'logos' => array(
|
430 |
-
'title' => __('Merchant logos', '
|
431 |
-
'description' => __('You can add your own custom merchant logos.', '
|
432 |
'callback' => array($this, 'render_logo_fields_block'),
|
433 |
'validator' => array(
|
434 |
array(
|
@@ -437,7 +517,41 @@ class GeneralConfig extends Config {
|
|
437 |
),
|
438 |
),
|
439 |
'default' => array(),
|
440 |
-
'section' => __('
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
441 |
),
|
442 |
);
|
443 |
}
|
@@ -464,7 +578,7 @@ class GeneralConfig extends Config {
|
|
464 |
{
|
465 |
if (self::$affiliate_modules === null)
|
466 |
{
|
467 |
-
self::$affiliate_modules = ModuleManager::getInstance()->getAffiliteModulesList(
|
468 |
}
|
469 |
return self::$affiliate_modules;
|
470 |
}
|
@@ -477,10 +591,10 @@ class GeneralConfig extends Config {
|
|
477 |
|
478 |
echo '<input name="' . \esc_attr($args['option_name']) . '['
|
479 |
. \esc_attr($args['name']) . '][' . $i . '][name]" value="'
|
480 |
-
. \esc_attr($name) . '" class="text" placeholder="' . \esc_attr(__('Domain name', '
|
481 |
echo '<input name="' . \esc_attr($args['option_name']) . '['
|
482 |
. \esc_attr($args['name']) . '][' . $i . '][value]" value="'
|
483 |
-
. \esc_attr($value) . '" class="regular-text ltr" placeholder="' . \esc_attr(__('Logo URL', '
|
484 |
}
|
485 |
|
486 |
public function render_logo_fields_block($args)
|
@@ -528,4 +642,114 @@ class GeneralConfig extends Config {
|
|
528 |
return $results;
|
529 |
}
|
530 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
531 |
}
|
16 |
*
|
17 |
* @author keywordrush.com <support@keywordrush.com>
|
18 |
* @link https://www.keywordrush.com
|
19 |
+
* @copyright Copyright © 2021 keywordrush.com
|
20 |
*/
|
21 |
class GeneralConfig extends Config {
|
22 |
|
37 |
\add_submenu_page(Plugin::slug, __('Settings', 'content-egg') . ' ‹ Content Egg', __('Settings', 'content-egg'), 'manage_options', $this->page_slug, array($this, 'settings_page'));
|
38 |
}
|
39 |
|
40 |
+
private static function frontendTexts()
|
41 |
+
{
|
42 |
+
return array(
|
43 |
+
'in stock' => __('in stock', 'content-egg-tpl'),
|
44 |
+
'out of stock' => __('out of stock', 'content-egg-tpl'),
|
45 |
+
'Last updated on %s' => __('Last updated on %s', 'content-egg-tpl'),
|
46 |
+
'Last Amazon price update was: %s' => __('Last Amazon price update was: %s', 'content-egg-tpl'),
|
47 |
+
'as of %s' => __('as of %s', 'content-egg-tpl'),
|
48 |
+
'%d new from %s' => __('%d new from %s', 'content-egg-tpl'),
|
49 |
+
'%d used from %s' => __('%d used from %s', 'content-egg-tpl'),
|
50 |
+
'Free shipping' => __('Free shipping', 'content-egg-tpl'),
|
51 |
+
'OFF' => __('OFF', 'content-egg-tpl'),
|
52 |
+
'Plus %s Cash Back' => __('Plus %s Cash Back', 'content-egg-tpl'),
|
53 |
+
'Price' => __('Price', 'content-egg-tpl'),
|
54 |
+
'Features' => __('Features', 'content-egg-tpl'),
|
55 |
+
'Specifications' => __('Specifications', 'content-egg-tpl'),
|
56 |
+
'Statistics' => __('Statistics', 'content-egg-tpl'),
|
57 |
+
'Current Price' => __('Current Price', 'content-egg-tpl'),
|
58 |
+
'Highest Price' => __('Highest Price', 'content-egg-tpl'),
|
59 |
+
'Lowest Price' => __('Lowest Price', 'content-egg-tpl'),
|
60 |
+
'Since %s' => __('Since %s', 'content-egg-tpl'),
|
61 |
+
'Last price changes' => __('Last price changes', 'content-egg-tpl'),
|
62 |
+
'Start date: %s' => __('Start date: %s', 'content-egg-tpl'),
|
63 |
+
'End date: %s' => __('End date: %s', 'content-egg-tpl'),
|
64 |
+
'Set Alert for' => __('Set Alert for', 'content-egg-tpl'),
|
65 |
+
'Price History for' => __('Price History for', 'content-egg-tpl'),
|
66 |
+
'Create Your Free Price Drop Alert!' => __('Create Your Free Price Drop Alert!', 'content-egg-tpl'),
|
67 |
+
'Wait For A Price Drop' => __('Wait For A Price Drop', 'content-egg-tpl'),
|
68 |
+
'Your Email' => __('Your Email', 'content-egg-tpl'),
|
69 |
+
'Desired Price' => __('Desired Price', 'content-egg-tpl'),
|
70 |
+
'SET ALERT' => __('SET ALERT', 'content-egg-tpl'),
|
71 |
+
'You will receive a notification when the price drops.' => __('You will receive a notification when the price drops.', 'content-egg-tpl'),
|
72 |
+
'I agree to the %s.' => __('I agree to the %s.', 'content-egg-tpl'),
|
73 |
+
'Privacy Policy' => __('Privacy Policy', 'content-egg-tpl'),
|
74 |
+
'Sorry. No products found.' => __('Sorry. No products found.', 'content-egg-tpl'),
|
75 |
+
'Search Results for "%s"' => __('Search Results for "%s"', 'content-egg-tpl'),
|
76 |
+
'Price per unit: %s' => __('Price per unit: %s', 'content-egg-tpl'),
|
77 |
+
'today' => __('today', 'content-egg-tpl'),
|
78 |
+
'%d day ago' => __('%d day ago', 'content-egg-tpl'),
|
79 |
+
'%d days ago' => __('%d days ago', 'content-egg-tpl'),
|
80 |
+
);
|
81 |
+
}
|
82 |
+
|
83 |
public static function langs()
|
84 |
{
|
85 |
return array(
|
157 |
'description' => __('What post types do you want to use for Content Egg?', 'content-egg'),
|
158 |
'checkbox_options' => $post_types,
|
159 |
'callback' => array($this, 'render_checkbox_list'),
|
160 |
+
'default' => array('post', 'page', 'product'),
|
161 |
'section' => __('General settings', 'content-egg'),
|
162 |
),
|
163 |
'cashback_integration' => array(
|
185 |
'default' => 'disabled',
|
186 |
'section' => __('General settings', 'content-egg'),
|
187 |
),
|
188 |
+
'rel_attribute' => array(
|
189 |
+
'title' => 'Rel attribute for affiliate links',
|
190 |
+
'description' => sprintf(__('<a target="_blank" href="%s">Qualify</a> your affiliate links to Google.', 'content-egg'), 'https://support.google.com/webmasters/answer/96569'),
|
191 |
+
'checkbox_options' => array(
|
192 |
+
'nofollow' => 'nofollow',
|
193 |
+
'sponsored' => 'sponsored',
|
194 |
+
'external' => 'external',
|
195 |
+
'noopener' => 'noopener',
|
196 |
+
'noreferrer' => 'noreferrer',
|
197 |
+
'ugc' => 'ugc',
|
198 |
+
),
|
199 |
+
'callback' => array($this, 'render_checkbox_list'),
|
200 |
+
'default' => array('nofollow'),
|
201 |
+
'section' => __('Frontend', 'content-egg'),
|
202 |
+
),
|
203 |
'woocommerce_modules' => array(
|
204 |
'title' => __('Modules for synchronization', 'content-egg'),
|
205 |
'description' => __('Select modules for automatic synchronization with WooCommerce.', 'content-egg'),
|
222 |
'section' => __('WooCommerce', 'content-egg'),
|
223 |
),
|
224 |
'woocommerce_attributes_sync' => array(
|
225 |
+
'title' => __('Import product attributes', 'content-egg'),
|
226 |
+
'description' => __('Import attributes automatically for synchronized product.', 'content-egg'),
|
227 |
'callback' => array($this, 'render_checkbox'),
|
228 |
'default' => false,
|
229 |
'section' => __('WooCommerce', 'content-egg'),
|
237 |
'whitelist' => __('Whitelist attribute names', 'content-egg'),
|
238 |
'blacklist' => __('Blacklist attribute names', 'content-egg'),
|
239 |
),
|
240 |
+
'default' => 'whitelist',
|
241 |
'section' => __('WooCommerce', 'content-egg'),
|
242 |
),
|
243 |
'woocommerce_attributes_list' => array(
|
278 |
'strip_tags',
|
279 |
),
|
280 |
'section' => __('WooCommerce', 'content-egg'),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
281 |
),
|
282 |
'filter_bots' => array(
|
283 |
'title' => __('Filter bots', 'content-egg'),
|
287 |
'default' => true,
|
288 |
'section' => __('General settings', 'content-egg'),
|
289 |
),
|
|
|
|
|
|
|
290 |
'price_history_days' => array(
|
291 |
'title' => __('Price history', 'content-egg'),
|
292 |
'description' => __('How long save price history. 0 - deactivate price history.', 'content-egg'),
|
338 |
'default' => true,
|
339 |
'section' => __('Price alerts', 'content-egg'),
|
340 |
),
|
341 |
+
'price_alert_mode' => array(
|
342 |
+
'title' => __('Price alert mode', 'content-egg'),
|
343 |
+
'callback' => array($this, 'render_dropdown'),
|
344 |
+
'dropdown_options' => array(
|
345 |
+
'product' => __('Separate alerts for each product', 'content-egg'),
|
346 |
+
'post' => __('General alert for all products in a post', 'content-egg'),
|
347 |
+
),
|
348 |
+
'default' => '',
|
349 |
+
'section' => __('Price alerts', 'content-egg'),
|
350 |
+
),
|
351 |
+
'from_name' => array(
|
352 |
+
'title' => __('From Name', 'content-egg'),
|
353 |
+
'description' => __('This name will appear in the From Name column of emails sent from CE plugin.', 'content-egg'),
|
354 |
+
'callback' => array($this, 'render_input'),
|
355 |
+
'default' => '',
|
356 |
+
'validator' => array(
|
357 |
+
'trim',
|
358 |
+
'allow_empty',
|
359 |
+
),
|
360 |
+
'section' => __('Price alerts', 'content-egg'),
|
361 |
+
),
|
362 |
+
'from_email' => array(
|
363 |
+
'title' => __('From Email', 'content-egg'),
|
364 |
+
'description' => __('Customize the From Email address.', 'content-egg') . ' ' . __('To avoid your email being marked as spam, it is recommended your "from" match your website.', 'content-egg'),
|
365 |
+
'callback' => array($this, 'render_input'),
|
366 |
+
'default' => '',
|
367 |
+
'validator' => array(
|
368 |
+
'trim',
|
369 |
+
'allow_empty',
|
370 |
+
array(
|
371 |
+
'call' => array('\ContentEgg\application\helpers\FormValidator', 'valid_email'),
|
372 |
+
'message' => sprintf(__('Field "%s" filled with wrong data.', 'content-egg'), 'Email'),
|
373 |
+
),
|
374 |
+
),
|
375 |
+
'section' => __('Price alerts', 'content-egg'),
|
376 |
+
),
|
377 |
+
'email_template_activation' => array(
|
378 |
+
'title' => __('Activation email template', 'content-egg'),
|
379 |
+
'description' => sprintf(__('Use the following tags: %s.', 'content-egg'), '%POST_ID%, %POST_URL%, %POST_TITLE%, %PRODUCT_TITLE%, %VALIDATE_URL%, %UNSUBSCRIBE_URL%') .
|
380 |
+
'<br>' . sprintf(__('%s is required tag.', 'content-egg'), '%VALIDATE_URL%') . ' ' .
|
381 |
+
sprintf(__('Use like %s.', 'content-egg'), \esc_html('<a href="%VALIDATE_URL%">%VALIDATE_URL%</a>')),
|
382 |
+
'callback' => array($this, 'render_textarea'),
|
383 |
+
'default' => '',
|
384 |
+
'section' => __('Price alerts', 'content-egg'),
|
385 |
+
'validator' => array(
|
386 |
+
'\wp_kses_post',
|
387 |
+
'trim',
|
388 |
+
),
|
389 |
+
),
|
390 |
+
'email_template_alert' => array(
|
391 |
+
'title' => __('Price alert email template', 'content-egg'),
|
392 |
+
'description' => sprintf(__('Use the following tags: %s.', 'content-egg'), '%POST_ID%, %POST_URL%, %POST_TITLE%, %PRODUCT_TITLE%, %START_PRICE%, %DESIRED_PRICE%, %CURRENT_PRICE%, %SAVED_AMOUNT%, %SAVED_PERCENTAGE%, %UPDATE_DATE%, %UNSUBSCRIBE_URL%'),
|
393 |
+
'callback' => array($this, 'render_textarea'),
|
394 |
+
'default' => '',
|
395 |
+
'section' => __('Price alerts', 'content-egg'),
|
396 |
+
'validator' => array(
|
397 |
+
'\wp_kses_post',
|
398 |
+
'trim',
|
399 |
+
),
|
400 |
+
),
|
401 |
+
'email_signature' => array(
|
402 |
+
'title' => __('Email signature', 'content-egg'),
|
403 |
+
'callback' => array($this, 'render_textarea'),
|
404 |
+
'default' => '',
|
405 |
+
'section' => __('Price alerts', 'content-egg'),
|
406 |
+
'validator' => array(
|
407 |
+
'\wp_kses_post',
|
408 |
+
'trim',
|
409 |
+
),
|
410 |
+
),
|
411 |
'button_color' => array(
|
412 |
'title' => __('Button color', 'content-egg'),
|
413 |
'description' => __('Button color for default templates.', 'content-egg'),
|
416 |
'validator' => array(
|
417 |
'trim',
|
418 |
),
|
419 |
+
'section' => __('Frontend', 'content-egg'),
|
420 |
),
|
421 |
'price_color' => array(
|
422 |
'title' => __('Price color', 'content-egg'),
|
426 |
'validator' => array(
|
427 |
'trim',
|
428 |
),
|
429 |
+
'section' => __('Frontend', 'content-egg'),
|
430 |
+
),
|
431 |
'btn_text_buy_now' => array(
|
432 |
'title' => __('Buy now button text', 'content-egg'),
|
433 |
'description' => sprintf(__('It will be used instead of "%s".', 'content-egg'), __('Buy Now', 'content-egg-tpl')) . ' ' . __('You can use tags: %MERCHANT%, %DOMAIN%, %PRICE%, %STOCK_STATUS%.', 'content-egg'),
|
436 |
'validator' => array(
|
437 |
'strip_tags',
|
438 |
),
|
439 |
+
'section' => __('Frontend', 'content-egg'),
|
440 |
),
|
441 |
'btn_text_coupon' => array(
|
442 |
'title' => __('Coupon button text', 'content-egg'),
|
446 |
'validator' => array(
|
447 |
'strip_tags',
|
448 |
),
|
449 |
+
'section' => __('Frontend', 'content-egg'),
|
450 |
),
|
451 |
'show_stock_status' => array(
|
452 |
'title' => __('Stock status', 'content-egg'),
|
458 |
'show_instock' => __('Show InStock status only', 'content-egg'),
|
459 |
),
|
460 |
'default' => 'show_status',
|
461 |
+
'section' => __('Frontend', 'content-egg'),
|
462 |
+
),
|
|
|
463 |
'redirect_prefix' => array(
|
464 |
'title' => __('Redirect prefix', 'content-egg'),
|
465 |
'description' => __('Custom prefix for local redirect links.', 'content-egg'),
|
473 |
'message' => sprintf(__('The field "%s" can contain only Latin letters and digits.', 'content-egg'), __('Redirect prefix', 'content-egg')),
|
474 |
),
|
475 |
),
|
476 |
+
'section' => __('General settings', 'content-egg'),
|
477 |
),
|
478 |
'outofstock_product' => array(
|
479 |
'title' => __('Out of Stock products', 'content-egg'),
|
485 |
'hide_product' => __('Hide product', 'content-egg'),
|
486 |
),
|
487 |
'default' => '',
|
488 |
+
'section' => __('General settings', 'content-egg'),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
489 |
),
|
490 |
'search_modules' => array(
|
491 |
'title' => __('Search modules', 'content-egg'),
|
506 |
'default' => '',
|
507 |
'section' => __('Frontend search', 'content-egg'),
|
508 |
),
|
|
|
509 |
'logos' => array(
|
510 |
+
'title' => __('Merchant logos', 'content-egg'),
|
511 |
+
'description' => __('You can add your own custom merchant logos.', 'content-egg'),
|
512 |
'callback' => array($this, 'render_logo_fields_block'),
|
513 |
'validator' => array(
|
514 |
array(
|
517 |
),
|
518 |
),
|
519 |
'default' => array(),
|
520 |
+
'section' => __('Frontend', 'content-egg'),
|
521 |
+
),
|
522 |
+
'disclaimer_text' => array(
|
523 |
+
'title' => __('Amazon disclaimer', 'content-egg'),
|
524 |
+
'callback' => array($this, 'render_textarea'),
|
525 |
+
'default' => '',
|
526 |
+
'validator' => array(
|
527 |
+
'strip_tags',
|
528 |
+
),
|
529 |
+
'section' => __('Frontend', 'content-egg'),
|
530 |
+
),
|
531 |
+
'frontend_texts' => array(
|
532 |
+
'title' => __('Frontend texts', 'content-egg'),
|
533 |
+
'description' => '',
|
534 |
+
'callback' => array($this, 'render_translation_block'),
|
535 |
+
'section' => __('Translation', 'content-egg'),
|
536 |
+
'validator' => array(
|
537 |
+
array(
|
538 |
+
'call' => array($this, 'frontendTextsSanitize'),
|
539 |
+
'type' => 'filter',
|
540 |
+
),
|
541 |
+
),
|
542 |
+
'section' => __('Frontend', 'content-egg'),
|
543 |
+
),
|
544 |
+
'merchants' => array(
|
545 |
+
'title' => __('Merchant settings', 'content-egg'),
|
546 |
+
'callback' => array($this, 'render_merchants_block'),
|
547 |
+
'validator' => array(
|
548 |
+
array(
|
549 |
+
'call' => array($this, 'formatMerchantFields'),
|
550 |
+
'type' => 'filter',
|
551 |
+
),
|
552 |
+
),
|
553 |
+
'default' => array(),
|
554 |
+
'section' => __('Merchants', 'content-egg'),
|
555 |
),
|
556 |
);
|
557 |
}
|
578 |
{
|
579 |
if (self::$affiliate_modules === null)
|
580 |
{
|
581 |
+
self::$affiliate_modules = ModuleManager::getInstance()->getAffiliteModulesList(true);
|
582 |
}
|
583 |
return self::$affiliate_modules;
|
584 |
}
|
591 |
|
592 |
echo '<input name="' . \esc_attr($args['option_name']) . '['
|
593 |
. \esc_attr($args['name']) . '][' . $i . '][name]" value="'
|
594 |
+
. \esc_attr($name) . '" class="text" placeholder="' . \esc_attr(__('Domain name', 'content-egg')) . '" type="text"/>';
|
595 |
echo '<input name="' . \esc_attr($args['option_name']) . '['
|
596 |
. \esc_attr($args['name']) . '][' . $i . '][value]" value="'
|
597 |
+
. \esc_attr($value) . '" class="regular-text ltr" placeholder="' . \esc_attr(__('Logo URL', 'content-egg')) . '" type="text"/>';
|
598 |
}
|
599 |
|
600 |
public function render_logo_fields_block($args)
|
642 |
return $results;
|
643 |
}
|
644 |
|
645 |
+
public function render_translation_row($args)
|
646 |
+
{
|
647 |
+
$field_name = $args['_field_name'];
|
648 |
+
$value = isset($args['value'][$field_name]) ? $args['value'][$field_name] : '';
|
649 |
+
|
650 |
+
echo '<input value="' . \esc_attr($field_name) . '" class="regular-text ltr" type="text" readonly />';
|
651 |
+
echo ' › ';
|
652 |
+
echo '<input name="' . \esc_attr($args['option_name']) . '['
|
653 |
+
. \esc_attr($args['name']) . '][' . \esc_attr($field_name) . ']" value="'
|
654 |
+
. \esc_attr($value) . '" class="regular-text ltr" placeholder="' . \esc_attr(__('Translated string', 'content-egg')) . '" type="text"/>';
|
655 |
+
}
|
656 |
+
|
657 |
+
public function render_translation_block($args)
|
658 |
+
{
|
659 |
+
if (!$args['value'])
|
660 |
+
$args['value'] = array();
|
661 |
+
|
662 |
+
foreach (array_keys(self::frontendTexts()) as $str)
|
663 |
+
{
|
664 |
+
echo '<div style="padding-bottom: 5px;">';
|
665 |
+
$args['_field_name'] = $str;
|
666 |
+
$this->render_translation_row($args);
|
667 |
+
echo '</div>';
|
668 |
+
}
|
669 |
+
if ($args['description'])
|
670 |
+
echo '<p class="description">' . $args['description'] . '</p>';
|
671 |
+
}
|
672 |
+
|
673 |
+
public function frontendTextsSanitize($values)
|
674 |
+
{
|
675 |
+
foreach ($values as $k => $value)
|
676 |
+
{
|
677 |
+
$values[$k] = trim(\sanitize_text_field($value));
|
678 |
+
}
|
679 |
+
|
680 |
+
return $values;
|
681 |
+
}
|
682 |
+
|
683 |
+
public function render_merchant_line($args)
|
684 |
+
{
|
685 |
+
$i = isset($args['_field']) ? $args['_field'] : 0;
|
686 |
+
$name = isset($args['value'][$i]['name']) ? $args['value'][$i]['name'] : '';
|
687 |
+
$value = isset($args['value'][$i]['shop_info']) ? $args['value'][$i]['shop_info'] : '';
|
688 |
+
|
689 |
+
echo '<input style="margin-bottom: 5px;" name="' . \esc_attr($args['option_name']) . '['
|
690 |
+
. \esc_attr($args['name']) . '][' . $i . '][name]" value="'
|
691 |
+
. \esc_attr($name) . '" class="regular-text ltr" placeholder="' . \esc_attr(__('Domain name', 'content-egg')) . '" type="text"/>';
|
692 |
+
|
693 |
+
echo '<textarea rows="2" name="' . \esc_attr($args['option_name']) . '['
|
694 |
+
. \esc_attr($args['name']) . '][' . $i . '][shop_info]" value="'
|
695 |
+
. \esc_attr($value) . '" class="large-text code" placeholder="' . \esc_attr(__('Shop info', 'content-egg')) . '" type="text">' . \esc_html($value) . '</textarea>';
|
696 |
+
}
|
697 |
+
|
698 |
+
public function render_merchants_block($args)
|
699 |
+
{
|
700 |
+
if (is_array($args['value']))
|
701 |
+
$total = count($args['value']) + 3;
|
702 |
+
else
|
703 |
+
$total = 3;
|
704 |
+
|
705 |
+
for ($i = 0; $i < $total; $i++)
|
706 |
+
{
|
707 |
+
echo '<div style="padding-bottom: 20px;">';
|
708 |
+
$args['_field'] = $i;
|
709 |
+
$this->render_merchant_line($args);
|
710 |
+
echo '</div>';
|
711 |
+
}
|
712 |
+
if ($args['description'])
|
713 |
+
echo '<p class="description">' . $args['description'] . '</p>';
|
714 |
+
}
|
715 |
+
|
716 |
+
public function formatMerchantFields($values)
|
717 |
+
{
|
718 |
+
$results = array();
|
719 |
+
foreach ($values as $k => $value)
|
720 |
+
{
|
721 |
+
$name = strtolower(trim(\sanitize_text_field($value['name'])));
|
722 |
+
if ($host = TextHelper::getHostName($values[$k]['name']))
|
723 |
+
$name = $host;
|
724 |
+
|
725 |
+
if (!$name)
|
726 |
+
continue;
|
727 |
+
|
728 |
+
if (in_array($name, array_column($results, 'name')))
|
729 |
+
continue;
|
730 |
+
|
731 |
+
$shop_info = TextHelper::nl2br(trim(TextHelper::sanitizeHtml($value['shop_info'])));
|
732 |
+
|
733 |
+
$result = array('name' => $name, 'shop_info' => $shop_info);
|
734 |
+
$results[] = $result;
|
735 |
+
}
|
736 |
+
|
737 |
+
return $results;
|
738 |
+
}
|
739 |
+
|
740 |
+
public static function isShopInfoAvailable()
|
741 |
+
{
|
742 |
+
$merchants = GeneralConfig::getInstance()->option('merchants');
|
743 |
+
if (!$merchants)
|
744 |
+
return false;
|
745 |
+
|
746 |
+
foreach ($merchants as $merchant)
|
747 |
+
{
|
748 |
+
if ($merchant['shop_info'])
|
749 |
+
return true;
|
750 |
+
}
|
751 |
+
|
752 |
+
return false;
|
753 |
+
}
|
754 |
+
|
755 |
}
|
application/admin/ModuleSettingsContoller.php
CHANGED
@@ -29,7 +29,7 @@ class ModuleSettingsContoller {
|
|
29 |
|
30 |
public function actionIndex()
|
31 |
{
|
32 |
-
\wp_enqueue_style('egg-bootstrap', \ContentEgg\PLUGIN_RES . '/bootstrap/css/egg-bootstrap.css');
|
33 |
PluginAdmin::getInstance()->render('module_index', array('modules' => ModuleManager::getInstance()->getConfigurableModules()));
|
34 |
}
|
35 |
|
29 |
|
30 |
public function actionIndex()
|
31 |
{
|
32 |
+
\wp_enqueue_style('egg-bootstrap', \ContentEgg\PLUGIN_RES . '/bootstrap/css/egg-bootstrap.min.css', array(), Plugin::version());
|
33 |
PluginAdmin::getInstance()->render('module_index', array('modules' => ModuleManager::getInstance()->getConfigurableModules()));
|
34 |
}
|
35 |
|
application/admin/PluginAdmin.php
CHANGED
@@ -9,14 +9,16 @@ use ContentEgg\application\helpers\TextHelper;
|
|
9 |
use ContentEgg\application\admin\GeneralConfig;
|
10 |
use ContentEgg\application\components\ModuleManager;
|
11 |
use ContentEgg\application\components\ModuleApi;
|
|
|
12 |
use ContentEgg\application\components\FeaturedImage;
|
|
|
13 |
|
14 |
/**
|
15 |
* PluginAdmin class file
|
16 |
*
|
17 |
* @author keywordrush.com <support@keywordrush.com>
|
18 |
* @link https://www.keywordrush.com
|
19 |
-
* @copyright Copyright ©
|
20 |
*/
|
21 |
class PluginAdmin {
|
22 |
|
@@ -43,13 +45,17 @@ class PluginAdmin {
|
|
43 |
{
|
44 |
\add_filter('plugin_row_meta', array($this, 'add_plugin_row_meta'), 10, 2);
|
45 |
}
|
|
|
|
|
|
|
|
|
|
|
46 |
if (Plugin::isFree() || (Plugin::isPro() && Plugin::isActivated()) || Plugin::isEnvato())
|
47 |
{
|
48 |
GeneralConfig::getInstance()->adminInit();
|
49 |
ModuleManager::getInstance()->adminInit();
|
50 |
new ModuleSettingsContoller;
|
51 |
new ProductController;
|
52 |
-
AdminNotice::getInstance()->adminInit();
|
53 |
new EggMetabox;
|
54 |
new ModuleApi;
|
55 |
new FeaturedImage;
|
@@ -58,15 +64,19 @@ class PluginAdmin {
|
|
58 |
new ToolsController;
|
59 |
new ImportExportController;
|
60 |
AeIntegrationConfig::getInstance()->adminInit();
|
|
|
61 |
}
|
|
|
62 |
if (Plugin::isEnvato() && !Plugin::isActivated() && !\get_option(Plugin::slug . '_env_install'))
|
63 |
EnvatoConfig::getInstance()->adminInit();
|
64 |
elseif (Plugin::isPro())
|
65 |
LicConfig::getInstance()->adminInit();
|
|
|
66 |
if (Plugin::isPro() && Plugin::isActivated())
|
67 |
{
|
68 |
new \ContentEgg\application\Autoupdate(Plugin::version(), plugin_basename(\ContentEgg\PLUGIN_FILE), Plugin::getApiBase(), Plugin::slug);
|
69 |
}
|
|
|
70 |
}
|
71 |
|
72 |
function admin_load_scripts()
|
@@ -84,8 +94,9 @@ class PluginAdmin {
|
|
84 |
'are_you_shure' => __('Are you sure?', 'content-egg'),
|
85 |
'sitelang' => GeneralConfig::getInstance()->option('lang'),
|
86 |
));
|
|
|
|
|
87 |
|
88 |
-
\wp_enqueue_style('contentegg-admin', \ContentEgg\PLUGIN_RES . '/css/admin.css', null, 'vaa' . Plugin::version());
|
89 |
}
|
90 |
|
91 |
public function add_plugin_row_meta(array $links, $file)
|
@@ -108,7 +119,6 @@ class PluginAdmin {
|
|
108 |
if (Plugin::isPro())
|
109 |
$title .= ' Pro';
|
110 |
\add_menu_page($title, $title, 'publish_posts', Plugin::slug, null, $icon_svg);
|
111 |
-
|
112 |
}
|
113 |
|
114 |
public static function render($view_name, $_data = null)
|
9 |
use ContentEgg\application\admin\GeneralConfig;
|
10 |
use ContentEgg\application\components\ModuleManager;
|
11 |
use ContentEgg\application\components\ModuleApi;
|
12 |
+
use ContentEgg\application\components\LManager;
|
13 |
use ContentEgg\application\components\FeaturedImage;
|
14 |
+
use ContentEgg\application\ModuleUpdateScheduler;
|
15 |
|
16 |
/**
|
17 |
* PluginAdmin class file
|
18 |
*
|
19 |
* @author keywordrush.com <support@keywordrush.com>
|
20 |
* @link https://www.keywordrush.com
|
21 |
+
* @copyright Copyright © 2021 keywordrush.com
|
22 |
*/
|
23 |
class PluginAdmin {
|
24 |
|
45 |
{
|
46 |
\add_filter('plugin_row_meta', array($this, 'add_plugin_row_meta'), 10, 2);
|
47 |
}
|
48 |
+
|
49 |
+
AdminNotice::getInstance()->adminInit();
|
50 |
+
if (!Plugin::isFree())
|
51 |
+
LManager::getInstance()->adminInit();
|
52 |
+
|
53 |
if (Plugin::isFree() || (Plugin::isPro() && Plugin::isActivated()) || Plugin::isEnvato())
|
54 |
{
|
55 |
GeneralConfig::getInstance()->adminInit();
|
56 |
ModuleManager::getInstance()->adminInit();
|
57 |
new ModuleSettingsContoller;
|
58 |
new ProductController;
|
|
|
59 |
new EggMetabox;
|
60 |
new ModuleApi;
|
61 |
new FeaturedImage;
|
64 |
new ToolsController;
|
65 |
new ImportExportController;
|
66 |
AeIntegrationConfig::getInstance()->adminInit();
|
67 |
+
ModuleUpdateScheduler::addScheduleEvent();
|
68 |
}
|
69 |
+
|
70 |
if (Plugin::isEnvato() && !Plugin::isActivated() && !\get_option(Plugin::slug . '_env_install'))
|
71 |
EnvatoConfig::getInstance()->adminInit();
|
72 |
elseif (Plugin::isPro())
|
73 |
LicConfig::getInstance()->adminInit();
|
74 |
+
|
75 |
if (Plugin::isPro() && Plugin::isActivated())
|
76 |
{
|
77 |
new \ContentEgg\application\Autoupdate(Plugin::version(), plugin_basename(\ContentEgg\PLUGIN_FILE), Plugin::getApiBase(), Plugin::slug);
|
78 |
}
|
79 |
+
|
80 |
}
|
81 |
|
82 |
function admin_load_scripts()
|
94 |
'are_you_shure' => __('Are you sure?', 'content-egg'),
|
95 |
'sitelang' => GeneralConfig::getInstance()->option('lang'),
|
96 |
));
|
97 |
+
|
98 |
+
\wp_enqueue_style('contentegg-admin', \ContentEgg\PLUGIN_RES . '/css/admin.css', null, '' . Plugin::version());
|
99 |
|
|
|
100 |
}
|
101 |
|
102 |
public function add_plugin_row_meta(array $links, $file)
|
119 |
if (Plugin::isPro())
|
120 |
$title .= ' Pro';
|
121 |
\add_menu_page($title, $title, 'publish_posts', Plugin::slug, null, $icon_svg);
|
|
|
122 |
}
|
123 |
|
124 |
public static function render($view_name, $_data = null)
|
application/admin/PrefillController.php
CHANGED
@@ -17,7 +17,7 @@ use ContentEgg\application\models\AutoblogModel;
|
|
17 |
*
|
18 |
* @author keywordrush.com <support@keywordrush.com>
|
19 |
* @link https://www.keywordrush.com
|
20 |
-
* @copyright Copyright ©
|
21 |
*/
|
22 |
class PrefillController {
|
23 |
|
@@ -129,7 +129,7 @@ class PrefillController {
|
|
129 |
}
|
130 |
|
131 |
if (!$keyword)
|
132 |
-
$this->printResult($log . ' - ' . __('
|
133 |
|
134 |
$log .= ' Keyword: "' . $keyword . '"';
|
135 |
|
@@ -220,9 +220,32 @@ class PrefillController {
|
|
220 |
if (!$meta_name)
|
221 |
return '';
|
222 |
$keyword = \get_post_meta($post_id, $meta_name, true);
|
223 |
-
} elseif (
|
224 |
{
|
225 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
}
|
227 |
|
228 |
if (!filter_var($keyword, FILTER_VALIDATE_URL))
|
17 |
*
|
18 |
* @author keywordrush.com <support@keywordrush.com>
|
19 |
* @link https://www.keywordrush.com
|
20 |
+
* @copyright Copyright © 2021 keywordrush.com
|
21 |
*/
|
22 |
class PrefillController {
|
23 |
|
129 |
}
|
130 |
|
131 |
if (!$keyword)
|
132 |
+
$this->printResult($log . ' - ' . __('Unable to find keyword.', 'content-egg'));
|
133 |
|
134 |
$log .= ' Keyword: "' . $keyword . '"';
|
135 |
|
220 |
if (!$meta_name)
|
221 |
return '';
|
222 |
$keyword = \get_post_meta($post_id, $meta_name, true);
|
223 |
+
} elseif (substr($keyword_source, 0, 9) == '_keyword_')
|
224 |
{
|
225 |
+
$module_id = substr($keyword_source, 9);
|
226 |
+
if (!ModuleManager::getInstance()->moduleExists($module_id))
|
227 |
+
return '';
|
228 |
+
|
229 |
+
$keyword = \get_post_meta($post_id, ContentManager::META_PREFIX_KEYWORD . $module_id, true);
|
230 |
+
|
231 |
+
} elseif (substr($keyword_source, 0, 5) == '_ean_')
|
232 |
+
{
|
233 |
+
$module_id = substr($keyword_source, 5);
|
234 |
+
if (!ModuleManager::getInstance()->moduleExists($module_id))
|
235 |
+
return '';
|
236 |
+
|
237 |
+
if (!$data = ContentManager::getViewData($module_id, $post_id))
|
238 |
+
return '';
|
239 |
+
|
240 |
+
foreach ($data as $d)
|
241 |
+
{
|
242 |
+
if (!empty($d['ean']))
|
243 |
+
{
|
244 |
+
$keyword = $d['ean'];
|
245 |
+
break;
|
246 |
+
}
|
247 |
+
|
248 |
+
}
|
249 |
}
|
250 |
|
251 |
if (!filter_var($keyword, FILTER_VALIDATE_URL))
|
application/admin/ProductController.php
CHANGED
@@ -12,8 +12,8 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
12 |
* ProductController class file
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
-
* @link
|
16 |
-
* @copyright Copyright ©
|
17 |
*/
|
18 |
class ProductController {
|
19 |
|
12 |
* ProductController class file
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
+
* @link https://www.keywordrush.com
|
16 |
+
* @copyright Copyright © 2021 keywordrush.com
|
17 |
*/
|
18 |
class ProductController {
|
19 |
|
application/admin/ProductTable.php
CHANGED
@@ -153,7 +153,7 @@ class ProductTable extends MyListTable {
|
|
153 |
|
154 |
private function print_modules_dropdown()
|
155 |
{
|
156 |
-
$modules = ModuleManager::getInstance()->getAffiliteModulesList();
|
157 |
$selected_module_id = !empty($_GET['module_id']) ? TextHelper::clear(\wp_unslash($_GET['module_id'])) : '';
|
158 |
|
159 |
echo '<select name="module_id" id="dropdown_module_id"><option value="">' . \esc_html__('Filter by module', 'content-egg') . '</option>';
|
153 |
|
154 |
private function print_modules_dropdown()
|
155 |
{
|
156 |
+
$modules = ModuleManager::getInstance()->getAffiliteModulesList(true);
|
157 |
$selected_module_id = !empty($_GET['module_id']) ? TextHelper::clear(\wp_unslash($_GET['module_id'])) : '';
|
158 |
|
159 |
echo '<select name="module_id" id="dropdown_module_id"><option value="">' . \esc_html__('Filter by module', 'content-egg') . '</option>';
|
application/admin/ToolsController.php
CHANGED
@@ -9,13 +9,14 @@ use ContentEgg\application\helpers\FileHelper;
|
|
9 |
use ContentEgg\application\helpers\TextHelper;
|
10 |
use ContentEgg\application\components\ContentManager;
|
11 |
use ContentEgg\application\components\ModuleManager;
|
|
|
12 |
|
13 |
/**
|
14 |
* ToolsController class file
|
15 |
*
|
16 |
* @author keywordrush.com <support@keywordrush.com>
|
17 |
-
* @link
|
18 |
-
* @copyright Copyright ©
|
19 |
*/
|
20 |
class ToolsController {
|
21 |
|
@@ -35,14 +36,13 @@ class ToolsController {
|
|
35 |
return;
|
36 |
|
37 |
if (!empty($_GET['action']) && $_GET['action'] == 'subscribers-export')
|
38 |
-
{
|
39 |
$this->actionSubscribersExport();
|
40 |
-
}
|
41 |
|
42 |
if (!empty($_GET['action']) && $_GET['action'] == 'offer-urls-export')
|
43 |
-
{
|
44 |
$this->actionOfferUrlsExport();
|
45 |
-
|
|
|
|
|
46 |
}
|
47 |
|
48 |
public function actionSubscribersExport()
|
@@ -137,4 +137,35 @@ class ToolsController {
|
|
137 |
exit;
|
138 |
}
|
139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
}
|
9 |
use ContentEgg\application\helpers\TextHelper;
|
10 |
use ContentEgg\application\components\ContentManager;
|
11 |
use ContentEgg\application\components\ModuleManager;
|
12 |
+
use ContentEgg\application\helpers\InputHelper;
|
13 |
|
14 |
/**
|
15 |
* ToolsController class file
|
16 |
*
|
17 |
* @author keywordrush.com <support@keywordrush.com>
|
18 |
+
* @link httsp://www.keywordrush.com
|
19 |
+
* @copyright Copyright © 2021 keywordrush.com
|
20 |
*/
|
21 |
class ToolsController {
|
22 |
|
36 |
return;
|
37 |
|
38 |
if (!empty($_GET['action']) && $_GET['action'] == 'subscribers-export')
|
|
|
39 |
$this->actionSubscribersExport();
|
|
|
40 |
|
41 |
if (!empty($_GET['action']) && $_GET['action'] == 'offer-urls-export')
|
|
|
42 |
$this->actionOfferUrlsExport();
|
43 |
+
|
44 |
+
if (!empty($_GET['action']) && $_GET['action'] == 'feed-export')
|
45 |
+
$this->actionFeedDataExport();
|
46 |
}
|
47 |
|
48 |
public function actionSubscribersExport()
|
137 |
exit;
|
138 |
}
|
139 |
|
140 |
+
public function actionFeedDataExport()
|
141 |
+
{
|
142 |
+
if (!\current_user_can('administrator'))
|
143 |
+
die('You do not have permission to view this page.');
|
144 |
+
|
145 |
+
if (isset($_GET['module']))
|
146 |
+
$module_id = TextHelper::clear($_GET['module']);
|
147 |
+
else
|
148 |
+
die('Module param can not be empty.');
|
149 |
+
|
150 |
+
if (!ModuleManager::getInstance()->moduleExists($module_id))
|
151 |
+
die('The module does not exist.');
|
152 |
+
|
153 |
+
$field = InputHelper::get('field', 'url');
|
154 |
+
|
155 |
+
$module = ModuleManager::getInstance()->factory($module_id);
|
156 |
+
$model = $module->getProductModel();
|
157 |
+
|
158 |
+
if ($field == 'ean')
|
159 |
+
$results = $model->getEans();
|
160 |
+
elseif ($field == 'ean_dublicate')
|
161 |
+
$results = $model->getDublicateEans();
|
162 |
+
else
|
163 |
+
$results = $model->getAllUrls();
|
164 |
+
|
165 |
+
$filename = $module->getName() . '-' . $field . '-' . date('d-m-Y') . '.txt';
|
166 |
+
FileHelper::sendDownloadHeaders($filename);
|
167 |
+
echo join("\r\n", $results);
|
168 |
+
exit;
|
169 |
+
}
|
170 |
+
|
171 |
}
|
application/admin/views/_metabox_autoblog.php
CHANGED
@@ -23,16 +23,15 @@ use ContentEgg\application\helpers\AdminHelper;
|
|
23 |
</th>
|
24 |
<td>
|
25 |
<select id="status" name="item[status]">
|
26 |
-
<option value="1"<?php if ($item['status']) echo ' selected="selected"'; ?>><?php _e('
|
27 |
-
<option value="0"<?php if (!$item['status']) echo ' selected="selected"'; ?>><?php _e('
|
28 |
</select>
|
29 |
-
<p class="description"><?php _e('You can stop autoblogging.', 'content-egg'); ?></p>
|
30 |
</td>
|
31 |
</tr>
|
32 |
|
33 |
<tr class="form-field">
|
34 |
<th valign="top" scope="row">
|
35 |
-
<label for="run_frequency"><?php _e('
|
36 |
</th>
|
37 |
<td>
|
38 |
<select id="run_frequency" name="item[run_frequency]">
|
@@ -44,7 +43,7 @@ use ContentEgg\application\helpers\AdminHelper;
|
|
44 |
<option value="604800"<?php if ($item['run_frequency'] == 604800) echo ' selected="selected"'; ?>><?php _e('Once a week', 'content-egg'); ?></option>
|
45 |
<option value="1209600"<?php if ($item['run_frequency'] == 1209600) echo ' selected="selected"'; ?>><?php _e('Once in 2 weeks', 'content-egg'); ?></option>
|
46 |
</select>
|
47 |
-
<p class="description"><?php _e('How often autoblogging will run this task', 'content-egg'); ?></p>
|
48 |
</td>
|
49 |
</tr>
|
50 |
<?php if (!$batch): ?>
|
@@ -189,44 +188,42 @@ use ContentEgg\application\helpers\AdminHelper;
|
|
189 |
|
190 |
<tr class="form-field">
|
191 |
<th valign="top" scope="row">
|
192 |
-
<label for="keywords_per_run"><?php _e('
|
193 |
</th>
|
194 |
<td>
|
195 |
<input id="keywords_per_run" name="item[keywords_per_run]" value="<?php echo esc_attr($item['keywords_per_run']) ?>"
|
196 |
type="number" class="small-text">
|
197 |
-
<p class="description"><?php _e('How many keywords to process at
|
198 |
</td>
|
199 |
</tr>
|
200 |
<tr class="form-field">
|
201 |
<th valign="top" scope="row">
|
202 |
-
<label for="template_title"><?php _e('
|
203 |
</th>
|
204 |
<td>
|
205 |
|
206 |
<input id="template_title" name="item[template_title]" value="<?php echo esc_attr($item['template_title']) ?>"
|
207 |
type="text" class="regular-text ltr">
|
208 |
<p class="description">
|
209 |
-
<?php _e('Template for title of post', 'content-egg'); ?>
|
210 |
<?php _e('Use tags:', 'content-egg'); ?> %KEYWORD%, %KEYWORD.ModuleID%, %PRODUCT.title%, %PRODUCT.price%, %PRODUCT.merchant%, %PRODUCT.domain%, %PRODUCT.manufacturer%,...<br>
|
211 |
<?php _e('For display data of plugin use special tags, for example:', 'content-egg'); ?> %Amazon.title%.<br>
|
212 |
<?php _e('You also can set index number for access to data of plugin', 'content-egg'); ?> %Amazon.0.price%.<br>
|
213 |
-
<?php _e('You can use
|
214 |
</p>
|
215 |
</td>
|
216 |
</tr>
|
217 |
|
218 |
<tr class="form-field">
|
219 |
<th valign="top" scope="row">
|
220 |
-
<label for="template_body"><?php _e('
|
221 |
</th>
|
222 |
<td>
|
223 |
|
224 |
<textarea rows="4" id="template_body" name="item[template_body]"><?php echo esc_html($item['template_body']) ?></textarea>
|
225 |
<p class="description">
|
226 |
-
<?php _e('
|
227 |
-
<?php _e('You can use shortcodes, for example:', 'content-egg'); ?>
|
228 |
[content-egg module=Amazon template=grid]<br>
|
229 |
-
<?php _e('
|
230 |
|
231 |
</p>
|
232 |
</td>
|
@@ -237,7 +234,7 @@ use ContentEgg\application\helpers\AdminHelper;
|
|
237 |
</th>
|
238 |
<td>
|
239 |
<div class="cegg-checkboxgroup">
|
240 |
-
<?php foreach (ModuleManager::getInstance()->getParserModules(
|
241 |
<div class="cegg-checkbox">
|
242 |
<label><input <?php if (in_array($module->getId(), $item['include_modules'])) echo 'checked'; ?> value="<?php echo esc_attr($module->getId()); ?>" type="checkbox" name="item[include_modules][]" /><?php echo $module->getName(); ?></label>
|
243 |
</div>
|
@@ -256,7 +253,7 @@ use ContentEgg\application\helpers\AdminHelper;
|
|
256 |
</th>
|
257 |
<td>
|
258 |
<div class="cegg-checkboxgroup">
|
259 |
-
<?php foreach (ModuleManager::getInstance()->getParserModules(
|
260 |
<div class="cegg-checkbox">
|
261 |
<label><input <?php if (in_array($module->getId(), $item['exclude_modules'])) echo 'checked'; ?> value="<?php echo esc_attr($module->getId()); ?>" type="checkbox" name="item[exclude_modules][]" /><?php echo $module->getName(); ?></label>
|
262 |
</div>
|
@@ -298,19 +295,6 @@ use ContentEgg\application\helpers\AdminHelper;
|
|
298 |
</td>
|
299 |
</tr>
|
300 |
|
301 |
-
<tr class="form-field">
|
302 |
-
<th valign="top" scope="row">
|
303 |
-
<label for="user_id"><?php _e('User', 'content-egg'); ?></label>
|
304 |
-
</th>
|
305 |
-
<td>
|
306 |
-
<?php
|
307 |
-
\wp_dropdown_users(array('name' => 'item[user_id]',
|
308 |
-
'who' => 'authors', 'id' => 'user_id', 'selected' => $item['user_id']));
|
309 |
-
?>
|
310 |
-
<p class="description"><?php _e('This user will be author of posts.', 'content-egg'); ?></p>
|
311 |
-
</td>
|
312 |
-
</tr>
|
313 |
-
|
314 |
<tr class="form-field">
|
315 |
<th valign="top" scope="row">
|
316 |
<label for="category"><?php _e('Category ', 'content-egg'); ?></label>
|
@@ -331,7 +315,7 @@ use ContentEgg\application\helpers\AdminHelper;
|
|
331 |
|
332 |
|
333 |
<p class="description">
|
334 |
-
<?php _e('Default category
|
335 |
<?php if ($batch): ?>
|
336 |
<?php _e('"Create Automatically" means, that categories will be created based on data of CSV file with keywords and categories.', 'content-egg'); ?>
|
337 |
<?php endif; ?>
|
@@ -339,6 +323,18 @@ use ContentEgg\application\helpers\AdminHelper;
|
|
339 |
</td>
|
340 |
</tr>
|
341 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
342 |
<tr class="form-field">
|
343 |
<th valign="top" scope="row">
|
344 |
<label for="dynamic_categories"><?php _e('Dynamic categories', 'content-egg'); ?></label>
|
@@ -381,7 +377,7 @@ use ContentEgg\application\helpers\AdminHelper;
|
|
381 |
</th>
|
382 |
<td>
|
383 |
<div class="cegg-checkboxgroup">
|
384 |
-
<?php foreach (ModuleManager::getInstance()->getAffiliateParsers(
|
385 |
<div class="cegg-checkbox">
|
386 |
<label><input <?php if (in_array($module->getId(), $item['autoupdate_modules'])) echo 'checked'; ?> value="<?php echo esc_attr($module->getId()); ?>" type="checkbox" name="item[autoupdate_modules][]" /><?php echo $module->getName(); ?></label>
|
387 |
</div>
|
@@ -398,7 +394,7 @@ use ContentEgg\application\helpers\AdminHelper;
|
|
398 |
</th>
|
399 |
<td>
|
400 |
<div class="cegg-checkboxgroup">
|
401 |
-
<?php foreach (ModuleManager::getInstance()->getParserModules(
|
402 |
<div class="cegg-checkbox">
|
403 |
<label><input <?php if (in_array($module->getId(), $item['required_modules'])) echo 'checked'; ?> value="<?php echo esc_attr($module->getId()); ?>" type="checkbox" name="item[required_modules][]" /><?php echo $module->getName(); ?></label>
|
404 |
</div>
|
@@ -437,7 +433,7 @@ use ContentEgg\application\helpers\AdminHelper;
|
|
437 |
type="text" class="regular-text ltr">
|
438 |
<p class="description">
|
439 |
<?php _e('Comma separated list of tags.', 'content-egg'); ?>
|
440 |
-
<?php _e('
|
441 |
</p>
|
442 |
</td>
|
443 |
</tr>
|
@@ -479,7 +475,7 @@ use ContentEgg\application\helpers\AdminHelper;
|
|
479 |
<?php endfor; ?>
|
480 |
</div>
|
481 |
<p class="description">
|
482 |
-
<?php _e('
|
483 |
</p>
|
484 |
</td>
|
485 |
</tr>
|
23 |
</th>
|
24 |
<td>
|
25 |
<select id="status" name="item[status]">
|
26 |
+
<option value="1"<?php if ($item['status']) echo ' selected="selected"'; ?>><?php _e('Enabled', 'content-egg'); ?></option>
|
27 |
+
<option value="0"<?php if (!$item['status']) echo ' selected="selected"'; ?>><?php _e('Disabled', 'content-egg'); ?></option>
|
28 |
</select>
|
|
|
29 |
</td>
|
30 |
</tr>
|
31 |
|
32 |
<tr class="form-field">
|
33 |
<th valign="top" scope="row">
|
34 |
+
<label for="run_frequency"><?php _e('Recurrency', 'content-egg'); ?></label>
|
35 |
</th>
|
36 |
<td>
|
37 |
<select id="run_frequency" name="item[run_frequency]">
|
43 |
<option value="604800"<?php if ($item['run_frequency'] == 604800) echo ' selected="selected"'; ?>><?php _e('Once a week', 'content-egg'); ?></option>
|
44 |
<option value="1209600"<?php if ($item['run_frequency'] == 1209600) echo ' selected="selected"'; ?>><?php _e('Once in 2 weeks', 'content-egg'); ?></option>
|
45 |
</select>
|
46 |
+
<p class="description"><?php _e('How often autoblogging will run this task.', 'content-egg'); ?></p>
|
47 |
</td>
|
48 |
</tr>
|
49 |
<?php if (!$batch): ?>
|
188 |
|
189 |
<tr class="form-field">
|
190 |
<th valign="top" scope="row">
|
191 |
+
<label for="keywords_per_run"><?php _e('Process keywords', 'content-egg'); ?></label>
|
192 |
</th>
|
193 |
<td>
|
194 |
<input id="keywords_per_run" name="item[keywords_per_run]" value="<?php echo esc_attr($item['keywords_per_run']) ?>"
|
195 |
type="number" class="small-text">
|
196 |
+
<p class="description"><?php _e('How many keywords to process at a time.', 'content-egg'); ?></p>
|
197 |
</td>
|
198 |
</tr>
|
199 |
<tr class="form-field">
|
200 |
<th valign="top" scope="row">
|
201 |
+
<label for="template_title"><?php _e('Post title template ', 'content-egg'); ?></label>
|
202 |
</th>
|
203 |
<td>
|
204 |
|
205 |
<input id="template_title" name="item[template_title]" value="<?php echo esc_attr($item['template_title']) ?>"
|
206 |
type="text" class="regular-text ltr">
|
207 |
<p class="description">
|
|
|
208 |
<?php _e('Use tags:', 'content-egg'); ?> %KEYWORD%, %KEYWORD.ModuleID%, %PRODUCT.title%, %PRODUCT.price%, %PRODUCT.merchant%, %PRODUCT.domain%, %PRODUCT.manufacturer%,...<br>
|
209 |
<?php _e('For display data of plugin use special tags, for example:', 'content-egg'); ?> %Amazon.title%.<br>
|
210 |
<?php _e('You also can set index number for access to data of plugin', 'content-egg'); ?> %Amazon.0.price%.<br>
|
211 |
+
<?php _e('You can use spin syntax with synonyms, for example, {Discount|Sale|Cheap}.', 'content-egg'); ?>
|
212 |
</p>
|
213 |
</td>
|
214 |
</tr>
|
215 |
|
216 |
<tr class="form-field">
|
217 |
<th valign="top" scope="row">
|
218 |
+
<label for="template_body"><?php _e('Post body template ', 'content-egg'); ?></label>
|
219 |
</th>
|
220 |
<td>
|
221 |
|
222 |
<textarea rows="4" id="template_body" name="item[template_body]"><?php echo esc_html($item['template_body']) ?></textarea>
|
223 |
<p class="description">
|
224 |
+
<?php _e('You can use CE shortcodes like:', 'content-egg'); ?>
|
|
|
225 |
[content-egg module=Amazon template=grid]<br>
|
226 |
+
<?php _e('Spin syntax and all tags from title template, will also work here.', 'content-egg'); ?><br>
|
227 |
|
228 |
</p>
|
229 |
</td>
|
234 |
</th>
|
235 |
<td>
|
236 |
<div class="cegg-checkboxgroup">
|
237 |
+
<?php foreach (ModuleManager::getInstance()->getParserModules(true) as $module): ?>
|
238 |
<div class="cegg-checkbox">
|
239 |
<label><input <?php if (in_array($module->getId(), $item['include_modules'])) echo 'checked'; ?> value="<?php echo esc_attr($module->getId()); ?>" type="checkbox" name="item[include_modules][]" /><?php echo $module->getName(); ?></label>
|
240 |
</div>
|
253 |
</th>
|
254 |
<td>
|
255 |
<div class="cegg-checkboxgroup">
|
256 |
+
<?php foreach (ModuleManager::getInstance()->getParserModules(true) as $module): ?>
|
257 |
<div class="cegg-checkbox">
|
258 |
<label><input <?php if (in_array($module->getId(), $item['exclude_modules'])) echo 'checked'; ?> value="<?php echo esc_attr($module->getId()); ?>" type="checkbox" name="item[exclude_modules][]" /><?php echo $module->getName(); ?></label>
|
259 |
</div>
|
295 |
</td>
|
296 |
</tr>
|
297 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
298 |
<tr class="form-field">
|
299 |
<th valign="top" scope="row">
|
300 |
<label for="category"><?php _e('Category ', 'content-egg'); ?></label>
|
315 |
|
316 |
|
317 |
<p class="description">
|
318 |
+
<?php _e('Default category.', 'content-egg'); ?>
|
319 |
<?php if ($batch): ?>
|
320 |
<?php _e('"Create Automatically" means, that categories will be created based on data of CSV file with keywords and categories.', 'content-egg'); ?>
|
321 |
<?php endif; ?>
|
323 |
</td>
|
324 |
</tr>
|
325 |
|
326 |
+
<tr class="form-field">
|
327 |
+
<th valign="top" scope="row">
|
328 |
+
<label for="user_id"><?php _e('User', 'content-egg'); ?></label>
|
329 |
+
</th>
|
330 |
+
<td>
|
331 |
+
<?php
|
332 |
+
\wp_dropdown_users(array('name' => 'item[user_id]',
|
333 |
+
'who' => 'authors', 'id' => 'user_id', 'selected' => $item['user_id']));
|
334 |
+
?>
|
335 |
+
<p class="description"><?php _e('This user will be author of posts.', 'content-egg'); ?></p>
|
336 |
+
</td>
|
337 |
+
</tr>
|
338 |
<tr class="form-field">
|
339 |
<th valign="top" scope="row">
|
340 |
<label for="dynamic_categories"><?php _e('Dynamic categories', 'content-egg'); ?></label>
|
377 |
</th>
|
378 |
<td>
|
379 |
<div class="cegg-checkboxgroup">
|
380 |
+
<?php foreach (ModuleManager::getInstance()->getAffiliateParsers(true) as $module): ?>
|
381 |
<div class="cegg-checkbox">
|
382 |
<label><input <?php if (in_array($module->getId(), $item['autoupdate_modules'])) echo 'checked'; ?> value="<?php echo esc_attr($module->getId()); ?>" type="checkbox" name="item[autoupdate_modules][]" /><?php echo $module->getName(); ?></label>
|
383 |
</div>
|
394 |
</th>
|
395 |
<td>
|
396 |
<div class="cegg-checkboxgroup">
|
397 |
+
<?php foreach (ModuleManager::getInstance()->getParserModules(true) as $module): ?>
|
398 |
<div class="cegg-checkbox">
|
399 |
<label><input <?php if (in_array($module->getId(), $item['required_modules'])) echo 'checked'; ?> value="<?php echo esc_attr($module->getId()); ?>" type="checkbox" name="item[required_modules][]" /><?php echo $module->getName(); ?></label>
|
400 |
</div>
|
433 |
type="text" class="regular-text ltr">
|
434 |
<p class="description">
|
435 |
<?php _e('Comma separated list of tags.', 'content-egg'); ?>
|
436 |
+
<?php _e('Spin syntax and also all tags from title template, will also work here.', 'content-egg'); ?><br>
|
437 |
</p>
|
438 |
</td>
|
439 |
</tr>
|
475 |
<?php endfor; ?>
|
476 |
</div>
|
477 |
<p class="description">
|
478 |
+
<?php _e('Spin syntax and also all tags from title template, will also work here.', 'content-egg'); ?><br>
|
479 |
</p>
|
480 |
</td>
|
481 |
</tr>
|
application/admin/views/_metabox_results.php
CHANGED
@@ -82,8 +82,7 @@ $isAffiliateParser = $module->isAffiliateParser();
|
|
82 |
<div style="padding:4px 0 8px 0;margin:0;">
|
83 |
<span class="text-muted">
|
84 |
<span ng-show="data.last_update"><i class="glyphicon glyphicon-time"></i> <abbr title="<?php _e('Last updated:', 'content-egg'); ?> {{data.last_update * 1000| date:'medium'}}">{{data.last_update * 1000| date:'shortDate'}}</abbr></span>
|
85 |
-
<mark ng-show="data.stock_status" ng-class="{
|
86 |
-
'outofstock': data.stock_status == - 1, 'instock': data.stock_status == 1}">{{data.stock_status| stockStatus}}</mark>
|
87 |
</span>
|
88 |
</div>
|
89 |
<?php endif; ?>
|
82 |
<div style="padding:4px 0 8px 0;margin:0;">
|
83 |
<span class="text-muted">
|
84 |
<span ng-show="data.last_update"><i class="glyphicon glyphicon-time"></i> <abbr title="<?php _e('Last updated:', 'content-egg'); ?> {{data.last_update * 1000| date:'medium'}}">{{data.last_update * 1000| date:'shortDate'}}</abbr></span>
|
85 |
+
<mark ng-show="data.stock_status == -1 || data.stock_status == 1" ng-class="{'outofstock': data.stock_status == -1, 'instock': data.stock_status == 1}">{{data.stock_status| stockStatus}}</mark>
|
|
|
86 |
</span>
|
87 |
</div>
|
88 |
<?php endif; ?>
|
application/admin/views/_promo_box.php
CHANGED
@@ -19,7 +19,7 @@
|
|
19 |
<li>No work with CSV data feeds</li>
|
20 |
</ul>
|
21 |
<p>
|
22 |
-
<a target="_blank" class="button-cegg-banner" href="https://www.keywordrush.com/externalimporter">View...</a>
|
23 |
</p>
|
24 |
|
25 |
|
19 |
<li>No work with CSV data feeds</li>
|
20 |
</ul>
|
21 |
<p>
|
22 |
+
<a target="_blank" class="button-cegg-banner" href="https://www.keywordrush.com/externalimporter?utm_source=cegg&utm_medium=referral&utm_campaign=plugin">View...</a>
|
23 |
</p>
|
24 |
|
25 |
|
application/admin/views/ae_integration.php
CHANGED
@@ -6,20 +6,27 @@
|
|
6 |
<h2><?php _e('Integration with Affiliate Egg', 'content-egg') ?></h2>
|
7 |
<?php settings_errors(); ?>
|
8 |
|
9 |
-
<p>
|
10 |
-
<?php _e('You <a href="https://ce-docs.keywordrush.com/integrations/affiliateeggintegration">can activate</a> parsers of <a href="http://www.keywordrush.com/en/affiliateegg">Affiliate Egg</a> as modules of Content Egg.', 'content-egg'); ?>
|
11 |
-
</p>
|
12 |
-
|
13 |
<?php if (!ContentEgg\application\admin\AeIntegrationConfig::isAEIntegrationPosible()): ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
<p>
|
15 |
-
|
16 |
</p>
|
|
|
|
|
17 |
|
|
|
18 |
<p>
|
19 |
-
<b><?php _e('
|
20 |
<ol>
|
21 |
-
<li><?php
|
22 |
-
</li>
|
23 |
</ol>
|
24 |
</p>
|
25 |
<?php else: ?>
|
6 |
<h2><?php _e('Integration with Affiliate Egg', 'content-egg') ?></h2>
|
7 |
<?php settings_errors(); ?>
|
8 |
|
|
|
|
|
|
|
|
|
9 |
<?php if (!ContentEgg\application\admin\AeIntegrationConfig::isAEIntegrationPosible()): ?>
|
10 |
+
|
11 |
+
<p>
|
12 |
+
<a target="_blank" href="https://www.keywordrush.com/affiliateegg">Affiliate Egg</a> is another plugin our team offers for adding affiliate products to your website. The biggest advantages of Affiliate Egg:
|
13 |
+
</p>
|
14 |
+
<ul>
|
15 |
+
<ol>No API access required. Extracts data directly from store websites.</ol>
|
16 |
+
<ol>Can create custom parsers for almost any store.</ol>
|
17 |
+
<ol>Affiliate Egg parsers can be connected as separate Content Egg plugin modules. This will allow for product price updates, price comparisons, all templates, and other Content Egg features.</ol>
|
18 |
+
</ul>
|
19 |
<p>
|
20 |
+
You can activate AE parsers as separate modules for Content Egg.
|
21 |
</p>
|
22 |
+
<a target="_blank" href="https://ce-docs.keywordrush.com/modules/affiliate-egg-integration"><?php _e('Read more...', 'content-egg'); ?></a>
|
23 |
+
<?php endif; ?>
|
24 |
|
25 |
+
<?php if (!ContentEgg\application\admin\AeIntegrationConfig::isAEIntegrationPosible()): ?>
|
26 |
<p>
|
27 |
+
<b><?php _e('Follow these steps to get started', 'content-egg'); ?>:</b>
|
28 |
<ol>
|
29 |
+
<li><?php echo sprintf(__('Install and activate <a target="_blank" href="%s">Affiliate Egg Pro</a>', 'content-egg'), 'https://www.keywordrush.com/affiliateegg'); ?></li>
|
|
|
30 |
</ol>
|
31 |
</p>
|
32 |
<?php else: ?>
|
application/admin/views/autoblog_edit.php
CHANGED
@@ -13,9 +13,9 @@
|
|
13 |
<?php endif; ?>
|
14 |
<?php endif; ?>
|
15 |
<?php if (!$batch && !$item['id']): ?>
|
16 |
-
<a class="add-new-h2 button-primary" href="<?php echo get_admin_url(get_current_blog_id(), 'admin.php?page=content-egg-autoblog-edit--batch'); ?>"><?php _e('Bulk adding', 'content-egg'); ?></a>
|
17 |
<?php endif; ?>
|
18 |
-
<a class="add-new-h2" href="<?php echo get_admin_url(get_current_blog_id(), 'admin.php?page=content-egg-autoblog'); ?>"><?php _e('Back to list', 'content-egg'); ?></a>
|
19 |
</h2>
|
20 |
|
21 |
<?php if (!empty($notice)): ?>
|
13 |
<?php endif; ?>
|
14 |
<?php endif; ?>
|
15 |
<?php if (!$batch && !$item['id']): ?>
|
16 |
+
<a class="add-new-h2 button-primary" href="<?php echo \get_admin_url(\get_current_blog_id(), 'admin.php?page=content-egg-autoblog-edit--batch'); ?>"><?php _e('Bulk adding', 'content-egg'); ?></a>
|
17 |
<?php endif; ?>
|
18 |
+
<a class="add-new-h2" href="<?php echo \get_admin_url(\get_current_blog_id(), 'admin.php?page=content-egg-autoblog'); ?>"><?php _e('Back to list', 'content-egg'); ?></a>
|
19 |
</h2>
|
20 |
|
21 |
<?php if (!empty($notice)): ?>
|
application/admin/views/autoblog_index.php
CHANGED
@@ -16,7 +16,13 @@
|
|
16 |
<?php
|
17 |
$message = '';
|
18 |
if ($table->current_action() == 'delete' && !empty($_GET['id']))
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
if ($table->current_action() == 'run')
|
21 |
$message = '<div class="updated below-h2" id="message"><p>' . __('Autoblogging finished tasks', 'content-egg') . '</p></div>';
|
22 |
?>
|
16 |
<?php
|
17 |
$message = '';
|
18 |
if ($table->current_action() == 'delete' && !empty($_GET['id']))
|
19 |
+
{
|
20 |
+
if (is_array($_GET['id']))
|
21 |
+
$count = count($_GET['id']);
|
22 |
+
else
|
23 |
+
$count = 1;
|
24 |
+
$message = '<div class="updated below-h2" id="message"><p>' . sprintf(__('Deleted tasks for autoblogging: ', 'content-egg') . ' %d', $count) . '</p></div>';
|
25 |
+
}
|
26 |
if ($table->current_action() == 'run')
|
27 |
$message = '<div class="updated below-h2" id="message"><p>' . __('Autoblogging finished tasks', 'content-egg') . '</p></div>';
|
28 |
?>
|
application/admin/views/module_index.php
CHANGED
@@ -12,7 +12,7 @@ function _cegg_print_module_item(array $modules)
|
|
12 |
echo '<span class="label label-success">' . __('Active', 'content-egg') . '</span>';
|
13 |
if ($module->isDeprecated())
|
14 |
echo '<span class="label label-warning">' . __('Deprecated', 'content-egg') . '</span>';
|
15 |
-
if ($module->isNew())
|
16 |
echo '<span class="label label-info">' . __('New', 'content-egg') . '</span>';
|
17 |
echo '</a>';
|
18 |
}
|
@@ -26,7 +26,10 @@ function _cegg_print_module_item(array $modules)
|
|
26 |
|
27 |
<div class="wrap">
|
28 |
|
29 |
-
<h2
|
|
|
|
|
|
|
30 |
|
31 |
|
32 |
<h2 class="nav-tab-wrapper">
|
@@ -43,7 +46,7 @@ function _cegg_print_module_item(array $modules)
|
|
43 |
</a>
|
44 |
<?php endforeach; ?>
|
45 |
</h2>
|
46 |
-
|
47 |
<br />
|
48 |
<div class="egg-container">
|
49 |
<div class="row">
|
@@ -68,6 +71,13 @@ function _cegg_print_module_item(array $modules)
|
|
68 |
</div>
|
69 |
<?php endif; ?>
|
70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
<div class="panel panel-default">
|
72 |
<div class="panel-heading"><h3 class="panel-title"><?php _e('Coupon modules', 'content-egg'); ?></h3></div>
|
73 |
<div class="list-group">
|
12 |
echo '<span class="label label-success">' . __('Active', 'content-egg') . '</span>';
|
13 |
if ($module->isDeprecated())
|
14 |
echo '<span class="label label-warning">' . __('Deprecated', 'content-egg') . '</span>';
|
15 |
+
if ($module->isNew() && !$module->isFeedParser())
|
16 |
echo '<span class="label label-info">' . __('New', 'content-egg') . '</span>';
|
17 |
echo '</a>';
|
18 |
}
|
26 |
|
27 |
<div class="wrap">
|
28 |
|
29 |
+
<h2>
|
30 |
+
<?php _e('Module Settings', 'content-egg'); ?>
|
31 |
+
<span class="egg-label egg-label-pro">pro <small>v<?php echo \ContentEgg\application\Plugin::version(); ?></small></span>
|
32 |
+
</h2>
|
33 |
|
34 |
|
35 |
<h2 class="nav-tab-wrapper">
|
46 |
</a>
|
47 |
<?php endforeach; ?>
|
48 |
</h2>
|
49 |
+
|
50 |
<br />
|
51 |
<div class="egg-container">
|
52 |
<div class="row">
|
71 |
</div>
|
72 |
<?php endif; ?>
|
73 |
|
74 |
+
<div class="panel panel-default">
|
75 |
+
<div class="panel-heading"><h3 class="panel-title"><?php _e('Feed modules', 'content-egg'); ?></h3></div>
|
76 |
+
<div class="list-group">
|
77 |
+
<?php _cegg_print_module_item(\ContentEgg\application\helpers\AdminHelper::getFeedProductModules()); ?>
|
78 |
+
</div>
|
79 |
+
</div>
|
80 |
+
|
81 |
<div class="panel panel-default">
|
82 |
<div class="panel-heading"><h3 class="panel-title"><?php _e('Coupon modules', 'content-egg'); ?></h3></div>
|
83 |
<div class="list-group">
|
application/admin/views/module_settings.php
CHANGED
@@ -4,8 +4,10 @@
|
|
4 |
<div class="cegg-maincol">
|
5 |
<?php endif; ?>
|
6 |
<div class="wrap">
|
7 |
-
<h2
|
8 |
-
|
|
|
|
|
9 |
|
10 |
<h2 class="nav-tab-wrapper">
|
11 |
<a href="?page=content-egg-modules" class="nav-tab<?php if (!empty($_GET['page']) && $_GET['page'] == 'content-egg-modules') echo ' nav-tab-active'; ?>">
|
@@ -26,7 +28,11 @@
|
|
26 |
<div class="cegg-maincol">
|
27 |
|
28 |
<h3>
|
29 |
-
<?php
|
|
|
|
|
|
|
|
|
30 |
<?php if ($docs_uri = $module->getDocsUri()) echo sprintf('<a target="_blank" class="page-title-action" href="%s">' . __('Documentation', 'content-egg') . '</a>', $docs_uri); ?>
|
31 |
</h3>
|
32 |
|
@@ -84,16 +90,28 @@
|
|
84 |
|
85 |
<?php if (!empty($module) && $module->isFeedModule()): ?>
|
86 |
<?php if ($last_date = $module->getLastImportDateReadable()): ?>
|
87 |
-
|
88 |
-
<li><?php echo sprintf(__('
|
|
|
89 |
<?php endif; ?>
|
90 |
-
<li title="<?php echo \esc_attr(__('Your unzipped feed must be smaller than this.', 'content-egg')); ?>"><?php echo sprintf(__('WordPress memory limit: %s'), WP_MAX_MEMORY_LIMIT); ?>
|
91 |
(<a href="https://wordpress.org/support/article/editing-wp-config-php/#increasing-memory-allocated-to-php" target="_blank">?</a>)
|
92 |
</li>
|
93 |
<?php if ($last_error = $module->getLastImportError()): ?>
|
94 |
-
<li style="color: red;"><?php echo sprintf(__('Last error: %s'), $last_error); ?></li>
|
95 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
<?php endif; ?>
|
|
|
|
|
|
|
97 |
</div>
|
98 |
</div>
|
99 |
</div>
|
4 |
<div class="cegg-maincol">
|
5 |
<?php endif; ?>
|
6 |
<div class="wrap">
|
7 |
+
<h2>
|
8 |
+
<?php _e('Module Settings', 'content-egg'); ?>
|
9 |
+
<span class="egg-label egg-label-pro">pro <small>v<?php echo \ContentEgg\application\Plugin::version(); ?></small></span>
|
10 |
+
</h2>
|
11 |
|
12 |
<h2 class="nav-tab-wrapper">
|
13 |
<a href="?page=content-egg-modules" class="nav-tab<?php if (!empty($_GET['page']) && $_GET['page'] == 'content-egg-modules') echo ' nav-tab-active'; ?>">
|
28 |
<div class="cegg-maincol">
|
29 |
|
30 |
<h3>
|
31 |
+
<?php if ($module->isFeedParser() && !$module->isActive()): ?>
|
32 |
+
<?php _e('Add new feed module', 'content-egg'); ?>
|
33 |
+
<?php else: ?>
|
34 |
+
<?php echo \esc_html(sprintf(__('%s Settings', 'content-egg'), $module->getName())); ?>
|
35 |
+
<?php endif; ?>
|
36 |
<?php if ($docs_uri = $module->getDocsUri()) echo sprintf('<a target="_blank" class="page-title-action" href="%s">' . __('Documentation', 'content-egg') . '</a>', $docs_uri); ?>
|
37 |
</h3>
|
38 |
|
90 |
|
91 |
<?php if (!empty($module) && $module->isFeedModule()): ?>
|
92 |
<?php if ($last_date = $module->getLastImportDateReadable()): ?>
|
93 |
+
<?php $prod_count = $module->getProductCount(); ?>
|
94 |
+
<li><?php echo sprintf(__('Last feed import: %s.', 'content-egg'), $last_date); ?></li>
|
95 |
+
<li><?php echo sprintf(__('Total products: %d.', 'content-egg'), $prod_count); ?></li>
|
96 |
<?php endif; ?>
|
97 |
+
<li title="<?php echo \esc_attr(__('Your unzipped feed must be smaller than this.', 'content-egg')); ?>"><?php echo sprintf(__('WordPress memory limit: %s', 'content-egg'), \WP_MAX_MEMORY_LIMIT); ?>
|
98 |
(<a href="https://wordpress.org/support/article/editing-wp-config-php/#increasing-memory-allocated-to-php" target="_blank">?</a>)
|
99 |
</li>
|
100 |
<?php if ($last_error = $module->getLastImportError()): ?>
|
101 |
+
<li style="color: red;"><?php echo sprintf(__('Last error: %s', 'content-egg'), $last_error); ?></li>
|
102 |
+
<?php endif; ?>
|
103 |
+
|
104 |
+
<?php if ($last_date && $prod_count): ?>
|
105 |
+
<hr /><br />
|
106 |
+
<div><a target="_blank" class="page-title-action" href="<?php echo \get_admin_url(\get_current_blog_id(), 'admin.php?page=content-egg-tools&action=feed-export&field=url&module=' . urlencode($module->getId())); ?>"><?php _e('Export product URLs', 'content-egg') ?></a></div>
|
107 |
+
<br />
|
108 |
+
<div><a target="_blank" class="page-title-action" href="<?php echo \get_admin_url(\get_current_blog_id(), 'admin.php?page=content-egg-tools&action=feed-export&field=ean&module=' . urlencode($module->getId())); ?>"><?php _e('Export product EANs', 'content-egg') ?></a></div>
|
109 |
+
<br />
|
110 |
+
<div><a target="_blank" class="page-title-action" href="<?php echo \get_admin_url(\get_current_blog_id(), 'admin.php?page=content-egg-tools&action=feed-export&field=ean_dublicate&module=' . urlencode($module->getId())); ?>"><?php _e('Export dublicate EANs', 'content-egg') ?></a></div>
|
111 |
<?php endif; ?>
|
112 |
+
|
113 |
+
<?php endif; ?>
|
114 |
+
|
115 |
</div>
|
116 |
</div>
|
117 |
</div>
|
application/admin/views/prefill.php
CHANGED
@@ -33,6 +33,8 @@ use ContentEgg\application\admin\GeneralConfig;
|
|
33 |
<option value="15000">15</option>
|
34 |
<option value="20000">20</option>
|
35 |
<option value="30000">30</option>
|
|
|
|
|
36 |
</select>
|
37 |
<p class="description"><?php _e('Delay in seconds between each post prefill.', 'content-egg'); ?></p>
|
38 |
|
@@ -42,7 +44,7 @@ use ContentEgg\application\admin\GeneralConfig;
|
|
42 |
<th scope="row"><label for="module_id"><?php _e('Add data for module', 'content-egg'); ?></label></th>
|
43 |
<td>
|
44 |
<select id="module_id">
|
45 |
-
<?php foreach (ModuleManager::getInstance()->getParserModules() as $module): ?>
|
46 |
<option value="<?php echo $module->getId(); ?>"><?php echo esc_html($module->getName()); ?></option>
|
47 |
<?php endforeach; ?>
|
48 |
</select>
|
@@ -52,12 +54,15 @@ use ContentEgg\application\admin\GeneralConfig;
|
|
52 |
<th scope="row"><label for="keyword_source"><?php _e('Keyword source', 'content-egg'); ?></label></th>
|
53 |
<td>
|
54 |
<select id="keyword_source">
|
55 |
-
<option value="
|
56 |
-
<option value="
|
57 |
<option value="_tags"><?php _e('Post tags', 'content-egg'); ?></option>
|
58 |
<option value="_custom_field"><?php _e('Arbitrary custom field', 'content-egg'); ?></option>
|
59 |
-
<?php foreach (ModuleManager::getInstance()->getAffiliateParsers() as $module): ?>
|
60 |
-
<option value="<?php echo $module->getId(); ?>"><?php
|
|
|
|
|
|
|
61 |
<?php endforeach; ?>
|
62 |
</select>
|
63 |
<input style="display: none;" id="custom_field" type="text" class="regular-text" placeholder="<?php _e('Set the name of a custom field', 'content-egg'); ?>">
|
@@ -142,7 +147,7 @@ use ContentEgg\application\admin\GeneralConfig;
|
|
142 |
<div>
|
143 |
<br>
|
144 |
<button class="button-primary" type="button" id="start_prefill"><?php _e('Start', 'content-egg'); ?></button>
|
145 |
-
<button class="button-primary" type="button" id="start_prefill_begin"><?php _e('
|
146 |
<button class="button-secondary" type="button" id="stop_prefill" disabled><?php _e('Stop', 'content-egg'); ?></button>
|
147 |
|
148 |
<span id="ajaxWaiting__" style="display:none;"><img src="<?php echo \ContentEgg\PLUGIN_RES . '/img/ajax-loader.gif' ?>" /></span>
|
33 |
<option value="15000">15</option>
|
34 |
<option value="20000">20</option>
|
35 |
<option value="30000">30</option>
|
36 |
+
<option value="0">0</option>
|
37 |
+
|
38 |
</select>
|
39 |
<p class="description"><?php _e('Delay in seconds between each post prefill.', 'content-egg'); ?></p>
|
40 |
|
44 |
<th scope="row"><label for="module_id"><?php _e('Add data for module', 'content-egg'); ?></label></th>
|
45 |
<td>
|
46 |
<select id="module_id">
|
47 |
+
<?php foreach (ModuleManager::getInstance()->getParserModules(true) as $module): ?>
|
48 |
<option value="<?php echo $module->getId(); ?>"><?php echo esc_html($module->getName()); ?></option>
|
49 |
<?php endforeach; ?>
|
50 |
</select>
|
54 |
<th scope="row"><label for="keyword_source"><?php _e('Keyword source', 'content-egg'); ?></label></th>
|
55 |
<td>
|
56 |
<select id="keyword_source">
|
57 |
+
<option value="_title"><?php _e('Post title', 'content-egg'); ?></option>
|
58 |
+
<option value="_density"><?php _e('Keyword density', 'content-egg'); ?></option>
|
59 |
<option value="_tags"><?php _e('Post tags', 'content-egg'); ?></option>
|
60 |
<option value="_custom_field"><?php _e('Arbitrary custom field', 'content-egg'); ?></option>
|
61 |
+
<?php foreach (ModuleManager::getInstance()->getAffiliateParsers(true) as $module): ?>
|
62 |
+
<option value="_keyword_<?php echo $module->getId(); ?>"><?php echo \esc_html($module->getName() . ': ' . __('autoupdate keyword', 'content-egg')); ?> </option>
|
63 |
+
<?php endforeach; ?>
|
64 |
+
<?php foreach (ModuleManager::getInstance()->getAffiliateParsers(true) as $module): ?>
|
65 |
+
<option value="_ean_<?php echo $module->getId(); ?>"><?php echo \esc_html($module->getName() . ': ' . __('EAN', 'content-egg')); ?> </option>
|
66 |
<?php endforeach; ?>
|
67 |
</select>
|
68 |
<input style="display: none;" id="custom_field" type="text" class="regular-text" placeholder="<?php _e('Set the name of a custom field', 'content-egg'); ?>">
|
147 |
<div>
|
148 |
<br>
|
149 |
<button class="button-primary" type="button" id="start_prefill"><?php _e('Start', 'content-egg'); ?></button>
|
150 |
+
<button class="button-primary" type="button" id="start_prefill_begin"><?php _e('Restart', 'content-egg'); ?></button>
|
151 |
<button class="button-secondary" type="button" id="stop_prefill" disabled><?php _e('Stop', 'content-egg'); ?></button>
|
152 |
|
153 |
<span id="ajaxWaiting__" style="display:none;"><img src="<?php echo \ContentEgg\PLUGIN_RES . '/img/ajax-loader.gif' ?>" /></span>
|
application/admin/views/settings.php
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
<h2>
|
8 |
<?php _e('Content Egg Settings', 'content-egg'); ?>
|
9 |
<?php if (\ContentEgg\application\Plugin::isPro()): ?>
|
10 |
-
|
11 |
<?php else: ?>
|
12 |
<a target="_blank" class="page-title-action" href="<?php echo \ContentEgg\application\Plugin::pluginSiteUrl(); ?>">Go PRO</a>
|
13 |
<?php endif; ?>
|
7 |
<h2>
|
8 |
<?php _e('Content Egg Settings', 'content-egg'); ?>
|
9 |
<?php if (\ContentEgg\application\Plugin::isPro()): ?>
|
10 |
+
<span class="egg-label egg-label-pro">pro <small>v<?php echo \ContentEgg\application\Plugin::version(); ?></small></span>
|
11 |
<?php else: ?>
|
12 |
<a target="_blank" class="page-title-action" href="<?php echo \ContentEgg\application\Plugin::pluginSiteUrl(); ?>">Go PRO</a>
|
13 |
<?php endif; ?>
|
application/components/AffiliateFeedParserModule.php
CHANGED
@@ -39,12 +39,12 @@ abstract class AffiliateFeedParserModule extends AffiliateParserModule {
|
|
39 |
$this->product_model = $this->getProductModel();
|
40 |
|
41 |
// download feed in background
|
42 |
-
\add_action('cegg_' . $this->getId() . '_init_products', array(get_called_class(), 'initProducts'));
|
43 |
}
|
44 |
|
45 |
-
public static function initProducts()
|
46 |
{
|
47 |
-
$m = ModuleManager::factory(
|
48 |
|
49 |
try
|
50 |
{
|
@@ -227,6 +227,8 @@ abstract class AffiliateFeedParserModule extends AffiliateParserModule {
|
|
227 |
|
228 |
protected function processFeed($file)
|
229 |
{
|
|
|
|
|
230 |
$handle = fopen($file, "r");
|
231 |
$fields = array();
|
232 |
$products = array();
|
@@ -236,6 +238,9 @@ abstract class AffiliateFeedParserModule extends AffiliateParserModule {
|
|
236 |
$i = 0;
|
237 |
while (($data = fgetcsv($handle, 0, $delimer)) !== false)
|
238 |
{
|
|
|
|
|
|
|
239 |
if (!$fields)
|
240 |
{
|
241 |
$fields = $data;
|
@@ -245,8 +250,19 @@ abstract class AffiliateFeedParserModule extends AffiliateParserModule {
|
|
245 |
continue;
|
246 |
$data = array_combine($fields, $data);
|
247 |
|
248 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
continue;
|
|
|
250 |
if (!empty($product['ean']))
|
251 |
$product['ean'] = TextHelper::fixEan($product['ean']);
|
252 |
if ($in_stock_only && $product['stock_status'] == ContentProduct::STOCK_STATUS_OUT_OF_STOCK)
|
@@ -273,7 +289,7 @@ abstract class AffiliateFeedParserModule extends AffiliateParserModule {
|
|
273 |
return '';
|
274 |
|
275 |
if ($last_import < 0)
|
276 |
-
return __('Product import is in progress
|
277 |
|
278 |
if (time() - $last_import <= 43200)
|
279 |
return sprintf(__('%s ago', '%s = human-readable time difference', 'content-egg'), \human_time_diff($last_import, time()));
|
39 |
$this->product_model = $this->getProductModel();
|
40 |
|
41 |
// download feed in background
|
42 |
+
\add_action('cegg_' . $this->getId() . '_init_products', array(get_called_class(), 'initProducts'), 10, 1);
|
43 |
}
|
44 |
|
45 |
+
public static function initProducts($module_id)
|
46 |
{
|
47 |
+
$m = ModuleManager::factory($module_id);
|
48 |
|
49 |
try
|
50 |
{
|
227 |
|
228 |
protected function processFeed($file)
|
229 |
{
|
230 |
+
$encoding = $this->config('encoding', 'UTF-8');
|
231 |
+
|
232 |
$handle = fopen($file, "r");
|
233 |
$fields = array();
|
234 |
$products = array();
|
238 |
$i = 0;
|
239 |
while (($data = fgetcsv($handle, 0, $delimer)) !== false)
|
240 |
{
|
241 |
+
if ($encoding == 'ISO-8859-1')
|
242 |
+
$data = array_map('utf8_encode', $data);
|
243 |
+
|
244 |
if (!$fields)
|
245 |
{
|
246 |
$fields = $data;
|
250 |
continue;
|
251 |
$data = array_combine($fields, $data);
|
252 |
|
253 |
+
try
|
254 |
+
{
|
255 |
+
$product = $this->feedProductPrepare($data);
|
256 |
+
} catch (\Exception $e)
|
257 |
+
{
|
258 |
+
$this->setLastImportError($e->getMessage());
|
259 |
+
fclose($handle);
|
260 |
+
return;
|
261 |
+
}
|
262 |
+
|
263 |
+
if (!$product)
|
264 |
continue;
|
265 |
+
|
266 |
if (!empty($product['ean']))
|
267 |
$product['ean'] = TextHelper::fixEan($product['ean']);
|
268 |
if ($in_stock_only && $product['stock_status'] == ContentProduct::STOCK_STATUS_OUT_OF_STOCK)
|
289 |
return '';
|
290 |
|
291 |
if ($last_import < 0)
|
292 |
+
return __('Product import is in progress', 'content-egg');
|
293 |
|
294 |
if (time() - $last_import <= 43200)
|
295 |
return sprintf(__('%s ago', '%s = human-readable time difference', 'content-egg'), \human_time_diff($last_import, time()));
|
application/components/AffiliateFeedParserModuleConfig.php
CHANGED
@@ -51,7 +51,7 @@ abstract class AffiliateFeedParserModuleConfig extends AffiliateParserModuleConf
|
|
51 |
'description' => __('Partial URL match', 'content-egg')
|
52 |
. '<p class="description">' . __('You can use part of a URL to search for products by URL.', 'content-egg') . '</p>',
|
53 |
'callback' => array($this, 'render_checkbox'),
|
54 |
-
'default' =>
|
55 |
'section' => 'default',
|
56 |
),
|
57 |
'save_img' => array(
|
@@ -61,8 +61,8 @@ abstract class AffiliateFeedParserModuleConfig extends AffiliateParserModuleConf
|
|
61 |
'default' => false,
|
62 |
'section' => 'default',
|
63 |
)));
|
64 |
-
|
65 |
-
$options['update_mode']['dropdown_options'] = array('cron' => __('
|
66 |
$options['update_mode']['default'] = 'cron';
|
67 |
$options['update_mode']['validator'][] = array(
|
68 |
'call' => array($this, 'emptyLastImportDate'),
|
@@ -78,8 +78,11 @@ abstract class AffiliateFeedParserModuleConfig extends AffiliateParserModuleConf
|
|
78 |
|
79 |
// download feed in background
|
80 |
$hook = 'cegg_' . $this->getModuleId() . '_init_products';
|
|
|
81 |
if ($this->option('is_active') && !\wp_next_scheduled($hook))
|
82 |
-
|
|
|
|
|
83 |
|
84 |
return true;
|
85 |
}
|
51 |
'description' => __('Partial URL match', 'content-egg')
|
52 |
. '<p class="description">' . __('You can use part of a URL to search for products by URL.', 'content-egg') . '</p>',
|
53 |
'callback' => array($this, 'render_checkbox'),
|
54 |
+
'default' => true,
|
55 |
'section' => 'default',
|
56 |
),
|
57 |
'save_img' => array(
|
61 |
'default' => false,
|
62 |
'section' => 'default',
|
63 |
)));
|
64 |
+
|
65 |
+
$options['update_mode']['dropdown_options'] = array('cron' => __('Cron', 'content-egg'));
|
66 |
$options['update_mode']['default'] = 'cron';
|
67 |
$options['update_mode']['validator'][] = array(
|
68 |
'call' => array($this, 'emptyLastImportDate'),
|
78 |
|
79 |
// download feed in background
|
80 |
$hook = 'cegg_' . $this->getModuleId() . '_init_products';
|
81 |
+
|
82 |
if ($this->option('is_active') && !\wp_next_scheduled($hook))
|
83 |
+
{
|
84 |
+
\wp_schedule_single_event(time() + 1, $hook, array('module_id' => $this->getModuleId()));
|
85 |
+
}
|
86 |
|
87 |
return true;
|
88 |
}
|
application/components/AffiliateParserModule.php
CHANGED
@@ -11,7 +11,7 @@ use ContentEgg\application\helpers\TextHelper;
|
|
11 |
*
|
12 |
* @author keywordrush.com <support@keywordrush.com>
|
13 |
* @link https://www.keywordrush.com
|
14 |
-
* @copyright Copyright ©
|
15 |
*/
|
16 |
abstract class AffiliateParserModule extends ParserModule {
|
17 |
|
@@ -40,7 +40,7 @@ abstract class AffiliateParserModule extends ParserModule {
|
|
40 |
else
|
41 |
return false;
|
42 |
}
|
43 |
-
|
44 |
public function isItemsUpdateAvailable()
|
45 |
{
|
46 |
return false;
|
11 |
*
|
12 |
* @author keywordrush.com <support@keywordrush.com>
|
13 |
* @link https://www.keywordrush.com
|
14 |
+
* @copyright Copyright © 2021 keywordrush.com
|
15 |
*/
|
16 |
abstract class AffiliateParserModule extends ParserModule {
|
17 |
|
40 |
else
|
41 |
return false;
|
42 |
}
|
43 |
+
|
44 |
public function isItemsUpdateAvailable()
|
45 |
{
|
46 |
return false;
|
application/components/AffiliateParserModuleConfig.php
CHANGED
@@ -48,9 +48,9 @@ abstract class AffiliateParserModuleConfig extends ParserModuleConfig {
|
|
48 |
'description' => '',
|
49 |
'callback' => array($this, 'render_dropdown'),
|
50 |
'dropdown_options' => array(
|
51 |
-
'visit' => __('
|
52 |
-
'cron' => __('
|
53 |
-
'visit_cron' => __('
|
54 |
),
|
55 |
'default' => 'visit',
|
56 |
);
|
48 |
'description' => '',
|
49 |
'callback' => array($this, 'render_dropdown'),
|
50 |
'dropdown_options' => array(
|
51 |
+
'visit' => __('Page view', 'content-egg'),
|
52 |
+
'cron' => __('Cron', 'content-egg'),
|
53 |
+
'visit_cron' => __('Page view + Cron', 'content-egg'),
|
54 |
),
|
55 |
'default' => 'visit',
|
56 |
);
|
application/components/Config.php
CHANGED
@@ -181,7 +181,7 @@ abstract class Config {
|
|
181 |
{
|
182 |
echo '<textarea name="' . esc_attr($args['option_name']) . '['
|
183 |
. esc_attr($args['name']) . ']" id="'
|
184 |
-
. esc_attr($args['label_for']) . '" rows="
|
185 |
if (!empty($args['render_after']))
|
186 |
echo $args['render_after'];
|
187 |
if ($args['description'])
|
181 |
{
|
182 |
echo '<textarea name="' . esc_attr($args['option_name']) . '['
|
183 |
. esc_attr($args['name']) . ']" id="'
|
184 |
+
. esc_attr($args['label_for']) . '" rows="2" class="large-text code">' . esc_html($args['value']) . '</textarea>';
|
185 |
if (!empty($args['render_after']))
|
186 |
echo $args['render_after'];
|
187 |
if ($args['description'])
|
application/components/ContentManager.php
CHANGED
@@ -17,8 +17,8 @@ use ContentEgg\application\helpers\TextHelper;
|
|
17 |
* ContentManager class file
|
18 |
*
|
19 |
* @author keywordrush.com <support@keywordrush.com>
|
20 |
-
* @link
|
21 |
-
* @copyright Copyright ©
|
22 |
*/
|
23 |
class ContentManager {
|
24 |
|
@@ -160,8 +160,10 @@ class ContentManager {
|
|
160 |
if ($key == 'img')
|
161 |
$data = \esc_url_raw($data);
|
162 |
else
|
|
|
163 |
$data = \wp_sanitize_redirect($data);
|
164 |
-
|
|
|
165 |
} elseif ($key === 'description')
|
166 |
$data = TextHelper::sanitizeHtml($data);
|
167 |
elseif ($key === 'linkHtml')
|
@@ -210,6 +212,13 @@ class ContentManager {
|
|
210 |
|
211 |
$data = self::$_view_data[$data_id];
|
212 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
// out of stock products
|
214 |
$outofstock_product = GeneralConfig::getInstance()->option('outofstock_product');
|
215 |
//@see: ModuleViewer::getData for hide_product filter
|
@@ -273,7 +282,7 @@ class ContentManager {
|
|
273 |
public static function dataPreviewPrepare(array $data, $module_id, $post_id, $params = array())
|
274 |
{
|
275 |
$is_ssl = \is_ssl();
|
276 |
-
|
277 |
foreach ($data as $key => $d)
|
278 |
{
|
279 |
if (empty($data[$key]['extra']) || !is_array($data[$key]['extra']))
|
@@ -289,8 +298,8 @@ class ContentManager {
|
|
289 |
elseif (empty($d['logo']) && isset($d['extra']['logo']))
|
290 |
$data[$key]['logo'] = $d['extra']['logo'];
|
291 |
|
292 |
-
// https fix for
|
293 |
-
if ($is_ssl &&
|
294 |
$data[$key]['img'] = str_replace('http://', '//', $d['img']);
|
295 |
|
296 |
if (isset($d['percentageSaved']))
|
@@ -303,15 +312,15 @@ class ContentManager {
|
|
303 |
|
304 |
if (empty($d['rating']) && isset($d['extra']['data']['rating']))
|
305 |
$data[$key]['rating'] = $d['extra']['data']['rating'];
|
306 |
-
|
307 |
if (isset($data[$key]['rating']))
|
308 |
{
|
309 |
-
$data[$key]['rating'] = (float) $data[$key]['rating'];
|
310 |
if ($data[$key]['rating'] < 0 || $data[$key]['rating'] > 5)
|
311 |
$data[$key]['rating'] = 0;
|
312 |
-
$data[$key]['rating'] = round(($data[$key]['rating'] * 2) / 2);
|
313 |
}
|
314 |
-
|
315 |
$data[$key]['post_id'] = $post_id;
|
316 |
$data[$key]['module_id'] = $module_id;
|
317 |
}
|
@@ -336,6 +345,8 @@ class ContentManager {
|
|
336 |
public static function updateByKeyword($post_id, $module_id)
|
337 |
{
|
338 |
$keyword = \get_post_meta($post_id, ContentManager::META_PREFIX_KEYWORD . $module_id, true);
|
|
|
|
|
339 |
if (!$keyword)
|
340 |
return;
|
341 |
|
@@ -521,8 +532,10 @@ class ContentManager {
|
|
521 |
$is_review_post_type = false;
|
522 |
|
523 |
if (\get_post_type($post_id) == 'product')
|
|
|
524 |
$is_woo_product = true;
|
525 |
-
|
|
|
526 |
$is_woo_product = false;
|
527 |
|
528 |
$comments_keys_map = array();
|
@@ -580,11 +593,11 @@ class ContentManager {
|
|
580 |
}
|
581 |
}
|
582 |
|
|
|
|
|
|
|
583 |
if ($is_woo_product && class_exists('\WC_Comments'))
|
584 |
-
{
|
585 |
-
// Ensure product average rating and review count is kept up to date.
|
586 |
\WC_Comments::clear_transients($post_id);
|
587 |
-
}
|
588 |
}
|
589 |
|
590 |
public static function getMainProduct($modules_data, $main_product_selector = 'min_price')
|
17 |
* ContentManager class file
|
18 |
*
|
19 |
* @author keywordrush.com <support@keywordrush.com>
|
20 |
+
* @link https://www.keywordrush.com
|
21 |
+
* @copyright Copyright © 2021 keywordrush.com
|
22 |
*/
|
23 |
class ContentManager {
|
24 |
|
160 |
if ($key == 'img')
|
161 |
$data = \esc_url_raw($data);
|
162 |
else
|
163 |
+
{
|
164 |
$data = \wp_sanitize_redirect($data);
|
165 |
+
$data = filter_var($data, FILTER_SANITIZE_URL);
|
166 |
+
}
|
167 |
} elseif ($key === 'description')
|
168 |
$data = TextHelper::sanitizeHtml($data);
|
169 |
elseif ($key === 'linkHtml')
|
212 |
|
213 |
$data = self::$_view_data[$data_id];
|
214 |
|
215 |
+
|
216 |
+
foreach ($data as $key => $d)
|
217 |
+
{
|
218 |
+
if (!$key)
|
219 |
+
unset($data[$key]);
|
220 |
+
}
|
221 |
+
|
222 |
// out of stock products
|
223 |
$outofstock_product = GeneralConfig::getInstance()->option('outofstock_product');
|
224 |
//@see: ModuleViewer::getData for hide_product filter
|
282 |
public static function dataPreviewPrepare(array $data, $module_id, $post_id, $params = array())
|
283 |
{
|
284 |
$is_ssl = \is_ssl();
|
285 |
+
//$http_home_url = str_replace('https://', 'http://', \home_url('/'));
|
286 |
foreach ($data as $key => $d)
|
287 |
{
|
288 |
if (empty($data[$key]['extra']) || !is_array($data[$key]['extra']))
|
298 |
elseif (empty($d['logo']) && isset($d['extra']['logo']))
|
299 |
$data[$key]['logo'] = $d['extra']['logo'];
|
300 |
|
301 |
+
// https fix for all images
|
302 |
+
if ($is_ssl && isset($data[$key]['img']))
|
303 |
$data[$key]['img'] = str_replace('http://', '//', $d['img']);
|
304 |
|
305 |
if (isset($d['percentageSaved']))
|
312 |
|
313 |
if (empty($d['rating']) && isset($d['extra']['data']['rating']))
|
314 |
$data[$key]['rating'] = $d['extra']['data']['rating'];
|
315 |
+
|
316 |
if (isset($data[$key]['rating']))
|
317 |
{
|
318 |
+
$data[$key]['rating'] = (float) $data[$key]['rating'];
|
319 |
if ($data[$key]['rating'] < 0 || $data[$key]['rating'] > 5)
|
320 |
$data[$key]['rating'] = 0;
|
321 |
+
$data[$key]['rating'] = round(($data[$key]['rating'] * 2) / 2);
|
322 |
}
|
323 |
+
|
324 |
$data[$key]['post_id'] = $post_id;
|
325 |
$data[$key]['module_id'] = $module_id;
|
326 |
}
|
345 |
public static function updateByKeyword($post_id, $module_id)
|
346 |
{
|
347 |
$keyword = \get_post_meta($post_id, ContentManager::META_PREFIX_KEYWORD . $module_id, true);
|
348 |
+
$keyword = \apply_filters('cegg_keyword_update', $keyword, $post_id, $module_id);
|
349 |
+
|
350 |
if (!$keyword)
|
351 |
return;
|
352 |
|
532 |
$is_review_post_type = false;
|
533 |
|
534 |
if (\get_post_type($post_id) == 'product')
|
535 |
+
{
|
536 |
$is_woo_product = true;
|
537 |
+
$comment_data['comment_type'] = 'review';
|
538 |
+
} else
|
539 |
$is_woo_product = false;
|
540 |
|
541 |
$comments_keys_map = array();
|
593 |
}
|
594 |
}
|
595 |
|
596 |
+
if ($is_woo_product)
|
597 |
+
\update_post_meta($post_id, '_wc_review_count', count($normalized_comments));
|
598 |
+
|
599 |
if ($is_woo_product && class_exists('\WC_Comments'))
|
|
|
|
|
600 |
\WC_Comments::clear_transients($post_id);
|
|
|
601 |
}
|
602 |
|
603 |
public static function getMainProduct($modules_data, $main_product_selector = 'min_price')
|
application/components/LinkHandler.php
CHANGED
@@ -156,7 +156,7 @@ class LinkHandler {
|
|
156 |
$replacement = substr($parts[2], 0, -1);
|
157 |
|
158 |
// null character allows a premature regex end and "/../e" injection
|
159 |
-
if (strpos($pattern, 0) !== false || !trim($pattern))
|
160 |
return $url;
|
161 |
|
162 |
if ($result = @preg_replace($pattern, $replacement, $url))
|
156 |
$replacement = substr($parts[2], 0, -1);
|
157 |
|
158 |
// null character allows a premature regex end and "/../e" injection
|
159 |
+
if (strpos($pattern, chr(0)) !== false || !trim($pattern))
|
160 |
return $url;
|
161 |
|
162 |
if ($result = @preg_replace($pattern, $replacement, $url))
|
application/components/Module.php
CHANGED
@@ -210,14 +210,14 @@ abstract class Module {
|
|
210 |
|
211 |
public static function getPathId($module_id)
|
212 |
{
|
213 |
-
// AE module?
|
214 |
$parts = explode('__', $module_id);
|
215 |
return $parts[0];
|
216 |
}
|
217 |
|
218 |
public function getShortId($module_id)
|
219 |
{
|
220 |
-
// AE module?
|
221 |
$parts = explode('__', $module_id);
|
222 |
if (count($parts) == 2)
|
223 |
return $parts[1];
|
210 |
|
211 |
public static function getPathId($module_id)
|
212 |
{
|
213 |
+
// AE or Feed module?
|
214 |
$parts = explode('__', $module_id);
|
215 |
return $parts[0];
|
216 |
}
|
217 |
|
218 |
public function getShortId($module_id)
|
219 |
{
|
220 |
+
// AE or Feed module?
|
221 |
$parts = explode('__', $module_id);
|
222 |
if (count($parts) == 2)
|
223 |
return $parts[1];
|
application/components/ModuleConfig.php
CHANGED
@@ -58,7 +58,7 @@ abstract class ModuleConfig extends Config {
|
|
58 |
|
59 |
public function add_admin_menu()
|
60 |
{
|
61 |
-
\add_submenu_page('options.php', $this->
|
62 |
}
|
63 |
|
64 |
public function settings_page()
|
58 |
|
59 |
public function add_admin_menu()
|
60 |
{
|
61 |
+
\add_submenu_page('options.php', $this->getModuleName() . ' ' . __('settings', 'content-egg') . ' ‹ Content Egg', '', 'manage_options', $this->page_slug(), array($this, 'settings_page'));
|
62 |
}
|
63 |
|
64 |
public function settings_page()
|
application/components/ModuleManager.php
CHANGED
@@ -12,21 +12,23 @@ use \ContentEgg\application\admin\AeIntegrationConfig;
|
|
12 |
* ModuleManager class file
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
-
* @link
|
16 |
-
* @copyright Copyright ©
|
17 |
*/
|
18 |
class ModuleManager {
|
19 |
|
20 |
const DEFAULT_MODULES_DIR = 'application/modules';
|
21 |
const AE_MODULES_PREFIX = 'AE';
|
|
|
|
|
22 |
|
23 |
private static $modules = array();
|
24 |
private static $active_modules = array();
|
25 |
private static $configs = array();
|
26 |
private static $instance = null;
|
27 |
// hidden system modules
|
28 |
-
private static $hidden_modules = array('AE');
|
29 |
-
private static $custom_modules = array(
|
30 |
|
31 |
public static function getInstance()
|
32 |
{
|
@@ -43,7 +45,6 @@ class ModuleManager {
|
|
43 |
|
44 |
public function adminInit()
|
45 |
{
|
46 |
-
//\add_action('parent_file', array($this, 'highlightAdminMenu'));
|
47 |
foreach ($this->getConfigurableModules() as $module)
|
48 |
{
|
49 |
$config = self::configFactory($module->getId());
|
@@ -60,12 +61,10 @@ class ModuleManager {
|
|
60 |
|
61 |
if (substr($plugin_page, 0, strlen(Plugin::slug())) !== Plugin::slug())
|
62 |
return $parent_file;
|
63 |
-
//\ContentEgg\prn($parent_file);
|
64 |
-
//\ContentEgg\prnx($plugin_page);
|
65 |
|
66 |
if ($parent_file == 'options.php' && $plugin_page == 'content-egg-settings-affiliate')
|
67 |
$plugin_page = 'content-egg-settings-affiliate';
|
68 |
-
|
69 |
return $parent_file;
|
70 |
}
|
71 |
|
@@ -78,12 +77,15 @@ class ModuleManager {
|
|
78 |
|
79 |
sort($modules_ids);
|
80 |
|
|
|
|
|
|
|
81 |
$ae_modules_ids = $this->getAffEggModules();
|
82 |
sort($ae_modules_ids);
|
83 |
|
84 |
-
$modules_ids = array_merge($modules_ids, $ae_modules_ids);
|
85 |
$modules_ids = \apply_filters('content_egg_modules', $modules_ids);
|
86 |
-
|
87 |
// create modules
|
88 |
foreach ($modules_ids as $module_id)
|
89 |
{
|
@@ -157,6 +159,27 @@ class ModuleManager {
|
|
157 |
return $result;
|
158 |
}
|
159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
public static function isCustomModule($module_id)
|
161 |
{
|
162 |
if (in_array($module_id, self::$custom_modules))
|
@@ -188,7 +211,7 @@ class ModuleManager {
|
|
188 |
|
189 |
self::$modules[$module_id] = $module;
|
190 |
}
|
191 |
-
|
192 |
return self::$modules[$module_id];
|
193 |
}
|
194 |
|
@@ -316,7 +339,7 @@ class ModuleManager {
|
|
316 |
}
|
317 |
return $result;
|
318 |
}
|
319 |
-
|
320 |
public function moduleExists($module_id)
|
321 |
{
|
322 |
if (isset(self::$modules[$module_id]))
|
@@ -341,7 +364,7 @@ class ModuleManager {
|
|
341 |
$config = $module->getConfigInstance();
|
342 |
$options[$config->option_name()] = $config->getOptionValues();
|
343 |
//$opt_name = $module->getConfigInstance()->option_name();
|
344 |
-
//$options[$opt_name] = \get_option($opt_name);
|
345 |
}
|
346 |
return $options;
|
347 |
}
|
@@ -378,10 +401,27 @@ class ModuleManager {
|
|
378 |
{
|
379 |
$results = array();
|
380 |
$modules = ModuleManager::getInstance()->getAffiliateParsers($only_active);
|
|
|
381 |
foreach ($modules as $module_id => $module)
|
382 |
{
|
383 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
384 |
}
|
|
|
|
|
|
|
385 |
return $results;
|
386 |
}
|
387 |
|
12 |
* ModuleManager class file
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
+
* @link https://www.keywordrush.com
|
16 |
+
* @copyright Copyright © 2021 keywordrush.com
|
17 |
*/
|
18 |
class ModuleManager {
|
19 |
|
20 |
const DEFAULT_MODULES_DIR = 'application/modules';
|
21 |
const AE_MODULES_PREFIX = 'AE';
|
22 |
+
const FEED_MODULES_PREFIX = 'Feed';
|
23 |
+
const MAX_NUM_FEED_MODULES = 25;
|
24 |
|
25 |
private static $modules = array();
|
26 |
private static $active_modules = array();
|
27 |
private static $configs = array();
|
28 |
private static $instance = null;
|
29 |
// hidden system modules
|
30 |
+
private static $hidden_modules = array('AE', 'Feed');
|
31 |
+
private static $custom_modules = array();
|
32 |
|
33 |
public static function getInstance()
|
34 |
{
|
45 |
|
46 |
public function adminInit()
|
47 |
{
|
|
|
48 |
foreach ($this->getConfigurableModules() as $module)
|
49 |
{
|
50 |
$config = self::configFactory($module->getId());
|
61 |
|
62 |
if (substr($plugin_page, 0, strlen(Plugin::slug())) !== Plugin::slug())
|
63 |
return $parent_file;
|
|
|
|
|
64 |
|
65 |
if ($parent_file == 'options.php' && $plugin_page == 'content-egg-settings-affiliate')
|
66 |
$plugin_page = 'content-egg-settings-affiliate';
|
67 |
+
|
68 |
return $parent_file;
|
69 |
}
|
70 |
|
77 |
|
78 |
sort($modules_ids);
|
79 |
|
80 |
+
$feed_modules_ids = $this->getFeedModules();
|
81 |
+
natsort($feed_modules_ids);
|
82 |
+
|
83 |
$ae_modules_ids = $this->getAffEggModules();
|
84 |
sort($ae_modules_ids);
|
85 |
|
86 |
+
$modules_ids = array_merge($modules_ids, $feed_modules_ids, $ae_modules_ids);
|
87 |
$modules_ids = \apply_filters('content_egg_modules', $modules_ids);
|
88 |
+
|
89 |
// create modules
|
90 |
foreach ($modules_ids as $module_id)
|
91 |
{
|
159 |
return $result;
|
160 |
}
|
161 |
|
162 |
+
private function getFeedModules()
|
163 |
+
{
|
164 |
+
$result = array();
|
165 |
+
|
166 |
+
for ($i = 1; $i <= self::MAX_NUM_FEED_MODULES; $i++)
|
167 |
+
{
|
168 |
+
if (get_option('content-egg_Feed__' . $i))
|
169 |
+
$result[] = self::FEED_MODULES_PREFIX . '__' . $i;
|
170 |
+
else
|
171 |
+
break;
|
172 |
+
}
|
173 |
+
|
174 |
+
if (count($result) < self::MAX_NUM_FEED_MODULES)
|
175 |
+
{
|
176 |
+
$num = count($result) + 1;
|
177 |
+
$result[] = self::FEED_MODULES_PREFIX . '__' . $num;
|
178 |
+
}
|
179 |
+
|
180 |
+
return $result;
|
181 |
+
}
|
182 |
+
|
183 |
public static function isCustomModule($module_id)
|
184 |
{
|
185 |
if (in_array($module_id, self::$custom_modules))
|
211 |
|
212 |
self::$modules[$module_id] = $module;
|
213 |
}
|
214 |
+
|
215 |
return self::$modules[$module_id];
|
216 |
}
|
217 |
|
339 |
}
|
340 |
return $result;
|
341 |
}
|
342 |
+
|
343 |
public function moduleExists($module_id)
|
344 |
{
|
345 |
if (isset(self::$modules[$module_id]))
|
364 |
$config = $module->getConfigInstance();
|
365 |
$options[$config->option_name()] = $config->getOptionValues();
|
366 |
//$opt_name = $module->getConfigInstance()->option_name();
|
367 |
+
//$options[$opt_name] = \get_option($opt_name);
|
368 |
}
|
369 |
return $options;
|
370 |
}
|
401 |
{
|
402 |
$results = array();
|
403 |
$modules = ModuleManager::getInstance()->getAffiliateParsers($only_active);
|
404 |
+
$feeds = array();
|
405 |
foreach ($modules as $module_id => $module)
|
406 |
{
|
407 |
+
/*
|
408 |
+
if ($module->isFeedParser())
|
409 |
+
$feeds[$module_id] = $module->getName();
|
410 |
+
else
|
411 |
+
*
|
412 |
+
*/
|
413 |
+
$results[$module_id] = $module->getName();
|
414 |
+
}
|
415 |
+
|
416 |
+
/*
|
417 |
+
if ($feeds)
|
418 |
+
{
|
419 |
+
array_pop($feeds);
|
420 |
+
$results = array_merge($results, $feeds);
|
421 |
}
|
422 |
+
*
|
423 |
+
*/
|
424 |
+
|
425 |
return $results;
|
426 |
}
|
427 |
|
application/components/ModuleTemplateManager.php
CHANGED
@@ -11,8 +11,8 @@ use ContentEgg\application\components\ModuleManager;
|
|
11 |
* ModuleTemplateManager class file
|
12 |
*
|
13 |
* @author keywordrush.com <support@keywordrush.com>
|
14 |
-
* @link
|
15 |
-
* @copyright Copyright ©
|
16 |
*/
|
17 |
class ModuleTemplateManager extends TemplateManager {
|
18 |
|
11 |
* ModuleTemplateManager class file
|
12 |
*
|
13 |
* @author keywordrush.com <support@keywordrush.com>
|
14 |
+
* @link https://www.keywordrush.com
|
15 |
+
* @copyright Copyright © 2021 keywordrush.com
|
16 |
*/
|
17 |
class ModuleTemplateManager extends TemplateManager {
|
18 |
|
application/components/ParserModule.php
CHANGED
@@ -8,13 +8,14 @@ use ContentEgg\application\helpers\ImageHelper;
|
|
8 |
use ContentEgg\application\helpers\TextHelper;
|
9 |
use ContentEgg\application\LocalRedirect;
|
10 |
use ContentEgg\application\admin\GeneralConfig;
|
|
|
11 |
|
12 |
/**
|
13 |
* ParserModule abstract class file
|
14 |
*
|
15 |
* @author keywordrush.com <support@keywordrush.com>
|
16 |
-
* @link
|
17 |
-
* @copyright Copyright ©
|
18 |
*/
|
19 |
abstract class ParserModule extends Module {
|
20 |
|
@@ -133,11 +134,39 @@ abstract class ParserModule extends Module {
|
|
133 |
{
|
134 |
foreach ($data as $key => $d)
|
135 |
{
|
136 |
-
|
|
|
|
|
137 |
$data[$key]['url'] = LocalRedirect::createRedirectUrl($d);
|
138 |
}
|
139 |
}
|
140 |
return $data;
|
141 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
}
|
8 |
use ContentEgg\application\helpers\TextHelper;
|
9 |
use ContentEgg\application\LocalRedirect;
|
10 |
use ContentEgg\application\admin\GeneralConfig;
|
11 |
+
use ContentEgg\application\Plugin;
|
12 |
|
13 |
/**
|
14 |
* ParserModule abstract class file
|
15 |
*
|
16 |
* @author keywordrush.com <support@keywordrush.com>
|
17 |
+
* @link https://www.keywordrush.com
|
18 |
+
* @copyright Copyright © 2021 keywordrush.com
|
19 |
*/
|
20 |
abstract class ParserModule extends Module {
|
21 |
|
134 |
{
|
135 |
foreach ($data as $key => $d)
|
136 |
{
|
137 |
+
if (isset($d['url']))
|
138 |
+
$data[$key]['aff_url'] = $d['url']; // url without redirect
|
139 |
+
|
140 |
$data[$key]['url'] = LocalRedirect::createRedirectUrl($d);
|
141 |
}
|
142 |
}
|
143 |
return $data;
|
144 |
}
|
145 |
+
|
146 |
+
public function getAccessToken($force = false)
|
147 |
+
{
|
148 |
+
$transient_name = Plugin::slug() . '-' . $this->getId() . '-access_token';
|
149 |
+
$token = \get_transient($transient_name);
|
150 |
+
if (!$token || $force)
|
151 |
+
{
|
152 |
+
try
|
153 |
+
{
|
154 |
+
list($token, $expires_in) = $this->requestAccessToken();
|
155 |
+
} catch (\Exception $e)
|
156 |
+
{
|
157 |
+
return false;
|
158 |
+
}
|
159 |
+
\set_transient($transient_name, $token, (int) $expires_in);
|
160 |
+
}
|
161 |
+
return $token;
|
162 |
+
}
|
163 |
+
|
164 |
+
public function isFeedParser()
|
165 |
+
{
|
166 |
+
if ($this->getIdStatic() == ModuleManager::FEED_MODULES_PREFIX)
|
167 |
+
return true;
|
168 |
+
else
|
169 |
+
return false;
|
170 |
+
}
|
171 |
|
172 |
}
|
application/components/ParserModuleConfig.php
CHANGED
@@ -31,15 +31,14 @@ abstract class ParserModuleConfig extends ModuleConfig {
|
|
31 |
),
|
32 |
),
|
33 |
'embed_at' => array(
|
34 |
-
'title' => __('
|
35 |
-
'description' => __('The place for content of module. Shortcodes will work in any place regardless of the setting.', 'content-egg'),
|
36 |
'callback' => array($this, 'render_dropdown'),
|
37 |
'dropdown_options' => array(
|
|
|
38 |
'post_bottom' => __('At the end of the post', 'content-egg'),
|
39 |
'post_top' => __('At the beginning of the post', 'content-egg'),
|
40 |
-
'shortcode' => __('Shortcodes only', 'content-egg'),
|
41 |
),
|
42 |
-
'default' => '
|
43 |
'section' => 'default',
|
44 |
),
|
45 |
'priority' => array(
|
31 |
),
|
32 |
),
|
33 |
'embed_at' => array(
|
34 |
+
'title' => __('Auto-embedding', 'content-egg'),
|
|
|
35 |
'callback' => array($this, 'render_dropdown'),
|
36 |
'dropdown_options' => array(
|
37 |
+
'shortcode' => __('Shortcodes only', 'content-egg'),
|
38 |
'post_bottom' => __('At the end of the post', 'content-egg'),
|
39 |
'post_top' => __('At the beginning of the post', 'content-egg'),
|
|
|
40 |
),
|
41 |
+
'default' => 'shortcode',
|
42 |
'section' => 'default',
|
43 |
),
|
44 |
'priority' => array(
|
application/components/Scheduler.php
CHANGED
@@ -8,8 +8,8 @@ defined('\ABSPATH') || exit;
|
|
8 |
* Scheduler class file
|
9 |
*
|
10 |
* @author keywordrush.com <support@keywordrush.com>
|
11 |
-
* @link
|
12 |
-
* @copyright Copyright ©
|
13 |
*/
|
14 |
abstract class Scheduler implements iScheduler {
|
15 |
|
@@ -20,17 +20,19 @@ abstract class Scheduler implements iScheduler {
|
|
20 |
|
21 |
public static function addScheduleEvent($recurrence = 'hourly', $timestamp = null)
|
22 |
{
|
23 |
-
if (!$timestamp)
|
24 |
-
$timestamp = time();
|
25 |
-
|
26 |
if (!\wp_next_scheduled(static::getCronTag()))
|
|
|
|
|
|
|
|
|
27 |
\wp_schedule_event($timestamp, $recurrence, static::getCronTag());
|
|
|
28 |
}
|
29 |
|
30 |
public static function clearScheduleEvent()
|
31 |
{
|
32 |
if (\wp_next_scheduled(static::getCronTag()))
|
33 |
\wp_clear_scheduled_hook(static::getCronTag());
|
34 |
-
}
|
35 |
|
36 |
}
|
8 |
* Scheduler class file
|
9 |
*
|
10 |
* @author keywordrush.com <support@keywordrush.com>
|
11 |
+
* @link https://www.keywordrush.com
|
12 |
+
* @copyright Copyright © 2021 keywordrush.com
|
13 |
*/
|
14 |
abstract class Scheduler implements iScheduler {
|
15 |
|
20 |
|
21 |
public static function addScheduleEvent($recurrence = 'hourly', $timestamp = null)
|
22 |
{
|
|
|
|
|
|
|
23 |
if (!\wp_next_scheduled(static::getCronTag()))
|
24 |
+
{
|
25 |
+
if (!$timestamp)
|
26 |
+
$timestamp = time();
|
27 |
+
|
28 |
\wp_schedule_event($timestamp, $recurrence, static::getCronTag());
|
29 |
+
}
|
30 |
}
|
31 |
|
32 |
public static function clearScheduleEvent()
|
33 |
{
|
34 |
if (\wp_next_scheduled(static::getCronTag()))
|
35 |
\wp_clear_scheduled_hook(static::getCronTag());
|
36 |
+
}
|
37 |
|
38 |
}
|
application/components/TemplateManager.php
CHANGED
@@ -12,8 +12,8 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
12 |
* TemplateManager class file
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
-
* @link
|
16 |
-
* @copyright Copyright ©
|
17 |
*/
|
18 |
abstract class TemplateManager {
|
19 |
|
@@ -231,6 +231,9 @@ abstract class TemplateManager {
|
|
231 |
|
232 |
\wp_enqueue_style('egg-bootstrap');
|
233 |
\wp_enqueue_style('egg-products');
|
|
|
|
|
|
|
234 |
|
235 |
if (!$background = \wp_strip_all_tags(GeneralConfig::getInstance()->option('button_color')))
|
236 |
$background = '#dc3545';
|
12 |
* TemplateManager class file
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
+
* @link https://www.keywordrush.com
|
16 |
+
* @copyright Copyright © 2021 keywordrush.com
|
17 |
*/
|
18 |
abstract class TemplateManager {
|
19 |
|
231 |
|
232 |
\wp_enqueue_style('egg-bootstrap');
|
233 |
\wp_enqueue_style('egg-products');
|
234 |
+
|
235 |
+
if (GeneralConfig::isShopInfoAvailable())
|
236 |
+
\wp_enqueue_script('bootstrap-popover');
|
237 |
|
238 |
if (!$background = \wp_strip_all_tags(GeneralConfig::getInstance()->option('button_color')))
|
239 |
$background = '#dc3545';
|
application/helpers/AdminHelper.php
CHANGED
@@ -82,7 +82,7 @@ class AdminHelper {
|
|
82 |
if ($module->isDeprecated() && !$module->isActive())
|
83 |
continue;
|
84 |
|
85 |
-
if ($module->isAffiliateParser() && $module->isProductParser() && !$module->isAeParser())
|
86 |
$results[] = $module;
|
87 |
}
|
88 |
|
@@ -104,6 +104,22 @@ class AdminHelper {
|
|
104 |
|
105 |
return $results;
|
106 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
|
108 |
public static function getCouponModules()
|
109 |
{
|
82 |
if ($module->isDeprecated() && !$module->isActive())
|
83 |
continue;
|
84 |
|
85 |
+
if ($module->isAffiliateParser() && $module->isProductParser() && !$module->isAeParser() && !$module->isFeedParser())
|
86 |
$results[] = $module;
|
87 |
}
|
88 |
|
104 |
|
105 |
return $results;
|
106 |
}
|
107 |
+
|
108 |
+
public static function getFeedProductModules()
|
109 |
+
{
|
110 |
+
$modules = ModuleManager::getInstance()->getConfigurableModules();
|
111 |
+
$results = array();
|
112 |
+
foreach ($modules as $module)
|
113 |
+
{
|
114 |
+
if ($module->isDeprecated() && !$module->isActive())
|
115 |
+
continue;
|
116 |
+
|
117 |
+
if ($module->isAffiliateParser() && $module->isProductParser() && $module->isFeedParser())
|
118 |
+
$results[] = $module;
|
119 |
+
}
|
120 |
+
|
121 |
+
return $results;
|
122 |
+
}
|
123 |
|
124 |
public static function getCouponModules()
|
125 |
{
|
application/helpers/CurrencyHelper.php
CHANGED
@@ -267,8 +267,8 @@ class CurrencyHelper {
|
|
267 |
'TRY' => array(
|
268 |
'currency_symbol' => 'TL',
|
269 |
'currency_pos' => 'right_space',
|
270 |
-
'thousand_sep' => '
|
271 |
-
'decimal_sep' => '
|
272 |
'num_decimals' => 2,
|
273 |
'name' => 'Turkish Lira',
|
274 |
),
|
267 |
'TRY' => array(
|
268 |
'currency_symbol' => 'TL',
|
269 |
'currency_pos' => 'right_space',
|
270 |
+
'thousand_sep' => '.',
|
271 |
+
'decimal_sep' => ',',
|
272 |
'num_decimals' => 2,
|
273 |
'name' => 'Turkish Lira',
|
274 |
),
|
application/helpers/ImageHelper.php
CHANGED
@@ -15,7 +15,7 @@ defined('\ABSPATH') || exit;
|
|
15 |
class ImageHelper {
|
16 |
|
17 |
const DOWNLOAD_TIMEOUT = 5;
|
18 |
-
const USERAGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/
|
19 |
|
20 |
public static function saveImgLocaly($img_uri, $title = '', $check_image_type = true)
|
21 |
{
|
15 |
class ImageHelper {
|
16 |
|
17 |
const DOWNLOAD_TIMEOUT = 5;
|
18 |
+
const USERAGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15';
|
19 |
|
20 |
public static function saveImgLocaly($img_uri, $title = '', $check_image_type = true)
|
21 |
{
|
application/helpers/TemplateHelper.php
CHANGED
@@ -13,21 +13,27 @@ use ContentEgg\application\components\ContentProduct;
|
|
13 |
use ContentEgg\application\helpers\TextHelper;
|
14 |
use ContentEgg\application\libs\amazon\AmazonLocales;
|
15 |
use ContentEgg\application\modules\Amazon\AmazonConfig;
|
|
|
16 |
|
17 |
/**
|
18 |
* TemplateHelper class file
|
19 |
*
|
20 |
* @author keywordrush.com <support@keywordrush.com>
|
21 |
* @link https://www.keywordrush.com
|
22 |
-
* @copyright Copyright ©
|
23 |
*
|
24 |
*/
|
25 |
class TemplateHelper {
|
26 |
|
27 |
const MERHANT_LOGO_DIR = 'ce-logos';
|
|
|
|
|
|
|
|
|
28 |
|
29 |
static $global_id = 0;
|
30 |
static $logos = null;
|
|
|
31 |
|
32 |
public static function formatPriceCurrency($price, $currencyCode, $before_symbol = '', $after_symbol = '')
|
33 |
{
|
@@ -359,7 +365,7 @@ class TemplateHelper {
|
|
359 |
'data' => $prices,
|
360 |
'xkey' => 'date',
|
361 |
'ykeys' => array('price'),
|
362 |
-
'labels' => array(__('Price'
|
363 |
);
|
364 |
$options = array_merge($data, $options);
|
365 |
|
@@ -523,6 +529,11 @@ class TemplateHelper {
|
|
523 |
return self::getMerchantImageUrl($item, $prefix, $remote_url, $blank_on_error);
|
524 |
}
|
525 |
|
|
|
|
|
|
|
|
|
|
|
526 |
public static function getMerhantName(array $item, $print = false)
|
527 |
{
|
528 |
if (!empty($item['domain']))
|
@@ -534,9 +545,9 @@ class TemplateHelper {
|
|
534 |
elseif ($name == 'Flipkart.com')
|
535 |
$name = 'Flipkart';
|
536 |
elseif ($name == 'Ebay.com')
|
537 |
-
$name = 'eBay.com
|
538 |
elseif (strstr($name, 'Ebay.'))
|
539 |
-
$name =
|
540 |
} elseif (!empty($item['merchant']))
|
541 |
$name = $item['merchant'];
|
542 |
else
|
@@ -632,6 +643,7 @@ class TemplateHelper {
|
|
632 |
{
|
633 |
if (!$order)
|
634 |
$order = 'asc';
|
|
|
635 |
if (!in_array($order, array('asc', 'desc')))
|
636 |
$order = 'asc';
|
637 |
|
@@ -659,8 +671,13 @@ class TemplateHelper {
|
|
659 |
if (!$rate)
|
660 |
$rate = 1;
|
661 |
$data[$key]['converted_price'] = (float) $d['price'] * $rate;
|
662 |
-
}
|
663 |
$data[$key]['converted_price'] = (float) $d['price'];
|
|
|
|
|
|
|
|
|
|
|
664 |
}
|
665 |
|
666 |
// modules priority
|
@@ -679,42 +696,42 @@ class TemplateHelper {
|
|
679 |
}
|
680 |
|
681 |
// sort by price and priority
|
682 |
-
|
683 |
-
{
|
684 |
-
usort($data, function($a, $b) use($modules_priority) {
|
685 |
-
if (!$a['price'] && !$b['price'])
|
686 |
-
return $modules_priority[$a['module_id']] - $modules_priority[$b['module_id']];
|
687 |
|
688 |
-
|
689 |
-
|
690 |
-
if (!$b['converted_price'])
|
691 |
-
return -1;
|
692 |
|
693 |
-
|
694 |
-
|
695 |
|
696 |
-
|
697 |
-
|
698 |
-
} else
|
699 |
-
{
|
700 |
-
usort($data, function($a, $b) use($modules_priority) {
|
701 |
-
if (!$a['price'] && !$b['price'])
|
702 |
-
return $modules_priority[$a['module_id']] - $modules_priority[$b['module_id']];
|
703 |
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
|
|
|
|
709 |
return $modules_priority[$a['module_id']] - $modules_priority[$b['module_id']];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
710 |
|
711 |
-
return ($a['converted_price'] < $b['converted_price']) ? 1 : -1;
|
712 |
-
});
|
713 |
-
}
|
714 |
return $data;
|
715 |
}
|
716 |
|
717 |
public static function sortAllByPrice(array $data, $order = 'asc')
|
|
|
|
|
|
|
|
|
|
|
718 |
{
|
719 |
$all_items = array();
|
720 |
foreach ($data as $module_id => $items)
|
@@ -725,7 +742,7 @@ class TemplateHelper {
|
|
725 |
$all_items[] = $item_ar;
|
726 |
}
|
727 |
}
|
728 |
-
return
|
729 |
}
|
730 |
|
731 |
public static function buyNowBtnText($print = true, array $item = array(), $forced_text = '')
|
@@ -753,23 +770,26 @@ class TemplateHelper {
|
|
753 |
$d = $etime / (24 * 60 * 60);
|
754 |
|
755 |
if ($d < 1)
|
756 |
-
return __('today'
|
757 |
$d = ceil($d);
|
758 |
|
759 |
if ($d > 1)
|
760 |
-
return sprintf(__('%d days ago'
|
761 |
else
|
762 |
-
return sprintf(__('%d day ago'
|
763 |
}
|
764 |
|
765 |
public static function getAmazonDisclaimer()
|
766 |
{
|
767 |
-
|
|
|
|
|
|
|
768 |
}
|
769 |
|
770 |
public static function printAmazonDisclaimer()
|
771 |
{
|
772 |
-
echo '<i class="
|
773 |
}
|
774 |
|
775 |
public static function btnText($option_name, $default, $print = true, array $item = array(), $forced_text = '')
|
@@ -863,9 +883,9 @@ class TemplateHelper {
|
|
863 |
return '';
|
864 |
|
865 |
if ($item['stock_status'] == ContentProduct::STOCK_STATUS_IN_STOCK)
|
866 |
-
return __('in stock'
|
867 |
elseif ($item['stock_status'] == ContentProduct::STOCK_STATUS_OUT_OF_STOCK)
|
868 |
-
return __('out of stock'
|
869 |
else
|
870 |
return '';
|
871 |
}
|
@@ -885,6 +905,7 @@ class TemplateHelper {
|
|
885 |
|
886 |
$groups = array_unique(array_column($all_items, 'group'));
|
887 |
$groups = array_filter($groups);
|
|
|
888 |
|
889 |
if ($sort_groups)
|
890 |
{
|
@@ -1056,8 +1077,6 @@ class TemplateHelper {
|
|
1056 |
{
|
1057 |
$url = 'https://www.' . AmazonLocales::getDomain($locale) . '/gp/aws/cart/add.html?';
|
1058 |
|
1059 |
-
|
1060 |
-
|
1061 |
$i = 1;
|
1062 |
foreach ($items as $item)
|
1063 |
{
|
@@ -1066,7 +1085,7 @@ class TemplateHelper {
|
|
1066 |
|
1067 |
if ($i > 1)
|
1068 |
$url .= '&';
|
1069 |
-
|
1070 |
$url .= 'ASIN.' . $i . '=' . $item['extra']['ASIN'] . '&Quantity.' . $i . '=1';
|
1071 |
$i++;
|
1072 |
}
|
@@ -1083,4 +1102,193 @@ class TemplateHelper {
|
|
1083 |
return AmazonConfig::getInstance()->option('associate_tag_' . $locale);
|
1084 |
}
|
1085 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1086 |
}
|
13 |
use ContentEgg\application\helpers\TextHelper;
|
14 |
use ContentEgg\application\libs\amazon\AmazonLocales;
|
15 |
use ContentEgg\application\modules\Amazon\AmazonConfig;
|
16 |
+
use ContentEgg\application\Translator;
|
17 |
|
18 |
/**
|
19 |
* TemplateHelper class file
|
20 |
*
|
21 |
* @author keywordrush.com <support@keywordrush.com>
|
22 |
* @link https://www.keywordrush.com
|
23 |
+
* @copyright Copyright © 2021 keywordrush.com
|
24 |
*
|
25 |
*/
|
26 |
class TemplateHelper {
|
27 |
|
28 |
const MERHANT_LOGO_DIR = 'ce-logos';
|
29 |
+
const IMG_SMALL = 'small';
|
30 |
+
const IMG_MEDIUM = 'medium';
|
31 |
+
const IMG_LARGE = 'large';
|
32 |
+
const IMG_ORIGINAL = 'original';
|
33 |
|
34 |
static $global_id = 0;
|
35 |
static $logos = null;
|
36 |
+
static $shop_info = null;
|
37 |
|
38 |
public static function formatPriceCurrency($price, $currencyCode, $before_symbol = '', $after_symbol = '')
|
39 |
{
|
365 |
'data' => $prices,
|
366 |
'xkey' => 'date',
|
367 |
'ykeys' => array('price'),
|
368 |
+
'labels' => array(Translator::__('Price')),
|
369 |
);
|
370 |
$options = array_merge($data, $options);
|
371 |
|
529 |
return self::getMerchantImageUrl($item, $prefix, $remote_url, $blank_on_error);
|
530 |
}
|
531 |
|
532 |
+
public static function getMerchantName(array $item, $print = false)
|
533 |
+
{
|
534 |
+
return self::getMerhantName($item, $print);
|
535 |
+
}
|
536 |
+
|
537 |
public static function getMerhantName(array $item, $print = false)
|
538 |
{
|
539 |
if (!empty($item['domain']))
|
545 |
elseif ($name == 'Flipkart.com')
|
546 |
$name = 'Flipkart';
|
547 |
elseif ($name == 'Ebay.com')
|
548 |
+
$name = 'eBay'; //it's should be ONLY "eBay" without ".com"
|
549 |
elseif (strstr($name, 'Ebay.'))
|
550 |
+
$name = $name = 'eBay';
|
551 |
} elseif (!empty($item['merchant']))
|
552 |
$name = $item['merchant'];
|
553 |
else
|
643 |
{
|
644 |
if (!$order)
|
645 |
$order = 'asc';
|
646 |
+
|
647 |
if (!in_array($order, array('asc', 'desc')))
|
648 |
$order = 'asc';
|
649 |
|
671 |
if (!$rate)
|
672 |
$rate = 1;
|
673 |
$data[$key]['converted_price'] = (float) $d['price'] * $rate;
|
674 |
+
} elseif (isset($d['price']))
|
675 |
$data[$key]['converted_price'] = (float) $d['price'];
|
676 |
+
else
|
677 |
+
{
|
678 |
+
$data[$key]['converted_price'] = 0;
|
679 |
+
$data[$key]['price'] = 0;
|
680 |
+
}
|
681 |
}
|
682 |
|
683 |
// modules priority
|
696 |
}
|
697 |
|
698 |
// sort by price and priority
|
699 |
+
usort($data, function($a, $b) use($modules_priority) {
|
|
|
|
|
|
|
|
|
700 |
|
701 |
+
if (!$a['price'] && !$b['price'])
|
702 |
+
return $modules_priority[$a['module_id']] - $modules_priority[$b['module_id']];
|
|
|
|
|
703 |
|
704 |
+
if (!$a['converted_price'])
|
705 |
+
return 1;
|
706 |
|
707 |
+
if (!$b['converted_price'])
|
708 |
+
return -1;
|
|
|
|
|
|
|
|
|
|
|
709 |
|
710 |
+
if ($a['converted_price'] == $b['converted_price'])
|
711 |
+
return $modules_priority[$a['module_id']] - $modules_priority[$b['module_id']];
|
712 |
+
|
713 |
+
if ($modules_priority[$a['module_id']] != $modules_priority[$b['module_id']])
|
714 |
+
{
|
715 |
+
if ($a['converted_price'] >= 30 && $b['converted_price'] >= 30 && abs($a['converted_price'] - $b['converted_price']) < 1)
|
716 |
+
{
|
717 |
return $modules_priority[$a['module_id']] - $modules_priority[$b['module_id']];
|
718 |
+
}
|
719 |
+
}
|
720 |
+
return ($a['converted_price'] < $b['converted_price']) ? -1 : 1;
|
721 |
+
});
|
722 |
+
|
723 |
+
if ($order == 'desc')
|
724 |
+
array_reverse($data);
|
725 |
|
|
|
|
|
|
|
726 |
return $data;
|
727 |
}
|
728 |
|
729 |
public static function sortAllByPrice(array $data, $order = 'asc')
|
730 |
+
{
|
731 |
+
return TemplateHelper::sortByPrice(self::mergeAll($data), $order);
|
732 |
+
}
|
733 |
+
|
734 |
+
public static function mergeAll(array $data)
|
735 |
{
|
736 |
$all_items = array();
|
737 |
foreach ($data as $module_id => $items)
|
742 |
$all_items[] = $item_ar;
|
743 |
}
|
744 |
}
|
745 |
+
return $all_items;
|
746 |
}
|
747 |
|
748 |
public static function buyNowBtnText($print = true, array $item = array(), $forced_text = '')
|
770 |
$d = $etime / (24 * 60 * 60);
|
771 |
|
772 |
if ($d < 1)
|
773 |
+
return Translator::__('today');
|
774 |
$d = ceil($d);
|
775 |
|
776 |
if ($d > 1)
|
777 |
+
return sprintf(Translator::__('%d days ago'), $d);
|
778 |
else
|
779 |
+
return sprintf(Translator::__('%d day ago'), $d);
|
780 |
}
|
781 |
|
782 |
public static function getAmazonDisclaimer()
|
783 |
{
|
784 |
+
if ($d = GeneralConfig::getInstance()->option('disclaimer_text'))
|
785 |
+
return $d;
|
786 |
+
else
|
787 |
+
return __('As an Amazon associate I earn from qualifying purchases.', 'content-egg-tpl') . ' ' . __('Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply to the purchase of this product.', 'content-egg-tpl');
|
788 |
}
|
789 |
|
790 |
public static function printAmazonDisclaimer()
|
791 |
{
|
792 |
+
echo '<i class="egg-ico-info-circle cegg-disclaimer" ' . self::buildTagParams(array('title' => self::getAmazonDisclaimer())) . '></i>';
|
793 |
}
|
794 |
|
795 |
public static function btnText($option_name, $default, $print = true, array $item = array(), $forced_text = '')
|
883 |
return '';
|
884 |
|
885 |
if ($item['stock_status'] == ContentProduct::STOCK_STATUS_IN_STOCK)
|
886 |
+
return TemplateHelper::__('in stock');
|
887 |
elseif ($item['stock_status'] == ContentProduct::STOCK_STATUS_OUT_OF_STOCK)
|
888 |
+
return TemplateHelper::__('out of stock');
|
889 |
else
|
890 |
return '';
|
891 |
}
|
905 |
|
906 |
$groups = array_unique(array_column($all_items, 'group'));
|
907 |
$groups = array_filter($groups);
|
908 |
+
$groups = array_values($groups);
|
909 |
|
910 |
if ($sort_groups)
|
911 |
{
|
1077 |
{
|
1078 |
$url = 'https://www.' . AmazonLocales::getDomain($locale) . '/gp/aws/cart/add.html?';
|
1079 |
|
|
|
|
|
1080 |
$i = 1;
|
1081 |
foreach ($items as $item)
|
1082 |
{
|
1085 |
|
1086 |
if ($i > 1)
|
1087 |
$url .= '&';
|
1088 |
+
|
1089 |
$url .= 'ASIN.' . $i . '=' . $item['extra']['ASIN'] . '&Quantity.' . $i . '=1';
|
1090 |
$i++;
|
1091 |
}
|
1102 |
return AmazonConfig::getInstance()->option('associate_tag_' . $locale);
|
1103 |
}
|
1104 |
|
1105 |
+
public static function __($str)
|
1106 |
+
{
|
1107 |
+
return Translator::translate($str);
|
1108 |
+
}
|
1109 |
+
|
1110 |
+
public static function _e($str)
|
1111 |
+
{
|
1112 |
+
echo Translator::translate($str);
|
1113 |
+
}
|
1114 |
+
|
1115 |
+
public static function displayImage(array $item, $max_width, $max_height, array $params = array())
|
1116 |
+
{
|
1117 |
+
if (!isset($item['img']))
|
1118 |
+
return;
|
1119 |
+
|
1120 |
+
$params['src'] = self::getOptimizedImage($item, $max_width, $max_height);
|
1121 |
+
|
1122 |
+
if (isset($item['title']))
|
1123 |
+
$params['alt'] = $item['title'];
|
1124 |
+
|
1125 |
+
if ($sizes = self::getImageSizesRatio($item, $max_width, $max_height))
|
1126 |
+
$params = array_merge($params, $sizes);
|
1127 |
+
|
1128 |
+
echo '<img ' . self::buildTagParams($params) . ' />';
|
1129 |
+
}
|
1130 |
+
|
1131 |
+
public static function buildTagParams($params = array())
|
1132 |
+
{
|
1133 |
+
$res = '';
|
1134 |
+
$i = 0;
|
1135 |
+
foreach ($params as $key => $value)
|
1136 |
+
{
|
1137 |
+
if ($i > 0)
|
1138 |
+
$res .= ' ';
|
1139 |
+
$res .= \esc_attr($key) . '="' . \esc_attr($value) . '"';
|
1140 |
+
$i++;
|
1141 |
+
}
|
1142 |
+
return $res;
|
1143 |
+
}
|
1144 |
+
|
1145 |
+
public static function getImageSizesRatio(array $item, $max_width, $max_height)
|
1146 |
+
{
|
1147 |
+
if ($item['module_id'] == 'Amazon' && strpos($item['img'], 'https://m.media-amazon.com') !== false)
|
1148 |
+
{
|
1149 |
+
if (!isset($item['extra']['primaryImages']))
|
1150 |
+
return array();
|
1151 |
+
|
1152 |
+
$width = $item['extra']['primaryImages']['Large']['Width'];
|
1153 |
+
$height = $item['extra']['primaryImages']['Large']['Height'];
|
1154 |
+
|
1155 |
+
if (!$max_width)
|
1156 |
+
$max_width = $width;
|
1157 |
+
if (!$max_height)
|
1158 |
+
$max_height = $height;
|
1159 |
+
|
1160 |
+
$ratio = $width / $height;
|
1161 |
+
|
1162 |
+
if ($ratio > 1 && $width > $max_width)
|
1163 |
+
return array('width' => round($max_width), 'height' => round($max_width / $ratio));
|
1164 |
+
else
|
1165 |
+
return array('width' => round($max_height * $ratio), 'height' => round($max_height));
|
1166 |
+
}
|
1167 |
+
|
1168 |
+
return array();
|
1169 |
+
}
|
1170 |
+
|
1171 |
+
public static function getOptimizedImage(array $item, $max_width, $max_height)
|
1172 |
+
{
|
1173 |
+
|
1174 |
+
if ($item['module_id'] == 'Amazon' && strpos($item['img'], 'https://m.media-amazon.com') !== false)
|
1175 |
+
{
|
1176 |
+
if (!isset($item['extra']['primaryImages']))
|
1177 |
+
return $item['img'];
|
1178 |
+
|
1179 |
+
if ($max_height <= 160)
|
1180 |
+
return $item['extra']['primaryImages']['Medium']['URL'];
|
1181 |
+
elseif ($max_height <= 75)
|
1182 |
+
return $item['extra']['primaryImages']['Small']['URL'];
|
1183 |
+
else
|
1184 |
+
return $item['img'];
|
1185 |
+
}
|
1186 |
+
|
1187 |
+
return $item['img'];
|
1188 |
+
}
|
1189 |
+
|
1190 |
+
public static function generateStaticRatings($count, $post_id = null)
|
1191 |
+
{
|
1192 |
+
if (!$post_id)
|
1193 |
+
{
|
1194 |
+
global $post;
|
1195 |
+
if (!empty($post->ID))
|
1196 |
+
$post_id = $post->ID;
|
1197 |
+
else
|
1198 |
+
$post_id = $count;
|
1199 |
+
}
|
1200 |
+
|
1201 |
+
$ratings = array();
|
1202 |
+
mt_srand($post_id);
|
1203 |
+
$rating = 10;
|
1204 |
+
for ($i = 0; $i < $count; $i++)
|
1205 |
+
{
|
1206 |
+
if ($i <= 3)
|
1207 |
+
$rand = mt_rand(0, 6) / 10;
|
1208 |
+
elseif ($count > 9 && $i > 4)
|
1209 |
+
$rand = mt_rand(0, 3) / 10;
|
1210 |
+
elseif ($i > 8)
|
1211 |
+
$rand = mt_rand(0, 4) / 10;
|
1212 |
+
else
|
1213 |
+
$rand = mt_rand(0, 10) / 10;
|
1214 |
+
|
1215 |
+
$rating = round($rating - $rand, 2);
|
1216 |
+
$ratings[] = $rating;
|
1217 |
+
}
|
1218 |
+
|
1219 |
+
return $ratings;
|
1220 |
+
}
|
1221 |
+
|
1222 |
+
public static function printProgressRing($value)
|
1223 |
+
{
|
1224 |
+
if ($value <= 0)
|
1225 |
+
return;
|
1226 |
+
|
1227 |
+
$p = round($value * 100 / 10);
|
1228 |
+
$r1 = round($p * 314 / 100);
|
1229 |
+
$r2 = 314 - $r1;
|
1230 |
+
|
1231 |
+
echo '<svg width="75" height="75" viewBox="0 0 120 120"><circle cx="60" cy="60" r="50" fill="none" stroke="#E1E1E1" stroke-width="12"/><circle cx="60" cy="60" r="50" transform="rotate(-90 60 60)" fill="none" stroke-dashoffset="314" stroke-dasharray="314" stroke="dodgerblue" stroke-width="12" ><animate attributeName="stroke-dasharray" dur="3s" values="0,314;' . $r1 . ',' . $r2 . '" fill="freeze" /></circle><text x="60" y="63" fill="black" text-anchor="middle" dy="7" font-size="27">' . $value . '</text></svg>';
|
1232 |
+
}
|
1233 |
+
|
1234 |
+
public static function getChance($position, $max = 1)
|
1235 |
+
{
|
1236 |
+
global $post;
|
1237 |
+
if (!empty($post->ID))
|
1238 |
+
$post_id = $post->ID;
|
1239 |
+
else
|
1240 |
+
$post_id = time();
|
1241 |
+
mt_srand($post_id + $position);
|
1242 |
+
return mt_rand(0, 1);
|
1243 |
+
}
|
1244 |
+
|
1245 |
+
public static function getShopInfo(array $item)
|
1246 |
+
{
|
1247 |
+
if (!isset($item['domain']))
|
1248 |
+
return;
|
1249 |
+
|
1250 |
+
$domain = $item['domain'];
|
1251 |
+
|
1252 |
+
if (self::$shop_info === null)
|
1253 |
+
{
|
1254 |
+
$merchants = GeneralConfig::getInstance()->option('merchants');
|
1255 |
+
if (!$merchants)
|
1256 |
+
$merchants = array();
|
1257 |
+
foreach ($merchants as $merchant)
|
1258 |
+
{
|
1259 |
+
self::$shop_info[$merchant['name']] = $merchant['shop_info'];
|
1260 |
+
}
|
1261 |
+
}
|
1262 |
+
|
1263 |
+
if (isset(self::$shop_info[$domain]))
|
1264 |
+
return self::$shop_info[$domain];
|
1265 |
+
else
|
1266 |
+
return '';
|
1267 |
+
}
|
1268 |
+
|
1269 |
+
public static function printShopInfo(array $item, array $p = array())
|
1270 |
+
{
|
1271 |
+
if (!$shop_info = self::getShopInfo($item))
|
1272 |
+
return;
|
1273 |
+
|
1274 |
+
$params = array(
|
1275 |
+
'data-toggle' => 'cegg-popover',
|
1276 |
+
'data-html' => 'true',
|
1277 |
+
'data-placement' => 'left',
|
1278 |
+
'data-title' => self::getMerhantName($item),
|
1279 |
+
'data-content' => $shop_info,
|
1280 |
+
'tabindex' => '0',
|
1281 |
+
'data-trigger' => 'focus',
|
1282 |
+
);
|
1283 |
+
|
1284 |
+
$params = array_merge($params, $p);
|
1285 |
+
|
1286 |
+
self::displayInfoIcon($params);
|
1287 |
+
}
|
1288 |
+
|
1289 |
+
public static function displayInfoIcon($params = array())
|
1290 |
+
{
|
1291 |
+
echo '<i class="egg-ico-info-circle" ' . self::buildTagParams($params) . '></i>';
|
1292 |
+
}
|
1293 |
+
|
1294 |
}
|
application/helpers/TextHelper.php
CHANGED
@@ -148,12 +148,12 @@ class TextHelper {
|
|
148 |
}
|
149 |
if (!$exact)
|
150 |
{
|
151 |
-
$spacepos = mb_strrpos($truncate, ' ', 'UTF-8');
|
152 |
if ($html)
|
153 |
{
|
154 |
$truncateCheck = mb_substr($truncate, 0, $spacepos, 'UTF-8');
|
155 |
-
$lastOpenTag = mb_strrpos($truncateCheck, '<', 'UTF-8');
|
156 |
-
$lastCloseTag = mb_strrpos($truncateCheck, '>', 'UTF-8');
|
157 |
if ($lastOpenTag > $lastCloseTag)
|
158 |
{
|
159 |
preg_match_all('/<[\w]+[^>]*>/s', $truncate, $lastTagMatches);
|
@@ -453,6 +453,7 @@ class TextHelper {
|
|
453 |
|
454 |
public static function parseOriginalUrl($url, $go_param)
|
455 |
{
|
|
|
456 |
if (!$query = parse_url($url, PHP_URL_QUERY))
|
457 |
return '';
|
458 |
parse_str($query, $arr);
|
@@ -535,8 +536,22 @@ class TextHelper {
|
|
535 |
return false;
|
536 |
}
|
537 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
538 |
public static function ratingPrepare($rating, $min_rating = 1, $max_rating = 5)
|
539 |
{
|
|
|
540 |
$rating = abs(round($rating));
|
541 |
if ($rating < $min_rating || $rating > $max_rating)
|
542 |
return null;
|
@@ -666,4 +681,19 @@ class TextHelper {
|
|
666 |
return false;
|
667 |
}
|
668 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
669 |
}
|
148 |
}
|
149 |
if (!$exact)
|
150 |
{
|
151 |
+
$spacepos = mb_strrpos($truncate, ' ', 0, 'UTF-8');
|
152 |
if ($html)
|
153 |
{
|
154 |
$truncateCheck = mb_substr($truncate, 0, $spacepos, 'UTF-8');
|
155 |
+
$lastOpenTag = mb_strrpos($truncateCheck, '<', 0, 'UTF-8');
|
156 |
+
$lastCloseTag = mb_strrpos($truncateCheck, '>', 0, 'UTF-8');
|
157 |
if ($lastOpenTag > $lastCloseTag)
|
158 |
{
|
159 |
preg_match_all('/<[\w]+[^>]*>/s', $truncate, $lastTagMatches);
|
453 |
|
454 |
public static function parseOriginalUrl($url, $go_param)
|
455 |
{
|
456 |
+
$url = html_entity_decode($url);
|
457 |
if (!$query = parse_url($url, PHP_URL_QUERY))
|
458 |
return '';
|
459 |
parse_str($query, $arr);
|
536 |
return false;
|
537 |
}
|
538 |
|
539 |
+
public static function splitAsins($str)
|
540 |
+
{
|
541 |
+
$asins = explode(',', TextHelper::commaList($str, ' ', ','));
|
542 |
+
$res = array();
|
543 |
+
foreach ($asins as $asin)
|
544 |
+
{
|
545 |
+
if (self::isAsin($asin))
|
546 |
+
$res[] = $asin;
|
547 |
+
}
|
548 |
+
|
549 |
+
return $res;
|
550 |
+
}
|
551 |
+
|
552 |
public static function ratingPrepare($rating, $min_rating = 1, $max_rating = 5)
|
553 |
{
|
554 |
+
$rating = (int) $rating;
|
555 |
$rating = abs(round($rating));
|
556 |
if ($rating < $min_rating || $rating > $max_rating)
|
557 |
return null;
|
681 |
return false;
|
682 |
}
|
683 |
|
684 |
+
public static function findOriginalUrl($url)
|
685 |
+
{
|
686 |
+
if (!$query = parse_url($url, PHP_URL_QUERY))
|
687 |
+
return '';
|
688 |
+
|
689 |
+
parse_str($query, $params);
|
690 |
+
foreach ($params as $param)
|
691 |
+
{
|
692 |
+
if (filter_var($param, FILTER_VALIDATE_URL))
|
693 |
+
return $param;
|
694 |
+
}
|
695 |
+
|
696 |
+
return false;
|
697 |
+
}
|
698 |
+
|
699 |
}
|
application/libs/ParserClient.php
CHANGED
@@ -51,7 +51,7 @@ class ParserClient {
|
|
51 |
'sslverify' => false,
|
52 |
'redirection' => 3,
|
53 |
'timeout' => 10,
|
54 |
-
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:
|
55 |
);
|
56 |
if ($opts)
|
57 |
$_opts = $opts + $_opts;
|
@@ -61,7 +61,6 @@ class ParserClient {
|
|
61 |
//Get WP http client
|
62 |
self::$_httpClient = new WpHttpClient();
|
63 |
self::$_httpClient->setHeaders('Accept-Charset', 'ISO-8859-1,utf-8');
|
64 |
-
|
65 |
self::$_httpClient->setUserAgent($_opts['user-agent']);
|
66 |
self::$_httpClient->setRedirection($_opts['redirection']);
|
67 |
self::$_httpClient->setTimeout($_opts['timeout']);
|
51 |
'sslverify' => false,
|
52 |
'redirection' => 3,
|
53 |
'timeout' => 10,
|
54 |
+
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:86.0) Gecko/20100101 Firefox/86.0',
|
55 |
);
|
56 |
if ($opts)
|
57 |
$_opts = $opts + $_opts;
|
61 |
//Get WP http client
|
62 |
self::$_httpClient = new WpHttpClient();
|
63 |
self::$_httpClient->setHeaders('Accept-Charset', 'ISO-8859-1,utf-8');
|
|
|
64 |
self::$_httpClient->setUserAgent($_opts['user-agent']);
|
65 |
self::$_httpClient->setRedirection($_opts['redirection']);
|
66 |
self::$_httpClient->setTimeout($_opts['timeout']);
|
application/libs/RestClient.php
CHANGED
@@ -82,7 +82,7 @@ class RestClient {
|
|
82 |
'sslverify' => false,
|
83 |
'redirection' => 5,
|
84 |
'timeout' => static::$timeout,
|
85 |
-
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.
|
86 |
);
|
87 |
if ($opts)
|
88 |
$_opts = $opts + $_opts;
|
82 |
'sslverify' => false,
|
83 |
'redirection' => 5,
|
84 |
'timeout' => static::$timeout,
|
85 |
+
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:88.0) Gecko/20100101 Firefox/88.0',
|
86 |
);
|
87 |
if ($opts)
|
88 |
$_opts = $opts + $_opts;
|
application/libs/WpHttpClient.php
CHANGED
@@ -132,10 +132,13 @@ class WpHttpClient {
|
|
132 |
list($name, $value) = explode(':', $name, 2);
|
133 |
|
134 |
// Make sure the name is valid if we are in strict mode
|
|
|
135 |
if (!preg_match('/^[a-zA-Z0-9-]+$/', $name))
|
136 |
{
|
137 |
throw new \Exception("{$name} is not a valid HTTP header name");
|
138 |
}
|
|
|
|
|
139 |
|
140 |
$normalized_name = strtolower($name);
|
141 |
|
132 |
list($name, $value) = explode(':', $name, 2);
|
133 |
|
134 |
// Make sure the name is valid if we are in strict mode
|
135 |
+
/*
|
136 |
if (!preg_match('/^[a-zA-Z0-9-]+$/', $name))
|
137 |
{
|
138 |
throw new \Exception("{$name} is not a valid HTTP header name");
|
139 |
}
|
140 |
+
*
|
141 |
+
*/
|
142 |
|
143 |
$normalized_name = strtolower($name);
|
144 |
|
application/libs/viglink/ViglinkApi.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\libs\viglink;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
use ContentEgg\application\libs\RestClient;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* ViglinkApi class file
|
11 |
+
*
|
12 |
+
* @author keywordrush.com <support@keywordrush.com>
|
13 |
+
* @link http://www.keywordrush.com/
|
14 |
+
* @copyright Copyright © 2017 keywordrush.com
|
15 |
+
*
|
16 |
+
* @link: https://viglink-developer-center.readme.io/
|
17 |
+
*
|
18 |
+
*/
|
19 |
+
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'RestClient.php';
|
20 |
+
|
21 |
+
class ViglinkApi extends RestClient {
|
22 |
+
|
23 |
+
protected static $timeout = 40; //sec
|
24 |
+
|
25 |
+
const API_URI_BASE = 'https://rest.viglink.com/api';
|
26 |
+
|
27 |
+
protected $apiKey;
|
28 |
+
protected $secretKey;
|
29 |
+
protected $_responseTypes = array(
|
30 |
+
'json',
|
31 |
+
'xml'
|
32 |
+
);
|
33 |
+
|
34 |
+
public function __construct($apiKey, $secretKey, $response_type = 'json')
|
35 |
+
{
|
36 |
+
$this->apiKey = $apiKey;
|
37 |
+
$this->secretKey = $secretKey;
|
38 |
+
$this->setResponseType($response_type);
|
39 |
+
$this->setUri(self::API_URI_BASE);
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Product Search
|
44 |
+
* @link: https://viglink-developer-center.readme.io/docs/product-search
|
45 |
+
*/
|
46 |
+
public function search($keyword, array $options)
|
47 |
+
{
|
48 |
+
$options['query'] = $keyword;
|
49 |
+
$response = $this->restGet('/product/search', $options);
|
50 |
+
return $this->_decodeResponse($response);
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Get back the metadata about an product (Product URL) with this endpoint.
|
55 |
+
* @link: https://viglink-developer-center.readme.io/docs/metadata
|
56 |
+
*/
|
57 |
+
public function getMetadata($url)
|
58 |
+
{
|
59 |
+
$options['url'] = $url;
|
60 |
+
$response = $this->restGet('/product/metadata', $options);
|
61 |
+
return $this->_decodeResponse($response);
|
62 |
+
}
|
63 |
+
|
64 |
+
public function restGet($path, array $query = null)
|
65 |
+
{
|
66 |
+
if (!$query)
|
67 |
+
$query = array();
|
68 |
+
$query['apiKey'] = $this->apiKey;
|
69 |
+
$this->setCustomHeaders(array('Authorization' => 'secret ' . $this->secretKey));
|
70 |
+
return parent::restGet($path, $query);
|
71 |
+
}
|
72 |
+
|
73 |
+
}
|
application/models/AutoblogModel.php
CHANGED
@@ -15,8 +15,8 @@ use ContentEgg\application\admin\GeneralConfig;
|
|
15 |
* AutoblogModel class file
|
16 |
*
|
17 |
* @author keywordrush.com <support@keywordrush.com>
|
18 |
-
* @link
|
19 |
-
* @copyright Copyright ©
|
20 |
*/
|
21 |
class AutoblogModel extends Model {
|
22 |
|
@@ -142,6 +142,7 @@ class AutoblogModel extends Model {
|
|
142 |
$this->save($autoblog_save);
|
143 |
return false;
|
144 |
}
|
|
|
145 |
// pre save autoblog
|
146 |
$this->save($autoblog_save);
|
147 |
|
@@ -163,7 +164,10 @@ class AutoblogModel extends Model {
|
|
163 |
$post_id = $this->createPost($keyword, $autoblog);
|
164 |
} catch (\Exception $e)
|
165 |
{
|
166 |
-
$error_mess = TemplateHelper::formatDatetime(time(), 'timestamp')
|
|
|
|
|
|
|
167 |
$autoblog['last_error'] = $error_mess . $e->getMessage();
|
168 |
}
|
169 |
|
@@ -356,14 +360,12 @@ class AutoblogModel extends Model {
|
|
356 |
$categ_id = self::createWooNestedCategories($main_product['categoryPath']);
|
357 |
else
|
358 |
$categ_id = self::createNestedCategories($main_product['categoryPath']);
|
359 |
-
|
360 |
} elseif (!empty($autoblog['config']['dynamic_categories']) && $autoblog['config']['dynamic_categories'] && $main_product['category'])
|
361 |
{
|
362 |
if ($autoblog['post_type'] == 'product')
|
363 |
$categ_id = self::createWooCategory($main_product['category']);
|
364 |
else
|
365 |
$categ_id = self::createCategory($main_product['category']);
|
366 |
-
|
367 |
} else
|
368 |
$categ_id = $autoblog['category'];
|
369 |
|
@@ -391,7 +393,10 @@ class AutoblogModel extends Model {
|
|
391 |
if (\get_post_type($post_id) == 'product')
|
392 |
{
|
393 |
// external by default
|
394 |
-
|
|
|
|
|
|
|
395 |
|
396 |
if (\term_exists($categ_id, 'product_cat'))
|
397 |
\wp_set_object_terms($post_id, (int) $categ_id, 'product_cat');
|
@@ -442,7 +447,7 @@ class AutoblogModel extends Model {
|
|
442 |
if (stristr($pattern, '%RANDOM'))
|
443 |
{
|
444 |
preg_match('/%RANDOM\((\d+),(\d+)\)%/', $pattern, $rmatches);
|
445 |
-
if ($
|
446 |
$replace[$pattern] = rand((int) $rmatches[1], (int) $rmatches[2]);
|
447 |
else
|
448 |
$replace[$pattern] = rand(0, 9999999);
|
15 |
* AutoblogModel class file
|
16 |
*
|
17 |
* @author keywordrush.com <support@keywordrush.com>
|
18 |
+
* @link https://www.keywordrush.com
|
19 |
+
* @copyright Copyright © 2020 keywordrush.com
|
20 |
*/
|
21 |
class AutoblogModel extends Model {
|
22 |
|
142 |
$this->save($autoblog_save);
|
143 |
return false;
|
144 |
}
|
145 |
+
|
146 |
// pre save autoblog
|
147 |
$this->save($autoblog_save);
|
148 |
|
164 |
$post_id = $this->createPost($keyword, $autoblog);
|
165 |
} catch (\Exception $e)
|
166 |
{
|
167 |
+
$error_mess = TemplateHelper::formatDatetime(time(), 'timestamp');
|
168 |
+
if (strlen($keyword) < 100)
|
169 |
+
$error_mess .= ' [' . $keyword . ']';
|
170 |
+
$error_mess .= ' - ';
|
171 |
$autoblog['last_error'] = $error_mess . $e->getMessage();
|
172 |
}
|
173 |
|
360 |
$categ_id = self::createWooNestedCategories($main_product['categoryPath']);
|
361 |
else
|
362 |
$categ_id = self::createNestedCategories($main_product['categoryPath']);
|
|
|
363 |
} elseif (!empty($autoblog['config']['dynamic_categories']) && $autoblog['config']['dynamic_categories'] && $main_product['category'])
|
364 |
{
|
365 |
if ($autoblog['post_type'] == 'product')
|
366 |
$categ_id = self::createWooCategory($main_product['category']);
|
367 |
else
|
368 |
$categ_id = self::createCategory($main_product['category']);
|
|
|
369 |
} else
|
370 |
$categ_id = $autoblog['category'];
|
371 |
|
393 |
if (\get_post_type($post_id) == 'product')
|
394 |
{
|
395 |
// external by default
|
396 |
+
//\wp_set_object_terms($post_id, 'external', 'product_type');
|
397 |
+
$classname = \WC_Product_Factory::get_product_classname($post_id, 'external');
|
398 |
+
$product = new $classname($post_id);
|
399 |
+
$product->save();
|
400 |
|
401 |
if (\term_exists($categ_id, 'product_cat'))
|
402 |
\wp_set_object_terms($post_id, (int) $categ_id, 'product_cat');
|
447 |
if (stristr($pattern, '%RANDOM'))
|
448 |
{
|
449 |
preg_match('/%RANDOM\((\d+),(\d+)\)%/', $pattern, $rmatches);
|
450 |
+
if ($rmatches)
|
451 |
$replace[$pattern] = rand((int) $rmatches[1], (int) $rmatches[2]);
|
452 |
else
|
453 |
$replace[$pattern] = rand(0, 9999999);
|
application/models/FeedProductModel.php
CHANGED
@@ -11,7 +11,7 @@ use ContentEgg\application\helpers\TextHelper;
|
|
11 |
*
|
12 |
* @author keywordrush.com <support@keywordrush.com>
|
13 |
* @link https://www.keywordrush.com
|
14 |
-
* @copyright Copyright ©
|
15 |
*/
|
16 |
abstract class FeedProductModel extends Model {
|
17 |
|
@@ -79,4 +79,19 @@ abstract class FeedProductModel extends Model {
|
|
79 |
return $this->getDb()->get_row($sql, \ARRAY_A);
|
80 |
}
|
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
}
|
11 |
*
|
12 |
* @author keywordrush.com <support@keywordrush.com>
|
13 |
* @link https://www.keywordrush.com
|
14 |
+
* @copyright Copyright © 2021 keywordrush.com
|
15 |
*/
|
16 |
abstract class FeedProductModel extends Model {
|
17 |
|
79 |
return $this->getDb()->get_row($sql, \ARRAY_A);
|
80 |
}
|
81 |
|
82 |
+
public function getAllUrls()
|
83 |
+
{
|
84 |
+
return $this->getDb()->get_col('SELECT orig_url FROM ' . $this->tableName());
|
85 |
+
}
|
86 |
+
|
87 |
+
public function getEans()
|
88 |
+
{
|
89 |
+
return $this->getDb()->get_col('SELECT ean FROM ' . $this->tableName() . ' WHERE ean != ""');
|
90 |
+
}
|
91 |
+
|
92 |
+
public function getDublicateEans()
|
93 |
+
{
|
94 |
+
return $this->getDb()->get_col('SELECT ean, COUNT(*) c FROM ' . $this->tableName() . ' WHERE ean != "" GROUP BY ean HAVING c > 1');
|
95 |
+
}
|
96 |
+
|
97 |
}
|
application/models/Model.php
CHANGED
@@ -268,5 +268,6 @@ abstract class Model {
|
|
268 |
$this->getDb()->query($query);
|
269 |
}
|
270 |
}
|
|
|
271 |
|
272 |
}
|
268 |
$this->getDb()->query($query);
|
269 |
}
|
270 |
}
|
271 |
+
|
272 |
|
273 |
}
|
application/models/ProductModel.php
CHANGED
@@ -12,8 +12,8 @@ use ContentEgg\application\components\ContentProduct;
|
|
12 |
* ProductModel class file
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
-
* @link
|
16 |
-
* @copyright Copyright ©
|
17 |
*/
|
18 |
class ProductModel extends Model {
|
19 |
|
@@ -129,6 +129,9 @@ class ProductModel extends Model {
|
|
129 |
$products = array();
|
130 |
foreach ($data as $unique_id => $d)
|
131 |
{
|
|
|
|
|
|
|
132 |
$product = array(
|
133 |
'last_update' => '',
|
134 |
'stock_status' => ContentProduct::STOCK_STATUS_UNKNOWN,
|
12 |
* ProductModel class file
|
13 |
*
|
14 |
* @author keywordrush.com <support@keywordrush.com>
|
15 |
+
* @link https://www.keywordrush.com
|
16 |
+
* @copyright Copyright © 2021 keywordrush.com
|
17 |
*/
|
18 |
class ProductModel extends Model {
|
19 |
|
129 |
$products = array();
|
130 |
foreach ($data as $unique_id => $d)
|
131 |
{
|
132 |
+
if (!$unique_id)
|
133 |
+
continue;
|
134 |
+
|
135 |
$product = array(
|
136 |
'last_update' => '',
|
137 |
'stock_status' => ContentProduct::STOCK_STATUS_UNKNOWN,
|
application/modules/AE/AEConfig.php
CHANGED
@@ -45,7 +45,7 @@ class AEConfig extends AffiliateParserModuleConfig {
|
|
45 |
'section' => 'default',
|
46 |
),
|
47 |
'entries_per_page_update' => array(
|
48 |
-
'title' => __('Results for updates ', 'content-egg'),
|
49 |
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg'),
|
50 |
'callback' => array($this, 'render_input'),
|
51 |
'default' => 3,
|
45 |
'section' => 'default',
|
46 |
),
|
47 |
'entries_per_page_update' => array(
|
48 |
+
'title' => __('Results for updates and autoblogging', 'content-egg'),
|
49 |
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg'),
|
50 |
'callback' => array($this, 'render_input'),
|
51 |
'default' => 3,
|
application/modules/AE/AEModule.php
CHANGED
@@ -17,8 +17,8 @@ use \Keywordrush\AffiliateEgg\ParserManager;
|
|
17 |
* AEModule class file
|
18 |
*
|
19 |
* @author keywordrush.com <support@keywordrush.com>
|
20 |
-
* @link
|
21 |
-
* @copyright Copyright ©
|
22 |
*/
|
23 |
class AEModule extends AffiliateParserModule {
|
24 |
|
@@ -40,7 +40,7 @@ class AEModule extends AffiliateParserModule {
|
|
40 |
return array(
|
41 |
'name' => 'AE:' . $name,
|
42 |
'description' => sprintf(__('Affiliate Egg parser for %s', 'content-egg'), $uri),
|
43 |
-
'docs_uri' => 'https://ce-docs.keywordrush.com/
|
44 |
);
|
45 |
}
|
46 |
|
17 |
* AEModule class file
|
18 |
*
|
19 |
* @author keywordrush.com <support@keywordrush.com>
|
20 |
+
* @link https://www.keywordrush.com
|
21 |
+
* @copyright Copyright © 2021 keywordrush.com
|
22 |
*/
|
23 |
class AEModule extends AffiliateParserModule {
|
24 |
|
40 |
return array(
|
41 |
'name' => 'AE:' . $name,
|
42 |
'description' => sprintf(__('Affiliate Egg parser for %s', 'content-egg'), $uri),
|
43 |
+
'docs_uri' => 'https://ce-docs.keywordrush.com/modules/affiliate-egg-integration#avoid-getting-blocked',
|
44 |
);
|
45 |
}
|
46 |
|
application/modules/AdmitadProducts/AdmitadProductsConfig.php
CHANGED
@@ -71,7 +71,7 @@ class AdmitadProductsConfig extends AffiliateParserModuleConfig {
|
|
71 |
'section' => 'default',
|
72 |
),
|
73 |
'entries_per_page_update' => array(
|
74 |
-
'title' => __('Results for updates ', 'content-egg'),
|
75 |
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg'),
|
76 |
'callback' => array($this, 'render_input'),
|
77 |
'default' => 6,
|
71 |
'section' => 'default',
|
72 |
),
|
73 |
'entries_per_page_update' => array(
|
74 |
+
'title' => __('Results for updates and autoblogging', 'content-egg'),
|
75 |
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg'),
|
76 |
'callback' => array($this, 'render_input'),
|
77 |
'default' => 6,
|
application/modules/AffilinetCoupons/AffilinetCouponsConfig.php
CHANGED
@@ -60,7 +60,7 @@ class AffilinetCouponsConfig extends AffiliateParserModuleConfig {
|
|
60 |
'section' => 'default',
|
61 |
),
|
62 |
'entries_per_page_update' => array(
|
63 |
-
'title' => __('Results for updates ', 'content-egg'),
|
64 |
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg'),
|
65 |
'callback' => array($this, 'render_input'),
|
66 |
'default' => 3,
|
60 |
'section' => 'default',
|
61 |
),
|
62 |
'entries_per_page_update' => array(
|
63 |
+
'title' => __('Results for updates and autoblogging', 'content-egg'),
|
64 |
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg'),
|
65 |
'callback' => array($this, 'render_input'),
|
66 |
'default' => 3,
|
application/modules/Amazon/AmazonConfig.php
CHANGED
@@ -98,7 +98,7 @@ class AmazonConfig extends AffiliateParserModuleConfig {
|
|
98 |
'section' => 'default',
|
99 |
),
|
100 |
'entries_per_page_update' => array(
|
101 |
-
'title' => __('Results for updates ', 'content-egg'),
|
102 |
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg') . ' ' .
|
103 |
__('It needs a bit more time to get more than 10 results in one request', 'content-egg'),
|
104 |
'callback' => array($this, 'render_input'),
|
98 |
'section' => 'default',
|
99 |
),
|
100 |
'entries_per_page_update' => array(
|
101 |
+
'title' => __('Results for updates and autoblogging', 'content-egg'),
|
102 |
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg') . ' ' .
|
103 |
__('It needs a bit more time to get more than 10 results in one request', 'content-egg'),
|
104 |
'callback' => array($this, 'render_input'),
|
application/modules/Amazon/templates/data_compare.php
CHANGED
@@ -95,7 +95,7 @@ $barcodes = array(
|
|
95 |
<?php endif; ?>
|
96 |
</span>
|
97 |
<span class="text-muted">
|
98 |
-
<br
|
99 |
</span>
|
100 |
</div>
|
101 |
<?php endforeach; ?>
|
95 |
<?php endif; ?>
|
96 |
</span>
|
97 |
<span class="text-muted">
|
98 |
+
<br /><?php echo sprintf(TemplateHelper::__('as of %s'), TemplateHelper::getLastUpdateFormatted('Amazon', $post_id)); ?>
|
99 |
</span>
|
100 |
</div>
|
101 |
<?php endforeach; ?>
|
application/modules/CjLinks/CjLinksConfig.php
CHANGED
@@ -70,7 +70,7 @@ class CjLinksConfig extends AffiliateParserModuleConfig {
|
|
70 |
'section' => 'default',
|
71 |
),
|
72 |
'entries_per_page_update' => array(
|
73 |
-
'title' => __('Results for updates ', 'content-egg'),
|
74 |
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg'),
|
75 |
'callback' => array($this, 'render_input'),
|
76 |
'default' => 3,
|
70 |
'section' => 'default',
|
71 |
),
|
72 |
'entries_per_page_update' => array(
|
73 |
+
'title' => __('Results for updates and autoblogging', 'content-egg'),
|
74 |
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg'),
|
75 |
'callback' => array($this, 'render_input'),
|
76 |
'default' => 3,
|
application/modules/Coupon/CouponModule.php
CHANGED
@@ -108,9 +108,9 @@ class CouponModule extends AffiliateParserModule {
|
|
108 |
$hide_future = $this->config('hide_future');
|
109 |
foreach ($data as $key => $d)
|
110 |
{
|
111 |
-
if ($hide_expired && $d['endDate'] && time() > $d['endDate'])
|
112 |
unset($data[$key]);
|
113 |
-
elseif ($hide_future && $d['startDate'] && $d['startDate'] > time())
|
114 |
unset($data[$key]);
|
115 |
}
|
116 |
|
108 |
$hide_future = $this->config('hide_future');
|
109 |
foreach ($data as $key => $d)
|
110 |
{
|
111 |
+
if (isset($d['endDate']) && $hide_expired && $d['endDate'] && time() > $d['endDate'])
|
112 |
unset($data[$key]);
|
113 |
+
elseif (isset($d['startDate']) && $hide_future && $d['startDate'] && $d['startDate'] > time())
|
114 |
unset($data[$key]);
|
115 |
}
|
116 |
|
application/modules/Feed/ExtraDataAE.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\AE;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
use ContentEgg\application\components\ExtraData;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* ExtraDataAE class file
|
11 |
+
*
|
12 |
+
* @author keywordrush.com <support@keywordrush.com>
|
13 |
+
* @link http://www.keywordrush.com/
|
14 |
+
* @copyright Copyright © 2016 keywordrush.com
|
15 |
+
*/
|
16 |
+
class ExtraDataAE extends ExtraData {
|
17 |
+
|
18 |
+
public $features = array();
|
19 |
+
public $comments = array();
|
20 |
+
public $images = array();
|
21 |
+
public $data = array();
|
22 |
+
|
23 |
+
}
|
application/modules/Feed/FeedConfig.php
ADDED
@@ -0,0 +1,247 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
use ContentEgg\application\components\AffiliateFeedParserModuleConfig;
|
8 |
+
use ContentEgg\application\helpers\CurrencyHelper;
|
9 |
+
use ContentEgg\application\helpers\TextHelper;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* FeedConfig class file
|
13 |
+
*
|
14 |
+
* @author keywordrush.com <support@keywordrush.com>
|
15 |
+
* @link https://www.keywordrush.com
|
16 |
+
* @copyright Copyright © 2021 keywordrush.com
|
17 |
+
*/
|
18 |
+
class FeedConfig extends AffiliateFeedParserModuleConfig {
|
19 |
+
|
20 |
+
public function options()
|
21 |
+
{
|
22 |
+
$currencies = CurrencyHelper::getCurrenciesList();
|
23 |
+
|
24 |
+
$options = array(
|
25 |
+
'feed_name' => array(
|
26 |
+
'title' => __('Feed name', 'content-egg') . ' <span class="cegg_required">*</span>',
|
27 |
+
'description' => sprintf(__('For example: %s', 'content-egg'), 'Saturn.de'),
|
28 |
+
'callback' => array($this, 'render_input'),
|
29 |
+
'default' => '',
|
30 |
+
'validator' => array(
|
31 |
+
'trim',
|
32 |
+
'\sanitize_text_field',
|
33 |
+
array(
|
34 |
+
'call' => array('\ContentEgg\application\helpers\FormValidator', 'required'),
|
35 |
+
'message' => sprintf(__('The field "%s" can not be empty.', 'content-egg'), __('Feed name', 'content-egg')),
|
36 |
+
),
|
37 |
+
array(
|
38 |
+
'call' => array($this, 'saveFeedName'),
|
39 |
+
'type' => 'filter',
|
40 |
+
),
|
41 |
+
),
|
42 |
+
),
|
43 |
+
'feed_url' => array(
|
44 |
+
'title' => __('Feed download URL', 'content-egg') . ' <span class="cegg_required">*</span>',
|
45 |
+
'description' => __('CSV format only.', 'content-egg') . ' ' .
|
46 |
+
sprintf(__('Make sure your unzipped feed size is less than %s.', 'content-egg'), \WP_MAX_MEMORY_LIMIT),
|
47 |
+
'callback' => array($this, 'render_input'),
|
48 |
+
'default' => '',
|
49 |
+
'validator' => array(
|
50 |
+
'trim',
|
51 |
+
array(
|
52 |
+
'call' => array('\ContentEgg\application\helpers\FormValidator', 'required'),
|
53 |
+
'when' => 'is_active',
|
54 |
+
'message' => sprintf(__('The field "%s" can not be empty.', 'content-egg'), 'Datafeed Download URL'),
|
55 |
+
),
|
56 |
+
array(
|
57 |
+
'call' => array($this, 'validateFeedUrl'),
|
58 |
+
'when' => 'is_active',
|
59 |
+
'message' => sprintf(__('Field "%s" filled with wrong data.', 'content-egg'), 'Feed download URL'),
|
60 |
+
),
|
61 |
+
),
|
62 |
+
),
|
63 |
+
'archive_format' => array(
|
64 |
+
'title' => __('Archive format', 'content-egg') . ' <span class="cegg_required">*</span>',
|
65 |
+
'callback' => array($this, 'render_dropdown'),
|
66 |
+
'dropdown_options' => array(
|
67 |
+
'none' => __('None', 'content-egg'),
|
68 |
+
'zip' => 'ZIP',
|
69 |
+
),
|
70 |
+
'default' => 'none',
|
71 |
+
),
|
72 |
+
'encoding' => array(
|
73 |
+
'title' => __('Feed encoding', 'content-egg') . ' <span class="cegg_required">*</span>',
|
74 |
+
'callback' => array($this, 'render_dropdown'),
|
75 |
+
'dropdown_options' => array(
|
76 |
+
'UTF-8' => 'UTF-8',
|
77 |
+
'ISO-8859-1' => 'ISO-8859-1',
|
78 |
+
),
|
79 |
+
'default' => 'UTF-8',
|
80 |
+
),
|
81 |
+
'currency' => array(
|
82 |
+
'title' => __('Default currency', 'content-egg') . ' <span class="cegg_required">*</span>',
|
83 |
+
'callback' => array($this, 'render_dropdown'),
|
84 |
+
'dropdown_options' => array_combine($currencies, $currencies),
|
85 |
+
'default' => 'USD',
|
86 |
+
),
|
87 |
+
'domain' => array(
|
88 |
+
'title' => __('Default merchant domain', 'content-egg') . ' <span class="cegg_required">*</span>',
|
89 |
+
'description' => sprintf(__('For example: %s', 'content-egg'), 'saturn.de'),
|
90 |
+
'callback' => array($this, 'render_input'),
|
91 |
+
'default' => '',
|
92 |
+
'validator' => array(
|
93 |
+
array(
|
94 |
+
'call' => array('\ContentEgg\application\helpers\FormValidator', 'required'),
|
95 |
+
'when' => 'is_active',
|
96 |
+
'message' => sprintf(__('The field "%s" can not be empty.', 'content-egg'), 'Default merchant domain'),
|
97 |
+
),
|
98 |
+
array(
|
99 |
+
'call' => array($this, 'sanitizeDomain'),
|
100 |
+
'type' => 'filter',
|
101 |
+
),
|
102 |
+
),
|
103 |
+
),
|
104 |
+
'mapping' => array(
|
105 |
+
'title' => __('Field mapping', 'content-egg') . ' <span class="cegg_required">*</span>',
|
106 |
+
'description' => '',
|
107 |
+
'callback' => array($this, 'render_mapping_block'),
|
108 |
+
'validator' => array(
|
109 |
+
array(
|
110 |
+
'call' => array($this, 'mappingSanitize'),
|
111 |
+
'type' => 'filter',
|
112 |
+
),
|
113 |
+
array(
|
114 |
+
'call' => array($this, 'mappingValidate'),
|
115 |
+
'when' => 'is_active',
|
116 |
+
'message' => __('Please fill out all required mapping fields.', 'content-egg'),
|
117 |
+
),
|
118 |
+
),
|
119 |
+
),
|
120 |
+
|
121 |
+
'deeplink' => array(
|
122 |
+
'title' => __('Deeplink', 'content-egg'),
|
123 |
+
'description' => __('Set this option only if your feed does not contain affiliate links.', 'content-egg'),
|
124 |
+
'callback' => array($this, 'render_input'),
|
125 |
+
'default' => '',
|
126 |
+
'validator' => array(
|
127 |
+
'trim',
|
128 |
+
),
|
129 |
+
'section' => 'default',
|
130 |
+
),
|
131 |
+
);
|
132 |
+
$options = array_merge(parent::options(), $options);
|
133 |
+
return self::moveRequiredUp($options);
|
134 |
+
}
|
135 |
+
|
136 |
+
public function render_mapping_row($args)
|
137 |
+
{
|
138 |
+
$field_name = $args['_field_name'];
|
139 |
+
$value = isset($args['value'][$field_name]) ? $args['value'][$field_name] : '';
|
140 |
+
|
141 |
+
$display_name = $field_name;
|
142 |
+
if (self::isMappingFieldRequared($field_name))
|
143 |
+
$display_name .= ' ' . __('(required)', 'content-egg');
|
144 |
+
else
|
145 |
+
$display_name .= ' ' . __('(optional)', 'content-egg');
|
146 |
+
|
147 |
+
|
148 |
+
echo '<input value="' . \esc_attr($display_name) . '" class="regular-text ltr" type="text" readonly />';
|
149 |
+
echo ' › ';
|
150 |
+
echo '<input name="' . \esc_attr($args['option_name']) . '['
|
151 |
+
. \esc_attr($args['name']) . '][' . \esc_attr($field_name) . ']" value="'
|
152 |
+
. \esc_attr($value) . '" class="regular-text ltr" placeholder="' . \esc_attr(__('In your feed', 'content-egg')) . '" type="text"/>';
|
153 |
+
}
|
154 |
+
|
155 |
+
public function render_mapping_block($args)
|
156 |
+
{
|
157 |
+
if (!$args['value'])
|
158 |
+
$args['value'] = array();
|
159 |
+
|
160 |
+
foreach (array_keys(self::mappingFields()) as $str)
|
161 |
+
{
|
162 |
+
echo '<div style="padding-bottom: 5px;">';
|
163 |
+
$args['_field_name'] = $str;
|
164 |
+
$this->render_mapping_row($args);
|
165 |
+
echo '</div>';
|
166 |
+
}
|
167 |
+
if ($args['description'])
|
168 |
+
echo '<p class="description">' . $args['description'] . '</p>';
|
169 |
+
}
|
170 |
+
|
171 |
+
public static function mappingFields()
|
172 |
+
{
|
173 |
+
return array(
|
174 |
+
'id' => true,
|
175 |
+
'title' => true,
|
176 |
+
'description' => true,
|
177 |
+
'affiliate link' => true,
|
178 |
+
'image link' => true,
|
179 |
+
'price' => true,
|
180 |
+
'sale price' => false,
|
181 |
+
'currency' => false,
|
182 |
+
'availability' => false,
|
183 |
+
'is in stock' => false,
|
184 |
+
'direct link' => false,
|
185 |
+
'brand' => false,
|
186 |
+
'category' => false,
|
187 |
+
'gtin' => false,
|
188 |
+
);
|
189 |
+
}
|
190 |
+
|
191 |
+
public static function isMappingFieldRequared($field)
|
192 |
+
{
|
193 |
+
$fields = self::mappingFields();
|
194 |
+
if (isset($fields[$field]) && $fields[$field])
|
195 |
+
return true;
|
196 |
+
else
|
197 |
+
return false;
|
198 |
+
}
|
199 |
+
|
200 |
+
public function mappingSanitize($values)
|
201 |
+
{
|
202 |
+
foreach ($values as $k => $value)
|
203 |
+
{
|
204 |
+
$values[$k] = trim(\sanitize_text_field($value));
|
205 |
+
}
|
206 |
+
|
207 |
+
return $values;
|
208 |
+
}
|
209 |
+
|
210 |
+
public function mappingValidate($values)
|
211 |
+
{
|
212 |
+
foreach ($values as $field => $value)
|
213 |
+
{
|
214 |
+
if (self::isMappingFieldRequared($field) && !$value)
|
215 |
+
return false;
|
216 |
+
}
|
217 |
+
|
218 |
+
return true;
|
219 |
+
}
|
220 |
+
|
221 |
+
public function saveFeedName($value)
|
222 |
+
{
|
223 |
+
FeedName::getInstance()->saveName($this->getModuleId(), $value);
|
224 |
+
return $value;
|
225 |
+
}
|
226 |
+
|
227 |
+
public function sanitizeDomain($value)
|
228 |
+
{
|
229 |
+
$value = trim(\sanitize_text_field($value));
|
230 |
+
if ($host = TextHelper::getHostName($value))
|
231 |
+
$value = $host;
|
232 |
+
|
233 |
+
$value = strtolower($value);
|
234 |
+
$value = str_replace('www.', '', $value);
|
235 |
+
$value = trim($value, "/");
|
236 |
+
return $value;
|
237 |
+
}
|
238 |
+
|
239 |
+
public function validateFeedUrl($value)
|
240 |
+
{
|
241 |
+
if (filter_var($value, FILTER_VALIDATE_URL) === false)
|
242 |
+
return false;
|
243 |
+
else
|
244 |
+
return true;
|
245 |
+
}
|
246 |
+
|
247 |
+
}
|
application/modules/Feed/FeedModule.php
ADDED
@@ -0,0 +1,334 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
use ContentEgg\application\admin\PluginAdmin;
|
8 |
+
use ContentEgg\application\components\AffiliateFeedParserModule;
|
9 |
+
use ContentEgg\application\modules\Feed\FeedName;
|
10 |
+
use ContentEgg\application\helpers\TextHelper;
|
11 |
+
use ContentEgg\application\components\ContentProduct;
|
12 |
+
use ContentEgg\application\components\LinkHandler;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* FeedModule class file
|
16 |
+
*
|
17 |
+
* @author keywordrush.com <support@keywordrush.com>
|
18 |
+
* @link https://www.keywordrush.com
|
19 |
+
* @copyright Copyright © 2021 keywordrush.com
|
20 |
+
*/
|
21 |
+
class FeedModule extends AffiliateFeedParserModule {
|
22 |
+
|
23 |
+
public function info()
|
24 |
+
{
|
25 |
+
if (!$name = FeedName::getInstance()->getName($this->getId()))
|
26 |
+
$name = __('Add new', 'content-egg');
|
27 |
+
|
28 |
+
return array(
|
29 |
+
'name' => 'Feed:' . $name,
|
30 |
+
'docs_uri' => 'https://ce-docs.keywordrush.com/modules/feed-modules',
|
31 |
+
);
|
32 |
+
}
|
33 |
+
|
34 |
+
public function releaseVersion()
|
35 |
+
{
|
36 |
+
return '5.2.0';
|
37 |
+
}
|
38 |
+
|
39 |
+
public function isFree()
|
40 |
+
{
|
41 |
+
return true;
|
42 |
+
}
|
43 |
+
|
44 |
+
public function getParserType()
|
45 |
+
{
|
46 |
+
return self::PARSER_TYPE_PRODUCT;
|
47 |
+
}
|
48 |
+
|
49 |
+
public function defaultTemplateName()
|
50 |
+
{
|
51 |
+
return 'data_grid';
|
52 |
+
}
|
53 |
+
|
54 |
+
public function isItemsUpdateAvailable()
|
55 |
+
{
|
56 |
+
return true;
|
57 |
+
}
|
58 |
+
|
59 |
+
public function isUrlSearchAllowed()
|
60 |
+
{
|
61 |
+
return true;
|
62 |
+
}
|
63 |
+
|
64 |
+
public function getProductModel()
|
65 |
+
{
|
66 |
+
$parts = explode('__', strtolower($this->getId()));
|
67 |
+
$id = end($parts);
|
68 |
+
$classname = '\\ContentEgg\\application\\modules\\Feed\\models\\MyFeed' . $id . 'ProductModel';
|
69 |
+
|
70 |
+
if (!class_exists($classname, true))
|
71 |
+
throw new \Exception('Model class does not exist.');
|
72 |
+
|
73 |
+
return $classname::model();
|
74 |
+
}
|
75 |
+
|
76 |
+
public function isZippedFeed()
|
77 |
+
{
|
78 |
+
if ($this->config('archive_format') == 'zip')
|
79 |
+
return true;
|
80 |
+
else
|
81 |
+
return false;
|
82 |
+
}
|
83 |
+
|
84 |
+
public function getFeedUrl()
|
85 |
+
{
|
86 |
+
$url = $this->config('feed_url');
|
87 |
+
|
88 |
+
if (!filter_var($url, FILTER_VALIDATE_URL))
|
89 |
+
throw new \Exception('Invalid Feed URL');
|
90 |
+
|
91 |
+
return $url;
|
92 |
+
}
|
93 |
+
|
94 |
+
protected function feedProductPrepare(array $data)
|
95 |
+
{
|
96 |
+
$mapped_data = $this->mapProduct($data);
|
97 |
+
$missed = array();
|
98 |
+
foreach (array_keys(FeedConfig::mappingFields()) as $field)
|
99 |
+
{
|
100 |
+
if (FeedConfig::isMappingFieldRequared($field) && !isset($mapped_data[$field]))
|
101 |
+
$missed[] = $field;
|
102 |
+
}
|
103 |
+
if ($missed)
|
104 |
+
throw new \Exception(sprintf('Required mapping fields are missing in the feed: %s.', join(', ', $missed)));
|
105 |
+
|
106 |
+
$product = array();
|
107 |
+
$product['id'] = sanitize_text_field($mapped_data['id']);
|
108 |
+
$product['title'] = \sanitize_text_field($mapped_data['title']);
|
109 |
+
|
110 |
+
if (!$product['id'] || !$product['title'])
|
111 |
+
return false;
|
112 |
+
|
113 |
+
if (isset($mapped_data['sale price']) && (float) $mapped_data['sale price'])
|
114 |
+
$product['price'] = (float) $mapped_data['sale price'];
|
115 |
+
else
|
116 |
+
$product['price'] = (float) $mapped_data['price'];
|
117 |
+
|
118 |
+
$product['stock_status'] = ContentProduct::STOCK_STATUS_UNKNOWN;
|
119 |
+
if (!empty($mapped_data['availability']))
|
120 |
+
{
|
121 |
+
$availability = strtolower($mapped_data['availability']);
|
122 |
+
if (strstr($availability, 'out of stock') || strstr($availability, 'outofstock'))
|
123 |
+
$product['stock_status'] = ContentProduct::STOCK_STATUS_OUT_OF_STOCK;
|
124 |
+
else
|
125 |
+
$product['stock_status'] = ContentProduct::STOCK_STATUS_IN_STOCK;
|
126 |
+
} elseif (!empty($mapped_data['is in stock']))
|
127 |
+
{
|
128 |
+
if (filter_var($mapped_data['is in stock'], FILTER_VALIDATE_BOOLEAN))
|
129 |
+
$product['stock_status'] = ContentProduct::STOCK_STATUS_IN_STOCK;
|
130 |
+
else
|
131 |
+
$product['stock_status'] = ContentProduct::STOCK_STATUS_OUT_OF_STOCK;
|
132 |
+
}
|
133 |
+
|
134 |
+
if (isset($mapped_data['gtin']) && TextHelper::isEan($mapped_data['gtin']))
|
135 |
+
$product['ean'] = $mapped_data['gtin'];
|
136 |
+
else
|
137 |
+
$product['ean'] = '';
|
138 |
+
|
139 |
+
if (!empty($mapped_data['direct link']))
|
140 |
+
$product['orig_url'] = $mapped_data['direct link'];
|
141 |
+
elseif ($orig_url = TextHelper::findOriginalUrl($mapped_data['affiliate link']))
|
142 |
+
$product['orig_url'] = $orig_url;
|
143 |
+
else
|
144 |
+
$product['orig_url'] = $mapped_data['affiliate link'];
|
145 |
+
$product['product'] = serialize($data);
|
146 |
+
|
147 |
+
return $product;
|
148 |
+
}
|
149 |
+
|
150 |
+
public function doRequest($keyword, $query_params = array(), $is_autoupdate = false)
|
151 |
+
{
|
152 |
+
$this->maybeImportProducts();
|
153 |
+
|
154 |
+
if ($is_autoupdate)
|
155 |
+
$limit = $this->config('entries_per_page_update');
|
156 |
+
else
|
157 |
+
$limit = $this->config('entries_per_page');
|
158 |
+
|
159 |
+
if (TextHelper::isEan($keyword))
|
160 |
+
$results = $this->product_model->searchByEan($keyword, $limit);
|
161 |
+
elseif (filter_var($keyword, FILTER_VALIDATE_URL))
|
162 |
+
$results = $this->product_model->searchByUrl($keyword, $this->config('partial_url_match'), $limit);
|
163 |
+
else
|
164 |
+
{
|
165 |
+
$options = array();
|
166 |
+
if (!empty($query_params['price_min']))
|
167 |
+
$options['price_min'] = (float) $query_params['price_min'];
|
168 |
+
if (!empty($query_params['price_min']))
|
169 |
+
$options['price_max'] = (float) $query_params['price_max'];
|
170 |
+
|
171 |
+
$results = $this->product_model->searchByKeyword($keyword, $limit, $options);
|
172 |
+
|
173 |
+
}
|
174 |
+
if (!$results)
|
175 |
+
return array();
|
176 |
+
|
177 |
+
return $this->prepareResults($results);
|
178 |
+
}
|
179 |
+
|
180 |
+
public function doRequestItems(array $items)
|
181 |
+
{
|
182 |
+
$this->maybeImportProducts();
|
183 |
+
$deeplink = $this->config('deeplink');
|
184 |
+
foreach ($items as $key => $item)
|
185 |
+
{
|
186 |
+
// fix
|
187 |
+
if (!$key)
|
188 |
+
{
|
189 |
+
unset($items[$key]);
|
190 |
+
continue;
|
191 |
+
}
|
192 |
+
|
193 |
+
$product = $this->product_model->searchById($item['unique_id']);
|
194 |
+
if (!$product)
|
195 |
+
{
|
196 |
+
if ($this->product_model->count())
|
197 |
+
$items[$key]['stock_status'] = ContentProduct::STOCK_STATUS_OUT_OF_STOCK;
|
198 |
+
continue;
|
199 |
+
}
|
200 |
+
if (!$r = unserialize($product['product']))
|
201 |
+
continue;
|
202 |
+
|
203 |
+
$r = $this->mapProduct($r);
|
204 |
+
|
205 |
+
if (isset($r['availability']))
|
206 |
+
$items[$key]['availability'] = $r['availability'];
|
207 |
+
|
208 |
+
$items[$key]['stock_status'] = $product['stock_status'];
|
209 |
+
|
210 |
+
if (!empty($r['sale price']))
|
211 |
+
{
|
212 |
+
$items[$key]['price'] = (float) $r['sale price'];
|
213 |
+
if (isset($r['price']) && (float) $r['price'] > $items[$key]['price'])
|
214 |
+
$items[$key]['priceOld'] = (float) $r['price'];
|
215 |
+
} else
|
216 |
+
{
|
217 |
+
$items[$key]['price'] = (float) $r['price'];
|
218 |
+
$items[$key]['priceOld'] = 0;
|
219 |
+
}
|
220 |
+
|
221 |
+
if ($deeplink)
|
222 |
+
$items[$key]['url'] = LinkHandler::createAffUrl($items[$key]['orig_url'], $deeplink, $item);
|
223 |
+
}
|
224 |
+
|
225 |
+
return $items;
|
226 |
+
}
|
227 |
+
|
228 |
+
private function prepareResults($results)
|
229 |
+
{
|
230 |
+
$data = array();
|
231 |
+
$deeplink = $this->config('deeplink');
|
232 |
+
|
233 |
+
foreach ($results as $product)
|
234 |
+
{
|
235 |
+
if (!$r = unserialize($product['product']))
|
236 |
+
continue;
|
237 |
+
|
238 |
+
$r = $this->mapProduct($r);
|
239 |
+
|
240 |
+
$content = new ContentProduct;
|
241 |
+
|
242 |
+
$content->unique_id = $r['id'];
|
243 |
+
$content->title = $r['title'];
|
244 |
+
$content->url = $r['affiliate link'];
|
245 |
+
|
246 |
+
if (!empty($r['sale price']))
|
247 |
+
{
|
248 |
+
$content->price = (float) $r['sale price'];
|
249 |
+
if (isset($r['price']) && (float) $r['price'] > $content->price)
|
250 |
+
$content->priceOld = (float) $r['price'];
|
251 |
+
} else
|
252 |
+
$content->price = (float) $r['price'];
|
253 |
+
|
254 |
+
|
255 |
+
if (isset($r['currency']) && strlen($r['currency']))
|
256 |
+
$content->currencyCode = $r['currency'];
|
257 |
+
else
|
258 |
+
$content->currencyCode = $this->config('currency');
|
259 |
+
|
260 |
+
if (!empty($r['description']) && $r['title'] != $r['description'])
|
261 |
+
$content->description = $r['description'];
|
262 |
+
|
263 |
+
if (isset($r['brand']))
|
264 |
+
$content->manufacturer = $r['brand'];
|
265 |
+
if (isset($r['category']))
|
266 |
+
$content->category = $r['category'];
|
267 |
+
if (isset($r['availability']))
|
268 |
+
$content->availability = $r['availability'];
|
269 |
+
if (isset($r['image link']) && filter_var($r['image link'], FILTER_VALIDATE_URL))
|
270 |
+
$content->img = $r['image link'];
|
271 |
+
|
272 |
+
$content->orig_url = $product['orig_url'];
|
273 |
+
$content->stock_status = $product['stock_status'];
|
274 |
+
$content->ean = $product['ean'];
|
275 |
+
|
276 |
+
if ($content->orig_url != $content->url)
|
277 |
+
$content->domain = TextHelper::getHostName($content->orig_url);
|
278 |
+
else
|
279 |
+
$content->domain = $this->config('domain');
|
280 |
+
|
281 |
+
if ($deeplink)
|
282 |
+
$content->url = LinkHandler::createAffUrl($content->orig_url, $deeplink, (array) $content);
|
283 |
+
|
284 |
+
$data[] = $content;
|
285 |
+
}
|
286 |
+
return $data;
|
287 |
+
}
|
288 |
+
|
289 |
+
public function renderSearchPanel()
|
290 |
+
{
|
291 |
+
$this->render('search_panel', array('module_id' => $this->getId()));
|
292 |
+
}
|
293 |
+
|
294 |
+
public function renderResults()
|
295 |
+
{
|
296 |
+
PluginAdmin::render('_metabox_results', array('module_id' => $this->getId()));
|
297 |
+
}
|
298 |
+
|
299 |
+
public function renderSearchResults()
|
300 |
+
{
|
301 |
+
PluginAdmin::render('_metabox_search_results', array('module_id' => $this->getId()));
|
302 |
+
}
|
303 |
+
|
304 |
+
public function renderUpdatePanel()
|
305 |
+
{
|
306 |
+
$this->render('update_panel', array('module_id' => $this->getId()));
|
307 |
+
}
|
308 |
+
|
309 |
+
public function viewDataPrepare($data)
|
310 |
+
{
|
311 |
+
if (!$deeplink = $this->config('deeplink'))
|
312 |
+
return $data;
|
313 |
+
|
314 |
+
foreach ($data as $key => $d)
|
315 |
+
{
|
316 |
+
$data[$key]['url'] = LinkHandler::createAffUrl($d['orig_url'], $deeplink, $d);
|
317 |
+
}
|
318 |
+
return parent::viewDataPrepare($data);
|
319 |
+
}
|
320 |
+
|
321 |
+
public function mapProduct(array $data)
|
322 |
+
{
|
323 |
+
$mapped_data = array();
|
324 |
+
$mapping = $this->config('mapping');
|
325 |
+
foreach ($mapping as $field => $feed_field)
|
326 |
+
{
|
327 |
+
if (isset($data[$feed_field]))
|
328 |
+
$mapped_data[$field] = $data[$feed_field];
|
329 |
+
}
|
330 |
+
|
331 |
+
return $mapped_data;
|
332 |
+
}
|
333 |
+
|
334 |
+
}
|
application/modules/Feed/FeedName.php
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* FeedName class file
|
9 |
+
*
|
10 |
+
* @author keywordrush.com <support@keywordrush.com>
|
11 |
+
* @link https://www.keywordrush.com
|
12 |
+
* @copyright Copyright © 2021 keywordrush.com
|
13 |
+
*/
|
14 |
+
class FeedName {
|
15 |
+
|
16 |
+
const OPTION_NAME = 'cegg_feed_names';
|
17 |
+
|
18 |
+
private static $instance;
|
19 |
+
protected static $feeds = array();
|
20 |
+
|
21 |
+
private function __construct()
|
22 |
+
{
|
23 |
+
$this->init();
|
24 |
+
}
|
25 |
+
|
26 |
+
public static function getInstance()
|
27 |
+
{
|
28 |
+
if (self::$instance === null)
|
29 |
+
self::$instance = new self;
|
30 |
+
return self::$instance;
|
31 |
+
}
|
32 |
+
|
33 |
+
private function init()
|
34 |
+
{
|
35 |
+
self::$feeds = \get_option(self::OPTION_NAME, array());
|
36 |
+
}
|
37 |
+
|
38 |
+
public function getName($module_id)
|
39 |
+
{
|
40 |
+
if (isset(self::$feeds[$module_id]))
|
41 |
+
return self::$feeds[$module_id];
|
42 |
+
else
|
43 |
+
return false;
|
44 |
+
}
|
45 |
+
|
46 |
+
public function saveName($module_id, $name)
|
47 |
+
{
|
48 |
+
self::$feeds[$module_id] = $name;
|
49 |
+
\update_option(self::OPTION_NAME, self::$feeds);
|
50 |
+
}
|
51 |
+
|
52 |
+
}
|
application/modules/Feed/index.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Silence is golden.
|
application/modules/Feed/models/MyFeed10ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed10ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed10ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed10_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed11ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed11ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed11ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed11_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed12ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed12ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed12ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed12_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed13ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed13ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed13ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed13_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed14ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed14ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed14ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed14_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed15ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed15ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed15ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed15_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed16ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed16ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed16ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed16_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed17ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed17ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed17ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed17_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed18ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed18ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed18ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed18_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed19ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed19ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed19ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed19_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed1ProductModel.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* MyFeed1ProductModel class file
|
9 |
+
*
|
10 |
+
* @author keywordrush.com <support@keywordrush.com>
|
11 |
+
* @link https://www.keywordrush.com
|
12 |
+
* @copyright Copyright © 2021 keywordrush.com
|
13 |
+
*/
|
14 |
+
class MyFeed1ProductModel extends MyFeedProductModel {
|
15 |
+
|
16 |
+
public function tableName()
|
17 |
+
{
|
18 |
+
return $this->getDb()->prefix . 'cegg_feed1_product';
|
19 |
+
}
|
20 |
+
|
21 |
+
public static function model($className = __CLASS__)
|
22 |
+
{
|
23 |
+
return parent::model($className);
|
24 |
+
}
|
25 |
+
|
26 |
+
}
|
application/modules/Feed/models/MyFeed20ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed20ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed20ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed20_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed21ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed21ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed21ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed21_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed22ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed22ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed22ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed22_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed23ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed23ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed23ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed23_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed24ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed24ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed24ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed24_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed25ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed25ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed25ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed25_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed2ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed2ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed2ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed2_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed3ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed3ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed3ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed3_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed4ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed4ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed4ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed4_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed5ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed5ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed5ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed5_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed6ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed6ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed6ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed6_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed7ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed7ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed7ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed7_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed8ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed8ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed8ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed8_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeed9ProductModel.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
|
8 |
+
/**
|
9 |
+
* MyFeed9ProductModel class file
|
10 |
+
*
|
11 |
+
* @author keywordrush.com <support@keywordrush.com>
|
12 |
+
* @link https://www.keywordrush.com
|
13 |
+
* @copyright Copyright © 2021 keywordrush.com
|
14 |
+
*/
|
15 |
+
class MyFeed9ProductModel extends MyFeedProductModel {
|
16 |
+
|
17 |
+
public function tableName()
|
18 |
+
{
|
19 |
+
return $this->getDb()->prefix . 'cegg_feed9_product';
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function model($className = __CLASS__)
|
23 |
+
{
|
24 |
+
return parent::model($className);
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
application/modules/Feed/models/MyFeedProductModel.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Feed\models;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
use ContentEgg\application\models\FeedProductModel;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* FeedProductModel class file
|
11 |
+
*
|
12 |
+
* @author keywordrush.com <support@keywordrush.com>
|
13 |
+
* @link https://www.keywordrush.com
|
14 |
+
* @copyright Copyright © 2021 keywordrush.com
|
15 |
+
*/
|
16 |
+
abstract class MyFeedProductModel extends FeedProductModel {
|
17 |
+
|
18 |
+
public function getDump()
|
19 |
+
{
|
20 |
+
return "CREATE TABLE " . $this->tableName() . " (
|
21 |
+
id varchar(255) NOT NULL,
|
22 |
+
stock_status tinyint(1) DEFAULT 0,
|
23 |
+
price float(12,2) DEFAULT NULL,
|
24 |
+
title text,
|
25 |
+
ean varchar(13) DEFAULT NULL,
|
26 |
+
orig_url text,
|
27 |
+
product text,
|
28 |
+
KEY id (id(32)),
|
29 |
+
KEY uid (stock_status),
|
30 |
+
KEY orig_url (orig_url(60)),
|
31 |
+
KEY ean (ean(13)),
|
32 |
+
KEY price (price),
|
33 |
+
FULLTEXT (title)
|
34 |
+
) $this->charset_collate;";
|
35 |
+
}
|
36 |
+
}
|
application/modules/Feed/templates/data_grid.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined('\ABSPATH') || exit;
|
4 |
+
/*
|
5 |
+
Name: Grid
|
6 |
+
*/
|
7 |
+
|
8 |
+
__('Grid', 'content-egg-tpl');
|
9 |
+
|
10 |
+
$this->renderPartial('grid');
|
application/modules/Feed/templates/data_item.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined('\ABSPATH') || exit;
|
4 |
+
/*
|
5 |
+
Name: Product card
|
6 |
+
*/
|
7 |
+
|
8 |
+
__('Product card', 'content-egg-tpl');
|
9 |
+
|
10 |
+
$this->renderPartial('item');
|
application/modules/Feed/templates/data_item_simple.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined('\ABSPATH') || exit;
|
4 |
+
|
5 |
+
/*
|
6 |
+
Name: Product card (no features)
|
7 |
+
*/
|
8 |
+
|
9 |
+
__('Product card (no features)', 'content-egg');
|
10 |
+
$this->renderPartial('item_simple');
|
application/modules/Feed/templates/data_list.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined('\ABSPATH') || exit;
|
4 |
+
/*
|
5 |
+
Name: List
|
6 |
+
*/
|
7 |
+
__('List', 'content-egg-tpl');
|
8 |
+
|
9 |
+
$this->renderPartial('list');
|
application/modules/Feed/templates/data_price_tracker_alert.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined('\ABSPATH') || exit;
|
4 |
+
/*
|
5 |
+
Name: Price tracker & alert
|
6 |
+
*/
|
7 |
+
|
8 |
+
__('Price tracker & alert', 'content-egg-tpl');
|
9 |
+
|
10 |
+
$this->renderPartial('price_tracker_alert');
|
application/modules/Feed/views/search_panel.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php defined('\ABSPATH') || exit; ?>
|
2 |
+
<input type="text" class="input-sm col-md-4" ng-model="query_params.<?php echo $module_id; ?>.price_min" ng-init="query_params.<?php echo $module_id; ?>.price_max = ''" placeholder="<?php _e('Min. price', 'content-egg'); ?>" />
|
3 |
+
<input type="text" class="input-sm col-md-4" ng-model="query_params.<?php echo $module_id; ?>.price_max" ng-init="query_params.<?php echo $module_id; ?>.price_max = ''" placeholder="<?php _e('Max. price', 'content-egg'); ?>" />
|
application/modules/Feed/views/update_panel.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php defined('\ABSPATH') || exit; ?>
|
2 |
+
<input type="text" class="input-sm col-md-4" ng-model="updateParams.<?php echo $module_id; ?>.price_min" placeholder="<?php _e('Min. price', 'content-egg') ?>" title="<?php _e('Min. price for automatic update', 'content-egg') ?>" />
|
3 |
+
<input type="text" class="input-sm col-md-4" ng-model="updateParams.<?php echo $module_id; ?>.price_max" placeholder="<?php _e('Max. price', 'content-egg') ?>" title="<?php _e('Max. price for automatic update', 'content-egg') ?>" />
|
application/modules/GdeSlon/GdeSlonConfig.php
CHANGED
@@ -60,7 +60,7 @@ class GdeSlonConfig extends AffiliateParserModuleConfig {
|
|
60 |
'section' => 'default',
|
61 |
),
|
62 |
'entries_per_page_update' => array(
|
63 |
-
'title' => __('Results for updates ', 'content-egg'),
|
64 |
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg'),
|
65 |
'callback' => array($this, 'render_input'),
|
66 |
'default' => 6,
|
60 |
'section' => 'default',
|
61 |
),
|
62 |
'entries_per_page_update' => array(
|
63 |
+
'title' => __('Results for updates and autoblogging', 'content-egg'),
|
64 |
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg'),
|
65 |
'callback' => array($this, 'render_input'),
|
66 |
'default' => 6,
|
application/modules/GdeSlon/GdeSlonModule.php
CHANGED
@@ -14,8 +14,8 @@ use ContentEgg\application\helpers\TextHelper;
|
|
14 |
* GdeSlonModule class file
|
15 |
*
|
16 |
* @author keywordrush.com <support@keywordrush.com>
|
17 |
-
* @link
|
18 |
-
* @copyright Copyright ©
|
19 |
*/
|
20 |
class GdeSlonModule extends AffiliateParserModule {
|
21 |
|
14 |
* GdeSlonModule class file
|
15 |
*
|
16 |
* @author keywordrush.com <support@keywordrush.com>
|
17 |
+
* @link https://www.keywordrush.com
|
18 |
+
* @copyright Copyright © 2021 keywordrush.com
|
19 |
*/
|
20 |
class GdeSlonModule extends AffiliateParserModule {
|
21 |
|
application/modules/Viglink/ExtraDataViglink.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Viglink;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
use ContentEgg\application\components\ExtraData;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* ExtraDataViglink class file
|
11 |
+
*
|
12 |
+
* @author keywordrush.com <support@keywordrush.com>
|
13 |
+
* @link http://www.keywordrush.com/
|
14 |
+
* @copyright Copyright © 2017 keywordrush.com
|
15 |
+
*/
|
16 |
+
class ExtraDataViglink extends ExtraData {
|
17 |
+
|
18 |
+
public $country;
|
19 |
+
|
20 |
+
}
|
application/modules/Viglink/ViglinkConfig.php
ADDED
@@ -0,0 +1,158 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Viglink;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
use ContentEgg\application\components\AffiliateParserModuleConfig;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* AffiliatewindowConfig class file
|
11 |
+
*
|
12 |
+
* @author keywordrush.com <support@keywordrush.com>
|
13 |
+
* @link http://www.keywordrush.com/
|
14 |
+
* @copyright Copyright © 2017 keywordrush.com
|
15 |
+
*/
|
16 |
+
class ViglinkConfig extends AffiliateParserModuleConfig {
|
17 |
+
|
18 |
+
public function options()
|
19 |
+
{
|
20 |
+
$optiosn = array(
|
21 |
+
'apiKey' => array(
|
22 |
+
'title' => 'API Key <span class="cegg_required">*</span>',
|
23 |
+
'description' => __('To track clicks by campaign, use your campaign-specific API Key.', 'content-egg') . ' ' .
|
24 |
+
sprintf(__('You can find your API key in your <a target="_blank" href="%s">VigLink</a> account.', 'content-egg'), 'http://www.keywordrush.com/go/viglink') . ' ' .
|
25 |
+
__('When logged into your dashboard, go to Account > Sites > your domain name > "key" icon under Actions.', 'content-egg'),
|
26 |
+
'callback' => array($this, 'render_input'),
|
27 |
+
'default' => '',
|
28 |
+
'validator' => array(
|
29 |
+
'trim',
|
30 |
+
array(
|
31 |
+
'call' => array('\ContentEgg\application\helpers\FormValidator', 'required'),
|
32 |
+
'when' => 'is_active',
|
33 |
+
'message' => sprintf(__('The field "%s" can not be empty.', 'content-egg'), 'Password'),
|
34 |
+
),
|
35 |
+
),
|
36 |
+
),
|
37 |
+
'secretKey' => array(
|
38 |
+
'title' => 'Secret Key <span class="cegg_required">*</span>',
|
39 |
+
'description' => __('When logged into your dashboard, go to Account > Sites > your domain name > "key" icon under Actions.', 'content-egg'),
|
40 |
+
'callback' => array($this, 'render_input'),
|
41 |
+
'default' => '',
|
42 |
+
'validator' => array(
|
43 |
+
'trim',
|
44 |
+
array(
|
45 |
+
'call' => array('\ContentEgg\application\helpers\FormValidator', 'required'),
|
46 |
+
'when' => 'is_active',
|
47 |
+
'message' => sprintf(__('The field "%s" can not be empty.', 'content-egg'), 'Username'),
|
48 |
+
),
|
49 |
+
),
|
50 |
+
),
|
51 |
+
'entries_per_page' => array(
|
52 |
+
'title' => __('Results', 'content-egg'),
|
53 |
+
'description' => __('Number of results for one search query.', 'content-egg'),
|
54 |
+
'callback' => array($this, 'render_input'),
|
55 |
+
'default' => 10,
|
56 |
+
'validator' => array(
|
57 |
+
'trim',
|
58 |
+
'absint',
|
59 |
+
),
|
60 |
+
),
|
61 |
+
'entries_per_page_update' => array(
|
62 |
+
'title' => __('Results for updates and autoblogging', 'content-egg'),
|
63 |
+
'description' => __('Number of results for automatic updates and autoblogging.', 'content-egg'),
|
64 |
+
'callback' => array($this, 'render_input'),
|
65 |
+
'default' => 6,
|
66 |
+
'validator' => array(
|
67 |
+
'trim',
|
68 |
+
'absint',
|
69 |
+
),
|
70 |
+
),
|
71 |
+
'deeplink' => array(
|
72 |
+
'title' => 'Deeplink',
|
73 |
+
'description' => __('Used only for search by URL feature! Set <a target="_blank" href="https://ce-docs.keywordrush.com/set-up-products/deeplinksettings">Deeplink</a> for one of CPA-networks.', 'content-egg'),
|
74 |
+
'callback' => array($this, 'render_input'),
|
75 |
+
'default' => '',
|
76 |
+
'validator' => array(
|
77 |
+
'trim',
|
78 |
+
),
|
79 |
+
'section' => 'default',
|
80 |
+
),
|
81 |
+
'country' => array(
|
82 |
+
'title' => __('Country', 'content-egg'),
|
83 |
+
'description' => __('Filter results to only include offers from a specific country. Please use ISO Alpha-2 country codes like "us" for United States. You can specify multiple countries separated by commas.', 'content-egg'),
|
84 |
+
'callback' => array($this, 'render_input'),
|
85 |
+
'default' => '',
|
86 |
+
),
|
87 |
+
'category' => array(
|
88 |
+
'title' => __('Category ', 'content-egg'),
|
89 |
+
'description' => __('Filter your query by a specific category.', 'content-egg'),
|
90 |
+
'callback' => array($this, 'render_dropdown'),
|
91 |
+
'dropdown_options' => self::getCategoriesList(),
|
92 |
+
'default' => '',
|
93 |
+
),
|
94 |
+
'sortBy' => array(
|
95 |
+
'title' => __('Sort order', 'content-egg'),
|
96 |
+
'callback' => array($this, 'render_dropdown'),
|
97 |
+
'dropdown_options' => array(
|
98 |
+
'' => __('Relevance', 'content-egg'),
|
99 |
+
'price' => __('Price low to high', 'content-egg'),
|
100 |
+
'-price' => __('Price high to low', 'content-egg'),
|
101 |
+
),
|
102 |
+
'default' => '',
|
103 |
+
),
|
104 |
+
'priceFrom' => array(
|
105 |
+
'title' => __('Price From', 'content-egg'),
|
106 |
+
'callback' => array($this, 'render_input'),
|
107 |
+
'default' => '',
|
108 |
+
'validator' => array(
|
109 |
+
'trim',
|
110 |
+
),
|
111 |
+
'metaboxInit' => true,
|
112 |
+
),
|
113 |
+
'priceTo' => array(
|
114 |
+
'title' => __('Price To', 'content-egg'),
|
115 |
+
'callback' => array($this, 'render_input'),
|
116 |
+
'default' => '',
|
117 |
+
'validator' => array(
|
118 |
+
'trim',
|
119 |
+
),
|
120 |
+
'metaboxInit' => true,
|
121 |
+
),
|
122 |
+
'merchant' => array(
|
123 |
+
'title' => __('Merchant', 'content-egg'),
|
124 |
+
'description' => sprintf(__('Filter your query by a specific merchant. Currently this filter is case-sensitive. The best way to ensure that it will return accurate results is to filter with a value <a target="_blank" href="%s">already discovered</a>. You can specify multiple merchants separated by commas.', 'content-egg'), 'https://viglink-developer-center.readme.io/docs/product-search#section-faceting'),
|
125 |
+
'callback' => array($this, 'render_input'),
|
126 |
+
'default' => '',
|
127 |
+
),
|
128 |
+
'filterImages' => array(
|
129 |
+
'title' => __('Images filter', 'content-egg'),
|
130 |
+
'description' => __('Products with images', 'content-egg') . '<p class="description">' . __('Some merchants do not supply an image in their feeds. As such, you have the option here to filter out items that do not have a merchant-supplied image, or correctly structured image URL.', 'content-egg') . '</p>',
|
131 |
+
'callback' => array($this, 'render_checkbox'),
|
132 |
+
'default' => true,
|
133 |
+
),
|
134 |
+
'default_currency' => array(
|
135 |
+
'title' => __('Default currency', 'content-egg'),
|
136 |
+
'description' => __('Expects the three-letter ISO 4217 currency code. Used only for search by URL feature.', 'content-egg'),
|
137 |
+
'callback' => array($this, 'render_input'),
|
138 |
+
'default' => '',
|
139 |
+
),
|
140 |
+
'save_img' => array(
|
141 |
+
'title' => __('Save images', 'content-egg'),
|
142 |
+
'description' => __('Save images on server', 'content-egg'),
|
143 |
+
'callback' => array($this, 'render_checkbox'),
|
144 |
+
'default' => false,
|
145 |
+
),
|
146 |
+
);
|
147 |
+
$optiosn = array_merge(parent::options(), $optiosn);
|
148 |
+
$optiosn['ttl_items']['description'] = __('Please note: Price update is only available for products added by direct URL (not by keyword search).', 'content-egg');
|
149 |
+
$optiosn['update_mode']['default'] = 'cron';
|
150 |
+
return $optiosn;
|
151 |
+
}
|
152 |
+
|
153 |
+
public static function getCategoriesList()
|
154 |
+
{
|
155 |
+
return array('' => __('[ All ]', 'content-egg'), 'Adult and Gambling' => 'Adult and Gambling', 'Adult and Gambling > Adult' => 'Adult and Gambling > Adult', 'Adult and Gambling > Gambling' => 'Adult and Gambling > Gambling', 'Adult and Gambling > Other Adult and Gambling' => 'Adult and Gambling > Other Adult and Gambling', 'Art and Entertainment' => 'Art and Entertainment', 'Art and Entertainment > DVDs and Videos' => 'Art and Entertainment > DVDs and Videos', 'Art and Entertainment > Music' => 'Art and Entertainment > Music', 'Art and Entertainment > Art' => 'Art and Entertainment > Art', 'Art and Entertainment > Event Tickets' => 'Art and Entertainment > Event Tickets', 'Art and Entertainment > Other Art and Entertainment' => 'Art and Entertainment > Other Art and Entertainment', 'Automotive' => 'Automotive', 'Automotive > Automotive Vehicles' => 'Automotive > Automotive Vehicles', 'Automotive > Auto Electronics' => 'Automotive > Auto Electronics', 'Automotive > Auto Parts and Tools' => 'Automotive > Auto Parts and Tools', 'Automotive > Other Auto' => 'Automotive > Other Auto', 'Cameras and Photo' => 'Cameras and Photo', 'Cameras and Photo > Camera Hardware and Accessories' => 'Cameras and Photo > Camera Hardware and Accessories', 'Cameras and Photo > Video Hardware and Accessories' => 'Cameras and Photo > Video Hardware and Accessories', 'Cameras and Photo > Other Camera' => 'Cameras and Photo > Other Camera', 'Career and Employment' => 'Career and Employment', 'Cell Phones and Mobile' => 'Cell Phones and Mobile', 'Cell Phones and Mobile > Mobile Devices' => 'Cell Phones and Mobile > Mobile Devices', 'Cell Phones and Mobile > Mobile Device Accessories' => 'Cell Phones and Mobile > Mobile Device Accessories', 'Cell Phones and Mobile > Mobile Device Software' => 'Cell Phones and Mobile > Mobile Device Software', 'Cell Phones and Mobile > Other Mobile' => 'Cell Phones and Mobile > Other Mobile', 'Collectibles' => 'Collectibles', 'Collectibles > Sports Memorabilia' => 'Collectibles > Sports Memorabilia', 'Collectibles > Stamps' => 'Collectibles > Stamps', 'Collectibles > Coins and Paper Money' => 'Collectibles > Coins and Paper Money', 'Collectibles > Other Collectibles' => 'Collectibles > Other Collectibles', 'Computing' => 'Computing', 'Computing > Computing, Hardware and Accessories' => 'Computing > Computing, Hardware and Accessories', 'Computing > Computing Software' => 'Computing > Computing Software', 'Computing > Other Computing' => 'Computing > Other Computing', 'Consumer Electronics' => 'Consumer Electronics', 'Consumer Electronics > Home Electronics' => 'Consumer Electronics > Home Electronics', 'Consumer Electronics > Portable Electronics' => 'Consumer Electronics > Portable Electronics', 'Consumer Electronics > Other Electronics' => 'Consumer Electronics > Other Electronics', 'Dating' => 'Dating', 'Education' => 'Education', 'Family and Baby' => 'Family and Baby', 'Family and Baby > Baby and Maternity Clothing' => 'Family and Baby > Baby and Maternity Clothing', 'Family and Baby > Baby Other' => 'Family and Baby > Baby Other', 'Fashion' => 'Fashion', 'Fashion > Clothing' => 'Fashion > Clothing', 'Fashion > Clothing > Men\'s Clothing' => 'Fashion > Clothing > Men\'s Clothing', 'Fashion > Clothing > Women\'s Clothing' => 'Fashion > Clothing > Women\'s Clothing', 'Fashion > Clothing > Kid\'s Clothing' => 'Fashion > Clothing > Kid\'s Clothing', 'Fashion > Clothing > Other Clothing' => 'Fashion > Clothing > Other Clothing', 'Fashion > Shoes' => 'Fashion > Shoes', 'Fashion > Shoes > Men\'s Shoes' => 'Fashion > Shoes > Men\'s Shoes', 'Fashion > Shoes > Women\'s Shoes' => 'Fashion > Shoes > Women\'s Shoes', 'Fashion > Shoes > Kid\'s Shoes' => 'Fashion > Shoes > Kid\'s Shoes', 'Fashion > Shoes > Other Shoes' => 'Fashion > Shoes > Other Shoes', 'Fashion > Luggage and Bags' => 'Fashion > Luggage and Bags', 'Fashion > Luggage and Bags > Women\'s Luggage and Bags' => 'Fashion > Luggage and Bags > Women\'s Luggage and Bags', 'Fashion > Luggage and Bags > Other Luggage' => 'Fashion > Luggage and Bags > Other Luggage', 'Fashion > Fashion Accessories' => 'Fashion > Fashion Accessories', 'Fashion > Fashion Accessories > Men\'s Fashion Accessories' => 'Fashion > Fashion Accessories > Men\'s Fashion Accessories', 'Fashion > Fashion Accessories > Women\'s Fashion Accessories' => 'Fashion > Fashion Accessories > Women\'s Fashion Accessories', 'Fashion > Fashion Accessories > Kid\'s Fashion Accessories' => 'Fashion > Fashion Accessories > Kid\'s Fashion Accessories', 'Fashion > Fashion Accessories > Other Fashion Accessories' => 'Fashion > Fashion Accessories > Other Fashion Accessories', 'Fashion > Other Fashion' => 'Fashion > Other Fashion', 'Financial Services' => 'Financial Services', 'Firearms and Hunting' => 'Firearms and Hunting', 'Firearms and Hunting > Firearms' => 'Firearms and Hunting > Firearms', 'Firearms and Hunting > Knives' => 'Firearms and Hunting > Knives', 'Firearms and Hunting > Fishing' => 'Firearms and Hunting > Fishing', 'Firearms and Hunting > Bow Hunting' => 'Firearms and Hunting > Bow Hunting', 'Firearms and Hunting > Survival Gear' => 'Firearms and Hunting > Survival Gear', 'Firearms and Hunting > Other Hunting' => 'Firearms and Hunting > Other Hunting', 'Food and Drink' => 'Food and Drink', 'Food and Drink > Standard Food' => 'Food and Drink > Standard Food', 'Food and Drink > Gourmet Food' => 'Food and Drink > Gourmet Food', 'Food and Drink > Other Food and Drink' => 'Food and Drink > Other Food and Drink', 'Health and Beauty' => 'Health and Beauty', 'Health and Beauty > Health' => 'Health and Beauty > Health', 'Health and Beauty > Beauty' => 'Health and Beauty > Beauty', 'Health and Beauty > Other Health and Beauty' => 'Health and Beauty > Other Health and Beauty', 'Home and Garden' => 'Home and Garden', 'Home and Garden > Home Decor' => 'Home and Garden > Home Decor', 'Home and Garden > Appliances' => 'Home and Garden > Appliances', 'Home and Garden > Home Improvement' => 'Home and Garden > Home Improvement', 'Home and Garden > Kitchen, Dining and Bar' => 'Home and Garden > Kitchen, Dining and Bar', 'Home and Garden > Gardening' => 'Home and Garden > Gardening', 'Home and Garden > Gift' => 'Home and Garden > Gift', 'Home and Garden > Flowers' => 'Home and Garden > Flowers', 'Home and Garden > Cleaning Supplies' => 'Home and Garden > Cleaning Supplies', 'Home and Garden > Other Home and Garden' => 'Home and Garden > Other Home and Garden', 'Industrial and Supply' => 'Industrial and Supply', 'Industrial and Supply > Office Supplies' => 'Industrial and Supply > Office Supplies', 'Industrial and Supply > Office Electronics' => 'Industrial and Supply > Office Electronics', 'Industrial and Supply > Industrial' => 'Industrial and Supply > Industrial', 'Industrial and Supply > Other Industrial and Supply' => 'Industrial and Supply > Other Industrial and Supply', 'Jewelry and Watches' => 'Jewelry and Watches', 'Jewelry and Watches > Jewelry' => 'Jewelry and Watches > Jewelry', 'Jewelry and Watches > Watches' => 'Jewelry and Watches > Watches', 'Jewelry and Watches > Other Jewelry' => 'Jewelry and Watches > Other Jewelry', 'Lifestyle' => 'Lifestyle', 'Motorcycles and Powersports' => 'Motorcycles and Powersports', 'Motorcycles and Powersports > Motorcycling' => 'Motorcycles and Powersports > Motorcycling', 'Motorcycles and Powersports > ATVs' => 'Motorcycles and Powersports > ATVs', 'Motorcycles and Powersports > Boating' => 'Motorcycles and Powersports > Boating', 'Motorcycles and Powersports > Other Motorcycles and Powersports' => 'Motorcycles and Powersports > Other Motorcycles and Powersports', 'Music and Musicians' => 'Music and Musicians', 'Music and Musicians > Musical Instruments' => 'Music and Musicians > Musical Instruments', 'Music and Musicians > Musical Accessories' => 'Music and Musicians > Musical Accessories', 'Music and Musicians > Other Musical' => 'Music and Musicians > Other Musical', 'News, Books and Magazines' => 'News, Books and Magazines', 'News, Books and Magazines > Books and eBooks' => 'News, Books and Magazines > Books and eBooks', 'News, Books and Magazines > Magazines and Newspaper' => 'News, Books and Magazines > Magazines and Newspaper', 'News, Books and Magazines > Other Books' => 'News, Books and Magazines > Other Books', 'Online Services' => 'Online Services', 'Other' => 'Other', 'Pets' => 'Pets', 'Pets > Dogs' => 'Pets > Dogs', 'Pets > Fish' => 'Pets > Fish', 'Pets > Cat' => 'Pets > Cat', 'Pets > Birds' => 'Pets > Birds', 'Pets > Other Pets' => 'Pets > Other Pets', 'Real Estate' => 'Real Estate', 'Religious and Ceremonial' => 'Religious and Ceremonial', 'Self-Help' => 'Self-Help', 'Shopping and Coupons' => 'Shopping and Coupons', 'Sports and Fitness' => 'Sports and Fitness', 'Sports and Fitness > Bicycling' => 'Sports and Fitness > Bicycling', 'Sports and Fitness > Water Sports' => 'Sports and Fitness > Water Sports', 'Sports and Fitness > Golfing' => 'Sports and Fitness > Golfing', 'Sports and Fitness > Winter Sports' => 'Sports and Fitness > Winter Sports', 'Sports and Fitness > Outdoor Apparel' => 'Sports and Fitness > Outdoor Apparel', 'Sports and Fitness > Camping' => 'Sports and Fitness > Camping', 'Sports and Fitness > Other Sports and Fitness' => 'Sports and Fitness > Other Sports and Fitness', 'Toys and Hobbies' => 'Toys and Hobbies', 'Toys and Hobbies > Toys' => 'Toys and Hobbies > Toys', 'Toys and Hobbies > Games' => 'Toys and Hobbies > Games', 'Toys and Hobbies > Crafts' => 'Toys and Hobbies > Crafts', 'Toys and Hobbies > Hobbies' => 'Toys and Hobbies > Hobbies', 'Toys and Hobbies > Costumes' => 'Toys and Hobbies > Costumes', 'Toys and Hobbies > Other Toys and Hobbies' => 'Toys and Hobbies > Other Toys and Hobbies', 'Travel' => 'Travel', 'Travel > Other Travel' => 'Travel > Other Travel', 'Video Gaming' => 'Video Gaming', 'Video Gaming > Video Games' => 'Video Gaming > Video Games', 'Video Gaming > Gaming Hardware' => 'Video Gaming > Gaming Hardware', 'Video Gaming > Other Gaming' => 'Video Gaming > Other Gaming');
|
156 |
+
}
|
157 |
+
|
158 |
+
}
|
application/modules/Viglink/ViglinkModule.php
ADDED
@@ -0,0 +1,305 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ContentEgg\application\modules\Viglink;
|
4 |
+
|
5 |
+
defined('\ABSPATH') || exit;
|
6 |
+
|
7 |
+
use ContentEgg\application\components\AffiliateParserModule;
|
8 |
+
use ContentEgg\application\libs\viglink\ViglinkApi;
|
9 |
+
use ContentEgg\application\components\ContentProduct;
|
10 |
+
use ContentEgg\application\admin\PluginAdmin;
|
11 |
+
use ContentEgg\application\helpers\TextHelper;
|
12 |
+
use ContentEgg\application\components\LinkHandler;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* ViglinkModule class file
|
16 |
+
*
|
17 |
+
* @author keywordrush.com <support@keywordrush.com>
|
18 |
+
* @link http://www.keywordrush.com/
|
19 |
+
* @copyright Copyright © 2017 keywordrush.com
|
20 |
+
*/
|
21 |
+
class ViglinkModule extends AffiliateParserModule {
|
22 |
+
|
23 |
+
private $api_client = null;
|
24 |
+
|
25 |
+
public function info()
|
26 |
+
{
|
27 |
+
return array(
|
28 |
+
'name' => 'Viglink',
|
29 |
+
'description' => sprintf(__('Module adds products from <a target="_blank" href="%s">VigLink</a>.', 'content-egg'), 'http://www.keywordrush.com/go/viglink') . ' ' .
|
30 |
+
__('Search for specific products from a vast catalog of over 350 million products.', 'content-egg') . ' ' .
|
31 |
+
__('You can search by keyword or product URL.', 'content-egg'),
|
32 |
+
'docs_uri' => 'https://ce-docs.keywordrush.com/modules/affiliate/viglink',
|
33 |
+
);
|
34 |
+
}
|
35 |
+
|
36 |
+
public function releaseVersion()
|
37 |
+
{
|
38 |
+
return '5.2.0';
|
39 |
+
}
|
40 |
+
|
41 |
+
public function isFree()
|
42 |
+
{
|
43 |
+
return true;
|
44 |
+
}
|
45 |
+
|
46 |
+
public function getParserType()
|
47 |
+
{
|
48 |
+
return self::PARSER_TYPE_PRODUCT;
|
49 |
+
}
|
50 |
+
|
51 |
+
public function defaultTemplateName()
|
52 |
+
{
|
53 |
+
return 'grid';
|
54 |
+
}
|
55 |
+
|
56 |
+
public function isItemsUpdateAvailable()
|
57 |
+
{
|
58 |
+
return true;
|
59 |
+
}
|
60 |
+
|
61 |
+
public function isUrlSearchAllowed()
|
62 |
+
{
|
63 |
+
return true;
|
64 |
+
}
|
65 |
+
|
66 |
+
public function doRequest($keyword, $query_params = array(), $is_autoupdate = false)
|
67 |
+
{
|
68 |
+
$options = array();
|
69 |
+
if (filter_var($keyword, FILTER_VALIDATE_URL))
|
70 |
+
{
|
71 |
+
$url = filter_var($keyword, FILTER_SANITIZE_URL);
|
72 |
+
return $this->searchByUrl($url);
|
73 |
+
} else
|
74 |
+
{
|
75 |
+
return $this->searchByKeyword($keyword, $query_params, $is_autoupdate);
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
public function doRequestItems(array $items)
|
80 |
+
{
|
81 |
+
foreach ($items as $key => $item)
|
82 |
+
{
|
83 |
+
if (!$item['orig_url'])
|
84 |
+
continue;
|
85 |
+
|
86 |
+
try
|
87 |
+
{
|
88 |
+
$product = $this->searchByUrl($item['orig_url']);
|
89 |
+
} catch (\Exception $ex)
|
90 |
+
{
|
91 |
+
continue;
|
92 |
+
}
|
93 |
+
|
94 |
+
if (!$product || !is_array($product))
|
95 |
+
continue;
|
96 |
+
$product = $product[0];
|
97 |
+
// assign new data
|
98 |
+
$items[$key]['price'] = $product->price;
|
99 |
+
$items[$key]['currencyCode'] = $product->currencyCode;
|
100 |
+
}
|
101 |
+
return $items;
|
102 |
+
}
|
103 |
+
|
104 |
+
private function searchByUrl($url)
|
105 |
+
{
|
106 |
+
if (!$result = $this->getApiClient()->getMetadata($url))
|
107 |
+
return array();
|
108 |
+
return array($this->prepareByUrlResults($result));
|
109 |
+
}
|
110 |
+
|
111 |
+
private function searchByKeyword($keyword, $query_params = array(), $is_autoupdate = false)
|
112 |
+
{
|
113 |
+
if ($is_autoupdate)
|
114 |
+
$options['itemsPerPage'] = $this->config('entries_per_page_update');
|
115 |
+
else
|
116 |
+
$options['itemsPerPage'] = $this->config('entries_per_page');
|
117 |
+
|
118 |
+
if ($this->config('country'))
|
119 |
+
$options['country'] = TextHelper::getArrayFromCommaList($this->config('country'));
|
120 |
+
if ($this->config('merchant'))
|
121 |
+
$options['merchant'] = TextHelper::getArrayFromCommaList($this->config('merchant'));
|
122 |
+
|
123 |
+
if ($this->config('sortBy'))
|
124 |
+
$options['sortBy'] = $this->config('sortBy');
|
125 |
+
if ($this->config('category'))
|
126 |
+
$options['category'] = $this->config('category');
|
127 |
+
if ($this->config('filterImages'))
|
128 |
+
$options['filterImages'] = true;
|
129 |
+
|
130 |
+
// price filter
|
131 |
+
if (!empty($query_params['priceFrom']))
|
132 |
+
$priceFrom = (float) $query_params['priceFrom'];
|
133 |
+
elseif ($this->config('priceFrom'))
|
134 |
+
$priceFrom = (float) $this->config('priceFrom');
|
135 |
+
else
|
136 |
+
$priceFrom = 0;
|
137 |
+
if (!empty($query_params['priceTo']))
|
138 |
+
$priceTo = (float) $query_params['priceTo'];
|
139 |
+
elseif ($this->config('priceTo'))
|
140 |
+
$priceTo = (float) $this->config('priceTo');
|
141 |
+
else
|
142 |
+
$priceTo = 0;
|
143 |
+
if ($priceFrom)
|
144 |
+
$options['price'] = $priceFrom . ',';
|
145 |
+
if ($priceTo)
|
146 |
+
{
|
147 |
+
if (!$options['price'])
|
148 |
+
$options['price'] = ',';
|
149 |
+
$options['price'] .= $priceTo;
|
150 |
+
}
|
151 |
+
|
152 |
+
$results = $this->getApiClient()->search($keyword, $options);
|
153 |
+
|
154 |
+
if (!isset($results['items']) || !is_array($results['items']))
|
155 |
+
return array();
|
156 |
+
$results = $results['items'];
|
157 |
+
if (!isset($results[0]) && isset($results['name']))
|
158 |
+
$results = array($results);
|
159 |
+
return $this->prepareByKeywordResults($results);
|
160 |
+
}
|
161 |
+
|
162 |
+
private function prepareByUrlResults($r)
|
163 |
+
{
|
164 |
+
$content = new ContentProduct;
|
165 |
+
$content->unique_id = md5($r['url']);
|
166 |
+
$content->title = $r['title'];
|
167 |
+
$content->orig_url = $r['url'];
|
168 |
+
|
169 |
+
$deeplink = $this->config('deeplink');
|
170 |
+
if ($deeplink)
|
171 |
+
$content->url = LinkHandler::createAffUrl($content->orig_url, $deeplink, (array) $content);
|
172 |
+
else
|
173 |
+
$content->url = $this->buildMonetizedUrl($r['url']);
|
174 |
+
|
175 |
+
if (!strstr($r['imageUrl'], 'data:image'))
|
176 |
+
$content->img = $r['imageUrl'];
|
177 |
+
|
178 |
+
$content->price = TextHelper::parsePriceAmount($r['price']);
|
179 |
+
if ($currency_code = TextHelper::parseCurrencyCode($r['price']))
|
180 |
+
$content->currencyCode = $currency_code;
|
181 |
+
else
|
182 |
+
$content->currencyCode = $this->config('default_currency');
|
183 |
+
|
184 |
+
if (strstr($content->orig_url, 'amazon.com.br/'))
|
185 |
+
$content->currencyCode = 'BRL';
|
186 |
+
|
187 |
+
$content->manufacturer = $r['brandName'];
|
188 |
+
$content->upc = $r['upc'];
|
189 |
+
$content->sku = $r['sku'];
|
190 |
+
$content->description = $r['description'];
|
191 |
+
$content->merchant = $r['merchantName'];
|
192 |
+
$content->domain = TextHelper::getHostName($content->orig_url);
|
193 |
+
|
194 |
+
return $content;
|
195 |
+
}
|
196 |
+
|
197 |
+
private function prepareByKeywordResults($results)
|
198 |
+
{
|
199 |
+
$data = array();
|
200 |
+
foreach ($results as $key => $r)
|
201 |
+
{
|
202 |
+
$content = new ContentProduct;
|
203 |
+
|
204 |
+
$content->unique_id = md5($r['url']);
|
205 |
+
$content->title = $r['name'];
|
206 |
+
$content->url = $r['url'];
|
207 |
+
$content->img = $r['imageUrl'];
|
208 |
+
$content->category = $r['category'];
|
209 |
+
$content->price = (float) $r['price'];
|
210 |
+
$content->currencyCode = 'USD';
|
211 |
+
$content->manufacturer = $r['brand'];
|
212 |
+
$content->upc = $r['upc'];
|
213 |
+
$content->merchant = $r['merchant'];
|
214 |
+
|
215 |
+
$domain = TextHelper::parseDomain($r['url'], 'u');
|
216 |
+
if ($domain == 'bizrate.com')
|
217 |
+
{
|
218 |
+
if ($d = TextHelper::parseDomain(TextHelper::parseOriginalUrl($r['url'], 'u'), 't'))
|
219 |
+
$domain = $d;
|
220 |
+
} else
|
221 |
+
{
|
222 |
+
if ($d = TextHelper::parseDomain(TextHelper::parseOriginalUrl($r['url'], 'u'), 'url'))
|
223 |
+
$domain = $d;
|
224 |
+
}
|
225 |
+
|
226 |
+
if ($domain)
|
227 |
+
{
|
228 |
+
$content->domain = $domain;
|
229 |
+
} else
|
230 |
+
{
|
231 |
+
$merchant = strtolower($r['merchant']);
|
232 |
+
if (TextHelper::isValidDomainName($merchant))
|
233 |
+
$content->domain = $merchant;
|
234 |
+
}
|
235 |
+
|
236 |
+
$content->extra = new ExtraDataViglink;
|
237 |
+
$content->extra->country = $r['country'];
|
238 |
+
$data[] = $content;
|
239 |
+
}
|
240 |
+
return $data;
|
241 |
+
}
|
242 |
+
|
243 |
+
/**
|
244 |
+
* Building Monetized URL
|
245 |
+
* @link: https://viglink-developer-center.readme.io/docs/building-monetized-urls
|
246 |
+
*/
|
247 |
+
private function buildMonetizedUrl($url)
|
248 |
+
{
|
249 |
+
$filtered = \apply_filters('cegg_viglink_affiliate_link', $url);
|
250 |
+
if ($filtered != $url)
|
251 |
+
return $filtered;
|
252 |
+
|
253 |
+
$params = array(
|
254 |
+
'key' => $this->config('apiKey'),
|
255 |
+
'u' => $url,
|
256 |
+
);
|
257 |
+
return 'https://redirect.viglink.com?' . http_build_query($params);
|
258 |
+
}
|
259 |
+
|
260 |
+
public function viewDataPrepare($data)
|
261 |
+
{
|
262 |
+
$deeplink = $this->config('deeplink');
|
263 |
+
foreach ($data as $key => $d)
|
264 |
+
{
|
265 |
+
if (empty($d['orig_url']))
|
266 |
+
continue;
|
267 |
+
if ($deeplink)
|
268 |
+
$data[$key]['url'] = LinkHandler::createAffUrl($d['orig_url'], $deeplink, $d);
|
269 |
+
else
|
270 |
+
$data[$key]['url'] = $this->buildMonetizedUrl($d['orig_url']);
|
271 |
+
}
|
272 |
+
|
273 |
+
return parent::viewDataPrepare($data);
|
274 |
+
}
|
275 |
+
|
276 |
+
private function getApiClient()
|
277 |
+
{
|
278 |
+
if ($this->api_client === null)
|
279 |
+
{
|
280 |
+
$this->api_client = new ViglinkApi($this->config('apiKey'), $this->config('secretKey'));
|
281 |
+
}
|
282 |
+
return $this->api_client;
|
283 |
+
}
|
284 |
+
|
285 |
+
public function renderResults()
|
286 |
+
{
|
287 |
+
PluginAdmin::render('_metabox_results', array('module_id' => $this->getId()));
|
288 |
+
}
|
289 |
+
|
290 |
+
public function renderSearchResults()
|
291 |
+
{
|
292 |
+
PluginAdmin::render('_metabox_search_results', array('module_id' => $this->getId()));
|
293 |
+
}
|
294 |
+
|
295 |
+
public function renderSearchPanel()
|
296 |
+
{
|
297 |
+
$this->render('search_panel', array('module_id' => $this->getId()));
|
298 |
+
}
|
299 |
+
|
300 |
+
public function renderUpdatePanel()
|
301 |
+
{
|
302 |
+
$this->render('update_panel', array('module_id' => $this->getId()));
|
303 |
+
}
|
304 |
+
|
305 |
+
}
|
application/modules/Viglink/index.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Silence is golden.
|
application/modules/Viglink/templates/data_grid.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined('\ABSPATH') || exit;
|
4 |
+
|
5 |
+
/*
|
6 |
+
Name: Grid
|
7 |
+
*/
|
8 |
+
|
9 |
+
__('Grid', 'content-egg-tpl');
|
10 |
+
|
11 |
+
$this->renderPartial('grid');
|
application/modules/Viglink/templates/data_item.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined('\ABSPATH') || exit;
|
4 |
+
|
5 |
+
/*
|
6 |
+
Name: Product card
|
7 |
+
*/
|
8 |
+
|
9 |
+
__('Product card', 'content-egg-tpl');
|
10 |
+
|
11 |
+
$this->renderPartial('item');
|
application/modules/Viglink/templates/data_item_simple.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined('\ABSPATH') || exit;
|
4 |
+
|
5 |
+
/*
|
6 |
+
Name: Product card (no features)
|
7 |
+
*/
|
8 |
+
|
9 |
+
__('Product card (no features)', 'content-egg');
|
10 |
+
$this->renderPartial('item_simple');
|
application/modules/Viglink/templates/data_list.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined('\ABSPATH') || exit;
|
4 |
+
|
5 |
+
/*
|
6 |
+
Name: List
|
7 |
+
*/
|
8 |
+
__('List', 'content-egg-tpl');
|
9 |
+
|
10 |
+
$this->renderPartial('list');
|
application/modules/Viglink/templates/data_price_tracker_alert.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined('\ABSPATH') || exit;
|
4 |
+
|
5 |
+
/*
|
6 |
+
Name: Price tracker & alert
|
7 |
+
*/
|
8 |
+
|
9 |
+
__('Price tracker & alert', 'content-egg-tpl');
|
10 |
+
|
11 |
+
$this->renderPartial('price_tracker_alert');
|
application/modules/Viglink/views/search_panel.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php defined('\ABSPATH') || exit; ?>
|
2 |
+
<input type="text" class="input-sm col-md-4" ng-model="query_params.<?php echo $module_id; ?>.priceFrom" ng-init="query_params.<?php echo $module_id; ?>.priceFrom = ''" placeholder="<?php _e('Min. price', 'content-egg'); ?>" />
|
3 |
+
<input type="text" class="input-sm col-md-4" ng-model="query_params.<?php echo $module_id; ?>.priceTo" ng-init="query_params.<?php echo $module_id; ?>.priceTo = ''" placeholder="<?php _e('Max. price', 'content-egg'); ?>" />
|
application/modules/Viglink/views/update_panel.php
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
<?php defined('\ABSPATH') || exit; ?>
|
2 |
+
<input type="text" class="input-sm col-md-4" ng-model="updateParams.<?php echo $module_id; ?>.priceFrom" placeholder="<?php _e('Min. price', 'content-egg') ?>" title="<?php _e('Min. price for automatic update', 'content-egg') ?>" />
|
3 |
+
<input type="text" class="input-sm col-md-4" ng-model="updateParams.<?php echo $module_id; ?>.priceTo" placeholder="<?php _e('Max. price', 'content-egg') ?>" title="<?php _e('Max. price for automatic update', 'content-egg') ?>" />
|
application/templates/blocks/grid_row.php
CHANGED
@@ -14,7 +14,7 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
14 |
<?php endif; ?>
|
15 |
|
16 |
<?php if ($item['img']): ?>
|
17 |
-
|
18 |
<?php endif; ?>
|
19 |
</div>
|
20 |
|
@@ -40,7 +40,7 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
40 |
<?php endif; ?>
|
41 |
|
42 |
<?php if ($item['stock_status'] == -1): ?>
|
43 |
-
<div title="<?php echo \esc_attr(sprintf(__('Last updated on %s'
|
44 |
<?php echo \esc_html(TemplateHelper::getStockStatusStr($item)); ?>
|
45 |
</div>
|
46 |
<?php endif; ?>
|
14 |
<?php endif; ?>
|
15 |
|
16 |
<?php if ($item['img']): ?>
|
17 |
+
<?php TemplateHelper::displayImage($item, 190, 170); ?>
|
18 |
<?php endif; ?>
|
19 |
</div>
|
20 |
|
40 |
<?php endif; ?>
|
41 |
|
42 |
<?php if ($item['stock_status'] == -1): ?>
|
43 |
+
<div title="<?php echo \esc_attr(sprintf(TemplateHelper::__('Last updated on %s'), TemplateHelper::getLastUpdateFormatted($item['module_id'], $post_id))); ?>" class="cegg-lineheight15 stock-status status-<?php echo \esc_attr(TemplateHelper::getStockStatusClass($item)); ?>">
|
44 |
<?php echo \esc_html(TemplateHelper::getStockStatusStr($item)); ?>
|
45 |
</div>
|
46 |
<?php endif; ?>
|
application/templates/blocks/item_after_price_row.php
CHANGED
@@ -8,20 +8,14 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
8 |
|
9 |
<div class="after-price-row cegg-lineh-20 cegg-mb15">
|
10 |
<small class="text-muted">
|
11 |
-
<?php if (!empty($item['extra']['totalNew'])): ?>
|
12 |
-
<?php echo $item['extra']['totalNew'];
|
13 |
-
<?php _e('new', 'content-egg-tpl'); ?>
|
14 |
-
<?php if ($item['extra']['lowestNewPrice']): ?>
|
15 |
-
<?php _e('from', 'content-egg-tpl'); ?> <?php echo TemplateHelper::formatPriceCurrency($item['extra']['lowestNewPrice'], $item['currencyCode']); ?>
|
16 |
-
<?php endif; ?>
|
17 |
<?php endif; ?>
|
18 |
<?php if (!empty($item['extra']['totalUsed'])): ?>
|
19 |
-
|
20 |
-
<?php _e('used', 'content-egg-tpl'); ?> <?php _e('from', 'content-egg-tpl'); ?>
|
21 |
-
<?php echo TemplateHelper::formatPriceCurrency($item['extra']['lowestUsedPrice'], $item['currencyCode']); ?>
|
22 |
<?php endif; ?>
|
23 |
<?php if (!empty($item['extra']['IsEligibleForSuperSaverShipping'])): ?>
|
24 |
-
<div class="text-success"><?php _e('Free shipping'
|
25 |
<?php endif; ?>
|
26 |
</small>
|
27 |
</div>
|
@@ -58,7 +52,7 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
58 |
<?php endif; ?>
|
59 |
|
60 |
<?php if ($item['extra']['shippingInfo']['shippingType'] == 'Free'): ?>
|
61 |
-
<div class="text-success"><?php _e('Free shipping'
|
62 |
<?php endif; ?>
|
63 |
|
64 |
<?php if ($item['extra']['eekStatus']): ?>
|
8 |
|
9 |
<div class="after-price-row cegg-lineh-20 cegg-mb15">
|
10 |
<small class="text-muted">
|
11 |
+
<?php if (!empty($item['extra']['totalNew']) && $item['extra']['totalNew'] > 1): ?>
|
12 |
+
<?php echo sprintf(TemplateHelper::__('%d new from %s'), $item['extra']['totalNew'], TemplateHelper::formatPriceCurrency($item['extra']['lowestNewPrice'], $item['currencyCode'])); ?><br />
|
|
|
|
|
|
|
|
|
13 |
<?php endif; ?>
|
14 |
<?php if (!empty($item['extra']['totalUsed'])): ?>
|
15 |
+
<?php echo sprintf(TemplateHelper::__('%d used from %s'), $item['extra']['totalUsed'], TemplateHelper::formatPriceCurrency($item['extra']['lowestUsedPrice'], $item['currencyCode'])); ?><br />
|
|
|
|
|
16 |
<?php endif; ?>
|
17 |
<?php if (!empty($item['extra']['IsEligibleForSuperSaverShipping'])): ?>
|
18 |
+
<div class="text-success"><?php TemplateHelper::_e('Free shipping'); ?></div>
|
19 |
<?php endif; ?>
|
20 |
</small>
|
21 |
</div>
|
52 |
<?php endif; ?>
|
53 |
|
54 |
<?php if ($item['extra']['shippingInfo']['shippingType'] == 'Free'): ?>
|
55 |
+
<div class="text-success"><?php TemplateHelper::_e('Free shipping'); ?></div>
|
56 |
<?php endif; ?>
|
57 |
|
58 |
<?php if ($item['extra']['eekStatus']): ?>
|
application/templates/blocks/item_features.php
CHANGED
@@ -1,11 +1,14 @@
|
|
1 |
-
<?php
|
2 |
-
|
|
|
|
|
|
|
3 |
|
4 |
<?php if ($disable_features) return; ?>
|
5 |
|
6 |
<?php if (!empty($item['extra']['specificationList'])): ?>
|
7 |
|
8 |
-
<h4 class="cegg-no-top-margin"><?php _e('Specifications'
|
9 |
<table class='table table-condensed cegg-features-table'>
|
10 |
<tbody>
|
11 |
|
@@ -14,92 +17,92 @@
|
|
14 |
if (!empty($specificationList['key']))
|
15 |
echo '<tr><td colspan="2"><b>' . esc_html($specificationList['key']) . '</b></td></tr>';
|
16 |
?>
|
17 |
-
|
18 |
<tr>
|
19 |
<td class='text-muted'><?php echo esc_html($feature['key']) ?></td><td><?php echo esc_html(join('; ', $feature['value'])); ?></td>
|
20 |
</tr>
|
21 |
-
|
22 |
-
|
23 |
</tbody>
|
24 |
</table>
|
25 |
<?php elseif (!empty($item['extra']['itemAttributes']['Feature'])): ?>
|
26 |
<div class="cegg-features-box">
|
27 |
-
<h4 class="cegg-no-top-margin"><?php _e('Features'
|
28 |
<ul class="cegg-feature-list">
|
29 |
<?php foreach ($item['extra']['itemAttributes']['Feature'] as $k => $feature): ?>
|
30 |
<li><?php echo $feature; ?></li>
|
31 |
-
|
32 |
-
|
33 |
</ul>
|
34 |
</div>
|
35 |
|
36 |
<?php elseif (!empty($item['features'])): ?>
|
37 |
-
<h4 class="cegg-no-top-margin"><?php _e('Features'
|
38 |
<table class='table table-condensed cegg-features-table'>
|
39 |
<tbody>
|
40 |
-
|
41 |
<tr>
|
42 |
<td class='text-muted'><?php echo esc_html(__($feature['name'], 'content-egg-tpl')) ?></td><td><?php echo esc_html($feature['value']); ?></td>
|
43 |
</tr>
|
44 |
-
|
45 |
</tbody>
|
46 |
</table>
|
47 |
<?php elseif (!empty($item['extra']['param'])): ?>
|
48 |
|
49 |
-
<h4 class="cegg-no-top-margin"><?php _e('Features'
|
50 |
<table class='table table-condensed cegg-features-table'>
|
51 |
<tbody>
|
52 |
-
|
53 |
<tr>
|
54 |
<td class='text-muted'><?php echo esc_html($fname) ?></td><td><?php echo esc_html($fvalue); ?></td>
|
55 |
</tr>
|
56 |
-
|
57 |
</tbody>
|
58 |
</table>
|
59 |
<?php elseif (!empty($item['extra']['features'])): ?>
|
60 |
|
61 |
-
<h4 class="cegg-no-top-margin"><?php _e('Features'
|
62 |
<table class='table table-condensed cegg-features-table'>
|
63 |
<tbody>
|
64 |
-
|
65 |
<tr>
|
66 |
<td class='text-muted'><?php echo esc_html(__($feature['name'], 'content-egg-tpl')) ?></td><td><?php echo esc_html($feature['value']); ?></td>
|
67 |
</tr>
|
68 |
-
|
69 |
</tbody>
|
70 |
</table>
|
71 |
<?php elseif (!empty($item['extra']['properties'])): ?>
|
72 |
|
73 |
-
<h4 class="cegg-no-top-margin"><?php _e('Features'
|
74 |
<table class='table table-condensed cegg-features-table'>
|
75 |
<tbody>
|
76 |
-
|
77 |
<tr>
|
78 |
<td class='text-muted'><?php echo esc_html(__($feature['name'], 'content-egg-tpl')) ?></td><td><?php echo esc_html($property['value']); ?></td>
|
79 |
</tr>
|
80 |
-
|
81 |
</tbody>
|
82 |
</table>
|
83 |
|
84 |
<?php elseif (!empty($item['extra']['keySpecs'])): ?>
|
85 |
<div class="cegg-features-box">
|
86 |
-
<h4 class="cegg-no-top-margin"><?php _e('Features'
|
87 |
<ul class="cegg-feature-list">
|
88 |
<?php foreach ($item['extra']['keySpecs'] as $feature): ?>
|
89 |
<li><?php echo esc_html($feature); ?></li>
|
90 |
-
|
91 |
</ul>
|
92 |
</div>
|
93 |
<?php elseif (!empty($item['extra']['Detail'])): ?>
|
94 |
|
95 |
-
<h4 class="cegg-no-top-margin"><?php _e('Features'
|
96 |
<table class='table table-condensed cegg-features-table'>
|
97 |
<tbody>
|
98 |
-
|
99 |
<tr>
|
100 |
<td class='text-muted'><?php echo esc_html($name) ?></td><td><?php echo esc_html($value); ?></td>
|
101 |
</tr>
|
102 |
-
|
103 |
</tbody>
|
104 |
</table>
|
105 |
|
1 |
+
<?php
|
2 |
+
defined('\ABSPATH') || exit;
|
3 |
+
|
4 |
+
use ContentEgg\application\helpers\TemplateHelper;
|
5 |
+
?>
|
6 |
|
7 |
<?php if ($disable_features) return; ?>
|
8 |
|
9 |
<?php if (!empty($item['extra']['specificationList'])): ?>
|
10 |
|
11 |
+
<h4 class="cegg-no-top-margin"><?php TemplateHelper::_e('Specifications'); ?></h4>
|
12 |
<table class='table table-condensed cegg-features-table'>
|
13 |
<tbody>
|
14 |
|
17 |
if (!empty($specificationList['key']))
|
18 |
echo '<tr><td colspan="2"><b>' . esc_html($specificationList['key']) . '</b></td></tr>';
|
19 |
?>
|
20 |
+
<?php foreach ($specificationList['values'] as $feature): ?>
|
21 |
<tr>
|
22 |
<td class='text-muted'><?php echo esc_html($feature['key']) ?></td><td><?php echo esc_html(join('; ', $feature['value'])); ?></td>
|
23 |
</tr>
|
24 |
+
<?php endforeach; ?>
|
25 |
+
<?php endforeach; ?>
|
26 |
</tbody>
|
27 |
</table>
|
28 |
<?php elseif (!empty($item['extra']['itemAttributes']['Feature'])): ?>
|
29 |
<div class="cegg-features-box">
|
30 |
+
<h4 class="cegg-no-top-margin"><?php TemplateHelper::_e('Features'); ?></h4>
|
31 |
<ul class="cegg-feature-list">
|
32 |
<?php foreach ($item['extra']['itemAttributes']['Feature'] as $k => $feature): ?>
|
33 |
<li><?php echo $feature; ?></li>
|
34 |
+
<?php if ($k >= 4) break; ?>
|
35 |
+
<?php endforeach; ?>
|
36 |
</ul>
|
37 |
</div>
|
38 |
|
39 |
<?php elseif (!empty($item['features'])): ?>
|
40 |
+
<h4 class="cegg-no-top-margin"><?php TemplateHelper::_e('Features'); ?></h4>
|
41 |
<table class='table table-condensed cegg-features-table'>
|
42 |
<tbody>
|
43 |
+
<?php foreach ($item['features'] as $feature): ?>
|
44 |
<tr>
|
45 |
<td class='text-muted'><?php echo esc_html(__($feature['name'], 'content-egg-tpl')) ?></td><td><?php echo esc_html($feature['value']); ?></td>
|
46 |
</tr>
|
47 |
+
<?php endforeach; ?>
|
48 |
</tbody>
|
49 |
</table>
|
50 |
<?php elseif (!empty($item['extra']['param'])): ?>
|
51 |
|
52 |
+
<h4 class="cegg-no-top-margin"><?php TemplateHelper::_e('Features'); ?></h4>
|
53 |
<table class='table table-condensed cegg-features-table'>
|
54 |
<tbody>
|
55 |
+
<?php foreach ($item['extra']['param'] as $fname => $fvalue): ?>
|
56 |
<tr>
|
57 |
<td class='text-muted'><?php echo esc_html($fname) ?></td><td><?php echo esc_html($fvalue); ?></td>
|
58 |
</tr>
|
59 |
+
<?php endforeach; ?>
|
60 |
</tbody>
|
61 |
</table>
|
62 |
<?php elseif (!empty($item['extra']['features'])): ?>
|
63 |
|
64 |
+
<h4 class="cegg-no-top-margin"><?php TemplateHelper::_e('Features'); ?></h4>
|
65 |
<table class='table table-condensed cegg-features-table'>
|
66 |
<tbody>
|
67 |
+
<?php foreach ($item['extra']['features'] as $feature): ?>
|
68 |
<tr>
|
69 |
<td class='text-muted'><?php echo esc_html(__($feature['name'], 'content-egg-tpl')) ?></td><td><?php echo esc_html($feature['value']); ?></td>
|
70 |
</tr>
|
71 |
+
<?php endforeach; ?>
|
72 |
</tbody>
|
73 |
</table>
|
74 |
<?php elseif (!empty($item['extra']['properties'])): ?>
|
75 |
|
76 |
+
<h4 class="cegg-no-top-margin"><?php TemplateHelper::_e('Features'); ?></h4>
|
77 |
<table class='table table-condensed cegg-features-table'>
|
78 |
<tbody>
|
79 |
+
<?php foreach ($item['extra']['properties'] as $property): ?>
|
80 |
<tr>
|
81 |
<td class='text-muted'><?php echo esc_html(__($feature['name'], 'content-egg-tpl')) ?></td><td><?php echo esc_html($property['value']); ?></td>
|
82 |
</tr>
|
83 |
+
<?php endforeach; ?>
|
84 |
</tbody>
|
85 |
</table>
|
86 |
|
87 |
<?php elseif (!empty($item['extra']['keySpecs'])): ?>
|
88 |
<div class="cegg-features-box">
|
89 |
+
<h4 class="cegg-no-top-margin"><?php TemplateHelper::_e('Features'); ?></h4>
|
90 |
<ul class="cegg-feature-list">
|
91 |
<?php foreach ($item['extra']['keySpecs'] as $feature): ?>
|
92 |
<li><?php echo esc_html($feature); ?></li>
|
93 |
+
<?php endforeach; ?>
|
94 |
</ul>
|
95 |
</div>
|
96 |
<?php elseif (!empty($item['extra']['Detail'])): ?>
|
97 |
|
98 |
+
<h4 class="cegg-no-top-margin"><?php TemplateHelper::_e('Features'); ?></h4>
|
99 |
<table class='table table-condensed cegg-features-table'>
|
100 |
<tbody>
|
101 |
+
<?php foreach ($item['extra']['Detail'] as $name => $value): ?>
|
102 |
<tr>
|
103 |
<td class='text-muted'><?php echo esc_html($name) ?></td><td><?php echo esc_html($value); ?></td>
|
104 |
</tr>
|
105 |
+
<?php endforeach; ?>
|
106 |
</tbody>
|
107 |
</table>
|
108 |
|
application/templates/blocks/item_row.php
CHANGED
@@ -7,13 +7,15 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
7 |
<div class="row">
|
8 |
<div class="col-md-6 text-center cegg-image-container cegg-mb20">
|
9 |
<?php if ($item['img']): ?>
|
10 |
-
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>">
|
11 |
-
|
12 |
</a>
|
13 |
<?php endif; ?>
|
14 |
</div>
|
15 |
<div class="col-md-6">
|
16 |
-
|
|
|
|
|
17 |
<?php if ($item['rating']): ?>
|
18 |
<div class="cegg-mb5">
|
19 |
<?php echo TemplateHelper::printRating($item, 'default'); ?>
|
@@ -27,17 +29,17 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
27 |
<?php if ($item['priceOld']): ?>
|
28 |
<span class="text-muted"><strike><?php echo TemplateHelper::formatPriceCurrency($item['priceOld'], $item['currencyCode'], '<small>', '</small>'); ?></strike></span><br>
|
29 |
<?php endif; ?>
|
30 |
-
|
31 |
-
|
32 |
|
33 |
|
34 |
<?php if ($stock_status = TemplateHelper::getStockStatusStr($item)): ?>
|
35 |
-
<mark title="<?php echo \esc_attr(sprintf(__('Last updated on %s'
|
36 |
<?php echo \esc_html($stock_status); ?>
|
37 |
</mark>
|
38 |
<?php endif; ?>
|
39 |
<?php if ($cashback_str = TemplateHelper::getCashbackStr($item)): ?>
|
40 |
-
<div class="cegg-cashback"><?php echo sprintf(__('Plus %s Cash Back'
|
41 |
<?php endif; ?>
|
42 |
</div>
|
43 |
|
@@ -45,12 +47,16 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
45 |
|
46 |
<div class="cegg-btn-row cegg-mb5">
|
47 |
<div><a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>" class="btn btn-danger cegg-btn-big"><?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?></a></div>
|
48 |
-
<span class="title-case text-muted"
|
|
|
|
|
|
|
|
|
49 |
</div>
|
50 |
<div class="cegg-last-update-row cegg-mb15">
|
51 |
<span class="text-muted">
|
52 |
<small>
|
53 |
-
<?php
|
54 |
<?php if ($module_id == 'Amazon') TemplateHelper::printAmazonDisclaimer(); ?>
|
55 |
</small>
|
56 |
</span>
|
7 |
<div class="row">
|
8 |
<div class="col-md-6 text-center cegg-image-container cegg-mb20">
|
9 |
<?php if ($item['img']): ?>
|
10 |
+
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>">
|
11 |
+
<?php TemplateHelper::displayImage($item, 350, 350); ?>
|
12 |
</a>
|
13 |
<?php endif; ?>
|
14 |
</div>
|
15 |
<div class="col-md-6">
|
16 |
+
<?php if ($item['title']): ?>
|
17 |
+
<h3 class="cegg-item-title"><?php echo $item['title']; ?></h3>
|
18 |
+
<?php endif; ?>
|
19 |
<?php if ($item['rating']): ?>
|
20 |
<div class="cegg-mb5">
|
21 |
<?php echo TemplateHelper::printRating($item, 'default'); ?>
|
29 |
<?php if ($item['priceOld']): ?>
|
30 |
<span class="text-muted"><strike><?php echo TemplateHelper::formatPriceCurrency($item['priceOld'], $item['currencyCode'], '<small>', '</small>'); ?></strike></span><br>
|
31 |
<?php endif; ?>
|
32 |
+
<?php echo TemplateHelper::formatPriceCurrency($item['price'], $item['currencyCode'], '<span class="cegg-currency">', '</span>'); ?></span>
|
33 |
+
<?php endif; ?>
|
34 |
|
35 |
|
36 |
<?php if ($stock_status = TemplateHelper::getStockStatusStr($item)): ?>
|
37 |
+
<mark title="<?php echo \esc_attr(sprintf(TemplateHelper::__('Last updated on %s'), TemplateHelper::getLastUpdateFormatted($module_id, $post_id))); ?>" class="stock-status status-<?php echo \esc_attr(TemplateHelper::getStockStatusClass($item)); ?>">
|
38 |
<?php echo \esc_html($stock_status); ?>
|
39 |
</mark>
|
40 |
<?php endif; ?>
|
41 |
<?php if ($cashback_str = TemplateHelper::getCashbackStr($item)): ?>
|
42 |
+
<div class="cegg-cashback"><?php echo sprintf(TemplateHelper::__('Plus %s Cash Back'), $cashback_str); ?></div>
|
43 |
<?php endif; ?>
|
44 |
</div>
|
45 |
|
47 |
|
48 |
<div class="cegg-btn-row cegg-mb5">
|
49 |
<div><a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>" class="btn btn-danger cegg-btn-big"><?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?></a></div>
|
50 |
+
<span class="title-case text-muted">
|
51 |
+
<?php TemplateHelper::getMerhantName($item, true); ?>
|
52 |
+
<?php TemplateHelper::printShopInfo($item, array('data-placement' => 'bottom')); ?>
|
53 |
+
|
54 |
+
</span>
|
55 |
</div>
|
56 |
<div class="cegg-last-update-row cegg-mb15">
|
57 |
<span class="text-muted">
|
58 |
<small>
|
59 |
+
<?php echo sprintf(TemplateHelper::__('as of %s'), TemplateHelper::getLastUpdateFormatted($module_id, $post_id)); ?>
|
60 |
<?php if ($module_id == 'Amazon') TemplateHelper::printAmazonDisclaimer(); ?>
|
61 |
</small>
|
62 |
</span>
|
application/templates/blocks/list_row.php
CHANGED
@@ -3,20 +3,23 @@ defined('\ABSPATH') || exit;
|
|
3 |
|
4 |
use ContentEgg\application\helpers\TemplateHelper;
|
5 |
?>
|
6 |
-
|
|
|
7 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>"><?php echo esc_html(TemplateHelper::truncate($item['title'], 100)); ?></a>
|
8 |
</div>
|
9 |
<div class="row-products">
|
10 |
<div class="col-md-2 col-sm-2 col-xs-12 cegg-image-cell">
|
11 |
<?php if ($item['img']): ?>
|
12 |
-
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>"
|
|
|
|
|
13 |
<?php endif; ?>
|
14 |
</div>
|
15 |
<div class="col-md-5 col-sm-5 col-xs-12 cegg-desc-cell hidden-xs">
|
16 |
<div class="cegg-no-top-margin cegg-list-logo-title">
|
17 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>"><?php echo esc_html(TemplateHelper::truncate($item['title'], 100)); ?></a>
|
18 |
</div>
|
19 |
-
|
20 |
</div>
|
21 |
<div class="col-md-3 col-sm-3 col-xs-12 cegg-price-cell text-center">
|
22 |
<div class="cegg-price-row">
|
@@ -28,32 +31,27 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
28 |
<div class="text-muted"><strike><?php echo TemplateHelper::formatPriceCurrency($item['priceOld'], $item['currencyCode']); ?></strike></div>
|
29 |
<?php endif; ?>
|
30 |
<?php if ($stock_status = TemplateHelper::getStockStatusStr($item)): ?>
|
31 |
-
<div title="<?php echo \esc_attr(sprintf(__('Last updated on %s'
|
32 |
<?php echo \esc_html($stock_status); ?>
|
33 |
</div>
|
34 |
<?php endif; ?>
|
35 |
|
36 |
<?php if ($item['module_id'] == 'Amazon'): ?>
|
|
|
37 |
<?php if (!empty($item['extra']['totalNew']) && $item['extra']['totalNew'] > 1): ?>
|
38 |
<div class="cegg-font60 cegg-lineheight15">
|
39 |
-
<?php echo $item['extra']['totalNew']; ?>
|
40 |
-
<?php _e('new', 'content-egg-tpl'); ?>
|
41 |
-
<?php if ($item['extra']['lowestNewPrice']): ?>
|
42 |
-
<?php _e('from', 'content-egg-tpl'); ?> <?php echo TemplateHelper::formatPriceCurrency($item['extra']['lowestNewPrice'], $item['currencyCode']); ?>
|
43 |
-
<?php endif; ?>
|
44 |
</div>
|
45 |
<?php endif; ?>
|
46 |
<?php if (!empty($item['extra']['totalUsed'])): ?>
|
47 |
<div class="cegg-font60 cegg-lineheight15">
|
48 |
-
<?php echo $item['extra']['totalUsed']; ?>
|
49 |
-
<?php _e('used', 'content-egg-tpl'); ?> <?php _e('from', 'content-egg-tpl'); ?>
|
50 |
-
<?php echo TemplateHelper::formatPriceCurrency($item['extra']['lowestUsedPrice'], $item['currencyCode']); ?>
|
51 |
</div>
|
52 |
<?php endif; ?>
|
53 |
|
54 |
<?php if (!empty($amazon_last_updated)): ?>
|
55 |
<div class="cegg-font60 cegg-lineheight15">
|
56 |
-
<?php
|
57 |
<?php TemplateHelper::printAmazonDisclaimer(); ?>
|
58 |
</div>
|
59 |
<?php endif; ?>
|
@@ -65,11 +63,16 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
65 |
<div class="cegg-btn-row">
|
66 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>" class="btn btn-danger btn-block"><span><?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?></span></a>
|
67 |
</div>
|
68 |
-
<?php if ($merchant = TemplateHelper::
|
69 |
<div class="text-center">
|
70 |
-
<small class="text-muted title-case"
|
|
|
|
|
|
|
71 |
</div>
|
72 |
<?php endif; ?>
|
|
|
73 |
|
74 |
</div>
|
75 |
-
</div>
|
|
3 |
|
4 |
use ContentEgg\application\helpers\TemplateHelper;
|
5 |
?>
|
6 |
+
|
7 |
+
<div class="cegg-list-logo-title cegg-mt5 cegg-mb15 visible-xs text-center">
|
8 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>"><?php echo esc_html(TemplateHelper::truncate($item['title'], 100)); ?></a>
|
9 |
</div>
|
10 |
<div class="row-products">
|
11 |
<div class="col-md-2 col-sm-2 col-xs-12 cegg-image-cell">
|
12 |
<?php if ($item['img']): ?>
|
13 |
+
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>">
|
14 |
+
<?php TemplateHelper::displayImage($item, 130, 100); ?>
|
15 |
+
</a>
|
16 |
<?php endif; ?>
|
17 |
</div>
|
18 |
<div class="col-md-5 col-sm-5 col-xs-12 cegg-desc-cell hidden-xs">
|
19 |
<div class="cegg-no-top-margin cegg-list-logo-title">
|
20 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>"><?php echo esc_html(TemplateHelper::truncate($item['title'], 100)); ?></a>
|
21 |
</div>
|
22 |
+
|
23 |
</div>
|
24 |
<div class="col-md-3 col-sm-3 col-xs-12 cegg-price-cell text-center">
|
25 |
<div class="cegg-price-row">
|
31 |
<div class="text-muted"><strike><?php echo TemplateHelper::formatPriceCurrency($item['priceOld'], $item['currencyCode']); ?></strike></div>
|
32 |
<?php endif; ?>
|
33 |
<?php if ($stock_status = TemplateHelper::getStockStatusStr($item)): ?>
|
34 |
+
<div title="<?php echo \esc_attr(sprintf(TemplateHelper::__('Last updated on %s'), TemplateHelper::getLastUpdateFormatted($item['module_id'], $post_id))); ?>" class="cegg-lineheight15 stock-status status-<?php echo \esc_attr(TemplateHelper::getStockStatusClass($item)); ?>">
|
35 |
<?php echo \esc_html($stock_status); ?>
|
36 |
</div>
|
37 |
<?php endif; ?>
|
38 |
|
39 |
<?php if ($item['module_id'] == 'Amazon'): ?>
|
40 |
+
|
41 |
<?php if (!empty($item['extra']['totalNew']) && $item['extra']['totalNew'] > 1): ?>
|
42 |
<div class="cegg-font60 cegg-lineheight15">
|
43 |
+
<?php echo sprintf(TemplateHelper::__('%d new from %s'), $item['extra']['totalNew'], TemplateHelper::formatPriceCurrency($item['extra']['lowestNewPrice'], $item['currencyCode'])); ?>
|
|
|
|
|
|
|
|
|
44 |
</div>
|
45 |
<?php endif; ?>
|
46 |
<?php if (!empty($item['extra']['totalUsed'])): ?>
|
47 |
<div class="cegg-font60 cegg-lineheight15">
|
48 |
+
<?php echo sprintf(TemplateHelper::__('%d used from %s'), $item['extra']['totalUsed'], TemplateHelper::formatPriceCurrency($item['extra']['lowestUsedPrice'], $item['currencyCode'])); ?>
|
|
|
|
|
49 |
</div>
|
50 |
<?php endif; ?>
|
51 |
|
52 |
<?php if (!empty($amazon_last_updated)): ?>
|
53 |
<div class="cegg-font60 cegg-lineheight15">
|
54 |
+
<?php echo sprintf(TemplateHelper::__('as of %s'), $amazon_last_updated); ?>
|
55 |
<?php TemplateHelper::printAmazonDisclaimer(); ?>
|
56 |
</div>
|
57 |
<?php endif; ?>
|
63 |
<div class="cegg-btn-row">
|
64 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>" class="btn btn-danger btn-block"><span><?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?></span></a>
|
65 |
</div>
|
66 |
+
<?php if ($merchant = TemplateHelper::getMerchantName($item)): ?>
|
67 |
<div class="text-center">
|
68 |
+
<small class="text-muted title-case">
|
69 |
+
<?php echo \esc_html($merchant); ?>
|
70 |
+
<?php TemplateHelper::printShopInfo($item); ?>
|
71 |
+
</small>
|
72 |
</div>
|
73 |
<?php endif; ?>
|
74 |
+
|
75 |
|
76 |
</div>
|
77 |
+
</div>
|
78 |
+
|
application/templates/blocks/list_row_no_price.php
CHANGED
@@ -12,31 +12,39 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
12 |
</div>
|
13 |
|
14 |
<?php if ($item['img']): ?>
|
15 |
-
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>"
|
|
|
|
|
16 |
<?php endif; ?>
|
17 |
</div>
|
18 |
<div class="col-md-8 col-sm-8 col-xs-9 cegg-desc-cell" >
|
19 |
<div class="cegg-no-top-margin cegg-list-logo-title">
|
20 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>"><?php echo \esc_html(TemplateHelper::truncate($item['title'], 100)); ?></a>
|
21 |
</div>
|
22 |
-
<?php if ($item['description'] && strip_tags($item['description']) <
|
23 |
<div class="cegg-no-prices-desc cegg-mb5"><?php echo TemplateHelper::truncate($item['description'], 300); ?></div>
|
24 |
<?php endif; ?>
|
25 |
|
26 |
<div class="text-center cegg-mt10 visible-xs">
|
27 |
-
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>" class="btn btn-danger btn-block"><span><?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?></span></a>
|
28 |
<?php if ($merchant = TemplateHelper::getMerhantName($item)): ?>
|
29 |
-
<small class="text-muted title-case"
|
|
|
|
|
|
|
30 |
<?php endif; ?>
|
31 |
-
</div>
|
32 |
</div>
|
33 |
-
<div class="col-md-2 col-sm-2 col-xs-12 cegg-btn-cell hidden-xs">
|
34 |
<div class="cegg-btn-row">
|
35 |
-
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>" class="btn btn-danger btn-block"><span><?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?></span></a>
|
36 |
-
</div>
|
37 |
<?php if ($merchant = TemplateHelper::getMerhantName($item)): ?>
|
38 |
<div class="text-center">
|
39 |
-
<small class="text-muted title-case"
|
|
|
|
|
|
|
40 |
</div>
|
41 |
<?php endif; ?>
|
42 |
|
12 |
</div>
|
13 |
|
14 |
<?php if ($item['img']): ?>
|
15 |
+
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>">
|
16 |
+
<?php TemplateHelper::displayImage($item, 130, 100); ?>
|
17 |
+
</a>
|
18 |
<?php endif; ?>
|
19 |
</div>
|
20 |
<div class="col-md-8 col-sm-8 col-xs-9 cegg-desc-cell" >
|
21 |
<div class="cegg-no-top-margin cegg-list-logo-title">
|
22 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>"><?php echo \esc_html(TemplateHelper::truncate($item['title'], 100)); ?></a>
|
23 |
</div>
|
24 |
+
<?php if ($item['description'] && strlen(strip_tags($item['description'])) < 100): ?>
|
25 |
<div class="cegg-no-prices-desc cegg-mb5"><?php echo TemplateHelper::truncate($item['description'], 300); ?></div>
|
26 |
<?php endif; ?>
|
27 |
|
28 |
<div class="text-center cegg-mt10 visible-xs">
|
29 |
+
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>" class="btn btn-danger btn-block"><span><?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?></span></a>
|
30 |
<?php if ($merchant = TemplateHelper::getMerhantName($item)): ?>
|
31 |
+
<small class="text-muted title-case">
|
32 |
+
<?php echo \esc_html($merchant); ?>
|
33 |
+
<?php TemplateHelper::printShopInfo($item); ?>
|
34 |
+
</small>
|
35 |
<?php endif; ?>
|
36 |
+
</div>
|
37 |
</div>
|
38 |
+
<div class="col-md-2 col-sm-2 col-xs-12 cegg-btn-cell hidden-xs">
|
39 |
<div class="cegg-btn-row">
|
40 |
+
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>" class="btn btn-danger btn-block"><span><?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?></span></a>
|
41 |
+
</div>
|
42 |
<?php if ($merchant = TemplateHelper::getMerhantName($item)): ?>
|
43 |
<div class="text-center">
|
44 |
+
<small class="text-muted title-case">
|
45 |
+
<?php echo \esc_html($merchant); ?>
|
46 |
+
<?php TemplateHelper::printShopInfo($item); ?>
|
47 |
+
</small>
|
48 |
</div>
|
49 |
<?php endif; ?>
|
50 |
|
application/templates/blocks/price_alert_inline.php
CHANGED
@@ -22,7 +22,7 @@ $privacy_url = TemplateHelper::getPrivacyUrl();
|
|
22 |
<?php if ($title): ?>
|
23 |
<div class="price-alert-title cegg-mb10"><?php echo \esc_html($title); ?></div>
|
24 |
<?php else: ?>
|
25 |
-
<div class="price-alert-title cegg-mb5"><?php _e('Wait For A Price Drop'
|
26 |
<?php endif; ?>
|
27 |
<div class="row cegg-no-bottom-margin">
|
28 |
<form class="navbar-form">
|
@@ -30,22 +30,22 @@ $privacy_url = TemplateHelper::getPrivacyUrl();
|
|
30 |
<input type="hidden" name="unique_id" value="<?php echo \esc_attr($item['unique_id']); ?>">
|
31 |
<input type="hidden" name="post_id" value="<?php echo \esc_attr(get_the_ID()); ?>">
|
32 |
<div class="col-md-6">
|
33 |
-
<label class="sr-only" for="cegg-email-<?php echo \esc_attr($item['unique_id']); ?>"><?php _e('Your Email'
|
34 |
-
<input value="<?php echo \esc_attr(TemplateHelper::getCurrentUserEmail()); ?>" type="email" class="<?php echo esc_attr($input_class); ?> form-control" name="email" id="cegg-email-<?php echo \esc_attr($item['unique_id']); ?>" placeholder="<?php _e('Your Email'
|
35 |
</div>
|
36 |
<div class="col-md-6">
|
37 |
-
<label class="sr-only" for="cegg-price-<?php echo \esc_attr($item['unique_id']); ?>"><?php _e('Desired Price'
|
38 |
<div class="input-group">
|
39 |
<?php $cur_position = TemplateHelper::getCurrencyPos($item['currencyCode']); ?>
|
40 |
<?php if ($cur_position == 'left' || $cur_position == 'left_space'): ?>
|
41 |
<div class="input-group-addon"><?php echo TemplateHelper::getCurrencySymbol($item['currencyCode']); ?></div>
|
42 |
<?php endif; ?>
|
43 |
-
<input value="<?php echo $desired_price; ?>" type="number" class="<?php echo \esc_attr($input_class); ?> form-control" name="price" id="cegg-price-<?php echo \esc_attr($item['unique_id']); ?>" placeholder="<?php _e('Desired Price'
|
44 |
<?php if ($cur_position == 'right' || $cur_position == 'right_space'): ?>
|
45 |
<div class="input-group-addon"><?php echo TemplateHelper::getCurrencySymbol($item['currencyCode']); ?></div>
|
46 |
<?php endif; ?>
|
47 |
<span class="input-group-btn">
|
48 |
-
<button class="btn btn-warning <?php echo \esc_attr($btn_class); ?>" type="submit"><?php _e('SET ALERT'
|
49 |
</span>
|
50 |
|
51 |
</div>
|
@@ -55,11 +55,12 @@ $privacy_url = TemplateHelper::getPrivacyUrl();
|
|
55 |
<div style="display: none;" class="price-alert-agree-wrap">
|
56 |
<label class="price-alert-agree-label">
|
57 |
<input type="checkbox" name="accepted" value="1" id="cegg_alert_accepted" required />
|
58 |
-
<?php
|
|
|
59 |
</label>
|
60 |
</div>
|
61 |
<?php endif; ?>
|
62 |
-
<div class="text-muted small cegg-mt5"><?php _e('You will receive a notification when the price drops.'
|
63 |
</div>
|
64 |
</form>
|
65 |
</div>
|
22 |
<?php if ($title): ?>
|
23 |
<div class="price-alert-title cegg-mb10"><?php echo \esc_html($title); ?></div>
|
24 |
<?php else: ?>
|
25 |
+
<div class="price-alert-title cegg-mb5"><?php TemplateHelper::_e('Wait For A Price Drop'); ?></div>
|
26 |
<?php endif; ?>
|
27 |
<div class="row cegg-no-bottom-margin">
|
28 |
<form class="navbar-form">
|
30 |
<input type="hidden" name="unique_id" value="<?php echo \esc_attr($item['unique_id']); ?>">
|
31 |
<input type="hidden" name="post_id" value="<?php echo \esc_attr(get_the_ID()); ?>">
|
32 |
<div class="col-md-6">
|
33 |
+
<label class="sr-only" for="cegg-email-<?php echo \esc_attr($item['unique_id']); ?>"><?php TemplateHelper::_e('Your Email'); ?></label>
|
34 |
+
<input value="<?php echo \esc_attr(TemplateHelper::getCurrentUserEmail()); ?>" type="email" class="<?php echo esc_attr($input_class); ?> form-control" name="email" id="cegg-email-<?php echo \esc_attr($item['unique_id']); ?>" placeholder="<?php TemplateHelper::_e('Your Email'); ?>" required>
|
35 |
</div>
|
36 |
<div class="col-md-6">
|
37 |
+
<label class="sr-only" for="cegg-price-<?php echo \esc_attr($item['unique_id']); ?>"><?php TemplateHelper::_e('Desired Price'); ?></label>
|
38 |
<div class="input-group">
|
39 |
<?php $cur_position = TemplateHelper::getCurrencyPos($item['currencyCode']); ?>
|
40 |
<?php if ($cur_position == 'left' || $cur_position == 'left_space'): ?>
|
41 |
<div class="input-group-addon"><?php echo TemplateHelper::getCurrencySymbol($item['currencyCode']); ?></div>
|
42 |
<?php endif; ?>
|
43 |
+
<input value="<?php echo $desired_price; ?>" type="number" class="<?php echo \esc_attr($input_class); ?> form-control" name="price" id="cegg-price-<?php echo \esc_attr($item['unique_id']); ?>" placeholder="<?php TemplateHelper::_e('Desired Price'); ?>" step="any" required>
|
44 |
<?php if ($cur_position == 'right' || $cur_position == 'right_space'): ?>
|
45 |
<div class="input-group-addon"><?php echo TemplateHelper::getCurrencySymbol($item['currencyCode']); ?></div>
|
46 |
<?php endif; ?>
|
47 |
<span class="input-group-btn">
|
48 |
+
<button class="btn btn-warning <?php echo \esc_attr($btn_class); ?>" type="submit"><?php TemplateHelper::_e('SET ALERT'); ?></button>
|
49 |
</span>
|
50 |
|
51 |
</div>
|
55 |
<div style="display: none;" class="price-alert-agree-wrap">
|
56 |
<label class="price-alert-agree-label">
|
57 |
<input type="checkbox" name="accepted" value="1" id="cegg_alert_accepted" required />
|
58 |
+
<?php $privacy_link = '<a target="_blank" href="' . \esc_attr($privacy_url) . '">' . TemplateHelper::__('Privacy Policy') . '</a>'; ?>
|
59 |
+
<?php echo sprintf(TemplateHelper::__('I agree to the %s.'), $privacy_link); ?>
|
60 |
</label>
|
61 |
</div>
|
62 |
<?php endif; ?>
|
63 |
+
<div class="text-muted small cegg-mt5"><?php TemplateHelper::_e('You will receive a notification when the price drops.'); ?></div>
|
64 |
</div>
|
65 |
</form>
|
66 |
</div>
|
application/templates/blocks/price_history.php
CHANGED
@@ -16,10 +16,10 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
16 |
<?php if (!$prices) return; ?>
|
17 |
<div class="row">
|
18 |
<div class='col-md-7'>
|
19 |
-
<h4><?php _e('Statistics'
|
20 |
<table class="table table-hover">
|
21 |
<tr>
|
22 |
-
<td><?php _e('Current Price'
|
23 |
<td >
|
24 |
<?php if ($item['price']): ?>
|
25 |
<?php echo TemplateHelper::formatPriceCurrency($item['price'], $item['currencyCode']); ?>
|
@@ -31,22 +31,22 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
31 |
</tr>
|
32 |
<?php $price = TemplateHelper::priceHistoryMax($item['unique_id'], $module_id); ?>
|
33 |
<tr>
|
34 |
-
<td class="text-danger"><?php _e('Highest Price'
|
35 |
<td><?php echo TemplateHelper::formatPriceCurrency($price['price'], $item['currencyCode']); ?></td>
|
36 |
<td><?php echo TemplateHelper::formatDate($price['date']); ?></td>
|
37 |
</tr>
|
38 |
<?php $price = TemplateHelper::priceHistoryMin($item['unique_id'], $module_id); ?>
|
39 |
<tr>
|
40 |
-
<td class="text-success"><?php _e('Lowest Price'
|
41 |
<td><?php echo TemplateHelper::formatPriceCurrency($price['price'], $item['currencyCode']); ?></td>
|
42 |
<td><?php echo TemplateHelper::formatDate($price['date']); ?></td>
|
43 |
</tr>
|
44 |
</table>
|
45 |
<?php $since = TemplateHelper::priceHistorySinceDate($item['unique_id'], $module_id); ?>
|
46 |
-
<div class='text-right text-muted'><?php
|
47 |
</div>
|
48 |
<div class='col-md-5'>
|
49 |
-
<h4><?php _e('Last price changes'
|
50 |
<table class="table table-hover table-condensed">
|
51 |
<?php foreach ($prices as $price): ?>
|
52 |
<tr>
|
16 |
<?php if (!$prices) return; ?>
|
17 |
<div class="row">
|
18 |
<div class='col-md-7'>
|
19 |
+
<h4><?php TemplateHelper::_e('Statistics'); ?></h4>
|
20 |
<table class="table table-hover">
|
21 |
<tr>
|
22 |
+
<td><?php TemplateHelper::_e('Current Price'); ?></td>
|
23 |
<td >
|
24 |
<?php if ($item['price']): ?>
|
25 |
<?php echo TemplateHelper::formatPriceCurrency($item['price'], $item['currencyCode']); ?>
|
31 |
</tr>
|
32 |
<?php $price = TemplateHelper::priceHistoryMax($item['unique_id'], $module_id); ?>
|
33 |
<tr>
|
34 |
+
<td class="text-danger"><?php TemplateHelper::_e('Highest Price'); ?></td>
|
35 |
<td><?php echo TemplateHelper::formatPriceCurrency($price['price'], $item['currencyCode']); ?></td>
|
36 |
<td><?php echo TemplateHelper::formatDate($price['date']); ?></td>
|
37 |
</tr>
|
38 |
<?php $price = TemplateHelper::priceHistoryMin($item['unique_id'], $module_id); ?>
|
39 |
<tr>
|
40 |
+
<td class="text-success"><?php TemplateHelper::_e('Lowest Price'); ?></td>
|
41 |
<td><?php echo TemplateHelper::formatPriceCurrency($price['price'], $item['currencyCode']); ?></td>
|
42 |
<td><?php echo TemplateHelper::formatDate($price['date']); ?></td>
|
43 |
</tr>
|
44 |
</table>
|
45 |
<?php $since = TemplateHelper::priceHistorySinceDate($item['unique_id'], $module_id); ?>
|
46 |
+
<div class='text-right text-muted'><?php echo sprintf(__('Since %s'), TemplateHelper::formatDate($since)); ?></div>
|
47 |
</div>
|
48 |
<div class='col-md-5'>
|
49 |
+
<h4><?php TemplateHelper::_e('Last price changes'); ?></h4>
|
50 |
<table class="table table-hover table-condensed">
|
51 |
<?php foreach ($prices as $price): ?>
|
52 |
<tr>
|
application/templates/data_coupon.php
CHANGED
@@ -23,22 +23,22 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
23 |
<?php endif; ?>
|
24 |
<?php if (!empty($item['extra']['discount'])): ?>
|
25 |
<span class="label label-danger">
|
26 |
-
<?php echo esc_html($item['extra']['discount']); ?> <?php _e('OFF'
|
27 |
</span>
|
28 |
<?php endif; ?>
|
29 |
|
30 |
<?php if ($module_id == 'TradedoublerCoupons' && $item['extra']['discountAmount']): ?>
|
31 |
<span class="label label-danger">
|
32 |
<?php if (!(bool) $item['extra']['isPercentage']) echo TemplateHelper::currencyTyping($item['extra']['currencyId']); ?><?php echo esc_html($item['extra']['discountAmount']); ?><?php if ((bool) $item['extra']['isPercentage']) echo '%'; ?>
|
33 |
-
<?php _e('OFF'
|
34 |
</span>
|
35 |
<?php endif; ?>
|
36 |
|
37 |
<?php if ($item['startDate']): ?>
|
38 |
-
<span class="text-muted small text-center"><em><?php
|
39 |
<?php endif; ?>
|
40 |
<?php if ($item['endDate']): ?>
|
41 |
-
<span class="text-muted small text-center"><em><?php
|
42 |
<?php endif; ?>
|
43 |
</div>
|
44 |
<div class="col-md-3 col-sm-3 col-xs-12 offer_price cegg-price-cell">
|
23 |
<?php endif; ?>
|
24 |
<?php if (!empty($item['extra']['discount'])): ?>
|
25 |
<span class="label label-danger">
|
26 |
+
<?php echo esc_html($item['extra']['discount']); ?> <?php TemplateHelper::_e('OFF') ?>
|
27 |
</span>
|
28 |
<?php endif; ?>
|
29 |
|
30 |
<?php if ($module_id == 'TradedoublerCoupons' && $item['extra']['discountAmount']): ?>
|
31 |
<span class="label label-danger">
|
32 |
<?php if (!(bool) $item['extra']['isPercentage']) echo TemplateHelper::currencyTyping($item['extra']['currencyId']); ?><?php echo esc_html($item['extra']['discountAmount']); ?><?php if ((bool) $item['extra']['isPercentage']) echo '%'; ?>
|
33 |
+
<?php TemplateHelper::_e('OFF') ?>
|
34 |
</span>
|
35 |
<?php endif; ?>
|
36 |
|
37 |
<?php if ($item['startDate']): ?>
|
38 |
+
<span class="text-muted small text-center"><em><?php echo sprintf(TemplateHelper::__('Start date: %s'), TemplateHelper::formatDate($item['startDate'])); ?></em></span>
|
39 |
<?php endif; ?>
|
40 |
<?php if ($item['endDate']): ?>
|
41 |
+
<span class="text-muted small text-center"><em><?php echo sprintf(TemplateHelper::__('End date: %s'), TemplateHelper::formatDate($item['endDate'])); ?></em></span>
|
42 |
<?php endif; ?>
|
43 |
</div>
|
44 |
<div class="col-md-3 col-sm-3 col-xs-12 offer_price cegg-price-cell">
|
application/templates/data_item.php
CHANGED
@@ -8,7 +8,7 @@ if (TemplateHelper::isModuleDataExist($items, 'Amazon'))
|
|
8 |
?>
|
9 |
|
10 |
<?php if ($title): ?>
|
11 |
-
<h3 class="cegg-shortcode-title"><?php echo esc_html($title); ?></h3>
|
12 |
<?php endif; ?>
|
13 |
<?php foreach ($items as $item): ?>
|
14 |
|
8 |
?>
|
9 |
|
10 |
<?php if ($title): ?>
|
11 |
+
<h3 class="cegg-shortcode-title"><?php echo \esc_html($title); ?></h3>
|
12 |
<?php endif; ?>
|
13 |
<?php foreach ($items as $item): ?>
|
14 |
|
application/templates/data_list.php
CHANGED
@@ -5,11 +5,14 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
5 |
|
6 |
if (TemplateHelper::isModuleDataExist($items, 'Amazon'))
|
7 |
\wp_enqueue_script('cegg-frontend', \ContentEgg\PLUGIN_RES . '/js/frontend.js', array('jquery'));
|
|
|
|
|
8 |
?>
|
9 |
|
10 |
<div class="egg-container egg-list">
|
|
|
11 |
<?php if ($title): ?>
|
12 |
-
<h3><?php echo esc_html($title); ?></h3>
|
13 |
<?php endif; ?>
|
14 |
|
15 |
<div class="egg-listcontainer">
|
@@ -22,11 +25,11 @@ if (TemplateHelper::isModuleDataExist($items, 'Amazon'))
|
|
22 |
<div class="row cegg-no-top-margin">
|
23 |
<div class="col-md-12 text-right text-muted">
|
24 |
<small>
|
25 |
-
<?php
|
26 |
<?php TemplateHelper::printAmazonDisclaimer(); ?>
|
27 |
</small>
|
28 |
</div>
|
29 |
</div>
|
30 |
<?php endif; ?>
|
31 |
|
32 |
-
</div>
|
5 |
|
6 |
if (TemplateHelper::isModuleDataExist($items, 'Amazon'))
|
7 |
\wp_enqueue_script('cegg-frontend', \ContentEgg\PLUGIN_RES . '/js/frontend.js', array('jquery'));
|
8 |
+
|
9 |
+
\wp_enqueue_script('bootstrap-popover');
|
10 |
?>
|
11 |
|
12 |
<div class="egg-container egg-list">
|
13 |
+
|
14 |
<?php if ($title): ?>
|
15 |
+
<h3><?php echo \esc_html($title); ?></h3>
|
16 |
<?php endif; ?>
|
17 |
|
18 |
<div class="egg-listcontainer">
|
25 |
<div class="row cegg-no-top-margin">
|
26 |
<div class="col-md-12 text-right text-muted">
|
27 |
<small>
|
28 |
+
<?php echo sprintf(TemplateHelper::__('Last updated on %s'), TemplateHelper::getLastUpdateFormatted($module_id, $post_id)); ?>
|
29 |
<?php TemplateHelper::printAmazonDisclaimer(); ?>
|
30 |
</small>
|
31 |
</div>
|
32 |
</div>
|
33 |
<?php endif; ?>
|
34 |
|
35 |
+
</div>
|
application/templates/data_price_tracker_alert.php
CHANGED
@@ -36,16 +36,16 @@ defined('\ABSPATH') || exit;
|
|
36 |
|
37 |
<?php if ($item['price']): ?>
|
38 |
<span class="cegg-price">
|
39 |
-
<small><?php _e('Price'
|
40 |
</span>
|
41 |
<?php endif; ?>
|
42 |
<?php if (isset($item['stock_status']) && $item['stock_status'] == \ContentEgg\application\components\ContentProduct::STOCK_STATUS_OUT_OF_STOCK): ?>
|
43 |
-
|
44 |
<?php echo \esc_html(TemplateHelper::getStockStatusStr($item)); ?>
|
45 |
</mark>
|
46 |
<?php endif; ?>
|
47 |
<?php if ($item['price']): ?>
|
48 |
-
<br><small class="text-muted"><?php
|
49 |
<?php endif; ?>
|
50 |
</div>
|
51 |
<div class="col-md-5 col-sm-5 col-xs-12 text-muted">
|
36 |
|
37 |
<?php if ($item['price']): ?>
|
38 |
<span class="cegg-price">
|
39 |
+
<small><?php TemplateHelper::_e('Price'); ?>:</small> <span class="cegg-price-color"><?php echo TemplateHelper::formatPriceCurrency($item['price'], $item['currencyCode'], '<span class="cegg-currency">', '</span>'); ?></span>
|
40 |
</span>
|
41 |
<?php endif; ?>
|
42 |
<?php if (isset($item['stock_status']) && $item['stock_status'] == \ContentEgg\application\components\ContentProduct::STOCK_STATUS_OUT_OF_STOCK): ?>
|
43 |
+
<mark title="<?php echo \esc_attr(sprintf(TemplateHelper::__('Last updated on %s'), TemplateHelper::getLastUpdateFormatted($module_id, $post_id))); ?>" class="stock-status status-<?php echo \esc_attr(TemplateHelper::getStockStatusClass($item)); ?>">
|
44 |
<?php echo \esc_html(TemplateHelper::getStockStatusStr($item)); ?>
|
45 |
</mark>
|
46 |
<?php endif; ?>
|
47 |
<?php if ($item['price']): ?>
|
48 |
+
<br><small class="text-muted"><?php echo sprintf(TemplateHelper::__('as of %s'), TemplateHelper::getLastUpdateFormatted($module_id, $post_id)); ?></small>
|
49 |
<?php endif; ?>
|
50 |
</div>
|
51 |
<div class="col-md-5 col-sm-5 col-xs-12 text-muted">
|
content-egg.php
CHANGED
@@ -6,7 +6,7 @@ namespace ContentEgg;
|
|
6 |
Plugin Name: Content Egg
|
7 |
Plugin URI: https://www.keywordrush.com/contentegg
|
8 |
Description: All in one solution for creating affiliate websites.
|
9 |
-
Version: 5.
|
10 |
Author: keywordrush.com
|
11 |
Author URI: https://www.keywordrush.com
|
12 |
Text Domain: content-egg
|
6 |
Plugin Name: Content Egg
|
7 |
Plugin URI: https://www.keywordrush.com/contentegg
|
8 |
Description: All in one solution for creating affiliate websites.
|
9 |
+
Version: 5.2.0
|
10 |
Author: keywordrush.com
|
11 |
Author URI: https://www.keywordrush.com
|
12 |
Text Domain: content-egg
|
languages/content-egg.pot
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the same license as the Content Egg<stripfree> Pro</stripfree> package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Content Egg<stripfree> Pro</stripfree>
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/content-egg\n"
|
7 |
-
"POT-Creation-Date:
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
15 |
-
#: application/Autoupdate.php:
|
16 |
msgid "New version of %s plugin."
|
17 |
msgstr ""
|
18 |
|
19 |
-
#: application/Autoupdate.php:
|
20 |
msgid ""
|
21 |
"Please <a target=\"_blank\" href=\"%s\">find here</a> the releases notes."
|
22 |
msgstr ""
|
@@ -31,11 +31,11 @@ msgstr ""
|
|
31 |
|
32 |
#: application/PriceMoversWidget.php:63 application/ProductSearchWidget.php:45
|
33 |
#: application/admin/views/_metabox_results.php:29
|
34 |
-
#: application/components/ParserModuleConfig.php:
|
35 |
#: application/models/ProductModel.php:62
|
36 |
#: application/modules/Coupon/views/metabox_module.php:52
|
37 |
#: application/modules/Offer/views/metabox_module.php:59
|
38 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
39 |
#: application/modules/Youtube/YoutubeConfig.php:66
|
40 |
#: application/modules/Youtube/views/search_panel.php:11
|
41 |
msgid "Title"
|
@@ -81,11 +81,12 @@ msgstr ""
|
|
81 |
#: application/PriceMoversWidget.php:99 application/PriceMoversWidget.php:100
|
82 |
#: application/PriceMoversWidget.php:101 application/PriceMoversWidget.php:102
|
83 |
#: application/PriceMoversWidget.php:103 application/PriceMoversWidget.php:104
|
|
|
84 |
msgid "%d days ago"
|
85 |
msgstr ""
|
86 |
|
87 |
#: application/PriceMoversWidget.php:110
|
88 |
-
#: application/components/ParserModuleConfig.php:
|
89 |
msgid "Template"
|
90 |
msgstr ""
|
91 |
|
@@ -97,6 +98,20 @@ msgstr ""
|
|
97 |
msgid "CE: Product Search"
|
98 |
msgstr ""
|
99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
#: application/admin/AdminNotice.php:25
|
101 |
msgid "Task for autoblogging is saved."
|
102 |
msgstr ""
|
@@ -121,28 +136,32 @@ msgstr ""
|
|
121 |
msgid "License can't be deactivated. Write to support of plugin."
|
122 |
msgstr ""
|
123 |
|
|
|
|
|
|
|
|
|
124 |
#: application/admin/AdminNotice.php:30
|
125 |
msgid ""
|
126 |
-
"
|
127 |
-
"
|
128 |
msgstr ""
|
129 |
|
130 |
#: application/admin/AeIntegrationConfig.php:33
|
131 |
msgid "Affiliate Egg integration"
|
132 |
msgstr ""
|
133 |
|
134 |
-
#: application/admin/AeIntegrationConfig.php:
|
135 |
msgid "Activate modules"
|
136 |
msgstr ""
|
137 |
|
138 |
#: application/admin/AutoblogController.php:77
|
139 |
-
#: application/admin/views/autoblog_index.php:
|
140 |
msgid "Autoblogging"
|
141 |
msgstr ""
|
142 |
|
143 |
#: application/admin/AutoblogController.php:78
|
144 |
#: application/admin/views/autoblog_edit.php:10
|
145 |
-
#: application/admin/views/autoblog_index.php:
|
146 |
msgid "Add autoblogging"
|
147 |
msgstr ""
|
148 |
|
@@ -172,13 +191,17 @@ msgid "Delete"
|
|
172 |
msgstr ""
|
173 |
|
174 |
#: application/admin/AutoblogTable.php:67
|
|
|
175 |
#: application/admin/views/_metabox_autoblog.php:26
|
176 |
-
msgid "
|
177 |
msgstr ""
|
178 |
|
179 |
#: application/admin/AutoblogTable.php:69
|
|
|
|
|
180 |
#: application/admin/views/_metabox_autoblog.php:27
|
181 |
-
|
|
|
182 |
msgstr ""
|
183 |
|
184 |
#: application/admin/AutoblogTable.php:83
|
@@ -217,7 +240,8 @@ msgid "The field \"%s\" can not be empty"
|
|
217 |
msgstr ""
|
218 |
|
219 |
#: application/admin/EnvatoConfig.php:40 application/admin/EnvatoConfig.php:58
|
220 |
-
#: application/admin/GeneralConfig.php:
|
|
|
221 |
msgid "Field \"%s\" filled with wrong data."
|
222 |
msgstr ""
|
223 |
|
@@ -241,454 +265,519 @@ msgstr ""
|
|
241 |
msgid "Error."
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: application/admin/GeneralConfig.php:37 application/admin/PluginAdmin.php:
|
245 |
msgid "Settings"
|
246 |
msgstr ""
|
247 |
|
248 |
-
#: application/admin/GeneralConfig.php:
|
249 |
msgid "Website language"
|
250 |
msgstr ""
|
251 |
|
252 |
-
#: application/admin/GeneralConfig.php:
|
253 |
msgid "The frontend language."
|
254 |
msgstr ""
|
255 |
|
256 |
-
#: application/admin/GeneralConfig.php:
|
257 |
-
#: application/admin/GeneralConfig.php:
|
258 |
-
#: application/admin/GeneralConfig.php:
|
259 |
-
#: application/admin/GeneralConfig.php:
|
260 |
-
#: application/admin/GeneralConfig.php:
|
261 |
-
#: application/admin/GeneralConfig.php:
|
262 |
-
#: application/admin/GeneralConfig.php:
|
263 |
msgid "General settings"
|
264 |
msgstr ""
|
265 |
|
266 |
-
#: application/admin/GeneralConfig.php:
|
267 |
msgid "What post types do you want to use for Content Egg?"
|
268 |
msgstr ""
|
269 |
|
270 |
-
#: application/admin/GeneralConfig.php:
|
271 |
msgid "Cashback Tracker integration"
|
272 |
msgstr ""
|
273 |
|
274 |
-
#: application/admin/GeneralConfig.php:
|
275 |
msgid "Integration with %s plugin."
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: application/admin/GeneralConfig.php:
|
279 |
msgid "Convert all affiliate links to trackable cashback links if possible."
|
280 |
msgstr ""
|
281 |
|
282 |
-
#: application/admin/GeneralConfig.php:
|
283 |
-
msgid "Enabled"
|
284 |
-
msgstr ""
|
285 |
-
|
286 |
-
#: application/admin/GeneralConfig.php:127
|
287 |
-
#: application/admin/GeneralConfig.php:198
|
288 |
-
#: application/modules/GoogleImages/GoogleImagesConfig.php:171
|
289 |
-
msgid "Disabled"
|
290 |
-
msgstr ""
|
291 |
-
|
292 |
-
#: application/admin/GeneralConfig.php:133
|
293 |
msgid "External featured images"
|
294 |
msgstr ""
|
295 |
|
296 |
-
#: application/admin/GeneralConfig.php:
|
297 |
msgid "Featured images from URL"
|
298 |
msgstr ""
|
299 |
|
300 |
-
#: application/admin/GeneralConfig.php:
|
301 |
msgid "Disabled - internal image is used"
|
302 |
msgstr ""
|
303 |
|
304 |
-
#: application/admin/GeneralConfig.php:
|
305 |
msgid "Enabled - internal image has priority"
|
306 |
msgstr ""
|
307 |
|
308 |
-
#: application/admin/GeneralConfig.php:
|
309 |
msgid "Enabled - external image has priority"
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: application/admin/GeneralConfig.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
msgid "Modules for synchronization"
|
314 |
msgstr ""
|
315 |
|
316 |
-
#: application/admin/GeneralConfig.php:
|
317 |
msgid "Select modules for automatic synchronization with WooCommerce."
|
318 |
msgstr ""
|
319 |
|
320 |
-
#: application/admin/GeneralConfig.php:
|
321 |
-
#: application/admin/GeneralConfig.php:
|
322 |
-
#: application/admin/GeneralConfig.php:
|
323 |
-
#: application/admin/GeneralConfig.php:
|
324 |
-
#: application/admin/GeneralConfig.php:
|
325 |
-
#: application/admin/GeneralConfig.php:
|
326 |
-
#: application/admin/GeneralConfig.php:
|
327 |
-
#: application/admin/GeneralConfig.php:
|
328 |
msgid "WooCommerce"
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: application/admin/GeneralConfig.php:
|
332 |
msgid "Automatic synchronization"
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: application/admin/GeneralConfig.php:
|
336 |
msgid "How to choose product for automatic synchronization with WooCommerce."
|
337 |
msgstr ""
|
338 |
|
339 |
-
#: application/admin/GeneralConfig.php:
|
340 |
-
#: application/admin/views/_metabox_autoblog.php:
|
341 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
342 |
msgid "Minimum price"
|
343 |
msgstr ""
|
344 |
|
345 |
-
#: application/admin/GeneralConfig.php:
|
346 |
-
#: application/admin/views/_metabox_autoblog.php:
|
347 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
348 |
msgid "Maximum price"
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: application/admin/GeneralConfig.php:
|
352 |
-
#: application/admin/views/_metabox_autoblog.php:
|
353 |
msgid "Random"
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: application/admin/GeneralConfig.php:
|
357 |
msgid "Manually only"
|
358 |
msgstr ""
|
359 |
|
360 |
-
#: application/admin/GeneralConfig.php:
|
361 |
-
msgid "
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: application/admin/GeneralConfig.php:
|
365 |
-
msgid "
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: application/admin/GeneralConfig.php:
|
369 |
msgid "Global attributes filter"
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: application/admin/GeneralConfig.php:
|
373 |
msgid ""
|
374 |
"How to create wocommerce attributes when synchronizing. Please, read "
|
375 |
"documentation about them in our docs."
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: application/admin/GeneralConfig.php:
|
379 |
msgid "Default filter"
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: application/admin/GeneralConfig.php:
|
383 |
msgid "Whitelist attribute names"
|
384 |
msgstr ""
|
385 |
|
386 |
-
#: application/admin/GeneralConfig.php:
|
387 |
msgid "Blacklist attribute names"
|
388 |
msgstr ""
|
389 |
|
390 |
-
#: application/admin/GeneralConfig.php:
|
391 |
msgid "Attributes list"
|
392 |
msgstr ""
|
393 |
|
394 |
-
#: application/admin/GeneralConfig.php:
|
395 |
msgid ""
|
396 |
"Black / white list of woocommerce global (filterable) attributes. Enter a "
|
397 |
"comma separated list."
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: application/admin/GeneralConfig.php:
|
401 |
msgid "Update date"
|
402 |
msgstr ""
|
403 |
|
404 |
-
#: application/admin/GeneralConfig.php:
|
405 |
msgid "Show price update date for WooCommerce products."
|
406 |
msgstr ""
|
407 |
|
408 |
-
#: application/admin/GeneralConfig.php:
|
409 |
msgid "Amazon only"
|
410 |
msgstr ""
|
411 |
|
412 |
-
#: application/admin/GeneralConfig.php:
|
413 |
msgid "All modules"
|
414 |
msgstr ""
|
415 |
|
416 |
-
#: application/admin/GeneralConfig.php:
|
417 |
msgid "Price per unit"
|
418 |
msgstr ""
|
419 |
|
420 |
-
#: application/admin/GeneralConfig.php:
|
421 |
msgid "Show price per unit"
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: application/admin/GeneralConfig.php:
|
425 |
msgid "This option is available for Amazon and Ebay modules only."
|
426 |
msgstr ""
|
427 |
|
428 |
-
#: application/admin/GeneralConfig.php:
|
429 |
msgid "Buy button text"
|
430 |
msgstr ""
|
431 |
|
432 |
-
#: application/admin/GeneralConfig.php:
|
433 |
msgid "Overwrite the button text for external products."
|
434 |
msgstr ""
|
435 |
|
436 |
-
#: application/admin/GeneralConfig.php:
|
437 |
-
#: application/admin/GeneralConfig.php:
|
438 |
msgid "You can use tags: %MERCHANT%, %DOMAIN%, %PRICE%, %STOCK_STATUS%."
|
439 |
msgstr ""
|
440 |
|
441 |
-
#: application/admin/GeneralConfig.php:
|
442 |
-
msgid ""
|
443 |
-
"<a target=\"_blank\" href=\"%s\">Qualify</a> your affiliate links to Google."
|
444 |
-
msgstr ""
|
445 |
-
|
446 |
-
#: application/admin/GeneralConfig.php:239
|
447 |
-
#: application/admin/GeneralConfig.php:311
|
448 |
-
#: application/admin/GeneralConfig.php:321
|
449 |
-
#: application/admin/GeneralConfig.php:331
|
450 |
-
#: application/admin/GeneralConfig.php:341
|
451 |
-
#: application/admin/GeneralConfig.php:353
|
452 |
-
#: application/admin/GeneralConfig.php:440
|
453 |
-
msgid "Templates"
|
454 |
-
msgstr ""
|
455 |
-
|
456 |
-
#: application/admin/GeneralConfig.php:242
|
457 |
msgid "Filter bots"
|
458 |
msgstr ""
|
459 |
|
460 |
-
#: application/admin/GeneralConfig.php:
|
461 |
msgid "Bots can't activate parsers."
|
462 |
msgstr ""
|
463 |
|
464 |
-
#: application/admin/GeneralConfig.php:
|
465 |
msgid ""
|
466 |
"Updating price and keyword updating is made with page opening. If we "
|
467 |
"determine update by useragent, and page is opened by one of known bots, no "
|
468 |
"parsers will work in this case."
|
469 |
msgstr ""
|
470 |
|
471 |
-
#: application/admin/GeneralConfig.php:
|
472 |
-
#: application/admin/GeneralConfig.php:
|
473 |
msgid "Price history"
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: application/admin/GeneralConfig.php:
|
477 |
msgid "How long save price history. 0 - deactivate price history."
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: application/admin/GeneralConfig.php:
|
481 |
#: application/modules/Kelkoo/KelkooConfig.php:257
|
482 |
msgid "The field \"%s\" can't be more than %d."
|
483 |
msgstr ""
|
484 |
|
485 |
-
#: application/admin/GeneralConfig.php:
|
486 |
-
#: application/admin/GeneralConfig.php:
|
487 |
-
#: application/admin/GeneralConfig.php:
|
488 |
-
#: application/admin/GeneralConfig.php:
|
489 |
-
#: application/admin/GeneralConfig.php:
|
|
|
|
|
|
|
|
|
490 |
msgid "Price alerts"
|
491 |
msgstr ""
|
492 |
|
493 |
-
#: application/admin/GeneralConfig.php:
|
494 |
msgid "Price drops period"
|
495 |
msgstr ""
|
496 |
|
497 |
-
#: application/admin/GeneralConfig.php:
|
498 |
msgid "Used for Price Movers widget."
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: application/admin/GeneralConfig.php:
|
502 |
msgid "The last 1 day"
|
503 |
msgstr ""
|
504 |
|
505 |
-
#: application/admin/GeneralConfig.php:
|
506 |
-
#: application/admin/GeneralConfig.php:
|
507 |
-
#: application/admin/GeneralConfig.php:
|
508 |
-
#: application/admin/GeneralConfig.php:
|
509 |
-
#: application/admin/GeneralConfig.php:
|
510 |
-
#: application/admin/GeneralConfig.php:
|
511 |
-
#: application/admin/GeneralConfig.php:
|
512 |
-
#: application/admin/GeneralConfig.php:
|
513 |
-
#: application/admin/GeneralConfig.php:
|
514 |
-
#: application/admin/GeneralConfig.php:
|
515 |
-
#: application/admin/GeneralConfig.php:
|
516 |
msgid "The last %d days"
|
517 |
msgstr ""
|
518 |
|
519 |
-
#: application/admin/GeneralConfig.php:
|
520 |
msgid "Allow visitors to subscribe for price drop alert on email."
|
521 |
msgstr ""
|
522 |
|
523 |
-
#: application/admin/GeneralConfig.php:
|
524 |
msgid "Active subscriptions now: <b>%d</b>"
|
525 |
msgstr ""
|
526 |
|
527 |
-
#: application/admin/GeneralConfig.php:
|
528 |
msgid "Messages are sent for last %d days: <b>%d</b>"
|
529 |
msgstr ""
|
530 |
|
531 |
-
#: application/admin/GeneralConfig.php:
|
532 |
msgid "Export: [ <a href=\"%s\">All</a> | <a href=\"%s\">Active</a> ]"
|
533 |
msgstr ""
|
534 |
|
535 |
-
#: application/admin/GeneralConfig.php:
|
536 |
msgid "\"Price history\" option must be enabled."
|
537 |
msgstr ""
|
538 |
|
539 |
-
#: application/admin/GeneralConfig.php:
|
540 |
msgid ""
|
541 |
"Recommendation: Go to Settings - Privacy and select Privacy Policy page."
|
542 |
msgstr ""
|
543 |
|
544 |
-
#: application/admin/GeneralConfig.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
545 |
msgid "Button color"
|
546 |
msgstr ""
|
547 |
|
548 |
-
#: application/admin/GeneralConfig.php:
|
549 |
msgid "Button color for default templates."
|
550 |
msgstr ""
|
551 |
|
552 |
-
#: application/admin/GeneralConfig.php:
|
553 |
msgid "Price color"
|
554 |
msgstr ""
|
555 |
|
556 |
-
#: application/admin/GeneralConfig.php:
|
557 |
msgid "Price color for default templates."
|
558 |
msgstr ""
|
559 |
|
560 |
-
#: application/admin/GeneralConfig.php:
|
561 |
msgid "Buy now button text"
|
562 |
msgstr ""
|
563 |
|
564 |
-
#: application/admin/GeneralConfig.php:
|
565 |
-
#: application/admin/GeneralConfig.php:
|
566 |
msgid "It will be used instead of \"%s\"."
|
567 |
msgstr ""
|
568 |
|
569 |
-
#: application/admin/GeneralConfig.php:
|
570 |
msgid "Coupon button text"
|
571 |
msgstr ""
|
572 |
|
573 |
-
#: application/admin/GeneralConfig.php:
|
574 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:200
|
575 |
msgid "Stock status"
|
576 |
msgstr ""
|
577 |
|
578 |
-
#: application/admin/GeneralConfig.php:
|
579 |
msgid "Show stock status"
|
580 |
msgstr ""
|
581 |
|
582 |
-
#: application/admin/GeneralConfig.php:
|
583 |
msgid "Hide stock status"
|
584 |
msgstr ""
|
585 |
|
586 |
-
#: application/admin/GeneralConfig.php:
|
587 |
msgid "Show OutOfStock status only"
|
588 |
msgstr ""
|
589 |
|
590 |
-
#: application/admin/GeneralConfig.php:
|
591 |
msgid "Show InStock status only"
|
592 |
msgstr ""
|
593 |
|
594 |
-
#: application/admin/GeneralConfig.php:
|
595 |
-
#: application/admin/GeneralConfig.php:
|
596 |
msgid "Redirect prefix"
|
597 |
msgstr ""
|
598 |
|
599 |
-
#: application/admin/GeneralConfig.php:
|
600 |
msgid "Custom prefix for local redirect links."
|
601 |
msgstr ""
|
602 |
|
603 |
-
#: application/admin/GeneralConfig.php:
|
604 |
msgid "The field \"%s\" can contain only Latin letters and digits."
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: application/admin/GeneralConfig.php:
|
608 |
msgid "Out of Stock products"
|
609 |
msgstr ""
|
610 |
|
611 |
-
#: application/admin/GeneralConfig.php:
|
612 |
msgid "How to deal with Out of Stock products."
|
613 |
msgstr ""
|
614 |
|
615 |
-
#: application/admin/GeneralConfig.php:
|
616 |
msgid "Do nothing"
|
617 |
msgstr ""
|
618 |
|
619 |
-
#: application/admin/GeneralConfig.php:
|
620 |
msgid "Hide price"
|
621 |
msgstr ""
|
622 |
|
623 |
-
#: application/admin/GeneralConfig.php:
|
624 |
msgid "Hide product"
|
625 |
msgstr ""
|
626 |
|
627 |
-
#: application/admin/GeneralConfig.php:
|
628 |
-
msgid "From Name"
|
629 |
-
msgstr ""
|
630 |
-
|
631 |
-
#: application/admin/GeneralConfig.php:385
|
632 |
-
msgid ""
|
633 |
-
"This name will appear in the From Name column of emails sent from CE plugin."
|
634 |
-
msgstr ""
|
635 |
-
|
636 |
-
#: application/admin/GeneralConfig.php:395
|
637 |
-
msgid "From Email"
|
638 |
-
msgstr ""
|
639 |
-
|
640 |
-
#: application/admin/GeneralConfig.php:396
|
641 |
-
msgid "Customize the From Email address."
|
642 |
-
msgstr ""
|
643 |
-
|
644 |
-
#: application/admin/GeneralConfig.php:396
|
645 |
-
msgid ""
|
646 |
-
"To avoid your email being marked as spam, it is recommended your \"from\" "
|
647 |
-
"match your website."
|
648 |
-
msgstr ""
|
649 |
-
|
650 |
-
#: application/admin/GeneralConfig.php:410
|
651 |
msgid "Search modules"
|
652 |
msgstr ""
|
653 |
|
654 |
-
#: application/admin/GeneralConfig.php:
|
655 |
msgid "Select modules to search on frontend."
|
656 |
msgstr ""
|
657 |
|
658 |
-
#: application/admin/GeneralConfig.php:
|
659 |
msgid "Do not select more than 1-2 modules."
|
660 |
msgstr ""
|
661 |
|
662 |
-
#: application/admin/GeneralConfig.php:
|
663 |
msgid ""
|
664 |
"Please note, AE modules work slowly and are not recommended for use as "
|
665 |
"search modules."
|
666 |
msgstr ""
|
667 |
|
668 |
-
#: application/admin/GeneralConfig.php:
|
669 |
msgid ""
|
670 |
"Do not forget to add search widget or shorcode [content-egg-search-form]."
|
671 |
msgstr ""
|
672 |
|
673 |
-
#: application/admin/GeneralConfig.php:
|
674 |
-
#: application/admin/GeneralConfig.php:
|
675 |
msgid "Frontend search"
|
676 |
msgstr ""
|
677 |
|
678 |
-
#: application/admin/GeneralConfig.php:
|
679 |
msgid "Search page template"
|
680 |
msgstr ""
|
681 |
|
682 |
-
#: application/admin/GeneralConfig.php:
|
683 |
msgid "Template for body of search page."
|
684 |
msgstr ""
|
685 |
|
686 |
-
#: application/admin/GeneralConfig.php:
|
687 |
msgid ""
|
688 |
"You can use shortcodes, for example: [content-egg module=Amazon "
|
689 |
"template=grid]"
|
690 |
msgstr ""
|
691 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
692 |
#: application/admin/ImportExportController.php:28
|
693 |
msgid "Import/Export"
|
694 |
msgstr ""
|
@@ -705,48 +794,44 @@ msgstr ""
|
|
705 |
msgid "Invalid format."
|
706 |
msgstr ""
|
707 |
|
708 |
-
#: application/admin/LicConfig.php:
|
709 |
#: application/admin/views/lic_settings.php:4
|
710 |
#: application/modules/BingImages/BingImagesConfig.php:88
|
711 |
msgid "License"
|
712 |
msgstr ""
|
713 |
|
714 |
-
#: application/admin/LicConfig.php:
|
715 |
msgid "License key"
|
716 |
msgstr ""
|
717 |
|
718 |
-
#: application/admin/LicConfig.php:
|
719 |
-
msgid ""
|
720 |
-
"Here you must enter a valid license key. You can find key in your <a href="
|
721 |
-
"\"http://www.keywordrush.com/en/panel\">user panel</a>. If you don't have a "
|
722 |
-
"key you can buy it on <a href=\"http://www.keywordrush.com/en/contentegg"
|
723 |
-
"\">the official website</a> of the plugin."
|
724 |
msgstr ""
|
725 |
|
726 |
-
#: application/admin/LicConfig.php:
|
727 |
msgid "The \"License key\" can not be empty"
|
728 |
msgstr ""
|
729 |
|
730 |
-
#: application/admin/LicConfig.php:
|
731 |
msgid "Invalid license key"
|
732 |
msgstr ""
|
733 |
|
734 |
-
#: application/admin/LicConfig.php:
|
735 |
msgid "License key is not accepted. Make sure that you use actual key."
|
736 |
msgstr ""
|
737 |
|
738 |
-
#: application/admin/LicConfig.php:
|
739 |
msgid ""
|
740 |
"If you have correct key, but it's not accepted, this means that your server "
|
741 |
"blocks external connections or there is any other reason that your server "
|
742 |
"doesn't allow to connect to keywordrush.com site."
|
743 |
msgstr ""
|
744 |
|
745 |
-
#: application/admin/LicConfig.php:
|
746 |
msgid "Please, write about this to your hosting provider."
|
747 |
msgstr ""
|
748 |
|
749 |
-
#: application/admin/LicConfig.php:
|
750 |
msgid ""
|
751 |
"If you need our help, write to <a href=\"http://www.keywordrush.com/en/"
|
752 |
"contact\">our support</a>."
|
@@ -760,12 +845,12 @@ msgstr ""
|
|
760 |
msgid " ago"
|
761 |
msgstr ""
|
762 |
|
763 |
-
#: application/admin/PluginAdmin.php:
|
764 |
msgid "Are you sure?"
|
765 |
msgstr ""
|
766 |
|
767 |
#: application/admin/PrefillController.php:37
|
768 |
-
#: application/admin/views/prefill.php:
|
769 |
msgid "Future"
|
770 |
msgstr ""
|
771 |
|
@@ -779,7 +864,7 @@ msgid "Data already exist."
|
|
779 |
msgstr ""
|
780 |
|
781 |
#: application/admin/PrefillController.php:132
|
782 |
-
msgid "
|
783 |
msgstr ""
|
784 |
|
785 |
#: application/admin/PrefillController.php:141
|
@@ -841,7 +926,7 @@ msgid "Filter by module"
|
|
841 |
msgstr ""
|
842 |
|
843 |
#: application/admin/ProductTable.php:222
|
844 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
845 |
#: application/modules/BingImages/BingImagesConfig.php:92
|
846 |
#: application/modules/BingImages/BingImagesConfig.php:108
|
847 |
#: application/modules/BingImages/BingImagesConfig.php:121
|
@@ -883,245 +968,223 @@ msgstr ""
|
|
883 |
msgid "Task status"
|
884 |
msgstr ""
|
885 |
|
886 |
-
#: application/admin/views/_metabox_autoblog.php:
|
887 |
-
msgid "
|
888 |
msgstr ""
|
889 |
|
890 |
-
#: application/admin/views/_metabox_autoblog.php:
|
891 |
-
msgid "Work frequency"
|
892 |
-
msgstr ""
|
893 |
-
|
894 |
-
#: application/admin/views/_metabox_autoblog.php:39
|
895 |
msgid "Every hour"
|
896 |
msgstr ""
|
897 |
|
898 |
-
#: application/admin/views/_metabox_autoblog.php:
|
899 |
msgid "5 times in a day"
|
900 |
msgstr ""
|
901 |
|
902 |
-
#: application/admin/views/_metabox_autoblog.php:
|
903 |
msgid "Twice daily"
|
904 |
msgstr ""
|
905 |
|
906 |
-
#: application/admin/views/_metabox_autoblog.php:
|
907 |
msgid "Once a day"
|
908 |
msgstr ""
|
909 |
|
910 |
-
#: application/admin/views/_metabox_autoblog.php:
|
911 |
msgid "Each three days"
|
912 |
msgstr ""
|
913 |
|
914 |
-
#: application/admin/views/_metabox_autoblog.php:
|
915 |
msgid "Once a week"
|
916 |
msgstr ""
|
917 |
|
918 |
-
#: application/admin/views/_metabox_autoblog.php:
|
919 |
msgid "Once in 2 weeks"
|
920 |
msgstr ""
|
921 |
|
922 |
-
#: application/admin/views/_metabox_autoblog.php:
|
923 |
-
msgid "How often autoblogging will run this task"
|
924 |
msgstr ""
|
925 |
|
926 |
-
#: application/admin/views/_metabox_autoblog.php:
|
927 |
-
#: application/admin/views/_metabox_autoblog.php:
|
928 |
#: application/models/AutoblogModel.php:81
|
929 |
msgid "Keywords"
|
930 |
msgstr ""
|
931 |
|
932 |
-
#: application/admin/views/_metabox_autoblog.php:
|
933 |
msgid "Uppercase First Letter for Each Word"
|
934 |
msgstr ""
|
935 |
|
936 |
-
#: application/admin/views/_metabox_autoblog.php:
|
937 |
msgid "Uppercase first letter"
|
938 |
msgstr ""
|
939 |
|
940 |
-
#: application/admin/views/_metabox_autoblog.php:
|
941 |
msgid "Sort with alpha order"
|
942 |
msgstr ""
|
943 |
|
944 |
-
#: application/admin/views/_metabox_autoblog.php:
|
945 |
msgid "All words are inactive"
|
946 |
msgstr ""
|
947 |
|
948 |
-
#: application/admin/views/_metabox_autoblog.php:
|
949 |
msgid "All words are active"
|
950 |
msgstr ""
|
951 |
|
952 |
-
#: application/admin/views/_metabox_autoblog.php:
|
953 |
msgid "Clear list"
|
954 |
msgstr ""
|
955 |
|
956 |
-
#: application/admin/views/_metabox_autoblog.php:
|
957 |
msgid "Total"
|
958 |
msgstr ""
|
959 |
|
960 |
-
#: application/admin/views/_metabox_autoblog.php:
|
961 |
msgid "Hints"
|
962 |
msgstr ""
|
963 |
|
964 |
-
#: application/admin/views/_metabox_autoblog.php:
|
965 |
msgid "Yandex"
|
966 |
msgstr ""
|
967 |
|
968 |
-
#: application/admin/views/_metabox_autoblog.php:
|
969 |
msgid "Yandex.Market"
|
970 |
msgstr ""
|
971 |
|
972 |
-
#: application/admin/views/_metabox_autoblog.php:
|
973 |
msgid "Start enter keyword"
|
974 |
msgstr ""
|
975 |
|
976 |
-
#: application/admin/views/_metabox_autoblog.php:
|
977 |
msgid "Each keyword from separate line."
|
978 |
msgstr ""
|
979 |
|
980 |
-
#: application/admin/views/_metabox_autoblog.php:
|
981 |
msgid "One keyword is one post."
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: application/admin/views/_metabox_autoblog.php:
|
985 |
msgid "Handled keywords are marked by [brackets]."
|
986 |
msgstr ""
|
987 |
|
988 |
-
#: application/admin/views/_metabox_autoblog.php:
|
989 |
msgid "When all keywords will be processed, task will stop."
|
990 |
msgstr ""
|
991 |
|
992 |
-
#: application/admin/views/_metabox_autoblog.php:
|
993 |
-
#: application/admin/views/_metabox_autoblog.php:
|
994 |
msgid "You can also use separate keywords for some modules:"
|
995 |
msgstr ""
|
996 |
|
997 |
-
#: application/admin/views/_metabox_autoblog.php:
|
998 |
msgid "Two format are supported: "
|
999 |
msgstr ""
|
1000 |
|
1001 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1002 |
msgid "CSV files in format:"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1006 |
msgid "Divider - \";\""
|
1007 |
msgstr ""
|
1008 |
|
1009 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1010 |
msgid "For each category will be created separate task for autoblog."
|
1011 |
msgstr ""
|
1012 |
|
1013 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1014 |
msgid "TXT files:"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1018 |
msgid "Simple text file with list of keywords (each word from separate line)."
|
1019 |
msgstr ""
|
1020 |
|
1021 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1022 |
msgid "File must be in UTF-8"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1026 |
-
msgid "
|
1027 |
msgstr ""
|
1028 |
|
1029 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1030 |
-
msgid ""
|
1031 |
-
"How many keywords to process at once. We don't recommend to use more than 5 "
|
1032 |
-
"keywords."
|
1033 |
msgstr ""
|
1034 |
|
1035 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1036 |
-
msgid "
|
1037 |
msgstr ""
|
1038 |
|
1039 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1040 |
-
msgid "Template for title of post"
|
1041 |
-
msgstr ""
|
1042 |
-
|
1043 |
-
#: application/admin/views/_metabox_autoblog.php:210
|
1044 |
msgid "Use tags:"
|
1045 |
msgstr ""
|
1046 |
|
1047 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1048 |
msgid "For display data of plugin use special tags, for example:"
|
1049 |
msgstr ""
|
1050 |
|
1051 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1052 |
msgid "You also can set index number for access to data of plugin"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1056 |
msgid ""
|
1057 |
"You can use \"formulas\" with synonyms, of which one will be selected with a "
|
1058 |
"random option, for example, {Discount|Sale|Cheap}."
|
1059 |
msgstr ""
|
1060 |
|
1061 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1062 |
-
msgid "
|
1063 |
msgstr ""
|
1064 |
|
1065 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1066 |
-
msgid "
|
1067 |
msgstr ""
|
1068 |
|
1069 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
#: application/admin/views/_metabox_autoblog.php:229
|
1074 |
-
#: application/admin/views/_metabox_autoblog.php:440
|
1075 |
-
#: application/admin/views/_metabox_autoblog.php:482
|
1076 |
msgid ""
|
1077 |
"\"Formulas\", and also all tags from title template, will also work here."
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1081 |
msgid "Only selected modules"
|
1082 |
msgstr ""
|
1083 |
|
1084 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1085 |
msgid "Run only selected modules for this task."
|
1086 |
msgstr ""
|
1087 |
|
1088 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1089 |
msgid "If you don't select any modules, all active modules will be used."
|
1090 |
msgstr ""
|
1091 |
|
1092 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1093 |
msgid "Exclude modules"
|
1094 |
msgstr ""
|
1095 |
|
1096 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1097 |
msgid "Chosen modules will not run in this configuration. "
|
1098 |
msgstr ""
|
1099 |
|
1100 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1101 |
-
#: application/admin/views/prefill.php:
|
1102 |
msgid "Post status"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1106 |
-
#: application/admin/views/prefill.php:
|
1107 |
msgid "Post type"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1111 |
-
msgid "User"
|
1112 |
-
msgstr ""
|
1113 |
-
|
1114 |
-
#: application/admin/views/_metabox_autoblog.php:310
|
1115 |
-
msgid "This user will be author of posts."
|
1116 |
-
msgstr ""
|
1117 |
-
|
1118 |
-
#: application/admin/views/_metabox_autoblog.php:316
|
1119 |
#: application/modules/Aliexpress/AliexpressConfig.php:89
|
1120 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
1121 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:89
|
1122 |
#: application/modules/CjLinks/CjLinksConfig.php:135
|
1123 |
#: application/modules/Clickbank/ClickbankConfig.php:69
|
1124 |
-
#: application/modules/Ebay/EbayConfig.php:
|
1125 |
#: application/modules/Linkshare/LinkshareConfig.php:106
|
1126 |
#: application/modules/Ozon/OzonConfig.php:93
|
1127 |
#: application/modules/Pepperjam/PepperjamConfig.php:97
|
@@ -1131,105 +1194,113 @@ msgstr ""
|
|
1131 |
msgid "Category "
|
1132 |
msgstr ""
|
1133 |
|
1134 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1135 |
msgid "Create Automatically"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1139 |
-
msgid "Default category
|
1140 |
msgstr ""
|
1141 |
|
1142 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1143 |
msgid ""
|
1144 |
"\"Create Automatically\" means, that categories will be created based on "
|
1145 |
"data of CSV file with keywords and categories."
|
1146 |
msgstr ""
|
1147 |
|
1148 |
-
#: application/admin/views/_metabox_autoblog.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1149 |
msgid "Dynamic categories"
|
1150 |
msgstr ""
|
1151 |
|
1152 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1153 |
msgid "Do not create"
|
1154 |
msgstr ""
|
1155 |
|
1156 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1157 |
msgid "Create category"
|
1158 |
msgstr ""
|
1159 |
|
1160 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1161 |
msgid "Create nested categories"
|
1162 |
msgstr ""
|
1163 |
|
1164 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1165 |
msgid ""
|
1166 |
"Create a category automatically, if the main product has a category data."
|
1167 |
msgstr ""
|
1168 |
|
1169 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1170 |
msgid "Minimum modules required"
|
1171 |
msgstr ""
|
1172 |
|
1173 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1174 |
msgid "Post will not be published if no content for such number of modules."
|
1175 |
msgstr ""
|
1176 |
|
1177 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1178 |
msgid "Minimum reviews required"
|
1179 |
msgstr ""
|
1180 |
|
1181 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1182 |
msgid ""
|
1183 |
"Post will not be published if there are no user reviews. This option works "
|
1184 |
"only for AE modules."
|
1185 |
msgstr ""
|
1186 |
|
1187 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1188 |
#: application/components/AffiliateParserModuleConfig.php:20
|
1189 |
msgid "Update by keyword"
|
1190 |
msgstr ""
|
1191 |
|
1192 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1193 |
msgid ""
|
1194 |
"For selected modules, the current keyword will be used as a keyword for "
|
1195 |
"autoupdate. Data of the module will be updated periodically In accordance "
|
1196 |
"with the configuration of the lifetime of the cache."
|
1197 |
msgstr ""
|
1198 |
|
1199 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1200 |
msgid "Required modules"
|
1201 |
msgstr ""
|
1202 |
|
1203 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1204 |
msgid "Post will not be publicized if no results for these modules."
|
1205 |
msgstr ""
|
1206 |
|
1207 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1208 |
msgid "Main product"
|
1209 |
msgstr ""
|
1210 |
|
1211 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1212 |
msgid "How to choose \"main\" product?"
|
1213 |
msgstr ""
|
1214 |
|
1215 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1216 |
msgid "Then you can use tags:"
|
1217 |
msgstr ""
|
1218 |
|
1219 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1220 |
msgid "Tags"
|
1221 |
msgstr ""
|
1222 |
|
1223 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1224 |
msgid "Comma separated list of tags."
|
1225 |
msgstr ""
|
1226 |
|
1227 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1228 |
-
#: application/modules/Ebay/EbayConfig.php:
|
1229 |
msgid "Product condition"
|
1230 |
msgstr ""
|
1231 |
|
1232 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1233 |
#: application/modules/Amazon/AmazonConfig.php:208
|
1234 |
#: application/modules/Amazon/AmazonConfig.php:233
|
1235 |
#: application/modules/Amazon/AmazonConfig.php:294
|
@@ -1250,51 +1321,51 @@ msgstr ""
|
|
1250 |
msgid "Any"
|
1251 |
msgstr ""
|
1252 |
|
1253 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1254 |
#: application/admin/views/module_index.php:16
|
1255 |
#: application/modules/Amazon/AmazonConfig.php:234
|
1256 |
#: application/modules/Twitter/TwitterConfig.php:118
|
1257 |
#: application/modules/Twitter/views/search_panel.php:3
|
1258 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
1259 |
msgid "New"
|
1260 |
msgstr ""
|
1261 |
|
1262 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1263 |
#: application/modules/Amazon/AmazonConfig.php:235
|
1264 |
msgid "Used"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1268 |
#: application/modules/Amazon/AmazonConfig.php:237
|
1269 |
msgid "Refurbished"
|
1270 |
msgstr ""
|
1271 |
|
1272 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1273 |
msgid "Open box, no signs (Ebay only)"
|
1274 |
msgstr ""
|
1275 |
|
1276 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1277 |
msgid "Seller refurbished (Ebay only)"
|
1278 |
msgstr ""
|
1279 |
|
1280 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1281 |
msgid "For parts or not working (Ebay only)"
|
1282 |
msgstr ""
|
1283 |
|
1284 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1285 |
msgid "This parameter is supported only by the following modules: Amazon, Ebay"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1289 |
-
#: application/admin/views/prefill.php:
|
1290 |
msgid "Add custom fields"
|
1291 |
msgstr ""
|
1292 |
|
1293 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1294 |
msgid "Custom Field"
|
1295 |
msgstr ""
|
1296 |
|
1297 |
-
#: application/admin/views/_metabox_autoblog.php:
|
1298 |
msgid "Value"
|
1299 |
msgstr ""
|
1300 |
|
@@ -1308,12 +1379,14 @@ msgid "Domain"
|
|
1308 |
msgstr ""
|
1309 |
|
1310 |
#: application/admin/views/_metabox_results.php:33
|
|
|
1311 |
#: application/models/ProductModel.php:64
|
1312 |
#: application/modules/GdeSlon/GdeSlonConfig.php:84
|
1313 |
#: application/modules/LomadeeProducts/LomadeeProductsConfig.php:90
|
1314 |
#: application/modules/Offer/views/metabox_module.php:91
|
1315 |
#: application/modules/Udemy/UdemyConfig.php:155
|
1316 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
|
|
1317 |
msgid "Price"
|
1318 |
msgstr ""
|
1319 |
|
@@ -1343,7 +1416,7 @@ msgid "Product group"
|
|
1343 |
msgstr ""
|
1344 |
|
1345 |
#: application/admin/views/_metabox_results.php:77
|
1346 |
-
#: application/admin/views/_promo_box.php:
|
1347 |
#: application/modules/Coupon/views/metabox_module.php:111
|
1348 |
#: application/modules/Offer/views/metabox_module.php:124
|
1349 |
msgid "Go to "
|
@@ -1354,7 +1427,7 @@ msgstr ""
|
|
1354 |
msgid "Last updated:"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
-
#: application/admin/views/_metabox_results.php:
|
1358 |
#: application/modules/Coupon/views/metabox_module.php:112
|
1359 |
#: application/modules/Offer/views/metabox_module.php:136
|
1360 |
msgid "Remove"
|
@@ -1369,26 +1442,18 @@ msgstr ""
|
|
1369 |
msgid "Coupon code:"
|
1370 |
msgstr ""
|
1371 |
|
1372 |
-
#: application/admin/views/_promo_box.php:
|
1373 |
-
msgid "Maximum profit with minimum efforts"
|
1374 |
-
msgstr ""
|
1375 |
-
|
1376 |
-
#: application/admin/views/_promo_box.php:18
|
1377 |
-
msgid "Many additional modules and extended functions."
|
1378 |
-
msgstr ""
|
1379 |
-
|
1380 |
-
#: application/admin/views/_promo_box.php:39
|
1381 |
msgid "Activate plugin"
|
1382 |
msgstr ""
|
1383 |
|
1384 |
-
#: application/admin/views/_promo_box.php:
|
1385 |
#: application/admin/views/envato_activation.php:5
|
1386 |
msgid ""
|
1387 |
"In order to receive all benefits of Contennt Egg, you need to activate your "
|
1388 |
"copy of the plugin."
|
1389 |
msgstr ""
|
1390 |
|
1391 |
-
#: application/admin/views/_promo_box.php:
|
1392 |
#: application/admin/views/envato_activation.php:6
|
1393 |
msgid ""
|
1394 |
"By activating Contennt Egg license you will unlock premium options - direct "
|
@@ -1409,7 +1474,7 @@ msgstr ""
|
|
1409 |
|
1410 |
#: application/admin/views/ae_integration.php:15
|
1411 |
msgid ""
|
1412 |
-
"Here
|
1413 |
"\">full list</a> of Affiliate Egg supported shops."
|
1414 |
msgstr ""
|
1415 |
|
@@ -1452,15 +1517,15 @@ msgstr ""
|
|
1452 |
msgid "Working... Please wait..."
|
1453 |
msgstr ""
|
1454 |
|
1455 |
-
#: application/admin/views/autoblog_index.php:
|
1456 |
msgid "Deleted tasks for autoblogging: "
|
1457 |
msgstr ""
|
1458 |
|
1459 |
-
#: application/admin/views/autoblog_index.php:
|
1460 |
msgid "Autoblogging finished tasks"
|
1461 |
msgstr ""
|
1462 |
|
1463 |
-
#: application/admin/views/autoblog_index.php:
|
1464 |
msgid "You can create automatic creating of posts with autoblogging"
|
1465 |
msgstr ""
|
1466 |
|
@@ -1494,23 +1559,23 @@ msgstr ""
|
|
1494 |
msgid "Import"
|
1495 |
msgstr ""
|
1496 |
|
1497 |
-
#: application/admin/views/lic_settings.php:
|
1498 |
-
msgid "
|
1499 |
msgstr ""
|
1500 |
|
1501 |
-
#: application/admin/views/lic_settings.php:
|
1502 |
-
#: application/admin/views/lic_settings.php:
|
1503 |
msgid "Deactivate license"
|
1504 |
msgstr ""
|
1505 |
|
1506 |
-
#: application/admin/views/lic_settings.php:
|
1507 |
-
msgid "You can transfer your license to
|
1508 |
msgstr ""
|
1509 |
|
1510 |
-
#: application/admin/views/lic_settings.php:
|
1511 |
msgid ""
|
1512 |
"After deactivating license, you must deactivate and delete Content Egg from "
|
1513 |
-
"current domain
|
1514 |
msgstr ""
|
1515 |
|
1516 |
#: application/admin/views/metabox_general.php:9
|
@@ -1603,95 +1668,115 @@ msgstr ""
|
|
1603 |
msgid "Deprecated"
|
1604 |
msgstr ""
|
1605 |
|
1606 |
-
#: application/admin/views/module_index.php:
|
1607 |
-
#: application/admin/views/module_settings.php:
|
1608 |
msgid "Module Settings"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
-
#: application/admin/views/module_index.php:
|
1612 |
msgid "Product modules"
|
1613 |
msgstr ""
|
1614 |
|
1615 |
-
#: application/admin/views/module_index.php:
|
1616 |
msgid "Affiliate Egg modules"
|
1617 |
msgstr ""
|
1618 |
|
1619 |
-
#: application/admin/views/module_index.php:
|
|
|
|
|
|
|
|
|
1620 |
msgid "Coupon modules"
|
1621 |
msgstr ""
|
1622 |
|
1623 |
-
#: application/admin/views/module_index.php:
|
1624 |
msgid "Content modules"
|
1625 |
msgstr ""
|
1626 |
|
1627 |
-
#: application/admin/views/module_settings.php:
|
|
|
|
|
|
|
|
|
1628 |
msgid "%s Settings"
|
1629 |
msgstr ""
|
1630 |
|
1631 |
-
#: application/admin/views/module_settings.php:
|
1632 |
-
msgid "
|
1633 |
msgstr ""
|
1634 |
|
1635 |
-
#: application/admin/views/module_settings.php:
|
1636 |
-
#: application/admin/views/module_settings.php:
|
1637 |
-
#: application/admin/views/module_settings.php:
|
1638 |
msgid "WARNING:"
|
1639 |
msgstr ""
|
1640 |
|
1641 |
-
#: application/admin/views/module_settings.php:
|
1642 |
msgid "Amazon PA-API v4 <a target=\"_blank\" href=\"%s\"> is deprecated</a>."
|
1643 |
msgstr ""
|
1644 |
|
1645 |
-
#: application/admin/views/module_settings.php:
|
1646 |
msgid ""
|
1647 |
"Only <a target=\"_blank\" href=\"%s\">Content Egg Pro</a> has support for "
|
1648 |
"the new PA-API v5."
|
1649 |
msgstr ""
|
1650 |
|
1651 |
-
#: application/admin/views/module_settings.php:
|
1652 |
msgid "Please"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
-
#: application/admin/views/module_settings.php:
|
1656 |
msgid "read more..."
|
1657 |
msgstr ""
|
1658 |
|
1659 |
-
#: application/admin/views/module_settings.php:
|
1660 |
msgid "This module is deprecated"
|
1661 |
msgstr ""
|
1662 |
|
1663 |
-
#: application/admin/views/module_settings.php:
|
1664 |
msgid "what does this mean"
|
1665 |
msgstr ""
|
1666 |
|
1667 |
-
#: application/admin/views/module_settings.php:
|
1668 |
msgid "This module cannot be activated!"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
-
#: application/admin/views/module_settings.php:
|
1672 |
msgid "Please fix the following error(s):"
|
1673 |
msgstr ""
|
1674 |
|
1675 |
-
#: application/admin/views/module_settings.php:
|
1676 |
msgid "Last feed import: %s."
|
1677 |
msgstr ""
|
1678 |
|
1679 |
-
#: application/admin/views/module_settings.php:
|
1680 |
msgid "Total products: %d."
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: application/admin/views/module_settings.php:
|
1684 |
msgid "Your unzipped feed must be smaller than this."
|
1685 |
msgstr ""
|
1686 |
|
1687 |
-
#: application/admin/views/module_settings.php:
|
1688 |
msgid "WordPress memory limit: %s"
|
1689 |
msgstr ""
|
1690 |
|
1691 |
-
#: application/admin/views/module_settings.php:
|
1692 |
msgid "Last error: %s"
|
1693 |
msgstr ""
|
1694 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1695 |
#: application/admin/views/prefill.php:15
|
1696 |
msgid "This extension will fill module's data for all existed posts."
|
1697 |
msgstr ""
|
@@ -1704,102 +1789,106 @@ msgstr ""
|
|
1704 |
msgid "Delay"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
-
#: application/admin/views/prefill.php:
|
1708 |
msgid "Delay in seconds between each post prefill."
|
1709 |
msgstr ""
|
1710 |
|
1711 |
-
#: application/admin/views/prefill.php:
|
1712 |
msgid "Add data for module"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
-
#: application/admin/views/prefill.php:
|
1716 |
msgid "Keyword source"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
-
#: application/admin/views/prefill.php:
|
1720 |
-
msgid "
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: application/admin/views/prefill.php:
|
1724 |
-
msgid "
|
1725 |
msgstr ""
|
1726 |
|
1727 |
-
#: application/admin/views/prefill.php:
|
1728 |
msgid "Post tags"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
-
#: application/admin/views/prefill.php:
|
1732 |
msgid "Arbitrary custom field"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
-
#: application/admin/views/prefill.php:
|
1736 |
-
msgid "
|
1737 |
msgstr ""
|
1738 |
|
1739 |
-
#: application/admin/views/prefill.php:
|
1740 |
-
msgid "
|
1741 |
msgstr ""
|
1742 |
|
1743 |
#: application/admin/views/prefill.php:68
|
|
|
|
|
|
|
|
|
1744 |
msgid "Autoupdate"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
-
#: application/admin/views/prefill.php:
|
1748 |
msgid "Add Keyword for the automatic update"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: application/admin/views/prefill.php:
|
1752 |
msgid "Only for those modules, which have autoupdate function."
|
1753 |
msgstr ""
|
1754 |
|
1755 |
-
#: application/admin/views/prefill.php:
|
1756 |
msgid "Number of words"
|
1757 |
msgstr ""
|
1758 |
|
1759 |
-
#: application/admin/views/prefill.php:
|
1760 |
msgid "Maximum words for one search query."
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: application/admin/views/prefill.php:
|
1764 |
msgid "\"Minus\" words"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
-
#: application/admin/views/prefill.php:
|
1768 |
msgid ""
|
1769 |
"Remove these words from keyword. You can set several minus words/phrases "
|
1770 |
"with commas."
|
1771 |
msgstr ""
|
1772 |
|
1773 |
-
#: application/admin/views/prefill.php:
|
1774 |
msgid "You can set all supported post types in General settings -> Post Types."
|
1775 |
msgstr ""
|
1776 |
|
1777 |
-
#: application/admin/views/prefill.php:
|
1778 |
msgid "Custom Field %d"
|
1779 |
msgstr ""
|
1780 |
|
1781 |
-
#: application/admin/views/prefill.php:
|
1782 |
msgid "Value %d"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
-
#: application/admin/views/prefill.php:
|
1786 |
msgid "You can use tags: %s."
|
1787 |
msgstr ""
|
1788 |
|
1789 |
-
#: application/admin/views/prefill.php:
|
1790 |
#: application/models/AutoblogModel.php:79
|
1791 |
msgid "Total posts"
|
1792 |
msgstr ""
|
1793 |
|
1794 |
-
#: application/admin/views/prefill.php:
|
1795 |
msgid "Start"
|
1796 |
msgstr ""
|
1797 |
|
1798 |
-
#: application/admin/views/prefill.php:
|
1799 |
-
msgid "
|
1800 |
msgstr ""
|
1801 |
|
1802 |
-
#: application/admin/views/prefill.php:
|
1803 |
msgid "Stop"
|
1804 |
msgstr ""
|
1805 |
|
@@ -1823,11 +1912,11 @@ msgstr ""
|
|
1823 |
msgid "Content Egg Settings"
|
1824 |
msgstr ""
|
1825 |
|
1826 |
-
#: application/components/AffiliateFeedParserModule.php:
|
1827 |
-
msgid "Product import is in progress
|
1828 |
msgstr ""
|
1829 |
|
1830 |
-
#: application/components/AffiliateFeedParserModule.php:
|
1831 |
msgid ""
|
1832 |
"Your data feed is too large and cannot be imported. Use a smaller feed or "
|
1833 |
"increase <a target=\"_blank\" href=\"%s\">WP_MAX_MEMORY_LIMIT</a>."
|
@@ -1855,7 +1944,7 @@ msgstr ""
|
|
1855 |
#: application/modules/CjProducts/CjProductsConfig.php:64
|
1856 |
#: application/modules/Clickbank/ClickbankConfig.php:37
|
1857 |
#: application/modules/Daisycon/DaisyconConfig.php:64
|
1858 |
-
#: application/modules/Ebay/EbayConfig.php:
|
1859 |
#: application/modules/Envato/EnvatoConfig.php:58
|
1860 |
#: application/modules/Flickr/FlickrConfig.php:37
|
1861 |
#: application/modules/Flipkart/FlipkartConfig.php:72
|
@@ -1888,13 +1977,13 @@ msgstr ""
|
|
1888 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:85
|
1889 |
#: application/modules/TradedoublerCoupons/TradedoublerCouponsConfig.php:37
|
1890 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:37
|
1891 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
1892 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:106
|
1893 |
#: application/modules/Twitter/TwitterConfig.php:82
|
1894 |
#: application/modules/Udemy/UdemyConfig.php:66
|
1895 |
#: application/modules/Viglink/ViglinkConfig.php:52
|
1896 |
#: application/modules/VkNews/VkNewsConfig.php:22
|
1897 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
1898 |
#: application/modules/Youtube/YoutubeConfig.php:37
|
1899 |
#: application/modules/Zanox/ZanoxConfig.php:47
|
1900 |
msgid "Results"
|
@@ -1919,7 +2008,7 @@ msgstr ""
|
|
1919 |
#: application/modules/CjProducts/CjProductsConfig.php:65
|
1920 |
#: application/modules/Clickbank/ClickbankConfig.php:38
|
1921 |
#: application/modules/Daisycon/DaisyconConfig.php:65
|
1922 |
-
#: application/modules/Ebay/EbayConfig.php:
|
1923 |
#: application/modules/Envato/EnvatoConfig.php:59
|
1924 |
#: application/modules/Flipkart/FlipkartConfig.php:73
|
1925 |
#: application/modules/GdeSlon/GdeSlonConfig.php:48
|
@@ -1937,11 +2026,11 @@ msgstr ""
|
|
1937 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:86
|
1938 |
#: application/modules/TradedoublerCoupons/TradedoublerCouponsConfig.php:38
|
1939 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:38
|
1940 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
1941 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:107
|
1942 |
#: application/modules/Udemy/UdemyConfig.php:67
|
1943 |
#: application/modules/Viglink/ViglinkConfig.php:53
|
1944 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
1945 |
#: application/modules/Zanox/ZanoxConfig.php:48
|
1946 |
msgid "Number of results for one search query."
|
1947 |
msgstr ""
|
@@ -1983,8 +2072,8 @@ msgstr ""
|
|
1983 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:111
|
1984 |
#: application/modules/Udemy/UdemyConfig.php:76
|
1985 |
#: application/modules/Udemy/UdemyConfig.php:91
|
1986 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
1987 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
1988 |
msgid "The field \"%s\" can not be more than %d."
|
1989 |
msgstr ""
|
1990 |
|
@@ -2022,7 +2111,7 @@ msgstr ""
|
|
2022 |
#: application/modules/CjProducts/CjProductsConfig.php:75
|
2023 |
#: application/modules/Clickbank/ClickbankConfig.php:54
|
2024 |
#: application/modules/Daisycon/DaisyconConfig.php:80
|
2025 |
-
#: application/modules/Ebay/EbayConfig.php:
|
2026 |
#: application/modules/Envato/EnvatoConfig.php:74
|
2027 |
#: application/modules/Flipkart/FlipkartConfig.php:89
|
2028 |
#: application/modules/GdeSlon/GdeSlonConfig.php:64
|
@@ -2040,11 +2129,11 @@ msgstr ""
|
|
2040 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:102
|
2041 |
#: application/modules/TradedoublerCoupons/TradedoublerCouponsConfig.php:49
|
2042 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:49
|
2043 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
2044 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:118
|
2045 |
#: application/modules/Udemy/UdemyConfig.php:82
|
2046 |
#: application/modules/Viglink/ViglinkConfig.php:63
|
2047 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
2048 |
#: application/modules/Zanox/ZanoxConfig.php:64
|
2049 |
msgid "Number of results for automatic updates and autoblogging."
|
2050 |
msgstr ""
|
@@ -2070,7 +2159,7 @@ msgstr ""
|
|
2070 |
#: application/modules/Affiliatewindow/AffiliatewindowConfig.php:130
|
2071 |
#: application/modules/AffilinetProducts/AffilinetProductsConfig.php:167
|
2072 |
#: application/modules/Aliexpress/AliexpressConfig.php:260
|
2073 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
2074 |
#: application/modules/Amazon/AmazonConfig.php:303
|
2075 |
#: application/modules/Amazon/AmazonConfig_FREE.php:274
|
2076 |
#: application/modules/AvantlinkProducts/AvantlinkProductsConfig.php:218
|
@@ -2081,7 +2170,7 @@ msgstr ""
|
|
2081 |
#: application/modules/CjProducts/CjProductsConfig.php:113
|
2082 |
#: application/modules/Coupon/CouponConfig.php:22
|
2083 |
#: application/modules/Daisycon/DaisyconConfig.php:101
|
2084 |
-
#: application/modules/Ebay/EbayConfig.php:
|
2085 |
#: application/modules/Envato/EnvatoConfig.php:219
|
2086 |
#: application/modules/Flickr/FlickrConfig.php:106
|
2087 |
#: application/modules/Flipkart/FlipkartConfig.php:104
|
@@ -2105,13 +2194,13 @@ msgstr ""
|
|
2105 |
#: application/modules/QwantImages/QwantImagesConfig.php:64
|
2106 |
#: application/modules/Shareasale/ShareasaleConfig.php:109
|
2107 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:159
|
2108 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
2109 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:182
|
2110 |
#: application/modules/Twitter/TwitterConfig.php:127
|
2111 |
#: application/modules/Udemy/UdemyConfig.php:215
|
2112 |
#: application/modules/Viglink/ViglinkConfig.php:141
|
2113 |
#: application/modules/VkNews/VkNewsConfig.php:44
|
2114 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
2115 |
#: application/modules/Zanox/ZanoxConfig.php:154
|
2116 |
msgid "Save images"
|
2117 |
msgstr ""
|
@@ -2130,7 +2219,7 @@ msgstr ""
|
|
2130 |
#: application/modules/CjProducts/CjProductsConfig.php:114
|
2131 |
#: application/modules/Coupon/CouponConfig.php:23
|
2132 |
#: application/modules/Daisycon/DaisyconConfig.php:102
|
2133 |
-
#: application/modules/Ebay/EbayConfig.php:
|
2134 |
#: application/modules/Envato/EnvatoConfig.php:220
|
2135 |
#: application/modules/Flickr/FlickrConfig.php:107
|
2136 |
#: application/modules/Flipkart/FlipkartConfig.php:105
|
@@ -2153,20 +2242,20 @@ msgstr ""
|
|
2153 |
#: application/modules/QwantImages/QwantImagesConfig.php:65
|
2154 |
#: application/modules/Shareasale/ShareasaleConfig.php:110
|
2155 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:160
|
2156 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
2157 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:183
|
2158 |
#: application/modules/Twitter/TwitterConfig.php:128
|
2159 |
#: application/modules/Udemy/UdemyConfig.php:216
|
2160 |
#: application/modules/Viglink/ViglinkConfig.php:142
|
2161 |
#: application/modules/VkNews/VkNewsConfig.php:45
|
2162 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
2163 |
#: application/modules/Zanox/ZanoxConfig.php:155
|
2164 |
msgid "Save images on server"
|
2165 |
msgstr ""
|
2166 |
|
2167 |
-
#: application/components/AffiliateFeedParserModuleConfig.php:
|
2168 |
#: application/components/AffiliateParserModuleConfig.php:52
|
2169 |
-
msgid "
|
2170 |
msgstr ""
|
2171 |
|
2172 |
#: application/components/AffiliateParserModuleConfig.php:21
|
@@ -2190,17 +2279,93 @@ msgid "Update mode"
|
|
2190 |
msgstr ""
|
2191 |
|
2192 |
#: application/components/AffiliateParserModuleConfig.php:51
|
2193 |
-
msgid "
|
2194 |
msgstr ""
|
2195 |
|
2196 |
#: application/components/AffiliateParserModuleConfig.php:53
|
2197 |
-
msgid "
|
2198 |
msgstr ""
|
2199 |
|
2200 |
#: application/components/ExternalFeaturedImage.php:120
|
2201 |
msgid "External featured image"
|
2202 |
msgstr ""
|
2203 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2204 |
#: application/components/ModuleConfig.php:61
|
2205 |
msgid "settings"
|
2206 |
msgstr ""
|
@@ -2214,13 +2379,11 @@ msgid "Could not activate."
|
|
2214 |
msgstr ""
|
2215 |
|
2216 |
#: application/components/ParserModuleConfig.php:34
|
2217 |
-
msgid "
|
2218 |
msgstr ""
|
2219 |
|
2220 |
-
#: application/components/ParserModuleConfig.php:
|
2221 |
-
msgid ""
|
2222 |
-
"The place for content of module. Shortcodes will work in any place "
|
2223 |
-
"regardless of the setting."
|
2224 |
msgstr ""
|
2225 |
|
2226 |
#: application/components/ParserModuleConfig.php:38
|
@@ -2231,63 +2394,75 @@ msgstr ""
|
|
2231 |
msgid "At the beginning of the post"
|
2232 |
msgstr ""
|
2233 |
|
2234 |
-
#: application/components/ParserModuleConfig.php:
|
2235 |
-
msgid "Shortcodes only"
|
2236 |
-
msgstr ""
|
2237 |
-
|
2238 |
-
#: application/components/ParserModuleConfig.php:46
|
2239 |
msgid "Priority"
|
2240 |
msgstr ""
|
2241 |
|
2242 |
-
#: application/components/ParserModuleConfig.php:
|
2243 |
msgid ""
|
2244 |
"Priority sets order of modules in post. 0 - is the most highest priority."
|
2245 |
msgstr ""
|
2246 |
|
2247 |
-
#: application/components/ParserModuleConfig.php:
|
2248 |
msgid "Also it applied to price sorting."
|
2249 |
msgstr ""
|
2250 |
|
2251 |
-
#: application/components/ParserModuleConfig.php:
|
2252 |
msgid "Default template"
|
2253 |
msgstr ""
|
2254 |
|
2255 |
-
#: application/components/ParserModuleConfig.php:
|
2256 |
msgid "Templates may use title on data output."
|
2257 |
msgstr ""
|
2258 |
|
2259 |
-
#: application/components/ParserModuleConfig.php:
|
2260 |
msgid "Automatically set Featured image for post"
|
2261 |
msgstr ""
|
2262 |
|
2263 |
-
#: application/components/ParserModuleConfig.php:
|
2264 |
msgid "Don't set"
|
2265 |
msgstr ""
|
2266 |
|
2267 |
-
#: application/components/ParserModuleConfig.php:
|
2268 |
msgid "First image"
|
2269 |
msgstr ""
|
2270 |
|
2271 |
-
#: application/components/ParserModuleConfig.php:
|
2272 |
msgid "Second image"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
-
#: application/components/ParserModuleConfig.php:
|
2276 |
msgid "Random image"
|
2277 |
msgstr ""
|
2278 |
|
2279 |
-
#: application/components/ParserModuleConfig.php:
|
2280 |
msgid "Last image"
|
2281 |
msgstr ""
|
2282 |
|
2283 |
-
#: application/components/ParserModuleConfig.php:
|
2284 |
msgid "Redirect"
|
2285 |
msgstr ""
|
2286 |
|
2287 |
-
#: application/components/ParserModuleConfig.php:
|
2288 |
msgid "Make links with local 301 redirect"
|
2289 |
msgstr ""
|
2290 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2291 |
#: application/models/AutoblogModel.php:76
|
2292 |
msgid "Date of creation"
|
2293 |
msgstr ""
|
@@ -2304,25 +2479,25 @@ msgstr ""
|
|
2304 |
msgid "Last error"
|
2305 |
msgstr ""
|
2306 |
|
2307 |
-
#: application/models/AutoblogModel.php:
|
2308 |
msgid ""
|
2309 |
"Required module %s will not run. The module is not configured or deleted."
|
2310 |
msgstr ""
|
2311 |
|
2312 |
-
#: application/models/AutoblogModel.php:
|
2313 |
msgid "Data was not found for required module %s."
|
2314 |
msgstr ""
|
2315 |
|
2316 |
-
#: application/models/AutoblogModel.php:
|
2317 |
msgid ""
|
2318 |
"It does not reach the desired amount of data. Minimum required modules: %d."
|
2319 |
msgstr ""
|
2320 |
|
2321 |
-
#: application/models/AutoblogModel.php:
|
2322 |
msgid "Total reviews found: %d. Minimum reviews required: %d."
|
2323 |
msgstr ""
|
2324 |
|
2325 |
-
#: application/models/AutoblogModel.php:
|
2326 |
msgid "Post can't be created. Unknown error."
|
2327 |
msgstr ""
|
2328 |
|
@@ -2375,7 +2550,7 @@ msgstr ""
|
|
2375 |
#: application/modules/CjLinks/CjLinksConfig.php:73
|
2376 |
#: application/modules/CjProducts/CjProductsConfig.php:74
|
2377 |
#: application/modules/Clickbank/ClickbankConfig.php:53
|
2378 |
-
#: application/modules/Ebay/EbayConfig.php:
|
2379 |
#: application/modules/Envato/EnvatoConfig.php:73
|
2380 |
#: application/modules/Flipkart/FlipkartConfig.php:88
|
2381 |
#: application/modules/GdeSlon/GdeSlonConfig.php:63
|
@@ -2388,22 +2563,22 @@ msgstr ""
|
|
2388 |
#: application/modules/Shareasale/ShareasaleConfig.php:78
|
2389 |
#: application/modules/TradedoublerCoupons/TradedoublerCouponsConfig.php:48
|
2390 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:48
|
2391 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
2392 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:117
|
2393 |
#: application/modules/Udemy/UdemyConfig.php:81
|
2394 |
#: application/modules/Viglink/ViglinkConfig.php:62
|
2395 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
2396 |
#: application/modules/Zanox/ZanoxConfig.php:63
|
2397 |
-
msgid "Results for updates "
|
2398 |
msgstr ""
|
2399 |
|
2400 |
#: application/modules/AE/AEConfig.php:64
|
2401 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
2402 |
msgid "Reviews as post comments"
|
2403 |
msgstr ""
|
2404 |
|
2405 |
#: application/modules/AE/AEConfig.php:65
|
2406 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
2407 |
msgid "Save user reviews as post comments."
|
2408 |
msgstr ""
|
2409 |
|
@@ -2456,6 +2631,7 @@ msgstr ""
|
|
2456 |
#: application/modules/Bolcom/templates/data_item_simple.php:9
|
2457 |
#: application/modules/CjProducts/templates/data_item_simple.php:9
|
2458 |
#: application/modules/Daisycon/templates/data_item_simple.php:9
|
|
|
2459 |
#: application/modules/Flipkart/templates/data_item_simple.php:9
|
2460 |
#: application/modules/GdeSlon/templates/data_item_simple.php:9
|
2461 |
#: application/modules/Impactradius/templates/data_item_simple.php:9
|
@@ -2557,7 +2733,7 @@ msgstr ""
|
|
2557 |
#: application/modules/Amazon/AmazonConfig_FREE.php:172
|
2558 |
#: application/modules/AvantlinkProducts/AvantlinkProductsConfig.php:169
|
2559 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:130
|
2560 |
-
#: application/modules/Ebay/EbayConfig.php:
|
2561 |
#: application/modules/Impactradius/ImpactradiusConfig.php:81
|
2562 |
#: application/modules/Kelkoo/KelkooConfig.php:163
|
2563 |
#: application/modules/Linkwise/LinkwiseConfig.php:143
|
@@ -2574,7 +2750,7 @@ msgstr ""
|
|
2574 |
#: application/modules/Amazon/AmazonConfig_FREE.php:182
|
2575 |
#: application/modules/AvantlinkProducts/AvantlinkProductsConfig.php:179
|
2576 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:140
|
2577 |
-
#: application/modules/Ebay/EbayConfig.php:
|
2578 |
#: application/modules/Impactradius/ImpactradiusConfig.php:91
|
2579 |
#: application/modules/Kelkoo/KelkooConfig.php:173
|
2580 |
#: application/modules/Linkwise/LinkwiseConfig.php:153
|
@@ -2612,7 +2788,7 @@ msgstr ""
|
|
2612 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:166
|
2613 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:189
|
2614 |
#: application/modules/VkNews/VkNewsConfig.php:51
|
2615 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
2616 |
#: application/modules/Youtube/YoutubeConfig.php:87
|
2617 |
#: application/modules/Zanox/ZanoxConfig.php:161
|
2618 |
msgid "Trim description"
|
@@ -2645,7 +2821,7 @@ msgstr ""
|
|
2645 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:167
|
2646 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:190
|
2647 |
#: application/modules/VkNews/VkNewsConfig.php:52
|
2648 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
2649 |
#: application/modules/Youtube/YoutubeConfig.php:88
|
2650 |
#: application/modules/Zanox/ZanoxConfig.php:162
|
2651 |
msgid "Description size in characters (0 - do not cut)"
|
@@ -2688,6 +2864,8 @@ msgstr ""
|
|
2688 |
#: application/modules/Daisycon/views/update_panel.php:2
|
2689 |
#: application/modules/Ebay/views/search_panel.php:2
|
2690 |
#: application/modules/Ebay/views/update_panel.php:2
|
|
|
|
|
2691 |
#: application/modules/Impactradius/views/search_panel.php:2
|
2692 |
#: application/modules/Kelkoo/views/search_panel.php:2
|
2693 |
#: application/modules/Kelkoo/views/update_panel.php:2
|
@@ -2726,6 +2904,8 @@ msgstr ""
|
|
2726 |
#: application/modules/Daisycon/views/update_panel.php:3
|
2727 |
#: application/modules/Ebay/views/search_panel.php:3
|
2728 |
#: application/modules/Ebay/views/update_panel.php:3
|
|
|
|
|
2729 |
#: application/modules/Impactradius/views/search_panel.php:3
|
2730 |
#: application/modules/Kelkoo/views/search_panel.php:3
|
2731 |
#: application/modules/Kelkoo/views/update_panel.php:3
|
@@ -2765,10 +2945,10 @@ msgstr ""
|
|
2765 |
|
2766 |
#: application/modules/Affiliatewindow/AffiliatewindowConfig.php:61
|
2767 |
#: application/modules/Aliexpress/AliexpressConfig.php:232
|
2768 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
2769 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:190
|
2770 |
#: application/modules/Clickbank/ClickbankConfig.php:102
|
2771 |
-
#: application/modules/Ebay/EbayConfig.php:
|
2772 |
#: application/modules/Flickr/FlickrConfig.php:59
|
2773 |
#: application/modules/GdeSlon/GdeSlonConfig.php:79
|
2774 |
#: application/modules/GoogleBooks/GoogleBooksConfig.php:97
|
@@ -2786,7 +2966,7 @@ msgstr ""
|
|
2786 |
#: application/modules/Affiliatewindow/AffiliatewindowConfig.php:65
|
2787 |
#: application/modules/Affiliatewindow/AffiliatewindowConfig.php:105
|
2788 |
#: application/modules/Aliexpress/AliexpressConfig.php:236
|
2789 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
2790 |
#: application/modules/Bolcom/BolcomConfig.php:149
|
2791 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:194
|
2792 |
#: application/modules/Envato/EnvatoConfig.php:157
|
@@ -2887,12 +3067,12 @@ msgid "The \"Results\" can not be more than 40."
|
|
2887 |
msgstr ""
|
2888 |
|
2889 |
#: application/modules/Aliexpress/AliexpressConfig.php:90
|
2890 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
2891 |
msgid "Limit the search of goods by this category."
|
2892 |
msgstr ""
|
2893 |
|
2894 |
#: application/modules/Aliexpress/AliexpressConfig.php:93
|
2895 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
2896 |
#: application/modules/Pepperjam/PepperjamConfig.php:101
|
2897 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:63
|
2898 |
#: application/modules/Udemy/UdemyConfig.php:125
|
@@ -2915,7 +3095,7 @@ msgid "Currency"
|
|
2915 |
msgstr ""
|
2916 |
|
2917 |
#: application/modules/Aliexpress/AliexpressConfig.php:157
|
2918 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
2919 |
#: application/modules/Clickbank/ClickbankConfig.php:129
|
2920 |
#: application/modules/Udemy/UdemyConfig.php:96
|
2921 |
msgid "Language"
|
@@ -3003,6 +3183,7 @@ msgstr ""
|
|
3003 |
#: application/modules/Bolcom/views/update_panel.php:2
|
3004 |
#: application/modules/Daisycon/views/update_panel.php:2
|
3005 |
#: application/modules/Ebay/views/update_panel.php:2
|
|
|
3006 |
#: application/modules/Kelkoo/views/update_panel.php:2
|
3007 |
#: application/modules/Linkwise/views/update_panel.php:2
|
3008 |
#: application/modules/Viglink/views/update_panel.php:2
|
@@ -3020,6 +3201,7 @@ msgstr ""
|
|
3020 |
#: application/modules/Bolcom/views/update_panel.php:3
|
3021 |
#: application/modules/Daisycon/views/update_panel.php:3
|
3022 |
#: application/modules/Ebay/views/update_panel.php:3
|
|
|
3023 |
#: application/modules/Kelkoo/views/update_panel.php:3
|
3024 |
#: application/modules/Linkwise/views/update_panel.php:3
|
3025 |
#: application/modules/Viglink/views/update_panel.php:3
|
@@ -3053,35 +3235,35 @@ msgid ""
|
|
3053 |
"target=\"_blank\" href=\"%s\">here</a>."
|
3054 |
msgstr ""
|
3055 |
|
3056 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
3057 |
msgid "The price must be set in USD. Example: 99"
|
3058 |
msgstr ""
|
3059 |
|
3060 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
3061 |
msgid "The price must be set in USD. Example: 10"
|
3062 |
msgstr ""
|
3063 |
|
3064 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
3065 |
msgid "Platform"
|
3066 |
msgstr ""
|
3067 |
|
3068 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
3069 |
msgid "Price ASC"
|
3070 |
msgstr ""
|
3071 |
|
3072 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
3073 |
msgid "Price DESC"
|
3074 |
msgstr ""
|
3075 |
|
3076 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
3077 |
msgid "Volume ASC"
|
3078 |
msgstr ""
|
3079 |
|
3080 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
3081 |
msgid "Volume DESC"
|
3082 |
msgstr ""
|
3083 |
|
3084 |
-
#: application/modules/Aliexpress2/Aliexpress2Config.php:
|
3085 |
msgid "Save images locally"
|
3086 |
msgstr ""
|
3087 |
|
@@ -3188,7 +3370,7 @@ msgstr ""
|
|
3188 |
#: application/modules/Amazon/AmazonConfig.php:142
|
3189 |
#: application/modules/Bolcom/BolcomConfig.php:145
|
3190 |
#: application/modules/LomadeeProducts/LomadeeProductsConfig.php:85
|
3191 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
3192 |
msgid "Sort"
|
3193 |
msgstr ""
|
3194 |
|
@@ -3322,7 +3504,7 @@ msgid ""
|
|
3322 |
msgstr ""
|
3323 |
|
3324 |
#: application/modules/Amazon/AmazonConfig.php:269
|
3325 |
-
#: application/modules/Ebay/EbayConfig.php:
|
3326 |
msgid "Free Shipping"
|
3327 |
msgstr ""
|
3328 |
|
@@ -3395,6 +3577,16 @@ msgid ""
|
|
3395 |
"parsing"
|
3396 |
msgstr ""
|
3397 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3398 |
#: application/modules/Amazon/AmazonConfig_FREE.php:24
|
3399 |
msgid "Your Access Key ID which uniquely identifies you."
|
3400 |
msgstr ""
|
@@ -3515,7 +3707,7 @@ msgstr ""
|
|
3515 |
|
3516 |
#: application/modules/Amazon/AmazonConfig_FREE.php:218
|
3517 |
#: application/modules/Ozon/OzonConfig.php:123
|
3518 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
3519 |
msgid "Customer reviews"
|
3520 |
msgstr ""
|
3521 |
|
@@ -3566,12 +3758,12 @@ msgid "Text only"
|
|
3566 |
msgstr ""
|
3567 |
|
3568 |
#: application/modules/Amazon/AmazonConfig_FREE.php:256
|
3569 |
-
#: application/modules/Ebay/EbayConfig.php:
|
3570 |
msgid "Size of description"
|
3571 |
msgstr ""
|
3572 |
|
3573 |
#: application/modules/Amazon/AmazonConfig_FREE.php:257
|
3574 |
-
#: application/modules/Ebay/EbayConfig.php:
|
3575 |
msgid "The maximum size of the item description. 0 - do not cut."
|
3576 |
msgstr ""
|
3577 |
|
@@ -3592,6 +3784,16 @@ msgstr ""
|
|
3592 |
msgid "Adds products from Amazon."
|
3593 |
msgstr ""
|
3594 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3595 |
#: application/modules/Amazon/views/search_panel.php:19
|
3596 |
msgid "Min. saving"
|
3597 |
msgstr ""
|
@@ -3688,7 +3890,12 @@ msgstr ""
|
|
3688 |
#: application/modules/Bolcom/BolcomConfig.php:45
|
3689 |
#: application/modules/CjLinks/CjLinksConfig.php:31
|
3690 |
#: application/modules/Daisycon/DaisyconConfig.php:32
|
|
|
|
|
3691 |
#: application/modules/Envato/EnvatoConfig.php:31
|
|
|
|
|
|
|
3692 |
#: application/modules/GoogleImages/GoogleImagesConfig.php:31
|
3693 |
#: application/modules/GoogleImages/GoogleImagesConfig.php:45
|
3694 |
#: application/modules/Impactradius/ImpactradiusConfig.php:32
|
@@ -3704,9 +3911,9 @@ msgstr ""
|
|
3704 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:33
|
3705 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:64
|
3706 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:79
|
3707 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
3708 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
3709 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
3710 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:33
|
3711 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:47
|
3712 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:62
|
@@ -3892,7 +4099,7 @@ msgstr ""
|
|
3892 |
#: application/modules/Kelkoo/KelkooModule.php:30
|
3893 |
#: application/modules/Pepperjam/PepperjamModule.php:29
|
3894 |
#: application/modules/TradetrackerProducts/TradetrackerProductsModule.php:28
|
3895 |
-
#: application/modules/Walmart/WalmartModule.php:
|
3896 |
msgid "Adds products from %s."
|
3897 |
msgstr ""
|
3898 |
|
@@ -4288,7 +4495,7 @@ msgstr ""
|
|
4288 |
#: application/modules/Bolcom/BolcomConfig.php:99
|
4289 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:141
|
4290 |
#: application/modules/Udemy/UdemyConfig.php:121
|
4291 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
4292 |
msgid "Category"
|
4293 |
msgstr ""
|
4294 |
|
@@ -4353,13 +4560,13 @@ msgid "The field \"Remote_auth\" can not be empty."
|
|
4353 |
msgstr ""
|
4354 |
|
4355 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:47
|
4356 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4357 |
#: application/modules/GdeSlon/GdeSlonConfig.php:57
|
4358 |
msgid "Field \"Results\" can not be more than 100."
|
4359 |
msgstr ""
|
4360 |
|
4361 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:63
|
4362 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4363 |
#: application/modules/GdeSlon/GdeSlonConfig.php:73
|
4364 |
msgid "Field \"Results for autoupdating\" can not be more than 100."
|
4365 |
msgstr ""
|
@@ -4568,13 +4775,13 @@ msgid ""
|
|
4568 |
"Restrict search results based on the type of currency (for example: EUR)."
|
4569 |
msgstr ""
|
4570 |
|
4571 |
-
#: application/modules/CjProducts/CjProductsModule.php:
|
4572 |
msgid ""
|
4573 |
"Adds products from CJ.com. You must have approval from each program "
|
4574 |
"separately."
|
4575 |
msgstr ""
|
4576 |
|
4577 |
-
#: application/modules/CjProducts/CjProductsModule.php:
|
4578 |
msgid ""
|
4579 |
"CJ launched a new Product Search API. Please visit <a href=\"%s\">CJ Product "
|
4580 |
"settings</a> to get started with the new API."
|
@@ -4687,72 +4894,74 @@ msgstr ""
|
|
4687 |
msgid "Your Daisycon password."
|
4688 |
msgstr ""
|
4689 |
|
4690 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4691 |
-
|
4692 |
-
"
|
4693 |
-
"com/join\">eBay Developers Program</a>."
|
4694 |
msgstr ""
|
4695 |
|
4696 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4697 |
-
|
|
|
|
|
|
|
4698 |
msgstr ""
|
4699 |
|
4700 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4701 |
msgid ""
|
4702 |
"This is connection with partner program EPN. Campaign ID is valid for all "
|
4703 |
"programs which were approved for you on EPN. If you leave this field blank - "
|
4704 |
"you will not get commissions from sales."
|
4705 |
msgstr ""
|
4706 |
|
4707 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4708 |
msgid "EPN Custom ID (chanel)"
|
4709 |
msgstr ""
|
4710 |
|
4711 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4712 |
msgid ""
|
4713 |
"Any word, for example, name of domain. Custom ID will be included in sale "
|
4714 |
"report on EPN, so, you can additionally check your traffic. "
|
4715 |
msgstr ""
|
4716 |
|
4717 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4718 |
msgid "Ebay.in Affilite ID"
|
4719 |
msgstr ""
|
4720 |
|
4721 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4722 |
msgid ""
|
4723 |
"For eBay India's Affiliate program only. Go to <a href=\"https://ebayindia."
|
4724 |
"hasoffers.com/publisher/#!/account\">Ebay Hasoffers Dashboard</a> and find "
|
4725 |
"your Affiliate ID."
|
4726 |
msgstr ""
|
4727 |
|
4728 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4729 |
msgid "Skimlinks Site ID"
|
4730 |
msgstr ""
|
4731 |
|
4732 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4733 |
msgid ""
|
4734 |
"Set this if you want to direct traffic over <a href=\"http://www.keywordrush."
|
4735 |
"com/go/skimlinks\">Skimlinks</a>. Id for domain you can find <a href="
|
4736 |
"\"https://hub.skimlinks.com/account\">here</a>."
|
4737 |
msgstr ""
|
4738 |
|
4739 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4740 |
msgid "Viglink ID"
|
4741 |
msgstr ""
|
4742 |
|
4743 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4744 |
msgid ""
|
4745 |
"Set this if you want to direct traffic over <a href=\"http://www.keywordrush."
|
4746 |
"com/go/viglink\">Viglink</a>. Id for domain you can find <a href=\"http://"
|
4747 |
"www.viglink.com/install\">here</a>. Id is the same for all domains"
|
4748 |
msgstr ""
|
4749 |
|
4750 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4751 |
#: application/modules/Ozon/OzonConfig.php:32
|
4752 |
msgid "Deeplink"
|
4753 |
msgstr ""
|
4754 |
|
4755 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4756 |
msgid ""
|
4757 |
"Set Deeplink for one of CPA-networks. You can use parameter as "
|
4758 |
"<em>partner_id=12345</em>, or make link as template, for example, "
|
@@ -4762,29 +4971,29 @@ msgid ""
|
|
4762 |
"{{url_encoded}}"
|
4763 |
msgstr ""
|
4764 |
|
4765 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4766 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
4767 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:77
|
4768 |
msgid "Locale"
|
4769 |
msgstr ""
|
4770 |
|
4771 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4772 |
msgid ""
|
4773 |
"Local site of Ebay. For each local site you must have separate registration "
|
4774 |
"in affiliate program."
|
4775 |
msgstr ""
|
4776 |
|
4777 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4778 |
msgid "Ending time"
|
4779 |
msgstr ""
|
4780 |
|
4781 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4782 |
msgid ""
|
4783 |
"Lifetime of lots in seconds. Only lots which will be closed not later than "
|
4784 |
"the specified time will be chosen."
|
4785 |
msgstr ""
|
4786 |
|
4787 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4788 |
msgid ""
|
4789 |
"Id of category for searching. Id of categories you can find in URL of "
|
4790 |
"category on <a href=\"http://www.ebay.com/sch/allcategories/all-categories"
|
@@ -4792,26 +5001,26 @@ msgid ""
|
|
4792 |
"Example, \"2195,2218,20094\"."
|
4793 |
msgstr ""
|
4794 |
|
4795 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4796 |
msgid "Search in description"
|
4797 |
msgstr ""
|
4798 |
|
4799 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4800 |
msgid ""
|
4801 |
"Include description of product in searching. This will take more time, than "
|
4802 |
"searching only by title."
|
4803 |
msgstr ""
|
4804 |
|
4805 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4806 |
#: application/modules/Linkshare/LinkshareConfig.php:69
|
4807 |
msgid "Searching logic"
|
4808 |
msgstr ""
|
4809 |
|
4810 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4811 |
msgid "Exclude category"
|
4812 |
msgstr ""
|
4813 |
|
4814 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4815 |
msgid ""
|
4816 |
"Id of category, which must be excluded while searching. Id of categories you "
|
4817 |
"can find in URL of category on <a href=\"http://www.ebay.com/sch/"
|
@@ -4819,136 +5028,144 @@ msgid ""
|
|
4819 |
"categories separated with comma. Example, \"2195,2218,20094\"."
|
4820 |
msgstr ""
|
4821 |
|
4822 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4823 |
msgid "Minimal seller rating"
|
4824 |
msgstr ""
|
4825 |
|
4826 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4827 |
msgid "Best Offer"
|
4828 |
msgstr ""
|
4829 |
|
4830 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4831 |
msgid "Only \"Best Offer\" lots."
|
4832 |
msgstr ""
|
4833 |
|
4834 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4835 |
msgid "Featured"
|
4836 |
msgstr ""
|
4837 |
|
4838 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4839 |
msgid "Only \"Featured\" lots."
|
4840 |
msgstr ""
|
4841 |
|
4842 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4843 |
msgid "Only lots with free delivery"
|
4844 |
msgstr ""
|
4845 |
|
4846 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4847 |
msgid "Local Pickup"
|
4848 |
msgstr ""
|
4849 |
|
4850 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4851 |
msgid "Only lots with \"local pickup\" option."
|
4852 |
msgstr ""
|
4853 |
|
4854 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4855 |
msgid "Get It Fast"
|
4856 |
msgstr ""
|
4857 |
|
4858 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4859 |
msgid "Only \"Get It Fast\" lots."
|
4860 |
msgstr ""
|
4861 |
|
4862 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4863 |
msgid "Top-rated seller"
|
4864 |
msgstr ""
|
4865 |
|
4866 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4867 |
msgid "Only products from Top-rated \"Top-rated\" vendors."
|
4868 |
msgstr ""
|
4869 |
|
4870 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4871 |
msgid "Hide dublicates"
|
4872 |
msgstr ""
|
4873 |
|
4874 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4875 |
msgid "Filter similar lots"
|
4876 |
msgstr ""
|
4877 |
|
4878 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4879 |
msgid "Type of auction"
|
4880 |
msgstr ""
|
4881 |
|
4882 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4883 |
msgid "Maximum bids"
|
4884 |
msgstr ""
|
4885 |
|
4886 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4887 |
msgid "Example, 10"
|
4888 |
msgstr ""
|
4889 |
|
4890 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4891 |
msgid "Minimum bids"
|
4892 |
msgstr ""
|
4893 |
|
4894 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4895 |
msgid "Example, 3"
|
4896 |
msgstr ""
|
4897 |
|
4898 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4899 |
msgid "Example, 300.50"
|
4900 |
msgstr ""
|
4901 |
|
4902 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4903 |
msgid "Example, 10.98"
|
4904 |
msgstr ""
|
4905 |
|
4906 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4907 |
msgid "Payment options"
|
4908 |
msgstr ""
|
4909 |
|
4910 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4911 |
msgid "Available to"
|
4912 |
msgstr ""
|
4913 |
|
4914 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4915 |
msgid ""
|
4916 |
"Limits items to those available to the specified country only. Expects the "
|
4917 |
"two-letter ISO 3166 country code."
|
4918 |
msgstr ""
|
4919 |
|
4920 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4921 |
msgid "Located In"
|
4922 |
msgstr ""
|
4923 |
|
4924 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4925 |
msgid ""
|
4926 |
"Expects the two-letter ISO 3166 country code to indicate the country where "
|
4927 |
"the item is located. Item filter AvailableTo cannot be used together with "
|
4928 |
"item filter LocatedIn."
|
4929 |
msgstr ""
|
4930 |
|
4931 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4932 |
msgid "Seller"
|
4933 |
msgstr ""
|
4934 |
|
4935 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4936 |
msgid ""
|
4937 |
"Specify one or more seller names separated by comma. Search results will "
|
4938 |
"include items from the specified sellers only."
|
4939 |
msgstr ""
|
4940 |
|
4941 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4942 |
msgid "Get description"
|
4943 |
msgstr ""
|
4944 |
|
4945 |
-
#: application/modules/Ebay/EbayConfig.php:
|
4946 |
msgid ""
|
4947 |
"Get description of product. This takes more requests for Ebay API and slow "
|
4948 |
"down searching. Description will be requested only for 20 first products for "
|
4949 |
"one searching"
|
4950 |
msgstr ""
|
4951 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4952 |
#: application/modules/Envato/EnvatoConfig.php:23
|
4953 |
msgid ""
|
4954 |
"You can <a href=\"https://build.envato.com/create-token/\">generate a "
|
@@ -4986,22 +5203,22 @@ msgid "Minimum rating to filter by."
|
|
4986 |
msgstr ""
|
4987 |
|
4988 |
#: application/modules/Envato/EnvatoConfig.php:113
|
4989 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
4990 |
msgid "Price min"
|
4991 |
msgstr ""
|
4992 |
|
4993 |
#: application/modules/Envato/EnvatoConfig.php:114
|
4994 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
4995 |
msgid "Minimum price to include."
|
4996 |
msgstr ""
|
4997 |
|
4998 |
#: application/modules/Envato/EnvatoConfig.php:122
|
4999 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
5000 |
msgid "Price max"
|
5001 |
msgstr ""
|
5002 |
|
5003 |
#: application/modules/Envato/EnvatoConfig.php:123
|
5004 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
5005 |
msgid "Maximum price to include."
|
5006 |
msgstr ""
|
5007 |
|
@@ -5025,7 +5242,7 @@ msgstr ""
|
|
5025 |
|
5026 |
#: application/modules/Envato/EnvatoConfig.php:153
|
5027 |
#: application/modules/Udemy/UdemyConfig.php:106
|
5028 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
5029 |
msgid "Order"
|
5030 |
msgstr ""
|
5031 |
|
@@ -5055,6 +5272,73 @@ msgid ""
|
|
5055 |
"Market</a>."
|
5056 |
msgstr ""
|
5057 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5058 |
#: application/modules/Flickr/FlickrConfig.php:23
|
5059 |
msgid ""
|
5060 |
"The key for use Flickr API. You can get <a href=\"http://www.flickr.com/"
|
@@ -5078,7 +5362,7 @@ msgstr ""
|
|
5078 |
#: application/modules/GoogleBooks/GoogleBooksConfig.php:101
|
5079 |
#: application/modules/Ozon/OzonConfig.php:68
|
5080 |
#: application/modules/Viglink/ViglinkConfig.php:98
|
5081 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
5082 |
#: application/modules/Youtube/YoutubeConfig.php:65
|
5083 |
#: application/modules/Youtube/views/search_panel.php:10
|
5084 |
msgid "Relevance"
|
@@ -5816,7 +6100,7 @@ msgid "Belarus"
|
|
5816 |
msgstr ""
|
5817 |
|
5818 |
#: application/modules/Market/MarketConfig.php:82
|
5819 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
5820 |
#: application/modules/TradetrackerCoupons/views/search_panel.php:4
|
5821 |
msgid "Offers"
|
5822 |
msgstr ""
|
@@ -5892,7 +6176,7 @@ msgstr ""
|
|
5892 |
msgid "override custom settings"
|
5893 |
msgstr ""
|
5894 |
|
5895 |
-
#: application/modules/Offer/OfferModule.php:
|
5896 |
msgid "Manually create offer from any site with price update."
|
5897 |
msgstr ""
|
5898 |
|
@@ -6069,6 +6353,13 @@ msgid "Antiques, vintage, art"
|
|
6069 |
msgstr ""
|
6070 |
|
6071 |
#: application/modules/Ozon/OzonConfig.php:116
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6072 |
msgid "Features"
|
6073 |
msgstr ""
|
6074 |
|
@@ -6333,6 +6624,8 @@ msgstr ""
|
|
6333 |
|
6334 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:156
|
6335 |
#: application/modules/SkimlinksCoupons/views/search_panel.php:8
|
|
|
|
|
6336 |
msgid "Free shipping"
|
6337 |
msgstr ""
|
6338 |
|
@@ -6387,12 +6680,12 @@ msgid "Sort order"
|
|
6387 |
msgstr ""
|
6388 |
|
6389 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:189
|
6390 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
6391 |
msgid "Asc"
|
6392 |
msgstr ""
|
6393 |
|
6394 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:190
|
6395 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
6396 |
msgid "Desc"
|
6397 |
msgstr ""
|
6398 |
|
@@ -6442,7 +6735,7 @@ msgid ""
|
|
6442 |
"program separately."
|
6443 |
msgstr ""
|
6444 |
|
6445 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
6446 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:25
|
6447 |
msgid ""
|
6448 |
"You can find your Customer ID and Passphrase by logging onto your "
|
@@ -6451,7 +6744,7 @@ msgid ""
|
|
6451 |
"need to request access first by clicking the \"request access\" link."
|
6452 |
msgstr ""
|
6453 |
|
6454 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
6455 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:54
|
6456 |
msgid ""
|
6457 |
"Login into your TradeTracker control panel. Click on \"<a href=\"https://"
|
@@ -6460,45 +6753,45 @@ msgid ""
|
|
6460 |
"Site ID."
|
6461 |
msgstr ""
|
6462 |
|
6463 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
6464 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:78
|
6465 |
msgid "Your TradeTracker locale."
|
6466 |
msgstr ""
|
6467 |
|
6468 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
6469 |
msgid "Items type"
|
6470 |
msgstr ""
|
6471 |
|
6472 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
6473 |
#: application/modules/TradetrackerCoupons/views/search_panel.php:3
|
6474 |
msgid "Vouchers"
|
6475 |
msgstr ""
|
6476 |
|
6477 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
6478 |
#: application/modules/TradetrackerCoupons/views/search_panel.php:5
|
6479 |
msgid "Text Links"
|
6480 |
msgstr ""
|
6481 |
|
6482 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
6483 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
6484 |
msgid "Banner Dimension ID"
|
6485 |
msgstr ""
|
6486 |
|
6487 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
6488 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:146
|
6489 |
msgid "Campaign ID"
|
6490 |
msgstr ""
|
6491 |
|
6492 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
6493 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:155
|
6494 |
msgid "Campaign Category ID"
|
6495 |
msgstr ""
|
6496 |
|
6497 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
6498 |
msgid "Unsubscribed campaigns"
|
6499 |
msgstr ""
|
6500 |
|
6501 |
-
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:
|
6502 |
msgid "Include unsubscribed campaigns."
|
6503 |
msgstr ""
|
6504 |
|
@@ -6730,10 +7023,6 @@ msgid ""
|
|
6730 |
"or correctly structured image URL."
|
6731 |
msgstr ""
|
6732 |
|
6733 |
-
#: application/modules/Viglink/ViglinkConfig.php:135
|
6734 |
-
msgid "Default currency"
|
6735 |
-
msgstr ""
|
6736 |
-
|
6737 |
#: application/modules/Viglink/ViglinkConfig.php:136
|
6738 |
msgid ""
|
6739 |
"Expects the three-letter ISO 4217 currency code. Used only for search by URL "
|
@@ -6747,7 +7036,7 @@ msgid ""
|
|
6747 |
msgstr ""
|
6748 |
|
6749 |
#: application/modules/Viglink/ViglinkConfig.php:155
|
6750 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
6751 |
msgid "[ All ]"
|
6752 |
msgstr ""
|
6753 |
|
@@ -6773,40 +7062,40 @@ msgstr ""
|
|
6773 |
msgid "Your Impact Radius Publisher ID."
|
6774 |
msgstr ""
|
6775 |
|
6776 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
6777 |
-
msgid "If you do not have your API key, leave this field empty."
|
6778 |
-
msgstr ""
|
6779 |
-
|
6780 |
-
#: application/modules/Walmart/WalmartConfig.php:76
|
6781 |
msgid ""
|
6782 |
"Set this option if you want to send traffic through one of affiliate network "
|
6783 |
"with Walmart support."
|
6784 |
msgstr ""
|
6785 |
|
6786 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
6787 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
6788 |
msgid "Sorting criteria."
|
6789 |
msgstr ""
|
6790 |
|
6791 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
6792 |
msgid "Bestseller"
|
6793 |
msgstr ""
|
6794 |
|
6795 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
6796 |
msgid "Customer Rating"
|
6797 |
msgstr ""
|
6798 |
|
6799 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
6800 |
msgid ""
|
6801 |
"Sort ordering criteria. This parameter is needed only for the sort types: "
|
6802 |
"Price, Title, Customer Rating."
|
6803 |
msgstr ""
|
6804 |
|
6805 |
-
#: application/modules/Walmart/WalmartConfig.php:
|
6806 |
msgid ""
|
6807 |
"Parse customer reviews. It takes more time. Don't check if you don't need it."
|
6808 |
msgstr ""
|
6809 |
|
|
|
|
|
|
|
|
|
6810 |
#: application/modules/Webgains/WebgainsConfig.php:23
|
6811 |
msgid ""
|
6812 |
"Check <a target=\"_blank\" href=\"%s\">how to create</a> a Product Feed."
|
@@ -6911,6 +7200,113 @@ msgid ""
|
|
6911 |
"separately."
|
6912 |
msgstr ""
|
6913 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6914 |
#. Plugin Name of the plugin/theme
|
6915 |
msgid "Content Egg<stripfree> Pro</stripfree>"
|
6916 |
msgstr ""
|
1 |
+
# Copyright (C) 2021 Content Egg<stripfree> Pro</stripfree>
|
2 |
# This file is distributed under the same license as the Content Egg<stripfree> Pro</stripfree> package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Content Egg<stripfree> Pro</stripfree> 8.9.0\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/content-egg\n"
|
7 |
+
"POT-Creation-Date: 2021-05-07 08:37:55+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2021-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
15 |
+
#: application/Autoupdate.php:86
|
16 |
msgid "New version of %s plugin."
|
17 |
msgstr ""
|
18 |
|
19 |
+
#: application/Autoupdate.php:87
|
20 |
msgid ""
|
21 |
"Please <a target=\"_blank\" href=\"%s\">find here</a> the releases notes."
|
22 |
msgstr ""
|
31 |
|
32 |
#: application/PriceMoversWidget.php:63 application/ProductSearchWidget.php:45
|
33 |
#: application/admin/views/_metabox_results.php:29
|
34 |
+
#: application/components/ParserModuleConfig.php:65
|
35 |
#: application/models/ProductModel.php:62
|
36 |
#: application/modules/Coupon/views/metabox_module.php:52
|
37 |
#: application/modules/Offer/views/metabox_module.php:59
|
38 |
+
#: application/modules/Walmart/WalmartConfig.php:104
|
39 |
#: application/modules/Youtube/YoutubeConfig.php:66
|
40 |
#: application/modules/Youtube/views/search_panel.php:11
|
41 |
msgid "Title"
|
81 |
#: application/PriceMoversWidget.php:99 application/PriceMoversWidget.php:100
|
82 |
#: application/PriceMoversWidget.php:101 application/PriceMoversWidget.php:102
|
83 |
#: application/PriceMoversWidget.php:103 application/PriceMoversWidget.php:104
|
84 |
+
#: application/helpers/TemplateHelper.php:775
|
85 |
msgid "%d days ago"
|
86 |
msgstr ""
|
87 |
|
88 |
#: application/PriceMoversWidget.php:110
|
89 |
+
#: application/components/ParserModuleConfig.php:57
|
90 |
msgid "Template"
|
91 |
msgstr ""
|
92 |
|
98 |
msgid "CE: Product Search"
|
99 |
msgstr ""
|
100 |
|
101 |
+
#: application/WooIntegrator.php:544
|
102 |
+
#: application/templates/blocks/grid_row.php:43
|
103 |
+
#: application/templates/blocks/item_row.php:37
|
104 |
+
#: application/templates/blocks/list_row.php:33
|
105 |
+
#: application/templates/data_list.php:25
|
106 |
+
#: application/templates/data_price_tracker_alert.php:43
|
107 |
+
#: templates/block_offers_logo.php:55 templates/block_price_comparison.php:44
|
108 |
+
msgid "Last updated on %s"
|
109 |
+
msgstr ""
|
110 |
+
|
111 |
+
#: application/WooIntegrator.php:563
|
112 |
+
msgid "Price per unit: %s"
|
113 |
+
msgstr ""
|
114 |
+
|
115 |
#: application/admin/AdminNotice.php:25
|
116 |
msgid "Task for autoblogging is saved."
|
117 |
msgstr ""
|
136 |
msgid "License can't be deactivated. Write to support of plugin."
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: application/admin/AdminNotice.php:30
|
140 |
+
msgid "The license has been deactivated."
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
#: application/admin/AdminNotice.php:30
|
144 |
msgid ""
|
145 |
+
"You must deactivate and delete Content Egg from your current domain to use "
|
146 |
+
"plugin on a new domain."
|
147 |
msgstr ""
|
148 |
|
149 |
#: application/admin/AeIntegrationConfig.php:33
|
150 |
msgid "Affiliate Egg integration"
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: application/admin/AeIntegrationConfig.php:51
|
154 |
msgid "Activate modules"
|
155 |
msgstr ""
|
156 |
|
157 |
#: application/admin/AutoblogController.php:77
|
158 |
+
#: application/admin/views/autoblog_index.php:38
|
159 |
msgid "Autoblogging"
|
160 |
msgstr ""
|
161 |
|
162 |
#: application/admin/AutoblogController.php:78
|
163 |
#: application/admin/views/autoblog_edit.php:10
|
164 |
+
#: application/admin/views/autoblog_index.php:39
|
165 |
msgid "Add autoblogging"
|
166 |
msgstr ""
|
167 |
|
191 |
msgstr ""
|
192 |
|
193 |
#: application/admin/AutoblogTable.php:67
|
194 |
+
#: application/admin/GeneralConfig.php:169
|
195 |
#: application/admin/views/_metabox_autoblog.php:26
|
196 |
+
msgid "Enabled"
|
197 |
msgstr ""
|
198 |
|
199 |
#: application/admin/AutoblogTable.php:69
|
200 |
+
#: application/admin/GeneralConfig.php:170
|
201 |
+
#: application/admin/GeneralConfig.php:255
|
202 |
#: application/admin/views/_metabox_autoblog.php:27
|
203 |
+
#: application/modules/GoogleImages/GoogleImagesConfig.php:171
|
204 |
+
msgid "Disabled"
|
205 |
msgstr ""
|
206 |
|
207 |
#: application/admin/AutoblogTable.php:83
|
240 |
msgstr ""
|
241 |
|
242 |
#: application/admin/EnvatoConfig.php:40 application/admin/EnvatoConfig.php:58
|
243 |
+
#: application/admin/GeneralConfig.php:372
|
244 |
+
#: application/modules/Feed/FeedConfig.php:59
|
245 |
msgid "Field \"%s\" filled with wrong data."
|
246 |
msgstr ""
|
247 |
|
265 |
msgid "Error."
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: application/admin/GeneralConfig.php:37 application/admin/PluginAdmin.php:106
|
269 |
msgid "Settings"
|
270 |
msgstr ""
|
271 |
|
272 |
+
#: application/admin/GeneralConfig.php:148
|
273 |
msgid "Website language"
|
274 |
msgstr ""
|
275 |
|
276 |
+
#: application/admin/GeneralConfig.php:149
|
277 |
msgid "The frontend language."
|
278 |
msgstr ""
|
279 |
|
280 |
+
#: application/admin/GeneralConfig.php:153
|
281 |
+
#: application/admin/GeneralConfig.php:161
|
282 |
+
#: application/admin/GeneralConfig.php:173
|
283 |
+
#: application/admin/GeneralConfig.php:186
|
284 |
+
#: application/admin/GeneralConfig.php:288
|
285 |
+
#: application/admin/GeneralConfig.php:476
|
286 |
+
#: application/admin/GeneralConfig.php:488
|
287 |
msgid "General settings"
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: application/admin/GeneralConfig.php:157
|
291 |
msgid "What post types do you want to use for Content Egg?"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: application/admin/GeneralConfig.php:164
|
295 |
msgid "Cashback Tracker integration"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: application/admin/GeneralConfig.php:165
|
299 |
msgid "Integration with %s plugin."
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: application/admin/GeneralConfig.php:166
|
303 |
msgid "Convert all affiliate links to trackable cashback links if possible."
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: application/admin/GeneralConfig.php:176
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
307 |
msgid "External featured images"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: application/admin/GeneralConfig.php:177
|
311 |
msgid "Featured images from URL"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: application/admin/GeneralConfig.php:181
|
315 |
msgid "Disabled - internal image is used"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: application/admin/GeneralConfig.php:182
|
319 |
msgid "Enabled - internal image has priority"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: application/admin/GeneralConfig.php:183
|
323 |
msgid "Enabled - external image has priority"
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: application/admin/GeneralConfig.php:190
|
327 |
+
msgid ""
|
328 |
+
"<a target=\"_blank\" href=\"%s\">Qualify</a> your affiliate links to Google."
|
329 |
+
msgstr ""
|
330 |
+
|
331 |
+
#: application/admin/GeneralConfig.php:201
|
332 |
+
#: application/admin/GeneralConfig.php:419
|
333 |
+
#: application/admin/GeneralConfig.php:429
|
334 |
+
#: application/admin/GeneralConfig.php:439
|
335 |
+
#: application/admin/GeneralConfig.php:449
|
336 |
+
#: application/admin/GeneralConfig.php:461
|
337 |
+
#: application/admin/GeneralConfig.php:520
|
338 |
+
#: application/admin/GeneralConfig.php:529
|
339 |
+
#: application/admin/GeneralConfig.php:542
|
340 |
+
msgid "Frontend"
|
341 |
+
msgstr ""
|
342 |
+
|
343 |
+
#: application/admin/GeneralConfig.php:204
|
344 |
msgid "Modules for synchronization"
|
345 |
msgstr ""
|
346 |
|
347 |
+
#: application/admin/GeneralConfig.php:205
|
348 |
msgid "Select modules for automatic synchronization with WooCommerce."
|
349 |
msgstr ""
|
350 |
|
351 |
+
#: application/admin/GeneralConfig.php:209
|
352 |
+
#: application/admin/GeneralConfig.php:222
|
353 |
+
#: application/admin/GeneralConfig.php:229
|
354 |
+
#: application/admin/GeneralConfig.php:241
|
355 |
+
#: application/admin/GeneralConfig.php:248
|
356 |
+
#: application/admin/GeneralConfig.php:260
|
357 |
+
#: application/admin/GeneralConfig.php:270
|
358 |
+
#: application/admin/GeneralConfig.php:280
|
359 |
msgid "WooCommerce"
|
360 |
msgstr ""
|
361 |
|
362 |
+
#: application/admin/GeneralConfig.php:212
|
363 |
msgid "Automatic synchronization"
|
364 |
msgstr ""
|
365 |
|
366 |
+
#: application/admin/GeneralConfig.php:213
|
367 |
msgid "How to choose product for automatic synchronization with WooCommerce."
|
368 |
msgstr ""
|
369 |
|
370 |
+
#: application/admin/GeneralConfig.php:216
|
371 |
+
#: application/admin/views/_metabox_autoblog.php:415
|
372 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:152
|
373 |
msgid "Minimum price"
|
374 |
msgstr ""
|
375 |
|
376 |
+
#: application/admin/GeneralConfig.php:217
|
377 |
+
#: application/admin/views/_metabox_autoblog.php:416
|
378 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:142
|
379 |
msgid "Maximum price"
|
380 |
msgstr ""
|
381 |
|
382 |
+
#: application/admin/GeneralConfig.php:218
|
383 |
+
#: application/admin/views/_metabox_autoblog.php:417
|
384 |
msgid "Random"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: application/admin/GeneralConfig.php:219
|
388 |
msgid "Manually only"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: application/admin/GeneralConfig.php:225
|
392 |
+
msgid "Import product attributes"
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: application/admin/GeneralConfig.php:226
|
396 |
+
msgid "Import attributes automatically for synchronized product."
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: application/admin/GeneralConfig.php:232
|
400 |
msgid "Global attributes filter"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: application/admin/GeneralConfig.php:233
|
404 |
msgid ""
|
405 |
"How to create wocommerce attributes when synchronizing. Please, read "
|
406 |
"documentation about them in our docs."
|
407 |
msgstr ""
|
408 |
|
409 |
+
#: application/admin/GeneralConfig.php:236
|
410 |
msgid "Default filter"
|
411 |
msgstr ""
|
412 |
|
413 |
+
#: application/admin/GeneralConfig.php:237
|
414 |
msgid "Whitelist attribute names"
|
415 |
msgstr ""
|
416 |
|
417 |
+
#: application/admin/GeneralConfig.php:238
|
418 |
msgid "Blacklist attribute names"
|
419 |
msgstr ""
|
420 |
|
421 |
+
#: application/admin/GeneralConfig.php:244
|
422 |
msgid "Attributes list"
|
423 |
msgstr ""
|
424 |
|
425 |
+
#: application/admin/GeneralConfig.php:245
|
426 |
msgid ""
|
427 |
"Black / white list of woocommerce global (filterable) attributes. Enter a "
|
428 |
"comma separated list."
|
429 |
msgstr ""
|
430 |
|
431 |
+
#: application/admin/GeneralConfig.php:251
|
432 |
msgid "Update date"
|
433 |
msgstr ""
|
434 |
|
435 |
+
#: application/admin/GeneralConfig.php:252
|
436 |
msgid "Show price update date for WooCommerce products."
|
437 |
msgstr ""
|
438 |
|
439 |
+
#: application/admin/GeneralConfig.php:256
|
440 |
msgid "Amazon only"
|
441 |
msgstr ""
|
442 |
|
443 |
+
#: application/admin/GeneralConfig.php:257
|
444 |
msgid "All modules"
|
445 |
msgstr ""
|
446 |
|
447 |
+
#: application/admin/GeneralConfig.php:263
|
448 |
msgid "Price per unit"
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: application/admin/GeneralConfig.php:264
|
452 |
msgid "Show price per unit"
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: application/admin/GeneralConfig.php:266
|
456 |
msgid "This option is available for Amazon and Ebay modules only."
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: application/admin/GeneralConfig.php:273
|
460 |
msgid "Buy button text"
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: application/admin/GeneralConfig.php:274
|
464 |
msgid "Overwrite the button text for external products."
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: application/admin/GeneralConfig.php:274
|
468 |
+
#: application/admin/GeneralConfig.php:433
|
469 |
msgid "You can use tags: %MERCHANT%, %DOMAIN%, %PRICE%, %STOCK_STATUS%."
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: application/admin/GeneralConfig.php:283
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
473 |
msgid "Filter bots"
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: application/admin/GeneralConfig.php:284
|
477 |
msgid "Bots can't activate parsers."
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: application/admin/GeneralConfig.php:285
|
481 |
msgid ""
|
482 |
"Updating price and keyword updating is made with page opening. If we "
|
483 |
"determine update by useragent, and page is opened by one of known bots, no "
|
484 |
"parsers will work in this case."
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: application/admin/GeneralConfig.php:291
|
488 |
+
#: application/admin/GeneralConfig.php:301
|
489 |
msgid "Price history"
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: application/admin/GeneralConfig.php:292
|
493 |
msgid "How long save price history. 0 - deactivate price history."
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: application/admin/GeneralConfig.php:301
|
497 |
#: application/modules/Kelkoo/KelkooConfig.php:257
|
498 |
msgid "The field \"%s\" can't be more than %d."
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: application/admin/GeneralConfig.php:304
|
502 |
+
#: application/admin/GeneralConfig.php:325
|
503 |
+
#: application/admin/GeneralConfig.php:339
|
504 |
+
#: application/admin/GeneralConfig.php:349
|
505 |
+
#: application/admin/GeneralConfig.php:360
|
506 |
+
#: application/admin/GeneralConfig.php:375
|
507 |
+
#: application/admin/GeneralConfig.php:384
|
508 |
+
#: application/admin/GeneralConfig.php:395
|
509 |
+
#: application/admin/GeneralConfig.php:405
|
510 |
msgid "Price alerts"
|
511 |
msgstr ""
|
512 |
|
513 |
+
#: application/admin/GeneralConfig.php:307
|
514 |
msgid "Price drops period"
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: application/admin/GeneralConfig.php:308
|
518 |
msgid "Used for Price Movers widget."
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: application/admin/GeneralConfig.php:311
|
522 |
msgid "The last 1 day"
|
523 |
msgstr ""
|
524 |
|
525 |
+
#: application/admin/GeneralConfig.php:312
|
526 |
+
#: application/admin/GeneralConfig.php:313
|
527 |
+
#: application/admin/GeneralConfig.php:314
|
528 |
+
#: application/admin/GeneralConfig.php:315
|
529 |
+
#: application/admin/GeneralConfig.php:316
|
530 |
+
#: application/admin/GeneralConfig.php:317
|
531 |
+
#: application/admin/GeneralConfig.php:318
|
532 |
+
#: application/admin/GeneralConfig.php:319
|
533 |
+
#: application/admin/GeneralConfig.php:320
|
534 |
+
#: application/admin/GeneralConfig.php:321
|
535 |
+
#: application/admin/GeneralConfig.php:322
|
536 |
msgid "The last %d days"
|
537 |
msgstr ""
|
538 |
|
539 |
+
#: application/admin/GeneralConfig.php:329
|
540 |
msgid "Allow visitors to subscribe for price drop alert on email."
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: application/admin/GeneralConfig.php:330
|
544 |
msgid "Active subscriptions now: <b>%d</b>"
|
545 |
msgstr ""
|
546 |
|
547 |
+
#: application/admin/GeneralConfig.php:331
|
548 |
msgid "Messages are sent for last %d days: <b>%d</b>"
|
549 |
msgstr ""
|
550 |
|
551 |
+
#: application/admin/GeneralConfig.php:332
|
552 |
msgid "Export: [ <a href=\"%s\">All</a> | <a href=\"%s\">Active</a> ]"
|
553 |
msgstr ""
|
554 |
|
555 |
+
#: application/admin/GeneralConfig.php:334
|
556 |
msgid "\"Price history\" option must be enabled."
|
557 |
msgstr ""
|
558 |
|
559 |
+
#: application/admin/GeneralConfig.php:335
|
560 |
msgid ""
|
561 |
"Recommendation: Go to Settings - Privacy and select Privacy Policy page."
|
562 |
msgstr ""
|
563 |
|
564 |
+
#: application/admin/GeneralConfig.php:342
|
565 |
+
msgid "Price alert mode"
|
566 |
+
msgstr ""
|
567 |
+
|
568 |
+
#: application/admin/GeneralConfig.php:345
|
569 |
+
msgid "Separate alerts for each product"
|
570 |
+
msgstr ""
|
571 |
+
|
572 |
+
#: application/admin/GeneralConfig.php:346
|
573 |
+
msgid "General alert for all products in a post"
|
574 |
+
msgstr ""
|
575 |
+
|
576 |
+
#: application/admin/GeneralConfig.php:352
|
577 |
+
msgid "From Name"
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: application/admin/GeneralConfig.php:353
|
581 |
+
msgid ""
|
582 |
+
"This name will appear in the From Name column of emails sent from CE plugin."
|
583 |
+
msgstr ""
|
584 |
+
|
585 |
+
#: application/admin/GeneralConfig.php:363
|
586 |
+
msgid "From Email"
|
587 |
+
msgstr ""
|
588 |
+
|
589 |
+
#: application/admin/GeneralConfig.php:364
|
590 |
+
msgid "Customize the From Email address."
|
591 |
+
msgstr ""
|
592 |
+
|
593 |
+
#: application/admin/GeneralConfig.php:364
|
594 |
+
msgid ""
|
595 |
+
"To avoid your email being marked as spam, it is recommended your \"from\" "
|
596 |
+
"match your website."
|
597 |
+
msgstr ""
|
598 |
+
|
599 |
+
#: application/admin/GeneralConfig.php:378
|
600 |
+
msgid "Activation email template"
|
601 |
+
msgstr ""
|
602 |
+
|
603 |
+
#: application/admin/GeneralConfig.php:379
|
604 |
+
#: application/admin/GeneralConfig.php:392
|
605 |
+
msgid "Use the following tags: %s."
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: application/admin/GeneralConfig.php:380
|
609 |
+
msgid "%s is required tag."
|
610 |
+
msgstr ""
|
611 |
+
|
612 |
+
#: application/admin/GeneralConfig.php:381
|
613 |
+
msgid "Use like %s."
|
614 |
+
msgstr ""
|
615 |
+
|
616 |
+
#: application/admin/GeneralConfig.php:391
|
617 |
+
msgid "Price alert email template"
|
618 |
+
msgstr ""
|
619 |
+
|
620 |
+
#: application/admin/GeneralConfig.php:402
|
621 |
+
msgid "Email signature"
|
622 |
+
msgstr ""
|
623 |
+
|
624 |
+
#: application/admin/GeneralConfig.php:412
|
625 |
msgid "Button color"
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: application/admin/GeneralConfig.php:413
|
629 |
msgid "Button color for default templates."
|
630 |
msgstr ""
|
631 |
|
632 |
+
#: application/admin/GeneralConfig.php:422
|
633 |
msgid "Price color"
|
634 |
msgstr ""
|
635 |
|
636 |
+
#: application/admin/GeneralConfig.php:423
|
637 |
msgid "Price color for default templates."
|
638 |
msgstr ""
|
639 |
|
640 |
+
#: application/admin/GeneralConfig.php:432
|
641 |
msgid "Buy now button text"
|
642 |
msgstr ""
|
643 |
|
644 |
+
#: application/admin/GeneralConfig.php:433
|
645 |
+
#: application/admin/GeneralConfig.php:443
|
646 |
msgid "It will be used instead of \"%s\"."
|
647 |
msgstr ""
|
648 |
|
649 |
+
#: application/admin/GeneralConfig.php:442
|
650 |
msgid "Coupon button text"
|
651 |
msgstr ""
|
652 |
|
653 |
+
#: application/admin/GeneralConfig.php:452
|
654 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:200
|
655 |
msgid "Stock status"
|
656 |
msgstr ""
|
657 |
|
658 |
+
#: application/admin/GeneralConfig.php:455
|
659 |
msgid "Show stock status"
|
660 |
msgstr ""
|
661 |
|
662 |
+
#: application/admin/GeneralConfig.php:456
|
663 |
msgid "Hide stock status"
|
664 |
msgstr ""
|
665 |
|
666 |
+
#: application/admin/GeneralConfig.php:457
|
667 |
msgid "Show OutOfStock status only"
|
668 |
msgstr ""
|
669 |
|
670 |
+
#: application/admin/GeneralConfig.php:458
|
671 |
msgid "Show InStock status only"
|
672 |
msgstr ""
|
673 |
|
674 |
+
#: application/admin/GeneralConfig.php:464
|
675 |
+
#: application/admin/GeneralConfig.php:473
|
676 |
msgid "Redirect prefix"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: application/admin/GeneralConfig.php:465
|
680 |
msgid "Custom prefix for local redirect links."
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: application/admin/GeneralConfig.php:473
|
684 |
msgid "The field \"%s\" can contain only Latin letters and digits."
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: application/admin/GeneralConfig.php:479
|
688 |
msgid "Out of Stock products"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: application/admin/GeneralConfig.php:480
|
692 |
msgid "How to deal with Out of Stock products."
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: application/admin/GeneralConfig.php:483
|
696 |
msgid "Do nothing"
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: application/admin/GeneralConfig.php:484
|
700 |
msgid "Hide price"
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: application/admin/GeneralConfig.php:485
|
704 |
msgid "Hide product"
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: application/admin/GeneralConfig.php:491
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
708 |
msgid "Search modules"
|
709 |
msgstr ""
|
710 |
|
711 |
+
#: application/admin/GeneralConfig.php:492
|
712 |
msgid "Select modules to search on frontend."
|
713 |
msgstr ""
|
714 |
|
715 |
+
#: application/admin/GeneralConfig.php:493
|
716 |
msgid "Do not select more than 1-2 modules."
|
717 |
msgstr ""
|
718 |
|
719 |
+
#: application/admin/GeneralConfig.php:494
|
720 |
msgid ""
|
721 |
"Please note, AE modules work slowly and are not recommended for use as "
|
722 |
"search modules."
|
723 |
msgstr ""
|
724 |
|
725 |
+
#: application/admin/GeneralConfig.php:495
|
726 |
msgid ""
|
727 |
"Do not forget to add search widget or shorcode [content-egg-search-form]."
|
728 |
msgstr ""
|
729 |
|
730 |
+
#: application/admin/GeneralConfig.php:499
|
731 |
+
#: application/admin/GeneralConfig.php:507
|
732 |
msgid "Frontend search"
|
733 |
msgstr ""
|
734 |
|
735 |
+
#: application/admin/GeneralConfig.php:502
|
736 |
msgid "Search page template"
|
737 |
msgstr ""
|
738 |
|
739 |
+
#: application/admin/GeneralConfig.php:503
|
740 |
msgid "Template for body of search page."
|
741 |
msgstr ""
|
742 |
|
743 |
+
#: application/admin/GeneralConfig.php:504
|
744 |
msgid ""
|
745 |
"You can use shortcodes, for example: [content-egg module=Amazon "
|
746 |
"template=grid]"
|
747 |
msgstr ""
|
748 |
|
749 |
+
#: application/admin/GeneralConfig.php:510
|
750 |
+
msgid "Merchant logos"
|
751 |
+
msgstr ""
|
752 |
+
|
753 |
+
#: application/admin/GeneralConfig.php:511
|
754 |
+
msgid "You can add your own custom merchant logos."
|
755 |
+
msgstr ""
|
756 |
+
|
757 |
+
#: application/admin/GeneralConfig.php:523
|
758 |
+
msgid "Amazon disclaimer"
|
759 |
+
msgstr ""
|
760 |
+
|
761 |
+
#: application/admin/GeneralConfig.php:532
|
762 |
+
msgid "Frontend texts"
|
763 |
+
msgstr ""
|
764 |
+
|
765 |
+
#: application/admin/GeneralConfig.php:535
|
766 |
+
msgid "Translation"
|
767 |
+
msgstr ""
|
768 |
+
|
769 |
+
#: application/admin/GeneralConfig.php:582
|
770 |
+
msgid "Domain name"
|
771 |
+
msgstr ""
|
772 |
+
|
773 |
+
#: application/admin/GeneralConfig.php:585
|
774 |
+
msgid "Logo URL"
|
775 |
+
msgstr ""
|
776 |
+
|
777 |
+
#: application/admin/GeneralConfig.php:642
|
778 |
+
msgid "Translated string"
|
779 |
+
msgstr ""
|
780 |
+
|
781 |
#: application/admin/ImportExportController.php:28
|
782 |
msgid "Import/Export"
|
783 |
msgstr ""
|
794 |
msgid "Invalid format."
|
795 |
msgstr ""
|
796 |
|
797 |
+
#: application/admin/LicConfig.php:38
|
798 |
#: application/admin/views/lic_settings.php:4
|
799 |
#: application/modules/BingImages/BingImagesConfig.php:88
|
800 |
msgid "License"
|
801 |
msgstr ""
|
802 |
|
803 |
+
#: application/admin/LicConfig.php:45
|
804 |
msgid "License key"
|
805 |
msgstr ""
|
806 |
|
807 |
+
#: application/admin/LicConfig.php:46
|
808 |
+
msgid "Please enter your license key."
|
|
|
|
|
|
|
|
|
809 |
msgstr ""
|
810 |
|
811 |
+
#: application/admin/LicConfig.php:53
|
812 |
msgid "The \"License key\" can not be empty"
|
813 |
msgstr ""
|
814 |
|
815 |
+
#: application/admin/LicConfig.php:57
|
816 |
msgid "Invalid license key"
|
817 |
msgstr ""
|
818 |
|
819 |
+
#: application/admin/LicConfig.php:62
|
820 |
msgid "License key is not accepted. Make sure that you use actual key."
|
821 |
msgstr ""
|
822 |
|
823 |
+
#: application/admin/LicConfig.php:64
|
824 |
msgid ""
|
825 |
"If you have correct key, but it's not accepted, this means that your server "
|
826 |
"blocks external connections or there is any other reason that your server "
|
827 |
"doesn't allow to connect to keywordrush.com site."
|
828 |
msgstr ""
|
829 |
|
830 |
+
#: application/admin/LicConfig.php:66
|
831 |
msgid "Please, write about this to your hosting provider."
|
832 |
msgstr ""
|
833 |
|
834 |
+
#: application/admin/LicConfig.php:68
|
835 |
msgid ""
|
836 |
"If you need our help, write to <a href=\"http://www.keywordrush.com/en/"
|
837 |
"contact\">our support</a>."
|
845 |
msgid " ago"
|
846 |
msgstr ""
|
847 |
|
848 |
+
#: application/admin/PluginAdmin.php:92
|
849 |
msgid "Are you sure?"
|
850 |
msgstr ""
|
851 |
|
852 |
#: application/admin/PrefillController.php:37
|
853 |
+
#: application/admin/views/prefill.php:116
|
854 |
msgid "Future"
|
855 |
msgstr ""
|
856 |
|
864 |
msgstr ""
|
865 |
|
866 |
#: application/admin/PrefillController.php:132
|
867 |
+
msgid "Unable to find keyword."
|
868 |
msgstr ""
|
869 |
|
870 |
#: application/admin/PrefillController.php:141
|
926 |
msgstr ""
|
927 |
|
928 |
#: application/admin/ProductTable.php:222
|
929 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:165
|
930 |
#: application/modules/BingImages/BingImagesConfig.php:92
|
931 |
#: application/modules/BingImages/BingImagesConfig.php:108
|
932 |
#: application/modules/BingImages/BingImagesConfig.php:121
|
968 |
msgid "Task status"
|
969 |
msgstr ""
|
970 |
|
971 |
+
#: application/admin/views/_metabox_autoblog.php:34
|
972 |
+
msgid "Recurrency"
|
973 |
msgstr ""
|
974 |
|
975 |
+
#: application/admin/views/_metabox_autoblog.php:38
|
|
|
|
|
|
|
|
|
976 |
msgid "Every hour"
|
977 |
msgstr ""
|
978 |
|
979 |
+
#: application/admin/views/_metabox_autoblog.php:39
|
980 |
msgid "5 times in a day"
|
981 |
msgstr ""
|
982 |
|
983 |
+
#: application/admin/views/_metabox_autoblog.php:40
|
984 |
msgid "Twice daily"
|
985 |
msgstr ""
|
986 |
|
987 |
+
#: application/admin/views/_metabox_autoblog.php:41
|
988 |
msgid "Once a day"
|
989 |
msgstr ""
|
990 |
|
991 |
+
#: application/admin/views/_metabox_autoblog.php:42
|
992 |
msgid "Each three days"
|
993 |
msgstr ""
|
994 |
|
995 |
+
#: application/admin/views/_metabox_autoblog.php:43
|
996 |
msgid "Once a week"
|
997 |
msgstr ""
|
998 |
|
999 |
+
#: application/admin/views/_metabox_autoblog.php:44
|
1000 |
msgid "Once in 2 weeks"
|
1001 |
msgstr ""
|
1002 |
|
1003 |
+
#: application/admin/views/_metabox_autoblog.php:46
|
1004 |
+
msgid "How often autoblogging will run this task."
|
1005 |
msgstr ""
|
1006 |
|
1007 |
+
#: application/admin/views/_metabox_autoblog.php:52
|
1008 |
+
#: application/admin/views/_metabox_autoblog.php:152
|
1009 |
#: application/models/AutoblogModel.php:81
|
1010 |
msgid "Keywords"
|
1011 |
msgstr ""
|
1012 |
|
1013 |
+
#: application/admin/views/_metabox_autoblog.php:60
|
1014 |
msgid "Uppercase First Letter for Each Word"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
+
#: application/admin/views/_metabox_autoblog.php:61
|
1018 |
msgid "Uppercase first letter"
|
1019 |
msgstr ""
|
1020 |
|
1021 |
+
#: application/admin/views/_metabox_autoblog.php:62
|
1022 |
msgid "Sort with alpha order"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
+
#: application/admin/views/_metabox_autoblog.php:63
|
1026 |
msgid "All words are inactive"
|
1027 |
msgstr ""
|
1028 |
|
1029 |
+
#: application/admin/views/_metabox_autoblog.php:64
|
1030 |
msgid "All words are active"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: application/admin/views/_metabox_autoblog.php:65
|
1034 |
msgid "Clear list"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
+
#: application/admin/views/_metabox_autoblog.php:69
|
1038 |
msgid "Total"
|
1039 |
msgstr ""
|
1040 |
|
1041 |
+
#: application/admin/views/_metabox_autoblog.php:75
|
1042 |
msgid "Hints"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
+
#: application/admin/views/_metabox_autoblog.php:90
|
1046 |
msgid "Yandex"
|
1047 |
msgstr ""
|
1048 |
|
1049 |
+
#: application/admin/views/_metabox_autoblog.php:91
|
1050 |
msgid "Yandex.Market"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
+
#: application/admin/views/_metabox_autoblog.php:94
|
1054 |
msgid "Start enter keyword"
|
1055 |
msgstr ""
|
1056 |
|
1057 |
+
#: application/admin/views/_metabox_autoblog.php:136
|
1058 |
msgid "Each keyword from separate line."
|
1059 |
msgstr ""
|
1060 |
|
1061 |
+
#: application/admin/views/_metabox_autoblog.php:137
|
1062 |
msgid "One keyword is one post."
|
1063 |
msgstr ""
|
1064 |
|
1065 |
+
#: application/admin/views/_metabox_autoblog.php:138
|
1066 |
msgid "Handled keywords are marked by [brackets]."
|
1067 |
msgstr ""
|
1068 |
|
1069 |
+
#: application/admin/views/_metabox_autoblog.php:139
|
1070 |
msgid "When all keywords will be processed, task will stop."
|
1071 |
msgstr ""
|
1072 |
|
1073 |
+
#: application/admin/views/_metabox_autoblog.php:142
|
1074 |
+
#: application/admin/views/_metabox_autoblog.php:180
|
1075 |
msgid "You can also use separate keywords for some modules:"
|
1076 |
msgstr ""
|
1077 |
|
1078 |
+
#: application/admin/views/_metabox_autoblog.php:160
|
1079 |
msgid "Two format are supported: "
|
1080 |
msgstr ""
|
1081 |
|
1082 |
+
#: application/admin/views/_metabox_autoblog.php:163
|
1083 |
msgid "CSV files in format:"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
+
#: application/admin/views/_metabox_autoblog.php:172
|
1087 |
msgid "Divider - \";\""
|
1088 |
msgstr ""
|
1089 |
|
1090 |
+
#: application/admin/views/_metabox_autoblog.php:173
|
1091 |
msgid "For each category will be created separate task for autoblog."
|
1092 |
msgstr ""
|
1093 |
|
1094 |
+
#: application/admin/views/_metabox_autoblog.php:175
|
1095 |
msgid "TXT files:"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
+
#: application/admin/views/_metabox_autoblog.php:176
|
1099 |
msgid "Simple text file with list of keywords (each word from separate line)."
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: application/admin/views/_metabox_autoblog.php:178
|
1103 |
msgid "File must be in UTF-8"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
+
#: application/admin/views/_metabox_autoblog.php:191
|
1107 |
+
msgid "Process keywords"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
+
#: application/admin/views/_metabox_autoblog.php:196
|
1111 |
+
msgid "How many keywords to process at a time."
|
|
|
|
|
1112 |
msgstr ""
|
1113 |
|
1114 |
+
#: application/admin/views/_metabox_autoblog.php:201
|
1115 |
+
msgid "Post title template "
|
1116 |
msgstr ""
|
1117 |
|
1118 |
+
#: application/admin/views/_metabox_autoblog.php:208
|
|
|
|
|
|
|
|
|
1119 |
msgid "Use tags:"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
+
#: application/admin/views/_metabox_autoblog.php:209
|
1123 |
msgid "For display data of plugin use special tags, for example:"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
+
#: application/admin/views/_metabox_autoblog.php:210
|
1127 |
msgid "You also can set index number for access to data of plugin"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
+
#: application/admin/views/_metabox_autoblog.php:211
|
1131 |
msgid ""
|
1132 |
"You can use \"formulas\" with synonyms, of which one will be selected with a "
|
1133 |
"random option, for example, {Discount|Sale|Cheap}."
|
1134 |
msgstr ""
|
1135 |
|
1136 |
+
#: application/admin/views/_metabox_autoblog.php:218
|
1137 |
+
msgid "Post body template "
|
1138 |
msgstr ""
|
1139 |
|
1140 |
+
#: application/admin/views/_metabox_autoblog.php:224
|
1141 |
+
msgid "You can use CE shortcodes like:"
|
1142 |
msgstr ""
|
1143 |
|
1144 |
+
#: application/admin/views/_metabox_autoblog.php:226
|
1145 |
+
#: application/admin/views/_metabox_autoblog.php:436
|
1146 |
+
#: application/admin/views/_metabox_autoblog.php:478
|
|
|
|
|
|
|
|
|
1147 |
msgid ""
|
1148 |
"\"Formulas\", and also all tags from title template, will also work here."
|
1149 |
msgstr ""
|
1150 |
|
1151 |
+
#: application/admin/views/_metabox_autoblog.php:233
|
1152 |
msgid "Only selected modules"
|
1153 |
msgstr ""
|
1154 |
|
1155 |
+
#: application/admin/views/_metabox_autoblog.php:244
|
1156 |
msgid "Run only selected modules for this task."
|
1157 |
msgstr ""
|
1158 |
|
1159 |
+
#: application/admin/views/_metabox_autoblog.php:245
|
1160 |
msgid "If you don't select any modules, all active modules will be used."
|
1161 |
msgstr ""
|
1162 |
|
1163 |
+
#: application/admin/views/_metabox_autoblog.php:252
|
1164 |
msgid "Exclude modules"
|
1165 |
msgstr ""
|
1166 |
|
1167 |
+
#: application/admin/views/_metabox_autoblog.php:263
|
1168 |
msgid "Chosen modules will not run in this configuration. "
|
1169 |
msgstr ""
|
1170 |
|
1171 |
+
#: application/admin/views/_metabox_autoblog.php:270
|
1172 |
+
#: application/admin/views/prefill.php:113
|
1173 |
msgid "Post status"
|
1174 |
msgstr ""
|
1175 |
|
1176 |
+
#: application/admin/views/_metabox_autoblog.php:282
|
1177 |
+
#: application/admin/views/prefill.php:101
|
1178 |
msgid "Post type"
|
1179 |
msgstr ""
|
1180 |
|
1181 |
+
#: application/admin/views/_metabox_autoblog.php:300
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1182 |
#: application/modules/Aliexpress/AliexpressConfig.php:89
|
1183 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:133
|
1184 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:89
|
1185 |
#: application/modules/CjLinks/CjLinksConfig.php:135
|
1186 |
#: application/modules/Clickbank/ClickbankConfig.php:69
|
1187 |
+
#: application/modules/Ebay/EbayConfig.php:170
|
1188 |
#: application/modules/Linkshare/LinkshareConfig.php:106
|
1189 |
#: application/modules/Ozon/OzonConfig.php:93
|
1190 |
#: application/modules/Pepperjam/PepperjamConfig.php:97
|
1194 |
msgid "Category "
|
1195 |
msgstr ""
|
1196 |
|
1197 |
+
#: application/admin/views/_metabox_autoblog.php:307
|
1198 |
msgid "Create Automatically"
|
1199 |
msgstr ""
|
1200 |
|
1201 |
+
#: application/admin/views/_metabox_autoblog.php:318
|
1202 |
+
msgid "Default category."
|
1203 |
msgstr ""
|
1204 |
|
1205 |
+
#: application/admin/views/_metabox_autoblog.php:320
|
1206 |
msgid ""
|
1207 |
"\"Create Automatically\" means, that categories will be created based on "
|
1208 |
"data of CSV file with keywords and categories."
|
1209 |
msgstr ""
|
1210 |
|
1211 |
+
#: application/admin/views/_metabox_autoblog.php:328
|
1212 |
+
msgid "User"
|
1213 |
+
msgstr ""
|
1214 |
+
|
1215 |
+
#: application/admin/views/_metabox_autoblog.php:335
|
1216 |
+
msgid "This user will be author of posts."
|
1217 |
+
msgstr ""
|
1218 |
+
|
1219 |
+
#: application/admin/views/_metabox_autoblog.php:340
|
1220 |
msgid "Dynamic categories"
|
1221 |
msgstr ""
|
1222 |
|
1223 |
+
#: application/admin/views/_metabox_autoblog.php:344
|
1224 |
msgid "Do not create"
|
1225 |
msgstr ""
|
1226 |
|
1227 |
+
#: application/admin/views/_metabox_autoblog.php:345
|
1228 |
msgid "Create category"
|
1229 |
msgstr ""
|
1230 |
|
1231 |
+
#: application/admin/views/_metabox_autoblog.php:346
|
1232 |
msgid "Create nested categories"
|
1233 |
msgstr ""
|
1234 |
|
1235 |
+
#: application/admin/views/_metabox_autoblog.php:348
|
1236 |
msgid ""
|
1237 |
"Create a category automatically, if the main product has a category data."
|
1238 |
msgstr ""
|
1239 |
|
1240 |
+
#: application/admin/views/_metabox_autoblog.php:354
|
1241 |
msgid "Minimum modules required"
|
1242 |
msgstr ""
|
1243 |
|
1244 |
+
#: application/admin/views/_metabox_autoblog.php:359
|
1245 |
msgid "Post will not be published if no content for such number of modules."
|
1246 |
msgstr ""
|
1247 |
|
1248 |
+
#: application/admin/views/_metabox_autoblog.php:365
|
1249 |
msgid "Minimum reviews required"
|
1250 |
msgstr ""
|
1251 |
|
1252 |
+
#: application/admin/views/_metabox_autoblog.php:370
|
1253 |
msgid ""
|
1254 |
"Post will not be published if there are no user reviews. This option works "
|
1255 |
"only for AE modules."
|
1256 |
msgstr ""
|
1257 |
|
1258 |
+
#: application/admin/views/_metabox_autoblog.php:376
|
1259 |
#: application/components/AffiliateParserModuleConfig.php:20
|
1260 |
msgid "Update by keyword"
|
1261 |
msgstr ""
|
1262 |
|
1263 |
+
#: application/admin/views/_metabox_autoblog.php:387
|
1264 |
msgid ""
|
1265 |
"For selected modules, the current keyword will be used as a keyword for "
|
1266 |
"autoupdate. Data of the module will be updated periodically In accordance "
|
1267 |
"with the configuration of the lifetime of the cache."
|
1268 |
msgstr ""
|
1269 |
|
1270 |
+
#: application/admin/views/_metabox_autoblog.php:393
|
1271 |
msgid "Required modules"
|
1272 |
msgstr ""
|
1273 |
|
1274 |
+
#: application/admin/views/_metabox_autoblog.php:404
|
1275 |
msgid "Post will not be publicized if no results for these modules."
|
1276 |
msgstr ""
|
1277 |
|
1278 |
+
#: application/admin/views/_metabox_autoblog.php:411
|
1279 |
msgid "Main product"
|
1280 |
msgstr ""
|
1281 |
|
1282 |
+
#: application/admin/views/_metabox_autoblog.php:420
|
1283 |
msgid "How to choose \"main\" product?"
|
1284 |
msgstr ""
|
1285 |
|
1286 |
+
#: application/admin/views/_metabox_autoblog.php:421
|
1287 |
msgid "Then you can use tags:"
|
1288 |
msgstr ""
|
1289 |
|
1290 |
+
#: application/admin/views/_metabox_autoblog.php:428
|
1291 |
msgid "Tags"
|
1292 |
msgstr ""
|
1293 |
|
1294 |
+
#: application/admin/views/_metabox_autoblog.php:435
|
1295 |
msgid "Comma separated list of tags."
|
1296 |
msgstr ""
|
1297 |
|
1298 |
+
#: application/admin/views/_metabox_autoblog.php:443
|
1299 |
+
#: application/modules/Ebay/EbayConfig.php:194
|
1300 |
msgid "Product condition"
|
1301 |
msgstr ""
|
1302 |
|
1303 |
+
#: application/admin/views/_metabox_autoblog.php:447
|
1304 |
#: application/modules/Amazon/AmazonConfig.php:208
|
1305 |
#: application/modules/Amazon/AmazonConfig.php:233
|
1306 |
#: application/modules/Amazon/AmazonConfig.php:294
|
1321 |
msgid "Any"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
+
#: application/admin/views/_metabox_autoblog.php:448
|
1325 |
#: application/admin/views/module_index.php:16
|
1326 |
#: application/modules/Amazon/AmazonConfig.php:234
|
1327 |
#: application/modules/Twitter/TwitterConfig.php:118
|
1328 |
#: application/modules/Twitter/views/search_panel.php:3
|
1329 |
+
#: application/modules/Walmart/WalmartConfig.php:107
|
1330 |
msgid "New"
|
1331 |
msgstr ""
|
1332 |
|
1333 |
+
#: application/admin/views/_metabox_autoblog.php:449
|
1334 |
#: application/modules/Amazon/AmazonConfig.php:235
|
1335 |
msgid "Used"
|
1336 |
msgstr ""
|
1337 |
|
1338 |
+
#: application/admin/views/_metabox_autoblog.php:450
|
1339 |
#: application/modules/Amazon/AmazonConfig.php:237
|
1340 |
msgid "Refurbished"
|
1341 |
msgstr ""
|
1342 |
|
1343 |
+
#: application/admin/views/_metabox_autoblog.php:451
|
1344 |
msgid "Open box, no signs (Ebay only)"
|
1345 |
msgstr ""
|
1346 |
|
1347 |
+
#: application/admin/views/_metabox_autoblog.php:452
|
1348 |
msgid "Seller refurbished (Ebay only)"
|
1349 |
msgstr ""
|
1350 |
|
1351 |
+
#: application/admin/views/_metabox_autoblog.php:453
|
1352 |
msgid "For parts or not working (Ebay only)"
|
1353 |
msgstr ""
|
1354 |
|
1355 |
+
#: application/admin/views/_metabox_autoblog.php:456
|
1356 |
msgid "This parameter is supported only by the following modules: Amazon, Ebay"
|
1357 |
msgstr ""
|
1358 |
|
1359 |
+
#: application/admin/views/_metabox_autoblog.php:464
|
1360 |
+
#: application/admin/views/prefill.php:131
|
1361 |
msgid "Add custom fields"
|
1362 |
msgstr ""
|
1363 |
|
1364 |
+
#: application/admin/views/_metabox_autoblog.php:469
|
1365 |
msgid "Custom Field"
|
1366 |
msgstr ""
|
1367 |
|
1368 |
+
#: application/admin/views/_metabox_autoblog.php:474
|
1369 |
msgid "Value"
|
1370 |
msgstr ""
|
1371 |
|
1379 |
msgstr ""
|
1380 |
|
1381 |
#: application/admin/views/_metabox_results.php:33
|
1382 |
+
#: application/helpers/TemplateHelper.php:367
|
1383 |
#: application/models/ProductModel.php:64
|
1384 |
#: application/modules/GdeSlon/GdeSlonConfig.php:84
|
1385 |
#: application/modules/LomadeeProducts/LomadeeProductsConfig.php:90
|
1386 |
#: application/modules/Offer/views/metabox_module.php:91
|
1387 |
#: application/modules/Udemy/UdemyConfig.php:155
|
1388 |
+
#: application/modules/Walmart/WalmartConfig.php:103
|
1389 |
+
#: application/templates/data_price_tracker_alert.php:39
|
1390 |
msgid "Price"
|
1391 |
msgstr ""
|
1392 |
|
1416 |
msgstr ""
|
1417 |
|
1418 |
#: application/admin/views/_metabox_results.php:77
|
1419 |
+
#: application/admin/views/_promo_box.php:71
|
1420 |
#: application/modules/Coupon/views/metabox_module.php:111
|
1421 |
#: application/modules/Offer/views/metabox_module.php:124
|
1422 |
msgid "Go to "
|
1427 |
msgid "Last updated:"
|
1428 |
msgstr ""
|
1429 |
|
1430 |
+
#: application/admin/views/_metabox_results.php:89
|
1431 |
#: application/modules/Coupon/views/metabox_module.php:112
|
1432 |
#: application/modules/Offer/views/metabox_module.php:136
|
1433 |
msgid "Remove"
|
1442 |
msgid "Coupon code:"
|
1443 |
msgstr ""
|
1444 |
|
1445 |
+
#: application/admin/views/_promo_box.php:67
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1446 |
msgid "Activate plugin"
|
1447 |
msgstr ""
|
1448 |
|
1449 |
+
#: application/admin/views/_promo_box.php:68
|
1450 |
#: application/admin/views/envato_activation.php:5
|
1451 |
msgid ""
|
1452 |
"In order to receive all benefits of Contennt Egg, you need to activate your "
|
1453 |
"copy of the plugin."
|
1454 |
msgstr ""
|
1455 |
|
1456 |
+
#: application/admin/views/_promo_box.php:69
|
1457 |
#: application/admin/views/envato_activation.php:6
|
1458 |
msgid ""
|
1459 |
"By activating Contennt Egg license you will unlock premium options - direct "
|
1474 |
|
1475 |
#: application/admin/views/ae_integration.php:15
|
1476 |
msgid ""
|
1477 |
+
"Here is the <a href=\"http://www.keywordrush.com/res/ae_supported_shops.txt"
|
1478 |
"\">full list</a> of Affiliate Egg supported shops."
|
1479 |
msgstr ""
|
1480 |
|
1517 |
msgid "Working... Please wait..."
|
1518 |
msgstr ""
|
1519 |
|
1520 |
+
#: application/admin/views/autoblog_index.php:24
|
1521 |
msgid "Deleted tasks for autoblogging: "
|
1522 |
msgstr ""
|
1523 |
|
1524 |
+
#: application/admin/views/autoblog_index.php:27
|
1525 |
msgid "Autoblogging finished tasks"
|
1526 |
msgstr ""
|
1527 |
|
1528 |
+
#: application/admin/views/autoblog_index.php:45
|
1529 |
msgid "You can create automatic creating of posts with autoblogging"
|
1530 |
msgstr ""
|
1531 |
|
1559 |
msgid "Import"
|
1560 |
msgstr ""
|
1561 |
|
1562 |
+
#: application/admin/views/lic_settings.php:13
|
1563 |
+
msgid "Activate license"
|
1564 |
msgstr ""
|
1565 |
|
1566 |
+
#: application/admin/views/lic_settings.php:17
|
1567 |
+
#: application/admin/views/lic_settings.php:25
|
1568 |
msgid "Deactivate license"
|
1569 |
msgstr ""
|
1570 |
|
1571 |
+
#: application/admin/views/lic_settings.php:18
|
1572 |
+
msgid "You can transfer your license to a new domain."
|
1573 |
msgstr ""
|
1574 |
|
1575 |
+
#: application/admin/views/lic_settings.php:19
|
1576 |
msgid ""
|
1577 |
"After deactivating license, you must deactivate and delete Content Egg from "
|
1578 |
+
"your current domain."
|
1579 |
msgstr ""
|
1580 |
|
1581 |
#: application/admin/views/metabox_general.php:9
|
1668 |
msgid "Deprecated"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
+
#: application/admin/views/module_index.php:30
|
1672 |
+
#: application/admin/views/module_settings.php:8
|
1673 |
msgid "Module Settings"
|
1674 |
msgstr ""
|
1675 |
|
1676 |
+
#: application/admin/views/module_index.php:56
|
1677 |
msgid "Product modules"
|
1678 |
msgstr ""
|
1679 |
|
1680 |
+
#: application/admin/views/module_index.php:67
|
1681 |
msgid "Affiliate Egg modules"
|
1682 |
msgstr ""
|
1683 |
|
1684 |
+
#: application/admin/views/module_index.php:75
|
1685 |
+
msgid "Feed modules"
|
1686 |
+
msgstr ""
|
1687 |
+
|
1688 |
+
#: application/admin/views/module_index.php:82
|
1689 |
msgid "Coupon modules"
|
1690 |
msgstr ""
|
1691 |
|
1692 |
+
#: application/admin/views/module_index.php:93
|
1693 |
msgid "Content modules"
|
1694 |
msgstr ""
|
1695 |
|
1696 |
+
#: application/admin/views/module_settings.php:32
|
1697 |
+
msgid "Add new feed module"
|
1698 |
+
msgstr ""
|
1699 |
+
|
1700 |
+
#: application/admin/views/module_settings.php:34
|
1701 |
msgid "%s Settings"
|
1702 |
msgstr ""
|
1703 |
|
1704 |
+
#: application/admin/views/module_settings.php:36
|
1705 |
+
msgid "Documentation"
|
1706 |
msgstr ""
|
1707 |
|
1708 |
+
#: application/admin/views/module_settings.php:43
|
1709 |
+
#: application/admin/views/module_settings.php:51
|
1710 |
+
#: application/admin/views/module_settings.php:62
|
1711 |
msgid "WARNING:"
|
1712 |
msgstr ""
|
1713 |
|
1714 |
+
#: application/admin/views/module_settings.php:44
|
1715 |
msgid "Amazon PA-API v4 <a target=\"_blank\" href=\"%s\"> is deprecated</a>."
|
1716 |
msgstr ""
|
1717 |
|
1718 |
+
#: application/admin/views/module_settings.php:45
|
1719 |
msgid ""
|
1720 |
"Only <a target=\"_blank\" href=\"%s\">Content Egg Pro</a> has support for "
|
1721 |
"the new PA-API v5."
|
1722 |
msgstr ""
|
1723 |
|
1724 |
+
#: application/admin/views/module_settings.php:46
|
1725 |
msgid "Please"
|
1726 |
msgstr ""
|
1727 |
|
1728 |
+
#: application/admin/views/module_settings.php:46
|
1729 |
msgid "read more..."
|
1730 |
msgstr ""
|
1731 |
|
1732 |
+
#: application/admin/views/module_settings.php:52
|
1733 |
msgid "This module is deprecated"
|
1734 |
msgstr ""
|
1735 |
|
1736 |
+
#: application/admin/views/module_settings.php:53
|
1737 |
msgid "what does this mean"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
+
#: application/admin/views/module_settings.php:63
|
1741 |
msgid "This module cannot be activated!"
|
1742 |
msgstr ""
|
1743 |
|
1744 |
+
#: application/admin/views/module_settings.php:64
|
1745 |
msgid "Please fix the following error(s):"
|
1746 |
msgstr ""
|
1747 |
|
1748 |
+
#: application/admin/views/module_settings.php:94
|
1749 |
msgid "Last feed import: %s."
|
1750 |
msgstr ""
|
1751 |
|
1752 |
+
#: application/admin/views/module_settings.php:95
|
1753 |
msgid "Total products: %d."
|
1754 |
msgstr ""
|
1755 |
|
1756 |
+
#: application/admin/views/module_settings.php:97
|
1757 |
msgid "Your unzipped feed must be smaller than this."
|
1758 |
msgstr ""
|
1759 |
|
1760 |
+
#: application/admin/views/module_settings.php:97
|
1761 |
msgid "WordPress memory limit: %s"
|
1762 |
msgstr ""
|
1763 |
|
1764 |
+
#: application/admin/views/module_settings.php:101
|
1765 |
msgid "Last error: %s"
|
1766 |
msgstr ""
|
1767 |
|
1768 |
+
#: application/admin/views/module_settings.php:106
|
1769 |
+
msgid "Export product URLs"
|
1770 |
+
msgstr ""
|
1771 |
+
|
1772 |
+
#: application/admin/views/module_settings.php:108
|
1773 |
+
msgid "Export product EANs"
|
1774 |
+
msgstr ""
|
1775 |
+
|
1776 |
+
#: application/admin/views/module_settings.php:110
|
1777 |
+
msgid "Export dublicate EANs"
|
1778 |
+
msgstr ""
|
1779 |
+
|
1780 |
#: application/admin/views/prefill.php:15
|
1781 |
msgid "This extension will fill module's data for all existed posts."
|
1782 |
msgstr ""
|
1789 |
msgid "Delay"
|
1790 |
msgstr ""
|
1791 |
|
1792 |
+
#: application/admin/views/prefill.php:39
|
1793 |
msgid "Delay in seconds between each post prefill."
|
1794 |
msgstr ""
|
1795 |
|
1796 |
+
#: application/admin/views/prefill.php:44
|
1797 |
msgid "Add data for module"
|
1798 |
msgstr ""
|
1799 |
|
1800 |
+
#: application/admin/views/prefill.php:54
|
1801 |
msgid "Keyword source"
|
1802 |
msgstr ""
|
1803 |
|
1804 |
+
#: application/admin/views/prefill.php:57
|
1805 |
+
msgid "Post title"
|
1806 |
msgstr ""
|
1807 |
|
1808 |
+
#: application/admin/views/prefill.php:58
|
1809 |
+
msgid "Keyword density"
|
1810 |
msgstr ""
|
1811 |
|
1812 |
+
#: application/admin/views/prefill.php:59
|
1813 |
msgid "Post tags"
|
1814 |
msgstr ""
|
1815 |
|
1816 |
+
#: application/admin/views/prefill.php:60
|
1817 |
msgid "Arbitrary custom field"
|
1818 |
msgstr ""
|
1819 |
|
1820 |
+
#: application/admin/views/prefill.php:62
|
1821 |
+
msgid "autoupdate keyword"
|
1822 |
msgstr ""
|
1823 |
|
1824 |
+
#: application/admin/views/prefill.php:65
|
1825 |
+
msgid "EAN"
|
1826 |
msgstr ""
|
1827 |
|
1828 |
#: application/admin/views/prefill.php:68
|
1829 |
+
msgid "Set the name of a custom field"
|
1830 |
+
msgstr ""
|
1831 |
+
|
1832 |
+
#: application/admin/views/prefill.php:73
|
1833 |
msgid "Autoupdate"
|
1834 |
msgstr ""
|
1835 |
|
1836 |
+
#: application/admin/views/prefill.php:75
|
1837 |
msgid "Add Keyword for the automatic update"
|
1838 |
msgstr ""
|
1839 |
|
1840 |
+
#: application/admin/views/prefill.php:76
|
1841 |
msgid "Only for those modules, which have autoupdate function."
|
1842 |
msgstr ""
|
1843 |
|
1844 |
+
#: application/admin/views/prefill.php:81
|
1845 |
msgid "Number of words"
|
1846 |
msgstr ""
|
1847 |
|
1848 |
+
#: application/admin/views/prefill.php:88
|
1849 |
msgid "Maximum words for one search query."
|
1850 |
msgstr ""
|
1851 |
|
1852 |
+
#: application/admin/views/prefill.php:93
|
1853 |
msgid "\"Minus\" words"
|
1854 |
msgstr ""
|
1855 |
|
1856 |
+
#: application/admin/views/prefill.php:96
|
1857 |
msgid ""
|
1858 |
"Remove these words from keyword. You can set several minus words/phrases "
|
1859 |
"with commas."
|
1860 |
msgstr ""
|
1861 |
|
1862 |
+
#: application/admin/views/prefill.php:108
|
1863 |
msgid "You can set all supported post types in General settings -> Post Types."
|
1864 |
msgstr ""
|
1865 |
|
1866 |
+
#: application/admin/views/prefill.php:134
|
1867 |
msgid "Custom Field %d"
|
1868 |
msgstr ""
|
1869 |
|
1870 |
+
#: application/admin/views/prefill.php:135
|
1871 |
msgid "Value %d"
|
1872 |
msgstr ""
|
1873 |
|
1874 |
+
#: application/admin/views/prefill.php:138
|
1875 |
msgid "You can use tags: %s."
|
1876 |
msgstr ""
|
1877 |
|
1878 |
+
#: application/admin/views/prefill.php:145
|
1879 |
#: application/models/AutoblogModel.php:79
|
1880 |
msgid "Total posts"
|
1881 |
msgstr ""
|
1882 |
|
1883 |
+
#: application/admin/views/prefill.php:149
|
1884 |
msgid "Start"
|
1885 |
msgstr ""
|
1886 |
|
1887 |
+
#: application/admin/views/prefill.php:150
|
1888 |
+
msgid "Restart"
|
1889 |
msgstr ""
|
1890 |
|
1891 |
+
#: application/admin/views/prefill.php:151
|
1892 |
msgid "Stop"
|
1893 |
msgstr ""
|
1894 |
|
1912 |
msgid "Content Egg Settings"
|
1913 |
msgstr ""
|
1914 |
|
1915 |
+
#: application/components/AffiliateFeedParserModule.php:292
|
1916 |
+
msgid "Product import is in progress"
|
1917 |
msgstr ""
|
1918 |
|
1919 |
+
#: application/components/AffiliateFeedParserModule.php:372
|
1920 |
msgid ""
|
1921 |
"Your data feed is too large and cannot be imported. Use a smaller feed or "
|
1922 |
"increase <a target=\"_blank\" href=\"%s\">WP_MAX_MEMORY_LIMIT</a>."
|
1944 |
#: application/modules/CjProducts/CjProductsConfig.php:64
|
1945 |
#: application/modules/Clickbank/ClickbankConfig.php:37
|
1946 |
#: application/modules/Daisycon/DaisyconConfig.php:64
|
1947 |
+
#: application/modules/Ebay/EbayConfig.php:120
|
1948 |
#: application/modules/Envato/EnvatoConfig.php:58
|
1949 |
#: application/modules/Flickr/FlickrConfig.php:37
|
1950 |
#: application/modules/Flipkart/FlipkartConfig.php:72
|
1977 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:85
|
1978 |
#: application/modules/TradedoublerCoupons/TradedoublerCouponsConfig.php:37
|
1979 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:37
|
1980 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:95
|
1981 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:106
|
1982 |
#: application/modules/Twitter/TwitterConfig.php:82
|
1983 |
#: application/modules/Udemy/UdemyConfig.php:66
|
1984 |
#: application/modules/Viglink/ViglinkConfig.php:52
|
1985 |
#: application/modules/VkNews/VkNewsConfig.php:22
|
1986 |
+
#: application/modules/Walmart/WalmartConfig.php:48
|
1987 |
#: application/modules/Youtube/YoutubeConfig.php:37
|
1988 |
#: application/modules/Zanox/ZanoxConfig.php:47
|
1989 |
msgid "Results"
|
2008 |
#: application/modules/CjProducts/CjProductsConfig.php:65
|
2009 |
#: application/modules/Clickbank/ClickbankConfig.php:38
|
2010 |
#: application/modules/Daisycon/DaisyconConfig.php:65
|
2011 |
+
#: application/modules/Ebay/EbayConfig.php:121
|
2012 |
#: application/modules/Envato/EnvatoConfig.php:59
|
2013 |
#: application/modules/Flipkart/FlipkartConfig.php:73
|
2014 |
#: application/modules/GdeSlon/GdeSlonConfig.php:48
|
2026 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:86
|
2027 |
#: application/modules/TradedoublerCoupons/TradedoublerCouponsConfig.php:38
|
2028 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:38
|
2029 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:96
|
2030 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:107
|
2031 |
#: application/modules/Udemy/UdemyConfig.php:67
|
2032 |
#: application/modules/Viglink/ViglinkConfig.php:53
|
2033 |
+
#: application/modules/Walmart/WalmartConfig.php:49
|
2034 |
#: application/modules/Zanox/ZanoxConfig.php:48
|
2035 |
msgid "Number of results for one search query."
|
2036 |
msgstr ""
|
2072 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:111
|
2073 |
#: application/modules/Udemy/UdemyConfig.php:76
|
2074 |
#: application/modules/Udemy/UdemyConfig.php:91
|
2075 |
+
#: application/modules/Walmart/WalmartConfig.php:58
|
2076 |
+
#: application/modules/Walmart/WalmartConfig.php:73
|
2077 |
msgid "The field \"%s\" can not be more than %d."
|
2078 |
msgstr ""
|
2079 |
|
2111 |
#: application/modules/CjProducts/CjProductsConfig.php:75
|
2112 |
#: application/modules/Clickbank/ClickbankConfig.php:54
|
2113 |
#: application/modules/Daisycon/DaisyconConfig.php:80
|
2114 |
+
#: application/modules/Ebay/EbayConfig.php:137
|
2115 |
#: application/modules/Envato/EnvatoConfig.php:74
|
2116 |
#: application/modules/Flipkart/FlipkartConfig.php:89
|
2117 |
#: application/modules/GdeSlon/GdeSlonConfig.php:64
|
2129 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:102
|
2130 |
#: application/modules/TradedoublerCoupons/TradedoublerCouponsConfig.php:49
|
2131 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:49
|
2132 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:107
|
2133 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:118
|
2134 |
#: application/modules/Udemy/UdemyConfig.php:82
|
2135 |
#: application/modules/Viglink/ViglinkConfig.php:63
|
2136 |
+
#: application/modules/Walmart/WalmartConfig.php:64
|
2137 |
#: application/modules/Zanox/ZanoxConfig.php:64
|
2138 |
msgid "Number of results for automatic updates and autoblogging."
|
2139 |
msgstr ""
|
2159 |
#: application/modules/Affiliatewindow/AffiliatewindowConfig.php:130
|
2160 |
#: application/modules/AffilinetProducts/AffilinetProductsConfig.php:167
|
2161 |
#: application/modules/Aliexpress/AliexpressConfig.php:260
|
2162 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:214
|
2163 |
#: application/modules/Amazon/AmazonConfig.php:303
|
2164 |
#: application/modules/Amazon/AmazonConfig_FREE.php:274
|
2165 |
#: application/modules/AvantlinkProducts/AvantlinkProductsConfig.php:218
|
2170 |
#: application/modules/CjProducts/CjProductsConfig.php:113
|
2171 |
#: application/modules/Coupon/CouponConfig.php:22
|
2172 |
#: application/modules/Daisycon/DaisyconConfig.php:101
|
2173 |
+
#: application/modules/Ebay/EbayConfig.php:381
|
2174 |
#: application/modules/Envato/EnvatoConfig.php:219
|
2175 |
#: application/modules/Flickr/FlickrConfig.php:106
|
2176 |
#: application/modules/Flipkart/FlipkartConfig.php:104
|
2194 |
#: application/modules/QwantImages/QwantImagesConfig.php:64
|
2195 |
#: application/modules/Shareasale/ShareasaleConfig.php:109
|
2196 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:159
|
2197 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:171
|
2198 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:182
|
2199 |
#: application/modules/Twitter/TwitterConfig.php:127
|
2200 |
#: application/modules/Udemy/UdemyConfig.php:215
|
2201 |
#: application/modules/Viglink/ViglinkConfig.php:141
|
2202 |
#: application/modules/VkNews/VkNewsConfig.php:44
|
2203 |
+
#: application/modules/Walmart/WalmartConfig.php:167
|
2204 |
#: application/modules/Zanox/ZanoxConfig.php:154
|
2205 |
msgid "Save images"
|
2206 |
msgstr ""
|
2219 |
#: application/modules/CjProducts/CjProductsConfig.php:114
|
2220 |
#: application/modules/Coupon/CouponConfig.php:23
|
2221 |
#: application/modules/Daisycon/DaisyconConfig.php:102
|
2222 |
+
#: application/modules/Ebay/EbayConfig.php:382
|
2223 |
#: application/modules/Envato/EnvatoConfig.php:220
|
2224 |
#: application/modules/Flickr/FlickrConfig.php:107
|
2225 |
#: application/modules/Flipkart/FlipkartConfig.php:105
|
2242 |
#: application/modules/QwantImages/QwantImagesConfig.php:65
|
2243 |
#: application/modules/Shareasale/ShareasaleConfig.php:110
|
2244 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:160
|
2245 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:172
|
2246 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:183
|
2247 |
#: application/modules/Twitter/TwitterConfig.php:128
|
2248 |
#: application/modules/Udemy/UdemyConfig.php:216
|
2249 |
#: application/modules/Viglink/ViglinkConfig.php:142
|
2250 |
#: application/modules/VkNews/VkNewsConfig.php:45
|
2251 |
+
#: application/modules/Walmart/WalmartConfig.php:168
|
2252 |
#: application/modules/Zanox/ZanoxConfig.php:155
|
2253 |
msgid "Save images on server"
|
2254 |
msgstr ""
|
2255 |
|
2256 |
+
#: application/components/AffiliateFeedParserModuleConfig.php:66
|
2257 |
#: application/components/AffiliateParserModuleConfig.php:52
|
2258 |
+
msgid "Cron"
|
2259 |
msgstr ""
|
2260 |
|
2261 |
#: application/components/AffiliateParserModuleConfig.php:21
|
2279 |
msgstr ""
|
2280 |
|
2281 |
#: application/components/AffiliateParserModuleConfig.php:51
|
2282 |
+
msgid "Page view"
|
2283 |
msgstr ""
|
2284 |
|
2285 |
#: application/components/AffiliateParserModuleConfig.php:53
|
2286 |
+
msgid "Page view + Cron"
|
2287 |
msgstr ""
|
2288 |
|
2289 |
#: application/components/ExternalFeaturedImage.php:120
|
2290 |
msgid "External featured image"
|
2291 |
msgstr ""
|
2292 |
|
2293 |
+
#: application/components/LManager.php:138
|
2294 |
+
msgid "License status: <span class=\"egg-label egg-label-%s\">%s</span>."
|
2295 |
+
msgstr ""
|
2296 |
+
|
2297 |
+
#: application/components/LManager.php:140
|
2298 |
+
msgid "You are receiving automatic updates."
|
2299 |
+
msgstr ""
|
2300 |
+
|
2301 |
+
#: application/components/LManager.php:141
|
2302 |
+
msgid "Expires at %s (%d days left)."
|
2303 |
+
msgstr ""
|
2304 |
+
|
2305 |
+
#: application/components/LManager.php:146
|
2306 |
+
#: application/components/LManager.php:174
|
2307 |
+
msgid "Extend now"
|
2308 |
+
msgstr ""
|
2309 |
+
|
2310 |
+
#: application/components/LManager.php:148
|
2311 |
+
#: application/components/LManager.php:176
|
2312 |
+
msgid "with a %d%% discount"
|
2313 |
+
msgstr ""
|
2314 |
+
|
2315 |
+
#: application/components/LManager.php:166
|
2316 |
+
#: application/components/LManager.php:194
|
2317 |
+
msgid "Dismiss"
|
2318 |
+
msgstr ""
|
2319 |
+
|
2320 |
+
#: application/components/LManager.php:168
|
2321 |
+
msgid "License expires soon"
|
2322 |
+
msgstr ""
|
2323 |
+
|
2324 |
+
#: application/components/LManager.php:169
|
2325 |
+
msgid "Your %s license expires at %s (%d days left)."
|
2326 |
+
msgstr ""
|
2327 |
+
|
2328 |
+
#: application/components/LManager.php:170
|
2329 |
+
msgid ""
|
2330 |
+
"You will not receive automatic updates, bug fixes, and technical support."
|
2331 |
+
msgstr ""
|
2332 |
+
|
2333 |
+
#: application/components/LManager.php:197
|
2334 |
+
msgid "License expired"
|
2335 |
+
msgstr ""
|
2336 |
+
|
2337 |
+
#: application/components/LManager.php:198
|
2338 |
+
msgid "Your %s license expired on %s."
|
2339 |
+
msgstr ""
|
2340 |
+
|
2341 |
+
#: application/components/LManager.php:199
|
2342 |
+
msgid ""
|
2343 |
+
"You are not receiving automatic updates, bug fixes, and technical support."
|
2344 |
+
msgstr ""
|
2345 |
+
|
2346 |
+
#: application/components/LManager.php:203
|
2347 |
+
msgid "Renew now"
|
2348 |
+
msgstr ""
|
2349 |
+
|
2350 |
+
#: application/components/LManager.php:212
|
2351 |
+
msgid "License mismatch"
|
2352 |
+
msgstr ""
|
2353 |
+
|
2354 |
+
#: application/components/LManager.php:213
|
2355 |
+
msgid "Your %s license doesn't match your current domain."
|
2356 |
+
msgstr ""
|
2357 |
+
|
2358 |
+
#: application/components/LManager.php:214
|
2359 |
+
msgid ""
|
2360 |
+
"If you wish to continue using the plugin then you must <a target=\"_blank\" "
|
2361 |
+
"href=\"%s\">revoke</a> the license and then <a href=\"%s\">reactivate</a> it "
|
2362 |
+
"again or <a target=\"_blank\" href=\"%s\">buy a new license</a>."
|
2363 |
+
msgstr ""
|
2364 |
+
|
2365 |
+
#: application/components/LManager.php:223
|
2366 |
+
msgid "Check again"
|
2367 |
+
msgstr ""
|
2368 |
+
|
2369 |
#: application/components/ModuleConfig.php:61
|
2370 |
msgid "settings"
|
2371 |
msgstr ""
|
2379 |
msgstr ""
|
2380 |
|
2381 |
#: application/components/ParserModuleConfig.php:34
|
2382 |
+
msgid "Auto-embedding"
|
2383 |
msgstr ""
|
2384 |
|
2385 |
+
#: application/components/ParserModuleConfig.php:37
|
2386 |
+
msgid "Shortcodes only"
|
|
|
|
|
2387 |
msgstr ""
|
2388 |
|
2389 |
#: application/components/ParserModuleConfig.php:38
|
2394 |
msgid "At the beginning of the post"
|
2395 |
msgstr ""
|
2396 |
|
2397 |
+
#: application/components/ParserModuleConfig.php:45
|
|
|
|
|
|
|
|
|
2398 |
msgid "Priority"
|
2399 |
msgstr ""
|
2400 |
|
2401 |
+
#: application/components/ParserModuleConfig.php:46
|
2402 |
msgid ""
|
2403 |
"Priority sets order of modules in post. 0 - is the most highest priority."
|
2404 |
msgstr ""
|
2405 |
|
2406 |
+
#: application/components/ParserModuleConfig.php:47
|
2407 |
msgid "Also it applied to price sorting."
|
2408 |
msgstr ""
|
2409 |
|
2410 |
+
#: application/components/ParserModuleConfig.php:58
|
2411 |
msgid "Default template"
|
2412 |
msgstr ""
|
2413 |
|
2414 |
+
#: application/components/ParserModuleConfig.php:66
|
2415 |
msgid "Templates may use title on data output."
|
2416 |
msgstr ""
|
2417 |
|
2418 |
+
#: application/components/ParserModuleConfig.php:76
|
2419 |
msgid "Automatically set Featured image for post"
|
2420 |
msgstr ""
|
2421 |
|
2422 |
+
#: application/components/ParserModuleConfig.php:79
|
2423 |
msgid "Don't set"
|
2424 |
msgstr ""
|
2425 |
|
2426 |
+
#: application/components/ParserModuleConfig.php:80
|
2427 |
msgid "First image"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
+
#: application/components/ParserModuleConfig.php:81
|
2431 |
msgid "Second image"
|
2432 |
msgstr ""
|
2433 |
|
2434 |
+
#: application/components/ParserModuleConfig.php:82
|
2435 |
msgid "Random image"
|
2436 |
msgstr ""
|
2437 |
|
2438 |
+
#: application/components/ParserModuleConfig.php:83
|
2439 |
msgid "Last image"
|
2440 |
msgstr ""
|
2441 |
|
2442 |
+
#: application/components/ParserModuleConfig.php:89
|
2443 |
msgid "Redirect"
|
2444 |
msgstr ""
|
2445 |
|
2446 |
+
#: application/components/ParserModuleConfig.php:90
|
2447 |
msgid "Make links with local 301 redirect"
|
2448 |
msgstr ""
|
2449 |
|
2450 |
+
#: application/helpers/TemplateHelper.php:771
|
2451 |
+
msgid "today"
|
2452 |
+
msgstr ""
|
2453 |
+
|
2454 |
+
#: application/helpers/TemplateHelper.php:777
|
2455 |
+
msgid "%d day ago"
|
2456 |
+
msgstr ""
|
2457 |
+
|
2458 |
+
#: application/helpers/TemplateHelper.php:884
|
2459 |
+
msgid "in stock"
|
2460 |
+
msgstr ""
|
2461 |
+
|
2462 |
+
#: application/helpers/TemplateHelper.php:886
|
2463 |
+
msgid "out of stock"
|
2464 |
+
msgstr ""
|
2465 |
+
|
2466 |
#: application/models/AutoblogModel.php:76
|
2467 |
msgid "Date of creation"
|
2468 |
msgstr ""
|
2479 |
msgid "Last error"
|
2480 |
msgstr ""
|
2481 |
|
2482 |
+
#: application/models/AutoblogModel.php:210
|
2483 |
msgid ""
|
2484 |
"Required module %s will not run. The module is not configured or deleted."
|
2485 |
msgstr ""
|
2486 |
|
2487 |
+
#: application/models/AutoblogModel.php:277
|
2488 |
msgid "Data was not found for required module %s."
|
2489 |
msgstr ""
|
2490 |
|
2491 |
+
#: application/models/AutoblogModel.php:284
|
2492 |
msgid ""
|
2493 |
"It does not reach the desired amount of data. Minimum required modules: %d."
|
2494 |
msgstr ""
|
2495 |
|
2496 |
+
#: application/models/AutoblogModel.php:300
|
2497 |
msgid "Total reviews found: %d. Minimum reviews required: %d."
|
2498 |
msgstr ""
|
2499 |
|
2500 |
+
#: application/models/AutoblogModel.php:390
|
2501 |
msgid "Post can't be created. Unknown error."
|
2502 |
msgstr ""
|
2503 |
|
2550 |
#: application/modules/CjLinks/CjLinksConfig.php:73
|
2551 |
#: application/modules/CjProducts/CjProductsConfig.php:74
|
2552 |
#: application/modules/Clickbank/ClickbankConfig.php:53
|
2553 |
+
#: application/modules/Ebay/EbayConfig.php:136
|
2554 |
#: application/modules/Envato/EnvatoConfig.php:73
|
2555 |
#: application/modules/Flipkart/FlipkartConfig.php:88
|
2556 |
#: application/modules/GdeSlon/GdeSlonConfig.php:63
|
2563 |
#: application/modules/Shareasale/ShareasaleConfig.php:78
|
2564 |
#: application/modules/TradedoublerCoupons/TradedoublerCouponsConfig.php:48
|
2565 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:48
|
2566 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:106
|
2567 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:117
|
2568 |
#: application/modules/Udemy/UdemyConfig.php:81
|
2569 |
#: application/modules/Viglink/ViglinkConfig.php:62
|
2570 |
+
#: application/modules/Walmart/WalmartConfig.php:63
|
2571 |
#: application/modules/Zanox/ZanoxConfig.php:63
|
2572 |
+
msgid "Results for updates and autoblogging"
|
2573 |
msgstr ""
|
2574 |
|
2575 |
#: application/modules/AE/AEConfig.php:64
|
2576 |
+
#: application/modules/Walmart/WalmartConfig.php:160
|
2577 |
msgid "Reviews as post comments"
|
2578 |
msgstr ""
|
2579 |
|
2580 |
#: application/modules/AE/AEConfig.php:65
|
2581 |
+
#: application/modules/Walmart/WalmartConfig.php:161
|
2582 |
msgid "Save user reviews as post comments."
|
2583 |
msgstr ""
|
2584 |
|
2631 |
#: application/modules/Bolcom/templates/data_item_simple.php:9
|
2632 |
#: application/modules/CjProducts/templates/data_item_simple.php:9
|
2633 |
#: application/modules/Daisycon/templates/data_item_simple.php:9
|
2634 |
+
#: application/modules/Feed/templates/data_item_simple.php:9
|
2635 |
#: application/modules/Flipkart/templates/data_item_simple.php:9
|
2636 |
#: application/modules/GdeSlon/templates/data_item_simple.php:9
|
2637 |
#: application/modules/Impactradius/templates/data_item_simple.php:9
|
2733 |
#: application/modules/Amazon/AmazonConfig_FREE.php:172
|
2734 |
#: application/modules/AvantlinkProducts/AvantlinkProductsConfig.php:169
|
2735 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:130
|
2736 |
+
#: application/modules/Ebay/EbayConfig.php:316
|
2737 |
#: application/modules/Impactradius/ImpactradiusConfig.php:81
|
2738 |
#: application/modules/Kelkoo/KelkooConfig.php:163
|
2739 |
#: application/modules/Linkwise/LinkwiseConfig.php:143
|
2750 |
#: application/modules/Amazon/AmazonConfig_FREE.php:182
|
2751 |
#: application/modules/AvantlinkProducts/AvantlinkProductsConfig.php:179
|
2752 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:140
|
2753 |
+
#: application/modules/Ebay/EbayConfig.php:306
|
2754 |
#: application/modules/Impactradius/ImpactradiusConfig.php:91
|
2755 |
#: application/modules/Kelkoo/KelkooConfig.php:173
|
2756 |
#: application/modules/Linkwise/LinkwiseConfig.php:153
|
2788 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:166
|
2789 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:189
|
2790 |
#: application/modules/VkNews/VkNewsConfig.php:51
|
2791 |
+
#: application/modules/Walmart/WalmartConfig.php:142
|
2792 |
#: application/modules/Youtube/YoutubeConfig.php:87
|
2793 |
#: application/modules/Zanox/ZanoxConfig.php:161
|
2794 |
msgid "Trim description"
|
2821 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:167
|
2822 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:190
|
2823 |
#: application/modules/VkNews/VkNewsConfig.php:52
|
2824 |
+
#: application/modules/Walmart/WalmartConfig.php:143
|
2825 |
#: application/modules/Youtube/YoutubeConfig.php:88
|
2826 |
#: application/modules/Zanox/ZanoxConfig.php:162
|
2827 |
msgid "Description size in characters (0 - do not cut)"
|
2864 |
#: application/modules/Daisycon/views/update_panel.php:2
|
2865 |
#: application/modules/Ebay/views/search_panel.php:2
|
2866 |
#: application/modules/Ebay/views/update_panel.php:2
|
2867 |
+
#: application/modules/Feed/views/search_panel.php:2
|
2868 |
+
#: application/modules/Feed/views/update_panel.php:2
|
2869 |
#: application/modules/Impactradius/views/search_panel.php:2
|
2870 |
#: application/modules/Kelkoo/views/search_panel.php:2
|
2871 |
#: application/modules/Kelkoo/views/update_panel.php:2
|
2904 |
#: application/modules/Daisycon/views/update_panel.php:3
|
2905 |
#: application/modules/Ebay/views/search_panel.php:3
|
2906 |
#: application/modules/Ebay/views/update_panel.php:3
|
2907 |
+
#: application/modules/Feed/views/search_panel.php:3
|
2908 |
+
#: application/modules/Feed/views/update_panel.php:3
|
2909 |
#: application/modules/Impactradius/views/search_panel.php:3
|
2910 |
#: application/modules/Kelkoo/views/search_panel.php:3
|
2911 |
#: application/modules/Kelkoo/views/update_panel.php:3
|
2945 |
|
2946 |
#: application/modules/Affiliatewindow/AffiliatewindowConfig.php:61
|
2947 |
#: application/modules/Aliexpress/AliexpressConfig.php:232
|
2948 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:172
|
2949 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:190
|
2950 |
#: application/modules/Clickbank/ClickbankConfig.php:102
|
2951 |
+
#: application/modules/Ebay/EbayConfig.php:152
|
2952 |
#: application/modules/Flickr/FlickrConfig.php:59
|
2953 |
#: application/modules/GdeSlon/GdeSlonConfig.php:79
|
2954 |
#: application/modules/GoogleBooks/GoogleBooksConfig.php:97
|
2966 |
#: application/modules/Affiliatewindow/AffiliatewindowConfig.php:65
|
2967 |
#: application/modules/Affiliatewindow/AffiliatewindowConfig.php:105
|
2968 |
#: application/modules/Aliexpress/AliexpressConfig.php:236
|
2969 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:176
|
2970 |
#: application/modules/Bolcom/BolcomConfig.php:149
|
2971 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:194
|
2972 |
#: application/modules/Envato/EnvatoConfig.php:157
|
3067 |
msgstr ""
|
3068 |
|
3069 |
#: application/modules/Aliexpress/AliexpressConfig.php:90
|
3070 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:134
|
3071 |
msgid "Limit the search of goods by this category."
|
3072 |
msgstr ""
|
3073 |
|
3074 |
#: application/modules/Aliexpress/AliexpressConfig.php:93
|
3075 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:137
|
3076 |
#: application/modules/Pepperjam/PepperjamConfig.php:101
|
3077 |
#: application/modules/TradedoublerProducts/TradedoublerProductsConfig.php:63
|
3078 |
#: application/modules/Udemy/UdemyConfig.php:125
|
3095 |
msgstr ""
|
3096 |
|
3097 |
#: application/modules/Aliexpress/AliexpressConfig.php:157
|
3098 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:124
|
3099 |
#: application/modules/Clickbank/ClickbankConfig.php:129
|
3100 |
#: application/modules/Udemy/UdemyConfig.php:96
|
3101 |
msgid "Language"
|
3183 |
#: application/modules/Bolcom/views/update_panel.php:2
|
3184 |
#: application/modules/Daisycon/views/update_panel.php:2
|
3185 |
#: application/modules/Ebay/views/update_panel.php:2
|
3186 |
+
#: application/modules/Feed/views/update_panel.php:2
|
3187 |
#: application/modules/Kelkoo/views/update_panel.php:2
|
3188 |
#: application/modules/Linkwise/views/update_panel.php:2
|
3189 |
#: application/modules/Viglink/views/update_panel.php:2
|
3201 |
#: application/modules/Bolcom/views/update_panel.php:3
|
3202 |
#: application/modules/Daisycon/views/update_panel.php:3
|
3203 |
#: application/modules/Ebay/views/update_panel.php:3
|
3204 |
+
#: application/modules/Feed/views/update_panel.php:3
|
3205 |
#: application/modules/Kelkoo/views/update_panel.php:3
|
3206 |
#: application/modules/Linkwise/views/update_panel.php:3
|
3207 |
#: application/modules/Viglink/views/update_panel.php:3
|
3235 |
"target=\"_blank\" href=\"%s\">here</a>."
|
3236 |
msgstr ""
|
3237 |
|
3238 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:143
|
3239 |
msgid "The price must be set in USD. Example: 99"
|
3240 |
msgstr ""
|
3241 |
|
3242 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:153
|
3243 |
msgid "The price must be set in USD. Example: 10"
|
3244 |
msgstr ""
|
3245 |
|
3246 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:162
|
3247 |
msgid "Platform"
|
3248 |
msgstr ""
|
3249 |
|
3250 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:177
|
3251 |
msgid "Price ASC"
|
3252 |
msgstr ""
|
3253 |
|
3254 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:178
|
3255 |
msgid "Price DESC"
|
3256 |
msgstr ""
|
3257 |
|
3258 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:179
|
3259 |
msgid "Volume ASC"
|
3260 |
msgstr ""
|
3261 |
|
3262 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:180
|
3263 |
msgid "Volume DESC"
|
3264 |
msgstr ""
|
3265 |
|
3266 |
+
#: application/modules/Aliexpress2/Aliexpress2Config.php:215
|
3267 |
msgid "Save images locally"
|
3268 |
msgstr ""
|
3269 |
|
3370 |
#: application/modules/Amazon/AmazonConfig.php:142
|
3371 |
#: application/modules/Bolcom/BolcomConfig.php:145
|
3372 |
#: application/modules/LomadeeProducts/LomadeeProductsConfig.php:85
|
3373 |
+
#: application/modules/Walmart/WalmartConfig.php:98
|
3374 |
msgid "Sort"
|
3375 |
msgstr ""
|
3376 |
|
3504 |
msgstr ""
|
3505 |
|
3506 |
#: application/modules/Amazon/AmazonConfig.php:269
|
3507 |
+
#: application/modules/Ebay/EbayConfig.php:238
|
3508 |
msgid "Free Shipping"
|
3509 |
msgstr ""
|
3510 |
|
3577 |
"parsing"
|
3578 |
msgstr ""
|
3579 |
|
3580 |
+
#: application/modules/Amazon/AmazonConfig.php:350
|
3581 |
+
msgid "Forced Associate Tag"
|
3582 |
+
msgstr ""
|
3583 |
+
|
3584 |
+
#: application/modules/Amazon/AmazonConfig.php:351
|
3585 |
+
msgid ""
|
3586 |
+
"Forced replacement of tag parameter in all links. Usually you should leave "
|
3587 |
+
"this field blank!"
|
3588 |
+
msgstr ""
|
3589 |
+
|
3590 |
#: application/modules/Amazon/AmazonConfig_FREE.php:24
|
3591 |
msgid "Your Access Key ID which uniquely identifies you."
|
3592 |
msgstr ""
|
3707 |
|
3708 |
#: application/modules/Amazon/AmazonConfig_FREE.php:218
|
3709 |
#: application/modules/Ozon/OzonConfig.php:123
|
3710 |
+
#: application/modules/Walmart/WalmartConfig.php:153
|
3711 |
msgid "Customer reviews"
|
3712 |
msgstr ""
|
3713 |
|
3758 |
msgstr ""
|
3759 |
|
3760 |
#: application/modules/Amazon/AmazonConfig_FREE.php:256
|
3761 |
+
#: application/modules/Ebay/EbayConfig.php:370
|
3762 |
msgid "Size of description"
|
3763 |
msgstr ""
|
3764 |
|
3765 |
#: application/modules/Amazon/AmazonConfig_FREE.php:257
|
3766 |
+
#: application/modules/Ebay/EbayConfig.php:371
|
3767 |
msgid "The maximum size of the item description. 0 - do not cut."
|
3768 |
msgstr ""
|
3769 |
|
3784 |
msgid "Adds products from Amazon."
|
3785 |
msgstr ""
|
3786 |
|
3787 |
+
#: application/modules/Amazon/templates/data_compare.php:98
|
3788 |
+
#: application/modules/Ozon/templates/data_compare.php:78
|
3789 |
+
#: application/templates/blocks/item_row.php:55
|
3790 |
+
#: application/templates/blocks/list_row.php:53
|
3791 |
+
#: application/templates/data_price_tracker_alert.php:48
|
3792 |
+
#: templates/block_offers_logo.php:75 templates/wdgt_price_movers_grid.php:72
|
3793 |
+
#: templates/wdgt_price_movers_list.php:48
|
3794 |
+
msgid "as of %s"
|
3795 |
+
msgstr ""
|
3796 |
+
|
3797 |
#: application/modules/Amazon/views/search_panel.php:19
|
3798 |
msgid "Min. saving"
|
3799 |
msgstr ""
|
3890 |
#: application/modules/Bolcom/BolcomConfig.php:45
|
3891 |
#: application/modules/CjLinks/CjLinksConfig.php:31
|
3892 |
#: application/modules/Daisycon/DaisyconConfig.php:32
|
3893 |
+
#: application/modules/Ebay/EbayConfig.php:31
|
3894 |
+
#: application/modules/Ebay/EbayConfig.php:46
|
3895 |
#: application/modules/Envato/EnvatoConfig.php:31
|
3896 |
+
#: application/modules/Feed/FeedConfig.php:35
|
3897 |
+
#: application/modules/Feed/FeedConfig.php:54
|
3898 |
+
#: application/modules/Feed/FeedConfig.php:96
|
3899 |
#: application/modules/GoogleImages/GoogleImagesConfig.php:31
|
3900 |
#: application/modules/GoogleImages/GoogleImagesConfig.php:45
|
3901 |
#: application/modules/Impactradius/ImpactradiusConfig.php:32
|
3911 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:33
|
3912 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:64
|
3913 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:79
|
3914 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:31
|
3915 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:45
|
3916 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:60
|
3917 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:33
|
3918 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:47
|
3919 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:62
|
4099 |
#: application/modules/Kelkoo/KelkooModule.php:30
|
4100 |
#: application/modules/Pepperjam/PepperjamModule.php:29
|
4101 |
#: application/modules/TradetrackerProducts/TradetrackerProductsModule.php:28
|
4102 |
+
#: application/modules/Walmart/WalmartModule.php:35
|
4103 |
msgid "Adds products from %s."
|
4104 |
msgstr ""
|
4105 |
|
4495 |
#: application/modules/Bolcom/BolcomConfig.php:99
|
4496 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:141
|
4497 |
#: application/modules/Udemy/UdemyConfig.php:121
|
4498 |
+
#: application/modules/Walmart/WalmartConfig.php:88
|
4499 |
msgid "Category"
|
4500 |
msgstr ""
|
4501 |
|
4560 |
msgstr ""
|
4561 |
|
4562 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:47
|
4563 |
+
#: application/modules/Ebay/EbayConfig.php:130
|
4564 |
#: application/modules/GdeSlon/GdeSlonConfig.php:57
|
4565 |
msgid "Field \"Results\" can not be more than 100."
|
4566 |
msgstr ""
|
4567 |
|
4568 |
#: application/modules/CityadsProducts/CityadsProductsConfig.php:63
|
4569 |
+
#: application/modules/Ebay/EbayConfig.php:146
|
4570 |
#: application/modules/GdeSlon/GdeSlonConfig.php:73
|
4571 |
msgid "Field \"Results for autoupdating\" can not be more than 100."
|
4572 |
msgstr ""
|
4775 |
"Restrict search results based on the type of currency (for example: EUR)."
|
4776 |
msgstr ""
|
4777 |
|
4778 |
+
#: application/modules/CjProducts/CjProductsModule.php:35
|
4779 |
msgid ""
|
4780 |
"Adds products from CJ.com. You must have approval from each program "
|
4781 |
"separately."
|
4782 |
msgstr ""
|
4783 |
|
4784 |
+
#: application/modules/CjProducts/CjProductsModule.php:49
|
4785 |
msgid ""
|
4786 |
"CJ launched a new Product Search API. Please visit <a href=\"%s\">CJ Product "
|
4787 |
"settings</a> to get started with the new API."
|
4894 |
msgid "Your Daisycon password."
|
4895 |
msgstr ""
|
4896 |
|
4897 |
+
#: application/modules/Ebay/EbayConfig.php:23
|
4898 |
+
#: application/modules/Ebay/EbayConfig.php:38
|
4899 |
+
msgid "Your application's OAuth credentials."
|
|
|
4900 |
msgstr ""
|
4901 |
|
4902 |
+
#: application/modules/Ebay/EbayConfig.php:23
|
4903 |
+
#: application/modules/Ebay/EbayConfig.php:38
|
4904 |
+
msgid ""
|
4905 |
+
"You can get it in <a target=\"_blank\" href=\"%s\">eBay Developers Program</"
|
4906 |
+
"a>."
|
4907 |
msgstr ""
|
4908 |
|
4909 |
+
#: application/modules/Ebay/EbayConfig.php:53
|
4910 |
msgid ""
|
4911 |
"This is connection with partner program EPN. Campaign ID is valid for all "
|
4912 |
"programs which were approved for you on EPN. If you leave this field blank - "
|
4913 |
"you will not get commissions from sales."
|
4914 |
msgstr ""
|
4915 |
|
4916 |
+
#: application/modules/Ebay/EbayConfig.php:62
|
4917 |
msgid "EPN Custom ID (chanel)"
|
4918 |
msgstr ""
|
4919 |
|
4920 |
+
#: application/modules/Ebay/EbayConfig.php:63
|
4921 |
msgid ""
|
4922 |
"Any word, for example, name of domain. Custom ID will be included in sale "
|
4923 |
"report on EPN, so, you can additionally check your traffic. "
|
4924 |
msgstr ""
|
4925 |
|
4926 |
+
#: application/modules/Ebay/EbayConfig.php:72
|
4927 |
msgid "Ebay.in Affilite ID"
|
4928 |
msgstr ""
|
4929 |
|
4930 |
+
#: application/modules/Ebay/EbayConfig.php:73
|
4931 |
msgid ""
|
4932 |
"For eBay India's Affiliate program only. Go to <a href=\"https://ebayindia."
|
4933 |
"hasoffers.com/publisher/#!/account\">Ebay Hasoffers Dashboard</a> and find "
|
4934 |
"your Affiliate ID."
|
4935 |
msgstr ""
|
4936 |
|
4937 |
+
#: application/modules/Ebay/EbayConfig.php:82
|
4938 |
msgid "Skimlinks Site ID"
|
4939 |
msgstr ""
|
4940 |
|
4941 |
+
#: application/modules/Ebay/EbayConfig.php:83
|
4942 |
msgid ""
|
4943 |
"Set this if you want to direct traffic over <a href=\"http://www.keywordrush."
|
4944 |
"com/go/skimlinks\">Skimlinks</a>. Id for domain you can find <a href="
|
4945 |
"\"https://hub.skimlinks.com/account\">here</a>."
|
4946 |
msgstr ""
|
4947 |
|
4948 |
+
#: application/modules/Ebay/EbayConfig.php:92
|
4949 |
msgid "Viglink ID"
|
4950 |
msgstr ""
|
4951 |
|
4952 |
+
#: application/modules/Ebay/EbayConfig.php:93
|
4953 |
msgid ""
|
4954 |
"Set this if you want to direct traffic over <a href=\"http://www.keywordrush."
|
4955 |
"com/go/viglink\">Viglink</a>. Id for domain you can find <a href=\"http://"
|
4956 |
"www.viglink.com/install\">here</a>. Id is the same for all domains"
|
4957 |
msgstr ""
|
4958 |
|
4959 |
+
#: application/modules/Ebay/EbayConfig.php:102
|
4960 |
#: application/modules/Ozon/OzonConfig.php:32
|
4961 |
msgid "Deeplink"
|
4962 |
msgstr ""
|
4963 |
|
4964 |
+
#: application/modules/Ebay/EbayConfig.php:103
|
4965 |
msgid ""
|
4966 |
"Set Deeplink for one of CPA-networks. You can use parameter as "
|
4967 |
"<em>partner_id=12345</em>, or make link as template, for example, "
|
4971 |
"{{url_encoded}}"
|
4972 |
msgstr ""
|
4973 |
|
4974 |
+
#: application/modules/Ebay/EbayConfig.php:112
|
4975 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:67
|
4976 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:77
|
4977 |
msgid "Locale"
|
4978 |
msgstr ""
|
4979 |
|
4980 |
+
#: application/modules/Ebay/EbayConfig.php:113
|
4981 |
msgid ""
|
4982 |
"Local site of Ebay. For each local site you must have separate registration "
|
4983 |
"in affiliate program."
|
4984 |
msgstr ""
|
4985 |
|
4986 |
+
#: application/modules/Ebay/EbayConfig.php:160
|
4987 |
msgid "Ending time"
|
4988 |
msgstr ""
|
4989 |
|
4990 |
+
#: application/modules/Ebay/EbayConfig.php:161
|
4991 |
msgid ""
|
4992 |
"Lifetime of lots in seconds. Only lots which will be closed not later than "
|
4993 |
"the specified time will be chosen."
|
4994 |
msgstr ""
|
4995 |
|
4996 |
+
#: application/modules/Ebay/EbayConfig.php:171
|
4997 |
msgid ""
|
4998 |
"Id of category for searching. Id of categories you can find in URL of "
|
4999 |
"category on <a href=\"http://www.ebay.com/sch/allcategories/all-categories"
|
5001 |
"Example, \"2195,2218,20094\"."
|
5002 |
msgstr ""
|
5003 |
|
5004 |
+
#: application/modules/Ebay/EbayConfig.php:180
|
5005 |
msgid "Search in description"
|
5006 |
msgstr ""
|
5007 |
|
5008 |
+
#: application/modules/Ebay/EbayConfig.php:181
|
5009 |
msgid ""
|
5010 |
"Include description of product in searching. This will take more time, than "
|
5011 |
"searching only by title."
|
5012 |
msgstr ""
|
5013 |
|
5014 |
+
#: application/modules/Ebay/EbayConfig.php:187
|
5015 |
#: application/modules/Linkshare/LinkshareConfig.php:69
|
5016 |
msgid "Searching logic"
|
5017 |
msgstr ""
|
5018 |
|
5019 |
+
#: application/modules/Ebay/EbayConfig.php:206
|
5020 |
msgid "Exclude category"
|
5021 |
msgstr ""
|
5022 |
|
5023 |
+
#: application/modules/Ebay/EbayConfig.php:207
|
5024 |
msgid ""
|
5025 |
"Id of category, which must be excluded while searching. Id of categories you "
|
5026 |
"can find in URL of category on <a href=\"http://www.ebay.com/sch/"
|
5028 |
"categories separated with comma. Example, \"2195,2218,20094\"."
|
5029 |
msgstr ""
|
5030 |
|
5031 |
+
#: application/modules/Ebay/EbayConfig.php:216
|
5032 |
msgid "Minimal seller rating"
|
5033 |
msgstr ""
|
5034 |
|
5035 |
+
#: application/modules/Ebay/EbayConfig.php:224
|
5036 |
msgid "Best Offer"
|
5037 |
msgstr ""
|
5038 |
|
5039 |
+
#: application/modules/Ebay/EbayConfig.php:225
|
5040 |
msgid "Only \"Best Offer\" lots."
|
5041 |
msgstr ""
|
5042 |
|
5043 |
+
#: application/modules/Ebay/EbayConfig.php:231
|
5044 |
msgid "Featured"
|
5045 |
msgstr ""
|
5046 |
|
5047 |
+
#: application/modules/Ebay/EbayConfig.php:232
|
5048 |
msgid "Only \"Featured\" lots."
|
5049 |
msgstr ""
|
5050 |
|
5051 |
+
#: application/modules/Ebay/EbayConfig.php:239
|
5052 |
msgid "Only lots with free delivery"
|
5053 |
msgstr ""
|
5054 |
|
5055 |
+
#: application/modules/Ebay/EbayConfig.php:245
|
5056 |
msgid "Local Pickup"
|
5057 |
msgstr ""
|
5058 |
|
5059 |
+
#: application/modules/Ebay/EbayConfig.php:246
|
5060 |
msgid "Only lots with \"local pickup\" option."
|
5061 |
msgstr ""
|
5062 |
|
5063 |
+
#: application/modules/Ebay/EbayConfig.php:252
|
5064 |
msgid "Get It Fast"
|
5065 |
msgstr ""
|
5066 |
|
5067 |
+
#: application/modules/Ebay/EbayConfig.php:253
|
5068 |
msgid "Only \"Get It Fast\" lots."
|
5069 |
msgstr ""
|
5070 |
|
5071 |
+
#: application/modules/Ebay/EbayConfig.php:259
|
5072 |
msgid "Top-rated seller"
|
5073 |
msgstr ""
|
5074 |
|
5075 |
+
#: application/modules/Ebay/EbayConfig.php:260
|
5076 |
msgid "Only products from Top-rated \"Top-rated\" vendors."
|
5077 |
msgstr ""
|
5078 |
|
5079 |
+
#: application/modules/Ebay/EbayConfig.php:266
|
5080 |
msgid "Hide dublicates"
|
5081 |
msgstr ""
|
5082 |
|
5083 |
+
#: application/modules/Ebay/EbayConfig.php:267
|
5084 |
msgid "Filter similar lots"
|
5085 |
msgstr ""
|
5086 |
|
5087 |
+
#: application/modules/Ebay/EbayConfig.php:273
|
5088 |
msgid "Type of auction"
|
5089 |
msgstr ""
|
5090 |
|
5091 |
+
#: application/modules/Ebay/EbayConfig.php:286
|
5092 |
msgid "Maximum bids"
|
5093 |
msgstr ""
|
5094 |
|
5095 |
+
#: application/modules/Ebay/EbayConfig.php:287
|
5096 |
msgid "Example, 10"
|
5097 |
msgstr ""
|
5098 |
|
5099 |
+
#: application/modules/Ebay/EbayConfig.php:296
|
5100 |
msgid "Minimum bids"
|
5101 |
msgstr ""
|
5102 |
|
5103 |
+
#: application/modules/Ebay/EbayConfig.php:297
|
5104 |
msgid "Example, 3"
|
5105 |
msgstr ""
|
5106 |
|
5107 |
+
#: application/modules/Ebay/EbayConfig.php:307
|
5108 |
msgid "Example, 300.50"
|
5109 |
msgstr ""
|
5110 |
|
5111 |
+
#: application/modules/Ebay/EbayConfig.php:317
|
5112 |
msgid "Example, 10.98"
|
5113 |
msgstr ""
|
5114 |
|
5115 |
+
#: application/modules/Ebay/EbayConfig.php:326
|
5116 |
msgid "Payment options"
|
5117 |
msgstr ""
|
5118 |
|
5119 |
+
#: application/modules/Ebay/EbayConfig.php:334
|
5120 |
msgid "Available to"
|
5121 |
msgstr ""
|
5122 |
|
5123 |
+
#: application/modules/Ebay/EbayConfig.php:335
|
5124 |
msgid ""
|
5125 |
"Limits items to those available to the specified country only. Expects the "
|
5126 |
"two-letter ISO 3166 country code."
|
5127 |
msgstr ""
|
5128 |
|
5129 |
+
#: application/modules/Ebay/EbayConfig.php:344
|
5130 |
msgid "Located In"
|
5131 |
msgstr ""
|
5132 |
|
5133 |
+
#: application/modules/Ebay/EbayConfig.php:345
|
5134 |
msgid ""
|
5135 |
"Expects the two-letter ISO 3166 country code to indicate the country where "
|
5136 |
"the item is located. Item filter AvailableTo cannot be used together with "
|
5137 |
"item filter LocatedIn."
|
5138 |
msgstr ""
|
5139 |
|
5140 |
+
#: application/modules/Ebay/EbayConfig.php:354
|
5141 |
msgid "Seller"
|
5142 |
msgstr ""
|
5143 |
|
5144 |
+
#: application/modules/Ebay/EbayConfig.php:355
|
5145 |
msgid ""
|
5146 |
"Specify one or more seller names separated by comma. Search results will "
|
5147 |
"include items from the specified sellers only."
|
5148 |
msgstr ""
|
5149 |
|
5150 |
+
#: application/modules/Ebay/EbayConfig.php:363
|
5151 |
msgid "Get description"
|
5152 |
msgstr ""
|
5153 |
|
5154 |
+
#: application/modules/Ebay/EbayConfig.php:364
|
5155 |
msgid ""
|
5156 |
"Get description of product. This takes more requests for Ebay API and slow "
|
5157 |
"down searching. Description will be requested only for 20 first products for "
|
5158 |
"one searching"
|
5159 |
msgstr ""
|
5160 |
|
5161 |
+
#: application/modules/Ebay/EbayModule.php:49
|
5162 |
+
msgid ""
|
5163 |
+
"Starting on July 1, 2021, applications using Shopping API calls must "
|
5164 |
+
"authenticate with an OAuth application access token. Please visit <a href="
|
5165 |
+
"\"%s\">Ebay module settings</a> to get started with the new API "
|
5166 |
+
"authentication."
|
5167 |
+
msgstr ""
|
5168 |
+
|
5169 |
#: application/modules/Envato/EnvatoConfig.php:23
|
5170 |
msgid ""
|
5171 |
"You can <a href=\"https://build.envato.com/create-token/\">generate a "
|
5203 |
msgstr ""
|
5204 |
|
5205 |
#: application/modules/Envato/EnvatoConfig.php:113
|
5206 |
+
#: application/modules/Walmart/WalmartConfig.php:122
|
5207 |
msgid "Price min"
|
5208 |
msgstr ""
|
5209 |
|
5210 |
#: application/modules/Envato/EnvatoConfig.php:114
|
5211 |
+
#: application/modules/Walmart/WalmartConfig.php:123
|
5212 |
msgid "Minimum price to include."
|
5213 |
msgstr ""
|
5214 |
|
5215 |
#: application/modules/Envato/EnvatoConfig.php:122
|
5216 |
+
#: application/modules/Walmart/WalmartConfig.php:132
|
5217 |
msgid "Price max"
|
5218 |
msgstr ""
|
5219 |
|
5220 |
#: application/modules/Envato/EnvatoConfig.php:123
|
5221 |
+
#: application/modules/Walmart/WalmartConfig.php:133
|
5222 |
msgid "Maximum price to include."
|
5223 |
msgstr ""
|
5224 |
|
5242 |
|
5243 |
#: application/modules/Envato/EnvatoConfig.php:153
|
5244 |
#: application/modules/Udemy/UdemyConfig.php:106
|
5245 |
+
#: application/modules/Walmart/WalmartConfig.php:112
|
5246 |
msgid "Order"
|
5247 |
msgstr ""
|
5248 |
|
5272 |
"Market</a>."
|
5273 |
msgstr ""
|
5274 |
|
5275 |
+
#: application/modules/Feed/FeedConfig.php:26
|
5276 |
+
#: application/modules/Feed/FeedConfig.php:35
|
5277 |
+
msgid "Feed name"
|
5278 |
+
msgstr ""
|
5279 |
+
|
5280 |
+
#: application/modules/Feed/FeedConfig.php:27
|
5281 |
+
#: application/modules/Feed/FeedConfig.php:89
|
5282 |
+
msgid "For example: %s"
|
5283 |
+
msgstr ""
|
5284 |
+
|
5285 |
+
#: application/modules/Feed/FeedConfig.php:44
|
5286 |
+
msgid "Feed download URL"
|
5287 |
+
msgstr ""
|
5288 |
+
|
5289 |
+
#: application/modules/Feed/FeedConfig.php:45
|
5290 |
+
msgid "CSV format only."
|
5291 |
+
msgstr ""
|
5292 |
+
|
5293 |
+
#: application/modules/Feed/FeedConfig.php:46
|
5294 |
+
msgid "Make sure your unzipped feed size is less than %s."
|
5295 |
+
msgstr ""
|
5296 |
+
|
5297 |
+
#: application/modules/Feed/FeedConfig.php:64
|
5298 |
+
msgid "Archive format"
|
5299 |
+
msgstr ""
|
5300 |
+
|
5301 |
+
#: application/modules/Feed/FeedConfig.php:67
|
5302 |
+
msgid "None"
|
5303 |
+
msgstr ""
|
5304 |
+
|
5305 |
+
#: application/modules/Feed/FeedConfig.php:73
|
5306 |
+
msgid "Feed encoding"
|
5307 |
+
msgstr ""
|
5308 |
+
|
5309 |
+
#: application/modules/Feed/FeedConfig.php:82
|
5310 |
+
#: application/modules/Viglink/ViglinkConfig.php:135
|
5311 |
+
msgid "Default currency"
|
5312 |
+
msgstr ""
|
5313 |
+
|
5314 |
+
#: application/modules/Feed/FeedConfig.php:88
|
5315 |
+
msgid "Default merchant domain"
|
5316 |
+
msgstr ""
|
5317 |
+
|
5318 |
+
#: application/modules/Feed/FeedConfig.php:105
|
5319 |
+
msgid "Field mapping"
|
5320 |
+
msgstr ""
|
5321 |
+
|
5322 |
+
#: application/modules/Feed/FeedConfig.php:116
|
5323 |
+
msgid "Please fill out all required mapping fields."
|
5324 |
+
msgstr ""
|
5325 |
+
|
5326 |
+
#: application/modules/Feed/FeedConfig.php:132
|
5327 |
+
msgid "(required)"
|
5328 |
+
msgstr ""
|
5329 |
+
|
5330 |
+
#: application/modules/Feed/FeedConfig.php:134
|
5331 |
+
msgid "(optional)"
|
5332 |
+
msgstr ""
|
5333 |
+
|
5334 |
+
#: application/modules/Feed/FeedConfig.php:141
|
5335 |
+
msgid "In your feed"
|
5336 |
+
msgstr ""
|
5337 |
+
|
5338 |
+
#: application/modules/Feed/FeedModule.php:25
|
5339 |
+
msgid "Add new"
|
5340 |
+
msgstr ""
|
5341 |
+
|
5342 |
#: application/modules/Flickr/FlickrConfig.php:23
|
5343 |
msgid ""
|
5344 |
"The key for use Flickr API. You can get <a href=\"http://www.flickr.com/"
|
5362 |
#: application/modules/GoogleBooks/GoogleBooksConfig.php:101
|
5363 |
#: application/modules/Ozon/OzonConfig.php:68
|
5364 |
#: application/modules/Viglink/ViglinkConfig.php:98
|
5365 |
+
#: application/modules/Walmart/WalmartConfig.php:102
|
5366 |
#: application/modules/Youtube/YoutubeConfig.php:65
|
5367 |
#: application/modules/Youtube/views/search_panel.php:10
|
5368 |
msgid "Relevance"
|
6100 |
msgstr ""
|
6101 |
|
6102 |
#: application/modules/Market/MarketConfig.php:82
|
6103 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:121
|
6104 |
#: application/modules/TradetrackerCoupons/views/search_panel.php:4
|
6105 |
msgid "Offers"
|
6106 |
msgstr ""
|
6176 |
msgid "override custom settings"
|
6177 |
msgstr ""
|
6178 |
|
6179 |
+
#: application/modules/Offer/OfferModule.php:28
|
6180 |
msgid "Manually create offer from any site with price update."
|
6181 |
msgstr ""
|
6182 |
|
6353 |
msgstr ""
|
6354 |
|
6355 |
#: application/modules/Ozon/OzonConfig.php:116
|
6356 |
+
#: application/templates/blocks/item_features.php:30
|
6357 |
+
#: application/templates/blocks/item_features.php:40
|
6358 |
+
#: application/templates/blocks/item_features.php:52
|
6359 |
+
#: application/templates/blocks/item_features.php:64
|
6360 |
+
#: application/templates/blocks/item_features.php:76
|
6361 |
+
#: application/templates/blocks/item_features.php:89
|
6362 |
+
#: application/templates/blocks/item_features.php:98
|
6363 |
msgid "Features"
|
6364 |
msgstr ""
|
6365 |
|
6624 |
|
6625 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:156
|
6626 |
#: application/modules/SkimlinksCoupons/views/search_panel.php:8
|
6627 |
+
#: application/templates/blocks/item_after_price_row.php:18
|
6628 |
+
#: application/templates/blocks/item_after_price_row.php:55
|
6629 |
msgid "Free shipping"
|
6630 |
msgstr ""
|
6631 |
|
6680 |
msgstr ""
|
6681 |
|
6682 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:189
|
6683 |
+
#: application/modules/Walmart/WalmartConfig.php:116
|
6684 |
msgid "Asc"
|
6685 |
msgstr ""
|
6686 |
|
6687 |
#: application/modules/SkimlinksCoupons/SkimlinksCouponsConfig.php:190
|
6688 |
+
#: application/modules/Walmart/WalmartConfig.php:117
|
6689 |
msgid "Desc"
|
6690 |
msgstr ""
|
6691 |
|
6735 |
"program separately."
|
6736 |
msgstr ""
|
6737 |
|
6738 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:23
|
6739 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:25
|
6740 |
msgid ""
|
6741 |
"You can find your Customer ID and Passphrase by logging onto your "
|
6744 |
"need to request access first by clicking the \"request access\" link."
|
6745 |
msgstr ""
|
6746 |
|
6747 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:52
|
6748 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:54
|
6749 |
msgid ""
|
6750 |
"Login into your TradeTracker control panel. Click on \"<a href=\"https://"
|
6753 |
"Site ID."
|
6754 |
msgstr ""
|
6755 |
|
6756 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:68
|
6757 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:78
|
6758 |
msgid "Your TradeTracker locale."
|
6759 |
msgstr ""
|
6760 |
|
6761 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:117
|
6762 |
msgid "Items type"
|
6763 |
msgstr ""
|
6764 |
|
6765 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:120
|
6766 |
#: application/modules/TradetrackerCoupons/views/search_panel.php:3
|
6767 |
msgid "Vouchers"
|
6768 |
msgstr ""
|
6769 |
|
6770 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:122
|
6771 |
#: application/modules/TradetrackerCoupons/views/search_panel.php:5
|
6772 |
msgid "Text Links"
|
6773 |
msgstr ""
|
6774 |
|
6775 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:128
|
6776 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:162
|
6777 |
msgid "Banner Dimension ID"
|
6778 |
msgstr ""
|
6779 |
|
6780 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:137
|
6781 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:146
|
6782 |
msgid "Campaign ID"
|
6783 |
msgstr ""
|
6784 |
|
6785 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:146
|
6786 |
#: application/modules/TradetrackerProducts/TradetrackerProductsConfig.php:155
|
6787 |
msgid "Campaign Category ID"
|
6788 |
msgstr ""
|
6789 |
|
6790 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:155
|
6791 |
msgid "Unsubscribed campaigns"
|
6792 |
msgstr ""
|
6793 |
|
6794 |
+
#: application/modules/TradetrackerCoupons/TradetrackerCouponsConfig.php:156
|
6795 |
msgid "Include unsubscribed campaigns."
|
6796 |
msgstr ""
|
6797 |
|
7023 |
"or correctly structured image URL."
|
7024 |
msgstr ""
|
7025 |
|
|
|
|
|
|
|
|
|
7026 |
#: application/modules/Viglink/ViglinkConfig.php:136
|
7027 |
msgid ""
|
7028 |
"Expects the three-letter ISO 4217 currency code. Used only for search by URL "
|
7036 |
msgstr ""
|
7037 |
|
7038 |
#: application/modules/Viglink/ViglinkConfig.php:155
|
7039 |
+
#: application/modules/Walmart/WalmartConfig.php:92
|
7040 |
msgid "[ All ]"
|
7041 |
msgstr ""
|
7042 |
|
7062 |
msgid "Your Impact Radius Publisher ID."
|
7063 |
msgstr ""
|
7064 |
|
7065 |
+
#: application/modules/Walmart/WalmartConfig.php:79
|
|
|
|
|
|
|
|
|
7066 |
msgid ""
|
7067 |
"Set this option if you want to send traffic through one of affiliate network "
|
7068 |
"with Walmart support."
|
7069 |
msgstr ""
|
7070 |
|
7071 |
+
#: application/modules/Walmart/WalmartConfig.php:89
|
7072 |
+
#: application/modules/Walmart/WalmartConfig.php:99
|
7073 |
msgid "Sorting criteria."
|
7074 |
msgstr ""
|
7075 |
|
7076 |
+
#: application/modules/Walmart/WalmartConfig.php:105
|
7077 |
msgid "Bestseller"
|
7078 |
msgstr ""
|
7079 |
|
7080 |
+
#: application/modules/Walmart/WalmartConfig.php:106
|
7081 |
msgid "Customer Rating"
|
7082 |
msgstr ""
|
7083 |
|
7084 |
+
#: application/modules/Walmart/WalmartConfig.php:113
|
7085 |
msgid ""
|
7086 |
"Sort ordering criteria. This parameter is needed only for the sort types: "
|
7087 |
"Price, Title, Customer Rating."
|
7088 |
msgstr ""
|
7089 |
|
7090 |
+
#: application/modules/Walmart/WalmartConfig.php:154
|
7091 |
msgid ""
|
7092 |
"Parse customer reviews. It takes more time. Don't check if you don't need it."
|
7093 |
msgstr ""
|
7094 |
|
7095 |
+
#: application/modules/Walmart/WalmartModule.php:49
|
7096 |
+
msgid "<a href=\"%s\">Walmart module</a> requires the OpenSSL PHP extension!"
|
7097 |
+
msgstr ""
|
7098 |
+
|
7099 |
#: application/modules/Webgains/WebgainsConfig.php:23
|
7100 |
msgid ""
|
7101 |
"Check <a target=\"_blank\" href=\"%s\">how to create</a> a Product Feed."
|
7200 |
"separately."
|
7201 |
msgstr ""
|
7202 |
|
7203 |
+
#: application/templates/blocks/item_after_price_row.php:12
|
7204 |
+
#: application/templates/blocks/list_row.php:42
|
7205 |
+
#: templates/block_offers_logo.php:64 templates/block_price_comparison.php:51
|
7206 |
+
msgid "%d new from %s"
|
7207 |
+
msgstr ""
|
7208 |
+
|
7209 |
+
#: application/templates/blocks/item_after_price_row.php:15
|
7210 |
+
#: application/templates/blocks/list_row.php:47
|
7211 |
+
#: templates/block_offers_logo.php:69 templates/block_price_comparison.php:56
|
7212 |
+
msgid "%d used from %s"
|
7213 |
+
msgstr ""
|
7214 |
+
|
7215 |
+
#: application/templates/blocks/item_features.php:11
|
7216 |
+
msgid "Specifications"
|
7217 |
+
msgstr ""
|
7218 |
+
|
7219 |
+
#: application/templates/blocks/item_row.php:42
|
7220 |
+
msgid "Plus %s Cash Back"
|
7221 |
+
msgstr ""
|
7222 |
+
|
7223 |
+
#: application/templates/blocks/price_alert_inline.php:25
|
7224 |
+
msgid "Wait For A Price Drop"
|
7225 |
+
msgstr ""
|
7226 |
+
|
7227 |
+
#: application/templates/blocks/price_alert_inline.php:33
|
7228 |
+
#: application/templates/blocks/price_alert_inline.php:34
|
7229 |
+
msgid "Your Email"
|
7230 |
+
msgstr ""
|
7231 |
+
|
7232 |
+
#: application/templates/blocks/price_alert_inline.php:37
|
7233 |
+
#: application/templates/blocks/price_alert_inline.php:43
|
7234 |
+
msgid "Desired Price"
|
7235 |
+
msgstr ""
|
7236 |
+
|
7237 |
+
#: application/templates/blocks/price_alert_inline.php:48
|
7238 |
+
msgid "SET ALERT"
|
7239 |
+
msgstr ""
|
7240 |
+
|
7241 |
+
#: application/templates/blocks/price_alert_inline.php:58
|
7242 |
+
msgid "Privacy Policy"
|
7243 |
+
msgstr ""
|
7244 |
+
|
7245 |
+
#: application/templates/blocks/price_alert_inline.php:59
|
7246 |
+
msgid "I agree to the %s."
|
7247 |
+
msgstr ""
|
7248 |
+
|
7249 |
+
#: application/templates/blocks/price_alert_inline.php:63
|
7250 |
+
msgid "You will receive a notification when the price drops."
|
7251 |
+
msgstr ""
|
7252 |
+
|
7253 |
+
#: application/templates/blocks/price_history.php:19
|
7254 |
+
msgid "Statistics"
|
7255 |
+
msgstr ""
|
7256 |
+
|
7257 |
+
#: application/templates/blocks/price_history.php:22
|
7258 |
+
msgid "Current Price"
|
7259 |
+
msgstr ""
|
7260 |
+
|
7261 |
+
#: application/templates/blocks/price_history.php:34
|
7262 |
+
msgid "Highest Price"
|
7263 |
+
msgstr ""
|
7264 |
+
|
7265 |
+
#: application/templates/blocks/price_history.php:40
|
7266 |
+
msgid "Lowest Price"
|
7267 |
+
msgstr ""
|
7268 |
+
|
7269 |
+
#: application/templates/blocks/price_history.php:46
|
7270 |
+
msgid "Since %s"
|
7271 |
+
msgstr ""
|
7272 |
+
|
7273 |
+
#: application/templates/blocks/price_history.php:49
|
7274 |
+
msgid "Last price changes"
|
7275 |
+
msgstr ""
|
7276 |
+
|
7277 |
+
#: application/templates/data_coupon.php:26
|
7278 |
+
#: application/templates/data_coupon.php:33
|
7279 |
+
#: templates/wdgt_price_movers_grid.php:60
|
7280 |
+
#: templates/wdgt_price_movers_list.php:62
|
7281 |
+
msgid "OFF"
|
7282 |
+
msgstr ""
|
7283 |
+
|
7284 |
+
#: application/templates/data_coupon.php:38
|
7285 |
+
msgid "Start date: %s"
|
7286 |
+
msgstr ""
|
7287 |
+
|
7288 |
+
#: application/templates/data_coupon.php:41
|
7289 |
+
msgid "End date: %s"
|
7290 |
+
msgstr ""
|
7291 |
+
|
7292 |
+
#: templates/block_price_alert.php:20
|
7293 |
+
msgid "Set Alert for"
|
7294 |
+
msgstr ""
|
7295 |
+
|
7296 |
+
#: templates/block_price_alert.php:25
|
7297 |
+
msgid "Create Your Free Price Drop Alert!"
|
7298 |
+
msgstr ""
|
7299 |
+
|
7300 |
+
#: templates/block_price_comparison.php:76
|
7301 |
+
#: templates/block_price_comparison_card.php:55
|
7302 |
+
#: templates/block_text_links.php:39
|
7303 |
+
msgid "Last Amazon price update was: %s"
|
7304 |
+
msgstr ""
|
7305 |
+
|
7306 |
+
#: templates/block_price_history.php:20
|
7307 |
+
msgid "Price History for"
|
7308 |
+
msgstr ""
|
7309 |
+
|
7310 |
#. Plugin Name of the plugin/theme
|
7311 |
msgid "Content Egg<stripfree> Pro</stripfree>"
|
7312 |
msgstr ""
|
languages/tpl/content-egg-tpl.pot
CHANGED
@@ -1,14 +1,14 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the same license as the Content Egg<stripfree> Pro</stripfree> package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Content Egg<stripfree> Pro</stripfree> 8.
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/content-egg-tpl\n"
|
7 |
-
"POT-Creation-Date:
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
@@ -46,109 +46,102 @@ msgstr ""
|
|
46 |
msgid "Welcome to %s"
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: application/PriceAlert.php:
|
50 |
msgid "Hello,"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: application/PriceAlert.php:
|
54 |
msgid "You have successfully set a price drop alert for %s."
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: application/PriceAlert.php:
|
58 |
msgid ""
|
59 |
"We will not send you any price alerts until you verified your email address."
|
60 |
msgstr ""
|
61 |
|
62 |
-
#: application/PriceAlert.php:
|
63 |
msgid ""
|
64 |
"Please open this link to validate your email address:<br> <a href=\"%s\">%s</"
|
65 |
"a>"
|
66 |
msgstr ""
|
67 |
|
68 |
-
#: application/PriceAlert.php:
|
69 |
msgid ""
|
70 |
"If you don't want to receive any price alerts from us in the future, <a href="
|
71 |
"\"%s\">please click here</a>."
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: application/PriceAlert.php:
|
75 |
msgid "Thank You,"
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: application/PriceAlert.php:
|
79 |
msgid "The %s Team"
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: application/PriceAlert.php:
|
83 |
msgid ""
|
84 |
"Your email has been verified. We will let you know by email when the Price "
|
85 |
"Drops."
|
86 |
msgstr ""
|
87 |
|
88 |
-
#: application/PriceAlert.php:
|
89 |
msgid "Success!"
|
90 |
msgstr ""
|
91 |
|
92 |
-
#: application/PriceAlert.php:
|
93 |
msgid "You are now unsubscribed from our Price Alerts via email."
|
94 |
msgstr ""
|
95 |
|
96 |
-
#: application/PriceAlert.php:
|
97 |
msgid "Unsubscribed!"
|
98 |
msgstr ""
|
99 |
|
100 |
-
#: application/PriceAlert.php:
|
101 |
msgid "Your subscription has been deleted from our database."
|
102 |
msgstr ""
|
103 |
|
104 |
-
#: application/PriceAlert.php:
|
105 |
msgid " Ok "
|
106 |
msgstr ""
|
107 |
|
108 |
-
#: application/PriceAlert.php:
|
109 |
msgid "Price alert: \"%s\""
|
110 |
msgstr ""
|
111 |
|
112 |
-
#: application/PriceAlert.php:
|
113 |
msgid "Good news!"
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: application/PriceAlert.php:
|
117 |
msgid "The price target you set for the item has been reached."
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: application/PriceAlert.php:
|
121 |
msgid "<a href=\"%s\">Save %s (%s%%) on %s</a>"
|
122 |
msgstr ""
|
123 |
|
124 |
-
#: application/PriceAlert.php:
|
125 |
msgid "Desired Price: %s"
|
126 |
msgstr ""
|
127 |
|
128 |
-
#: application/PriceAlert.php:
|
129 |
msgid "Current Price: <strong>%s</strong>"
|
130 |
msgstr ""
|
131 |
|
132 |
-
#: application/PriceAlert.php:
|
133 |
-
#: application/modules/Amazon/templates/data_compare.php:98
|
134 |
-
#: application/modules/Ozon/templates/data_compare.php:78
|
135 |
-
#: application/templates/blocks/item_row.php:53
|
136 |
-
#: application/templates/blocks/list_row.php:56
|
137 |
-
#: application/templates/data_price_tracker_alert.php:48
|
138 |
-
#: templates/block_offers_logo.php:81 templates/wdgt_price_movers_grid.php:72
|
139 |
-
#: templates/wdgt_price_movers_list.php:49
|
140 |
msgid "as of"
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: application/PriceAlert.php:
|
144 |
msgid "Price dropped from %s to %s"
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: application/PriceAlert.php:
|
148 |
msgid "<a href=\"%s\">More info...</a>"
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: application/PriceAlert.php:
|
152 |
msgid ""
|
153 |
"This present alert has now expired. You may <a href=\"%s\">create a new "
|
154 |
"alert</a> for this item."
|
@@ -158,137 +151,290 @@ msgstr ""
|
|
158 |
msgid "Price Drops"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: application/ProductSearch.php:74
|
162 |
-
msgid "Sorry. No products found."
|
163 |
-
msgstr ""
|
164 |
-
|
165 |
-
#: application/ProductSearch.php:119
|
166 |
-
msgid "Search Results for \"%s\""
|
167 |
-
msgstr ""
|
168 |
-
|
169 |
#: application/ProductSearchWidget.php:81
|
170 |
msgid "Product Search..."
|
171 |
msgstr ""
|
172 |
|
173 |
-
#: application/WooIntegrator.php:
|
174 |
#: application/templates/blocks/grid_row.php:43
|
175 |
-
#: application/templates/blocks/item_row.php:
|
176 |
-
#: application/templates/blocks/list_row.php:
|
|
|
177 |
#: application/templates/data_price_tracker_alert.php:43
|
178 |
#: templates/block_offers_logo.php:55 templates/block_price_comparison.php:44
|
179 |
msgid "Last updated on %s"
|
180 |
msgstr ""
|
181 |
|
182 |
-
#: application/WooIntegrator.php:
|
183 |
msgid "Price per unit: %s"
|
184 |
msgstr ""
|
185 |
|
186 |
-
#: application/admin/GeneralConfig.php:
|
187 |
-
|
|
|
188 |
msgstr ""
|
189 |
|
190 |
-
#: application/admin/GeneralConfig.php:
|
191 |
-
#: application/helpers/TemplateHelper.php:
|
192 |
-
msgid "
|
193 |
msgstr ""
|
194 |
|
195 |
-
#: application/admin/
|
196 |
-
#:
|
197 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
msgstr ""
|
199 |
|
200 |
-
#: application/admin/
|
201 |
-
|
|
|
202 |
msgstr ""
|
203 |
|
204 |
-
#: application/admin/
|
205 |
-
|
|
|
206 |
msgstr ""
|
207 |
|
208 |
-
#: application/admin/
|
209 |
-
|
|
|
210 |
msgstr ""
|
211 |
|
212 |
-
#: application/admin/
|
213 |
-
msgid "
|
214 |
msgstr ""
|
215 |
|
216 |
-
#: application/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
#: application/modules/Market/templates/data_item.php:128
|
218 |
msgid "Pros:"
|
219 |
msgstr ""
|
220 |
|
221 |
-
#: application/components/ContentManager.php:
|
222 |
#: application/modules/Market/templates/data_item.php:129
|
223 |
msgid "Cons:"
|
224 |
msgstr ""
|
225 |
|
226 |
-
#: application/components/ContentManager.php:
|
227 |
msgid "Rating"
|
228 |
msgstr ""
|
229 |
|
230 |
-
#: application/helpers/TemplateHelper.php:
|
231 |
-
#: application/helpers/TemplateHelper.php:
|
232 |
msgid "number_format_decimal_point"
|
233 |
msgstr ""
|
234 |
|
235 |
-
#: application/helpers/TemplateHelper.php:
|
236 |
-
#: application/helpers/TemplateHelper.php:
|
237 |
msgid "number_format_thousands_sep"
|
238 |
msgstr ""
|
239 |
|
240 |
-
#: application/helpers/TemplateHelper.php:
|
241 |
msgid "d"
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: application/helpers/TemplateHelper.php:
|
245 |
msgid "h"
|
246 |
msgstr ""
|
247 |
|
248 |
-
#: application/helpers/TemplateHelper.php:
|
249 |
-
#: application/helpers/TemplateHelper.php:
|
250 |
-
#: application/templates/blocks/item_after_price_row.php:
|
251 |
msgid "m"
|
252 |
msgstr ""
|
253 |
|
254 |
-
#: application/helpers/TemplateHelper.php:
|
255 |
-
#: application/modules/Amazon/templates/data_compare.php:65
|
256 |
-
#: application/modules/Ozon/templates/data_compare.php:68
|
257 |
-
#: application/templates/data_price_tracker_alert.php:39
|
258 |
-
msgid "Price"
|
259 |
-
msgstr ""
|
260 |
-
|
261 |
-
#: application/helpers/TemplateHelper.php:733
|
262 |
msgid "BUY NOW"
|
263 |
msgstr ""
|
264 |
|
265 |
-
#: application/helpers/TemplateHelper.php:
|
266 |
-
msgid "
|
267 |
-
msgstr ""
|
268 |
-
|
269 |
-
#: application/helpers/TemplateHelper.php:760
|
270 |
-
msgid "%d days ago"
|
271 |
-
msgstr ""
|
272 |
-
|
273 |
-
#: application/helpers/TemplateHelper.php:762
|
274 |
-
msgid "%d day ago"
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: application/helpers/TemplateHelper.php:
|
278 |
msgid ""
|
279 |
"Product prices and availability are accurate as of the date/time indicated "
|
280 |
"and are subject to change. Any price and availability information displayed "
|
281 |
"on Amazon at the time of purchase will apply to the purchase of this product."
|
282 |
msgstr ""
|
283 |
|
284 |
-
#: application/helpers/TemplateHelper.php:866
|
285 |
-
msgid "in stock"
|
286 |
-
msgstr ""
|
287 |
-
|
288 |
-
#: application/helpers/TemplateHelper.php:868
|
289 |
-
msgid "out of stock"
|
290 |
-
msgstr ""
|
291 |
-
|
292 |
#: application/modules/AE/templates/data_grid.php:8
|
293 |
#: application/modules/AdmitadProducts/templates/data_grid.php:8
|
294 |
#: application/modules/Affiliatewindow/templates/data_grid.php:8
|
@@ -304,6 +450,7 @@ msgstr ""
|
|
304 |
#: application/modules/Daisycon/templates/data_grid.php:9
|
305 |
#: application/modules/Ebay/templates/data_grid.php:9
|
306 |
#: application/modules/Envato/templates/data_grid.php:9
|
|
|
307 |
#: application/modules/Flipkart/templates/data_grid.php:9
|
308 |
#: application/modules/GdeSlon/templates/data_grid.php:9
|
309 |
#: application/modules/Impactradius/templates/data_grid.php:9
|
@@ -342,6 +489,7 @@ msgstr ""
|
|
342 |
#: application/modules/Daisycon/templates/data_item.php:9
|
343 |
#: application/modules/Ebay/templates/data_item.php:9
|
344 |
#: application/modules/Envato/templates/data_item.php:9
|
|
|
345 |
#: application/modules/Flipkart/templates/data_item.php:9
|
346 |
#: application/modules/GdeSlon/templates/data_item.php:9
|
347 |
#: application/modules/Impactradius/templates/data_item.php:9
|
@@ -381,6 +529,7 @@ msgstr ""
|
|
381 |
#: application/modules/Daisycon/templates/data_list.php:8
|
382 |
#: application/modules/Ebay/templates/data_list.php:8
|
383 |
#: application/modules/Envato/templates/data_list.php:8
|
|
|
384 |
#: application/modules/Flipkart/templates/data_list.php:8
|
385 |
#: application/modules/GdeSlon/templates/data_list.php:8
|
386 |
#: application/modules/Impactradius/templates/data_list.php:8
|
@@ -418,6 +567,7 @@ msgstr ""
|
|
418 |
#: application/modules/CjProducts/templates/data_price_tracker_alert.php:9
|
419 |
#: application/modules/Daisycon/templates/data_price_tracker_alert.php:9
|
420 |
#: application/modules/Ebay/templates/data_price_tracker_alert.php:9
|
|
|
421 |
#: application/modules/Flipkart/templates/data_price_tracker_alert.php:9
|
422 |
#: application/modules/GdeSlon/templates/data_price_tracker_alert.php:9
|
423 |
#: application/modules/Impactradius/templates/data_price_tracker_alert.php:9
|
@@ -466,35 +616,16 @@ msgstr ""
|
|
466 |
msgid "Too low to display"
|
467 |
msgstr ""
|
468 |
|
469 |
-
#: application/modules/Amazon/templates/data_compare.php:80
|
470 |
-
#: application/templates/blocks/item_after_price_row.php:24
|
471 |
-
#: application/templates/blocks/item_after_price_row.php:61
|
472 |
-
msgid "Free shipping"
|
473 |
-
msgstr ""
|
474 |
-
|
475 |
#: application/modules/Amazon/templates/data_compare.php:86
|
476 |
-
#: application/templates/blocks/item_after_price_row.php:13
|
477 |
-
#: application/templates/blocks/list_row.php:40
|
478 |
-
#: templates/block_offers_logo.php:65 templates/block_price_comparison.php:52
|
479 |
msgid "new"
|
480 |
msgstr ""
|
481 |
|
482 |
#: application/modules/Amazon/templates/data_compare.php:88
|
483 |
#: application/modules/Amazon/templates/data_compare.php:93
|
484 |
-
#: application/templates/blocks/item_after_price_row.php:15
|
485 |
-
#: application/templates/blocks/item_after_price_row.php:20
|
486 |
-
#: application/templates/blocks/list_row.php:42
|
487 |
-
#: application/templates/blocks/list_row.php:49
|
488 |
-
#: templates/block_offers_logo.php:67 templates/block_offers_logo.php:74
|
489 |
-
#: templates/block_price_comparison.php:54
|
490 |
-
#: templates/block_price_comparison.php:61
|
491 |
msgid "from"
|
492 |
msgstr ""
|
493 |
|
494 |
#: application/modules/Amazon/templates/data_compare.php:93
|
495 |
-
#: application/templates/blocks/item_after_price_row.php:20
|
496 |
-
#: application/templates/blocks/list_row.php:49
|
497 |
-
#: templates/block_offers_logo.php:74 templates/block_price_comparison.php:61
|
498 |
msgid "used"
|
499 |
msgstr ""
|
500 |
|
@@ -505,17 +636,6 @@ msgstr ""
|
|
505 |
msgid "Shop Now"
|
506 |
msgstr ""
|
507 |
|
508 |
-
#: application/modules/Amazon/templates/data_compare.php:119
|
509 |
-
#: application/templates/blocks/item_features.php:27
|
510 |
-
#: application/templates/blocks/item_features.php:37
|
511 |
-
#: application/templates/blocks/item_features.php:49
|
512 |
-
#: application/templates/blocks/item_features.php:61
|
513 |
-
#: application/templates/blocks/item_features.php:73
|
514 |
-
#: application/templates/blocks/item_features.php:86
|
515 |
-
#: application/templates/blocks/item_features.php:95
|
516 |
-
msgid "Features"
|
517 |
-
msgstr ""
|
518 |
-
|
519 |
#: application/modules/Amazon/templates/data_compare.php:169
|
520 |
#: application/modules/Ozon/templates/data_compare.php:140
|
521 |
msgid "User Reviews"
|
@@ -685,30 +805,26 @@ msgstr ""
|
|
685 |
msgid "Tile"
|
686 |
msgstr ""
|
687 |
|
688 |
-
#: application/templates/blocks/item_after_price_row.php:
|
689 |
msgid "Bids:"
|
690 |
msgstr ""
|
691 |
|
692 |
-
#: application/templates/blocks/item_after_price_row.php:
|
693 |
msgid "Item condition:"
|
694 |
msgstr ""
|
695 |
|
696 |
-
#: application/templates/blocks/item_after_price_row.php:
|
697 |
msgid "Time left:"
|
698 |
msgstr ""
|
699 |
|
700 |
-
#: application/templates/blocks/item_after_price_row.php:
|
701 |
msgid "Ended:"
|
702 |
msgstr ""
|
703 |
|
704 |
-
#: application/templates/blocks/item_after_price_row.php:
|
705 |
msgid "EEK:"
|
706 |
msgstr ""
|
707 |
|
708 |
-
#: application/templates/blocks/item_features.php:8
|
709 |
-
msgid "Specifications"
|
710 |
-
msgstr ""
|
711 |
-
|
712 |
#: application/templates/blocks/item_reviews.php:29
|
713 |
msgid "User reviews"
|
714 |
msgstr ""
|
@@ -717,83 +833,10 @@ msgstr ""
|
|
717 |
msgid "View all reviews"
|
718 |
msgstr ""
|
719 |
|
720 |
-
#: application/templates/blocks/item_row.php:40
|
721 |
-
msgid "Plus %s Cash Back"
|
722 |
-
msgstr ""
|
723 |
-
|
724 |
-
#: application/templates/blocks/price_alert_inline.php:25
|
725 |
-
msgid "Wait For A Price Drop"
|
726 |
-
msgstr ""
|
727 |
-
|
728 |
-
#: application/templates/blocks/price_alert_inline.php:33
|
729 |
-
#: application/templates/blocks/price_alert_inline.php:34
|
730 |
-
msgid "Your Email"
|
731 |
-
msgstr ""
|
732 |
-
|
733 |
-
#: application/templates/blocks/price_alert_inline.php:37
|
734 |
-
#: application/templates/blocks/price_alert_inline.php:43
|
735 |
-
msgid "Desired Price"
|
736 |
-
msgstr ""
|
737 |
-
|
738 |
-
#: application/templates/blocks/price_alert_inline.php:48
|
739 |
-
msgid "SET ALERT"
|
740 |
-
msgstr ""
|
741 |
-
|
742 |
-
#: application/templates/blocks/price_alert_inline.php:58
|
743 |
-
msgid "I agree to the <a target=\"_blank\" href=\"%s\">Privacy Policy</a>."
|
744 |
-
msgstr ""
|
745 |
-
|
746 |
-
#: application/templates/blocks/price_alert_inline.php:62
|
747 |
-
msgid "You will receive a notification when the price drops."
|
748 |
-
msgstr ""
|
749 |
-
|
750 |
#: application/templates/blocks/price_history.php:10
|
751 |
msgid "Price History"
|
752 |
msgstr ""
|
753 |
|
754 |
-
#: application/templates/blocks/price_history.php:19
|
755 |
-
msgid "Statistics"
|
756 |
-
msgstr ""
|
757 |
-
|
758 |
-
#: application/templates/blocks/price_history.php:22
|
759 |
-
msgid "Current Price"
|
760 |
-
msgstr ""
|
761 |
-
|
762 |
-
#: application/templates/blocks/price_history.php:34
|
763 |
-
msgid "Highest Price"
|
764 |
-
msgstr ""
|
765 |
-
|
766 |
-
#: application/templates/blocks/price_history.php:40
|
767 |
-
msgid "Lowest Price"
|
768 |
-
msgstr ""
|
769 |
-
|
770 |
-
#: application/templates/blocks/price_history.php:46
|
771 |
-
msgid "Since"
|
772 |
-
msgstr ""
|
773 |
-
|
774 |
-
#: application/templates/blocks/price_history.php:49
|
775 |
-
msgid "Last price changes"
|
776 |
-
msgstr ""
|
777 |
-
|
778 |
-
#: application/templates/data_coupon.php:26
|
779 |
-
#: application/templates/data_coupon.php:33
|
780 |
-
#: templates/wdgt_price_movers_grid.php:60
|
781 |
-
#: templates/wdgt_price_movers_list.php:63
|
782 |
-
msgid "OFF"
|
783 |
-
msgstr ""
|
784 |
-
|
785 |
-
#: application/templates/data_coupon.php:38
|
786 |
-
msgid "Start date:"
|
787 |
-
msgstr ""
|
788 |
-
|
789 |
-
#: application/templates/data_coupon.php:41
|
790 |
-
msgid "End date:"
|
791 |
-
msgstr ""
|
792 |
-
|
793 |
-
#: application/templates/data_list.php:25
|
794 |
-
msgid "Last updated on"
|
795 |
-
msgstr ""
|
796 |
-
|
797 |
#: templates/block_buttons_row.php:16
|
798 |
msgid "%s at %s"
|
799 |
msgstr ""
|
@@ -830,32 +873,14 @@ msgstr ""
|
|
830 |
msgid "Price alert for lowest price product"
|
831 |
msgstr ""
|
832 |
|
833 |
-
#: templates/block_price_alert.php:20
|
834 |
-
msgid "Set Alert for"
|
835 |
-
msgstr ""
|
836 |
-
|
837 |
-
#: templates/block_price_alert.php:25
|
838 |
-
msgid "Create Your Free Price Drop Alert!"
|
839 |
-
msgstr ""
|
840 |
-
|
841 |
#: templates/block_price_comparison.php:9
|
842 |
msgid "Price comparison widget"
|
843 |
msgstr ""
|
844 |
|
845 |
-
#: templates/block_price_comparison.php:80
|
846 |
-
#: templates/block_price_comparison_card.php:55
|
847 |
-
#: templates/block_text_links.php:39
|
848 |
-
msgid "Last Amazon price update was:"
|
849 |
-
msgstr ""
|
850 |
-
|
851 |
#: templates/block_price_history.php:9
|
852 |
msgid "Price history for lowest price product"
|
853 |
msgstr ""
|
854 |
|
855 |
-
#: templates/block_price_history.php:20
|
856 |
-
msgid "Price History for"
|
857 |
-
msgstr ""
|
858 |
-
|
859 |
#: templates/block_price_statistics.php:10
|
860 |
msgid "Price statistics"
|
861 |
msgstr ""
|
@@ -880,6 +905,18 @@ msgstr ""
|
|
880 |
msgid "The lowest price of %s was obtained on %s."
|
881 |
msgstr ""
|
882 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
883 |
#. Plugin Name of the plugin/theme
|
884 |
msgid "Content Egg<stripfree> Pro</stripfree>"
|
885 |
msgstr ""
|
1 |
+
# Copyright (C) 2021 Content Egg<stripfree> Pro</stripfree>
|
2 |
# This file is distributed under the same license as the Content Egg<stripfree> Pro</stripfree> package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Content Egg<stripfree> Pro</stripfree> 8.9.0\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/content-egg-tpl\n"
|
7 |
+
"POT-Creation-Date: 2021-05-07 08:37:39+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2021-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
46 |
msgid "Welcome to %s"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: application/PriceAlert.php:164
|
50 |
msgid "Hello,"
|
51 |
msgstr ""
|
52 |
|
53 |
+
#: application/PriceAlert.php:165
|
54 |
msgid "You have successfully set a price drop alert for %s."
|
55 |
msgstr ""
|
56 |
|
57 |
+
#: application/PriceAlert.php:166
|
58 |
msgid ""
|
59 |
"We will not send you any price alerts until you verified your email address."
|
60 |
msgstr ""
|
61 |
|
62 |
+
#: application/PriceAlert.php:167
|
63 |
msgid ""
|
64 |
"Please open this link to validate your email address:<br> <a href=\"%s\">%s</"
|
65 |
"a>"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: application/PriceAlert.php:168 application/PriceAlert.php:409
|
69 |
msgid ""
|
70 |
"If you don't want to receive any price alerts from us in the future, <a href="
|
71 |
"\"%s\">please click here</a>."
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: application/PriceAlert.php:181
|
75 |
msgid "Thank You,"
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: application/PriceAlert.php:181
|
79 |
msgid "The %s Team"
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: application/PriceAlert.php:237
|
83 |
msgid ""
|
84 |
"Your email has been verified. We will let you know by email when the Price "
|
85 |
"Drops."
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: application/PriceAlert.php:237 application/PriceAlert.php:272
|
89 |
msgid "Success!"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: application/PriceAlert.php:254
|
93 |
msgid "You are now unsubscribed from our Price Alerts via email."
|
94 |
msgstr ""
|
95 |
|
96 |
+
#: application/PriceAlert.php:254
|
97 |
msgid "Unsubscribed!"
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: application/PriceAlert.php:272
|
101 |
msgid "Your subscription has been deleted from our database."
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: application/PriceAlert.php:288
|
105 |
msgid " Ok "
|
106 |
msgstr ""
|
107 |
|
108 |
+
#: application/PriceAlert.php:362
|
109 |
msgid "Price alert: \"%s\""
|
110 |
msgstr ""
|
111 |
|
112 |
+
#: application/PriceAlert.php:396
|
113 |
msgid "Good news!"
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: application/PriceAlert.php:397
|
117 |
msgid "The price target you set for the item has been reached."
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: application/PriceAlert.php:398
|
121 |
msgid "<a href=\"%s\">Save %s (%s%%) on %s</a>"
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: application/PriceAlert.php:400
|
125 |
msgid "Desired Price: %s"
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: application/PriceAlert.php:401
|
129 |
msgid "Current Price: <strong>%s</strong>"
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: application/PriceAlert.php:402
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
msgid "as of"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: application/PriceAlert.php:403
|
137 |
msgid "Price dropped from %s to %s"
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: application/PriceAlert.php:405
|
141 |
msgid "<a href=\"%s\">More info...</a>"
|
142 |
msgstr ""
|
143 |
|
144 |
+
#: application/PriceAlert.php:408
|
145 |
msgid ""
|
146 |
"This present alert has now expired. You may <a href=\"%s\">create a new "
|
147 |
"alert</a> for this item."
|
151 |
msgid "Price Drops"
|
152 |
msgstr ""
|
153 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
#: application/ProductSearchWidget.php:81
|
155 |
msgid "Product Search..."
|
156 |
msgstr ""
|
157 |
|
158 |
+
#: application/WooIntegrator.php:544 application/admin/GeneralConfig.php:45
|
159 |
#: application/templates/blocks/grid_row.php:43
|
160 |
+
#: application/templates/blocks/item_row.php:37
|
161 |
+
#: application/templates/blocks/list_row.php:33
|
162 |
+
#: application/templates/data_list.php:25
|
163 |
#: application/templates/data_price_tracker_alert.php:43
|
164 |
#: templates/block_offers_logo.php:55 templates/block_price_comparison.php:44
|
165 |
msgid "Last updated on %s"
|
166 |
msgstr ""
|
167 |
|
168 |
+
#: application/WooIntegrator.php:563 application/admin/GeneralConfig.php:76
|
169 |
msgid "Price per unit: %s"
|
170 |
msgstr ""
|
171 |
|
172 |
+
#: application/admin/GeneralConfig.php:43
|
173 |
+
#: application/helpers/TemplateHelper.php:884
|
174 |
+
msgid "in stock"
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: application/admin/GeneralConfig.php:44
|
178 |
+
#: application/helpers/TemplateHelper.php:886
|
179 |
+
msgid "out of stock"
|
180 |
msgstr ""
|
181 |
|
182 |
+
#: application/admin/GeneralConfig.php:46
|
183 |
+
#: templates/block_price_comparison.php:76
|
184 |
+
#: templates/block_price_comparison_card.php:55
|
185 |
+
#: templates/block_text_links.php:39
|
186 |
+
msgid "Last Amazon price update was: %s"
|
187 |
+
msgstr ""
|
188 |
+
|
189 |
+
#: application/admin/GeneralConfig.php:47
|
190 |
+
#: application/modules/Amazon/templates/data_compare.php:98
|
191 |
+
#: application/modules/Ozon/templates/data_compare.php:78
|
192 |
+
#: application/templates/blocks/item_row.php:55
|
193 |
+
#: application/templates/blocks/list_row.php:53
|
194 |
+
#: application/templates/data_price_tracker_alert.php:48
|
195 |
+
#: templates/block_offers_logo.php:75 templates/wdgt_price_movers_grid.php:72
|
196 |
+
#: templates/wdgt_price_movers_list.php:48
|
197 |
+
msgid "as of %s"
|
198 |
+
msgstr ""
|
199 |
+
|
200 |
+
#: application/admin/GeneralConfig.php:48
|
201 |
+
#: application/templates/blocks/item_after_price_row.php:12
|
202 |
+
#: application/templates/blocks/list_row.php:42
|
203 |
+
#: templates/block_offers_logo.php:64 templates/block_price_comparison.php:51
|
204 |
+
msgid "%d new from %s"
|
205 |
+
msgstr ""
|
206 |
+
|
207 |
+
#: application/admin/GeneralConfig.php:49
|
208 |
+
#: application/templates/blocks/item_after_price_row.php:15
|
209 |
+
#: application/templates/blocks/list_row.php:47
|
210 |
+
#: templates/block_offers_logo.php:69 templates/block_price_comparison.php:56
|
211 |
+
msgid "%d used from %s"
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#: application/admin/GeneralConfig.php:50
|
215 |
+
#: application/modules/Amazon/templates/data_compare.php:80
|
216 |
+
#: application/templates/blocks/item_after_price_row.php:18
|
217 |
+
#: application/templates/blocks/item_after_price_row.php:55
|
218 |
+
msgid "Free shipping"
|
219 |
+
msgstr ""
|
220 |
+
|
221 |
+
#: application/admin/GeneralConfig.php:51
|
222 |
+
#: application/templates/data_coupon.php:26
|
223 |
+
#: application/templates/data_coupon.php:33
|
224 |
+
#: templates/wdgt_price_movers_grid.php:60
|
225 |
+
#: templates/wdgt_price_movers_list.php:62
|
226 |
+
msgid "OFF"
|
227 |
+
msgstr ""
|
228 |
+
|
229 |
+
#: application/admin/GeneralConfig.php:52
|
230 |
+
#: application/templates/blocks/item_row.php:42
|
231 |
+
msgid "Plus %s Cash Back"
|
232 |
+
msgstr ""
|
233 |
+
|
234 |
+
#: application/admin/GeneralConfig.php:53
|
235 |
+
#: application/helpers/TemplateHelper.php:367
|
236 |
+
#: application/modules/Amazon/templates/data_compare.php:65
|
237 |
+
#: application/modules/Ozon/templates/data_compare.php:68
|
238 |
+
#: application/templates/data_price_tracker_alert.php:39
|
239 |
+
msgid "Price"
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: application/admin/GeneralConfig.php:54
|
243 |
+
#: application/modules/Amazon/templates/data_compare.php:119
|
244 |
+
#: application/templates/blocks/item_features.php:30
|
245 |
+
#: application/templates/blocks/item_features.php:40
|
246 |
+
#: application/templates/blocks/item_features.php:52
|
247 |
+
#: application/templates/blocks/item_features.php:64
|
248 |
+
#: application/templates/blocks/item_features.php:76
|
249 |
+
#: application/templates/blocks/item_features.php:89
|
250 |
+
#: application/templates/blocks/item_features.php:98
|
251 |
+
msgid "Features"
|
252 |
+
msgstr ""
|
253 |
+
|
254 |
+
#: application/admin/GeneralConfig.php:55
|
255 |
+
#: application/templates/blocks/item_features.php:11
|
256 |
+
msgid "Specifications"
|
257 |
+
msgstr ""
|
258 |
+
|
259 |
+
#: application/admin/GeneralConfig.php:56
|
260 |
+
#: application/templates/blocks/price_history.php:19
|
261 |
+
msgid "Statistics"
|
262 |
+
msgstr ""
|
263 |
+
|
264 |
+
#: application/admin/GeneralConfig.php:57
|
265 |
+
#: application/templates/blocks/price_history.php:22
|
266 |
+
msgid "Current Price"
|
267 |
+
msgstr ""
|
268 |
+
|
269 |
+
#: application/admin/GeneralConfig.php:58
|
270 |
+
#: application/templates/blocks/price_history.php:34
|
271 |
+
msgid "Highest Price"
|
272 |
+
msgstr ""
|
273 |
+
|
274 |
+
#: application/admin/GeneralConfig.php:59
|
275 |
+
#: application/templates/blocks/price_history.php:40
|
276 |
+
msgid "Lowest Price"
|
277 |
+
msgstr ""
|
278 |
+
|
279 |
+
#: application/admin/GeneralConfig.php:60
|
280 |
+
#: application/templates/blocks/price_history.php:46
|
281 |
+
msgid "Since %s"
|
282 |
+
msgstr ""
|
283 |
+
|
284 |
+
#: application/admin/GeneralConfig.php:61
|
285 |
+
#: application/templates/blocks/price_history.php:49
|
286 |
+
msgid "Last price changes"
|
287 |
+
msgstr ""
|
288 |
+
|
289 |
+
#: application/admin/GeneralConfig.php:62
|
290 |
+
#: application/templates/data_coupon.php:38
|
291 |
+
msgid "Start date: %s"
|
292 |
+
msgstr ""
|
293 |
+
|
294 |
+
#: application/admin/GeneralConfig.php:63
|
295 |
+
#: application/templates/data_coupon.php:41
|
296 |
+
msgid "End date: %s"
|
297 |
+
msgstr ""
|
298 |
+
|
299 |
+
#: application/admin/GeneralConfig.php:64 templates/block_price_alert.php:20
|
300 |
+
msgid "Set Alert for"
|
301 |
+
msgstr ""
|
302 |
+
|
303 |
+
#: application/admin/GeneralConfig.php:65 templates/block_price_history.php:20
|
304 |
+
msgid "Price History for"
|
305 |
+
msgstr ""
|
306 |
+
|
307 |
+
#: application/admin/GeneralConfig.php:66 templates/block_price_alert.php:25
|
308 |
+
msgid "Create Your Free Price Drop Alert!"
|
309 |
+
msgstr ""
|
310 |
+
|
311 |
+
#: application/admin/GeneralConfig.php:67
|
312 |
+
#: application/templates/blocks/price_alert_inline.php:25
|
313 |
+
msgid "Wait For A Price Drop"
|
314 |
+
msgstr ""
|
315 |
+
|
316 |
+
#: application/admin/GeneralConfig.php:68
|
317 |
+
#: application/templates/blocks/price_alert_inline.php:33
|
318 |
+
#: application/templates/blocks/price_alert_inline.php:34
|
319 |
+
msgid "Your Email"
|
320 |
+
msgstr ""
|
321 |
+
|
322 |
+
#: application/admin/GeneralConfig.php:69
|
323 |
+
#: application/templates/blocks/price_alert_inline.php:37
|
324 |
+
#: application/templates/blocks/price_alert_inline.php:43
|
325 |
+
msgid "Desired Price"
|
326 |
+
msgstr ""
|
327 |
+
|
328 |
+
#: application/admin/GeneralConfig.php:70
|
329 |
+
#: application/templates/blocks/price_alert_inline.php:48
|
330 |
+
msgid "SET ALERT"
|
331 |
+
msgstr ""
|
332 |
+
|
333 |
+
#: application/admin/GeneralConfig.php:71
|
334 |
+
#: application/templates/blocks/price_alert_inline.php:63
|
335 |
+
msgid "You will receive a notification when the price drops."
|
336 |
+
msgstr ""
|
337 |
+
|
338 |
+
#: application/admin/GeneralConfig.php:72
|
339 |
+
#: application/templates/blocks/price_alert_inline.php:59
|
340 |
+
msgid "I agree to the %s."
|
341 |
+
msgstr ""
|
342 |
+
|
343 |
+
#: application/admin/GeneralConfig.php:73
|
344 |
+
#: application/templates/blocks/price_alert_inline.php:58
|
345 |
+
msgid "Privacy Policy"
|
346 |
+
msgstr ""
|
347 |
+
|
348 |
+
#: application/admin/GeneralConfig.php:74
|
349 |
+
msgid "Sorry. No products found."
|
350 |
+
msgstr ""
|
351 |
+
|
352 |
+
#: application/admin/GeneralConfig.php:75
|
353 |
+
msgid "Search Results for \"%s\""
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: application/admin/GeneralConfig.php:77
|
357 |
+
#: application/helpers/TemplateHelper.php:771
|
358 |
+
msgid "today"
|
359 |
msgstr ""
|
360 |
|
361 |
+
#: application/admin/GeneralConfig.php:78
|
362 |
+
#: application/helpers/TemplateHelper.php:777
|
363 |
+
msgid "%d day ago"
|
364 |
msgstr ""
|
365 |
|
366 |
+
#: application/admin/GeneralConfig.php:79
|
367 |
+
#: application/helpers/TemplateHelper.php:775
|
368 |
+
msgid "%d days ago"
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: application/admin/GeneralConfig.php:433
|
372 |
+
msgid "Buy Now"
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: application/admin/GeneralConfig.php:443
|
376 |
+
#: application/helpers/TemplateHelper.php:753
|
377 |
+
msgid "Shop Sale"
|
378 |
+
msgstr ""
|
379 |
+
|
380 |
+
#: application/admin/PrefillController.php:37
|
381 |
+
#: application/admin/views/prefill.php:116
|
382 |
+
msgid "Future"
|
383 |
+
msgstr ""
|
384 |
+
|
385 |
+
#: application/components/ContentManager.php:483
|
386 |
#: application/modules/Market/templates/data_item.php:128
|
387 |
msgid "Pros:"
|
388 |
msgstr ""
|
389 |
|
390 |
+
#: application/components/ContentManager.php:485
|
391 |
#: application/modules/Market/templates/data_item.php:129
|
392 |
msgid "Cons:"
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: application/components/ContentManager.php:573
|
396 |
msgid "Rating"
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: application/helpers/TemplateHelper.php:39
|
400 |
+
#: application/helpers/TemplateHelper.php:60
|
401 |
msgid "number_format_decimal_point"
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: application/helpers/TemplateHelper.php:40
|
405 |
+
#: application/helpers/TemplateHelper.php:61
|
406 |
msgid "number_format_thousands_sep"
|
407 |
msgstr ""
|
408 |
|
409 |
+
#: application/helpers/TemplateHelper.php:123
|
410 |
msgid "d"
|
411 |
msgstr ""
|
412 |
|
413 |
+
#: application/helpers/TemplateHelper.php:125
|
414 |
msgid "h"
|
415 |
msgstr ""
|
416 |
|
417 |
+
#: application/helpers/TemplateHelper.php:127
|
418 |
+
#: application/helpers/TemplateHelper.php:129
|
419 |
+
#: application/templates/blocks/item_after_price_row.php:45
|
420 |
msgid "m"
|
421 |
msgstr ""
|
422 |
|
423 |
+
#: application/helpers/TemplateHelper.php:748
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
424 |
msgid "BUY NOW"
|
425 |
msgstr ""
|
426 |
|
427 |
+
#: application/helpers/TemplateHelper.php:785
|
428 |
+
msgid "As an Amazon associate I earn from qualifying purchases."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
429 |
msgstr ""
|
430 |
|
431 |
+
#: application/helpers/TemplateHelper.php:785
|
432 |
msgid ""
|
433 |
"Product prices and availability are accurate as of the date/time indicated "
|
434 |
"and are subject to change. Any price and availability information displayed "
|
435 |
"on Amazon at the time of purchase will apply to the purchase of this product."
|
436 |
msgstr ""
|
437 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
438 |
#: application/modules/AE/templates/data_grid.php:8
|
439 |
#: application/modules/AdmitadProducts/templates/data_grid.php:8
|
440 |
#: application/modules/Affiliatewindow/templates/data_grid.php:8
|
450 |
#: application/modules/Daisycon/templates/data_grid.php:9
|
451 |
#: application/modules/Ebay/templates/data_grid.php:9
|
452 |
#: application/modules/Envato/templates/data_grid.php:9
|
453 |
+
#: application/modules/Feed/templates/data_grid.php:8
|
454 |
#: application/modules/Flipkart/templates/data_grid.php:9
|
455 |
#: application/modules/GdeSlon/templates/data_grid.php:9
|
456 |
#: application/modules/Impactradius/templates/data_grid.php:9
|
489 |
#: application/modules/Daisycon/templates/data_item.php:9
|
490 |
#: application/modules/Ebay/templates/data_item.php:9
|
491 |
#: application/modules/Envato/templates/data_item.php:9
|
492 |
+
#: application/modules/Feed/templates/data_item.php:8
|
493 |
#: application/modules/Flipkart/templates/data_item.php:9
|
494 |
#: application/modules/GdeSlon/templates/data_item.php:9
|
495 |
#: application/modules/Impactradius/templates/data_item.php:9
|
529 |
#: application/modules/Daisycon/templates/data_list.php:8
|
530 |
#: application/modules/Ebay/templates/data_list.php:8
|
531 |
#: application/modules/Envato/templates/data_list.php:8
|
532 |
+
#: application/modules/Feed/templates/data_list.php:7
|
533 |
#: application/modules/Flipkart/templates/data_list.php:8
|
534 |
#: application/modules/GdeSlon/templates/data_list.php:8
|
535 |
#: application/modules/Impactradius/templates/data_list.php:8
|
567 |
#: application/modules/CjProducts/templates/data_price_tracker_alert.php:9
|
568 |
#: application/modules/Daisycon/templates/data_price_tracker_alert.php:9
|
569 |
#: application/modules/Ebay/templates/data_price_tracker_alert.php:9
|
570 |
+
#: application/modules/Feed/templates/data_price_tracker_alert.php:8
|
571 |
#: application/modules/Flipkart/templates/data_price_tracker_alert.php:9
|
572 |
#: application/modules/GdeSlon/templates/data_price_tracker_alert.php:9
|
573 |
#: application/modules/Impactradius/templates/data_price_tracker_alert.php:9
|
616 |
msgid "Too low to display"
|
617 |
msgstr ""
|
618 |
|
|
|
|
|
|
|
|
|
|
|
|
|
619 |
#: application/modules/Amazon/templates/data_compare.php:86
|
|
|
|
|
|
|
620 |
msgid "new"
|
621 |
msgstr ""
|
622 |
|
623 |
#: application/modules/Amazon/templates/data_compare.php:88
|
624 |
#: application/modules/Amazon/templates/data_compare.php:93
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
625 |
msgid "from"
|
626 |
msgstr ""
|
627 |
|
628 |
#: application/modules/Amazon/templates/data_compare.php:93
|
|
|
|
|
|
|
629 |
msgid "used"
|
630 |
msgstr ""
|
631 |
|
636 |
msgid "Shop Now"
|
637 |
msgstr ""
|
638 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
639 |
#: application/modules/Amazon/templates/data_compare.php:169
|
640 |
#: application/modules/Ozon/templates/data_compare.php:140
|
641 |
msgid "User Reviews"
|
805 |
msgid "Tile"
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: application/templates/blocks/item_after_price_row.php:32
|
809 |
msgid "Bids:"
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: application/templates/blocks/item_after_price_row.php:37
|
813 |
msgid "Item condition:"
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: application/templates/blocks/item_after_price_row.php:44
|
817 |
msgid "Time left:"
|
818 |
msgstr ""
|
819 |
|
820 |
+
#: application/templates/blocks/item_after_price_row.php:49
|
821 |
msgid "Ended:"
|
822 |
msgstr ""
|
823 |
|
824 |
+
#: application/templates/blocks/item_after_price_row.php:59
|
825 |
msgid "EEK:"
|
826 |
msgstr ""
|
827 |
|
|
|
|
|
|
|
|
|
828 |
#: application/templates/blocks/item_reviews.php:29
|
829 |
msgid "User reviews"
|
830 |
msgstr ""
|
833 |
msgid "View all reviews"
|
834 |
msgstr ""
|
835 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
836 |
#: application/templates/blocks/price_history.php:10
|
837 |
msgid "Price History"
|
838 |
msgstr ""
|
839 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
840 |
#: templates/block_buttons_row.php:16
|
841 |
msgid "%s at %s"
|
842 |
msgstr ""
|
873 |
msgid "Price alert for lowest price product"
|
874 |
msgstr ""
|
875 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
876 |
#: templates/block_price_comparison.php:9
|
877 |
msgid "Price comparison widget"
|
878 |
msgstr ""
|
879 |
|
|
|
|
|
|
|
|
|
|
|
|
|
880 |
#: templates/block_price_history.php:9
|
881 |
msgid "Price history for lowest price product"
|
882 |
msgstr ""
|
883 |
|
|
|
|
|
|
|
|
|
884 |
#: templates/block_price_statistics.php:10
|
885 |
msgid "Price statistics"
|
886 |
msgstr ""
|
905 |
msgid "The lowest price of %s was obtained on %s."
|
906 |
msgstr ""
|
907 |
|
908 |
+
#: templates/block_top_listing.php:42
|
909 |
+
msgid "Best choice"
|
910 |
+
msgstr ""
|
911 |
+
|
912 |
+
#: templates/block_top_listing.php:44
|
913 |
+
msgid "Recommended"
|
914 |
+
msgstr ""
|
915 |
+
|
916 |
+
#: templates/block_top_listing.php:46
|
917 |
+
msgid "High quality"
|
918 |
+
msgstr ""
|
919 |
+
|
920 |
#. Plugin Name of the plugin/theme
|
921 |
msgid "Content Egg<stripfree> Pro</stripfree>"
|
922 |
msgstr ""
|
loader.php
CHANGED
@@ -10,8 +10,8 @@ defined( '\ABSPATH' ) || exit;
|
|
10 |
* AutoLoader class file
|
11 |
*
|
12 |
* @author keywordrush.com <support@keywordrush.com>
|
13 |
-
* @link
|
14 |
-
* @copyright Copyright ©
|
15 |
*/
|
16 |
class AutoLoader {
|
17 |
|
10 |
* AutoLoader class file
|
11 |
*
|
12 |
* @author keywordrush.com <support@keywordrush.com>
|
13 |
+
* @link https://www.keywordrush.com
|
14 |
+
* @copyright Copyright © 2021 keywordrush.com
|
15 |
*/
|
16 |
class AutoLoader {
|
17 |
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== Content Egg ===
|
2 |
Contributors: keywordrush
|
3 |
-
Tags: content, affiliate, autoblogging, affilinet, coupons, linkshare, shareasale, amazon, flickr, youtube, commission junction, aliexpress, cj, images, wikipedia, freebase, ecommerce, links, shortcode, monetize, search engine optimization, ebay, zanox, moneymaking, price comparison, google images, timesaving, clickbank, linkshare, pixabay, admitad, affilitewindow, optimisemedia, tradedoubler, flipkart, paytm, price alert, tracker, impactradius, pepperjam,
|
4 |
Requires at least: 4.6.1
|
5 |
-
Tested up to: 5.
|
6 |
Requires PHP: 5.4
|
7 |
-
Stable tag: 5.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -12,11 +12,32 @@ All in one solution for creating affiliate websites.
|
|
12 |
|
13 |
== Description ==
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
= Plugin features =
|
16 |
|
17 |
* Easily adding offers from different affiliate systems by keyword.
|
|
|
18 |
* Search and add to post additional relevant content: videos, images, news, etc.
|
19 |
-
* Autoblogging
|
20 |
* Multilanguage: make site on any language.
|
21 |
* Automatic updating prices and offers.
|
22 |
* WooCommerce products synchronization.
|
@@ -27,40 +48,38 @@ All in one solution for creating affiliate websites.
|
|
27 |
* Price tracker and price alert.
|
28 |
* Easy interface: add all content from post admin page.
|
29 |
* Custom output templates.
|
|
|
30 |
* Works with any theme.
|
31 |
* Works through official API.
|
32 |
* Works with Wordpress shortcodes.
|
33 |
|
34 |
-
|
35 |
|
36 |
-
|
37 |
|
38 |
-
|
39 |
-
* Plugin searches and displays the results to you.
|
40 |
-
* Now you can choose what to add to the post and edit the results.
|
41 |
-
* It's very simple and fast: multiple search and add data directly to the post editing page without reloading the page.
|
42 |
-
* You can also setup autoblogging and plugin will create posts with relevant content by your schedule.
|
43 |
|
44 |
-
> <strong>
|
45 |
>Do you want to get even more? Pro version offers tons of additional modules and extended features.
|
46 |
>
|
47 |
-
>Modules of free version: CJ Links, Coupon, GdeSlon, GoogleImages, Offer, Pixabay, Related Keywords, RSS Fetcher, Skimlinks Coupons, Youtube.
|
48 |
>
|
49 |
-
>Additional modules of PRO version:
|
50 |
>
|
51 |
-
>Visit us at [www.keywordrush.com/contentegg](https://www.keywordrush.com/contentegg "Content Egg
|
52 |
|
53 |
= Autoblogging =
|
54 |
|
55 |
Content Egg plugin can create sites on autopilot! Everything you need - it's just setup once autoblogging, type keywords and plugin will find products, images, videos and other content based on your schedule.
|
56 |
-
|
|
|
57 |
|
58 |
== Installation ==
|
59 |
|
60 |
**Requirements**
|
61 |
|
62 |
-
* PHP 5.4
|
63 |
-
* Wordpress 4.6.1
|
64 |
|
65 |
This section describes how to install the plugin and get it working.
|
66 |
|
@@ -69,24 +88,28 @@ This section describes how to install the plugin and get it working.
|
|
69 |
1. Configure plugin settings
|
70 |
1. You can find manual how to configure each module - [Content Egg User Guide](https://ce-docs.keywordrush.com/)
|
71 |
|
72 |
-
== Frequently Asked Questions ==
|
73 |
-
|
74 |
-
= Is it difficult to make templates for the modules? =
|
75 |
-
|
76 |
-
If you can do any Wordpress page templates – you can do also templates for Content Egg. It's just html code with output variables and macros.
|
77 |
-
|
78 |
== Screenshots ==
|
79 |
|
80 |
-
1.
|
81 |
-
2.
|
82 |
-
3.
|
83 |
-
4.
|
84 |
-
5.
|
85 |
-
6.
|
86 |
-
7. Price Tracker/Alert
|
87 |
|
88 |
== Changelog ==
|
89 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
|
91 |
= 5.1.0 =
|
92 |
|
1 |
=== Content Egg ===
|
2 |
Contributors: keywordrush
|
3 |
+
Tags: content, affiliate, autoblogging, affilinet, coupons, linkshare, shareasale, amazon, flickr, youtube, commission junction, aliexpress, cj, images, wikipedia, freebase, ecommerce, links, shortcode, monetize, search engine optimization, ebay, zanox, moneymaking, price comparison, google images, timesaving, clickbank, linkshare, pixabay, admitad, affilitewindow, optimisemedia, tradedoubler, flipkart, paytm, price alert, tracker, impactradius, pepperjam, udemy, envato, tradetracker, viglink, skimlinks
|
4 |
Requires at least: 4.6.1
|
5 |
+
Tested up to: 5.7.2
|
6 |
Requires PHP: 5.4
|
7 |
+
Stable tag: 5.2.0
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
+
= What is this plugin for? =
|
16 |
+
|
17 |
+
* Product revews and niche blog
|
18 |
+
* Price comparison site
|
19 |
+
* Daily deals website
|
20 |
+
* WooCommerce directories
|
21 |
+
* Sites on autopilot
|
22 |
+
|
23 |
+
Official website: [www.keywordrush.com](https://www.keywordrush.com/ "KeywordRush")
|
24 |
+
Demo: [demo.keywordrush.com](https://demo.keywordrush.com/content-egg-pro-output-demo/ "Content Egg output demo")
|
25 |
+
Documentation: [ce-docs.keywordrush.com](https://ce-docs.keywordrush.com/ "Content Egg output demo")
|
26 |
+
|
27 |
+
= How it works? =
|
28 |
+
|
29 |
+
* Activate your modules
|
30 |
+
* Add offers
|
31 |
+
* Start to earn
|
32 |
+
|
33 |
+
[youtube https://www.youtube.com/watch?v=7oUazXI2-ic]
|
34 |
+
|
35 |
= Plugin features =
|
36 |
|
37 |
* Easily adding offers from different affiliate systems by keyword.
|
38 |
+
* Special module to work with CSV feeds.
|
39 |
* Search and add to post additional relevant content: videos, images, news, etc.
|
40 |
+
* Autoblogging.
|
41 |
* Multilanguage: make site on any language.
|
42 |
* Automatic updating prices and offers.
|
43 |
* WooCommerce products synchronization.
|
48 |
* Price tracker and price alert.
|
49 |
* Easy interface: add all content from post admin page.
|
50 |
* Custom output templates.
|
51 |
+
* Affiliate Egg integration.
|
52 |
* Works with any theme.
|
53 |
* Works through official API.
|
54 |
* Works with Wordpress shortcodes.
|
55 |
|
56 |
+
= Import products in Woocommerce from CSV =
|
57 |
|
58 |
+
Content Egg has special module to work with product feeds.
|
59 |
|
60 |
+
[youtube https://www.youtube.com/watch?v=dfs9ojO_OD8]
|
|
|
|
|
|
|
|
|
61 |
|
62 |
+
> <strong>Content Egg PRO version</strong><br>
|
63 |
>Do you want to get even more? Pro version offers tons of additional modules and extended features.
|
64 |
>
|
65 |
+
>Modules of free version: CSV Feed, CJ Links, Coupon, GdeSlon, GoogleImages, Offer, Pixabay, Related Keywords, RSS Fetcher, Skimlinks Coupons, Viglink, Youtube.
|
66 |
>
|
67 |
+
>Additional modules of PRO version: Aliexpress, Amazon, Avantlink, AWIN, Bol.com, CityAds, CJ Products, Clickbank, Daisycon, eBay, Envato, Flipkart, Impactradius, Kelkoogroup, Rakuten LinkShare, Linkwise, Lomadee.com, Paytm.com, Pepperjam, Shareasale, Tradedoubler, Tradetracker, Udemy, Walmart, Webgains.
|
68 |
>
|
69 |
+
>Visit us at [www.keywordrush.com/contentegg](https://www.keywordrush.com/contentegg "Content Egg PRO").
|
70 |
|
71 |
= Autoblogging =
|
72 |
|
73 |
Content Egg plugin can create sites on autopilot! Everything you need - it's just setup once autoblogging, type keywords and plugin will find products, images, videos and other content based on your schedule.
|
74 |
+
|
75 |
+
[youtube https://www.youtube.com/watch?v=-TjUgbm0Oks]
|
76 |
|
77 |
== Installation ==
|
78 |
|
79 |
**Requirements**
|
80 |
|
81 |
+
* PHP version 5.4 or higher.
|
82 |
+
* Wordpress 4.6.1 or higher.
|
83 |
|
84 |
This section describes how to install the plugin and get it working.
|
85 |
|
88 |
1. Configure plugin settings
|
89 |
1. You can find manual how to configure each module - [Content Egg User Guide](https://ce-docs.keywordrush.com/)
|
90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
== Screenshots ==
|
92 |
|
93 |
+
1. Modules
|
94 |
+
2. Feed module settings
|
95 |
+
3. Products search
|
96 |
+
4. Output demo 1
|
97 |
+
5. Output demo 2
|
98 |
+
6. Price history
|
|
|
99 |
|
100 |
== Changelog ==
|
101 |
|
102 |
+
= 5.2.0 =
|
103 |
+
|
104 |
+
* New: Feed module to work with custom CSV feeds.
|
105 |
+
* New: Viglink module.
|
106 |
+
* New: Merchant settings: Shop info.
|
107 |
+
* New: Block template: Top listing.
|
108 |
+
* New: Price alert email templates.
|
109 |
+
* New: Price alerts option: General alert for all products in a post.
|
110 |
+
* New: Frontend text settings.
|
111 |
+
* Improvement: Compatibility with WooCommerce 5.1.0.
|
112 |
+
* Improvement: Glyphicons are no longer used on frontend.
|
113 |
|
114 |
= 5.1.0 =
|
115 |
|
res/app/app.js
CHANGED
@@ -233,7 +233,7 @@ contentEgg.config(function ($sceDelegateProvider) {
|
|
233 |
contentEgg.directive('onEnter', function () {
|
234 |
|
235 |
var linkFn = function (scope, element, attrs) {
|
236 |
-
element.
|
237 |
if (event.which === 13) {
|
238 |
scope.$apply(function () {
|
239 |
scope.$eval(attrs.onEnter);
|
@@ -258,7 +258,7 @@ contentEgg.directive('imageloaded', [
|
|
258 |
link: function (scope, element, attrs) {
|
259 |
var cssClass = attrs.loadedclass;
|
260 |
|
261 |
-
element.
|
262 |
angular.element(element).addClass(cssClass);
|
263 |
});
|
264 |
}
|
@@ -301,7 +301,7 @@ contentEgg.directive('ngConfirmClick', function () {
|
|
301 |
priority: -1,
|
302 |
restrict: 'A',
|
303 |
link: function (scope, element, attrs) {
|
304 |
-
element.
|
305 |
var message = attrs.ngConfirmClick;
|
306 |
if (message && !confirm(message)) {
|
307 |
e.stopImmediatePropagation();
|
233 |
contentEgg.directive('onEnter', function () {
|
234 |
|
235 |
var linkFn = function (scope, element, attrs) {
|
236 |
+
element.on('keypress', function (event) {
|
237 |
if (event.which === 13) {
|
238 |
scope.$apply(function () {
|
239 |
scope.$eval(attrs.onEnter);
|
258 |
link: function (scope, element, attrs) {
|
259 |
var cssClass = attrs.loadedclass;
|
260 |
|
261 |
+
element.on('load', function (e) {
|
262 |
angular.element(element).addClass(cssClass);
|
263 |
});
|
264 |
}
|
301 |
priority: -1,
|
302 |
restrict: 'A',
|
303 |
link: function (scope, element, attrs) {
|
304 |
+
element.on('click', function (e) {
|
305 |
var message = attrs.ngConfirmClick;
|
306 |
if (message && !confirm(message)) {
|
307 |
e.stopImmediatePropagation();
|
res/bootstrap/css/egg-bootstrap.css
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
/*!
|
2 |
* Modified version of Bootstrap CSS
|
3 |
* @author keywordrush.com <support@keywordrush.com>
|
4 |
-
* @link
|
5 |
-
* @copyright Copyright ©
|
6 |
*
|
7 |
* Original work Copyright
|
8 |
* Bootstrap v3.3.4 (http://getbootstrap.com)
|
@@ -10,811 +10,6 @@
|
|
10 |
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
11 |
*/
|
12 |
|
13 |
-
@font-face {
|
14 |
-
font-family: 'Glyphicons Halflings';
|
15 |
-
src: url('../fonts/glyphicons-halflings-regular.eot');
|
16 |
-
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
|
17 |
-
}
|
18 |
-
.glyphicon {
|
19 |
-
position: relative;
|
20 |
-
top: 1px;
|
21 |
-
display: inline-block;
|
22 |
-
font-family: 'Glyphicons Halflings';
|
23 |
-
font-style: normal;
|
24 |
-
font-weight: normal;
|
25 |
-
line-height: 1;
|
26 |
-
|
27 |
-
-webkit-font-smoothing: antialiased;
|
28 |
-
-moz-osx-font-smoothing: grayscale;
|
29 |
-
}
|
30 |
-
.glyphicon-asterisk:before {
|
31 |
-
content: "\002a";
|
32 |
-
}
|
33 |
-
.glyphicon-plus:before {
|
34 |
-
content: "\002b";
|
35 |
-
}
|
36 |
-
.glyphicon-euro:before,
|
37 |
-
.glyphicon-eur:before {
|
38 |
-
content: "\20ac";
|
39 |
-
}
|
40 |
-
.glyphicon-minus:before {
|
41 |
-
content: "\2212";
|
42 |
-
}
|
43 |
-
.glyphicon-cloud:before {
|
44 |
-
content: "\2601";
|
45 |
-
}
|
46 |
-
.glyphicon-envelope:before {
|
47 |
-
content: "\2709";
|
48 |
-
}
|
49 |
-
.glyphicon-pencil:before {
|
50 |
-
content: "\270f";
|
51 |
-
}
|
52 |
-
.glyphicon-glass:before {
|
53 |
-
content: "\e001";
|
54 |
-
}
|
55 |
-
.glyphicon-music:before {
|
56 |
-
content: "\e002";
|
57 |
-
}
|
58 |
-
.glyphicon-search:before {
|
59 |
-
content: "\e003";
|
60 |
-
}
|
61 |
-
.glyphicon-heart:before {
|
62 |
-
content: "\e005";
|
63 |
-
}
|
64 |
-
.glyphicon-star:before {
|
65 |
-
content: "\e006";
|
66 |
-
}
|
67 |
-
.glyphicon-star-empty:before {
|
68 |
-
content: "\e007";
|
69 |
-
}
|
70 |
-
.glyphicon-user:before {
|
71 |
-
content: "\e008";
|
72 |
-
}
|
73 |
-
.glyphicon-film:before {
|
74 |
-
content: "\e009";
|
75 |
-
}
|
76 |
-
.glyphicon-th-large:before {
|
77 |
-
content: "\e010";
|
78 |
-
}
|
79 |
-
.glyphicon-th:before {
|
80 |
-
content: "\e011";
|
81 |
-
}
|
82 |
-
.glyphicon-th-list:before {
|
83 |
-
content: "\e012";
|
84 |
-
}
|
85 |
-
.glyphicon-ok:before {
|
86 |
-
content: "\e013";
|
87 |
-
}
|
88 |
-
.glyphicon-remove:before {
|
89 |
-
content: "\e014";
|
90 |
-
}
|
91 |
-
.glyphicon-zoom-in:before {
|
92 |
-
content: "\e015";
|
93 |
-
}
|
94 |
-
.glyphicon-zoom-out:before {
|
95 |
-
content: "\e016";
|
96 |
-
}
|
97 |
-
.glyphicon-off:before {
|
98 |
-
content: "\e017";
|
99 |
-
}
|
100 |
-
.glyphicon-signal:before {
|
101 |
-
content: "\e018";
|
102 |
-
}
|
103 |
-
.glyphicon-cog:before {
|
104 |
-
content: "\e019";
|
105 |
-
}
|
106 |
-
.glyphicon-trash:before {
|
107 |
-
content: "\e020";
|
108 |
-
}
|
109 |
-
.glyphicon-home:before {
|
110 |
-
content: "\e021";
|
111 |
-
}
|
112 |
-
.glyphicon-file:before {
|
113 |
-
content: "\e022";
|
114 |
-
}
|
115 |
-
.glyphicon-time:before {
|
116 |
-
content: "\e023";
|
117 |
-
}
|
118 |
-
.glyphicon-road:before {
|
119 |
-
content: "\e024";
|
120 |
-
}
|
121 |
-
.glyphicon-download-alt:before {
|
122 |
-
content: "\e025";
|
123 |
-
}
|
124 |
-
.glyphicon-download:before {
|
125 |
-
content: "\e026";
|
126 |
-
}
|
127 |
-
.glyphicon-upload:before {
|
128 |
-
content: "\e027";
|
129 |
-
}
|
130 |
-
.glyphicon-inbox:before {
|
131 |
-
content: "\e028";
|
132 |
-
}
|
133 |
-
.glyphicon-play-circle:before {
|
134 |
-
content: "\e029";
|
135 |
-
}
|
136 |
-
.glyphicon-repeat:before {
|
137 |
-
content: "\e030";
|
138 |
-
}
|
139 |
-
.glyphicon-refresh:before {
|
140 |
-
content: "\e031";
|
141 |
-
}
|
142 |
-
.glyphicon-list-alt:before {
|
143 |
-
content: "\e032";
|
144 |
-
}
|
145 |
-
.glyphicon-lock:before {
|
146 |
-
content: "\e033";
|
147 |
-
}
|
148 |
-
.glyphicon-flag:before {
|
149 |
-
content: "\e034";
|
150 |
-
}
|
151 |
-
.glyphicon-headphones:before {
|
152 |
-
content: "\e035";
|
153 |
-
}
|
154 |
-
.glyphicon-volume-off:before {
|
155 |
-
content: "\e036";
|
156 |
-
}
|
157 |
-
.glyphicon-volume-down:before {
|
158 |
-
content: "\e037";
|
159 |
-
}
|
160 |
-
.glyphicon-volume-up:before {
|
161 |
-
content: "\e038";
|
162 |
-
}
|
163 |
-
.glyphicon-qrcode:before {
|
164 |
-
content: "\e039";
|
165 |
-
}
|
166 |
-
.glyphicon-barcode:before {
|
167 |
-
content: "\e040";
|
168 |
-
}
|
169 |
-
.glyphicon-tag:before {
|
170 |
-
content: "\e041";
|
171 |
-
}
|
172 |
-
.glyphicon-tags:before {
|
173 |
-
content: "\e042";
|
174 |
-
}
|
175 |
-
.glyphicon-book:before {
|
176 |
-
content: "\e043";
|
177 |
-
}
|
178 |
-
.glyphicon-bookmark:before {
|
179 |
-
content: "\e044";
|
180 |
-
}
|
181 |
-
.glyphicon-print:before {
|
182 |
-
content: "\e045";
|
183 |
-
}
|
184 |
-
.glyphicon-camera:before {
|
185 |
-
content: "\e046";
|
186 |
-
}
|
187 |
-
.glyphicon-font:before {
|
188 |
-
content: "\e047";
|
189 |
-
}
|
190 |
-
.glyphicon-bold:before {
|
191 |
-
content: "\e048";
|
192 |
-
}
|
193 |
-
.glyphicon-italic:before {
|
194 |
-
content: "\e049";
|
195 |
-
}
|
196 |
-
.glyphicon-text-height:before {
|
197 |
-
content: "\e050";
|
198 |
-
}
|
199 |
-
.glyphicon-text-width:before {
|
200 |
-
content: "\e051";
|
201 |
-
}
|
202 |
-
.glyphicon-align-left:before {
|
203 |
-
content: "\e052";
|
204 |
-
}
|
205 |
-
.glyphicon-align-center:before {
|
206 |
-
content: "\e053";
|
207 |
-
}
|
208 |
-
.glyphicon-align-right:before {
|
209 |
-
content: "\e054";
|
210 |
-
}
|
211 |
-
.glyphicon-align-justify:before {
|
212 |
-
content: "\e055";
|
213 |
-
}
|
214 |
-
.glyphicon-list:before {
|
215 |
-
content: "\e056";
|
216 |
-
}
|
217 |
-
.glyphicon-indent-left:before {
|
218 |
-
content: "\e057";
|
219 |
-
}
|
220 |
-
.glyphicon-indent-right:before {
|
221 |
-
content: "\e058";
|
222 |
-
}
|
223 |
-
.glyphicon-facetime-video:before {
|
224 |
-
content: "\e059";
|
225 |
-
}
|
226 |
-
.glyphicon-picture:before {
|
227 |
-
content: "\e060";
|
228 |
-
}
|
229 |
-
.glyphicon-map-marker:before {
|
230 |
-
content: "\e062";
|
231 |
-
}
|
232 |
-
.glyphicon-adjust:before {
|
233 |
-
content: "\e063";
|
234 |
-
}
|
235 |
-
.glyphicon-tint:before {
|
236 |
-
content: "\e064";
|
237 |
-
}
|
238 |
-
.glyphicon-edit:before {
|
239 |
-
content: "\e065";
|
240 |
-
}
|
241 |
-
.glyphicon-share:before {
|
242 |
-
content: "\e066";
|
243 |
-
}
|
244 |
-
.glyphicon-check:before {
|
245 |
-
content: "\e067";
|
246 |
-
}
|
247 |
-
.glyphicon-move:before {
|
248 |
-
content: "\e068";
|
249 |
-
}
|
250 |
-
.glyphicon-step-backward:before {
|
251 |
-
content: "\e069";
|
252 |
-
}
|
253 |
-
.glyphicon-fast-backward:before {
|
254 |
-
content: "\e070";
|
255 |
-
}
|
256 |
-
.glyphicon-backward:before {
|
257 |
-
content: "\e071";
|
258 |
-
}
|
259 |
-
.glyphicon-play:before {
|
260 |
-
content: "\e072";
|
261 |
-
}
|
262 |
-
.glyphicon-pause:before {
|
263 |
-
content: "\e073";
|
264 |
-
}
|
265 |
-
.glyphicon-stop:before {
|
266 |
-
content: "\e074";
|
267 |
-
}
|
268 |
-
.glyphicon-forward:before {
|
269 |
-
content: "\e075";
|
270 |
-
}
|
271 |
-
.glyphicon-fast-forward:before {
|
272 |
-
content: "\e076";
|
273 |
-
}
|
274 |
-
.glyphicon-step-forward:before {
|
275 |
-
content: "\e077";
|
276 |
-
}
|
277 |
-
.glyphicon-eject:before {
|
278 |
-
content: "\e078";
|
279 |
-
}
|
280 |
-
.glyphicon-chevron-left:before {
|
281 |
-
content: "\e079";
|
282 |
-
}
|
283 |
-
.glyphicon-chevron-right:before {
|
284 |
-
content: "\e080";
|
285 |
-
}
|
286 |
-
.glyphicon-plus-sign:before {
|
287 |
-
content: "\e081";
|
288 |
-
}
|
289 |
-
.glyphicon-minus-sign:before {
|
290 |
-
content: "\e082";
|
291 |
-
}
|
292 |
-
.glyphicon-remove-sign:before {
|
293 |
-
content: "\e083";
|
294 |
-
}
|
295 |
-
.glyphicon-ok-sign:before {
|
296 |
-
content: "\e084";
|
297 |
-
}
|
298 |
-
.glyphicon-question-sign:before {
|
299 |
-
content: "\e085";
|
300 |
-
}
|
301 |
-
.glyphicon-info-sign:before {
|
302 |
-
content: "\e086";
|
303 |
-
}
|
304 |
-
.glyphicon-screenshot:before {
|
305 |
-
content: "\e087";
|
306 |
-
}
|
307 |
-
.glyphicon-remove-circle:before {
|
308 |
-
content: "\e088";
|
309 |
-
}
|
310 |
-
.glyphicon-ok-circle:before {
|
311 |
-
content: "\e089";
|
312 |
-
}
|
313 |
-
.glyphicon-ban-circle:before {
|
314 |
-
content: "\e090";
|
315 |
-
}
|
316 |
-
.glyphicon-arrow-left:before {
|
317 |
-
content: "\e091";
|
318 |
-
}
|
319 |
-
.glyphicon-arrow-right:before {
|
320 |
-
content: "\e092";
|
321 |
-
}
|
322 |
-
.glyphicon-arrow-up:before {
|
323 |
-
content: "\e093";
|
324 |
-
}
|
325 |
-
.glyphicon-arrow-down:before {
|
326 |
-
content: "\e094";
|
327 |
-
}
|
328 |
-
.glyphicon-share-alt:before {
|
329 |
-
content: "\e095";
|
330 |
-
}
|
331 |
-
.glyphicon-resize-full:before {
|
332 |
-
content: "\e096";
|
333 |
-
}
|
334 |
-
.glyphicon-resize-small:before {
|
335 |
-
content: "\e097";
|
336 |
-
}
|
337 |
-
.glyphicon-exclamation-sign:before {
|
338 |
-
content: "\e101";
|
339 |
-
}
|
340 |
-
.glyphicon-gift:before {
|
341 |
-
content: "\e102";
|
342 |
-
}
|
343 |
-
.glyphicon-leaf:before {
|
344 |
-
content: "\e103";
|
345 |
-
}
|
346 |
-
.glyphicon-fire:before {
|
347 |
-
content: "\e104";
|
348 |
-
}
|
349 |
-
.glyphicon-eye-open:before {
|
350 |
-
content: "\e105";
|
351 |
-
}
|
352 |
-
.glyphicon-eye-close:before {
|
353 |
-
content: "\e106";
|
354 |
-
}
|
355 |
-
.glyphicon-warning-sign:before {
|
356 |
-
content: "\e107";
|
357 |
-
}
|
358 |
-
.glyphicon-plane:before {
|
359 |
-
content: "\e108";
|
360 |
-
}
|
361 |
-
.glyphicon-calendar:before {
|
362 |
-
content: "\e109";
|
363 |
-
}
|
364 |
-
.glyphicon-random:before {
|
365 |
-
content: "\e110";
|
366 |
-
}
|
367 |
-
.glyphicon-comment:before {
|
368 |
-
content: "\e111";
|
369 |
-
}
|
370 |
-
.glyphicon-magnet:before {
|
371 |
-
content: "\e112";
|
372 |
-
}
|
373 |
-
.glyphicon-chevron-up:before {
|
374 |
-
content: "\e113";
|
375 |
-
}
|
376 |
-
.glyphicon-chevron-down:before {
|
377 |
-
content: "\e114";
|
378 |
-
}
|
379 |
-
.glyphicon-retweet:before {
|
380 |
-
content: "\e115";
|
381 |
-
}
|
382 |
-
.glyphicon-shopping-cart:before {
|
383 |
-
content: "\e116";
|
384 |
-
}
|
385 |
-
.glyphicon-folder-close:before {
|
386 |
-
content: "\e117";
|
387 |
-
}
|
388 |
-
.glyphicon-folder-open:before {
|
389 |
-
content: "\e118";
|
390 |
-
}
|
391 |
-
.glyphicon-resize-vertical:before {
|
392 |
-
content: "\e119";
|
393 |
-
}
|
394 |
-
.glyphicon-resize-horizontal:before {
|
395 |
-
content: "\e120";
|
396 |
-
}
|
397 |
-
.glyphicon-hdd:before {
|
398 |
-
content: "\e121";
|
399 |
-
}
|
400 |
-
.glyphicon-bullhorn:before {
|
401 |
-
content: "\e122";
|
402 |
-
}
|
403 |
-
.glyphicon-bell:before {
|
404 |
-
content: "\e123";
|
405 |
-
}
|
406 |
-
.glyphicon-certificate:before {
|
407 |
-
content: "\e124";
|
408 |
-
}
|
409 |
-
.glyphicon-thumbs-up:before {
|
410 |
-
content: "\e125";
|
411 |
-
}
|
412 |
-
.glyphicon-thumbs-down:before {
|
413 |
-
content: "\e126";
|
414 |
-
}
|
415 |
-
.glyphicon-hand-right:before {
|
416 |
-
content: "\e127";
|
417 |
-
}
|
418 |
-
.glyphicon-hand-left:before {
|
419 |
-
content: "\e128";
|
420 |
-
}
|
421 |
-
.glyphicon-hand-up:before {
|
422 |
-
content: "\e129";
|
423 |
-
}
|
424 |
-
.glyphicon-hand-down:before {
|
425 |
-
content: "\e130";
|
426 |
-
}
|
427 |
-
.glyphicon-circle-arrow-right:before {
|
428 |
-
content: "\e131";
|
429 |
-
}
|
430 |
-
.glyphicon-circle-arrow-left:before {
|
431 |
-
content: "\e132";
|
432 |
-
}
|
433 |
-
.glyphicon-circle-arrow-up:before {
|
434 |
-
content: "\e133";
|
435 |
-
}
|
436 |
-
.glyphicon-circle-arrow-down:before {
|
437 |
-
content: "\e134";
|
438 |
-
}
|
439 |
-
.glyphicon-globe:before {
|
440 |
-
content: "\e135";
|
441 |
-
}
|
442 |
-
.glyphicon-wrench:before {
|
443 |
-
content: "\e136";
|
444 |
-
}
|
445 |
-
.glyphicon-tasks:before {
|
446 |
-
content: "\e137";
|
447 |
-
}
|
448 |
-
.glyphicon-filter:before {
|
449 |
-
content: "\e138";
|
450 |
-
}
|
451 |
-
.glyphicon-briefcase:before {
|
452 |
-
content: "\e139";
|
453 |
-
}
|
454 |
-
.glyphicon-fullscreen:before {
|
455 |
-
content: "\e140";
|
456 |
-
}
|
457 |
-
.glyphicon-dashboard:before {
|
458 |
-
content: "\e141";
|
459 |
-
}
|
460 |
-
.glyphicon-paperclip:before {
|
461 |
-
content: "\e142";
|
462 |
-
}
|
463 |
-
.glyphicon-heart-empty:before {
|
464 |
-
content: "\e143";
|
465 |
-
}
|
466 |
-
.glyphicon-link:before {
|
467 |
-
content: "\e144";
|
468 |
-
}
|
469 |
-
.glyphicon-phone:before {
|
470 |
-
content: "\e145";
|
471 |
-
}
|
472 |
-
.glyphicon-pushpin:before {
|
473 |
-
content: "\e146";
|
474 |
-
}
|
475 |
-
.glyphicon-usd:before {
|
476 |
-
content: "\e148";
|
477 |
-
}
|
478 |
-
.glyphicon-gbp:before {
|
479 |
-
content: "\e149";
|
480 |
-
}
|
481 |
-
.glyphicon-sort:before {
|
482 |
-
content: "\e150";
|
483 |
-
}
|
484 |
-
.glyphicon-sort-by-alphabet:before {
|
485 |
-
content: "\e151";
|
486 |
-
}
|
487 |
-
.glyphicon-sort-by-alphabet-alt:before {
|
488 |
-
content: "\e152";
|
489 |
-
}
|
490 |
-
.glyphicon-sort-by-order:before {
|
491 |
-
content: "\e153";
|
492 |
-
}
|
493 |
-
.glyphicon-sort-by-order-alt:before {
|
494 |
-
content: "\e154";
|
495 |
-
}
|
496 |
-
.glyphicon-sort-by-attributes:before {
|
497 |
-
content: "\e155";
|
498 |
-
}
|
499 |
-
.glyphicon-sort-by-attributes-alt:before {
|
500 |
-
content: "\e156";
|
501 |
-
}
|
502 |
-
.glyphicon-unchecked:before {
|
503 |
-
content: "\e157";
|
504 |
-
}
|
505 |
-
.glyphicon-expand:before {
|
506 |
-
content: "\e158";
|
507 |
-
}
|
508 |
-
.glyphicon-collapse-down:before {
|
509 |
-
content: "\e159";
|
510 |
-
}
|
511 |
-
.glyphicon-collapse-up:before {
|
512 |
-
content: "\e160";
|
513 |
-
}
|
514 |
-
.glyphicon-log-in:before {
|
515 |
-
content: "\e161";
|
516 |
-
}
|
517 |
-
.glyphicon-flash:before {
|
518 |
-
content: "\e162";
|
519 |
-
}
|
520 |
-
.glyphicon-log-out:before {
|
521 |
-
content: "\e163";
|
522 |
-
}
|
523 |
-
.glyphicon-new-window:before {
|
524 |
-
content: "\e164";
|
525 |
-
}
|
526 |
-
.glyphicon-record:before {
|
527 |
-
content: "\e165";
|
528 |
-
}
|
529 |
-
.glyphicon-save:before {
|
530 |
-
content: "\e166";
|
531 |
-
}
|
532 |
-
.glyphicon-open:before {
|
533 |
-
content: "\e167";
|
534 |
-
}
|
535 |
-
.glyphicon-saved:before {
|
536 |
-
content: "\e168";
|
537 |
-
}
|
538 |
-
.glyphicon-import:before {
|
539 |
-
content: "\e169";
|
540 |
-
}
|
541 |
-
.glyphicon-export:before {
|
542 |
-
content: "\e170";
|
543 |
-
}
|
544 |
-
.glyphicon-send:before {
|
545 |
-
content: "\e171";
|
546 |
-
}
|
547 |
-
.glyphicon-floppy-disk:before {
|
548 |
-
content: "\e172";
|
549 |
-
}
|
550 |
-
.glyphicon-floppy-saved:before {
|
551 |
-
content: "\e173";
|
552 |
-
}
|
553 |
-
.glyphicon-floppy-remove:before {
|
554 |
-
content: "\e174";
|
555 |
-
}
|
556 |
-
.glyphicon-floppy-save:before {
|
557 |
-
content: "\e175";
|
558 |
-
}
|
559 |
-
.glyphicon-floppy-open:before {
|
560 |
-
content: "\e176";
|
561 |
-
}
|
562 |
-
.glyphicon-credit-card:before {
|
563 |
-
content: "\e177";
|
564 |
-
}
|
565 |
-
.glyphicon-transfer:before {
|
566 |
-
content: "\e178";
|
567 |
-
}
|
568 |
-
.glyphicon-cutlery:before {
|
569 |
-
content: "\e179";
|
570 |
-
}
|
571 |
-
.glyphicon-header:before {
|
572 |
-
content: "\e180";
|
573 |
-
}
|
574 |
-
.glyphicon-compressed:before {
|
575 |
-
content: "\e181";
|
576 |
-
}
|
577 |
-
.glyphicon-earphone:before {
|
578 |
-
content: "\e182";
|
579 |
-
}
|
580 |
-
.glyphicon-phone-alt:before {
|
581 |
-
content: "\e183";
|
582 |
-
}
|
583 |
-
.glyphicon-tower:before {
|
584 |
-
content: "\e184";
|
585 |
-
}
|
586 |
-
.glyphicon-stats:before {
|
587 |
-
content: "\e185";
|
588 |
-
}
|
589 |
-
.glyphicon-sd-video:before {
|
590 |
-
content: "\e186";
|
591 |
-
}
|
592 |
-
.glyphicon-hd-video:before {
|
593 |
-
content: "\e187";
|
594 |
-
}
|
595 |
-
.glyphicon-subtitles:before {
|
596 |
-
content: "\e188";
|
597 |
-
}
|
598 |
-
.glyphicon-sound-stereo:before {
|
599 |
-
content: "\e189";
|
600 |
-
}
|
601 |
-
.glyphicon-sound-dolby:before {
|
602 |
-
content: "\e190";
|
603 |
-
}
|
604 |
-
.glyphicon-sound-5-1:before {
|
605 |
-
content: "\e191";
|
606 |
-
}
|
607 |
-
.glyphicon-sound-6-1:before {
|
608 |
-
content: "\e192";
|
609 |
-
}
|
610 |
-
.glyphicon-sound-7-1:before {
|
611 |
-
content: "\e193";
|
612 |
-
}
|
613 |
-
.glyphicon-copyright-mark:before {
|
614 |
-
content: "\e194";
|
615 |
-
}
|
616 |
-
.glyphicon-registration-mark:before {
|
617 |
-
content: "\e195";
|
618 |
-
}
|
619 |
-
.glyphicon-cloud-download:before {
|
620 |
-
content: "\e197";
|
621 |
-
}
|
622 |
-
.glyphicon-cloud-upload:before {
|
623 |
-
content: "\e198";
|
624 |
-
}
|
625 |
-
.glyphicon-tree-conifer:before {
|
626 |
-
content: "\e199";
|
627 |
-
}
|
628 |
-
.glyphicon-tree-deciduous:before {
|
629 |
-
content: "\e200";
|
630 |
-
}
|
631 |
-
.glyphicon-cd:before {
|
632 |
-
content: "\e201";
|
633 |
-
}
|
634 |
-
.glyphicon-save-file:before {
|
635 |
-
content: "\e202";
|
636 |
-
}
|
637 |
-
.glyphicon-open-file:before {
|
638 |
-
content: "\e203";
|
639 |
-
}
|
640 |
-
.glyphicon-level-up:before {
|
641 |
-
content: "\e204";
|
642 |
-
}
|
643 |
-
.glyphicon-copy:before {
|
644 |
-
content: "\e205";
|
645 |
-
}
|
646 |
-
.glyphicon-paste:before {
|
647 |
-
content: "\e206";
|
648 |
-
}
|
649 |
-
.glyphicon-alert:before {
|
650 |
-
content: "\e209";
|
651 |
-
}
|
652 |
-
.glyphicon-equalizer:before {
|
653 |
-
content: "\e210";
|
654 |
-
}
|
655 |
-
.glyphicon-king:before {
|
656 |
-
content: "\e211";
|
657 |
-
}
|
658 |
-
.glyphicon-queen:before {
|
659 |
-
content: "\e212";
|
660 |
-
}
|
661 |
-
.glyphicon-pawn:before {
|
662 |
-
content: "\e213";
|
663 |
-
}
|
664 |
-
.glyphicon-bishop:before {
|
665 |
-
content: "\e214";
|
666 |
-
}
|
667 |
-
.glyphicon-knight:before {
|
668 |
-
content: "\e215";
|
669 |
-
}
|
670 |
-
.glyphicon-baby-formula:before {
|
671 |
-
content: "\e216";
|
672 |
-
}
|
673 |
-
.glyphicon-tent:before {
|
674 |
-
content: "\26fa";
|
675 |
-
}
|
676 |
-
.glyphicon-blackboard:before {
|
677 |
-
content: "\e218";
|
678 |
-
}
|
679 |
-
.glyphicon-bed:before {
|
680 |
-
content: "\e219";
|
681 |
-
}
|
682 |
-
.glyphicon-apple:before {
|
683 |
-
content: "\f8ff";
|
684 |
-
}
|
685 |
-
.glyphicon-erase:before {
|
686 |
-
content: "\e221";
|
687 |
-
}
|
688 |
-
.glyphicon-hourglass:before {
|
689 |
-
content: "\231b";
|
690 |
-
}
|
691 |
-
.glyphicon-lamp:before {
|
692 |
-
content: "\e223";
|
693 |
-
}
|
694 |
-
.glyphicon-duplicate:before {
|
695 |
-
content: "\e224";
|
696 |
-
}
|
697 |
-
.glyphicon-piggy-bank:before {
|
698 |
-
content: "\e225";
|
699 |
-
}
|
700 |
-
.glyphicon-scissors:before {
|
701 |
-
content: "\e226";
|
702 |
-
}
|
703 |
-
.glyphicon-bitcoin:before {
|
704 |
-
content: "\e227";
|
705 |
-
}
|
706 |
-
.glyphicon-btc:before {
|
707 |
-
content: "\e227";
|
708 |
-
}
|
709 |
-
.glyphicon-xbt:before {
|
710 |
-
content: "\e227";
|
711 |
-
}
|
712 |
-
.glyphicon-yen:before {
|
713 |
-
content: "\00a5";
|
714 |
-
}
|
715 |
-
.glyphicon-jpy:before {
|
716 |
-
content: "\00a5";
|
717 |
-
}
|
718 |
-
.glyphicon-ruble:before {
|
719 |
-
content: "\20bd";
|
720 |
-
}
|
721 |
-
.glyphicon-rub:before {
|
722 |
-
content: "\20bd";
|
723 |
-
}
|
724 |
-
.glyphicon-scale:before {
|
725 |
-
content: "\e230";
|
726 |
-
}
|
727 |
-
.glyphicon-ice-lolly:before {
|
728 |
-
content: "\e231";
|
729 |
-
}
|
730 |
-
.glyphicon-ice-lolly-tasted:before {
|
731 |
-
content: "\e232";
|
732 |
-
}
|
733 |
-
.glyphicon-education:before {
|
734 |
-
content: "\e233";
|
735 |
-
}
|
736 |
-
.glyphicon-option-horizontal:before {
|
737 |
-
content: "\e234";
|
738 |
-
}
|
739 |
-
.glyphicon-option-vertical:before {
|
740 |
-
content: "\e235";
|
741 |
-
}
|
742 |
-
.glyphicon-menu-hamburger:before {
|
743 |
-
content: "\e236";
|
744 |
-
}
|
745 |
-
.glyphicon-modal-window:before {
|
746 |
-
content: "\e237";
|
747 |
-
}
|
748 |
-
.glyphicon-oil:before {
|
749 |
-
content: "\e238";
|
750 |
-
}
|
751 |
-
.glyphicon-grain:before {
|
752 |
-
content: "\e239";
|
753 |
-
}
|
754 |
-
.glyphicon-sunglasses:before {
|
755 |
-
content: "\e240";
|
756 |
-
}
|
757 |
-
.glyphicon-text-size:before {
|
758 |
-
content: "\e241";
|
759 |
-
}
|
760 |
-
.glyphicon-text-color:before {
|
761 |
-
content: "\e242";
|
762 |
-
}
|
763 |
-
.glyphicon-text-background:before {
|
764 |
-
content: "\e243";
|
765 |
-
}
|
766 |
-
.glyphicon-object-align-top:before {
|
767 |
-
content: "\e244";
|
768 |
-
}
|
769 |
-
.glyphicon-object-align-bottom:before {
|
770 |
-
content: "\e245";
|
771 |
-
}
|
772 |
-
.glyphicon-object-align-horizontal:before {
|
773 |
-
content: "\e246";
|
774 |
-
}
|
775 |
-
.glyphicon-object-align-left:before {
|
776 |
-
content: "\e247";
|
777 |
-
}
|
778 |
-
.glyphicon-object-align-vertical:before {
|
779 |
-
content: "\e248";
|
780 |
-
}
|
781 |
-
.glyphicon-object-align-right:before {
|
782 |
-
content: "\e249";
|
783 |
-
}
|
784 |
-
.glyphicon-triangle-right:before {
|
785 |
-
content: "\e250";
|
786 |
-
}
|
787 |
-
.glyphicon-triangle-left:before {
|
788 |
-
content: "\e251";
|
789 |
-
}
|
790 |
-
.glyphicon-triangle-bottom:before {
|
791 |
-
content: "\e252";
|
792 |
-
}
|
793 |
-
.glyphicon-triangle-top:before {
|
794 |
-
content: "\e253";
|
795 |
-
}
|
796 |
-
.glyphicon-console:before {
|
797 |
-
content: "\e254";
|
798 |
-
}
|
799 |
-
.glyphicon-superscript:before {
|
800 |
-
content: "\e255";
|
801 |
-
}
|
802 |
-
.glyphicon-subscript:before {
|
803 |
-
content: "\e256";
|
804 |
-
}
|
805 |
-
.glyphicon-menu-left:before {
|
806 |
-
content: "\e257";
|
807 |
-
}
|
808 |
-
.glyphicon-menu-right:before {
|
809 |
-
content: "\e258";
|
810 |
-
}
|
811 |
-
.glyphicon-menu-down:before {
|
812 |
-
content: "\e259";
|
813 |
-
}
|
814 |
-
.glyphicon-menu-up:before {
|
815 |
-
content: "\e260";
|
816 |
-
}
|
817 |
-
|
818 |
.egg-container {
|
819 |
/* font-family: sans-serif; */
|
820 |
-webkit-text-size-adjust: 100%;
|
@@ -4965,6 +4160,152 @@ button.egg-container .close {
|
|
4965 |
background: transparent;
|
4966 |
border: 0;
|
4967 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4968 |
.egg-container .clearfix:before,
|
4969 |
.egg-container .clearfix:after,
|
4970 |
.egg-container .dl-horizontal dd:before,
|
1 |
/*!
|
2 |
* Modified version of Bootstrap CSS
|
3 |
* @author keywordrush.com <support@keywordrush.com>
|
4 |
+
* @link https://www.keywordrush.com
|
5 |
+
* @copyright Copyright © 2021 keywordrush.com
|
6 |
*
|
7 |
* Original work Copyright
|
8 |
* Bootstrap v3.3.4 (http://getbootstrap.com)
|
10 |
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
11 |
*/
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
.egg-container {
|
14 |
/* font-family: sans-serif; */
|
15 |
-webkit-text-size-adjust: 100%;
|
4160 |
background: transparent;
|
4161 |
border: 0;
|
4162 |
}
|
4163 |
+
.egg-container .cegg-bi {display: inline-block;vertical-align: -.125em;}
|
4164 |
+
.egg-container .cegg-bi {width: 1em;height: 1em;}
|
4165 |
+
|
4166 |
+
.egg-container .popover {
|
4167 |
+
position: absolute;
|
4168 |
+
top: 0;
|
4169 |
+
left: 0;
|
4170 |
+
z-index: 1010;
|
4171 |
+
display: none;
|
4172 |
+
width: 276px;
|
4173 |
+
padding: 1px;
|
4174 |
+
text-align: left;
|
4175 |
+
white-space: normal;
|
4176 |
+
background-color: #ffffff;
|
4177 |
+
border: 1px solid #ccc;
|
4178 |
+
border: 1px solid rgba(0, 0, 0, 0.2);
|
4179 |
+
-webkit-border-radius: 6px;
|
4180 |
+
-moz-border-radius: 6px;
|
4181 |
+
border-radius: 6px;
|
4182 |
+
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
|
4183 |
+
-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
|
4184 |
+
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
|
4185 |
+
-webkit-background-clip: padding-box;
|
4186 |
+
-moz-background-clip: padding;
|
4187 |
+
background-clip: padding-box;
|
4188 |
+
}
|
4189 |
+
|
4190 |
+
.egg-container .popover.top {
|
4191 |
+
margin-top: -10px;
|
4192 |
+
}
|
4193 |
+
|
4194 |
+
.egg-container .popover.right {
|
4195 |
+
margin-left: 10px;
|
4196 |
+
}
|
4197 |
+
|
4198 |
+
.egg-container .popover.bottom {
|
4199 |
+
margin-top: 10px;
|
4200 |
+
}
|
4201 |
+
|
4202 |
+
.egg-container .popover.left {
|
4203 |
+
margin-left: -10px;
|
4204 |
+
}
|
4205 |
+
|
4206 |
+
.egg-container .popover-title {
|
4207 |
+
padding: 8px 14px;
|
4208 |
+
margin: 0;
|
4209 |
+
font-size: 14px;
|
4210 |
+
font-weight: normal;
|
4211 |
+
line-height: 18px;
|
4212 |
+
background-color: #f7f7f7;
|
4213 |
+
border-bottom: 1px solid #ebebeb;
|
4214 |
+
-webkit-border-radius: 5px 5px 0 0;
|
4215 |
+
-moz-border-radius: 5px 5px 0 0;
|
4216 |
+
border-radius: 5px 5px 0 0;
|
4217 |
+
}
|
4218 |
+
|
4219 |
+
.egg-container .popover-title:empty {
|
4220 |
+
display: none;
|
4221 |
+
}
|
4222 |
+
|
4223 |
+
.egg-container .popover-content {
|
4224 |
+
padding: 9px 14px;
|
4225 |
+
}
|
4226 |
+
|
4227 |
+
.egg-container .popover .arrow,
|
4228 |
+
.egg-container .popover .arrow:after {
|
4229 |
+
position: absolute;
|
4230 |
+
display: block;
|
4231 |
+
width: 0;
|
4232 |
+
height: 0;
|
4233 |
+
border-color: transparent;
|
4234 |
+
border-style: solid;
|
4235 |
+
}
|
4236 |
+
|
4237 |
+
.egg-container .popover .arrow {
|
4238 |
+
border-width: 11px;
|
4239 |
+
}
|
4240 |
+
|
4241 |
+
.egg-container .popover .arrow:after {
|
4242 |
+
border-width: 10px;
|
4243 |
+
content: "";
|
4244 |
+
}
|
4245 |
+
|
4246 |
+
.egg-container .popover.top .arrow {
|
4247 |
+
bottom: -11px;
|
4248 |
+
left: 50%;
|
4249 |
+
margin-left: -11px;
|
4250 |
+
border-top-color: #999;
|
4251 |
+
border-top-color: rgba(0, 0, 0, 0.25);
|
4252 |
+
border-bottom-width: 0;
|
4253 |
+
}
|
4254 |
+
|
4255 |
+
.egg-container .popover.top .arrow:after {
|
4256 |
+
bottom: 1px;
|
4257 |
+
margin-left: -10px;
|
4258 |
+
border-top-color: #ffffff;
|
4259 |
+
border-bottom-width: 0;
|
4260 |
+
}
|
4261 |
+
|
4262 |
+
.egg-container .popover.right .arrow {
|
4263 |
+
top: 50%;
|
4264 |
+
left: -11px;
|
4265 |
+
margin-top: -11px;
|
4266 |
+
border-right-color: #999;
|
4267 |
+
border-right-color: rgba(0, 0, 0, 0.25);
|
4268 |
+
border-left-width: 0;
|
4269 |
+
}
|
4270 |
+
|
4271 |
+
.egg-container .popover.right .arrow:after {
|
4272 |
+
bottom: -10px;
|
4273 |
+
left: 1px;
|
4274 |
+
border-right-color: #ffffff;
|
4275 |
+
border-left-width: 0;
|
4276 |
+
}
|
4277 |
+
|
4278 |
+
.egg-container .popover.bottom .arrow {
|
4279 |
+
top: -11px;
|
4280 |
+
left: 50%;
|
4281 |
+
margin-left: -11px;
|
4282 |
+
border-bottom-color: #999;
|
4283 |
+
border-bottom-color: rgba(0, 0, 0, 0.25);
|
4284 |
+
border-top-width: 0;
|
4285 |
+
}
|
4286 |
+
|
4287 |
+
.egg-container .popover.bottom .arrow:after {
|
4288 |
+
top: 1px;
|
4289 |
+
margin-left: -10px;
|
4290 |
+
border-bottom-color: #ffffff;
|
4291 |
+
border-top-width: 0;
|
4292 |
+
}
|
4293 |
+
|
4294 |
+
.egg-container .popover.left .arrow {
|
4295 |
+
top: 50%;
|
4296 |
+
right: -11px;
|
4297 |
+
margin-top: -11px;
|
4298 |
+
border-left-color: #999;
|
4299 |
+
border-left-color: rgba(0, 0, 0, 0.25);
|
4300 |
+
border-right-width: 0;
|
4301 |
+
}
|
4302 |
+
|
4303 |
+
.egg-container .popover.left .arrow:after {
|
4304 |
+
right: 1px;
|
4305 |
+
bottom: -10px;
|
4306 |
+
border-left-color: #ffffff;
|
4307 |
+
border-right-width: 0;
|
4308 |
+
}
|
4309 |
.egg-container .clearfix:before,
|
4310 |
.egg-container .clearfix:after,
|
4311 |
.egg-container .dl-horizontal dd:before,
|
res/bootstrap/css/egg-bootstrap.min.css
CHANGED
@@ -1,13 +1,11 @@
|
|
1 |
/*!
|
2 |
* Modified version of Bootstrap CSS
|
3 |
* @author keywordrush.com <support@keywordrush.com>
|
4 |
-
* @link
|
5 |
-
* @copyright Copyright ©
|
6 |
*
|
7 |
* Original work Copyright
|
8 |
* Bootstrap v3.3.4 (http://getbootstrap.com)
|
9 |
* Copyright 2011-2015 Twitter, Inc.
|
10 |
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
11 |
-
*/
|
12 |
-
|
13 |
-
@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"),url(../fonts/glyphicons-halflings-regular.woff2) format("woff2"),url(../fonts/glyphicons-halflings-regular.woff) format("woff"),url(../fonts/glyphicons-halflings-regular.ttf) format("truetype"),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}.egg-container{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;margin:0}.egg-container input[type="button"],.egg-container input[disabled]{cursor:default}.egg-container .thumbnail > img,.egg-container .thumbnail a > img,.egg-container .img-responsive{display:block;max-width:100%;height:auto}.egg-container html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}.egg-container body{margin:0}.egg-container article,.egg-container aside,.egg-container details,.egg-container figcaption,.egg-container figure,.egg-container footer,.egg-container header,.egg-container hgroup,.egg-container main,.egg-container menu,.egg-container nav,.egg-container section,.egg-container summary{display:block}.egg-container audio,.egg-container canvas,.egg-container progress,.egg-container video{display:inline-block;vertical-align:baseline}.egg-container audio:not([controls]){display:none;height:0}.egg-container [hidden],.egg-container template{display:none}.egg-container a{background-color:transparent}.egg-container a:active,.egg-container a:hover{outline:0}.egg-container abbr[title]{border-bottom:1px dotted}.egg-container b,.egg-container strong{font-weight:700}.egg-container dfn{font-style:italic}.egg-container h1{margin:.67em 0;font-size:2em}.egg-container mark{color:#000;background:#ff0}.egg-container small{font-size:80%}.egg-container sub,.egg-container sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.egg-container sup{top:-.5em}.egg-container sub{bottom:-.25em}.egg-container img{border:0}.egg-container svg:not(:root){overflow:hidden}.egg-container figure{margin:1em 40px}.egg-container hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.egg-container pre{overflow:auto}.egg-container code,.egg-container kbd,.egg-container pre,.egg-container samp{font-size:1em}.egg-container button,.egg-container input,.egg-container optgroup,.egg-container select,.egg-container textarea{margin:0;font:inherit;color:inherit}.egg-container button{overflow:visible}.egg-container button,.egg-container select{text-transform:none}.egg-container button,.egg-container html input[type="button"],.egg-container input[type="reset"],.egg-container input[type="submit"]{-webkit-appearance:button;cursor:pointer}.egg-container button[disabled],.egg-container html input[disabled]{cursor:default}.egg-container button::-moz-focus-inner,.egg-container input::-moz-focus-inner{padding:0;border:0}.egg-container input{line-height:normal}.egg-container input[type="checkbox"],.egg-container input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}.egg-container input[type="number"]::-webkit-inner-spin-button,.egg-container input[type="number"]::-webkit-outer-spin-button{height:auto}.egg-container input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}.egg-container input[type="search"]::-webkit-search-cancel-button,.egg-container input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}.egg-container fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}.egg-container legend{padding:0;border:0}.egg-container textarea{overflow:auto}.egg-container optgroup{font-weight:700}.egg-container table{border-spacing:0;border-collapse:collapse}.egg-container td,.egg-container th{padding:0}@media print{.egg-container *,.egg-container :before,.egg-container :after{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}.egg-container a,.egg-container a:visited{text-decoration:underline}.egg-container a[href]:after{content:" (" attr(href) ")"}.egg-container abbr[title]:after{content:" (" attr(title) ")"}.egg-container a[href^="#"]:after,.egg-container a[href^="javascript:"]:after{content:""}.egg-container pre,.egg-container blockquote{border:1px solid #999;page-break-inside:avoid}.egg-container thead{display:table-header-group}.egg-container tr,.egg-container img{page-break-inside:avoid}.egg-container img{max-width:100%!important}.egg-container p,.egg-container h2,.egg-container h3{orphans:3;widows:3}.egg-container h2,.egg-container h3{page-break-after:avoid}.egg-container select{background:#fff!important}.egg-container .navbar{display:none}.egg-container .btn > .caret,.egg-container .dropup > .btn > .caret{border-top-color:#000!important}.egg-container .label{border:1px solid #000}.egg-container .table{border-collapse:collapse!important}.egg-container .table td,.egg-container .table th{background-color:#fff!important}.egg-container .table-bordered th,.egg-container .table-bordered td{border:1px solid #ddd!important}}.egg-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.egg-container :before,.egg-container :after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.egg-container input,.egg-container button,.egg-container select,.egg-container textarea{font-family:inherit;font-size:inherit;line-height:inherit}.egg-container a{text-decoration:none}.egg-container a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.egg-container figure{margin:0}.egg-container img{vertical-align:middle}.egg-container .img-responsive{display:block;max-width:100%;height:auto}.egg-container .img-rounded{border-radius:6px}.egg-container .img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.egg-container .img-circle{border-radius:50%}.egg-container hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.egg-container .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.egg-container .sr-only-focusable:active,.egg-container .sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.egg-container [role="button"]{cursor:pointer}.egg-container h1,.egg-container h2,.egg-container h3,.egg-container h4,.egg-container h5,.egg-container h6,.egg-container .h1,.egg-container .h2,.egg-container .h3,.egg-container .h4,.egg-container .h5,.egg-container .h6{color:inherit}.egg-container h1 small,.egg-container h2 small,.egg-container h3 small,.egg-container h4 small,.egg-container h5 small,.egg-container h6 small,.egg-container .h1 small,.egg-container .h2 small,.egg-container .h3 small,.egg-container .h4 small,.egg-container .h5 small,.egg-container .h6 small,.egg-container h1 .small,.egg-container h2 .small,.egg-container h3 .small,.egg-container h4 .small,.egg-container h5 .small,.egg-container h6 .small,.egg-container .h1 .small,.egg-container .h2 .small,.egg-container .h3 .small,.egg-container .h4 .small,.egg-container .h5 .small,.egg-container .h6 .small{font-weight:400;line-height:1;color:#777}.egg-container h1 small,.egg-container .h1 small,.egg-container h2 small,.egg-container .h2 small,.egg-container h3 small,.egg-container .h3 small,.egg-container h1 .small,.egg-container .h1 .small,.egg-container h2 .small,.egg-container .h2 .small,.egg-container h3 .small,.egg-container .h3 .small{font-size:65%}.egg-container h4,.egg-container .h4,.egg-container h5,.egg-container .h5,.egg-container h6,.egg-container .h6{margin-top:10px;margin-bottom:10px}.egg-container h4 small,.egg-container .h4 small,.egg-container h5 small,.egg-container .h5 small,.egg-container h6 small,.egg-container .h6 small,.egg-container h4 .small,.egg-container .h4 .small,.egg-container h5 .small,.egg-container .h5 .small,.egg-container h6 .small,.egg-container .h6 .small{font-size:75%}.egg-container h1,.egg-container .h1{font-size:36px}.egg-container h2,.egg-container .h2{font-size:27px}.egg-container h3,.egg-container .h3{font-size:23px}.egg-container h4,.egg-container .h4{font-size:18px}.egg-container h5,.egg-container .h5{font-size:14px}.egg-container h6,.egg-container .h6{font-size:12px}.egg-container p{margin:0 0 18px}.egg-container .lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width: 768px){.egg-container .lead{font-size:21px}}.egg-container small,.egg-container .small{font-size:85%}.egg-container mark,.egg-container .mark{padding:.2em;background-color:#fcf8e3}.egg-container .text-left{text-align:left}.egg-container .text-right{text-align:right}.egg-container .text-center{text-align:center}.egg-container .text-justify{text-align:justify}.egg-container .text-nowrap{white-space:nowrap}.egg-container .text-lowercase{text-transform:lowercase}.egg-container .text-uppercase{text-transform:uppercase}.egg-container .text-capitalize{text-transform:capitalize}.egg-container .text-muted{color:#777}.egg-container .text-primary{color:#337ab7}a.egg-container .text-primary:hover{color:#286090}.egg-container .text-success{color:#3c763d}a.egg-container .text-success:hover{color:#2b542c}.egg-container .text-info{color:#31708f}a.egg-container .text-info:hover{color:#245269}.egg-container .text-warning{color:#8a6d3b}a.egg-container .text-warning:hover{color:#66512c}.egg-container .text-danger{color:#a94442}a.egg-container .text-danger:hover{color:#843534}.egg-container .bg-primary{color:#fff;background-color:#337ab7}a.egg-container .bg-primary:hover{background-color:#286090}.egg-container .bg-success{background-color:#dff0d8}a.egg-container .bg-success:hover{background-color:#c1e2b3}.egg-container .bg-info{background-color:#d9edf7}a.egg-container .bg-info:hover{background-color:#afd9ee}.egg-container .bg-warning{background-color:#fcf8e3}a.egg-container .bg-warning:hover{background-color:#f7ecb5}.egg-container .bg-danger{background-color:#f2dede}a.egg-container .bg-danger:hover{background-color:#e4b9b9}.egg-container .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.egg-container ul,.egg-container ol{margin-top:0;margin-bottom:10px}.egg-container ul ul,.egg-container ol ul,.egg-container ul ol,.egg-container ol ol{margin-bottom:0}.egg-container .list-unstyled{padding-left:0;list-style:none}.egg-container .list-inline{padding-left:0;margin-left:-5px;list-style:none}.egg-container .list-inline > li{display:inline-block;padding-right:5px;padding-left:5px}.egg-container dl{margin-top:0;margin-bottom:20px}.egg-container dt,.egg-container dd{line-height:1.42857143}.egg-container dt{font-weight:700}.egg-container dd{margin-left:0}@media (min-width: 768px){.egg-container .dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.egg-container .dl-horizontal dd{margin-left:180px}}.egg-container abbr[title],.egg-container abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.egg-container .initialism{font-size:90%;text-transform:uppercase}.egg-container address{margin-bottom:20px;font-style:normal;line-height:1.42857143}.egg-container code,.egg-container kbd,.egg-container pre,.egg-container samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.egg-container code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}.egg-container kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}.egg-container kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}.egg-container pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.egg-container pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.egg-container .pre-scrollable{max-height:340px;overflow-y:scroll}.egg-container .container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 768px){.egg-container .container{width:750px}}@media (min-width: 992px){.egg-container .container{width:970px}}@media (min-width: 1200px){.egg-container .container{width:1170px}}.egg-container .container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.egg-container .row{margin-right:-15px;margin-left:-15px;margin-bottom:30px}.egg-container .col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.egg-container .col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.egg-container .col-xs-12{width:100%}.egg-container .col-xs-11{width:91.66666667%}.egg-container .col-xs-10{width:83.33333333%}.egg-container .col-xs-9{width:75%}.egg-container .col-xs-8{width:66.66666667%}.egg-container .col-xs-7{width:58.33333333%}.egg-container .col-xs-6{width:50%}.egg-container .col-xs-5{width:41.66666667%}.egg-container .col-xs-4{width:33.33333333%}.egg-container .col-xs-3{width:25%}.egg-container .col-xs-2{width:16.66666667%}.egg-container .col-xs-1{width:8.33333333%}.egg-container .col-xs-pull-12{right:100%}.egg-container .col-xs-pull-11{right:91.66666667%}.egg-container .col-xs-pull-10{right:83.33333333%}.egg-container .col-xs-pull-9{right:75%}.egg-container .col-xs-pull-8{right:66.66666667%}.egg-container .col-xs-pull-7{right:58.33333333%}.egg-container .col-xs-pull-6{right:50%}.egg-container .col-xs-pull-5{right:41.66666667%}.egg-container .col-xs-pull-4{right:33.33333333%}.egg-container .col-xs-pull-3{right:25%}.egg-container .col-xs-pull-2{right:16.66666667%}.egg-container .col-xs-pull-1{right:8.33333333%}.egg-container .col-xs-pull-0{right:auto}.egg-container .col-xs-push-12{left:100%}.egg-container .col-xs-push-11{left:91.66666667%}.egg-container .col-xs-push-10{left:83.33333333%}.egg-container .col-xs-push-9{left:75%}.egg-container .col-xs-push-8{left:66.66666667%}.egg-container .col-xs-push-7{left:58.33333333%}.egg-container .col-xs-push-6{left:50%}.egg-container .col-xs-push-5{left:41.66666667%}.egg-container .col-xs-push-4{left:33.33333333%}.egg-container .col-xs-push-3{left:25%}.egg-container .col-xs-push-2{left:16.66666667%}.egg-container .col-xs-push-1{left:8.33333333%}.egg-container .col-xs-push-0{left:auto}.egg-container .col-xs-offset-12{margin-left:100%}.egg-container .col-xs-offset-11{margin-left:91.66666667%}.egg-container .col-xs-offset-10{margin-left:83.33333333%}.egg-container .col-xs-offset-9{margin-left:75%}.egg-container .col-xs-offset-8{margin-left:66.66666667%}.egg-container .col-xs-offset-7{margin-left:58.33333333%}.egg-container .col-xs-offset-6{margin-left:50%}.egg-container .col-xs-offset-5{margin-left:41.66666667%}.egg-container .col-xs-offset-4{margin-left:33.33333333%}.egg-container .col-xs-offset-3{margin-left:25%}.egg-container .col-xs-offset-2{margin-left:16.66666667%}.egg-container .col-xs-offset-1{margin-left:8.33333333%}.egg-container .col-xs-offset-0{margin-left:0}@media (min-width: 768px){.egg-container .col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.egg-container .col-sm-12{width:100%}.egg-container .col-sm-11{width:91.66666667%}.egg-container .col-sm-10{width:83.33333333%}.egg-container .col-sm-9{width:75%}.egg-container .col-sm-8{width:66.66666667%}.egg-container .col-sm-7{width:58.33333333%}.egg-container .col-sm-6{width:50%}.egg-container .col-sm-5{width:41.66666667%}.egg-container .col-sm-4{width:33.33333333%}.egg-container .col-sm-3{width:25%}.egg-container .col-sm-2{width:16.66666667%}.egg-container .col-sm-1{width:8.33333333%}.egg-container .col-sm-pull-12{right:100%}.egg-container .col-sm-pull-11{right:91.66666667%}.egg-container .col-sm-pull-10{right:83.33333333%}.egg-container .col-sm-pull-9{right:75%}.egg-container .col-sm-pull-8{right:66.66666667%}.egg-container .col-sm-pull-7{right:58.33333333%}.egg-container .col-sm-pull-6{right:50%}.egg-container .col-sm-pull-5{right:41.66666667%}.egg-container .col-sm-pull-4{right:33.33333333%}.egg-container .col-sm-pull-3{right:25%}.egg-container .col-sm-pull-2{right:16.66666667%}.egg-container .col-sm-pull-1{right:8.33333333%}.egg-container .col-sm-pull-0{right:auto}.egg-container .col-sm-push-12{left:100%}.egg-container .col-sm-push-11{left:91.66666667%}.egg-container .col-sm-push-10{left:83.33333333%}.egg-container .col-sm-push-9{left:75%}.egg-container .col-sm-push-8{left:66.66666667%}.egg-container .col-sm-push-7{left:58.33333333%}.egg-container .col-sm-push-6{left:50%}.egg-container .col-sm-push-5{left:41.66666667%}.egg-container .col-sm-push-4{left:33.33333333%}.egg-container .col-sm-push-3{left:25%}.egg-container .col-sm-push-2{left:16.66666667%}.egg-container .col-sm-push-1{left:8.33333333%}.egg-container .col-sm-push-0{left:auto}.egg-container .col-sm-offset-12{margin-left:100%}.egg-container .col-sm-offset-11{margin-left:91.66666667%}.egg-container .col-sm-offset-10{margin-left:83.33333333%}.egg-container .col-sm-offset-9{margin-left:75%}.egg-container .col-sm-offset-8{margin-left:66.66666667%}.egg-container .col-sm-offset-7{margin-left:58.33333333%}.egg-container .col-sm-offset-6{margin-left:50%}.egg-container .col-sm-offset-5{margin-left:41.66666667%}.egg-container .col-sm-offset-4{margin-left:33.33333333%}.egg-container .col-sm-offset-3{margin-left:25%}.egg-container .col-sm-offset-2{margin-left:16.66666667%}.egg-container .col-sm-offset-1{margin-left:8.33333333%}.egg-container .col-sm-offset-0{margin-left:0}}@media (min-width: 992px){.egg-container .col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.egg-container .col-md-12{width:100%}.egg-container .col-md-11{width:91.66666667%}.egg-container .col-md-10{width:83.33333333%}.egg-container .col-md-9{width:75%}.egg-container .col-md-8{width:66.66666667%}.egg-container .col-md-7{width:58.33333333%}.egg-container .col-md-6{width:50%}.egg-container .col-md-5{width:41.66666667%}.egg-container .col-md-4{width:33.33333333%}.egg-container .col-md-3{width:25%}.egg-container .col-md-2{width:16.66666667%}.egg-container .col-md-1{width:8.33333333%}.egg-container .col-md-pull-12{right:100%}.egg-container .col-md-pull-11{right:91.66666667%}.egg-container .col-md-pull-10{right:83.33333333%}.egg-container .col-md-pull-9{right:75%}.egg-container .col-md-pull-8{right:66.66666667%}.egg-container .col-md-pull-7{right:58.33333333%}.egg-container .col-md-pull-6{right:50%}.egg-container .col-md-pull-5{right:41.66666667%}.egg-container .col-md-pull-4{right:33.33333333%}.egg-container .col-md-pull-3{right:25%}.egg-container .col-md-pull-2{right:16.66666667%}.egg-container .col-md-pull-1{right:8.33333333%}.egg-container .col-md-pull-0{right:auto}.egg-container .col-md-push-12{left:100%}.egg-container .col-md-push-11{left:91.66666667%}.egg-container .col-md-push-10{left:83.33333333%}.egg-container .col-md-push-9{left:75%}.egg-container .col-md-push-8{left:66.66666667%}.egg-container .col-md-push-7{left:58.33333333%}.egg-container .col-md-push-6{left:50%}.egg-container .col-md-push-5{left:41.66666667%}.egg-container .col-md-push-4{left:33.33333333%}.egg-container .col-md-push-3{left:25%}.egg-container .col-md-push-2{left:16.66666667%}.egg-container .col-md-push-1{left:8.33333333%}.egg-container .col-md-push-0{left:auto}.egg-container .col-md-offset-12{margin-left:100%}.egg-container .col-md-offset-11{margin-left:91.66666667%}.egg-container .col-md-offset-10{margin-left:83.33333333%}.egg-container .col-md-offset-9{margin-left:75%}.egg-container .col-md-offset-8{margin-left:66.66666667%}.egg-container .col-md-offset-7{margin-left:58.33333333%}.egg-container .col-md-offset-6{margin-left:50%}.egg-container .col-md-offset-5{margin-left:41.66666667%}.egg-container .col-md-offset-4{margin-left:33.33333333%}.egg-container .col-md-offset-3{margin-left:25%}.egg-container .col-md-offset-2{margin-left:16.66666667%}.egg-container .col-md-offset-1{margin-left:8.33333333%}.egg-container .col-md-offset-0{margin-left:0}}@media (min-width: 1200px){.egg-container .col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.egg-container .col-lg-12{width:100%}.egg-container .col-lg-11{width:91.66666667%}.egg-container .col-lg-10{width:83.33333333%}.egg-container .col-lg-9{width:75%}.egg-container .col-lg-8{width:66.66666667%}.egg-container .col-lg-7{width:58.33333333%}.egg-container .col-lg-6{width:50%}.egg-container .col-lg-5{width:41.66666667%}.egg-container .col-lg-4{width:33.33333333%}.egg-container .col-lg-3{width:25%}.egg-container .col-lg-2{width:16.66666667%}.egg-container .col-lg-1{width:8.33333333%}.egg-container .col-lg-pull-12{right:100%}.egg-container .col-lg-pull-11{right:91.66666667%}.egg-container .col-lg-pull-10{right:83.33333333%}.egg-container .col-lg-pull-9{right:75%}.egg-container .col-lg-pull-8{right:66.66666667%}.egg-container .col-lg-pull-7{right:58.33333333%}.egg-container .col-lg-pull-6{right:50%}.egg-container .col-lg-pull-5{right:41.66666667%}.egg-container .col-lg-pull-4{right:33.33333333%}.egg-container .col-lg-pull-3{right:25%}.egg-container .col-lg-pull-2{right:16.66666667%}.egg-container .col-lg-pull-1{right:8.33333333%}.egg-container .col-lg-pull-0{right:auto}.egg-container .col-lg-push-12{left:100%}.egg-container .col-lg-push-11{left:91.66666667%}.egg-container .col-lg-push-10{left:83.33333333%}.egg-container .col-lg-push-9{left:75%}.egg-container .col-lg-push-8{left:66.66666667%}.egg-container .col-lg-push-7{left:58.33333333%}.egg-container .col-lg-push-6{left:50%}.egg-container .col-lg-push-5{left:41.66666667%}.egg-container .col-lg-push-4{left:33.33333333%}.egg-container .col-lg-push-3{left:25%}.egg-container .col-lg-push-2{left:16.66666667%}.egg-container .col-lg-push-1{left:8.33333333%}.egg-container .col-lg-push-0{left:auto}.egg-container .col-lg-offset-12{margin-left:100%}.egg-container .col-lg-offset-11{margin-left:91.66666667%}.egg-container .col-lg-offset-10{margin-left:83.33333333%}.egg-container .col-lg-offset-9{margin-left:75%}.egg-container .col-lg-offset-8{margin-left:66.66666667%}.egg-container .col-lg-offset-7{margin-left:58.33333333%}.egg-container .col-lg-offset-6{margin-left:50%}.egg-container .col-lg-offset-5{margin-left:41.66666667%}.egg-container .col-lg-offset-4{margin-left:33.33333333%}.egg-container .col-lg-offset-3{margin-left:25%}.egg-container .col-lg-offset-2{margin-left:16.66666667%}.egg-container .col-lg-offset-1{margin-left:8.33333333%}.egg-container .col-lg-offset-0{margin-left:0}}.egg-container table{background-color:transparent}.egg-container caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}.egg-container th{text-align:left}.egg-container .table{width:100%;max-width:100%;margin-bottom:20px}.egg-container .table > thead > tr > th,.egg-container .table > tbody > tr > th,.egg-container .table > tfoot > tr > th,.egg-container .table > thead > tr > td,.egg-container .table > tbody > tr > td,.egg-container .table > tfoot > tr > td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.egg-container .table > thead > tr > th{vertical-align:bottom;border-bottom:2px solid #ddd}.egg-container .table > caption + thead > tr:first-child > th,.egg-container .table > colgroup + thead > tr:first-child > th,.egg-container .table > thead:first-child > tr:first-child > th,.egg-container .table > caption + thead > tr:first-child > td,.egg-container .table > colgroup + thead > tr:first-child > td,.egg-container .table > thead:first-child > tr:first-child > td{border-top:0}.egg-container .table > tbody + tbody{border-top:2px solid #ddd}.egg-container .table .table{background-color:#fff}.egg-container .table-condensed > thead > tr > th,.egg-container .table-condensed > tbody > tr > th,.egg-container .table-condensed > tfoot > tr > th,.egg-container .table-condensed > thead > tr > td,.egg-container .table-condensed > tbody > tr > td,.egg-container .table-condensed > tfoot > tr > td{padding:5px}.egg-container .table-bordered{border:1px solid #ddd}.egg-container .table-bordered > thead > tr > th,.egg-container .table-bordered > tbody > tr > th,.egg-container .table-bordered > tfoot > tr > th,.egg-container .table-bordered > thead > tr > td,.egg-container .table-bordered > tbody > tr > td,.egg-container .table-bordered > tfoot > tr > td{border:1px solid #ddd}.egg-container .table-bordered > thead > tr > th,.egg-container .table-bordered > thead > tr > td{border-bottom-width:2px}.egg-container .table-striped > tbody > tr:nth-of-type(odd){background-color:#f9f9f9}.egg-container .table-hover > tbody > tr:hover{background-color:#f5f5f5}.egg-container table col[class*="col-"]{position:static;display:table-column;float:none}.egg-container table td[class*="col-"],.egg-container table th[class*="col-"]{position:static;display:table-cell;float:none}.egg-container .table > thead > tr > td.active,.egg-container .table > tbody > tr > td.active,.egg-container .table > tfoot > tr > td.active,.egg-container .table > thead > tr > th.active,.egg-container .table > tbody > tr > th.active,.egg-container .table > tfoot > tr > th.active,.egg-container .table > thead > tr.active > td,.egg-container .table > tbody > tr.active > td,.egg-container .table > tfoot > tr.active > td,.egg-container .table > thead > tr.active > th,.egg-container .table > tbody > tr.active > th,.egg-container .table > tfoot > tr.active > th{background-color:#f5f5f5}.egg-container .table-hover > tbody > tr > td.active:hover,.egg-container .table-hover > tbody > tr > th.active:hover,.egg-container .table-hover > tbody > tr.active:hover > td,.egg-container .table-hover > tbody > tr:hover > .active,.egg-container .table-hover > tbody > tr.active:hover > th{background-color:#e8e8e8}.egg-container .table > thead > tr > td.success,.egg-container .table > tbody > tr > td.success,.egg-container .table > tfoot > tr > td.success,.egg-container .table > thead > tr > th.success,.egg-container .table > tbody > tr > th.success,.egg-container .table > tfoot > tr > th.success,.egg-container .table > thead > tr.success > td,.egg-container .table > tbody > tr.success > td,.egg-container .table > tfoot > tr.success > td,.egg-container .table > thead > tr.success > th,.egg-container .table > tbody > tr.success > th,.egg-container .table > tfoot > tr.success > th{background-color:#dff0d8}.egg-container .table-hover > tbody > tr > td.success:hover,.egg-container .table-hover > tbody > tr > th.success:hover,.egg-container .table-hover > tbody > tr.success:hover > td,.egg-container .table-hover > tbody > tr:hover > .success,.egg-container .table-hover > tbody > tr.success:hover > th{background-color:#d0e9c6}.egg-container .table > thead > tr > td.info,.egg-container .table > tbody > tr > td.info,.egg-container .table > tfoot > tr > td.info,.egg-container .table > thead > tr > th.info,.egg-container .table > tbody > tr > th.info,.egg-container .table > tfoot > tr > th.info,.egg-container .table > thead > tr.info > td,.egg-container .table > tbody > tr.info > td,.egg-container .table > tfoot > tr.info > td,.egg-container .table > thead > tr.info > th,.egg-container .table > tbody > tr.info > th,.egg-container .table > tfoot > tr.info > th{background-color:#d9edf7}.egg-container .table-hover > tbody > tr > td.info:hover,.egg-container .table-hover > tbody > tr > th.info:hover,.egg-container .table-hover > tbody > tr.info:hover > td,.egg-container .table-hover > tbody > tr:hover > .info,.egg-container .table-hover > tbody > tr.info:hover > th{background-color:#c4e3f3}.egg-container .table > thead > tr > td.warning,.egg-container .table > tbody > tr > td.warning,.egg-container .table > tfoot > tr > td.warning,.egg-container .table > thead > tr > th.warning,.egg-container .table > tbody > tr > th.warning,.egg-container .table > tfoot > tr > th.warning,.egg-container .table > thead > tr.warning > td,.egg-container .table > tbody > tr.warning > td,.egg-container .table > tfoot > tr.warning > td,.egg-container .table > thead > tr.warning > th,.egg-container .table > tbody > tr.warning > th,.egg-container .table > tfoot > tr.warning > th{background-color:#fcf8e3}.egg-container .table-hover > tbody > tr > td.warning:hover,.egg-container .table-hover > tbody > tr > th.warning:hover,.egg-container .table-hover > tbody > tr.warning:hover > td,.egg-container .table-hover > tbody > tr:hover > .warning,.egg-container .table-hover > tbody > tr.warning:hover > th{background-color:#faf2cc}.egg-container .table > thead > tr > td.danger,.egg-container .table > tbody > tr > td.danger,.egg-container .table > tfoot > tr > td.danger,.egg-container .table > thead > tr > th.danger,.egg-container .table > tbody > tr > th.danger,.egg-container .table > tfoot > tr > th.danger,.egg-container .table > thead > tr.danger > td,.egg-container .table > tbody > tr.danger > td,.egg-container .table > tfoot > tr.danger > td,.egg-container .table > thead > tr.danger > th,.egg-container .table > tbody > tr.danger > th,.egg-container .table > tfoot > tr.danger > th{background-color:#f2dede}.egg-container .table-hover > tbody > tr > td.danger:hover,.egg-container .table-hover > tbody > tr > th.danger:hover,.egg-container .table-hover > tbody > tr.danger:hover > td,.egg-container .table-hover > tbody > tr:hover > .danger,.egg-container .table-hover > tbody > tr.danger:hover > th{background-color:#ebcccc}.egg-container .table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width: 767px){.egg-container .table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.egg-container .table-responsive > .table{margin-bottom:0}.egg-container .table-responsive > .table > thead > tr > th,.egg-container .table-responsive > .table > tbody > tr > th,.egg-container .table-responsive > .table > tfoot > tr > th,.egg-container .table-responsive > .table > thead > tr > td,.egg-container .table-responsive > .table > tbody > tr > td,.egg-container .table-responsive > .table > tfoot > tr > td{white-space:nowrap}.egg-container .table-responsive > .table-bordered{border:0}.egg-container .table-responsive > .table-bordered > thead > tr > th:first-child,.egg-container .table-responsive > .table-bordered > tbody > tr > th:first-child,.egg-container .table-responsive > .table-bordered > tfoot > tr > th:first-child,.egg-container .table-responsive > .table-bordered > thead > tr > td:first-child,.egg-container .table-responsive > .table-bordered > tbody > tr > td:first-child,.egg-container .table-responsive > .table-bordered > tfoot > tr > td:first-child{border-left:0}.egg-container .table-responsive > .table-bordered > thead > tr > th:last-child,.egg-container .table-responsive > .table-bordered > tbody > tr > th:last-child,.egg-container .table-responsive > .table-bordered > tfoot > tr > th:last-child,.egg-container .table-responsive > .table-bordered > thead > tr > td:last-child,.egg-container .table-responsive > .table-bordered > tbody > tr > td:last-child,.egg-container .table-responsive > .table-bordered > tfoot > tr > td:last-child{border-right:0}.egg-container .table-responsive > .table-bordered > tbody > tr:last-child > th,.egg-container .table-responsive > .table-bordered > tfoot > tr:last-child > th,.egg-container .table-responsive > .table-bordered > tbody > tr:last-child > td,.egg-container .table-responsive > .table-bordered > tfoot > tr:last-child > td{border-bottom:0}}.egg-container fieldset{min-width:0;padding:0;margin:0;border:0}.egg-container legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}.egg-container label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}.egg-container input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.egg-container input[type="radio"],.egg-container input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}.egg-container input[type="file"]{display:block}.egg-container input[type="range"]{display:block;width:100%}.egg-container select[multiple],.egg-container select[size]{height:auto}.egg-container input[type="file"]:focus,.egg-container input[type="radio"]:focus,.egg-container input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.egg-container output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.egg-container .form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.egg-container .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.egg-container .form-control::-moz-placeholder{color:#999;opacity:1}.egg-container .form-control:-ms-input-placeholder{color:#999}.egg-container .form-control::-webkit-input-placeholder{color:#999}.egg-container .form-control[disabled],.egg-container .form-control[readonly],fieldset[disabled] .egg-container .form-control{background-color:#eee;opacity:1}.egg-container .form-control[disabled],fieldset[disabled] .egg-container .form-control{cursor:not-allowed}textarea.egg-container .form-control{height:auto}.egg-container input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio: 0){.egg-container input[type="date"],.egg-container input[type="time"],.egg-container input[type="datetime-local"],.egg-container input[type="month"]{line-height:34px}.egg-container input[type="date"].input-sm,.egg-container input[type="time"].input-sm,.egg-container input[type="datetime-local"].input-sm,.egg-container input[type="month"].input-sm,.input-group-sm .egg-container input[type="date"],.input-group-sm .egg-container input[type="time"],.input-group-sm .egg-container input[type="datetime-local"],.input-group-sm .egg-container input[type="month"]{line-height:30px}.egg-container input[type="date"].input-lg,.egg-container input[type="time"].input-lg,.egg-container input[type="datetime-local"].input-lg,.egg-container input[type="month"].input-lg,.input-group-lg .egg-container input[type="date"],.input-group-lg .egg-container input[type="time"],.input-group-lg .egg-container input[type="datetime-local"],.input-group-lg .egg-container input[type="month"]{line-height:46px}}.egg-container .form-group{margin-bottom:15px}.egg-container .radio,.egg-container .checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.egg-container .radio label,.egg-container .checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.egg-container .radio input[type="radio"],.egg-container .radio-inline input[type="radio"],.egg-container .checkbox input[type="checkbox"],.egg-container .checkbox-inline input[type="checkbox"]{position:absolute;margin-top:4px \9;margin-left:-20px}.egg-container .radio + .radio,.egg-container .checkbox + .checkbox{margin-top:-5px}.egg-container .radio-inline,.egg-container .checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.egg-container .radio-inline + .radio-inline,.egg-container .checkbox-inline + .checkbox-inline{margin-top:0;margin-left:10px}.egg-container input[type="radio"][disabled],.egg-container input[type="checkbox"][disabled],.egg-container input[type="radio"].disabled,.egg-container input[type="checkbox"].disabled,fieldset[disabled] .egg-container input[type="radio"],fieldset[disabled] .egg-container input[type="checkbox"]{cursor:not-allowed}.egg-container .radio-inline.disabled,.egg-container .checkbox-inline.disabled,fieldset[disabled] .egg-container .radio-inline,fieldset[disabled] .egg-container .checkbox-inline{cursor:not-allowed}.egg-container .radio.disabled label,.egg-container .checkbox.disabled label,fieldset[disabled] .egg-container .radio label,fieldset[disabled] .egg-container .checkbox label{cursor:not-allowed}.egg-container .form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.egg-container .form-control-static.input-lg,.egg-container .form-control-static.input-sm{padding-right:0;padding-left:0}.egg-container .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.egg-container .input-sm{height:30px;line-height:30px}textarea.egg-container .input-sm,select[multiple].egg-container .input-sm{height:auto}.egg-container .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.egg-container .form-group-sm .form-control{height:30px;line-height:30px}textarea.egg-container .form-group-sm .form-control,select[multiple].egg-container .form-group-sm .form-control{height:auto}.egg-container .form-group-sm .form-control-static{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.egg-container .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.egg-container .input-lg{height:46px;line-height:46px}textarea.egg-container .input-lg,select[multiple].egg-container .input-lg{height:auto}.egg-container .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.egg-container .form-group-lg .form-control{height:46px;line-height:46px}textarea.egg-container .form-group-lg .form-control,select[multiple].egg-container .form-group-lg .form-control{height:auto}.egg-container .form-group-lg .form-control-static{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.egg-container .has-feedback{position:relative}.egg-container .has-feedback .form-control{padding-right:42.5px}.egg-container .form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.egg-container .input-lg + .form-control-feedback{width:46px;height:46px;line-height:46px}.egg-container .input-sm + .form-control-feedback{width:30px;height:30px;line-height:30px}.egg-container .has-success .help-block,.egg-container .has-success .control-label,.egg-container .has-success .radio,.egg-container .has-success .checkbox,.egg-container .has-success .radio-inline,.egg-container .has-success .checkbox-inline,.egg-container .has-success.radio label,.egg-container .has-success.checkbox label,.egg-container .has-success.radio-inline label,.egg-container .has-success.checkbox-inline label{color:#3c763d}.egg-container .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.egg-container .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.egg-container .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.egg-container .has-success .form-control-feedback{color:#3c763d}.egg-container .has-warning .help-block,.egg-container .has-warning .control-label,.egg-container .has-warning .radio,.egg-container .has-warning .checkbox,.egg-container .has-warning .radio-inline,.egg-container .has-warning .checkbox-inline,.egg-container .has-warning.radio label,.egg-container .has-warning.checkbox label,.egg-container .has-warning.radio-inline label,.egg-container .has-warning.checkbox-inline label{color:#8a6d3b}.egg-container .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.egg-container .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.egg-container .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.egg-container .has-warning .form-control-feedback{color:#8a6d3b}.egg-container .has-error .help-block,.egg-container .has-error .control-label,.egg-container .has-error .radio,.egg-container .has-error .checkbox,.egg-container .has-error .radio-inline,.egg-container .has-error .checkbox-inline,.egg-container .has-error.radio label,.egg-container .has-error.checkbox label,.egg-container .has-error.radio-inline label,.egg-container .has-error.checkbox-inline label{color:#a94442}.egg-container .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.egg-container .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.egg-container .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.egg-container .has-error .form-control-feedback{color:#a94442}.egg-container .has-feedback label ~ .form-control-feedback{top:25px}.egg-container .has-feedback label.sr-only ~ .form-control-feedback{top:0}.egg-container .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width: 768px){.egg-container .form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.egg-container .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.egg-container .form-inline .form-control-static{display:inline-block}.egg-container .form-inline .input-group{display:inline-table;vertical-align:middle}.egg-container .form-inline .input-group .input-group-addon,.egg-container .form-inline .input-group .input-group-btn,.egg-container .form-inline .input-group .form-control{width:auto}.egg-container .form-inline .input-group > .form-control{width:100%}.egg-container .form-inline .control-label{margin-bottom:0;vertical-align:middle}.egg-container .form-inline .radio,.egg-container .form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.egg-container .form-inline .radio label,.egg-container .form-inline .checkbox label{padding-left:0}.egg-container .form-inline .radio input[type="radio"],.egg-container .form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.egg-container .form-inline .has-feedback .form-control-feedback{top:0}}.egg-container .form-horizontal .radio,.egg-container .form-horizontal .checkbox,.egg-container .form-horizontal .radio-inline,.egg-container .form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.egg-container .form-horizontal .radio,.egg-container .form-horizontal .checkbox{min-height:27px}.egg-container .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.egg-container .form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.egg-container .form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width: 768px){.egg-container .form-horizontal .form-group-lg .control-label{padding-top:14.333333px}}@media (min-width: 768px){.egg-container .form-horizontal .form-group-sm .control-label{padding-top:6px}}.egg-container .btn{display:inline-block;padding:7px 14px;margin-bottom:0;font-size:14px;font-weight:700;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.egg-container .btn:focus,.egg-container .btn:active:focus,.egg-container .btn.active:focus,.egg-container .btn.focus,.egg-container .btn:active.focus,.egg-container .btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.egg-container .btn:hover,.egg-container .btn:focus,.egg-container .btn.focus{color:#333;text-decoration:none}.egg-container .btn:active,.egg-container .btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.egg-container .btn.disabled,.egg-container .btn[disabled],fieldset[disabled] .egg-container .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.egg-container .btn-default{color:#333;background-color:#fff;border-color:#ccc}.egg-container .btn-default:hover,.egg-container .btn-default:focus,.egg-container .btn-default.focus,.egg-container .btn-default:active,.egg-container .btn-default.active,.open > .dropdown-toggle.egg-container .btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.egg-container .btn-default:active,.egg-container .btn-default.active,.open > .dropdown-toggle.egg-container .btn-default{background-image:none}.egg-container .btn-default.disabled,.egg-container .btn-default[disabled],fieldset[disabled] .egg-container .btn-default,.egg-container .btn-default.disabled:hover,.egg-container .btn-default[disabled]:hover,fieldset[disabled] .egg-container .btn-default:hover,.egg-container .btn-default.disabled:focus,.egg-container .btn-default[disabled]:focus,fieldset[disabled] .egg-container .btn-default:focus,.egg-container .btn-default.disabled.focus,.egg-container .btn-default[disabled].focus,fieldset[disabled] .egg-container .btn-default.focus,.egg-container .btn-default.disabled:active,.egg-container .btn-default[disabled]:active,fieldset[disabled] .egg-container .btn-default:active,.egg-container .btn-default.disabled.active,.egg-container .btn-default[disabled].active,fieldset[disabled] .egg-container .btn-default.active{background-color:#fff;border-color:#ccc}.egg-container .btn-default .badge{color:#fff;background-color:#333}.egg-container .btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.egg-container .btn-primary:hover,.egg-container .btn-primary:focus,.egg-container .btn-primary.focus,.egg-container .btn-primary:active,.egg-container .btn-primary.active,.open > .dropdown-toggle.egg-container .btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.egg-container .btn-primary:active,.egg-container .btn-primary.active,.open > .dropdown-toggle.egg-container .btn-primary{background-image:none}.egg-container .btn-primary.disabled,.egg-container .btn-primary[disabled],fieldset[disabled] .egg-container .btn-primary,.egg-container .btn-primary.disabled:hover,.egg-container .btn-primary[disabled]:hover,fieldset[disabled] .egg-container .btn-primary:hover,.egg-container .btn-primary.disabled:focus,.egg-container .btn-primary[disabled]:focus,fieldset[disabled] .egg-container .btn-primary:focus,.egg-container .btn-primary.disabled.focus,.egg-container .btn-primary[disabled].focus,fieldset[disabled] .egg-container .btn-primary.focus,.egg-container .btn-primary.disabled:active,.egg-container .btn-primary[disabled]:active,fieldset[disabled] .egg-container .btn-primary:active,.egg-container .btn-primary.disabled.active,.egg-container .btn-primary[disabled].active,fieldset[disabled] .egg-container .btn-primary.active{background-color:#337ab7;border-color:#2e6da4}.egg-container .btn-primary .badge{color:#337ab7;background-color:#fff}.egg-container .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c;text-decoration:none!important}.egg-container .btn-success:hover,.egg-container .btn-success:focus,.egg-container .btn-success.focus,.egg-container .btn-success:active,.egg-container .btn-success.active,.open > .dropdown-toggle.egg-container .btn-success{color:#fff;background-color:#449d44;border-color:#398439}.egg-container .btn-success:active,.egg-container .btn-success.active,.open > .dropdown-toggle.egg-container .btn-success{background-image:none}.egg-container .btn-success.disabled,.egg-container .btn-success[disabled],fieldset[disabled] .egg-container .btn-success,.egg-container .btn-success.disabled:hover,.egg-container .btn-success[disabled]:hover,fieldset[disabled] .egg-container .btn-success:hover,.egg-container .btn-success.disabled:focus,.egg-container .btn-success[disabled]:focus,fieldset[disabled] .egg-container .btn-success:focus,.egg-container .btn-success.disabled.focus,.egg-container .btn-success[disabled].focus,fieldset[disabled] .egg-container .btn-success.focus,.egg-container .btn-success.disabled:active,.egg-container .btn-success[disabled]:active,fieldset[disabled] .egg-container .btn-success:active,.egg-container .btn-success.disabled.active,.egg-container .btn-success[disabled].active,fieldset[disabled] .egg-container .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.egg-container .btn-success .badge{color:#5cb85c;background-color:#fff}.egg-container .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.egg-container .btn-info:hover,.egg-container .btn-info:focus,.egg-container .btn-info.focus,.egg-container .btn-info:active,.egg-container .btn-info.active,.open > .dropdown-toggle.egg-container .btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.egg-container .btn-info:active,.egg-container .btn-info.active,.open > .dropdown-toggle.egg-container .btn-info{background-image:none}.egg-container .btn-info.disabled,.egg-container .btn-info[disabled],fieldset[disabled] .egg-container .btn-info,.egg-container .btn-info.disabled:hover,.egg-container .btn-info[disabled]:hover,fieldset[disabled] .egg-container .btn-info:hover,.egg-container .btn-info.disabled:focus,.egg-container .btn-info[disabled]:focus,fieldset[disabled] .egg-container .btn-info:focus,.egg-container .btn-info.disabled.focus,.egg-container .btn-info[disabled].focus,fieldset[disabled] .egg-container .btn-info.focus,.egg-container .btn-info.disabled:active,.egg-container .btn-info[disabled]:active,fieldset[disabled] .egg-container .btn-info:active,.egg-container .btn-info.disabled.active,.egg-container .btn-info[disabled].active,fieldset[disabled] .egg-container .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.egg-container .btn-info .badge{color:#5bc0de;background-color:#fff}.egg-container .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.egg-container .btn-warning:hover,.egg-container .btn-warning:focus,.egg-container .btn-warning.focus,.egg-container .btn-warning:active,.egg-container .btn-warning.active,.open > .dropdown-toggle.egg-container .btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.egg-container .btn-warning:active,.egg-container .btn-warning.active,.open > .dropdown-toggle.egg-container .btn-warning{background-image:none}.egg-container .btn-warning.disabled,.egg-container .btn-warning[disabled],fieldset[disabled] .egg-container .btn-warning,.egg-container .btn-warning.disabled:hover,.egg-container .btn-warning[disabled]:hover,fieldset[disabled] .egg-container .btn-warning:hover,.egg-container .btn-warning.disabled:focus,.egg-container .btn-warning[disabled]:focus,fieldset[disabled] .egg-container .btn-warning:focus,.egg-container .btn-warning.disabled.focus,.egg-container .btn-warning[disabled].focus,fieldset[disabled] .egg-container .btn-warning.focus,.egg-container .btn-warning.disabled:active,.egg-container .btn-warning[disabled]:active,fieldset[disabled] .egg-container .btn-warning:active,.egg-container .btn-warning.disabled.active,.egg-container .btn-warning[disabled].active,fieldset[disabled] .egg-container .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.egg-container .btn-warning .badge{color:#f0ad4e;background-color:#fff}.egg-container .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.egg-container .btn-danger:hover,.egg-container .btn-danger:focus,.egg-container .btn-danger.focus,.egg-container .btn-danger:active,.egg-container .btn-danger.active,.open > .dropdown-toggle.egg-container .btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.egg-container .btn-danger:active,.egg-container .btn-danger.active,.open > .dropdown-toggle.egg-container .btn-danger{background-image:none}.egg-container .btn-danger.disabled,.egg-container .btn-danger[disabled],fieldset[disabled] .egg-container .btn-danger,.egg-container .btn-danger.disabled:hover,.egg-container .btn-danger[disabled]:hover,fieldset[disabled] .egg-container .btn-danger:hover,.egg-container .btn-danger.disabled:focus,.egg-container .btn-danger[disabled]:focus,fieldset[disabled] .egg-container .btn-danger:focus,.egg-container .btn-danger.disabled.focus,.egg-container .btn-danger[disabled].focus,fieldset[disabled] .egg-container .btn-danger.focus,.egg-container .btn-danger.disabled:active,.egg-container .btn-danger[disabled]:active,fieldset[disabled] .egg-container .btn-danger:active,.egg-container .btn-danger.disabled.active,.egg-container .btn-danger[disabled].active,fieldset[disabled] .egg-container .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.egg-container .btn-danger .badge{color:#d9534f;background-color:#fff}.egg-container .btn-link{font-weight:400;color:#337ab7;border-radius:0}.egg-container .btn-link,.egg-container .btn-link:active,.egg-container .btn-link.active,.egg-container .btn-link[disabled],fieldset[disabled] .egg-container .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.egg-container .btn-link,.egg-container .btn-link:hover,.egg-container .btn-link:focus,.egg-container .btn-link:active{border-color:transparent}.egg-container .btn-link:hover,.egg-container .btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.egg-container .btn-link[disabled]:hover,fieldset[disabled] .egg-container .btn-link:hover,.egg-container .btn-link[disabled]:focus,fieldset[disabled] .egg-container .btn-link:focus{color:#777;text-decoration:none}.egg-container .btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.egg-container .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.egg-container .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.egg-container .btn-block{display:block;width:100%}.egg-container .btn-block + .btn-block{margin-top:5px}.egg-container input[type="submit"].btn-block,.egg-container input[type="reset"].btn-block,.egg-container input[type="button"].btn-block{width:100%}.egg-container .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.egg-container .fade.in{opacity:1}.egg-container .collapse{display:none}.egg-container .collapse.in{display:block}tr.egg-container .collapse.in{display:table-row}tbody.egg-container .collapse.in{display:table-row-group}.egg-container .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.egg-container .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.egg-container .dropup,.egg-container .dropdown{position:relative}.egg-container .dropdown-toggle:focus{outline:0}.egg-container .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.egg-container .dropdown-menu.pull-right{right:0;left:auto}.egg-container .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.egg-container .dropdown-menu > li > a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.egg-container .dropdown-menu > li > a:hover,.egg-container .dropdown-menu > li > a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.egg-container .dropdown-menu > .active > a,.egg-container .dropdown-menu > .active > a:hover,.egg-container .dropdown-menu > .active > a:focus{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.egg-container .dropdown-menu > .disabled > a,.egg-container .dropdown-menu > .disabled > a:hover,.egg-container .dropdown-menu > .disabled > a:focus{color:#777}.egg-container .dropdown-menu > .disabled > a:hover,.egg-container .dropdown-menu > .disabled > a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.egg-container .open > .dropdown-menu{display:block}.egg-container .open > a{outline:0}.egg-container .dropdown-menu-right{right:0;left:auto}.egg-container .dropdown-menu-left{right:auto;left:0}.egg-container .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.egg-container .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.egg-container .pull-right > .dropdown-menu{right:0;left:auto}.egg-container .dropup .caret,.egg-container .navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.egg-container .dropup .dropdown-menu,.egg-container .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width: 768px){.egg-container .navbar-right .dropdown-menu{right:0;left:auto}.egg-container .navbar-right .dropdown-menu-left{right:auto;left:0}}.egg-container .btn-group,.egg-container .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.egg-container .btn-group > .btn,.egg-container .btn-group-vertical > .btn{position:relative;float:left}.egg-container .btn-group > .btn:hover,.egg-container .btn-group-vertical > .btn:hover,.egg-container .btn-group > .btn:focus,.egg-container .btn-group-vertical > .btn:focus,.egg-container .btn-group > .btn:active,.egg-container .btn-group-vertical > .btn:active,.egg-container .btn-group > .btn.active,.egg-container .btn-group-vertical > .btn.active{z-index:2}.egg-container .btn-group .btn + .btn,.egg-container .btn-group .btn + .btn-group,.egg-container .btn-group .btn-group + .btn,.egg-container .btn-group .btn-group + .btn-group{margin-left:-1px}.egg-container .btn-toolbar{margin-left:-5px}.egg-container .btn-toolbar .btn-group,.egg-container .btn-toolbar .input-group{float:left}.egg-container .btn-toolbar > .btn,.egg-container .btn-toolbar > .btn-group,.egg-container .btn-toolbar > .input-group{margin-left:5px}.egg-container .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.egg-container .btn-group > .btn:first-child{margin-left:0}.egg-container .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.egg-container .btn-group > .btn:last-child:not(:first-child),.egg-container .btn-group > .dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.egg-container .btn-group > .btn-group{float:left}.egg-container .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn{border-radius:0}.egg-container .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,.egg-container .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.egg-container .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.egg-container .btn-group .dropdown-toggle:active,.egg-container .btn-group.open .dropdown-toggle{outline:0}.egg-container .btn-group > .btn + .dropdown-toggle{padding-right:8px;padding-left:8px}.egg-container .btn-group > .btn-lg + .dropdown-toggle{padding-right:12px;padding-left:12px}.egg-container .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.egg-container .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.egg-container .btn .caret{margin-left:0}.egg-container .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.egg-container .dropup .btn-lg .caret{border-width:0 5px 5px}.egg-container .btn-group-vertical > .btn,.egg-container .btn-group-vertical > .btn-group,.egg-container .btn-group-vertical > .btn-group > .btn{display:block;float:none;width:100%;max-width:100%}.egg-container .btn-group-vertical > .btn-group > .btn{float:none}.egg-container .btn-group-vertical > .btn + .btn,.egg-container .btn-group-vertical > .btn + .btn-group,.egg-container .btn-group-vertical > .btn-group + .btn,.egg-container .btn-group-vertical > .btn-group + .btn-group{margin-top:-1px;margin-left:0}.egg-container .btn-group-vertical > .btn:not(:first-child):not(:last-child){border-radius:0}.egg-container .btn-group-vertical > .btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.egg-container .btn-group-vertical > .btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.egg-container .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn{border-radius:0}.egg-container .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,.egg-container .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.egg-container .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.egg-container .btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.egg-container .btn-group-justified > .btn,.egg-container .btn-group-justified > .btn-group{display:table-cell;float:none;width:1%}.egg-container .btn-group-justified > .btn-group .btn{width:100%}.egg-container .btn-group-justified > .btn-group .dropdown-menu{left:auto}.egg-container [data-toggle="buttons"] > .btn input[type="radio"],.egg-container [data-toggle="buttons"] > .btn-group > .btn input[type="radio"],.egg-container [data-toggle="buttons"] > .btn input[type="checkbox"],.egg-container [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.egg-container .input-group{position:relative;display:table;border-collapse:separate}.egg-container .input-group[class*="col-"]{float:none;padding-right:0;padding-left:0}.egg-container .input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.egg-container .input-group-lg > .form-control,.egg-container .input-group-lg > .input-group-addon,.egg-container .input-group-lg > .input-group-btn > .btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.egg-container .input-group-lg > .form-control,select.egg-container .input-group-lg > .input-group-addon,select.egg-container .input-group-lg > .input-group-btn > .btn{height:46px;line-height:46px}textarea.egg-container .input-group-lg > .form-control,textarea.egg-container .input-group-lg > .input-group-addon,textarea.egg-container .input-group-lg > .input-group-btn > .btn,select[multiple].egg-container .input-group-lg > .form-control,select[multiple].egg-container .input-group-lg > .input-group-addon,select[multiple].egg-container .input-group-lg > .input-group-btn > .btn{height:auto}.egg-container .input-group-sm > .form-control,.egg-container .input-group-sm > .input-group-addon,.egg-container .input-group-sm > .input-group-btn > .btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.egg-container .input-group-sm > .form-control,select.egg-container .input-group-sm > .input-group-addon,select.egg-container .input-group-sm > .input-group-btn > .btn{height:30px;line-height:30px}textarea.egg-container .input-group-sm > .form-control,textarea.egg-container .input-group-sm > .input-group-addon,textarea.egg-container .input-group-sm > .input-group-btn > .btn,select[multiple].egg-container .input-group-sm > .form-control,select[multiple].egg-container .input-group-sm > .input-group-addon,select[multiple].egg-container .input-group-sm > .input-group-btn > .btn{height:auto}.egg-container .input-group-addon,.egg-container .input-group-btn,.egg-container .input-group .form-control{display:table-cell}.egg-container .input-group-addon:not(:first-child):not(:last-child),.egg-container .input-group-btn:not(:first-child):not(:last-child),.egg-container .input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.egg-container .input-group-addon,.egg-container .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.egg-container .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.egg-container .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.egg-container .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.egg-container .input-group-addon input[type="radio"],.egg-container .input-group-addon input[type="checkbox"]{margin-top:0}.egg-container .input-group .form-control:first-child,.egg-container .input-group-addon:first-child,.egg-container .input-group-btn:first-child > .btn,.egg-container .input-group-btn:first-child > .btn-group > .btn,.egg-container .input-group-btn:first-child > .dropdown-toggle,.egg-container .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),.egg-container .input-group-btn:last-child > .btn-group:not(:last-child) > .btn{border-top-right-radius:0;border-bottom-right-radius:0}.egg-container .input-group-addon:first-child{border-right:0}.egg-container .input-group .form-control:last-child,.egg-container .input-group-addon:last-child,.egg-container .input-group-btn:last-child > .btn,.egg-container .input-group-btn:last-child > .btn-group > .btn,.egg-container .input-group-btn:last-child > .dropdown-toggle,.egg-container .input-group-btn:first-child > .btn:not(:first-child),.egg-container .input-group-btn:first-child > .btn-group:not(:first-child) > .btn{border-top-left-radius:0;border-bottom-left-radius:0}.egg-container .input-group-addon:last-child{border-left:0}.egg-container .input-group-btn{position:relative;font-size:0;white-space:nowrap}.egg-container .input-group-btn > .btn{position:relative}.egg-container .input-group-btn > .btn + .btn{margin-left:-1px}.egg-container .input-group-btn > .btn:hover,.egg-container .input-group-btn > .btn:focus,.egg-container .input-group-btn > .btn:active{z-index:2}.egg-container .input-group-btn:first-child > .btn,.egg-container .input-group-btn:first-child > .btn-group{margin-right:-1px}.egg-container .input-group-btn:last-child > .btn,.egg-container .input-group-btn:last-child > .btn-group{margin-left:-1px}.egg-container .nav{padding-left:0;margin-bottom:0;list-style:none}.egg-container .nav > li{position:relative;display:block}.egg-container .nav > li > a{position:relative;display:block;padding:10px 15px}.egg-container .nav > li > a:hover,.egg-container .nav > li > a:focus{text-decoration:none;background-color:#eee}.egg-container .nav > li.disabled > a{color:#777}.egg-container .nav > li.disabled > a:hover,.egg-container .nav > li.disabled > a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.egg-container .nav .open > a,.egg-container .nav .open > a:hover,.egg-container .nav .open > a:focus{background-color:#eee;border-color:#337ab7}.egg-container .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.egg-container .nav > li > a > img{max-width:none}.egg-container .nav-tabs{border-bottom:1px solid #ddd}.egg-container .nav-tabs > li{float:left;margin-bottom:-1px}.egg-container .nav-tabs > li > a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.egg-container .nav-tabs > li > a:hover{border-color:#eee #eee #ddd}.egg-container .nav-tabs > li.active > a,.egg-container .nav-tabs > li.active > a:hover,.egg-container .nav-tabs > li.active > a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.egg-container .nav-tabs.nav-justified{width:100%;border-bottom:0}.egg-container .nav-tabs.nav-justified > li{float:none}.egg-container .nav-tabs.nav-justified > li > a{margin-bottom:5px;text-align:center}.egg-container .nav-tabs.nav-justified > .dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.egg-container .nav-tabs.nav-justified > li{display:table-cell;width:1%}.egg-container .nav-tabs.nav-justified > li > a{margin-bottom:0}}.egg-container .nav-tabs.nav-justified > li > a{margin-right:0;border-radius:4px}.egg-container .nav-tabs.nav-justified > .active > a,.egg-container .nav-tabs.nav-justified > .active > a:hover,.egg-container .nav-tabs.nav-justified > .active > a:focus{border:1px solid #ddd}@media (min-width: 768px){.egg-container .nav-tabs.nav-justified > li > a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.egg-container .nav-tabs.nav-justified > .active > a,.egg-container .nav-tabs.nav-justified > .active > a:hover,.egg-container .nav-tabs.nav-justified > .active > a:focus{border-bottom-color:#fff}}.egg-container .nav-pills > li{float:left}.egg-container .nav-pills > li > a{border-radius:4px}.egg-container .nav-pills > li + li{margin-left:2px}.egg-container .nav-pills > li.active > a,.egg-container .nav-pills > li.active > a:hover,.egg-container .nav-pills > li.active > a:focus{color:#fff;background-color:#337ab7}.egg-container .nav-stacked > li{float:none}.egg-container .nav-stacked > li + li{margin-top:2px;margin-left:0}.egg-container .nav-justified{width:100%}.egg-container .nav-justified > li{float:none}.egg-container .nav-justified > li > a{margin-bottom:5px;text-align:center}.egg-container .nav-justified > .dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.egg-container .nav-justified > li{display:table-cell;width:1%}.egg-container .nav-justified > li > a{margin-bottom:0}}.egg-container .nav-tabs-justified{border-bottom:0}.egg-container .nav-tabs-justified > li > a{margin-right:0;border-radius:4px}.egg-container .nav-tabs-justified > .active > a,.egg-container .nav-tabs-justified > .active > a:hover,.egg-container .nav-tabs-justified > .active > a:focus{border:1px solid #ddd}@media (min-width: 768px){.egg-container .nav-tabs-justified > li > a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.egg-container .nav-tabs-justified > .active > a,.egg-container .nav-tabs-justified > .active > a:hover,.egg-container .nav-tabs-justified > .active > a:focus{border-bottom-color:#fff}}.egg-container .tab-content > .tab-pane{display:none}.egg-container .tab-content > .active{display:block}.egg-container .nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.egg-container .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.egg-container .breadcrumb > li{display:inline-block}.egg-container .breadcrumb > li + li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.egg-container .breadcrumb > .active{color:#777}.egg-container .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.egg-container .label:hover,a.egg-container .label:focus{color:#fff;text-decoration:none;cursor:pointer}.egg-container .label:empty{display:none}.btn .egg-container .label{position:relative;top:-1px}.egg-container .label-default{background-color:#777}.egg-container .label-default[href]:hover,.egg-container .label-default[href]:focus{background-color:#5e5e5e}.egg-container .label-primary{background-color:#337ab7}.egg-container .label-primary[href]:hover,.egg-container .label-primary[href]:focus{background-color:#286090}.egg-container .label-success{background-color:#5cb85c}.egg-container .label-success[href]:hover,.egg-container .label-success[href]:focus{background-color:#449d44}.egg-container .label-info{background-color:#5bc0de}.egg-container .label-info[href]:hover,.egg-container .label-info[href]:focus{background-color:#31b0d5}.egg-container .label-warning{background-color:#f0ad4e}.egg-container .label-warning[href]:hover,.egg-container .label-warning[href]:focus{background-color:#ec971f}.egg-container .label-danger{background-color:#d9534f}.egg-container .label-danger[href]:hover,.egg-container .label-danger[href]:focus{background-color:#c9302c}.egg-container .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.egg-container .badge:empty{display:none}.btn .egg-container .badge{position:relative;top:-1px}.btn-xs .egg-container .badge,.btn-group-xs > .btn .egg-container .badge{top:0;padding:1px 5px}a.egg-container .badge:hover,a.egg-container .badge:focus{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active > .egg-container .badge,.nav-pills > .active > a > .egg-container .badge{color:#337ab7;background-color:#fff}.list-group-item > .egg-container .badge{float:right}.list-group-item > .egg-container .badge + .egg-container .badge{margin-right:5px}.nav-pills > li > a > .egg-container .badge{margin-left:3px}.egg-container .thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.egg-container .thumbnail > img,.egg-container .thumbnail a > img{margin-right:auto;margin-left:auto}.egg-container a.thumbnail:hover,.egg-container a.thumbnail:focus,.egg-container a.thumbnail.active{border-color:#337ab7}.egg-container .thumbnail .caption{padding:9px;color:#333}.egg-container .alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.egg-container .alert h4{margin-top:0;color:inherit}.egg-container .alert .alert-link{font-weight:700}.egg-container .alert > p,.egg-container .alert > ul{margin-bottom:0}.egg-container .alert > p + p{margin-top:5px}.egg-container .alert-dismissable,.egg-container .alert-dismissible{padding-right:35px}.egg-container .alert-dismissable .close,.egg-container .alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.egg-container .alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.egg-container .alert-success hr{border-top-color:#c9e2b3}.egg-container .alert-success .alert-link{color:#2b542c}.egg-container .alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.egg-container .alert-info hr{border-top-color:#a6e1ec}.egg-container .alert-info .alert-link{color:#245269}.egg-container .alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.egg-container .alert-warning hr{border-top-color:#f7e1b5}.egg-container .alert-warning .alert-link{color:#66512c}.egg-container .alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.egg-container .alert-danger hr{border-top-color:#e4b9c0}.egg-container .alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.egg-container .progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.egg-container .progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.egg-container .progress-striped .progress-bar,.egg-container .progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.egg-container .progress.active .progress-bar,.egg-container .progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.egg-container .progress-bar-success{background-color:#5cb85c}.progress-striped .egg-container .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.egg-container .progress-bar-info{background-color:#5bc0de}.progress-striped .egg-container .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.egg-container .progress-bar-warning{background-color:#f0ad4e}.progress-striped .egg-container .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.egg-container .progress-bar-danger{background-color:#d9534f}.progress-striped .egg-container .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.egg-container .media{margin-top:15px}.egg-container .media:first-child{margin-top:0}.egg-container .media,.egg-container .media-body{overflow:hidden;zoom:1}.egg-container .media-body{width:10000px}.egg-container .media-object{display:block}.egg-container .media-right,.egg-container .media > .pull-right{padding-left:10px}.egg-container .media-left,.egg-container .media > .pull-left{padding-right:20px}.egg-container .media-left,.egg-container .media-right,.egg-container .media-body{display:table-cell;vertical-align:top}.egg-container .media-middle{vertical-align:middle}.egg-container .media-bottom{vertical-align:bottom}.egg-container .media-heading{margin-top:0;margin-bottom:18px}.egg-container .media-list{padding-left:0;list-style:none}.egg-container .list-group{padding-left:0;margin-bottom:20px}.egg-container .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.egg-container .list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.egg-container .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.egg-container a.list-group-item{color:#555}.egg-container a.list-group-item .list-group-item-heading{color:#333}.egg-container a.list-group-item:hover,.egg-container a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.egg-container .list-group-item.disabled,.egg-container .list-group-item.disabled:hover,.egg-container .list-group-item.disabled:focus{color:#777;cursor:not-allowed;background-color:#eee}.egg-container .list-group-item.disabled .list-group-item-heading,.egg-container .list-group-item.disabled:hover .list-group-item-heading,.egg-container .list-group-item.disabled:focus .list-group-item-heading{color:inherit}.egg-container .list-group-item.disabled .list-group-item-text,.egg-container .list-group-item.disabled:hover .list-group-item-text,.egg-container .list-group-item.disabled:focus .list-group-item-text{color:#777}.egg-container .list-group-item.active,.egg-container .list-group-item.active:hover,.egg-container .list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.egg-container .list-group-item.active .list-group-item-heading,.egg-container .list-group-item.active:hover .list-group-item-heading,.egg-container .list-group-item.active:focus .list-group-item-heading,.egg-container .list-group-item.active .list-group-item-heading > small,.egg-container .list-group-item.active:hover .list-group-item-heading > small,.egg-container .list-group-item.active:focus .list-group-item-heading > small,.egg-container .list-group-item.active .list-group-item-heading > .small,.egg-container .list-group-item.active:hover .list-group-item-heading > .small,.egg-container .list-group-item.active:focus .list-group-item-heading > .small{color:inherit}.egg-container .list-group-item.active .list-group-item-text,.egg-container .list-group-item.active:hover .list-group-item-text,.egg-container .list-group-item.active:focus .list-group-item-text{color:#c7ddef}.egg-container .list-group-item-success{color:#3c763d;background-color:#dff0d8}a.egg-container .list-group-item-success{color:#3c763d}a.egg-container .list-group-item-success .list-group-item-heading{color:inherit}a.egg-container .list-group-item-success:hover,a.egg-container .list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.egg-container .list-group-item-success.active,a.egg-container .list-group-item-success.active:hover,a.egg-container .list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.egg-container .list-group-item-info{color:#31708f;background-color:#d9edf7}a.egg-container .list-group-item-info{color:#31708f}a.egg-container .list-group-item-info .list-group-item-heading{color:inherit}a.egg-container .list-group-item-info:hover,a.egg-container .list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.egg-container .list-group-item-info.active,a.egg-container .list-group-item-info.active:hover,a.egg-container .list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.egg-container .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.egg-container .list-group-item-warning{color:#8a6d3b}a.egg-container .list-group-item-warning .list-group-item-heading{color:inherit}a.egg-container .list-group-item-warning:hover,a.egg-container .list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.egg-container .list-group-item-warning.active,a.egg-container .list-group-item-warning.active:hover,a.egg-container .list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.egg-container .list-group-item-danger{color:#a94442;background-color:#f2dede}a.egg-container .list-group-item-danger{color:#a94442}a.egg-container .list-group-item-danger .list-group-item-heading{color:inherit}a.egg-container .list-group-item-danger:hover,a.egg-container .list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.egg-container .list-group-item-danger.active,a.egg-container .list-group-item-danger.active:hover,a.egg-container .list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.egg-container .list-group-item-heading{margin-top:0;margin-bottom:5px}.egg-container .list-group-item-text{margin-bottom:0;line-height:1.3}.egg-container .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.egg-container .panel-body{padding:20px}.egg-container .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.egg-container .panel-heading > .dropdown .dropdown-toggle{color:inherit}.egg-container .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.egg-container .panel-title > a,.egg-container .panel-title > small,.egg-container .panel-title > .small,.egg-container .panel-title > small > a,.egg-container .panel-title > .small > a{color:inherit}.egg-container .panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.egg-container .panel > .list-group,.egg-container .panel > .panel-collapse > .list-group{margin-bottom:0}.egg-container .panel > .list-group .list-group-item,.egg-container .panel > .panel-collapse > .list-group .list-group-item{border-width:1px 0;border-radius:0}.egg-container .panel > .list-group:first-child .list-group-item:first-child,.egg-container .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.egg-container .panel > .list-group:last-child .list-group-item:last-child,.egg-container .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.egg-container .panel-heading + .list-group .list-group-item:first-child{border-top-width:0}.egg-container .list-group + .panel-footer{border-top-width:0}.egg-container .panel > .table,.egg-container .panel > .table-responsive > .table,.egg-container .panel > .panel-collapse > .table{margin-bottom:0}.egg-container .panel > .table caption,.egg-container .panel > .table-responsive > .table caption,.egg-container .panel > .panel-collapse > .table caption{padding-right:15px;padding-left:15px}.egg-container .panel > .table:first-child,.egg-container .panel > .table-responsive:first-child > .table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.egg-container .panel > .table:first-child > thead:first-child > tr:first-child,.egg-container .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,.egg-container .panel > .table:first-child > tbody:first-child > tr:first-child,.egg-container .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.egg-container .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,.egg-container .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,.egg-container .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,.egg-container .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,.egg-container .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,.egg-container .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,.egg-container .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,.egg-container .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child{border-top-left-radius:3px}.egg-container .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,.egg-container .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,.egg-container .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,.egg-container .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,.egg-container .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,.egg-container .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,.egg-container .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,.egg-container .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child{border-top-right-radius:3px}.egg-container .panel > .table:last-child,.egg-container .panel > .table-responsive:last-child > .table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.egg-container .panel > .table:last-child > tbody:last-child > tr:last-child,.egg-container .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,.egg-container .panel > .table:last-child > tfoot:last-child > tr:last-child,.egg-container .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.egg-container .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,.egg-container .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,.egg-container .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,.egg-container .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,.egg-container .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,.egg-container .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,.egg-container .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,.egg-container .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child{border-bottom-left-radius:3px}.egg-container .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,.egg-container .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,.egg-container .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,.egg-container .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,.egg-container .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,.egg-container .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,.egg-container .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,.egg-container .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child{border-bottom-right-radius:3px}.egg-container .panel > .panel-body + .table,.egg-container .panel > .panel-body + .table-responsive,.egg-container .panel > .table + .panel-body,.egg-container .panel > .table-responsive + .panel-body{border-top:1px solid #ddd}.egg-container .panel > .table > tbody:first-child > tr:first-child th,.egg-container .panel > .table > tbody:first-child > tr:first-child td{border-top:0}.egg-container .panel > .table-bordered,.egg-container .panel > .table-responsive > .table-bordered{border:0}.egg-container .panel > .table-bordered > thead > tr > th:first-child,.egg-container .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,.egg-container .panel > .table-bordered > tbody > tr > th:first-child,.egg-container .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,.egg-container .panel > .table-bordered > tfoot > tr > th:first-child,.egg-container .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,.egg-container .panel > .table-bordered > thead > tr > td:first-child,.egg-container .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,.egg-container .panel > .table-bordered > tbody > tr > td:first-child,.egg-container .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,.egg-container .panel > .table-bordered > tfoot > tr > td:first-child,.egg-container .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child{border-left:0}.egg-container .panel > .table-bordered > thead > tr > th:last-child,.egg-container .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,.egg-container .panel > .table-bordered > tbody > tr > th:last-child,.egg-container .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,.egg-container .panel > .table-bordered > tfoot > tr > th:last-child,.egg-container .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,.egg-container .panel > .table-bordered > thead > tr > td:last-child,.egg-container .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,.egg-container .panel > .table-bordered > tbody > tr > td:last-child,.egg-container .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,.egg-container .panel > .table-bordered > tfoot > tr > td:last-child,.egg-container .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child{border-right:0}.egg-container .panel > .table-bordered > thead > tr:first-child > td,.egg-container .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,.egg-container .panel > .table-bordered > tbody > tr:first-child > td,.egg-container .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,.egg-container .panel > .table-bordered > thead > tr:first-child > th,.egg-container .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,.egg-container .panel > .table-bordered > tbody > tr:first-child > th,.egg-container .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th{border-bottom:0}.egg-container .panel > .table-bordered > tbody > tr:last-child > td,.egg-container .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,.egg-container .panel > .table-bordered > tfoot > tr:last-child > td,.egg-container .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,.egg-container .panel > .table-bordered > tbody > tr:last-child > th,.egg-container .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,.egg-container .panel > .table-bordered > tfoot > tr:last-child > th,.egg-container .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th{border-bottom:0}.egg-container .panel > .table-responsive{margin-bottom:0;border:0}.egg-container .panel-group{margin-bottom:20px}.egg-container .panel-group .panel{margin-bottom:0;border-radius:4px}.egg-container .panel-group .panel + .panel{margin-top:5px}.egg-container .panel-group .panel-heading{border-bottom:0}.egg-container .panel-group .panel-heading + .panel-collapse > .panel-body,.egg-container .panel-group .panel-heading + .panel-collapse > .list-group{border-top:1px solid #ddd}.egg-container .panel-group .panel-footer{border-top:0}.egg-container .panel-group .panel-footer + .panel-collapse .panel-body{border-bottom:1px solid #ddd}.egg-container .panel-default{border-color:#ddd}.egg-container .panel-default > .panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.egg-container .panel-default > .panel-heading + .panel-collapse > .panel-body{border-top-color:#ddd}.egg-container .panel-default > .panel-heading .badge{color:#f5f5f5;background-color:#333}.egg-container .panel-default > .panel-footer + .panel-collapse > .panel-body{border-bottom-color:#ddd}.egg-container .panel-primary{border-color:#337ab7}.egg-container .panel-primary > .panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.egg-container .panel-primary > .panel-heading + .panel-collapse > .panel-body{border-top-color:#337ab7}.egg-container .panel-primary > .panel-heading .badge{color:#337ab7;background-color:#fff}.egg-container .panel-primary > .panel-footer + .panel-collapse > .panel-body{border-bottom-color:#337ab7}.egg-container .panel-success{border-color:#d6e9c6}.egg-container .panel-success > .panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.egg-container .panel-success > .panel-heading + .panel-collapse > .panel-body{border-top-color:#d6e9c6}.egg-container .panel-success > .panel-heading .badge{color:#dff0d8;background-color:#3c763d}.egg-container .panel-success > .panel-footer + .panel-collapse > .panel-body{border-bottom-color:#d6e9c6}.egg-container .panel-info{border-color:#bce8f1}.egg-container .panel-info > .panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.egg-container .panel-info > .panel-heading + .panel-collapse > .panel-body{border-top-color:#bce8f1}.egg-container .panel-info > .panel-heading .badge{color:#d9edf7;background-color:#31708f}.egg-container .panel-info > .panel-footer + .panel-collapse > .panel-body{border-bottom-color:#bce8f1}.egg-container .panel-warning{border-color:#faebcc}.egg-container .panel-warning > .panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.egg-container .panel-warning > .panel-heading + .panel-collapse > .panel-body{border-top-color:#faebcc}.egg-container .panel-warning > .panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.egg-container .panel-warning > .panel-footer + .panel-collapse > .panel-body{border-bottom-color:#faebcc}.egg-container .panel-danger{border-color:#ebccd1}.egg-container .panel-danger > .panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.egg-container .panel-danger > .panel-heading + .panel-collapse > .panel-body{border-top-color:#ebccd1}.egg-container .panel-danger > .panel-heading .badge{color:#f2dede;background-color:#a94442}.egg-container .panel-danger > .panel-footer + .panel-collapse > .panel-body{border-bottom-color:#ebccd1}.egg-container .embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.egg-container .embed-responsive .embed-responsive-item,.egg-container .embed-responsive iframe,.egg-container .embed-responsive embed,.egg-container .embed-responsive object,.egg-container .embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.egg-container .embed-responsive-16by9{padding-bottom:56.25%}.egg-container .embed-responsive-4by3{padding-bottom:75%}.egg-container .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.egg-container .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.egg-container .well-lg{padding:24px;border-radius:6px}.egg-container .well-sm{padding:9px;border-radius:3px}.egg-container .close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.egg-container .close:hover,.egg-container .close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.egg-container .close{-webkit-appearance:none;padding:0;cursor:pointer;background:transparent;border:0}.egg-container .clearfix:before,.egg-container .clearfix:after,.egg-container .dl-horizontal dd:before,.egg-container .dl-horizontal dd:after,.egg-container .container:before,.egg-container .container:after,.egg-container .container-fluid:before,.egg-container .container-fluid:after,.egg-container .row:before,.egg-container .row:after,.egg-container .form-horizontal .form-group:before,.egg-container .form-horizontal .form-group:after,.egg-container .btn-toolbar:before,.egg-container .btn-toolbar:after,.egg-container .btn-group-vertical > .btn-group:before,.egg-container .btn-group-vertical > .btn-group:after,.egg-container .nav:before,.egg-container .nav:after,.egg-container .panel-body:before,.egg-container .panel-body:after{display:table;content:" "}.egg-container .clearfix:after,.egg-container .dl-horizontal dd:after,.egg-container .container:after,.egg-container .container-fluid:after,.egg-container .row:after,.egg-container .form-horizontal .form-group:after,.egg-container .btn-toolbar:after,.egg-container .btn-group-vertical > .btn-group:after,.egg-container .nav:after,.egg-container .panel-body:after{clear:both}.egg-container .center-block{display:block;margin-right:auto;margin-left:auto}.egg-container .pull-right{float:right!important}.egg-container .pull-left{float:left!important}.egg-container .hide{display:none!important}.egg-container .show{display:block!important}.egg-container .invisible{visibility:hidden}.egg-container .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.egg-container .hidden{display:none!important}.egg-container .affix{position:fixed}.egg-container .visible-xs,.egg-container .visible-sm,.egg-container .visible-md,.egg-container .visible-lg{display:none!important}.egg-container .visible-xs-block,.egg-container .visible-xs-inline,.egg-container .visible-xs-inline-block,.egg-container .visible-sm-block,.egg-container .visible-sm-inline,.egg-container .visible-sm-inline-block,.egg-container .visible-md-block,.egg-container .visible-md-inline,.egg-container .visible-md-inline-block,.egg-container .visible-lg-block,.egg-container .visible-lg-inline,.egg-container .visible-lg-inline-block{display:none!important}@media (max-width: 767px){.egg-container .visible-xs{display:block!important}table.egg-container .visible-xs{display:table}tr.egg-container .visible-xs{display:table-row!important}th.egg-container .visible-xs,td.egg-container .visible-xs{display:table-cell!important}.egg-container .visible-xs-block{display:block!important}.egg-container .visible-xs-inline{display:inline!important}.egg-container .visible-xs-inline-block{display:inline-block!important}}@media (min-width: 768px) and (max-width: 991px){.egg-container .visible-sm{display:block!important}table.egg-container .visible-sm{display:table}tr.egg-container .visible-sm{display:table-row!important}th.egg-container .visible-sm,td.egg-container .visible-sm{display:table-cell!important}.egg-container .visible-sm-block{display:block!important}.egg-container .visible-sm-inline{display:inline!important}.egg-container .visible-sm-inline-block{display:inline-block!important}}@media (min-width: 992px) and (max-width: 1199px){.egg-container .visible-md{display:block!important}table.egg-container .visible-md{display:table}tr.egg-container .visible-md{display:table-row!important}th.egg-container .visible-md,td.egg-container .visible-md{display:table-cell!important}.egg-container .visible-md-block{display:block!important}.egg-container .visible-md-inline{display:inline!important}.egg-container .visible-md-inline-block{display:inline-block!important}}@media (min-width: 1200px){.egg-container .visible-lg{display:block!important}table.egg-container .visible-lg{display:table}tr.egg-container .visible-lg{display:table-row!important}th.egg-container .visible-lg,td.egg-container .visible-lg{display:table-cell!important}}@media (min-width: 1200px){.egg-container .visible-lg-block{display:block!important}}@media (min-width: 1200px){.egg-container .visible-lg-inline{display:inline!important}}@media (min-width: 1200px){.egg-container .visible-lg-inline-block{display:inline-block!important}}@media (max-width: 767px){.egg-container .hidden-xs{display:none!important}}@media (min-width: 768px) and (max-width: 991px){.egg-container .hidden-sm{display:none!important}}@media (min-width: 992px) and (max-width: 1199px){.egg-container .hidden-md{display:none!important}}@media (min-width: 1200px){.egg-container .hidden-lg{display:none!important}}.egg-container .visible-print{display:none!important}@media print{.egg-container .visible-print{display:block!important}table.egg-container .visible-print{display:table}tr.egg-container .visible-print{display:table-row!important}th.egg-container .visible-print,td.egg-container .visible-print{display:table-cell!important}}.egg-container .visible-print-block{display:none!important}@media print{.egg-container .visible-print-block{display:block!important}}.egg-container .visible-print-inline{display:none!important}@media print{.egg-container .visible-print-inline{display:inline!important}}.egg-container .visible-print-inline-block{display:none!important}@media print{.egg-container .visible-print-inline-block{display:inline-block!important}}@media print{.egg-container .hidden-print{display:none!important}}
|
1 |
/*!
|
2 |
* Modified version of Bootstrap CSS
|
3 |
* @author keywordrush.com <support@keywordrush.com>
|
4 |
+
* @link https://www.keywordrush.com
|
5 |
+
* @copyright Copyright © 2021 keywordrush.com
|
6 |
*
|
7 |
* Original work Copyright
|
8 |
* Bootstrap v3.3.4 (http://getbootstrap.com)
|
9 |
* Copyright 2011-2015 Twitter, Inc.
|
10 |
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
11 |
+
*/.egg-container{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}.egg-container{margin:0}.egg-container input[disabled],.egg-container input[type=button]{cursor:default}.egg-container .img-responsive,.egg-container .thumbnail a>img,.egg-container .thumbnail>img{display:block;max-width:100%;height:auto}.egg-container{/*! normalize.css v3.0.2 | MIT License | git.io/normalize *//*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */}.egg-container html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}.egg-container body{margin:0}.egg-container article,.egg-container aside,.egg-container details,.egg-container figcaption,.egg-container figure,.egg-container footer,.egg-container header,.egg-container hgroup,.egg-container main,.egg-container menu,.egg-container nav,.egg-container section,.egg-container summary{display:block}.egg-container audio,.egg-container canvas,.egg-container progress,.egg-container video{display:inline-block;vertical-align:baseline}.egg-container audio:not([controls]){display:none;height:0}.egg-container [hidden],.egg-container template{display:none}.egg-container a{background-color:transparent}.egg-container a:active,.egg-container a:hover{outline:0}.egg-container abbr[title]{border-bottom:1px dotted}.egg-container b,.egg-container strong{font-weight:700}.egg-container dfn{font-style:italic}.egg-container h1{margin:.67em 0;font-size:2em}.egg-container mark{color:#000;background:#ff0}.egg-container small{font-size:80%}.egg-container sub,.egg-container sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.egg-container sup{top:-.5em}.egg-container sub{bottom:-.25em}.egg-container img{border:0}.egg-container svg:not(:root){overflow:hidden}.egg-container figure{margin:1em 40px}.egg-container hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.egg-container pre{overflow:auto}.egg-container code,.egg-container kbd,.egg-container pre,.egg-container samp{font-size:1em}.egg-container button,.egg-container input,.egg-container optgroup,.egg-container select,.egg-container textarea{margin:0;font:inherit;color:inherit}.egg-container button{overflow:visible}.egg-container button,.egg-container select{text-transform:none}.egg-container button,.egg-container html input[type=button],.egg-container input[type=reset],.egg-container input[type=submit]{-webkit-appearance:button;cursor:pointer}.egg-container button[disabled],.egg-container html input[disabled]{cursor:default}.egg-container button::-moz-focus-inner,.egg-container input::-moz-focus-inner{padding:0;border:0}.egg-container input{line-height:normal}.egg-container input[type=checkbox],.egg-container input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}.egg-container input[type=number]::-webkit-inner-spin-button,.egg-container input[type=number]::-webkit-outer-spin-button{height:auto}.egg-container input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}.egg-container input[type=search]::-webkit-search-cancel-button,.egg-container input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.egg-container fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}.egg-container legend{padding:0;border:0}.egg-container textarea{overflow:auto}.egg-container optgroup{font-weight:700}.egg-container table{border-spacing:0;border-collapse:collapse}.egg-container td,.egg-container th{padding:0}@media print{.egg-container *,.egg-container :after,.egg-container :before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}.egg-container a,.egg-container a:visited{text-decoration:underline}.egg-container a[href]:after{content:" (" attr(href) ")"}.egg-container abbr[title]:after{content:" (" attr(title) ")"}.egg-container a[href^="#"]:after,.egg-container a[href^="javascript:"]:after{content:""}.egg-container blockquote,.egg-container pre{border:1px solid #999;page-break-inside:avoid}.egg-container thead{display:table-header-group}.egg-container img,.egg-container tr{page-break-inside:avoid}.egg-container img{max-width:100%!important}.egg-container h2,.egg-container h3,.egg-container p{orphans:3;widows:3}.egg-container h2,.egg-container h3{page-break-after:avoid}.egg-container select{background:#fff!important}.egg-container .navbar{display:none}.egg-container .btn>.caret,.egg-container .dropup>.btn>.caret{border-top-color:#000!important}.egg-container .label{border:1px solid #000}.egg-container .table{border-collapse:collapse!important}.egg-container .table td,.egg-container .table th{background-color:#fff!important}.egg-container .table-bordered td,.egg-container .table-bordered th{border:1px solid #ddd!important}}.egg-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.egg-container :after,.egg-container :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.egg-container button,.egg-container input,.egg-container select,.egg-container textarea{font-family:inherit;font-size:inherit;line-height:inherit}.egg-container a{text-decoration:none}.egg-container a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.egg-container figure{margin:0}.egg-container img{vertical-align:middle}.egg-container .img-responsive{display:block;max-width:100%;height:auto}.egg-container .img-rounded{border-radius:6px}.egg-container .img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.egg-container .img-circle{border-radius:50%}.egg-container hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.egg-container .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.egg-container .sr-only-focusable:active,.egg-container .sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.egg-container [role=button]{cursor:pointer}.egg-container .h1,.egg-container .h2,.egg-container .h3,.egg-container .h4,.egg-container .h5,.egg-container .h6,.egg-container h1,.egg-container h2,.egg-container h3,.egg-container h4,.egg-container h5,.egg-container h6{color:inherit}.egg-container .h1 .small,.egg-container .h1 small,.egg-container .h2 .small,.egg-container .h2 small,.egg-container .h3 .small,.egg-container .h3 small,.egg-container .h4 .small,.egg-container .h4 small,.egg-container .h5 .small,.egg-container .h5 small,.egg-container .h6 .small,.egg-container .h6 small,.egg-container h1 .small,.egg-container h1 small,.egg-container h2 .small,.egg-container h2 small,.egg-container h3 .small,.egg-container h3 small,.egg-container h4 .small,.egg-container h4 small,.egg-container h5 .small,.egg-container h5 small,.egg-container h6 .small,.egg-container h6 small{font-weight:400;line-height:1;color:#777}.egg-container .h1 .small,.egg-container .h1 small,.egg-container .h2 .small,.egg-container .h2 small,.egg-container .h3 .small,.egg-container .h3 small,.egg-container h1 .small,.egg-container h1 small,.egg-container h2 .small,.egg-container h2 small,.egg-container h3 .small,.egg-container h3 small{font-size:65%}.egg-container .h4,.egg-container .h5,.egg-container .h6,.egg-container h4,.egg-container h5,.egg-container h6{margin-top:10px;margin-bottom:10px}.egg-container .h4 .small,.egg-container .h4 small,.egg-container .h5 .small,.egg-container .h5 small,.egg-container .h6 .small,.egg-container .h6 small,.egg-container h4 .small,.egg-container h4 small,.egg-container h5 .small,.egg-container h5 small,.egg-container h6 .small,.egg-container h6 small{font-size:75%}.egg-container .h1,.egg-container h1{font-size:36px}.egg-container .h2,.egg-container h2{font-size:27px}.egg-container .h3,.egg-container h3{font-size:23px}.egg-container .h4,.egg-container h4{font-size:18px}.egg-container .h5,.egg-container h5{font-size:14px}.egg-container .h6,.egg-container h6{font-size:12px}.egg-container p{margin:0 0 18px}.egg-container .lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.egg-container .lead{font-size:21px}}.egg-container .small,.egg-container small{font-size:85%}.egg-container .mark,.egg-container mark{padding:.2em;background-color:#fcf8e3}.egg-container .text-left{text-align:left}.egg-container .text-right{text-align:right}.egg-container .text-center{text-align:center}.egg-container .text-justify{text-align:justify}.egg-container .text-nowrap{white-space:nowrap}.egg-container .text-lowercase{text-transform:lowercase}.egg-container .text-uppercase{text-transform:uppercase}.egg-container .text-capitalize{text-transform:capitalize}.egg-container .text-muted{color:#777}.egg-container .text-primary{color:#337ab7}a.egg-container .text-primary:hover{color:#286090}.egg-container .text-success{color:#3c763d}a.egg-container .text-success:hover{color:#2b542c}.egg-container .text-info{color:#31708f}a.egg-container .text-info:hover{color:#245269}.egg-container .text-warning{color:#8a6d3b}a.egg-container .text-warning:hover{color:#66512c}.egg-container .text-danger{color:#a94442}a.egg-container .text-danger:hover{color:#843534}.egg-container .bg-primary{color:#fff;background-color:#337ab7}a.egg-container .bg-primary:hover{background-color:#286090}.egg-container .bg-success{background-color:#dff0d8}a.egg-container .bg-success:hover{background-color:#c1e2b3}.egg-container .bg-info{background-color:#d9edf7}a.egg-container .bg-info:hover{background-color:#afd9ee}.egg-container .bg-warning{background-color:#fcf8e3}a.egg-container .bg-warning:hover{background-color:#f7ecb5}.egg-container .bg-danger{background-color:#f2dede}a.egg-container .bg-danger:hover{background-color:#e4b9b9}.egg-container .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.egg-container ol,.egg-container ul{margin-top:0;margin-bottom:10px}.egg-container ol ol,.egg-container ol ul,.egg-container ul ol,.egg-container ul ul{margin-bottom:0}.egg-container .list-unstyled{padding-left:0;list-style:none}.egg-container .list-inline{padding-left:0;margin-left:-5px;list-style:none}.egg-container .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.egg-container dl{margin-top:0;margin-bottom:20px}.egg-container dd,.egg-container dt{line-height:1.42857143}.egg-container dt{font-weight:700}.egg-container dd{margin-left:0}@media (min-width:768px){.egg-container .dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.egg-container .dl-horizontal dd{margin-left:180px}}.egg-container abbr[data-original-title],.egg-container abbr[title]{cursor:help;border-bottom:1px dotted #777}.egg-container .initialism{font-size:90%;text-transform:uppercase}.egg-container address{margin-bottom:20px;font-style:normal;line-height:1.42857143}.egg-container code,.egg-container kbd,.egg-container pre,.egg-container samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.egg-container code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}.egg-container kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}.egg-container kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}.egg-container pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.egg-container pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.egg-container .pre-scrollable{max-height:340px;overflow-y:scroll}.egg-container .container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.egg-container .container{width:750px}}@media (min-width:992px){.egg-container .container{width:970px}}@media (min-width:1200px){.egg-container .container{width:1170px}}.egg-container .container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.egg-container .row{margin-right:-15px;margin-left:-15px;margin-bottom:30px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.egg-container .col-xs-1{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.egg-container .col-xs-1{float:left}.egg-container .col-xs-12{width:100%}.egg-container .col-xs-11{width:91.66666667%}.egg-container .col-xs-10{width:83.33333333%}.egg-container .col-xs-9{width:75%}.egg-container .col-xs-8{width:66.66666667%}.egg-container .col-xs-7{width:58.33333333%}.egg-container .col-xs-6{width:50%}.egg-container .col-xs-5{width:41.66666667%}.egg-container .col-xs-4{width:33.33333333%}.egg-container .col-xs-3{width:25%}.egg-container .col-xs-2{width:16.66666667%}.egg-container .col-xs-1{width:8.33333333%}.egg-container .col-xs-pull-12{right:100%}.egg-container .col-xs-pull-11{right:91.66666667%}.egg-container .col-xs-pull-10{right:83.33333333%}.egg-container .col-xs-pull-9{right:75%}.egg-container .col-xs-pull-8{right:66.66666667%}.egg-container .col-xs-pull-7{right:58.33333333%}.egg-container .col-xs-pull-6{right:50%}.egg-container .col-xs-pull-5{right:41.66666667%}.egg-container .col-xs-pull-4{right:33.33333333%}.egg-container .col-xs-pull-3{right:25%}.egg-container .col-xs-pull-2{right:16.66666667%}.egg-container .col-xs-pull-1{right:8.33333333%}.egg-container .col-xs-pull-0{right:auto}.egg-container .col-xs-push-12{left:100%}.egg-container .col-xs-push-11{left:91.66666667%}.egg-container .col-xs-push-10{left:83.33333333%}.egg-container .col-xs-push-9{left:75%}.egg-container .col-xs-push-8{left:66.66666667%}.egg-container .col-xs-push-7{left:58.33333333%}.egg-container .col-xs-push-6{left:50%}.egg-container .col-xs-push-5{left:41.66666667%}.egg-container .col-xs-push-4{left:33.33333333%}.egg-container .col-xs-push-3{left:25%}.egg-container .col-xs-push-2{left:16.66666667%}.egg-container .col-xs-push-1{left:8.33333333%}.egg-container .col-xs-push-0{left:auto}.egg-container .col-xs-offset-12{margin-left:100%}.egg-container .col-xs-offset-11{margin-left:91.66666667%}.egg-container .col-xs-offset-10{margin-left:83.33333333%}.egg-container .col-xs-offset-9{margin-left:75%}.egg-container .col-xs-offset-8{margin-left:66.66666667%}.egg-container .col-xs-offset-7{margin-left:58.33333333%}.egg-container .col-xs-offset-6{margin-left:50%}.egg-container .col-xs-offset-5{margin-left:41.66666667%}.egg-container .col-xs-offset-4{margin-left:33.33333333%}.egg-container .col-xs-offset-3{margin-left:25%}.egg-container .col-xs-offset-2{margin-left:16.66666667%}.egg-container .col-xs-offset-1{margin-left:8.33333333%}.egg-container .col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.egg-container .col-sm-1{float:left}.egg-container .col-sm-12{width:100%}.egg-container .col-sm-11{width:91.66666667%}.egg-container .col-sm-10{width:83.33333333%}.egg-container .col-sm-9{width:75%}.egg-container .col-sm-8{width:66.66666667%}.egg-container .col-sm-7{width:58.33333333%}.egg-container .col-sm-6{width:50%}.egg-container .col-sm-5{width:41.66666667%}.egg-container .col-sm-4{width:33.33333333%}.egg-container .col-sm-3{width:25%}.egg-container .col-sm-2{width:16.66666667%}.egg-container .col-sm-1{width:8.33333333%}.egg-container .col-sm-pull-12{right:100%}.egg-container .col-sm-pull-11{right:91.66666667%}.egg-container .col-sm-pull-10{right:83.33333333%}.egg-container .col-sm-pull-9{right:75%}.egg-container .col-sm-pull-8{right:66.66666667%}.egg-container .col-sm-pull-7{right:58.33333333%}.egg-container .col-sm-pull-6{right:50%}.egg-container .col-sm-pull-5{right:41.66666667%}.egg-container .col-sm-pull-4{right:33.33333333%}.egg-container .col-sm-pull-3{right:25%}.egg-container .col-sm-pull-2{right:16.66666667%}.egg-container .col-sm-pull-1{right:8.33333333%}.egg-container .col-sm-pull-0{right:auto}.egg-container .col-sm-push-12{left:100%}.egg-container .col-sm-push-11{left:91.66666667%}.egg-container .col-sm-push-10{left:83.33333333%}.egg-container .col-sm-push-9{left:75%}.egg-container .col-sm-push-8{left:66.66666667%}.egg-container .col-sm-push-7{left:58.33333333%}.egg-container .col-sm-push-6{left:50%}.egg-container .col-sm-push-5{left:41.66666667%}.egg-container .col-sm-push-4{left:33.33333333%}.egg-container .col-sm-push-3{left:25%}.egg-container .col-sm-push-2{left:16.66666667%}.egg-container .col-sm-push-1{left:8.33333333%}.egg-container .col-sm-push-0{left:auto}.egg-container .col-sm-offset-12{margin-left:100%}.egg-container .col-sm-offset-11{margin-left:91.66666667%}.egg-container .col-sm-offset-10{margin-left:83.33333333%}.egg-container .col-sm-offset-9{margin-left:75%}.egg-container .col-sm-offset-8{margin-left:66.66666667%}.egg-container .col-sm-offset-7{margin-left:58.33333333%}.egg-container .col-sm-offset-6{margin-left:50%}.egg-container .col-sm-offset-5{margin-left:41.66666667%}.egg-container .col-sm-offset-4{margin-left:33.33333333%}.egg-container .col-sm-offset-3{margin-left:25%}.egg-container .col-sm-offset-2{margin-left:16.66666667%}.egg-container .col-sm-offset-1{margin-left:8.33333333%}.egg-container .col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.egg-container .col-md-1{float:left}.egg-container .col-md-12{width:100%}.egg-container .col-md-11{width:91.66666667%}.egg-container .col-md-10{width:83.33333333%}.egg-container .col-md-9{width:75%}.egg-container .col-md-8{width:66.66666667%}.egg-container .col-md-7{width:58.33333333%}.egg-container .col-md-6{width:50%}.egg-container .col-md-5{width:41.66666667%}.egg-container .col-md-4{width:33.33333333%}.egg-container .col-md-3{width:25%}.egg-container .col-md-2{width:16.66666667%}.egg-container .col-md-1{width:8.33333333%}.egg-container .col-md-pull-12{right:100%}.egg-container .col-md-pull-11{right:91.66666667%}.egg-container .col-md-pull-10{right:83.33333333%}.egg-container .col-md-pull-9{right:75%}.egg-container .col-md-pull-8{right:66.66666667%}.egg-container .col-md-pull-7{right:58.33333333%}.egg-container .col-md-pull-6{right:50%}.egg-container .col-md-pull-5{right:41.66666667%}.egg-container .col-md-pull-4{right:33.33333333%}.egg-container .col-md-pull-3{right:25%}.egg-container .col-md-pull-2{right:16.66666667%}.egg-container .col-md-pull-1{right:8.33333333%}.egg-container .col-md-pull-0{right:auto}.egg-container .col-md-push-12{left:100%}.egg-container .col-md-push-11{left:91.66666667%}.egg-container .col-md-push-10{left:83.33333333%}.egg-container .col-md-push-9{left:75%}.egg-container .col-md-push-8{left:66.66666667%}.egg-container .col-md-push-7{left:58.33333333%}.egg-container .col-md-push-6{left:50%}.egg-container .col-md-push-5{left:41.66666667%}.egg-container .col-md-push-4{left:33.33333333%}.egg-container .col-md-push-3{left:25%}.egg-container .col-md-push-2{left:16.66666667%}.egg-container .col-md-push-1{left:8.33333333%}.egg-container .col-md-push-0{left:auto}.egg-container .col-md-offset-12{margin-left:100%}.egg-container .col-md-offset-11{margin-left:91.66666667%}.egg-container .col-md-offset-10{margin-left:83.33333333%}.egg-container .col-md-offset-9{margin-left:75%}.egg-container .col-md-offset-8{margin-left:66.66666667%}.egg-container .col-md-offset-7{margin-left:58.33333333%}.egg-container .col-md-offset-6{margin-left:50%}.egg-container .col-md-offset-5{margin-left:41.66666667%}.egg-container .col-md-offset-4{margin-left:33.33333333%}.egg-container .col-md-offset-3{margin-left:25%}.egg-container .col-md-offset-2{margin-left:16.66666667%}.egg-container .col-md-offset-1{margin-left:8.33333333%}.egg-container .col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.egg-container .col-lg-1{float:left}.egg-container .col-lg-12{width:100%}.egg-container .col-lg-11{width:91.66666667%}.egg-container .col-lg-10{width:83.33333333%}.egg-container .col-lg-9{width:75%}.egg-container .col-lg-8{width:66.66666667%}.egg-container .col-lg-7{width:58.33333333%}.egg-container .col-lg-6{width:50%}.egg-container .col-lg-5{width:41.66666667%}.egg-container .col-lg-4{width:33.33333333%}.egg-container .col-lg-3{width:25%}.egg-container .col-lg-2{width:16.66666667%}.egg-container .col-lg-1{width:8.33333333%}.egg-container .col-lg-pull-12{right:100%}.egg-container .col-lg-pull-11{right:91.66666667%}.egg-container .col-lg-pull-10{right:83.33333333%}.egg-container .col-lg-pull-9{right:75%}.egg-container .col-lg-pull-8{right:66.66666667%}.egg-container .col-lg-pull-7{right:58.33333333%}.egg-container .col-lg-pull-6{right:50%}.egg-container .col-lg-pull-5{right:41.66666667%}.egg-container .col-lg-pull-4{right:33.33333333%}.egg-container .col-lg-pull-3{right:25%}.egg-container .col-lg-pull-2{right:16.66666667%}.egg-container .col-lg-pull-1{right:8.33333333%}.egg-container .col-lg-pull-0{right:auto}.egg-container .col-lg-push-12{left:100%}.egg-container .col-lg-push-11{left:91.66666667%}.egg-container .col-lg-push-10{left:83.33333333%}.egg-container .col-lg-push-9{left:75%}.egg-container .col-lg-push-8{left:66.66666667%}.egg-container .col-lg-push-7{left:58.33333333%}.egg-container .col-lg-push-6{left:50%}.egg-container .col-lg-push-5{left:41.66666667%}.egg-container .col-lg-push-4{left:33.33333333%}.egg-container .col-lg-push-3{left:25%}.egg-container .col-lg-push-2{left:16.66666667%}.egg-container .col-lg-push-1{left:8.33333333%}.egg-container .col-lg-push-0{left:auto}.egg-container .col-lg-offset-12{margin-left:100%}.egg-container .col-lg-offset-11{margin-left:91.66666667%}.egg-container .col-lg-offset-10{margin-left:83.33333333%}.egg-container .col-lg-offset-9{margin-left:75%}.egg-container .col-lg-offset-8{margin-left:66.66666667%}.egg-container .col-lg-offset-7{margin-left:58.33333333%}.egg-container .col-lg-offset-6{margin-left:50%}.egg-container .col-lg-offset-5{margin-left:41.66666667%}.egg-container .col-lg-offset-4{margin-left:33.33333333%}.egg-container .col-lg-offset-3{margin-left:25%}.egg-container .col-lg-offset-2{margin-left:16.66666667%}.egg-container .col-lg-offset-1{margin-left:8.33333333%}.egg-container .col-lg-offset-0{margin-left:0}}.egg-container table{background-color:transparent}.egg-container caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}.egg-container th{text-align:left}.egg-container .table{width:100%;max-width:100%;margin-bottom:20px}.egg-container .table>tbody>tr>td,.egg-container .table>tbody>tr>th,.egg-container .table>tfoot>tr>td,.egg-container .table>tfoot>tr>th,.egg-container .table>thead>tr>td,.egg-container .table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.egg-container .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.egg-container .table>caption+thead>tr:first-child>td,.egg-container .table>caption+thead>tr:first-child>th,.egg-container .table>colgroup+thead>tr:first-child>td,.egg-container .table>colgroup+thead>tr:first-child>th,.egg-container .table>thead:first-child>tr:first-child>td,.egg-container .table>thead:first-child>tr:first-child>th{border-top:0}.egg-container .table>tbody+tbody{border-top:2px solid #ddd}.egg-container .table .table{background-color:#fff}.egg-container .table-condensed>tbody>tr>td,.egg-container .table-condensed>tbody>tr>th,.egg-container .table-condensed>tfoot>tr>td,.egg-container .table-condensed>tfoot>tr>th,.egg-container .table-condensed>thead>tr>td,.egg-container .table-condensed>thead>tr>th{padding:5px}.egg-container .table-bordered{border:1px solid #ddd}.egg-container .table-bordered>tbody>tr>td,.egg-container .table-bordered>tbody>tr>th,.egg-container .table-bordered>tfoot>tr>td,.egg-container .table-bordered>tfoot>tr>th,.egg-container .table-bordered>thead>tr>td,.egg-container .table-bordered>thead>tr>th{border:1px solid #ddd}.egg-container .table-bordered>thead>tr>td,.egg-container .table-bordered>thead>tr>th{border-bottom-width:2px}.egg-container .table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.egg-container .table-hover>tbody>tr:hover{background-color:#f5f5f5}.egg-container table col[class*=col-]{position:static;display:table-column;float:none}.egg-container table td[class*=col-],.egg-container table th[class*=col-]{position:static;display:table-cell;float:none}.egg-container .table>tbody>tr.active>td,.egg-container .table>tbody>tr.active>th,.egg-container .table>tbody>tr>td.active,.egg-container .table>tbody>tr>th.active,.egg-container .table>tfoot>tr.active>td,.egg-container .table>tfoot>tr.active>th,.egg-container .table>tfoot>tr>td.active,.egg-container .table>tfoot>tr>th.active,.egg-container .table>thead>tr.active>td,.egg-container .table>thead>tr.active>th,.egg-container .table>thead>tr>td.active,.egg-container .table>thead>tr>th.active{background-color:#f5f5f5}.egg-container .table-hover>tbody>tr.active:hover>td,.egg-container .table-hover>tbody>tr.active:hover>th,.egg-container .table-hover>tbody>tr:hover>.active,.egg-container .table-hover>tbody>tr>td.active:hover,.egg-container .table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.egg-container .table>tbody>tr.success>td,.egg-container .table>tbody>tr.success>th,.egg-container .table>tbody>tr>td.success,.egg-container .table>tbody>tr>th.success,.egg-container .table>tfoot>tr.success>td,.egg-container .table>tfoot>tr.success>th,.egg-container .table>tfoot>tr>td.success,.egg-container .table>tfoot>tr>th.success,.egg-container .table>thead>tr.success>td,.egg-container .table>thead>tr.success>th,.egg-container .table>thead>tr>td.success,.egg-container .table>thead>tr>th.success{background-color:#dff0d8}.egg-container .table-hover>tbody>tr.success:hover>td,.egg-container .table-hover>tbody>tr.success:hover>th,.egg-container .table-hover>tbody>tr:hover>.success,.egg-container .table-hover>tbody>tr>td.success:hover,.egg-container .table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.egg-container .table>tbody>tr.info>td,.egg-container .table>tbody>tr.info>th,.egg-container .table>tbody>tr>td.info,.egg-container .table>tbody>tr>th.info,.egg-container .table>tfoot>tr.info>td,.egg-container .table>tfoot>tr.info>th,.egg-container .table>tfoot>tr>td.info,.egg-container .table>tfoot>tr>th.info,.egg-container .table>thead>tr.info>td,.egg-container .table>thead>tr.info>th,.egg-container .table>thead>tr>td.info,.egg-container .table>thead>tr>th.info{background-color:#d9edf7}.egg-container .table-hover>tbody>tr.info:hover>td,.egg-container .table-hover>tbody>tr.info:hover>th,.egg-container .table-hover>tbody>tr:hover>.info,.egg-container .table-hover>tbody>tr>td.info:hover,.egg-container .table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.egg-container .table>tbody>tr.warning>td,.egg-container .table>tbody>tr.warning>th,.egg-container .table>tbody>tr>td.warning,.egg-container .table>tbody>tr>th.warning,.egg-container .table>tfoot>tr.warning>td,.egg-container .table>tfoot>tr.warning>th,.egg-container .table>tfoot>tr>td.warning,.egg-container .table>tfoot>tr>th.warning,.egg-container .table>thead>tr.warning>td,.egg-container .table>thead>tr.warning>th,.egg-container .table>thead>tr>td.warning,.egg-container .table>thead>tr>th.warning{background-color:#fcf8e3}.egg-container .table-hover>tbody>tr.warning:hover>td,.egg-container .table-hover>tbody>tr.warning:hover>th,.egg-container .table-hover>tbody>tr:hover>.warning,.egg-container .table-hover>tbody>tr>td.warning:hover,.egg-container .table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.egg-container .table>tbody>tr.danger>td,.egg-container .table>tbody>tr.danger>th,.egg-container .table>tbody>tr>td.danger,.egg-container .table>tbody>tr>th.danger,.egg-container .table>tfoot>tr.danger>td,.egg-container .table>tfoot>tr.danger>th,.egg-container .table>tfoot>tr>td.danger,.egg-container .table>tfoot>tr>th.danger,.egg-container .table>thead>tr.danger>td,.egg-container .table>thead>tr.danger>th,.egg-container .table>thead>tr>td.danger,.egg-container .table>thead>tr>th.danger{background-color:#f2dede}.egg-container .table-hover>tbody>tr.danger:hover>td,.egg-container .table-hover>tbody>tr.danger:hover>th,.egg-container .table-hover>tbody>tr:hover>.danger,.egg-container .table-hover>tbody>tr>td.danger:hover,.egg-container .table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.egg-container .table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.egg-container .table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.egg-container .table-responsive>.table{margin-bottom:0}.egg-container .table-responsive>.table>tbody>tr>td,.egg-container .table-responsive>.table>tbody>tr>th,.egg-container .table-responsive>.table>tfoot>tr>td,.egg-container .table-responsive>.table>tfoot>tr>th,.egg-container .table-responsive>.table>thead>tr>td,.egg-container .table-responsive>.table>thead>tr>th{white-space:nowrap}.egg-container .table-responsive>.table-bordered{border:0}.egg-container .table-responsive>.table-bordered>tbody>tr>td:first-child,.egg-container .table-responsive>.table-bordered>tbody>tr>th:first-child,.egg-container .table-responsive>.table-bordered>tfoot>tr>td:first-child,.egg-container .table-responsive>.table-bordered>tfoot>tr>th:first-child,.egg-container .table-responsive>.table-bordered>thead>tr>td:first-child,.egg-container .table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.egg-container .table-responsive>.table-bordered>tbody>tr>td:last-child,.egg-container .table-responsive>.table-bordered>tbody>tr>th:last-child,.egg-container .table-responsive>.table-bordered>tfoot>tr>td:last-child,.egg-container .table-responsive>.table-bordered>tfoot>tr>th:last-child,.egg-container .table-responsive>.table-bordered>thead>tr>td:last-child,.egg-container .table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.egg-container .table-responsive>.table-bordered>tbody>tr:last-child>td,.egg-container .table-responsive>.table-bordered>tbody>tr:last-child>th,.egg-container .table-responsive>.table-bordered>tfoot>tr:last-child>td,.egg-container .table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}.egg-container fieldset{min-width:0;padding:0;margin:0;border:0}.egg-container legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}.egg-container label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}.egg-container input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.egg-container input[type=checkbox],.egg-container input[type=radio]{margin:4px 0 0;line-height:normal}.egg-container input[type=file]{display:block}.egg-container input[type=range]{display:block;width:100%}.egg-container select[multiple],.egg-container select[size]{height:auto}.egg-container input[type=checkbox]:focus,.egg-container input[type=file]:focus,.egg-container input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.egg-container output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.egg-container .form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.egg-container .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.egg-container .form-control::-moz-placeholder{color:#999;opacity:1}.egg-container .form-control:-ms-input-placeholder{color:#999}.egg-container .form-control::-webkit-input-placeholder{color:#999}.egg-container .form-control[disabled],.egg-container .form-control[readonly],fieldset[disabled] .egg-container .form-control{background-color:#eee;opacity:1}.egg-container .form-control[disabled],fieldset[disabled] .egg-container .form-control{cursor:not-allowed}textarea.egg-container .form-control{height:auto}.egg-container input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){.egg-container input[type=date],.egg-container input[type=datetime-local],.egg-container input[type=month],.egg-container input[type=time]{line-height:34px}.egg-container input[type=date].input-sm,.egg-container input[type=datetime-local].input-sm,.egg-container input[type=month].input-sm,.egg-container input[type=time].input-sm,.input-group-sm .egg-container input[type=date],.input-group-sm .egg-container input[type=datetime-local],.input-group-sm .egg-container input[type=month],.input-group-sm .egg-container input[type=time]{line-height:30px}.egg-container input[type=date].input-lg,.egg-container input[type=datetime-local].input-lg,.egg-container input[type=month].input-lg,.egg-container input[type=time].input-lg,.input-group-lg .egg-container input[type=date],.input-group-lg .egg-container input[type=datetime-local],.input-group-lg .egg-container input[type=month],.input-group-lg .egg-container input[type=time]{line-height:46px}}.egg-container .form-group{margin-bottom:15px}.egg-container .checkbox,.egg-container .radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.egg-container .checkbox label,.egg-container .radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.egg-container .checkbox input[type=checkbox],.egg-container .checkbox-inline input[type=checkbox],.egg-container .radio input[type=radio],.egg-container .radio-inline input[type=radio]{position:absolute;margin-left:-20px}.egg-container .checkbox+.checkbox,.egg-container .radio+.radio{margin-top:-5px}.egg-container .checkbox-inline,.egg-container .radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.egg-container .checkbox-inline+.checkbox-inline,.egg-container .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.egg-container input[type=checkbox].disabled,.egg-container input[type=checkbox][disabled],.egg-container input[type=radio].disabled,.egg-container input[type=radio][disabled],fieldset[disabled] .egg-container input[type=checkbox],fieldset[disabled] .egg-container input[type=radio]{cursor:not-allowed}.egg-container .checkbox-inline.disabled,.egg-container .radio-inline.disabled,fieldset[disabled] .egg-container .checkbox-inline,fieldset[disabled] .egg-container .radio-inline{cursor:not-allowed}.egg-container .checkbox.disabled label,.egg-container .radio.disabled label,fieldset[disabled] .egg-container .checkbox label,fieldset[disabled] .egg-container .radio label{cursor:not-allowed}.egg-container .form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.egg-container .form-control-static.input-lg,.egg-container .form-control-static.input-sm{padding-right:0;padding-left:0}.egg-container .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.egg-container .input-sm{height:30px;line-height:30px}select[multiple].egg-container .input-sm,textarea.egg-container .input-sm{height:auto}.egg-container .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.egg-container .form-group-sm .form-control{height:30px;line-height:30px}select[multiple].egg-container .form-group-sm .form-control,textarea.egg-container .form-group-sm .form-control{height:auto}.egg-container .form-group-sm .form-control-static{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.egg-container .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.egg-container .input-lg{height:46px;line-height:46px}select[multiple].egg-container .input-lg,textarea.egg-container .input-lg{height:auto}.egg-container .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.egg-container .form-group-lg .form-control{height:46px;line-height:46px}select[multiple].egg-container .form-group-lg .form-control,textarea.egg-container .form-group-lg .form-control{height:auto}.egg-container .form-group-lg .form-control-static{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.egg-container .has-feedback{position:relative}.egg-container .has-feedback .form-control{padding-right:42.5px}.egg-container .form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.egg-container .input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.egg-container .input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.egg-container .has-success .checkbox,.egg-container .has-success .checkbox-inline,.egg-container .has-success .control-label,.egg-container .has-success .help-block,.egg-container .has-success .radio,.egg-container .has-success .radio-inline,.egg-container .has-success.checkbox label,.egg-container .has-success.checkbox-inline label,.egg-container .has-success.radio label,.egg-container .has-success.radio-inline label{color:#3c763d}.egg-container .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.egg-container .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.egg-container .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.egg-container .has-success .form-control-feedback{color:#3c763d}.egg-container .has-warning .checkbox,.egg-container .has-warning .checkbox-inline,.egg-container .has-warning .control-label,.egg-container .has-warning .help-block,.egg-container .has-warning .radio,.egg-container .has-warning .radio-inline,.egg-container .has-warning.checkbox label,.egg-container .has-warning.checkbox-inline label,.egg-container .has-warning.radio label,.egg-container .has-warning.radio-inline label{color:#8a6d3b}.egg-container .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.egg-container .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.egg-container .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.egg-container .has-warning .form-control-feedback{color:#8a6d3b}.egg-container .has-error .checkbox,.egg-container .has-error .checkbox-inline,.egg-container .has-error .control-label,.egg-container .has-error .help-block,.egg-container .has-error .radio,.egg-container .has-error .radio-inline,.egg-container .has-error.checkbox label,.egg-container .has-error.checkbox-inline label,.egg-container .has-error.radio label,.egg-container .has-error.radio-inline label{color:#a94442}.egg-container .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.egg-container .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.egg-container .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.egg-container .has-error .form-control-feedback{color:#a94442}.egg-container .has-feedback label~.form-control-feedback{top:25px}.egg-container .has-feedback label.sr-only~.form-control-feedback{top:0}.egg-container .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.egg-container .form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.egg-container .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.egg-container .form-inline .form-control-static{display:inline-block}.egg-container .form-inline .input-group{display:inline-table;vertical-align:middle}.egg-container .form-inline .input-group .form-control,.egg-container .form-inline .input-group .input-group-addon,.egg-container .form-inline .input-group .input-group-btn{width:auto}.egg-container .form-inline .input-group>.form-control{width:100%}.egg-container .form-inline .control-label{margin-bottom:0;vertical-align:middle}.egg-container .form-inline .checkbox,.egg-container .form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.egg-container .form-inline .checkbox label,.egg-container .form-inline .radio label{padding-left:0}.egg-container .form-inline .checkbox input[type=checkbox],.egg-container .form-inline .radio input[type=radio]{position:relative;margin-left:0}.egg-container .form-inline .has-feedback .form-control-feedback{top:0}}.egg-container .form-horizontal .checkbox,.egg-container .form-horizontal .checkbox-inline,.egg-container .form-horizontal .radio,.egg-container .form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.egg-container .form-horizontal .checkbox,.egg-container .form-horizontal .radio{min-height:27px}.egg-container .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.egg-container .form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.egg-container .form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.egg-container .form-horizontal .form-group-lg .control-label{padding-top:14.333333px}}@media (min-width:768px){.egg-container .form-horizontal .form-group-sm .control-label{padding-top:6px}}.egg-container .btn{display:inline-block;padding:7px 14px;margin-bottom:0;font-size:14px;font-weight:700;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.egg-container .btn.active.focus,.egg-container .btn.active:focus,.egg-container .btn.focus,.egg-container .btn:active.focus,.egg-container .btn:active:focus,.egg-container .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.egg-container .btn.focus,.egg-container .btn:focus,.egg-container .btn:hover{color:#333;text-decoration:none}.egg-container .btn.active,.egg-container .btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.egg-container .btn.disabled,.egg-container .btn[disabled],fieldset[disabled] .egg-container .btn{pointer-events:none;cursor:not-allowed;-webkit-box-shadow:none;box-shadow:none;opacity:.65}.egg-container .btn-default{color:#333;background-color:#fff;border-color:#ccc}.egg-container .btn-default.active,.egg-container .btn-default.focus,.egg-container .btn-default:active,.egg-container .btn-default:focus,.egg-container .btn-default:hover,.open>.dropdown-toggle.egg-container .btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.egg-container .btn-default.active,.egg-container .btn-default:active,.open>.dropdown-toggle.egg-container .btn-default{background-image:none}.egg-container .btn-default.disabled,.egg-container .btn-default.disabled.active,.egg-container .btn-default.disabled.focus,.egg-container .btn-default.disabled:active,.egg-container .btn-default.disabled:focus,.egg-container .btn-default.disabled:hover,.egg-container .btn-default[disabled],.egg-container .btn-default[disabled].active,.egg-container .btn-default[disabled].focus,.egg-container .btn-default[disabled]:active,.egg-container .btn-default[disabled]:focus,.egg-container .btn-default[disabled]:hover,fieldset[disabled] .egg-container .btn-default,fieldset[disabled] .egg-container .btn-default.active,fieldset[disabled] .egg-container .btn-default.focus,fieldset[disabled] .egg-container .btn-default:active,fieldset[disabled] .egg-container .btn-default:focus,fieldset[disabled] .egg-container .btn-default:hover{background-color:#fff;border-color:#ccc}.egg-container .btn-default .badge{color:#fff;background-color:#333}.egg-container .btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.egg-container .btn-primary.active,.egg-container .btn-primary.focus,.egg-container .btn-primary:active,.egg-container .btn-primary:focus,.egg-container .btn-primary:hover,.open>.dropdown-toggle.egg-container .btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.egg-container .btn-primary.active,.egg-container .btn-primary:active,.open>.dropdown-toggle.egg-container .btn-primary{background-image:none}.egg-container .btn-primary.disabled,.egg-container .btn-primary.disabled.active,.egg-container .btn-primary.disabled.focus,.egg-container .btn-primary.disabled:active,.egg-container .btn-primary.disabled:focus,.egg-container .btn-primary.disabled:hover,.egg-container .btn-primary[disabled],.egg-container .btn-primary[disabled].active,.egg-container .btn-primary[disabled].focus,.egg-container .btn-primary[disabled]:active,.egg-container .btn-primary[disabled]:focus,.egg-container .btn-primary[disabled]:hover,fieldset[disabled] .egg-container .btn-primary,fieldset[disabled] .egg-container .btn-primary.active,fieldset[disabled] .egg-container .btn-primary.focus,fieldset[disabled] .egg-container .btn-primary:active,fieldset[disabled] .egg-container .btn-primary:focus,fieldset[disabled] .egg-container .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.egg-container .btn-primary .badge{color:#337ab7;background-color:#fff}.egg-container .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c;text-decoration:none!important}.egg-container .btn-success.active,.egg-container .btn-success.focus,.egg-container .btn-success:active,.egg-container .btn-success:focus,.egg-container .btn-success:hover,.open>.dropdown-toggle.egg-container .btn-success{color:#fff;background-color:#449d44;border-color:#398439}.egg-container .btn-success.active,.egg-container .btn-success:active,.open>.dropdown-toggle.egg-container .btn-success{background-image:none}.egg-container .btn-success.disabled,.egg-container .btn-success.disabled.active,.egg-container .btn-success.disabled.focus,.egg-container .btn-success.disabled:active,.egg-container .btn-success.disabled:focus,.egg-container .btn-success.disabled:hover,.egg-container .btn-success[disabled],.egg-container .btn-success[disabled].active,.egg-container .btn-success[disabled].focus,.egg-container .btn-success[disabled]:active,.egg-container .btn-success[disabled]:focus,.egg-container .btn-success[disabled]:hover,fieldset[disabled] .egg-container .btn-success,fieldset[disabled] .egg-container .btn-success.active,fieldset[disabled] .egg-container .btn-success.focus,fieldset[disabled] .egg-container .btn-success:active,fieldset[disabled] .egg-container .btn-success:focus,fieldset[disabled] .egg-container .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.egg-container .btn-success .badge{color:#5cb85c;background-color:#fff}.egg-container .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.egg-container .btn-info.active,.egg-container .btn-info.focus,.egg-container .btn-info:active,.egg-container .btn-info:focus,.egg-container .btn-info:hover,.open>.dropdown-toggle.egg-container .btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.egg-container .btn-info.active,.egg-container .btn-info:active,.open>.dropdown-toggle.egg-container .btn-info{background-image:none}.egg-container .btn-info.disabled,.egg-container .btn-info.disabled.active,.egg-container .btn-info.disabled.focus,.egg-container .btn-info.disabled:active,.egg-container .btn-info.disabled:focus,.egg-container .btn-info.disabled:hover,.egg-container .btn-info[disabled],.egg-container .btn-info[disabled].active,.egg-container .btn-info[disabled].focus,.egg-container .btn-info[disabled]:active,.egg-container .btn-info[disabled]:focus,.egg-container .btn-info[disabled]:hover,fieldset[disabled] .egg-container .btn-info,fieldset[disabled] .egg-container .btn-info.active,fieldset[disabled] .egg-container .btn-info.focus,fieldset[disabled] .egg-container .btn-info:active,fieldset[disabled] .egg-container .btn-info:focus,fieldset[disabled] .egg-container .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.egg-container .btn-info .badge{color:#5bc0de;background-color:#fff}.egg-container .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.egg-container .btn-warning.active,.egg-container .btn-warning.focus,.egg-container .btn-warning:active,.egg-container .btn-warning:focus,.egg-container .btn-warning:hover,.open>.dropdown-toggle.egg-container .btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.egg-container .btn-warning.active,.egg-container .btn-warning:active,.open>.dropdown-toggle.egg-container .btn-warning{background-image:none}.egg-container .btn-warning.disabled,.egg-container .btn-warning.disabled.active,.egg-container .btn-warning.disabled.focus,.egg-container .btn-warning.disabled:active,.egg-container .btn-warning.disabled:focus,.egg-container .btn-warning.disabled:hover,.egg-container .btn-warning[disabled],.egg-container .btn-warning[disabled].active,.egg-container .btn-warning[disabled].focus,.egg-container .btn-warning[disabled]:active,.egg-container .btn-warning[disabled]:focus,.egg-container .btn-warning[disabled]:hover,fieldset[disabled] .egg-container .btn-warning,fieldset[disabled] .egg-container .btn-warning.active,fieldset[disabled] .egg-container .btn-warning.focus,fieldset[disabled] .egg-container .btn-warning:active,fieldset[disabled] .egg-container .btn-warning:focus,fieldset[disabled] .egg-container .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.egg-container .btn-warning .badge{color:#f0ad4e;background-color:#fff}.egg-container .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.egg-container .btn-danger.active,.egg-container .btn-danger.focus,.egg-container .btn-danger:active,.egg-container .btn-danger:focus,.egg-container .btn-danger:hover,.open>.dropdown-toggle.egg-container .btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.egg-container .btn-danger.active,.egg-container .btn-danger:active,.open>.dropdown-toggle.egg-container .btn-danger{background-image:none}.egg-container .btn-danger.disabled,.egg-container .btn-danger.disabled.active,.egg-container .btn-danger.disabled.focus,.egg-container .btn-danger.disabled:active,.egg-container .btn-danger.disabled:focus,.egg-container .btn-danger.disabled:hover,.egg-container .btn-danger[disabled],.egg-container .btn-danger[disabled].active,.egg-container .btn-danger[disabled].focus,.egg-container .btn-danger[disabled]:active,.egg-container .btn-danger[disabled]:focus,.egg-container .btn-danger[disabled]:hover,fieldset[disabled] .egg-container .btn-danger,fieldset[disabled] .egg-container .btn-danger.active,fieldset[disabled] .egg-container .btn-danger.focus,fieldset[disabled] .egg-container .btn-danger:active,fieldset[disabled] .egg-container .btn-danger:focus,fieldset[disabled] .egg-container .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.egg-container .btn-danger .badge{color:#d9534f;background-color:#fff}.egg-container .btn-link{font-weight:400;color:#337ab7;border-radius:0}.egg-container .btn-link,.egg-container .btn-link.active,.egg-container .btn-link:active,.egg-container .btn-link[disabled],fieldset[disabled] .egg-container .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.egg-container .btn-link,.egg-container .btn-link:active,.egg-container .btn-link:focus,.egg-container .btn-link:hover{border-color:transparent}.egg-container .btn-link:focus,.egg-container .btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.egg-container .btn-link[disabled]:focus,.egg-container .btn-link[disabled]:hover,fieldset[disabled] .egg-container .btn-link:focus,fieldset[disabled] .egg-container .btn-link:hover{color:#777;text-decoration:none}.egg-container .btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.egg-container .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.egg-container .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.egg-container .btn-block{display:block;width:100%}.egg-container .btn-block+.btn-block{margin-top:5px}.egg-container input[type=button].btn-block,.egg-container input[type=reset].btn-block,.egg-container input[type=submit].btn-block{width:100%}.egg-container .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.egg-container .fade.in{opacity:1}.egg-container .collapse{display:none}.egg-container .collapse.in{display:block}tr.egg-container .collapse.in{display:table-row}tbody.egg-container .collapse.in{display:table-row-group}.egg-container .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.egg-container .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.egg-container .dropdown,.egg-container .dropup{position:relative}.egg-container .dropdown-toggle:focus{outline:0}.egg-container .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.egg-container .dropdown-menu.pull-right{right:0;left:auto}.egg-container .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.egg-container .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.egg-container .dropdown-menu>li>a:focus,.egg-container .dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.egg-container .dropdown-menu>.active>a,.egg-container .dropdown-menu>.active>a:focus,.egg-container .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.egg-container .dropdown-menu>.disabled>a,.egg-container .dropdown-menu>.disabled>a:focus,.egg-container .dropdown-menu>.disabled>a:hover{color:#777}.egg-container .dropdown-menu>.disabled>a:focus,.egg-container .dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none}.egg-container .open>.dropdown-menu{display:block}.egg-container .open>a{outline:0}.egg-container .dropdown-menu-right{right:0;left:auto}.egg-container .dropdown-menu-left{right:auto;left:0}.egg-container .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.egg-container .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.egg-container .pull-right>.dropdown-menu{right:0;left:auto}.egg-container .dropup .caret,.egg-container .navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.egg-container .dropup .dropdown-menu,.egg-container .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.egg-container .navbar-right .dropdown-menu{right:0;left:auto}.egg-container .navbar-right .dropdown-menu-left{right:auto;left:0}}.egg-container .btn-group,.egg-container .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.egg-container .btn-group-vertical>.btn,.egg-container .btn-group>.btn{position:relative;float:left}.egg-container .btn-group-vertical>.btn.active,.egg-container .btn-group-vertical>.btn:active,.egg-container .btn-group-vertical>.btn:focus,.egg-container .btn-group-vertical>.btn:hover,.egg-container .btn-group>.btn.active,.egg-container .btn-group>.btn:active,.egg-container .btn-group>.btn:focus,.egg-container .btn-group>.btn:hover{z-index:2}.egg-container .btn-group .btn+.btn,.egg-container .btn-group .btn+.btn-group,.egg-container .btn-group .btn-group+.btn,.egg-container .btn-group .btn-group+.btn-group{margin-left:-1px}.egg-container .btn-toolbar{margin-left:-5px}.egg-container .btn-toolbar .btn-group,.egg-container .btn-toolbar .input-group{float:left}.egg-container .btn-toolbar>.btn,.egg-container .btn-toolbar>.btn-group,.egg-container .btn-toolbar>.input-group{margin-left:5px}.egg-container .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.egg-container .btn-group>.btn:first-child{margin-left:0}.egg-container .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.egg-container .btn-group>.btn:last-child:not(:first-child),.egg-container .btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.egg-container .btn-group>.btn-group{float:left}.egg-container .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.egg-container .btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.egg-container .btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.egg-container .btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.egg-container .btn-group .dropdown-toggle:active,.egg-container .btn-group.open .dropdown-toggle{outline:0}.egg-container .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.egg-container .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.egg-container .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.egg-container .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.egg-container .btn .caret{margin-left:0}.egg-container .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.egg-container .dropup .btn-lg .caret{border-width:0 5px 5px}.egg-container .btn-group-vertical>.btn,.egg-container .btn-group-vertical>.btn-group,.egg-container .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.egg-container .btn-group-vertical>.btn-group>.btn{float:none}.egg-container .btn-group-vertical>.btn+.btn,.egg-container .btn-group-vertical>.btn+.btn-group,.egg-container .btn-group-vertical>.btn-group+.btn,.egg-container .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.egg-container .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.egg-container .btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.egg-container .btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.egg-container .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.egg-container .btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.egg-container .btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.egg-container .btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.egg-container .btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.egg-container .btn-group-justified>.btn,.egg-container .btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.egg-container .btn-group-justified>.btn-group .btn{width:100%}.egg-container .btn-group-justified>.btn-group .dropdown-menu{left:auto}.egg-container [data-toggle=buttons]>.btn input[type=checkbox],.egg-container [data-toggle=buttons]>.btn input[type=radio],.egg-container [data-toggle=buttons]>.btn-group>.btn input[type=checkbox],.egg-container [data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.egg-container .input-group{position:relative;display:table;border-collapse:separate}.egg-container .input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.egg-container .input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.egg-container .input-group-lg>.form-control,.egg-container .input-group-lg>.input-group-addon,.egg-container .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.egg-container .input-group-lg>.form-control,select.egg-container .input-group-lg>.input-group-addon,select.egg-container .input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].egg-container .input-group-lg>.form-control,select[multiple].egg-container .input-group-lg>.input-group-addon,select[multiple].egg-container .input-group-lg>.input-group-btn>.btn,textarea.egg-container .input-group-lg>.form-control,textarea.egg-container .input-group-lg>.input-group-addon,textarea.egg-container .input-group-lg>.input-group-btn>.btn{height:auto}.egg-container .input-group-sm>.form-control,.egg-container .input-group-sm>.input-group-addon,.egg-container .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.egg-container .input-group-sm>.form-control,select.egg-container .input-group-sm>.input-group-addon,select.egg-container .input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].egg-container .input-group-sm>.form-control,select[multiple].egg-container .input-group-sm>.input-group-addon,select[multiple].egg-container .input-group-sm>.input-group-btn>.btn,textarea.egg-container .input-group-sm>.form-control,textarea.egg-container .input-group-sm>.input-group-addon,textarea.egg-container .input-group-sm>.input-group-btn>.btn{height:auto}.egg-container .input-group .form-control,.egg-container .input-group-addon,.egg-container .input-group-btn{display:table-cell}.egg-container .input-group .form-control:not(:first-child):not(:last-child),.egg-container .input-group-addon:not(:first-child):not(:last-child),.egg-container .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.egg-container .input-group-addon,.egg-container .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.egg-container .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.egg-container .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.egg-container .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.egg-container .input-group-addon input[type=checkbox],.egg-container .input-group-addon input[type=radio]{margin-top:0}.egg-container .input-group .form-control:first-child,.egg-container .input-group-addon:first-child,.egg-container .input-group-btn:first-child>.btn,.egg-container .input-group-btn:first-child>.btn-group>.btn,.egg-container .input-group-btn:first-child>.dropdown-toggle,.egg-container .input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.egg-container .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.egg-container .input-group-addon:first-child{border-right:0}.egg-container .input-group .form-control:last-child,.egg-container .input-group-addon:last-child,.egg-container .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.egg-container .input-group-btn:first-child>.btn:not(:first-child),.egg-container .input-group-btn:last-child>.btn,.egg-container .input-group-btn:last-child>.btn-group>.btn,.egg-container .input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.egg-container .input-group-addon:last-child{border-left:0}.egg-container .input-group-btn{position:relative;font-size:0;white-space:nowrap}.egg-container .input-group-btn>.btn{position:relative}.egg-container .input-group-btn>.btn+.btn{margin-left:-1px}.egg-container .input-group-btn>.btn:active,.egg-container .input-group-btn>.btn:focus,.egg-container .input-group-btn>.btn:hover{z-index:2}.egg-container .input-group-btn:first-child>.btn,.egg-container .input-group-btn:first-child>.btn-group{margin-right:-1px}.egg-container .input-group-btn:last-child>.btn,.egg-container .input-group-btn:last-child>.btn-group{margin-left:-1px}.egg-container .nav{padding-left:0;margin-bottom:0;list-style:none}.egg-container .nav>li{position:relative;display:block}.egg-container .nav>li>a{position:relative;display:block;padding:10px 15px}.egg-container .nav>li>a:focus,.egg-container .nav>li>a:hover{text-decoration:none;background-color:#eee}.egg-container .nav>li.disabled>a{color:#777}.egg-container .nav>li.disabled>a:focus,.egg-container .nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.egg-container .nav .open>a,.egg-container .nav .open>a:focus,.egg-container .nav .open>a:hover{background-color:#eee;border-color:#337ab7}.egg-container .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.egg-container .nav>li>a>img{max-width:none}.egg-container .nav-tabs{border-bottom:1px solid #ddd}.egg-container .nav-tabs>li{float:left;margin-bottom:-1px}.egg-container .nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.egg-container .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.egg-container .nav-tabs>li.active>a,.egg-container .nav-tabs>li.active>a:focus,.egg-container .nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.egg-container .nav-tabs.nav-justified{width:100%;border-bottom:0}.egg-container .nav-tabs.nav-justified>li{float:none}.egg-container .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.egg-container .nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.egg-container .nav-tabs.nav-justified>li{display:table-cell;width:1%}.egg-container .nav-tabs.nav-justified>li>a{margin-bottom:0}}.egg-container .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.egg-container .nav-tabs.nav-justified>.active>a,.egg-container .nav-tabs.nav-justified>.active>a:focus,.egg-container .nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.egg-container .nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.egg-container .nav-tabs.nav-justified>.active>a,.egg-container .nav-tabs.nav-justified>.active>a:focus,.egg-container .nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.egg-container .nav-pills>li{float:left}.egg-container .nav-pills>li>a{border-radius:4px}.egg-container .nav-pills>li+li{margin-left:2px}.egg-container .nav-pills>li.active>a,.egg-container .nav-pills>li.active>a:focus,.egg-container .nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.egg-container .nav-stacked>li{float:none}.egg-container .nav-stacked>li+li{margin-top:2px;margin-left:0}.egg-container .nav-justified{width:100%}.egg-container .nav-justified>li{float:none}.egg-container .nav-justified>li>a{margin-bottom:5px;text-align:center}.egg-container .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.egg-container .nav-justified>li{display:table-cell;width:1%}.egg-container .nav-justified>li>a{margin-bottom:0}}.egg-container .nav-tabs-justified{border-bottom:0}.egg-container .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.egg-container .nav-tabs-justified>.active>a,.egg-container .nav-tabs-justified>.active>a:focus,.egg-container .nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.egg-container .nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.egg-container .nav-tabs-justified>.active>a,.egg-container .nav-tabs-justified>.active>a:focus,.egg-container .nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.egg-container .tab-content>.tab-pane{display:none}.egg-container .tab-content>.active{display:block}.egg-container .nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.egg-container .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.egg-container .breadcrumb>li{display:inline-block}.egg-container .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.egg-container .breadcrumb>.active{color:#777}.egg-container .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.egg-container .label:focus,a.egg-container .label:hover{color:#fff;text-decoration:none;cursor:pointer}.egg-container .label:empty{display:none}.btn .egg-container .label{position:relative;top:-1px}.egg-container .label-default{background-color:#777}.egg-container .label-default[href]:focus,.egg-container .label-default[href]:hover{background-color:#5e5e5e}.egg-container .label-primary{background-color:#337ab7}.egg-container .label-primary[href]:focus,.egg-container .label-primary[href]:hover{background-color:#286090}.egg-container .label-success{background-color:#5cb85c}.egg-container .label-success[href]:focus,.egg-container .label-success[href]:hover{background-color:#449d44}.egg-container .label-info{background-color:#5bc0de}.egg-container .label-info[href]:focus,.egg-container .label-info[href]:hover{background-color:#31b0d5}.egg-container .label-warning{background-color:#f0ad4e}.egg-container .label-warning[href]:focus,.egg-container .label-warning[href]:hover{background-color:#ec971f}.egg-container .label-danger{background-color:#d9534f}.egg-container .label-danger[href]:focus,.egg-container .label-danger[href]:hover{background-color:#c9302c}.egg-container .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.egg-container .badge:empty{display:none}.btn .egg-container .badge{position:relative;top:-1px}.btn-group-xs>.btn .egg-container .badge,.btn-xs .egg-container .badge{top:0;padding:1px 5px}a.egg-container .badge:focus,a.egg-container .badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.egg-container .badge,.nav-pills>.active>a>.egg-container .badge{color:#337ab7;background-color:#fff}.list-group-item>.egg-container .badge{float:right}.list-group-item>.egg-container .badge+.egg-container .badge{margin-right:5px}.nav-pills>li>a>.egg-container .badge{margin-left:3px}.egg-container .thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.egg-container .thumbnail a>img,.egg-container .thumbnail>img{margin-right:auto;margin-left:auto}.egg-container a.thumbnail.active,.egg-container a.thumbnail:focus,.egg-container a.thumbnail:hover{border-color:#337ab7}.egg-container .thumbnail .caption{padding:9px;color:#333}.egg-container .alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.egg-container .alert h4{margin-top:0;color:inherit}.egg-container .alert .alert-link{font-weight:700}.egg-container .alert>p,.egg-container .alert>ul{margin-bottom:0}.egg-container .alert>p+p{margin-top:5px}.egg-container .alert-dismissable,.egg-container .alert-dismissible{padding-right:35px}.egg-container .alert-dismissable .close,.egg-container .alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.egg-container .alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.egg-container .alert-success hr{border-top-color:#c9e2b3}.egg-container .alert-success .alert-link{color:#2b542c}.egg-container .alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.egg-container .alert-info hr{border-top-color:#a6e1ec}.egg-container .alert-info .alert-link{color:#245269}.egg-container .alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.egg-container .alert-warning hr{border-top-color:#f7e1b5}.egg-container .alert-warning .alert-link{color:#66512c}.egg-container .alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.egg-container .alert-danger hr{border-top-color:#e4b9c0}.egg-container .alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.egg-container .progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.egg-container .progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.egg-container .progress-bar-striped,.egg-container .progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.egg-container .progress-bar.active,.egg-container .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.egg-container .progress-bar-success{background-color:#5cb85c}.progress-striped .egg-container .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.egg-container .progress-bar-info{background-color:#5bc0de}.progress-striped .egg-container .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.egg-container .progress-bar-warning{background-color:#f0ad4e}.progress-striped .egg-container .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.egg-container .progress-bar-danger{background-color:#d9534f}.progress-striped .egg-container .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.egg-container .media{margin-top:15px}.egg-container .media:first-child{margin-top:0}.egg-container .media,.egg-container .media-body{overflow:hidden;zoom:1}.egg-container .media-body{width:10000px}.egg-container .media-object{display:block}.egg-container .media-right,.egg-container .media>.pull-right{padding-left:10px}.egg-container .media-left,.egg-container .media>.pull-left{padding-right:20px}.egg-container .media-body,.egg-container .media-left,.egg-container .media-right{display:table-cell;vertical-align:top}.egg-container .media-middle{vertical-align:middle}.egg-container .media-bottom{vertical-align:bottom}.egg-container .media-heading{margin-top:0;margin-bottom:18px}.egg-container .media-list{padding-left:0;list-style:none}.egg-container .list-group{padding-left:0;margin-bottom:20px}.egg-container .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.egg-container .list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.egg-container .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.egg-container a.list-group-item{color:#555}.egg-container a.list-group-item .list-group-item-heading{color:#333}.egg-container a.list-group-item:focus,.egg-container a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.egg-container .list-group-item.disabled,.egg-container .list-group-item.disabled:focus,.egg-container .list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.egg-container .list-group-item.disabled .list-group-item-heading,.egg-container .list-group-item.disabled:focus .list-group-item-heading,.egg-container .list-group-item.disabled:hover .list-group-item-heading{color:inherit}.egg-container .list-group-item.disabled .list-group-item-text,.egg-container .list-group-item.disabled:focus .list-group-item-text,.egg-container .list-group-item.disabled:hover .list-group-item-text{color:#777}.egg-container .list-group-item.active,.egg-container .list-group-item.active:focus,.egg-container .list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.egg-container .list-group-item.active .list-group-item-heading,.egg-container .list-group-item.active .list-group-item-heading>.small,.egg-container .list-group-item.active .list-group-item-heading>small,.egg-container .list-group-item.active:focus .list-group-item-heading,.egg-container .list-group-item.active:focus .list-group-item-heading>.small,.egg-container .list-group-item.active:focus .list-group-item-heading>small,.egg-container .list-group-item.active:hover .list-group-item-heading,.egg-container .list-group-item.active:hover .list-group-item-heading>.small,.egg-container .list-group-item.active:hover .list-group-item-heading>small{color:inherit}.egg-container .list-group-item.active .list-group-item-text,.egg-container .list-group-item.active:focus .list-group-item-text,.egg-container .list-group-item.active:hover .list-group-item-text{color:#c7ddef}.egg-container .list-group-item-success{color:#3c763d;background-color:#dff0d8}a.egg-container .list-group-item-success{color:#3c763d}a.egg-container .list-group-item-success .list-group-item-heading{color:inherit}a.egg-container .list-group-item-success:focus,a.egg-container .list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.egg-container .list-group-item-success.active,a.egg-container .list-group-item-success.active:focus,a.egg-container .list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.egg-container .list-group-item-info{color:#31708f;background-color:#d9edf7}a.egg-container .list-group-item-info{color:#31708f}a.egg-container .list-group-item-info .list-group-item-heading{color:inherit}a.egg-container .list-group-item-info:focus,a.egg-container .list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.egg-container .list-group-item-info.active,a.egg-container .list-group-item-info.active:focus,a.egg-container .list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.egg-container .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.egg-container .list-group-item-warning{color:#8a6d3b}a.egg-container .list-group-item-warning .list-group-item-heading{color:inherit}a.egg-container .list-group-item-warning:focus,a.egg-container .list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.egg-container .list-group-item-warning.active,a.egg-container .list-group-item-warning.active:focus,a.egg-container .list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.egg-container .list-group-item-danger{color:#a94442;background-color:#f2dede}a.egg-container .list-group-item-danger{color:#a94442}a.egg-container .list-group-item-danger .list-group-item-heading{color:inherit}a.egg-container .list-group-item-danger:focus,a.egg-container .list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.egg-container .list-group-item-danger.active,a.egg-container .list-group-item-danger.active:focus,a.egg-container .list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.egg-container .list-group-item-heading{margin-top:0;margin-bottom:5px}.egg-container .list-group-item-text{margin-bottom:0;line-height:1.3}.egg-container .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.egg-container .panel-body{padding:20px}.egg-container .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.egg-container .panel-heading>.dropdown .dropdown-toggle{color:inherit}.egg-container .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.egg-container .panel-title>.small,.egg-container .panel-title>.small>a,.egg-container .panel-title>a,.egg-container .panel-title>small,.egg-container .panel-title>small>a{color:inherit}.egg-container .panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.egg-container .panel>.list-group,.egg-container .panel>.panel-collapse>.list-group{margin-bottom:0}.egg-container .panel>.list-group .list-group-item,.egg-container .panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.egg-container .panel>.list-group:first-child .list-group-item:first-child,.egg-container .panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.egg-container .panel>.list-group:last-child .list-group-item:last-child,.egg-container .panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.egg-container .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.egg-container .list-group+.panel-footer{border-top-width:0}.egg-container .panel>.panel-collapse>.table,.egg-container .panel>.table,.egg-container .panel>.table-responsive>.table{margin-bottom:0}.egg-container .panel>.panel-collapse>.table caption,.egg-container .panel>.table caption,.egg-container .panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.egg-container .panel>.table-responsive:first-child>.table:first-child,.egg-container .panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.egg-container .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.egg-container .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.egg-container .panel>.table:first-child>tbody:first-child>tr:first-child,.egg-container .panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.egg-container .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.egg-container .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.egg-container .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.egg-container .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.egg-container .panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.egg-container .panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.egg-container .panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.egg-container .panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.egg-container .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.egg-container .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.egg-container .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.egg-container .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.egg-container .panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.egg-container .panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.egg-container .panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.egg-container .panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.egg-container .panel>.table-responsive:last-child>.table:last-child,.egg-container .panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.egg-container .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.egg-container .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.egg-container .panel>.table:last-child>tbody:last-child>tr:last-child,.egg-container .panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.egg-container .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.egg-container .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.egg-container .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.egg-container .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.egg-container .panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.egg-container .panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.egg-container .panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.egg-container .panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.egg-container .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.egg-container .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.egg-container .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.egg-container .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.egg-container .panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.egg-container .panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.egg-container .panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.egg-container .panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.egg-container .panel>.panel-body+.table,.egg-container .panel>.panel-body+.table-responsive,.egg-container .panel>.table+.panel-body,.egg-container .panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.egg-container .panel>.table>tbody:first-child>tr:first-child td,.egg-container .panel>.table>tbody:first-child>tr:first-child th{border-top:0}.egg-container .panel>.table-bordered,.egg-container .panel>.table-responsive>.table-bordered{border:0}.egg-container .panel>.table-bordered>tbody>tr>td:first-child,.egg-container .panel>.table-bordered>tbody>tr>th:first-child,.egg-container .panel>.table-bordered>tfoot>tr>td:first-child,.egg-container .panel>.table-bordered>tfoot>tr>th:first-child,.egg-container .panel>.table-bordered>thead>tr>td:first-child,.egg-container .panel>.table-bordered>thead>tr>th:first-child,.egg-container .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.egg-container .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.egg-container .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.egg-container .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.egg-container .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.egg-container .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.egg-container .panel>.table-bordered>tbody>tr>td:last-child,.egg-container .panel>.table-bordered>tbody>tr>th:last-child,.egg-container .panel>.table-bordered>tfoot>tr>td:last-child,.egg-container .panel>.table-bordered>tfoot>tr>th:last-child,.egg-container .panel>.table-bordered>thead>tr>td:last-child,.egg-container .panel>.table-bordered>thead>tr>th:last-child,.egg-container .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.egg-container .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.egg-container .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.egg-container .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.egg-container .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.egg-container .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.egg-container .panel>.table-bordered>tbody>tr:first-child>td,.egg-container .panel>.table-bordered>tbody>tr:first-child>th,.egg-container .panel>.table-bordered>thead>tr:first-child>td,.egg-container .panel>.table-bordered>thead>tr:first-child>th,.egg-container .panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.egg-container .panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.egg-container .panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.egg-container .panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.egg-container .panel>.table-bordered>tbody>tr:last-child>td,.egg-container .panel>.table-bordered>tbody>tr:last-child>th,.egg-container .panel>.table-bordered>tfoot>tr:last-child>td,.egg-container .panel>.table-bordered>tfoot>tr:last-child>th,.egg-container .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.egg-container .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.egg-container .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.egg-container .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.egg-container .panel>.table-responsive{margin-bottom:0;border:0}.egg-container .panel-group{margin-bottom:20px}.egg-container .panel-group .panel{margin-bottom:0;border-radius:4px}.egg-container .panel-group .panel+.panel{margin-top:5px}.egg-container .panel-group .panel-heading{border-bottom:0}.egg-container .panel-group .panel-heading+.panel-collapse>.list-group,.egg-container .panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.egg-container .panel-group .panel-footer{border-top:0}.egg-container .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.egg-container .panel-default{border-color:#ddd}.egg-container .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.egg-container .panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.egg-container .panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.egg-container .panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.egg-container .panel-primary{border-color:#337ab7}.egg-container .panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.egg-container .panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.egg-container .panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.egg-container .panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.egg-container .panel-success{border-color:#d6e9c6}.egg-container .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.egg-container .panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.egg-container .panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.egg-container .panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.egg-container .panel-info{border-color:#bce8f1}.egg-container .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.egg-container .panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.egg-container .panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.egg-container .panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.egg-container .panel-warning{border-color:#faebcc}.egg-container .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.egg-container .panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.egg-container .panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.egg-container .panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.egg-container .panel-danger{border-color:#ebccd1}.egg-container .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.egg-container .panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.egg-container .panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.egg-container .panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.egg-container .embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.egg-container .embed-responsive .embed-responsive-item,.egg-container .embed-responsive embed,.egg-container .embed-responsive iframe,.egg-container .embed-responsive object,.egg-container .embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.egg-container .embed-responsive-16by9{padding-bottom:56.25%}.egg-container .embed-responsive-4by3{padding-bottom:75%}.egg-container .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.egg-container .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.egg-container .well-lg{padding:24px;border-radius:6px}.egg-container .well-sm{padding:9px;border-radius:3px}.egg-container .close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}.egg-container .close:focus,.egg-container .close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5}button.egg-container .close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.egg-container .cegg-bi{display:inline-block;vertical-align:-.125em}.egg-container .cegg-bi{width:1em;height:1em}.egg-container .popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.egg-container .popover.top{margin-top:-10px}.egg-container .popover.right{margin-left:10px}.egg-container .popover.bottom{margin-top:10px}.egg-container .popover.left{margin-left:-10px}.egg-container .popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.egg-container .popover-title:empty{display:none}.egg-container .popover-content{padding:9px 14px}.egg-container .popover .arrow,.egg-container .popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.egg-container .popover .arrow{border-width:11px}.egg-container .popover .arrow:after{border-width:10px;content:""}.egg-container .popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.egg-container .popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.egg-container .popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.egg-container .popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.egg-container .popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);border-top-width:0}.egg-container .popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.egg-container .popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,.25);border-right-width:0}.egg-container .popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.egg-container .btn-group-vertical>.btn-group:after,.egg-container .btn-group-vertical>.btn-group:before,.egg-container .btn-toolbar:after,.egg-container .btn-toolbar:before,.egg-container .clearfix:after,.egg-container .clearfix:before,.egg-container .container-fluid:after,.egg-container .container-fluid:before,.egg-container .container:after,.egg-container .container:before,.egg-container .dl-horizontal dd:after,.egg-container .dl-horizontal dd:before,.egg-container .form-horizontal .form-group:after,.egg-container .form-horizontal .form-group:before,.egg-container .nav:after,.egg-container .nav:before,.egg-container .panel-body:after,.egg-container .panel-body:before,.egg-container .row:after,.egg-container .row:before{display:table;content:" "}.egg-container .btn-group-vertical>.btn-group:after,.egg-container .btn-toolbar:after,.egg-container .clearfix:after,.egg-container .container-fluid:after,.egg-container .container:after,.egg-container .dl-horizontal dd:after,.egg-container .form-horizontal .form-group:after,.egg-container .nav:after,.egg-container .panel-body:after,.egg-container .row:after{clear:both}.egg-container .center-block{display:block;margin-right:auto;margin-left:auto}.egg-container .pull-right{float:right!important}.egg-container .pull-left{float:left!important}.egg-container .hide{display:none!important}.egg-container .show{display:block!important}.egg-container .invisible{visibility:hidden}.egg-container .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.egg-container .hidden{display:none!important}.egg-container .affix{position:fixed}@-ms-viewport{width:device-width}.egg-container .visible-lg,.egg-container .visible-md,.egg-container .visible-sm,.egg-container .visible-xs{display:none!important}.egg-container .visible-lg-block,.egg-container .visible-lg-inline,.egg-container .visible-lg-inline-block,.egg-container .visible-md-block,.egg-container .visible-md-inline,.egg-container .visible-md-inline-block,.egg-container .visible-sm-block,.egg-container .visible-sm-inline,.egg-container .visible-sm-inline-block,.egg-container .visible-xs-block,.egg-container .visible-xs-inline,.egg-container .visible-xs-inline-block{display:none!important}@media (max-width:767px){.egg-container .visible-xs{display:block!important}table.egg-container .visible-xs{display:table}tr.egg-container .visible-xs{display:table-row!important}td.egg-container .visible-xs,th.egg-container .visible-xs{display:table-cell!important}}@media (max-width:767px){.egg-container .visible-xs-block{display:block!important}}@media (max-width:767px){.egg-container .visible-xs-inline{display:inline!important}}@media (max-width:767px){.egg-container .visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.egg-container .visible-sm{display:block!important}table.egg-container .visible-sm{display:table}tr.egg-container .visible-sm{display:table-row!important}td.egg-container .visible-sm,th.egg-container .visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.egg-container .visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.egg-container .visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.egg-container .visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.egg-container .visible-md{display:block!important}table.egg-container .visible-md{display:table}tr.egg-container .visible-md{display:table-row!important}td.egg-container .visible-md,th.egg-container .visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.egg-container .visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.egg-container .visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.egg-container .visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.egg-container .visible-lg{display:block!important}table.egg-container .visible-lg{display:table}tr.egg-container .visible-lg{display:table-row!important}td.egg-container .visible-lg,th.egg-container .visible-lg{display:table-cell!important}}@media (min-width:1200px){.egg-container .visible-lg-block{display:block!important}}@media (min-width:1200px){.egg-container .visible-lg-inline{display:inline!important}}@media (min-width:1200px){.egg-container .visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.egg-container .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.egg-container .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.egg-container .hidden-md{display:none!important}}@media (min-width:1200px){.egg-container .hidden-lg{display:none!important}}.egg-container .visible-print{display:none!important}@media print{.egg-container .visible-print{display:block!important}table.egg-container .visible-print{display:table}tr.egg-container .visible-print{display:table-row!important}td.egg-container .visible-print,th.egg-container .visible-print{display:table-cell!important}}.egg-container .visible-print-block{display:none!important}@media print{.egg-container .visible-print-block{display:block!important}}.egg-container .visible-print-inline{display:none!important}@media print{.egg-container .visible-print-inline{display:inline!important}}.egg-container .visible-print-inline-block{display:none!important}@media print{.egg-container .visible-print-inline-block{display:inline-block!important}}@media print{.egg-container .hidden-print{display:none!important}}
|
|
|
|
res/bootstrap/css/glyphicons.css
ADDED
@@ -0,0 +1,805 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@font-face {
|
2 |
+
font-family: 'Glyphicons Halflings';
|
3 |
+
src: url('../fonts/glyphicons-halflings-regular.eot');
|
4 |
+
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
|
5 |
+
}
|
6 |
+
.glyphicon {
|
7 |
+
position: relative;
|
8 |
+
top: 1px;
|
9 |
+
display: inline-block;
|
10 |
+
font-family: 'Glyphicons Halflings';
|
11 |
+
font-style: normal;
|
12 |
+
font-weight: normal;
|
13 |
+
line-height: 1;
|
14 |
+
|
15 |
+
-webkit-font-smoothing: antialiased;
|
16 |
+
-moz-osx-font-smoothing: grayscale;
|
17 |
+
}
|
18 |
+
.glyphicon-asterisk:before {
|
19 |
+
content: "\002a";
|
20 |
+
}
|
21 |
+
.glyphicon-plus:before {
|
22 |
+
content: "\002b";
|
23 |
+
}
|
24 |
+
.glyphicon-euro:before,
|
25 |
+
.glyphicon-eur:before {
|
26 |
+
content: "\20ac";
|
27 |
+
}
|
28 |
+
.glyphicon-minus:before {
|
29 |
+
content: "\2212";
|
30 |
+
}
|
31 |
+
.glyphicon-cloud:before {
|
32 |
+
content: "\2601";
|
33 |
+
}
|
34 |
+
.glyphicon-envelope:before {
|
35 |
+
content: "\2709";
|
36 |
+
}
|
37 |
+
.glyphicon-pencil:before {
|
38 |
+
content: "\270f";
|
39 |
+
}
|
40 |
+
.glyphicon-glass:before {
|
41 |
+
content: "\e001";
|
42 |
+
}
|
43 |
+
.glyphicon-music:before {
|
44 |
+
content: "\e002";
|
45 |
+
}
|
46 |
+
.glyphicon-search:before {
|
47 |
+
content: "\e003";
|
48 |
+
}
|
49 |
+
.glyphicon-heart:before {
|
50 |
+
content: "\e005";
|
51 |
+
}
|
52 |
+
.glyphicon-star:before {
|
53 |
+
content: "\e006";
|
54 |
+
}
|
55 |
+
.glyphicon-star-empty:before {
|
56 |
+
content: "\e007";
|
57 |
+
}
|
58 |
+
.glyphicon-user:before {
|
59 |
+
content: "\e008";
|
60 |
+
}
|
61 |
+
.glyphicon-film:before {
|
62 |
+
content: "\e009";
|
63 |
+
}
|
64 |
+
.glyphicon-th-large:before {
|
65 |
+
content: "\e010";
|
66 |
+
}
|
67 |
+
.glyphicon-th:before {
|
68 |
+
content: "\e011";
|
69 |
+
}
|
70 |
+
.glyphicon-th-list:before {
|
71 |
+
content: "\e012";
|
72 |
+
}
|
73 |
+
.glyphicon-ok:before {
|
74 |
+
content: "\e013";
|
75 |
+
}
|
76 |
+
.glyphicon-remove:before {
|
77 |
+
content: "\e014";
|
78 |
+
}
|
79 |
+
.glyphicon-zoom-in:before {
|
80 |
+
content: "\e015";
|
81 |
+
}
|
82 |
+
.glyphicon-zoom-out:before {
|
83 |
+
content: "\e016";
|
84 |
+
}
|
85 |
+
.glyphicon-off:before {
|
86 |
+
content: "\e017";
|
87 |
+
}
|
88 |
+
.glyphicon-signal:before {
|
89 |
+
content: "\e018";
|
90 |
+
}
|
91 |
+
.glyphicon-cog:before {
|
92 |
+
content: "\e019";
|
93 |
+
}
|
94 |
+
.glyphicon-trash:before {
|
95 |
+
content: "\e020";
|
96 |
+
}
|
97 |
+
.glyphicon-home:before {
|
98 |
+
content: "\e021";
|
99 |
+
}
|
100 |
+
.glyphicon-file:before {
|
101 |
+
content: "\e022";
|
102 |
+
}
|
103 |
+
.glyphicon-time:before {
|
104 |
+
content: "\e023";
|
105 |
+
}
|
106 |
+
.glyphicon-road:before {
|
107 |
+
content: "\e024";
|
108 |
+
}
|
109 |
+
.glyphicon-download-alt:before {
|
110 |
+
content: "\e025";
|
111 |
+
}
|
112 |
+
.glyphicon-download:before {
|
113 |
+
content: "\e026";
|
114 |
+
}
|
115 |
+
.glyphicon-upload:before {
|
116 |
+
content: "\e027";
|
117 |
+
}
|
118 |
+
.glyphicon-inbox:before {
|
119 |
+
content: "\e028";
|
120 |
+
}
|
121 |
+
.glyphicon-play-circle:before {
|
122 |
+
content: "\e029";
|
123 |
+
}
|
124 |
+
.glyphicon-repeat:before {
|
125 |
+
content: "\e030";
|
126 |
+
}
|
127 |
+
.glyphicon-refresh:before {
|
128 |
+
content: "\e031";
|
129 |
+
}
|
130 |
+
.glyphicon-list-alt:before {
|
131 |
+
content: "\e032";
|
132 |
+
}
|
133 |
+
.glyphicon-lock:before {
|
134 |
+
content: "\e033";
|
135 |
+
}
|
136 |
+
.glyphicon-flag:before {
|
137 |
+
content: "\e034";
|
138 |
+
}
|
139 |
+
.glyphicon-headphones:before {
|
140 |
+
content: "\e035";
|
141 |
+
}
|
142 |
+
.glyphicon-volume-off:before {
|
143 |
+
content: "\e036";
|
144 |
+
}
|
145 |
+
.glyphicon-volume-down:before {
|
146 |
+
content: "\e037";
|
147 |
+
}
|
148 |
+
.glyphicon-volume-up:before {
|
149 |
+
content: "\e038";
|
150 |
+
}
|
151 |
+
.glyphicon-qrcode:before {
|
152 |
+
content: "\e039";
|
153 |
+
}
|
154 |
+
.glyphicon-barcode:before {
|
155 |
+
content: "\e040";
|
156 |
+
}
|
157 |
+
.glyphicon-tag:before {
|
158 |
+
content: "\e041";
|
159 |
+
}
|
160 |
+
.glyphicon-tags:before {
|
161 |
+
content: "\e042";
|
162 |
+
}
|
163 |
+
.glyphicon-book:before {
|
164 |
+
content: "\e043";
|
165 |
+
}
|
166 |
+
.glyphicon-bookmark:before {
|
167 |
+
content: "\e044";
|
168 |
+
}
|
169 |
+
.glyphicon-print:before {
|
170 |
+
content: "\e045";
|
171 |
+
}
|
172 |
+
.glyphicon-camera:before {
|
173 |
+
content: "\e046";
|
174 |
+
}
|
175 |
+
.glyphicon-font:before {
|
176 |
+
content: "\e047";
|
177 |
+
}
|
178 |
+
.glyphicon-bold:before {
|
179 |
+
content: "\e048";
|
180 |
+
}
|
181 |
+
.glyphicon-italic:before {
|
182 |
+
content: "\e049";
|
183 |
+
}
|
184 |
+
.glyphicon-text-height:before {
|
185 |
+
content: "\e050";
|
186 |
+
}
|
187 |
+
.glyphicon-text-width:before {
|
188 |
+
content: "\e051";
|
189 |
+
}
|
190 |
+
.glyphicon-align-left:before {
|
191 |
+
content: "\e052";
|
192 |
+
}
|
193 |
+
.glyphicon-align-center:before {
|
194 |
+
content: "\e053";
|
195 |
+
}
|
196 |
+
.glyphicon-align-right:before {
|
197 |
+
content: "\e054";
|
198 |
+
}
|
199 |
+
.glyphicon-align-justify:before {
|
200 |
+
content: "\e055";
|
201 |
+
}
|
202 |
+
.glyphicon-list:before {
|
203 |
+
content: "\e056";
|
204 |
+
}
|
205 |
+
.glyphicon-indent-left:before {
|
206 |
+
content: "\e057";
|
207 |
+
}
|
208 |
+
.glyphicon-indent-right:before {
|
209 |
+
content: "\e058";
|
210 |
+
}
|
211 |
+
.glyphicon-facetime-video:before {
|
212 |
+
content: "\e059";
|
213 |
+
}
|
214 |
+
.glyphicon-picture:before {
|
215 |
+
content: "\e060";
|
216 |
+
}
|
217 |
+
.glyphicon-map-marker:before {
|
218 |
+
content: "\e062";
|
219 |
+
}
|
220 |
+
.glyphicon-adjust:before {
|
221 |
+
content: "\e063";
|
222 |
+
}
|
223 |
+
.glyphicon-tint:before {
|
224 |
+
content: "\e064";
|
225 |
+
}
|
226 |
+
.glyphicon-edit:before {
|
227 |
+
content: "\e065";
|
228 |
+
}
|
229 |
+
.glyphicon-share:before {
|
230 |
+
content: "\e066";
|
231 |
+
}
|
232 |
+
.glyphicon-check:before {
|
233 |
+
content: "\e067";
|
234 |
+
}
|
235 |
+
.glyphicon-move:before {
|
236 |
+
content: "\e068";
|
237 |
+
}
|
238 |
+
.glyphicon-step-backward:before {
|
239 |
+
content: "\e069";
|
240 |
+
}
|
241 |
+
.glyphicon-fast-backward:before {
|
242 |
+
content: "\e070";
|
243 |
+
}
|
244 |
+
.glyphicon-backward:before {
|
245 |
+
content: "\e071";
|
246 |
+
}
|
247 |
+
.glyphicon-play:before {
|
248 |
+
content: "\e072";
|
249 |
+
}
|
250 |
+
.glyphicon-pause:before {
|
251 |
+
content: "\e073";
|
252 |
+
}
|
253 |
+
.glyphicon-stop:before {
|
254 |
+
content: "\e074";
|
255 |
+
}
|
256 |
+
.glyphicon-forward:before {
|
257 |
+
content: "\e075";
|
258 |
+
}
|
259 |
+
.glyphicon-fast-forward:before {
|
260 |
+
content: "\e076";
|
261 |
+
}
|
262 |
+
.glyphicon-step-forward:before {
|
263 |
+
content: "\e077";
|
264 |
+
}
|
265 |
+
.glyphicon-eject:before {
|
266 |
+
content: "\e078";
|
267 |
+
}
|
268 |
+
.glyphicon-chevron-left:before {
|
269 |
+
content: "\e079";
|
270 |
+
}
|
271 |
+
.glyphicon-chevron-right:before {
|
272 |
+
content: "\e080";
|
273 |
+
}
|
274 |
+
.glyphicon-plus-sign:before {
|
275 |
+
content: "\e081";
|
276 |
+
}
|
277 |
+
.glyphicon-minus-sign:before {
|
278 |
+
content: "\e082";
|
279 |
+
}
|
280 |
+
.glyphicon-remove-sign:before {
|
281 |
+
content: "\e083";
|
282 |
+
}
|
283 |
+
.glyphicon-ok-sign:before {
|
284 |
+
content: "\e084";
|
285 |
+
}
|
286 |
+
.glyphicon-question-sign:before {
|
287 |
+
content: "\e085";
|
288 |
+
}
|
289 |
+
.glyphicon-info-sign:before {
|
290 |
+
content: "\e086";
|
291 |
+
}
|
292 |
+
.glyphicon-screenshot:before {
|
293 |
+
content: "\e087";
|
294 |
+
}
|
295 |
+
.glyphicon-remove-circle:before {
|
296 |
+
content: "\e088";
|
297 |
+
}
|
298 |
+
.glyphicon-ok-circle:before {
|
299 |
+
content: "\e089";
|
300 |
+
}
|
301 |
+
.glyphicon-ban-circle:before {
|
302 |
+
content: "\e090";
|
303 |
+
}
|
304 |
+
.glyphicon-arrow-left:before {
|
305 |
+
content: "\e091";
|
306 |
+
}
|
307 |
+
.glyphicon-arrow-right:before {
|
308 |
+
content: "\e092";
|
309 |
+
}
|
310 |
+
.glyphicon-arrow-up:before {
|
311 |
+
content: "\e093";
|
312 |
+
}
|
313 |
+
.glyphicon-arrow-down:before {
|
314 |
+
content: "\e094";
|
315 |
+
}
|
316 |
+
.glyphicon-share-alt:before {
|
317 |
+
content: "\e095";
|
318 |
+
}
|
319 |
+
.glyphicon-resize-full:before {
|
320 |
+
content: "\e096";
|
321 |
+
}
|
322 |
+
.glyphicon-resize-small:before {
|
323 |
+
content: "\e097";
|
324 |
+
}
|
325 |
+
.glyphicon-exclamation-sign:before {
|
326 |
+
content: "\e101";
|
327 |
+
}
|
328 |
+
.glyphicon-gift:before {
|
329 |
+
content: "\e102";
|
330 |
+
}
|
331 |
+
.glyphicon-leaf:before {
|
332 |
+
content: "\e103";
|
333 |
+
}
|
334 |
+
.glyphicon-fire:before {
|
335 |
+
content: "\e104";
|
336 |
+
}
|
337 |
+
.glyphicon-eye-open:before {
|
338 |
+
content: "\e105";
|
339 |
+
}
|
340 |
+
.glyphicon-eye-close:before {
|
341 |
+
content: "\e106";
|
342 |
+
}
|
343 |
+
.glyphicon-warning-sign:before {
|
344 |
+
content: "\e107";
|
345 |
+
}
|
346 |
+
.glyphicon-plane:before {
|
347 |
+
content: "\e108";
|
348 |
+
}
|
349 |
+
.glyphicon-calendar:before {
|
350 |
+
content: "\e109";
|
351 |
+
}
|
352 |
+
.glyphicon-random:before {
|
353 |
+
content: "\e110";
|
354 |
+
}
|
355 |
+
.glyphicon-comment:before {
|
356 |
+
content: "\e111";
|
357 |
+
}
|
358 |
+
.glyphicon-magnet:before {
|
359 |
+
content: "\e112";
|
360 |
+
}
|
361 |
+
.glyphicon-chevron-up:before {
|
362 |
+
content: "\e113";
|
363 |
+
}
|
364 |
+
.glyphicon-chevron-down:before {
|
365 |
+
content: "\e114";
|
366 |
+
}
|
367 |
+
.glyphicon-retweet:before {
|
368 |
+
content: "\e115";
|
369 |
+
}
|
370 |
+
.glyphicon-shopping-cart:before {
|
371 |
+
content: "\e116";
|
372 |
+
}
|
373 |
+
.glyphicon-folder-close:before {
|
374 |
+
content: "\e117";
|
375 |
+
}
|
376 |
+
.glyphicon-folder-open:before {
|
377 |
+
content: "\e118";
|
378 |
+
}
|
379 |
+
.glyphicon-resize-vertical:before {
|
380 |
+
content: "\e119";
|
381 |
+
}
|
382 |
+
.glyphicon-resize-horizontal:before {
|
383 |
+
content: "\e120";
|
384 |
+
}
|
385 |
+
.glyphicon-hdd:before {
|
386 |
+
content: "\e121";
|
387 |
+
}
|
388 |
+
.glyphicon-bullhorn:before {
|
389 |
+
content: "\e122";
|
390 |
+
}
|
391 |
+
.glyphicon-bell:before {
|
392 |
+
content: "\e123";
|
393 |
+
}
|
394 |
+
.glyphicon-certificate:before {
|
395 |
+
content: "\e124";
|
396 |
+
}
|
397 |
+
.glyphicon-thumbs-up:before {
|
398 |
+
content: "\e125";
|
399 |
+
}
|
400 |
+
.glyphicon-thumbs-down:before {
|
401 |
+
content: "\e126";
|
402 |
+
}
|
403 |
+
.glyphicon-hand-right:before {
|
404 |
+
content: "\e127";
|
405 |
+
}
|
406 |
+
.glyphicon-hand-left:before {
|
407 |
+
content: "\e128";
|
408 |
+
}
|
409 |
+
.glyphicon-hand-up:before {
|
410 |
+
content: "\e129";
|
411 |
+
}
|
412 |
+
.glyphicon-hand-down:before {
|
413 |
+
content: "\e130";
|
414 |
+
}
|
415 |
+
.glyphicon-circle-arrow-right:before {
|
416 |
+
content: "\e131";
|
417 |
+
}
|
418 |
+
.glyphicon-circle-arrow-left:before {
|
419 |
+
content: "\e132";
|
420 |
+
}
|
421 |
+
.glyphicon-circle-arrow-up:before {
|
422 |
+
content: "\e133";
|
423 |
+
}
|
424 |
+
.glyphicon-circle-arrow-down:before {
|
425 |
+
content: "\e134";
|
426 |
+
}
|
427 |
+
.glyphicon-globe:before {
|
428 |
+
content: "\e135";
|
429 |
+
}
|
430 |
+
.glyphicon-wrench:before {
|
431 |
+
content: "\e136";
|
432 |
+
}
|
433 |
+
.glyphicon-tasks:before {
|
434 |
+
content: "\e137";
|
435 |
+
}
|
436 |
+
.glyphicon-filter:before {
|
437 |
+
content: "\e138";
|
438 |
+
}
|
439 |
+
.glyphicon-briefcase:before {
|
440 |
+
content: "\e139";
|
441 |
+
}
|
442 |
+
.glyphicon-fullscreen:before {
|
443 |
+
content: "\e140";
|
444 |
+
}
|
445 |
+
.glyphicon-dashboard:before {
|
446 |
+
content: "\e141";
|
447 |
+
}
|
448 |
+
.glyphicon-paperclip:before {
|
449 |
+
content: "\e142";
|
450 |
+
}
|
451 |
+
.glyphicon-heart-empty:before {
|
452 |
+
content: "\e143";
|
453 |
+
}
|
454 |
+
.glyphicon-link:before {
|
455 |
+
content: "\e144";
|
456 |
+
}
|
457 |
+
.glyphicon-phone:before {
|
458 |
+
content: "\e145";
|
459 |
+
}
|
460 |
+
.glyphicon-pushpin:before {
|
461 |
+
content: "\e146";
|
462 |
+
}
|
463 |
+
.glyphicon-usd:before {
|
464 |
+
content: "\e148";
|
465 |
+
}
|
466 |
+
.glyphicon-gbp:before {
|
467 |
+
content: "\e149";
|
468 |
+
}
|
469 |
+
.glyphicon-sort:before {
|
470 |
+
content: "\e150";
|
471 |
+
}
|
472 |
+
.glyphicon-sort-by-alphabet:before {
|
473 |
+
content: "\e151";
|
474 |
+
}
|
475 |
+
.glyphicon-sort-by-alphabet-alt:before {
|
476 |
+
content: "\e152";
|
477 |
+
}
|
478 |
+
.glyphicon-sort-by-order:before {
|
479 |
+
content: "\e153";
|
480 |
+
}
|
481 |
+
.glyphicon-sort-by-order-alt:before {
|
482 |
+
content: "\e154";
|
483 |
+
}
|
484 |
+
.glyphicon-sort-by-attributes:before {
|
485 |
+
content: "\e155";
|
486 |
+
}
|
487 |
+
.glyphicon-sort-by-attributes-alt:before {
|
488 |
+
content: "\e156";
|
489 |
+
}
|
490 |
+
.glyphicon-unchecked:before {
|
491 |
+
content: "\e157";
|
492 |
+
}
|
493 |
+
.glyphicon-expand:before {
|
494 |
+
content: "\e158";
|
495 |
+
}
|
496 |
+
.glyphicon-collapse-down:before {
|
497 |
+
content: "\e159";
|
498 |
+
}
|
499 |
+
.glyphicon-collapse-up:before {
|
500 |
+
content: "\e160";
|
501 |
+
}
|
502 |
+
.glyphicon-log-in:before {
|
503 |
+
content: "\e161";
|
504 |
+
}
|
505 |
+
.glyphicon-flash:before {
|
506 |
+
content: "\e162";
|
507 |
+
}
|
508 |
+
.glyphicon-log-out:before {
|
509 |
+
content: "\e163";
|
510 |
+
}
|
511 |
+
.glyphicon-new-window:before {
|
512 |
+
content: "\e164";
|
513 |
+
}
|
514 |
+
.glyphicon-record:before {
|
515 |
+
content: "\e165";
|
516 |
+
}
|
517 |
+
.glyphicon-save:before {
|
518 |
+
content: "\e166";
|
519 |
+
}
|
520 |
+
.glyphicon-open:before {
|
521 |
+
content: "\e167";
|
522 |
+
}
|
523 |
+
.glyphicon-saved:before {
|
524 |
+
content: "\e168";
|
525 |
+
}
|
526 |
+
.glyphicon-import:before {
|
527 |
+
content: "\e169";
|
528 |
+
}
|
529 |
+
.glyphicon-export:before {
|
530 |
+
content: "\e170";
|
531 |
+
}
|
532 |
+
.glyphicon-send:before {
|
533 |
+
content: "\e171";
|
534 |
+
}
|
535 |
+
.glyphicon-floppy-disk:before {
|
536 |
+
content: "\e172";
|
537 |
+
}
|
538 |
+
.glyphicon-floppy-saved:before {
|
539 |
+
content: "\e173";
|
540 |
+
}
|
541 |
+
.glyphicon-floppy-remove:before {
|
542 |
+
content: "\e174";
|
543 |
+
}
|
544 |
+
.glyphicon-floppy-save:before {
|
545 |
+
content: "\e175";
|
546 |
+
}
|
547 |
+
.glyphicon-floppy-open:before {
|
548 |
+
content: "\e176";
|
549 |
+
}
|
550 |
+
.glyphicon-credit-card:before {
|
551 |
+
content: "\e177";
|
552 |
+
}
|
553 |
+
.glyphicon-transfer:before {
|
554 |
+
content: "\e178";
|
555 |
+
}
|
556 |
+
.glyphicon-cutlery:before {
|
557 |
+
content: "\e179";
|
558 |
+
}
|
559 |
+
.glyphicon-header:before {
|
560 |
+
content: "\e180";
|
561 |
+
}
|
562 |
+
.glyphicon-compressed:before {
|
563 |
+
content: "\e181";
|
564 |
+
}
|
565 |
+
.glyphicon-earphone:before {
|
566 |
+
content: "\e182";
|
567 |
+
}
|
568 |
+
.glyphicon-phone-alt:before {
|
569 |
+
content: "\e183";
|
570 |
+
}
|
571 |
+
.glyphicon-tower:before {
|
572 |
+
content: "\e184";
|
573 |
+
}
|
574 |
+
.glyphicon-stats:before {
|
575 |
+
content: "\e185";
|
576 |
+
}
|
577 |
+
.glyphicon-sd-video:before {
|
578 |
+
content: "\e186";
|
579 |
+
}
|
580 |
+
.glyphicon-hd-video:before {
|
581 |
+
content: "\e187";
|
582 |
+
}
|
583 |
+
.glyphicon-subtitles:before {
|
584 |
+
content: "\e188";
|
585 |
+
}
|
586 |
+
.glyphicon-sound-stereo:before {
|
587 |
+
content: "\e189";
|
588 |
+
}
|
589 |
+
.glyphicon-sound-dolby:before {
|
590 |
+
content: "\e190";
|
591 |
+
}
|
592 |
+
.glyphicon-sound-5-1:before {
|
593 |
+
content: "\e191";
|
594 |
+
}
|
595 |
+
.glyphicon-sound-6-1:before {
|
596 |
+
content: "\e192";
|
597 |
+
}
|
598 |
+
.glyphicon-sound-7-1:before {
|
599 |
+
content: "\e193";
|
600 |
+
}
|
601 |
+
.glyphicon-copyright-mark:before {
|
602 |
+
content: "\e194";
|
603 |
+
}
|
604 |
+
.glyphicon-registration-mark:before {
|
605 |
+
content: "\e195";
|
606 |
+
}
|
607 |
+
.glyphicon-cloud-download:before {
|
608 |
+
content: "\e197";
|
609 |
+
}
|
610 |
+
.glyphicon-cloud-upload:before {
|
611 |
+
content: "\e198";
|
612 |
+
}
|
613 |
+
.glyphicon-tree-conifer:before {
|
614 |
+
content: "\e199";
|
615 |
+
}
|
616 |
+
.glyphicon-tree-deciduous:before {
|
617 |
+
content: "\e200";
|
618 |
+
}
|
619 |
+
.glyphicon-cd:before {
|
620 |
+
content: "\e201";
|
621 |
+
}
|
622 |
+
.glyphicon-save-file:before {
|
623 |
+
content: "\e202";
|
624 |
+
}
|
625 |
+
.glyphicon-open-file:before {
|
626 |
+
content: "\e203";
|
627 |
+
}
|
628 |
+
.glyphicon-level-up:before {
|
629 |
+
content: "\e204";
|
630 |
+
}
|
631 |
+
.glyphicon-copy:before {
|
632 |
+
content: "\e205";
|
633 |
+
}
|
634 |
+
.glyphicon-paste:before {
|
635 |
+
content: "\e206";
|
636 |
+
}
|
637 |
+
.glyphicon-alert:before {
|
638 |
+
content: "\e209";
|
639 |
+
}
|
640 |
+
.glyphicon-equalizer:before {
|
641 |
+
content: "\e210";
|
642 |
+
}
|
643 |
+
.glyphicon-king:before {
|
644 |
+
content: "\e211";
|
645 |
+
}
|
646 |
+
.glyphicon-queen:before {
|
647 |
+
content: "\e212";
|
648 |
+
}
|
649 |
+
.glyphicon-pawn:before {
|
650 |
+
content: "\e213";
|
651 |
+
}
|
652 |
+
.glyphicon-bishop:before {
|
653 |
+
content: "\e214";
|
654 |
+
}
|
655 |
+
.glyphicon-knight:before {
|
656 |
+
content: "\e215";
|
657 |
+
}
|
658 |
+
.glyphicon-baby-formula:before {
|
659 |
+
content: "\e216";
|
660 |
+
}
|
661 |
+
.glyphicon-tent:before {
|
662 |
+
content: "\26fa";
|
663 |
+
}
|
664 |
+
.glyphicon-blackboard:before {
|
665 |
+
content: "\e218";
|
666 |
+
}
|
667 |
+
.glyphicon-bed:before {
|
668 |
+
content: "\e219";
|
669 |
+
}
|
670 |
+
.glyphicon-apple:before {
|
671 |
+
content: "\f8ff";
|
672 |
+
}
|
673 |
+
.glyphicon-erase:before {
|
674 |
+
content: "\e221";
|
675 |
+
}
|
676 |
+
.glyphicon-hourglass:before {
|
677 |
+
content: "\231b";
|
678 |
+
}
|
679 |
+
.glyphicon-lamp:before {
|
680 |
+
content: "\e223";
|
681 |
+
}
|
682 |
+
.glyphicon-duplicate:before {
|
683 |
+
content: "\e224";
|
684 |
+
}
|
685 |
+
.glyphicon-piggy-bank:before {
|
686 |
+
content: "\e225";
|
687 |
+
}
|
688 |
+
.glyphicon-scissors:before {
|
689 |
+
content: "\e226";
|
690 |
+
}
|
691 |
+
.glyphicon-bitcoin:before {
|
692 |
+
content: "\e227";
|
693 |
+
}
|
694 |
+
.glyphicon-btc:before {
|
695 |
+
content: "\e227";
|
696 |
+
}
|
697 |
+
.glyphicon-xbt:before {
|
698 |
+
content: "\e227";
|
699 |
+
}
|
700 |
+
.glyphicon-yen:before {
|
701 |
+
content: "\00a5";
|
702 |
+
}
|
703 |
+
.glyphicon-jpy:before {
|
704 |
+
content: "\00a5";
|
705 |
+
}
|
706 |
+
.glyphicon-ruble:before {
|
707 |
+
content: "\20bd";
|
708 |
+
}
|
709 |
+
.glyphicon-rub:before {
|
710 |
+
content: "\20bd";
|
711 |
+
}
|
712 |
+
.glyphicon-scale:before {
|
713 |
+
content: "\e230";
|
714 |
+
}
|
715 |
+
.glyphicon-ice-lolly:before {
|
716 |
+
content: "\e231";
|
717 |
+
}
|
718 |
+
.glyphicon-ice-lolly-tasted:before {
|
719 |
+
content: "\e232";
|
720 |
+
}
|
721 |
+
.glyphicon-education:before {
|
722 |
+
content: "\e233";
|
723 |
+
}
|
724 |
+
.glyphicon-option-horizontal:before {
|
725 |
+
content: "\e234";
|
726 |
+
}
|
727 |
+
.glyphicon-option-vertical:before {
|
728 |
+
content: "\e235";
|
729 |
+
}
|
730 |
+
.glyphicon-menu-hamburger:before {
|
731 |
+
content: "\e236";
|
732 |
+
}
|
733 |
+
.glyphicon-modal-window:before {
|
734 |
+
content: "\e237";
|
735 |
+
}
|
736 |
+
.glyphicon-oil:before {
|
737 |
+
content: "\e238";
|
738 |
+
}
|
739 |
+
.glyphicon-grain:before {
|
740 |
+
content: "\e239";
|
741 |
+
}
|
742 |
+
.glyphicon-sunglasses:before {
|
743 |
+
content: "\e240";
|
744 |
+
}
|
745 |
+
.glyphicon-text-size:before {
|
746 |
+
content: "\e241";
|
747 |
+
}
|
748 |
+
.glyphicon-text-color:before {
|
749 |
+
content: "\e242";
|
750 |
+
}
|
751 |
+
.glyphicon-text-background:before {
|
752 |
+
content: "\e243";
|
753 |
+
}
|
754 |
+
.glyphicon-object-align-top:before {
|
755 |
+
content: "\e244";
|
756 |
+
}
|
757 |
+
.glyphicon-object-align-bottom:before {
|
758 |
+
content: "\e245";
|
759 |
+
}
|
760 |
+
.glyphicon-object-align-horizontal:before {
|
761 |
+
content: "\e246";
|
762 |
+
}
|
763 |
+
.glyphicon-object-align-left:before {
|
764 |
+
content: "\e247";
|
765 |
+
}
|
766 |
+
.glyphicon-object-align-vertical:before {
|
767 |
+
content: "\e248";
|
768 |
+
}
|
769 |
+
.glyphicon-object-align-right:before {
|
770 |
+
content: "\e249";
|
771 |
+
}
|
772 |
+
.glyphicon-triangle-right:before {
|
773 |
+
content: "\e250";
|
774 |
+
}
|
775 |
+
.glyphicon-triangle-left:before {
|
776 |
+
content: "\e251";
|
777 |
+
}
|
778 |
+
.glyphicon-triangle-bottom:before {
|
779 |
+
content: "\e252";
|
780 |
+
}
|
781 |
+
.glyphicon-triangle-top:before {
|
782 |
+
content: "\e253";
|
783 |
+
}
|
784 |
+
.glyphicon-console:before {
|
785 |
+
content: "\e254";
|
786 |
+
}
|
787 |
+
.glyphicon-superscript:before {
|
788 |
+
content: "\e255";
|
789 |
+
}
|
790 |
+
.glyphicon-subscript:before {
|
791 |
+
content: "\e256";
|
792 |
+
}
|
793 |
+
.glyphicon-menu-left:before {
|
794 |
+
content: "\e257";
|
795 |
+
}
|
796 |
+
.glyphicon-menu-right:before {
|
797 |
+
content: "\e258";
|
798 |
+
}
|
799 |
+
.glyphicon-menu-down:before {
|
800 |
+
content: "\e259";
|
801 |
+
}
|
802 |
+
.glyphicon-menu-up:before {
|
803 |
+
content: "\e260";
|
804 |
+
}
|
805 |
+
|
res/bootstrap/js/popover.js
ADDED
@@ -0,0 +1,121 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ===========================================================
|
2 |
+
* bootstrap-popover.js v2.3.2
|
3 |
+
* http://getbootstrap.com/2.3.2/javascript.html#popovers
|
4 |
+
* ===========================================================
|
5 |
+
* Copyright 2013 Twitter, Inc.
|
6 |
+
*
|
7 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
8 |
+
* you may not use this file except in compliance with the License.
|
9 |
+
* You may obtain a copy of the License at
|
10 |
+
*
|
11 |
+
* http://www.apache.org/licenses/LICENSE-2.0
|
12 |
+
*
|
13 |
+
* Unless required by applicable law or agreed to in writing, software
|
14 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
15 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16 |
+
* See the License for the specific language governing permissions and
|
17 |
+
* limitations under the License.
|
18 |
+
* =========================================================== */
|
19 |
+
|
20 |
+
|
21 |
+
!function ($) {
|
22 |
+
|
23 |
+
"use strict"; // jshint ;_;
|
24 |
+
|
25 |
+
|
26 |
+
/* POPOVER PUBLIC CLASS DEFINITION
|
27 |
+
* =============================== */
|
28 |
+
|
29 |
+
var Popover = function (element, options) {
|
30 |
+
this.init('popover', element, options)
|
31 |
+
}
|
32 |
+
|
33 |
+
|
34 |
+
/* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
|
35 |
+
========================================== */
|
36 |
+
|
37 |
+
Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
|
38 |
+
|
39 |
+
constructor: Popover
|
40 |
+
|
41 |
+
, setContent: function () {
|
42 |
+
var $tip = this.tip()
|
43 |
+
, title = this.getTitle()
|
44 |
+
, content = this.getContent()
|
45 |
+
|
46 |
+
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
|
47 |
+
$tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
|
48 |
+
|
49 |
+
$tip.removeClass('fade top bottom left right in')
|
50 |
+
}
|
51 |
+
|
52 |
+
, hasContent: function () {
|
53 |
+
return this.getTitle() || this.getContent()
|
54 |
+
}
|
55 |
+
|
56 |
+
, getContent: function () {
|
57 |
+
var content
|
58 |
+
, $e = this.$element
|
59 |
+
, o = this.options
|
60 |
+
|
61 |
+
content = (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
|
62 |
+
|| $e.attr('data-content')
|
63 |
+
|
64 |
+
return content
|
65 |
+
}
|
66 |
+
|
67 |
+
, tip: function () {
|
68 |
+
if (!this.$tip) {
|
69 |
+
this.$tip = $(this.options.template)
|
70 |
+
}
|
71 |
+
return this.$tip
|
72 |
+
}
|
73 |
+
|
74 |
+
, destroy: function () {
|
75 |
+
this.hide().$element.off('.' + this.type).removeData(this.type)
|
76 |
+
}
|
77 |
+
|
78 |
+
})
|
79 |
+
|
80 |
+
|
81 |
+
/* POPOVER PLUGIN DEFINITION
|
82 |
+
* ======================= */
|
83 |
+
|
84 |
+
var old = $.fn.popover
|
85 |
+
|
86 |
+
$.fn.popover = function (option) {
|
87 |
+
return this.each(function () {
|
88 |
+
var $this = $(this)
|
89 |
+
, data = $this.data('popover')
|
90 |
+
, options = typeof option == 'object' && option
|
91 |
+
if (!data)
|
92 |
+
$this.data('popover', (data = new Popover(this, options)))
|
93 |
+
if (typeof option == 'string')
|
94 |
+
data[option]()
|
95 |
+
})
|
96 |
+
}
|
97 |
+
|
98 |
+
$.fn.popover.Constructor = Popover
|
99 |
+
|
100 |
+
$.fn.popover.defaults = $.extend({}, $.fn.tooltip.defaults, {
|
101 |
+
placement: 'right'
|
102 |
+
, trigger: 'click'
|
103 |
+
, content: ''
|
104 |
+
, template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
105 |
+
})
|
106 |
+
|
107 |
+
|
108 |
+
/* POPOVER NO CONFLICT
|
109 |
+
* =================== */
|
110 |
+
|
111 |
+
$.fn.popover.noConflict = function () {
|
112 |
+
$.fn.popover = old
|
113 |
+
return this
|
114 |
+
}
|
115 |
+
|
116 |
+
$(document).ready(function () {
|
117 |
+
$('[data-toggle="cegg-popover"]').popover();
|
118 |
+
});
|
119 |
+
|
120 |
+
}(window.jQuery);
|
121 |
+
|
res/bootstrap/js/tooltip.js
ADDED
@@ -0,0 +1,361 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ===========================================================
|
2 |
+
* bootstrap-tooltip.js v2.3.2
|
3 |
+
* http://getbootstrap.com/2.3.2/javascript.html#tooltips
|
4 |
+
* Inspired by the original jQuery.tipsy by Jason Frame
|
5 |
+
* ===========================================================
|
6 |
+
* Copyright 2013 Twitter, Inc.
|
7 |
+
*
|
8 |
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
9 |
+
* you may not use this file except in compliance with the License.
|
10 |
+
* You may obtain a copy of the License at
|
11 |
+
*
|
12 |
+
* http://www.apache.org/licenses/LICENSE-2.0
|
13 |
+
*
|
14 |
+
* Unless required by applicable law or agreed to in writing, software
|
15 |
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
16 |
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
17 |
+
* See the License for the specific language governing permissions and
|
18 |
+
* limitations under the License.
|
19 |
+
* ========================================================== */
|
20 |
+
|
21 |
+
|
22 |
+
!function ($) {
|
23 |
+
|
24 |
+
"use strict"; // jshint ;_;
|
25 |
+
|
26 |
+
|
27 |
+
/* TOOLTIP PUBLIC CLASS DEFINITION
|
28 |
+
* =============================== */
|
29 |
+
|
30 |
+
var Tooltip = function (element, options) {
|
31 |
+
this.init('tooltip', element, options)
|
32 |
+
}
|
33 |
+
|
34 |
+
Tooltip.prototype = {
|
35 |
+
|
36 |
+
constructor: Tooltip
|
37 |
+
|
38 |
+
, init: function (type, element, options) {
|
39 |
+
var eventIn
|
40 |
+
, eventOut
|
41 |
+
, triggers
|
42 |
+
, trigger
|
43 |
+
, i
|
44 |
+
|
45 |
+
this.type = type
|
46 |
+
this.$element = $(element)
|
47 |
+
this.options = this.getOptions(options)
|
48 |
+
this.enabled = true
|
49 |
+
|
50 |
+
triggers = this.options.trigger.split(' ')
|
51 |
+
|
52 |
+
for (i = triggers.length; i--;) {
|
53 |
+
trigger = triggers[i]
|
54 |
+
if (trigger == 'click') {
|
55 |
+
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
|
56 |
+
} else if (trigger != 'manual') {
|
57 |
+
eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
|
58 |
+
eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
|
59 |
+
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
|
60 |
+
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
this.options.selector ?
|
65 |
+
(this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
|
66 |
+
this.fixTitle()
|
67 |
+
}
|
68 |
+
|
69 |
+
, getOptions: function (options) {
|
70 |
+
options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options)
|
71 |
+
|
72 |
+
if (options.delay && typeof options.delay == 'number') {
|
73 |
+
options.delay = {
|
74 |
+
show: options.delay
|
75 |
+
, hide: options.delay
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
return options
|
80 |
+
}
|
81 |
+
|
82 |
+
, enter: function (e) {
|
83 |
+
var defaults = $.fn[this.type].defaults
|
84 |
+
, options = {}
|
85 |
+
, self
|
86 |
+
|
87 |
+
this._options && $.each(this._options, function (key, value) {
|
88 |
+
if (defaults[key] != value) options[key] = value
|
89 |
+
}, this)
|
90 |
+
|
91 |
+
self = $(e.currentTarget)[this.type](options).data(this.type)
|
92 |
+
|
93 |
+
if (!self.options.delay || !self.options.delay.show) return self.show()
|
94 |
+
|
95 |
+
clearTimeout(this.timeout)
|
96 |
+
self.hoverState = 'in'
|
97 |
+
this.timeout = setTimeout(function() {
|
98 |
+
if (self.hoverState == 'in') self.show()
|
99 |
+
}, self.options.delay.show)
|
100 |
+
}
|
101 |
+
|
102 |
+
, leave: function (e) {
|
103 |
+
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
104 |
+
|
105 |
+
if (this.timeout) clearTimeout(this.timeout)
|
106 |
+
if (!self.options.delay || !self.options.delay.hide) return self.hide()
|
107 |
+
|
108 |
+
self.hoverState = 'out'
|
109 |
+
this.timeout = setTimeout(function() {
|
110 |
+
if (self.hoverState == 'out') self.hide()
|
111 |
+
}, self.options.delay.hide)
|
112 |
+
}
|
113 |
+
|
114 |
+
, show: function () {
|
115 |
+
var $tip
|
116 |
+
, pos
|
117 |
+
, actualWidth
|
118 |
+
, actualHeight
|
119 |
+
, placement
|
120 |
+
, tp
|
121 |
+
, e = $.Event('show')
|
122 |
+
|
123 |
+
if (this.hasContent() && this.enabled) {
|
124 |
+
this.$element.trigger(e)
|
125 |
+
if (e.isDefaultPrevented()) return
|
126 |
+
$tip = this.tip()
|
127 |
+
this.setContent()
|
128 |
+
|
129 |
+
if (this.options.animation) {
|
130 |
+
$tip.addClass('fade')
|
131 |
+
}
|
132 |
+
|
133 |
+
placement = typeof this.options.placement == 'function' ?
|
134 |
+
this.options.placement.call(this, $tip[0], this.$element[0]) :
|
135 |
+
this.options.placement
|
136 |
+
|
137 |
+
$tip
|
138 |
+
.detach()
|
139 |
+
.css({ top: 0, left: 0, display: 'block' })
|
140 |
+
|
141 |
+
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
|
142 |
+
|
143 |
+
pos = this.getPosition()
|
144 |
+
|
145 |
+
actualWidth = $tip[0].offsetWidth
|
146 |
+
actualHeight = $tip[0].offsetHeight
|
147 |
+
|
148 |
+
switch (placement) {
|
149 |
+
case 'bottom':
|
150 |
+
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
|
151 |
+
break
|
152 |
+
case 'top':
|
153 |
+
tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
|
154 |
+
break
|
155 |
+
case 'left':
|
156 |
+
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
|
157 |
+
break
|
158 |
+
case 'right':
|
159 |
+
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
|
160 |
+
break
|
161 |
+
}
|
162 |
+
|
163 |
+
this.applyPlacement(tp, placement)
|
164 |
+
this.$element.trigger('shown')
|
165 |
+
}
|
166 |
+
}
|
167 |
+
|
168 |
+
, applyPlacement: function(offset, placement){
|
169 |
+
var $tip = this.tip()
|
170 |
+
, width = $tip[0].offsetWidth
|
171 |
+
, height = $tip[0].offsetHeight
|
172 |
+
, actualWidth
|
173 |
+
, actualHeight
|
174 |
+
, delta
|
175 |
+
, replace
|
176 |
+
|
177 |
+
$tip
|
178 |
+
.offset(offset)
|
179 |
+
.addClass(placement)
|
180 |
+
.addClass('in')
|
181 |
+
|
182 |
+
actualWidth = $tip[0].offsetWidth
|
183 |
+
actualHeight = $tip[0].offsetHeight
|
184 |
+
|
185 |
+
if (placement == 'top' && actualHeight != height) {
|
186 |
+
offset.top = offset.top + height - actualHeight
|
187 |
+
replace = true
|
188 |
+
}
|
189 |
+
|
190 |
+
if (placement == 'bottom' || placement == 'top') {
|
191 |
+
delta = 0
|
192 |
+
|
193 |
+
if (offset.left < 0){
|
194 |
+
delta = offset.left * -2
|
195 |
+
offset.left = 0
|
196 |
+
$tip.offset(offset)
|
197 |
+
actualWidth = $tip[0].offsetWidth
|
198 |
+
actualHeight = $tip[0].offsetHeight
|
199 |
+
}
|
200 |
+
|
201 |
+
this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
|
202 |
+
} else {
|
203 |
+
this.replaceArrow(actualHeight - height, actualHeight, 'top')
|
204 |
+
}
|
205 |
+
|
206 |
+
if (replace) $tip.offset(offset)
|
207 |
+
}
|
208 |
+
|
209 |
+
, replaceArrow: function(delta, dimension, position){
|
210 |
+
this
|
211 |
+
.arrow()
|
212 |
+
.css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
|
213 |
+
}
|
214 |
+
|
215 |
+
, setContent: function () {
|
216 |
+
var $tip = this.tip()
|
217 |
+
, title = this.getTitle()
|
218 |
+
|
219 |
+
$tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
|
220 |
+
$tip.removeClass('fade in top bottom left right')
|
221 |
+
}
|
222 |
+
|
223 |
+
, hide: function () {
|
224 |
+
var that = this
|
225 |
+
, $tip = this.tip()
|
226 |
+
, e = $.Event('hide')
|
227 |
+
|
228 |
+
this.$element.trigger(e)
|
229 |
+
if (e.isDefaultPrevented()) return
|
230 |
+
|
231 |
+
$tip.removeClass('in')
|
232 |
+
|
233 |
+
function removeWithAnimation() {
|
234 |
+
var timeout = setTimeout(function () {
|
235 |
+
$tip.off($.support.transition.end).detach()
|
236 |
+
}, 500)
|
237 |
+
|
238 |
+
$tip.one($.support.transition.end, function () {
|
239 |
+
clearTimeout(timeout)
|
240 |
+
$tip.detach()
|
241 |
+
})
|
242 |
+
}
|
243 |
+
|
244 |
+
$.support.transition && this.$tip.hasClass('fade') ?
|
245 |
+
removeWithAnimation() :
|
246 |
+
$tip.detach()
|
247 |
+
|
248 |
+
this.$element.trigger('hidden')
|
249 |
+
|
250 |
+
return this
|
251 |
+
}
|
252 |
+
|
253 |
+
, fixTitle: function () {
|
254 |
+
var $e = this.$element
|
255 |
+
if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
|
256 |
+
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
|
257 |
+
}
|
258 |
+
}
|
259 |
+
|
260 |
+
, hasContent: function () {
|
261 |
+
return this.getTitle()
|
262 |
+
}
|
263 |
+
|
264 |
+
, getPosition: function () {
|
265 |
+
var el = this.$element[0]
|
266 |
+
return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
|
267 |
+
width: el.offsetWidth
|
268 |
+
, height: el.offsetHeight
|
269 |
+
}, this.$element.offset())
|
270 |
+
}
|
271 |
+
|
272 |
+
, getTitle: function () {
|
273 |
+
var title
|
274 |
+
, $e = this.$element
|
275 |
+
, o = this.options
|
276 |
+
|
277 |
+
title = $e.attr('data-original-title')
|
278 |
+
|| (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
|
279 |
+
|
280 |
+
return title
|
281 |
+
}
|
282 |
+
|
283 |
+
, tip: function () {
|
284 |
+
return this.$tip = this.$tip || $(this.options.template)
|
285 |
+
}
|
286 |
+
|
287 |
+
, arrow: function(){
|
288 |
+
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
|
289 |
+
}
|
290 |
+
|
291 |
+
, validate: function () {
|
292 |
+
if (!this.$element[0].parentNode) {
|
293 |
+
this.hide()
|
294 |
+
this.$element = null
|
295 |
+
this.options = null
|
296 |
+
}
|
297 |
+
}
|
298 |
+
|
299 |
+
, enable: function () {
|
300 |
+
this.enabled = true
|
301 |
+
}
|
302 |
+
|
303 |
+
, disable: function () {
|
304 |
+
this.enabled = false
|
305 |
+
}
|
306 |
+
|
307 |
+
, toggleEnabled: function () {
|
308 |
+
this.enabled = !this.enabled
|
309 |
+
}
|
310 |
+
|
311 |
+
, toggle: function (e) {
|
312 |
+
var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
|
313 |
+
self.tip().hasClass('in') ? self.hide() : self.show()
|
314 |
+
}
|
315 |
+
|
316 |
+
, destroy: function () {
|
317 |
+
this.hide().$element.off('.' + this.type).removeData(this.type)
|
318 |
+
}
|
319 |
+
|
320 |
+
}
|
321 |
+
|
322 |
+
|
323 |
+
/* TOOLTIP PLUGIN DEFINITION
|
324 |
+
* ========================= */
|
325 |
+
|
326 |
+
var old = $.fn.tooltip
|
327 |
+
|
328 |
+
$.fn.tooltip = function ( option ) {
|
329 |
+
return this.each(function () {
|
330 |
+
var $this = $(this)
|
331 |
+
, data = $this.data('tooltip')
|
332 |
+
, options = typeof option == 'object' && option
|
333 |
+
if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
|
334 |
+
if (typeof option == 'string') data[option]()
|
335 |
+
})
|
336 |
+
}
|
337 |
+
|
338 |
+
$.fn.tooltip.Constructor = Tooltip
|
339 |
+
|
340 |
+
$.fn.tooltip.defaults = {
|
341 |
+
animation: true
|
342 |
+
, placement: 'top'
|
343 |
+
, selector: false
|
344 |
+
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
|
345 |
+
, trigger: 'hover focus'
|
346 |
+
, title: ''
|
347 |
+
, delay: 0
|
348 |
+
, html: false
|
349 |
+
, container: false
|
350 |
+
}
|
351 |
+
|
352 |
+
|
353 |
+
/* TOOLTIP NO CONFLICT
|
354 |
+
* =================== */
|
355 |
+
|
356 |
+
$.fn.tooltip.noConflict = function () {
|
357 |
+
$.fn.tooltip = old
|
358 |
+
return this
|
359 |
+
}
|
360 |
+
|
361 |
+
}(window.jQuery);
|
res/css/admin.css
CHANGED
@@ -157,22 +157,6 @@
|
|
157 |
color: #e32;
|
158 |
}
|
159 |
|
160 |
-
.cegg-pro-label
|
161 |
-
{
|
162 |
-
display: inline;
|
163 |
-
padding: .2em .6em .3em;
|
164 |
-
font-size: 45%;
|
165 |
-
font-weight: bold;
|
166 |
-
color: #fff;
|
167 |
-
text-align: center;
|
168 |
-
white-space: nowrap;
|
169 |
-
vertical-align: baseline;
|
170 |
-
border-radius: .25em;
|
171 |
-
background-color: #337ab7;
|
172 |
-
position: relative;
|
173 |
-
top: -15px;
|
174 |
-
}
|
175 |
-
|
176 |
@media (max-width: 768px) {
|
177 |
.cegg-maincol{ margin: 0}
|
178 |
.cegg-rightcol{ position: static; width: auto;}
|
@@ -324,3 +308,29 @@ table.wp-list-table mark.inactive{
|
|
324 |
border-top: 0px;
|
325 |
}
|
326 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
color: #e32;
|
158 |
}
|
159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
@media (max-width: 768px) {
|
161 |
.cegg-maincol{ margin: 0}
|
162 |
.cegg-rightcol{ position: static; width: auto;}
|
308 |
border-top: 0px;
|
309 |
}
|
310 |
|
311 |
+
.egg-label {
|
312 |
+
display: inline;
|
313 |
+
padding: .3em .6em .3em;
|
314 |
+
line-height: 1;
|
315 |
+
color: #fff;
|
316 |
+
text-align: center;
|
317 |
+
vertical-align: baseline;
|
318 |
+
border-radius: .25em;
|
319 |
+
font-size: 85%;
|
320 |
+
}
|
321 |
+
|
322 |
+
.egg-label-success, .egg-label-active {
|
323 |
+
background-color: #00ba37;
|
324 |
+
}
|
325 |
+
|
326 |
+
.egg-label-error, .egg-label-inactive {
|
327 |
+
background-color: #d63638;
|
328 |
+
}
|
329 |
+
|
330 |
+
.egg-label-pro
|
331 |
+
{
|
332 |
+
font-size: 55%;
|
333 |
+
background-color: #337ab7;
|
334 |
+
position: relative;
|
335 |
+
top: -15px;
|
336 |
+
}
|
res/css/products.css
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
.egg-container .rating_small > span {display: inline-block;position: relative;font-size: 16px;color: #4285F4;}
|
4 |
.egg-container .rating_default > span {display: inline-block;position: relative;font-size: 22px;color: #4285F4;}
|
5 |
span.rating_small{white-space:nowrap}
|
6 |
-
.egg-container .egg-stars-container {position: relative; display: inline-block; color: transparent; font-size: 20px; word-wrap: normal !important;}
|
7 |
.egg-container .egg-stars-container:before {position: absolute;top: 0;left: 0;content: '★★★★★';color: lightgray;}
|
8 |
.egg-container .egg-stars-container:after {position: absolute;top: 0;left: 0;content: '★★★★★';color: #fcc10a;overflow: hidden;}
|
9 |
.egg-stars-0:after { width: 0%; } .egg-stars-10:after { width: 10%; } .egg-stars-20:after { width: 20%; } .egg-stars-30:after { width: 30%; } .egg-stars-40:after { width: 40%; } .egg-stars-50:after { width: 50%; } .egg-stars-60:after { width: 60%; } .egg-stars-70:after { width: 70%; } .egg-stars-80:after { width: 80%; } .egg-stars-90:after { width: 90%; } .egg-stars-100:after { width: 100%; }
|
@@ -54,9 +54,10 @@ span.rating_small{white-space:nowrap}
|
|
54 |
.egg-container .row-products:hover {background-color: #f9f9f9;}
|
55 |
.egg-container .row-products span.no-bold {font-size: 14px;font-weight: normal;}
|
56 |
.cegg-list-no-prices .cegg-desc-cell {vertical-align: top !important;}
|
57 |
-
.egg-container
|
|
|
58 |
.egg-list .row-products{margin-bottom:15px;margin-top:0}
|
59 |
-
.egg-container .cegg-image-cell img{max-height: 100px; max-width: 130px}
|
60 |
.egg-container .cegg-image-cell{text-align:center}
|
61 |
.cegg-image-container img{ vertical-align: top; max-width: 100%; height: auto; display: inline-block; max-height: 350px; }
|
62 |
.egg-container .cegg-no-top-margin{margin-top:0 }
|
@@ -134,24 +135,39 @@ span.rating_small{white-space:nowrap}
|
|
134 |
.egg-container .status-instock{color: #7ad03a;}
|
135 |
.egg-container .status-outofstock{color: #777;}
|
136 |
.egg-container .cegg-disclaimer .cegg-disclaimer-title {padding: 5px;cursor: default; }
|
137 |
-
.egg-container .cegg-disclaimer {cursor:
|
138 |
.egg-container .cegg-cashback {color: #199402;}
|
139 |
.cegg-features-table {word-wrap: break-word;}
|
140 |
.cegg-btn-row {padding-right: 10px;}
|
141 |
.cegg-price-outofstock {color: #777 !important;}
|
142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
@media (max-width: 768px) {
|
144 |
.cegg-list-withlogos .cegg-btn-cell{text-align: center;}
|
145 |
.cegg-price-tracker-panel .col-md-5{text-align: left;}
|
146 |
-
|
147 |
-
.egg-container .cegg-list-withlogos .cegg-image-cell img{max-height: 60px; max-width: 60px;}
|
148 |
.egg-container .egg-listcontainer .row-products{display:flex;}
|
149 |
.cegg-list-no-prices .row-products{display: table-row !important;}
|
150 |
.egg-container .egg-listcontainer .row-products > div{padding:5px 0 10px 0;}
|
151 |
.egg-listcontainer .cegg-price, .cegg-list-withlogos .cegg-price{font-size:18px;line-height:1;}
|
152 |
.cegg-price-row strike{font-size: 15px;}
|
153 |
.egg-container .row-products .btn {padding: 5px 2px; font-size: 12px; line-height: 1.3; border-radius: 3;}
|
154 |
-
.cegg-gridbox .cegg-thumb img {max-height: 150px; }
|
155 |
.cegg-gridbox .producttitle, .cegg-gridbox .producttitle a {font-size: 14px;}
|
156 |
.cegg-gridbox .cegg-price, .cegg-gridbox .cegg-price strike {font-size: 16px;}
|
157 |
.cegg-gridbox .producttitle, .cegg-gridbox .producttitle .cegg-mb10 {margin-bottom: 5px;}
|
3 |
.egg-container .rating_small > span {display: inline-block;position: relative;font-size: 16px;color: #4285F4;}
|
4 |
.egg-container .rating_default > span {display: inline-block;position: relative;font-size: 22px;color: #4285F4;}
|
5 |
span.rating_small{white-space:nowrap}
|
6 |
+
.egg-container .egg-stars-container {position: relative; display: inline-block; color: transparent; font-size: 20px; word-wrap: normal !important;overflow: hidden;}
|
7 |
.egg-container .egg-stars-container:before {position: absolute;top: 0;left: 0;content: '★★★★★';color: lightgray;}
|
8 |
.egg-container .egg-stars-container:after {position: absolute;top: 0;left: 0;content: '★★★★★';color: #fcc10a;overflow: hidden;}
|
9 |
.egg-stars-0:after { width: 0%; } .egg-stars-10:after { width: 10%; } .egg-stars-20:after { width: 20%; } .egg-stars-30:after { width: 30%; } .egg-stars-40:after { width: 40%; } .egg-stars-50:after { width: 50%; } .egg-stars-60:after { width: 60%; } .egg-stars-70:after { width: 70%; } .egg-stars-80:after { width: 80%; } .egg-stars-90:after { width: 90%; } .egg-stars-100:after { width: 100%; }
|
54 |
.egg-container .row-products:hover {background-color: #f9f9f9;}
|
55 |
.egg-container .row-products span.no-bold {font-size: 14px;font-weight: normal;}
|
56 |
.cegg-list-no-prices .cegg-desc-cell {vertical-align: top !important;}
|
57 |
+
.egg-container {clear: both;}
|
58 |
+
.egg-list .row-products {clear: both;}
|
59 |
.egg-list .row-products{margin-bottom:15px;margin-top:0}
|
60 |
+
.egg-container .cegg-image-cell img{max-height: 100px; max-width: 130px;}
|
61 |
.egg-container .cegg-image-cell{text-align:center}
|
62 |
.cegg-image-container img{ vertical-align: top; max-width: 100%; height: auto; display: inline-block; max-height: 350px; }
|
63 |
.egg-container .cegg-no-top-margin{margin-top:0 }
|
135 |
.egg-container .status-instock{color: #7ad03a;}
|
136 |
.egg-container .status-outofstock{color: #777;}
|
137 |
.egg-container .cegg-disclaimer .cegg-disclaimer-title {padding: 5px;cursor: default; }
|
138 |
+
.egg-container .cegg-disclaimer {cursor: pointer; }
|
139 |
.egg-container .cegg-cashback {color: #199402;}
|
140 |
.cegg-features-table {word-wrap: break-word;}
|
141 |
.cegg-btn-row {padding-right: 10px;}
|
142 |
.cegg-price-outofstock {color: #777 !important;}
|
143 |
|
144 |
+
|
145 |
+
.egg-ico-info-circle::before {
|
146 |
+
display: inline-block;
|
147 |
+
flex-shrink: 0;
|
148 |
+
width: 1em;
|
149 |
+
height: 1em;
|
150 |
+
margin-left: .1rem;
|
151 |
+
content: "";
|
152 |
+
vertical-align: -.125em;
|
153 |
+
background-repeat: no-repeat;
|
154 |
+
background-size: 1rem 1rem;
|
155 |
+
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23777' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3Cpath d='m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0z'/%3E%3C/svg%3E") no-repeat center center / 100% auto;;
|
156 |
+
cursor: pointer;
|
157 |
+
color: #777;
|
158 |
+
}
|
159 |
+
|
160 |
@media (max-width: 768px) {
|
161 |
.cegg-list-withlogos .cegg-btn-cell{text-align: center;}
|
162 |
.cegg-price-tracker-panel .col-md-5{text-align: left;}
|
163 |
+
|
164 |
+
.egg-container .cegg-list-withlogos .cegg-image-cell img{max-height: 60px; max-width: 60px;height:auto;}
|
165 |
.egg-container .egg-listcontainer .row-products{display:flex;}
|
166 |
.cegg-list-no-prices .row-products{display: table-row !important;}
|
167 |
.egg-container .egg-listcontainer .row-products > div{padding:5px 0 10px 0;}
|
168 |
.egg-listcontainer .cegg-price, .cegg-list-withlogos .cegg-price{font-size:18px;line-height:1;}
|
169 |
.cegg-price-row strike{font-size: 15px;}
|
170 |
.egg-container .row-products .btn {padding: 5px 2px; font-size: 12px; line-height: 1.3; border-radius: 3;}
|
|
|
171 |
.cegg-gridbox .producttitle, .cegg-gridbox .producttitle a {font-size: 14px;}
|
172 |
.cegg-gridbox .cegg-price, .cegg-gridbox .cegg-price strike {font-size: 16px;}
|
173 |
.cegg-gridbox .producttitle, .cegg-gridbox .producttitle .cegg-mb10 {margin-bottom: 5px;}
|
res/img/logo.png
ADDED
Binary file
|
res/js/common.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
jQuery(document).ready(function ($) {
|
2 |
-
$(".content-egg-delete").click
|
3 |
if (!confirm(contenteggL10n.are_you_shure)) {
|
4 |
return false;
|
5 |
}
|
1 |
jQuery(document).ready(function ($) {
|
2 |
+
$(".content-egg-delete").on('click', function () {
|
3 |
if (!confirm(contenteggL10n.are_you_shure)) {
|
4 |
return false;
|
5 |
}
|
res/js/jquery.blockUI.js
CHANGED
@@ -1,6 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
/*!
|
2 |
* jQuery blockUI plugin
|
3 |
-
* Version 2.
|
4 |
* Requires jQuery v1.7 or later
|
5 |
*
|
6 |
* Examples at: http://malsup.com/jquery/block/
|
@@ -12,614 +20,610 @@
|
|
12 |
* Thanks to Amir-Hossein Sobhi for some excellent contributions!
|
13 |
*/
|
14 |
|
15 |
-
;
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
// disable if you don't want to show the overlay
|
217 |
-
showOverlay: true,
|
218 |
-
|
219 |
-
// if true, focus will be placed in the first available input field when
|
220 |
-
// page blocking
|
221 |
-
focusInput: true,
|
222 |
|
223 |
// elements that can receive focus
|
224 |
focusableElements: ':input:enabled:visible',
|
225 |
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
|
|
|
|
|
|
624 |
|
625 |
})();
|
1 |
+
/**
|
2 |
+
* Modified version of jQuery blockUI plugin
|
3 |
+
*
|
4 |
+
* @author keywordrush.com <support@keywordrush.com>
|
5 |
+
* @link https://www.keywordrush.com
|
6 |
+
* @copyright Copyright © 2020 keywordrush.com
|
7 |
+
*/
|
8 |
+
|
9 |
/*!
|
10 |
* jQuery blockUI plugin
|
11 |
+
* Version 2.70.0-2014.11.23
|
12 |
* Requires jQuery v1.7 or later
|
13 |
*
|
14 |
* Examples at: http://malsup.com/jquery/block/
|
20 |
* Thanks to Amir-Hossein Sobhi for some excellent contributions!
|
21 |
*/
|
22 |
|
23 |
+
;(function() {
|
24 |
+
/*jshint eqeqeq:false curly:false latedef:false */
|
25 |
+
"use strict";
|
26 |
+
|
27 |
+
function setup($) {
|
28 |
+
$.fn._fadeIn = $.fn.fadeIn;
|
29 |
+
|
30 |
+
var noOp = $.noop || function() {};
|
31 |
+
|
32 |
+
// this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle
|
33 |
+
// confusing userAgent strings on Vista)
|
34 |
+
var msie = /MSIE/.test(navigator.userAgent);
|
35 |
+
var ie6 = /MSIE 6.0/.test(navigator.userAgent) && ! /MSIE 8.0/.test(navigator.userAgent);
|
36 |
+
var mode = document.documentMode || 0;
|
37 |
+
//var setExpr = $.isFunction( document.createElement('div').style.setExpression );
|
38 |
+
var setExpr = typeof document.createElement('div').style.setExpression === "function";
|
39 |
+
|
40 |
+
// global $ methods for blocking/unblocking the entire page
|
41 |
+
$.blockUI = function(opts) { install(window, opts); };
|
42 |
+
$.unblockUI = function(opts) { remove(window, opts); };
|
43 |
+
|
44 |
+
// convenience method for quick growl-like notifications (http://www.google.com/search?q=growl)
|
45 |
+
$.growlUI = function(title, message, timeout, onClose) {
|
46 |
+
var $m = $('<div class="growlUI"></div>');
|
47 |
+
if (title) $m.append('<h1>'+title+'</h1>');
|
48 |
+
if (message) $m.append('<h2>'+message+'</h2>');
|
49 |
+
if (timeout === undefined) timeout = 3000;
|
50 |
+
|
51 |
+
// Added by konapun: Set timeout to 30 seconds if this growl is moused over, like normal toast notifications
|
52 |
+
var callBlock = function(opts) {
|
53 |
+
opts = opts || {};
|
54 |
+
|
55 |
+
$.blockUI({
|
56 |
+
message: $m,
|
57 |
+
fadeIn : typeof opts.fadeIn !== 'undefined' ? opts.fadeIn : 700,
|
58 |
+
fadeOut: typeof opts.fadeOut !== 'undefined' ? opts.fadeOut : 1000,
|
59 |
+
timeout: typeof opts.timeout !== 'undefined' ? opts.timeout : timeout,
|
60 |
+
centerY: false,
|
61 |
+
showOverlay: false,
|
62 |
+
onUnblock: onClose,
|
63 |
+
css: $.blockUI.defaults.growlCSS
|
64 |
+
});
|
65 |
+
};
|
66 |
+
|
67 |
+
callBlock();
|
68 |
+
var nonmousedOpacity = $m.css('opacity');
|
69 |
+
$m.mouseover(function() {
|
70 |
+
callBlock({
|
71 |
+
fadeIn: 0,
|
72 |
+
timeout: 30000
|
73 |
+
});
|
74 |
+
|
75 |
+
var displayBlock = $('.blockMsg');
|
76 |
+
displayBlock.stop(); // cancel fadeout if it has started
|
77 |
+
displayBlock.fadeTo(300, 1); // make it easier to read the message by removing transparency
|
78 |
+
}).mouseout(function() {
|
79 |
+
$('.blockMsg').fadeOut(1000);
|
80 |
+
});
|
81 |
+
// End konapun additions
|
82 |
+
};
|
83 |
+
|
84 |
+
// plugin method for blocking element content
|
85 |
+
$.fn.block = function(opts) {
|
86 |
+
if ( this[0] === window ) {
|
87 |
+
$.blockUI( opts );
|
88 |
+
return this;
|
89 |
+
}
|
90 |
+
var fullOpts = $.extend({}, $.blockUI.defaults, opts || {});
|
91 |
+
this.each(function() {
|
92 |
+
var $el = $(this);
|
93 |
+
if (fullOpts.ignoreIfBlocked && $el.data('blockUI.isBlocked'))
|
94 |
+
return;
|
95 |
+
$el.unblock({ fadeOut: 0 });
|
96 |
+
});
|
97 |
+
|
98 |
+
return this.each(function() {
|
99 |
+
if ($.css(this,'position') == 'static') {
|
100 |
+
this.style.position = 'relative';
|
101 |
+
$(this).data('blockUI.static', true);
|
102 |
+
}
|
103 |
+
this.style.zoom = 1; // force 'hasLayout' in ie
|
104 |
+
install(this, opts);
|
105 |
+
});
|
106 |
+
};
|
107 |
+
|
108 |
+
// plugin method for unblocking element content
|
109 |
+
$.fn.unblock = function(opts) {
|
110 |
+
if ( this[0] === window ) {
|
111 |
+
$.unblockUI( opts );
|
112 |
+
return this;
|
113 |
+
}
|
114 |
+
return this.each(function() {
|
115 |
+
remove(this, opts);
|
116 |
+
});
|
117 |
+
};
|
118 |
+
|
119 |
+
$.blockUI.version = 2.70; // 2nd generation blocking at no extra cost!
|
120 |
+
|
121 |
+
// override these in your code to change the default behavior and style
|
122 |
+
$.blockUI.defaults = {
|
123 |
+
// message displayed when blocking (use null for no message)
|
124 |
+
message: '<h1>Please wait...</h1>',
|
125 |
+
|
126 |
+
title: null, // title string; only used when theme == true
|
127 |
+
draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded)
|
128 |
+
|
129 |
+
theme: false, // set to true to use with jQuery UI themes
|
130 |
+
|
131 |
+
// styles for the message when blocking; if you wish to disable
|
132 |
+
// these and use an external stylesheet then do this in your code:
|
133 |
+
// $.blockUI.defaults.css = {};
|
134 |
+
css: {
|
135 |
+
padding: 0,
|
136 |
+
margin: 0,
|
137 |
+
width: '30%',
|
138 |
+
top: '40%',
|
139 |
+
left: '35%',
|
140 |
+
textAlign: 'center',
|
141 |
+
color: '#000',
|
142 |
+
border: '3px solid #aaa',
|
143 |
+
backgroundColor:'#fff',
|
144 |
+
cursor: 'wait'
|
145 |
+
},
|
146 |
+
|
147 |
+
// minimal style set used when themes are used
|
148 |
+
themedCSS: {
|
149 |
+
width: '30%',
|
150 |
+
top: '40%',
|
151 |
+
left: '35%'
|
152 |
+
},
|
153 |
+
|
154 |
+
// styles for the overlay
|
155 |
+
overlayCSS: {
|
156 |
+
backgroundColor: '#000',
|
157 |
+
opacity: 0.6,
|
158 |
+
cursor: 'wait'
|
159 |
+
},
|
160 |
+
|
161 |
+
// style to replace wait cursor before unblocking to correct issue
|
162 |
+
// of lingering wait cursor
|
163 |
+
cursorReset: 'default',
|
164 |
+
|
165 |
+
// styles applied when using $.growlUI
|
166 |
+
growlCSS: {
|
167 |
+
width: '350px',
|
168 |
+
top: '10px',
|
169 |
+
left: '',
|
170 |
+
right: '10px',
|
171 |
+
border: 'none',
|
172 |
+
padding: '5px',
|
173 |
+
opacity: 0.6,
|
174 |
+
cursor: 'default',
|
175 |
+
color: '#fff',
|
176 |
+
backgroundColor: '#000',
|
177 |
+
'-webkit-border-radius':'10px',
|
178 |
+
'-moz-border-radius': '10px',
|
179 |
+
'border-radius': '10px'
|
180 |
+
},
|
181 |
+
|
182 |
+
// IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w
|
183 |
+
// (hat tip to Jorge H. N. de Vasconcelos)
|
184 |
+
/*jshint scripturl:true */
|
185 |
+
iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank',
|
186 |
+
|
187 |
+
// force usage of iframe in non-IE browsers (handy for blocking applets)
|
188 |
+
forceIframe: false,
|
189 |
+
|
190 |
+
// z-index for the blocking overlay
|
191 |
+
baseZ: 1000,
|
192 |
+
|
193 |
+
// set these to true to have the message automatically centered
|
194 |
+
centerX: true, // <-- only effects element blocking (page block controlled via css above)
|
195 |
+
centerY: true,
|
196 |
+
|
197 |
+
// allow body element to be stetched in ie6; this makes blocking look better
|
198 |
+
// on "short" pages. disable if you wish to prevent changes to the body height
|
199 |
+
allowBodyStretch: true,
|
200 |
+
|
201 |
+
// enable if you want key and mouse events to be disabled for content that is blocked
|
202 |
+
bindEvents: true,
|
203 |
+
|
204 |
+
// be default blockUI will supress tab navigation from leaving blocking content
|
205 |
+
// (if bindEvents is true)
|
206 |
+
constrainTabKey: true,
|
207 |
+
|
208 |
+
// fadeIn time in millis; set to 0 to disable fadeIn on block
|
209 |
+
fadeIn: 200,
|
210 |
+
|
211 |
+
// fadeOut time in millis; set to 0 to disable fadeOut on unblock
|
212 |
+
fadeOut: 400,
|
213 |
+
|
214 |
+
// time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock
|
215 |
+
timeout: 0,
|
216 |
+
|
217 |
+
// disable if you don't want to show the overlay
|
218 |
+
showOverlay: true,
|
219 |
+
|
220 |
+
// if true, focus will be placed in the first available input field when
|
221 |
+
// page blocking
|
222 |
+
focusInput: true,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
223 |
|
224 |
// elements that can receive focus
|
225 |
focusableElements: ':input:enabled:visible',
|
226 |
|
227 |
+
// suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)
|
228 |
+
// no longer needed in 2012
|
229 |
+
// applyPlatformOpacityRules: true,
|
230 |
+
|
231 |
+
// callback method invoked when fadeIn has completed and blocking message is visible
|
232 |
+
onBlock: null,
|
233 |
+
|
234 |
+
// callback method invoked when unblocking has completed; the callback is
|
235 |
+
// passed the element that has been unblocked (which is the window object for page
|
236 |
+
// blocks) and the options that were passed to the unblock call:
|
237 |
+
// onUnblock(element, options)
|
238 |
+
onUnblock: null,
|
239 |
+
|
240 |
+
// callback method invoked when the overlay area is clicked.
|
241 |
+
// setting this will turn the cursor to a pointer, otherwise cursor defined in overlayCss will be used.
|
242 |
+
onOverlayClick: null,
|
243 |
+
|
244 |
+
// don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493
|
245 |
+
quirksmodeOffsetHack: 4,
|
246 |
+
|
247 |
+
// class name of the message block
|
248 |
+
blockMsgClass: 'blockMsg',
|
249 |
+
|
250 |
+
// if it is already blocked, then ignore it (don't unblock and reblock)
|
251 |
+
ignoreIfBlocked: false
|
252 |
+
};
|
253 |
+
|
254 |
+
// private data and functions follow...
|
255 |
+
|
256 |
+
var pageBlock = null;
|
257 |
+
var pageBlockEls = [];
|
258 |
+
|
259 |
+
function install(el, opts) {
|
260 |
+
var css, themedCSS;
|
261 |
+
var full = (el == window);
|
262 |
+
var msg = (opts && opts.message !== undefined ? opts.message : undefined);
|
263 |
+
opts = $.extend({}, $.blockUI.defaults, opts || {});
|
264 |
+
|
265 |
+
if (opts.ignoreIfBlocked && $(el).data('blockUI.isBlocked'))
|
266 |
+
return;
|
267 |
+
|
268 |
+
opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});
|
269 |
+
css = $.extend({}, $.blockUI.defaults.css, opts.css || {});
|
270 |
+
if (opts.onOverlayClick)
|
271 |
+
opts.overlayCSS.cursor = 'pointer';
|
272 |
+
|
273 |
+
themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {});
|
274 |
+
msg = msg === undefined ? opts.message : msg;
|
275 |
+
|
276 |
+
// remove the current block (if there is one)
|
277 |
+
if (full && pageBlock)
|
278 |
+
remove(window, {fadeOut:0});
|
279 |
+
|
280 |
+
// if an existing element is being used as the blocking content then we capture
|
281 |
+
// its current place in the DOM (and current display style) so we can restore
|
282 |
+
// it when we unblock
|
283 |
+
if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) {
|
284 |
+
var node = msg.jquery ? msg[0] : msg;
|
285 |
+
var data = {};
|
286 |
+
$(el).data('blockUI.history', data);
|
287 |
+
data.el = node;
|
288 |
+
data.parent = node.parentNode;
|
289 |
+
data.display = node.style.display;
|
290 |
+
data.position = node.style.position;
|
291 |
+
if (data.parent)
|
292 |
+
data.parent.removeChild(node);
|
293 |
+
}
|
294 |
+
|
295 |
+
$(el).data('blockUI.onUnblock', opts.onUnblock);
|
296 |
+
var z = opts.baseZ;
|
297 |
+
|
298 |
+
// blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;
|
299 |
+
// layer1 is the iframe layer which is used to supress bleed through of underlying content
|
300 |
+
// layer2 is the overlay layer which has opacity and a wait cursor (by default)
|
301 |
+
// layer3 is the message content that is displayed while blocking
|
302 |
+
var lyr1, lyr2, lyr3, s;
|
303 |
+
if (msie || opts.forceIframe)
|
304 |
+
lyr1 = $('<iframe class="blockUI" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>');
|
305 |
+
else
|
306 |
+
lyr1 = $('<div class="blockUI" style="display:none"></div>');
|
307 |
+
|
308 |
+
if (opts.theme)
|
309 |
+
lyr2 = $('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+ (z++) +';display:none"></div>');
|
310 |
+
else
|
311 |
+
lyr2 = $('<div class="blockUI blockOverlay" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
|
312 |
+
|
313 |
+
if (opts.theme && full) {
|
314 |
+
s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:fixed">';
|
315 |
+
if ( opts.title ) {
|
316 |
+
s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || ' ')+'</div>';
|
317 |
+
}
|
318 |
+
s += '<div class="ui-widget-content ui-dialog-content"></div>';
|
319 |
+
s += '</div>';
|
320 |
+
}
|
321 |
+
else if (opts.theme) {
|
322 |
+
s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:absolute">';
|
323 |
+
if ( opts.title ) {
|
324 |
+
s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || ' ')+'</div>';
|
325 |
+
}
|
326 |
+
s += '<div class="ui-widget-content ui-dialog-content"></div>';
|
327 |
+
s += '</div>';
|
328 |
+
}
|
329 |
+
else if (full) {
|
330 |
+
s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage" style="z-index:'+(z+10)+';display:none;position:fixed"></div>';
|
331 |
+
}
|
332 |
+
else {
|
333 |
+
s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement" style="z-index:'+(z+10)+';display:none;position:absolute"></div>';
|
334 |
+
}
|
335 |
+
lyr3 = $(s);
|
336 |
+
|
337 |
+
// if we have a message, style it
|
338 |
+
if (msg) {
|
339 |
+
if (opts.theme) {
|
340 |
+
lyr3.css(themedCSS);
|
341 |
+
lyr3.addClass('ui-widget-content');
|
342 |
+
}
|
343 |
+
else
|
344 |
+
lyr3.css(css);
|
345 |
+
}
|
346 |
+
|
347 |
+
// style the overlay
|
348 |
+
if (!opts.theme /*&& (!opts.applyPlatformOpacityRules)*/)
|
349 |
+
lyr2.css(opts.overlayCSS);
|
350 |
+
lyr2.css('position', full ? 'fixed' : 'absolute');
|
351 |
+
|
352 |
+
// make iframe layer transparent in IE
|
353 |
+
if (msie || opts.forceIframe)
|
354 |
+
lyr1.css('opacity',0.0);
|
355 |
+
|
356 |
+
//$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el);
|
357 |
+
var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el);
|
358 |
+
$.each(layers, function() {
|
359 |
+
this.appendTo($par);
|
360 |
+
});
|
361 |
+
|
362 |
+
if (opts.theme && opts.draggable && $.fn.draggable) {
|
363 |
+
lyr3.draggable({
|
364 |
+
handle: '.ui-dialog-titlebar',
|
365 |
+
cancel: 'li'
|
366 |
+
});
|
367 |
+
}
|
368 |
+
|
369 |
+
// ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
|
370 |
+
var expr = setExpr && (!$.support.boxModel || $('object,embed', full ? null : el).length > 0);
|
371 |
+
if (ie6 || expr) {
|
372 |
+
// give body 100% height
|
373 |
+
if (full && opts.allowBodyStretch && $.support.boxModel)
|
374 |
+
$('html,body').css('height','100%');
|
375 |
+
|
376 |
+
// fix ie6 issue when blocked element has a border width
|
377 |
+
if ((ie6 || !$.support.boxModel) && !full) {
|
378 |
+
var t = sz(el,'borderTopWidth'), l = sz(el,'borderLeftWidth');
|
379 |
+
var fixT = t ? '(0 - '+t+')' : 0;
|
380 |
+
var fixL = l ? '(0 - '+l+')' : 0;
|
381 |
+
}
|
382 |
+
|
383 |
+
// simulate fixed position
|
384 |
+
$.each(layers, function(i,o) {
|
385 |
+
var s = o[0].style;
|
386 |
+
s.position = 'absolute';
|
387 |
+
if (i < 2) {
|
388 |
+
if (full)
|
389 |
+
s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"');
|
390 |
+
else
|
391 |
+
s.setExpression('height','this.parentNode.offsetHeight + "px"');
|
392 |
+
if (full)
|
393 |
+
s.setExpression('width','jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"');
|
394 |
+
else
|
395 |
+
s.setExpression('width','this.parentNode.offsetWidth + "px"');
|
396 |
+
if (fixL) s.setExpression('left', fixL);
|
397 |
+
if (fixT) s.setExpression('top', fixT);
|
398 |
+
}
|
399 |
+
else if (opts.centerY) {
|
400 |
+
if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
|
401 |
+
s.marginTop = 0;
|
402 |
+
}
|
403 |
+
else if (!opts.centerY && full) {
|
404 |
+
var top = (opts.css && opts.css.top) ? parseInt(opts.css.top, 10) : 0;
|
405 |
+
var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"';
|
406 |
+
s.setExpression('top',expression);
|
407 |
+
}
|
408 |
+
});
|
409 |
+
}
|
410 |
+
|
411 |
+
// show the message
|
412 |
+
if (msg) {
|
413 |
+
if (opts.theme)
|
414 |
+
lyr3.find('.ui-widget-content').append(msg);
|
415 |
+
else
|
416 |
+
lyr3.append(msg);
|
417 |
+
if (msg.jquery || msg.nodeType)
|
418 |
+
$(msg).show();
|
419 |
+
}
|
420 |
+
|
421 |
+
if ((msie || opts.forceIframe) && opts.showOverlay)
|
422 |
+
lyr1.show(); // opacity is zero
|
423 |
+
if (opts.fadeIn) {
|
424 |
+
var cb = opts.onBlock ? opts.onBlock : noOp;
|
425 |
+
var cb1 = (opts.showOverlay && !msg) ? cb : noOp;
|
426 |
+
var cb2 = msg ? cb : noOp;
|
427 |
+
if (opts.showOverlay)
|
428 |
+
lyr2._fadeIn(opts.fadeIn, cb1);
|
429 |
+
if (msg)
|
430 |
+
lyr3._fadeIn(opts.fadeIn, cb2);
|
431 |
+
}
|
432 |
+
else {
|
433 |
+
if (opts.showOverlay)
|
434 |
+
lyr2.show();
|
435 |
+
if (msg)
|
436 |
+
lyr3.show();
|
437 |
+
if (opts.onBlock)
|
438 |
+
opts.onBlock.bind(lyr3)();
|
439 |
+
}
|
440 |
+
|
441 |
+
// bind key and mouse events
|
442 |
+
bind(1, el, opts);
|
443 |
+
|
444 |
+
if (full) {
|
445 |
+
pageBlock = lyr3[0];
|
446 |
+
pageBlockEls = $(opts.focusableElements,pageBlock);
|
447 |
+
if (opts.focusInput)
|
448 |
+
setTimeout(focus, 20);
|
449 |
+
}
|
450 |
+
else
|
451 |
+
center(lyr3[0], opts.centerX, opts.centerY);
|
452 |
+
|
453 |
+
if (opts.timeout) {
|
454 |
+
// auto-unblock
|
455 |
+
var to = setTimeout(function() {
|
456 |
+
if (full)
|
457 |
+
$.unblockUI(opts);
|
458 |
+
else
|
459 |
+
$(el).unblock(opts);
|
460 |
+
}, opts.timeout);
|
461 |
+
$(el).data('blockUI.timeout', to);
|
462 |
+
}
|
463 |
+
}
|
464 |
+
|
465 |
+
// remove the block
|
466 |
+
function remove(el, opts) {
|
467 |
+
var count;
|
468 |
+
var full = (el == window);
|
469 |
+
var $el = $(el);
|
470 |
+
var data = $el.data('blockUI.history');
|
471 |
+
var to = $el.data('blockUI.timeout');
|
472 |
+
if (to) {
|
473 |
+
clearTimeout(to);
|
474 |
+
$el.removeData('blockUI.timeout');
|
475 |
+
}
|
476 |
+
opts = $.extend({}, $.blockUI.defaults, opts || {});
|
477 |
+
bind(0, el, opts); // unbind events
|
478 |
+
|
479 |
+
if (opts.onUnblock === null) {
|
480 |
+
opts.onUnblock = $el.data('blockUI.onUnblock');
|
481 |
+
$el.removeData('blockUI.onUnblock');
|
482 |
+
}
|
483 |
+
|
484 |
+
var els;
|
485 |
+
if (full) // crazy selector to handle odd field errors in ie6/7
|
486 |
+
els = $('body').children().filter('.blockUI').add('body > .blockUI');
|
487 |
+
else
|
488 |
+
els = $el.find('>.blockUI');
|
489 |
+
|
490 |
+
// fix cursor issue
|
491 |
+
if ( opts.cursorReset ) {
|
492 |
+
if ( els.length > 1 )
|
493 |
+
els[1].style.cursor = opts.cursorReset;
|
494 |
+
if ( els.length > 2 )
|
495 |
+
els[2].style.cursor = opts.cursorReset;
|
496 |
+
}
|
497 |
+
|
498 |
+
if (full)
|
499 |
+
pageBlock = pageBlockEls = null;
|
500 |
+
|
501 |
+
if (opts.fadeOut) {
|
502 |
+
count = els.length;
|
503 |
+
els.stop().fadeOut(opts.fadeOut, function() {
|
504 |
+
if ( --count === 0)
|
505 |
+
reset(els,data,opts,el);
|
506 |
+
});
|
507 |
+
}
|
508 |
+
else
|
509 |
+
reset(els, data, opts, el);
|
510 |
+
}
|
511 |
+
|
512 |
+
// move blocking element back into the DOM where it started
|
513 |
+
function reset(els,data,opts,el) {
|
514 |
+
var $el = $(el);
|
515 |
+
if ( $el.data('blockUI.isBlocked') )
|
516 |
+
return;
|
517 |
+
|
518 |
+
els.each(function(i,o) {
|
519 |
+
// remove via DOM calls so we don't lose event handlers
|
520 |
+
if (this.parentNode)
|
521 |
+
this.parentNode.removeChild(this);
|
522 |
+
});
|
523 |
+
|
524 |
+
if (data && data.el) {
|
525 |
+
data.el.style.display = data.display;
|
526 |
+
data.el.style.position = data.position;
|
527 |
+
data.el.style.cursor = 'default'; // #59
|
528 |
+
if (data.parent)
|
529 |
+
data.parent.appendChild(data.el);
|
530 |
+
$el.removeData('blockUI.history');
|
531 |
+
}
|
532 |
+
|
533 |
+
if ($el.data('blockUI.static')) {
|
534 |
+
$el.css('position', 'static'); // #22
|
535 |
+
}
|
536 |
+
|
537 |
+
if (typeof opts.onUnblock == 'function')
|
538 |
+
opts.onUnblock(el,opts);
|
539 |
+
|
540 |
+
// fix issue in Safari 6 where block artifacts remain until reflow
|
541 |
+
var body = $(document.body), w = body.width(), cssW = body[0].style.width;
|
542 |
+
body.width(w-1).width(w);
|
543 |
+
body[0].style.width = cssW;
|
544 |
+
}
|
545 |
+
|
546 |
+
// bind/unbind the handler
|
547 |
+
function bind(b, el, opts) {
|
548 |
+
var full = el == window, $el = $(el);
|
549 |
+
|
550 |
+
// don't bother unbinding if there is nothing to unbind
|
551 |
+
if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))
|
552 |
+
return;
|
553 |
+
|
554 |
+
$el.data('blockUI.isBlocked', b);
|
555 |
+
|
556 |
+
// don't bind events when overlay is not in use or if bindEvents is false
|
557 |
+
if (!full || !opts.bindEvents || (b && !opts.showOverlay))
|
558 |
+
return;
|
559 |
+
|
560 |
+
// bind anchors and inputs for mouse and key events
|
561 |
+
var events = 'mousedown mouseup keydown keypress keyup touchstart touchend touchmove';
|
562 |
+
if (b)
|
563 |
+
$(document).bind(events, opts, handler);
|
564 |
+
else
|
565 |
+
$(document).unbind(events, handler);
|
566 |
+
|
567 |
+
// former impl...
|
568 |
+
// var $e = $('a,:input');
|
569 |
+
// b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);
|
570 |
+
}
|
571 |
+
|
572 |
+
// event handler to suppress keyboard/mouse events when blocking
|
573 |
+
function handler(e) {
|
574 |
+
// allow tab navigation (conditionally)
|
575 |
+
if (e.type === 'keydown' && e.keyCode && e.keyCode == 9) {
|
576 |
+
if (pageBlock && e.data.constrainTabKey) {
|
577 |
+
var els = pageBlockEls;
|
578 |
+
var fwd = !e.shiftKey && e.target === els[els.length-1];
|
579 |
+
var back = e.shiftKey && e.target === els[0];
|
580 |
+
if (fwd || back) {
|
581 |
+
setTimeout(function(){focus(back);},10);
|
582 |
+
return false;
|
583 |
+
}
|
584 |
+
}
|
585 |
+
}
|
586 |
+
var opts = e.data;
|
587 |
+
var target = $(e.target);
|
588 |
+
if (target.hasClass('blockOverlay') && opts.onOverlayClick)
|
589 |
+
opts.onOverlayClick(e);
|
590 |
+
|
591 |
+
// allow events within the message content
|
592 |
+
if (target.parents('div.' + opts.blockMsgClass).length > 0)
|
593 |
+
return true;
|
594 |
+
|
595 |
+
// allow events for content that is not being blocked
|
596 |
+
return target.parents().children().filter('div.blockUI').length === 0;
|
597 |
+
}
|
598 |
+
|
599 |
+
function focus(back) {
|
600 |
+
if (!pageBlockEls)
|
601 |
+
return;
|
602 |
+
var e = pageBlockEls[back===true ? pageBlockEls.length-1 : 0];
|
603 |
+
if (e)
|
604 |
+
e.focus();
|
605 |
+
}
|
606 |
+
|
607 |
+
function center(el, x, y) {
|
608 |
+
var p = el.parentNode, s = el.style;
|
609 |
+
var l = ((p.offsetWidth - el.offsetWidth)/2) - sz(p,'borderLeftWidth');
|
610 |
+
var t = ((p.offsetHeight - el.offsetHeight)/2) - sz(p,'borderTopWidth');
|
611 |
+
if (x) s.left = l > 0 ? (l+'px') : '0';
|
612 |
+
if (y) s.top = t > 0 ? (t+'px') : '0';
|
613 |
+
}
|
614 |
+
|
615 |
+
function sz(el, p) {
|
616 |
+
return parseInt($.css(el,p),10)||0;
|
617 |
+
}
|
618 |
+
|
619 |
+
}
|
620 |
+
|
621 |
+
|
622 |
+
/*global define:true */
|
623 |
+
if (typeof define === 'function' && define.amd && define.amd.jQuery) {
|
624 |
+
define(['jquery'], setup);
|
625 |
+
} else {
|
626 |
+
setup(jQuery);
|
627 |
+
}
|
628 |
|
629 |
})();
|
res/js/keywords.js
CHANGED
@@ -10,28 +10,28 @@ jQuery(document).ready(function ($) {
|
|
10 |
/** Suggestion tool */
|
11 |
var sug_parser = 'sug_google';
|
12 |
//sug parser source
|
13 |
-
jQuery("#sug_btn_group input").click
|
14 |
sug_parser = jQuery(this).val();
|
15 |
if (jQuery('#sug_query').val())
|
16 |
suggest(jQuery('#sug_query').val(), sug_parser);
|
17 |
});
|
18 |
-
jQuery('#sug_query').keyup
|
19 |
suggest(jQuery(this).val(), sug_parser);
|
20 |
});
|
21 |
//--------------------------------------
|
22 |
|
23 |
|
24 |
//add buttons
|
25 |
-
jQuery('#add_selected').click
|
26 |
add_selected()
|
27 |
});
|
28 |
|
29 |
-
jQuery('#add_all').click
|
30 |
add_all();
|
31 |
});
|
32 |
|
33 |
// keywords count
|
34 |
-
jQuery('#keywords').keyup
|
35 |
var code = e.which;
|
36 |
if (code == 13) {
|
37 |
keywords_count();
|
@@ -39,37 +39,37 @@ jQuery(document).ready(function ($) {
|
|
39 |
});
|
40 |
|
41 |
//tools
|
42 |
-
jQuery('#tool_capitalise').click
|
43 |
event.preventDefault();
|
44 |
var keywords = jQuery('#keywords').val();
|
45 |
jQuery('#keywords').val(keywords.capitalize());
|
46 |
});
|
47 |
|
48 |
-
jQuery('#tool_sort').click
|
49 |
event.preventDefault();
|
50 |
var keywords = jQuery('#keywords').val();
|
51 |
jQuery('#keywords').val(SortWords(keywords));
|
52 |
});
|
53 |
|
54 |
-
jQuery('#tool_delete').click
|
55 |
event.preventDefault();
|
56 |
jQuery('#keywords').val('');
|
57 |
keywords_count();
|
58 |
});
|
59 |
|
60 |
-
jQuery('#tool_add_minus').click
|
61 |
event.preventDefault();
|
62 |
var keywords = jQuery('#keywords').val();
|
63 |
jQuery('#keywords').val(addMinus(keywords));
|
64 |
});
|
65 |
|
66 |
-
jQuery('#tool_del_minus').click
|
67 |
event.preventDefault();
|
68 |
var keywords = jQuery('#keywords').val();
|
69 |
jQuery('#keywords').val(delMinus(keywords));
|
70 |
});
|
71 |
|
72 |
-
jQuery('#tool_upper_first').click
|
73 |
event.preventDefault();
|
74 |
var keywords = jQuery('#keywords').val();
|
75 |
jQuery('#keywords').val(upperFirst(keywords));
|
@@ -79,20 +79,20 @@ jQuery(document).ready(function ($) {
|
|
79 |
/**
|
80 |
* Hot Trends
|
81 |
*/
|
82 |
-
jQuery("#trend_google").click
|
83 |
jQuery("#trend_google").prop("disabled", true).addClass("ui-state-disabled");
|
84 |
trend_google();
|
85 |
jQuery('#trend_google').removeAttr('disabled').removeClass('ui-state-disabled');
|
86 |
});
|
87 |
|
88 |
-
jQuery("#trend_goods").click
|
89 |
jQuery("#trend_goods").prop("disabled", true).addClass("ui-state-disabled");
|
90 |
amazon_trends();
|
91 |
jQuery('#trend_goods').removeAttr('disabled').removeClass('ui-state-disabled');
|
92 |
});
|
93 |
|
94 |
|
95 |
-
jQuery("#trend_keywords,#sug_keywords,#goods_keywords").change
|
96 |
var opt = jQuery(this).children(":selected");
|
97 |
add_keyword(opt.val());
|
98 |
opt.remove();
|
10 |
/** Suggestion tool */
|
11 |
var sug_parser = 'sug_google';
|
12 |
//sug parser source
|
13 |
+
jQuery("#sug_btn_group input").on('click', function () {
|
14 |
sug_parser = jQuery(this).val();
|
15 |
if (jQuery('#sug_query').val())
|
16 |
suggest(jQuery('#sug_query').val(), sug_parser);
|
17 |
});
|
18 |
+
jQuery('#sug_query').on('keyup', function () {
|
19 |
suggest(jQuery(this).val(), sug_parser);
|
20 |
});
|
21 |
//--------------------------------------
|
22 |
|
23 |
|
24 |
//add buttons
|
25 |
+
jQuery('#add_selected').on('click', function () {
|
26 |
add_selected()
|
27 |
});
|
28 |
|
29 |
+
jQuery('#add_all').on('click', function () {
|
30 |
add_all();
|
31 |
});
|
32 |
|
33 |
// keywords count
|
34 |
+
jQuery('#keywords').on('keyup', function (e) {
|
35 |
var code = e.which;
|
36 |
if (code == 13) {
|
37 |
keywords_count();
|
39 |
});
|
40 |
|
41 |
//tools
|
42 |
+
jQuery('#tool_capitalise').on('click', function (event) {
|
43 |
event.preventDefault();
|
44 |
var keywords = jQuery('#keywords').val();
|
45 |
jQuery('#keywords').val(keywords.capitalize());
|
46 |
});
|
47 |
|
48 |
+
jQuery('#tool_sort').on('click', function (event) {
|
49 |
event.preventDefault();
|
50 |
var keywords = jQuery('#keywords').val();
|
51 |
jQuery('#keywords').val(SortWords(keywords));
|
52 |
});
|
53 |
|
54 |
+
jQuery('#tool_delete').on('click', function (event) {
|
55 |
event.preventDefault();
|
56 |
jQuery('#keywords').val('');
|
57 |
keywords_count();
|
58 |
});
|
59 |
|
60 |
+
jQuery('#tool_add_minus').on('click', function (event) {
|
61 |
event.preventDefault();
|
62 |
var keywords = jQuery('#keywords').val();
|
63 |
jQuery('#keywords').val(addMinus(keywords));
|
64 |
});
|
65 |
|
66 |
+
jQuery('#tool_del_minus').on('click', function (event) {
|
67 |
event.preventDefault();
|
68 |
var keywords = jQuery('#keywords').val();
|
69 |
jQuery('#keywords').val(delMinus(keywords));
|
70 |
});
|
71 |
|
72 |
+
jQuery('#tool_upper_first').on('click', function (event) {
|
73 |
event.preventDefault();
|
74 |
var keywords = jQuery('#keywords').val();
|
75 |
jQuery('#keywords').val(upperFirst(keywords));
|
79 |
/**
|
80 |
* Hot Trends
|
81 |
*/
|
82 |
+
jQuery("#trend_google").on('click', function () {
|
83 |
jQuery("#trend_google").prop("disabled", true).addClass("ui-state-disabled");
|
84 |
trend_google();
|
85 |
jQuery('#trend_google').removeAttr('disabled').removeClass('ui-state-disabled');
|
86 |
});
|
87 |
|
88 |
+
jQuery("#trend_goods").on('click', function () {
|
89 |
jQuery("#trend_goods").prop("disabled", true).addClass("ui-state-disabled");
|
90 |
amazon_trends();
|
91 |
jQuery('#trend_goods').removeAttr('disabled').removeClass('ui-state-disabled');
|
92 |
});
|
93 |
|
94 |
|
95 |
+
jQuery("#trend_keywords,#sug_keywords,#goods_keywords").on('change', function () {
|
96 |
var opt = jQuery(this).children(":selected");
|
97 |
add_keyword(opt.val());
|
98 |
opt.remove();
|
res/js/prefill.js
CHANGED
@@ -10,7 +10,7 @@ jQuery(document).ready(function ($) {
|
|
10 |
updateProgress(0);
|
11 |
getPostIds();
|
12 |
|
13 |
-
jQuery('#start_prefill_begin').click
|
14 |
if (cegg_in_action) {
|
15 |
return false;
|
16 |
}
|
@@ -36,7 +36,7 @@ jQuery(document).ready(function ($) {
|
|
36 |
prefill();
|
37 |
});
|
38 |
|
39 |
-
jQuery('#start_prefill').click
|
40 |
if (cegg_in_action) {
|
41 |
return false;
|
42 |
}
|
@@ -57,7 +57,7 @@ jQuery(document).ready(function ($) {
|
|
57 |
prefill();
|
58 |
});
|
59 |
|
60 |
-
jQuery('#stop_prefill').click
|
61 |
cegg_p_stop = 1;
|
62 |
cegg_xxx.abort();
|
63 |
jQuery('#start_prefill').prop('disabled', false);
|
@@ -68,7 +68,7 @@ jQuery(document).ready(function ($) {
|
|
68 |
});
|
69 |
|
70 |
jQuery(function () {
|
71 |
-
jQuery('#keyword_source').change
|
72 |
if (jQuery('#keyword_source').val() == '_custom_field') {
|
73 |
jQuery('#custom_field').show();
|
74 |
} else {
|
10 |
updateProgress(0);
|
11 |
getPostIds();
|
12 |
|
13 |
+
jQuery('#start_prefill_begin').on('click', function () {
|
14 |
if (cegg_in_action) {
|
15 |
return false;
|
16 |
}
|
36 |
prefill();
|
37 |
});
|
38 |
|
39 |
+
jQuery('#start_prefill').on('click', function () {
|
40 |
if (cegg_in_action) {
|
41 |
return false;
|
42 |
}
|
57 |
prefill();
|
58 |
});
|
59 |
|
60 |
+
jQuery('#stop_prefill').on('click', function () {
|
61 |
cegg_p_stop = 1;
|
62 |
cegg_xxx.abort();
|
63 |
jQuery('#start_prefill').prop('disabled', false);
|
68 |
});
|
69 |
|
70 |
jQuery(function () {
|
71 |
+
jQuery('#keyword_source').on('change', function () {
|
72 |
if (jQuery('#keyword_source').val() == '_custom_field') {
|
73 |
jQuery('#custom_field').show();
|
74 |
} else {
|
res/js/price_alert.js
CHANGED
@@ -13,7 +13,7 @@ jQuery(document).ready(function ()
|
|
13 |
});
|
14 |
});
|
15 |
|
16 |
-
jQuery(".cegg-price-alert-wrap form").submit
|
17 |
{
|
18 |
event.preventDefault();
|
19 |
var $form = jQuery(this);
|
13 |
});
|
14 |
});
|
15 |
|
16 |
+
jQuery(".cegg-price-alert-wrap form").on("submit", function (event)
|
17 |
{
|
18 |
event.preventDefault();
|
19 |
var $form = jQuery(this);
|
res/logos/amazon-sa.png
ADDED
Binary file
|
templates/block_offers_logo.php
CHANGED
@@ -52,7 +52,7 @@ $amazon_last_updated = TemplateHelper::getLastUpdateFormattedAmazon($data);
|
|
52 |
<div class="text-muted"><strike><?php echo TemplateHelper::formatPriceCurrency($item['priceOld'], $item['currencyCode']); ?></strike></div>
|
53 |
<?php endif; ?>
|
54 |
<?php if ($stock_status = TemplateHelper::getStockStatusStr($item)): ?>
|
55 |
-
<div title="<?php echo \esc_attr(sprintf(__('Last updated on %s'
|
56 |
<?php echo \esc_html($stock_status); ?>
|
57 |
</div>
|
58 |
<?php endif; ?>
|
@@ -61,27 +61,21 @@ $amazon_last_updated = TemplateHelper::getLastUpdateFormattedAmazon($data);
|
|
61 |
|
62 |
<?php if (!empty($item['extra']['totalNew']) && $item['extra']['totalNew'] > 1): ?>
|
63 |
<div class="cegg-font60 cegg-lineheight15">
|
64 |
-
<?php echo $item['extra']['totalNew']; ?>
|
65 |
-
<?php _e('new', 'content-egg-tpl'); ?>
|
66 |
-
<?php if ($item['extra']['lowestNewPrice']): ?>
|
67 |
-
<?php _e('from', 'content-egg-tpl'); ?> <?php echo TemplateHelper::formatPriceCurrency($item['extra']['lowestNewPrice'], $item['currencyCode']); ?>
|
68 |
-
<?php endif; ?>
|
69 |
</div>
|
70 |
<?php endif; ?>
|
71 |
<?php if (!empty($item['extra']['totalUsed'])): ?>
|
72 |
<div class="cegg-font60 cegg-lineheight15">
|
73 |
-
<?php echo $item['extra']['totalUsed']; ?>
|
74 |
-
<?php _e('used', 'content-egg-tpl'); ?> <?php _e('from', 'content-egg-tpl'); ?>
|
75 |
-
<?php echo TemplateHelper::formatPriceCurrency($item['extra']['lowestUsedPrice'], $item['currencyCode']); ?>
|
76 |
</div>
|
77 |
<?php endif; ?>
|
78 |
|
79 |
<?php if ($amazon_last_updated): ?>
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
<?php endif; ?>
|
86 |
|
87 |
</div>
|
@@ -90,6 +84,15 @@ $amazon_last_updated = TemplateHelper::getLastUpdateFormattedAmazon($data);
|
|
90 |
<div class="cegg-btn-row">
|
91 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>" class="btn btn-danger btn-block"><span><?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?></span></a>
|
92 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
</div>
|
94 |
</div>
|
95 |
<?php endforeach; ?>
|
52 |
<div class="text-muted"><strike><?php echo TemplateHelper::formatPriceCurrency($item['priceOld'], $item['currencyCode']); ?></strike></div>
|
53 |
<?php endif; ?>
|
54 |
<?php if ($stock_status = TemplateHelper::getStockStatusStr($item)): ?>
|
55 |
+
<div title="<?php echo \esc_attr(sprintf(TemplateHelper::__('Last updated on %s'), TemplateHelper::getLastUpdateFormatted($item['module_id'], $post_id))); ?>" class="cegg-lineheight15 stock-status status-<?php echo \esc_attr(TemplateHelper::getStockStatusClass($item)); ?>">
|
56 |
<?php echo \esc_html($stock_status); ?>
|
57 |
</div>
|
58 |
<?php endif; ?>
|
61 |
|
62 |
<?php if (!empty($item['extra']['totalNew']) && $item['extra']['totalNew'] > 1): ?>
|
63 |
<div class="cegg-font60 cegg-lineheight15">
|
64 |
+
<?php echo sprintf(TemplateHelper::__('%d new from %s'), $item['extra']['totalNew'], TemplateHelper::formatPriceCurrency($item['extra']['lowestNewPrice'], $item['currencyCode'])); ?>
|
|
|
|
|
|
|
|
|
65 |
</div>
|
66 |
<?php endif; ?>
|
67 |
<?php if (!empty($item['extra']['totalUsed'])): ?>
|
68 |
<div class="cegg-font60 cegg-lineheight15">
|
69 |
+
<?php echo sprintf(TemplateHelper::__('%d used from %s'), $item['extra']['totalUsed'], TemplateHelper::formatPriceCurrency($item['extra']['lowestUsedPrice'], $item['currencyCode'])); ?>
|
|
|
|
|
70 |
</div>
|
71 |
<?php endif; ?>
|
72 |
|
73 |
<?php if ($amazon_last_updated): ?>
|
74 |
+
<div class="cegg-font60 cegg-lineheight15">
|
75 |
+
<?php echo sprintf(TemplateHelper::__('as of %s'), $amazon_last_updated); ?>
|
76 |
+
<?php TemplateHelper::printAmazonDisclaimer(); ?>
|
77 |
+
</div>
|
78 |
+
<?php endif; ?>
|
79 |
<?php endif; ?>
|
80 |
|
81 |
</div>
|
84 |
<div class="cegg-btn-row">
|
85 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>" class="btn btn-danger btn-block"><span><?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?></span></a>
|
86 |
</div>
|
87 |
+
<?php if ($merchant = TemplateHelper::getMerchantName($item)): ?>
|
88 |
+
<div class="text-center">
|
89 |
+
<small class="text-muted title-case">
|
90 |
+
<?php echo \esc_html($merchant); ?>
|
91 |
+
<?php TemplateHelper::printShopInfo($item); ?>
|
92 |
+
</small>
|
93 |
+
</div>
|
94 |
+
<?php endif; ?>
|
95 |
+
|
96 |
</div>
|
97 |
</div>
|
98 |
<?php endforeach; ?>
|
templates/block_offers_tile.php
CHANGED
@@ -30,7 +30,7 @@ $col_size = ceil(12 / $cols);
|
|
30 |
|
31 |
<div class="cegg-thumb">
|
32 |
<?php if ($item['img']): ?>
|
33 |
-
|
34 |
<?php endif; ?>
|
35 |
</div>
|
36 |
|
30 |
|
31 |
<div class="cegg-thumb">
|
32 |
<?php if ($item['img']): ?>
|
33 |
+
<?php TemplateHelper::displayImage($item, 170, 170); ?>
|
34 |
<?php endif; ?>
|
35 |
</div>
|
36 |
|
templates/block_price_alert.php
CHANGED
@@ -17,12 +17,12 @@ $all_items = TemplateHelper::sortAllByPrice($data);
|
|
17 |
$item = $all_items[0];
|
18 |
$module_id = $item['module_id'];
|
19 |
if (!$title)
|
20 |
-
$title = __('Set Alert for'
|
21 |
?>
|
22 |
|
23 |
<div class="egg-container cegg-price-tracker-item">
|
24 |
<div class="panel panel-default cegg-price-tracker-panel panel-warning">
|
25 |
-
<div class="panel-heading"
|
26 |
<div class="panel-body">
|
27 |
<?php $this->renderBlock('price_alert_inline', array('item' => $item, 'module_id' => $module_id, 'title' => $title)); ?>
|
28 |
</div>
|
17 |
$item = $all_items[0];
|
18 |
$module_id = $item['module_id'];
|
19 |
if (!$title)
|
20 |
+
$title = TemplateHelper::__('Set Alert for') . ' ' . TextHelper::truncate($item['title'], 100) . ' - ' . TemplateHelper::formatPriceCurrency($item['price'], $item['currencyCode']);
|
21 |
?>
|
22 |
|
23 |
<div class="egg-container cegg-price-tracker-item">
|
24 |
<div class="panel panel-default cegg-price-tracker-panel panel-warning">
|
25 |
+
<div class="panel-heading"><?php TemplateHelper::_e('Create Your Free Price Drop Alert!'); ?></div>
|
26 |
<div class="panel-body">
|
27 |
<?php $this->renderBlock('price_alert_inline', array('item' => $item, 'module_id' => $module_id, 'title' => $title)); ?>
|
28 |
</div>
|
templates/block_price_comparison.php
CHANGED
@@ -26,7 +26,7 @@ $amazon_last_updated = TemplateHelper::getLastUpdateFormattedAmazon($data);
|
|
26 |
<?php foreach ($all_items as $key => $item): ?>
|
27 |
<tr>
|
28 |
<td class="cegg-merhant_col">
|
29 |
-
<a<?php TemplateHelper::printRel()
|
30 |
<?php $merhant_ico = TemplateHelper::getMerhantIconUrl($item, true); ?>
|
31 |
<?php if ($merhant_ico): ?><img src="<?php echo esc_attr($merhant_ico); ?>" alt="<?php echo esc_attr($item['domain']); ?>" /><?php endif; ?>
|
32 |
<?php if ($merhant = TemplateHelper::getMerhantName($item)): ?>
|
@@ -36,37 +36,33 @@ $amazon_last_updated = TemplateHelper::getLastUpdateFormattedAmazon($data);
|
|
36 |
</td>
|
37 |
<td class="cegg-price_col text-center">
|
38 |
<?php if ($item['price']): ?>
|
39 |
-
<a<?php TemplateHelper::printRel()
|
40 |
<?php echo TemplateHelper::formatPriceCurrency($item['price'], $item['currencyCode']); ?>
|
41 |
<?php endif; ?>
|
42 |
|
43 |
<?php if (isset($item['stock_status']) && $item['stock_status'] == \ContentEgg\application\components\ContentProduct::STOCK_STATUS_OUT_OF_STOCK): ?>
|
44 |
-
<div title="<?php echo \esc_attr(sprintf(__('Last updated on %s'
|
45 |
<?php echo \esc_html(TemplateHelper::getStockStatusStr($item)); ?>
|
46 |
</div>
|
47 |
<?php endif; ?>
|
48 |
|
49 |
-
<?php if (!empty($item['extra']['totalNew'])): ?>
|
50 |
<div class="cegg-font60 cegg-lineheight15">
|
51 |
-
<?php echo $item['extra']['totalNew']; ?>
|
52 |
-
<?php _e('new', 'content-egg-tpl'); ?>
|
53 |
-
<?php if ($item['extra']['lowestNewPrice']): ?>
|
54 |
-
<?php _e('from', 'content-egg-tpl'); ?> <?php echo TemplateHelper::formatPriceCurrency($item['extra']['lowestNewPrice'], $item['currencyCode']); ?>
|
55 |
-
<?php endif; ?>
|
56 |
</div>
|
57 |
<?php endif; ?>
|
58 |
<?php if (!empty($item['extra']['totalUsed'])): ?>
|
59 |
<div class="cegg-font60 cegg-lineheight15">
|
60 |
-
<?php echo $item['extra']['totalUsed']; ?>
|
61 |
-
<?php _e('used', 'content-egg-tpl'); ?> <?php _e('from', 'content-egg-tpl'); ?>
|
62 |
-
<?php echo TemplateHelper::formatPriceCurrency($item['extra']['lowestUsedPrice'], $item['currencyCode']); ?>
|
63 |
</div>
|
64 |
<?php endif; ?>
|
|
|
|
|
65 |
</a>
|
66 |
|
67 |
</td>
|
68 |
-
<td class="cegg-buttons_col" style="background-color:<?php echo TemplateHelper::getButtonColor()
|
69 |
-
<a<?php TemplateHelper::printRel()
|
70 |
<?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?>
|
71 |
</a>
|
72 |
</td>
|
@@ -77,7 +73,10 @@ $amazon_last_updated = TemplateHelper::getLastUpdateFormattedAmazon($data);
|
|
77 |
</tbody>
|
78 |
</table>
|
79 |
<?php if ($amazon_last_updated): ?>
|
80 |
-
<div class="cegg-font60 cegg-lineheight15 text-right"
|
|
|
|
|
|
|
81 |
<?php endif; ?>
|
82 |
<div class="cegg-mb15"></div>
|
83 |
</div>
|
26 |
<?php foreach ($all_items as $key => $item): ?>
|
27 |
<tr>
|
28 |
<td class="cegg-merhant_col">
|
29 |
+
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>">
|
30 |
<?php $merhant_ico = TemplateHelper::getMerhantIconUrl($item, true); ?>
|
31 |
<?php if ($merhant_ico): ?><img src="<?php echo esc_attr($merhant_ico); ?>" alt="<?php echo esc_attr($item['domain']); ?>" /><?php endif; ?>
|
32 |
<?php if ($merhant = TemplateHelper::getMerhantName($item)): ?>
|
36 |
</td>
|
37 |
<td class="cegg-price_col text-center">
|
38 |
<?php if ($item['price']): ?>
|
39 |
+
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>">
|
40 |
<?php echo TemplateHelper::formatPriceCurrency($item['price'], $item['currencyCode']); ?>
|
41 |
<?php endif; ?>
|
42 |
|
43 |
<?php if (isset($item['stock_status']) && $item['stock_status'] == \ContentEgg\application\components\ContentProduct::STOCK_STATUS_OUT_OF_STOCK): ?>
|
44 |
+
<div title="<?php echo \esc_attr(sprintf(TemplateHelper::__('Last updated on %s'), TemplateHelper::getLastUpdateFormatted($item['module_id'], $post_id))); ?>" class="cegg-font60 cegg-lineheight15 stock-status status-<?php echo \esc_attr(TemplateHelper::getStockStatusClass($item)); ?>">
|
45 |
<?php echo \esc_html(TemplateHelper::getStockStatusStr($item)); ?>
|
46 |
</div>
|
47 |
<?php endif; ?>
|
48 |
|
49 |
+
<?php if (!empty($item['extra']['totalNew']) && $item['extra']['totalNew'] > 1): ?>
|
50 |
<div class="cegg-font60 cegg-lineheight15">
|
51 |
+
<?php echo sprintf(TemplateHelper::__('%d new from %s'), $item['extra']['totalNew'], TemplateHelper::formatPriceCurrency($item['extra']['lowestNewPrice'], $item['currencyCode'])); ?>
|
|
|
|
|
|
|
|
|
52 |
</div>
|
53 |
<?php endif; ?>
|
54 |
<?php if (!empty($item['extra']['totalUsed'])): ?>
|
55 |
<div class="cegg-font60 cegg-lineheight15">
|
56 |
+
<?php echo sprintf(TemplateHelper::__('%d used from %s'), $item['extra']['totalUsed'], TemplateHelper::formatPriceCurrency($item['extra']['lowestUsedPrice'], $item['currencyCode'])); ?>
|
|
|
|
|
57 |
</div>
|
58 |
<?php endif; ?>
|
59 |
+
|
60 |
+
|
61 |
</a>
|
62 |
|
63 |
</td>
|
64 |
+
<td class="cegg-buttons_col" style="background-color:<?php echo TemplateHelper::getButtonColor(); ?>;">
|
65 |
+
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>">
|
66 |
<?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?>
|
67 |
</a>
|
68 |
</td>
|
73 |
</tbody>
|
74 |
</table>
|
75 |
<?php if ($amazon_last_updated): ?>
|
76 |
+
<div class="cegg-font60 cegg-lineheight15 text-right">
|
77 |
+
<?php echo sprintf(TemplateHelper::__('Last Amazon price update was: %s'), $amazon_last_updated); ?>
|
78 |
+
<?php TemplateHelper::printAmazonDisclaimer(); ?>
|
79 |
+
</div>
|
80 |
<?php endif; ?>
|
81 |
<div class="cegg-mb15"></div>
|
82 |
</div>
|
templates/block_price_comparison_card.php
CHANGED
@@ -30,7 +30,7 @@ if (!$title)
|
|
30 |
<div class="col-sm-6 text-center cegg-image-container cegg-mb20">
|
31 |
<?php if ($item['img']): ?>
|
32 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>">
|
33 |
-
|
34 |
</a>
|
35 |
<?php endif; ?>
|
36 |
</div>
|
@@ -52,7 +52,7 @@ if (!$title)
|
|
52 |
|
53 |
<?php if ($amazon_last_updated): ?>
|
54 |
<div class="cegg-font60 cegg-lineheight15 text-right">
|
55 |
-
<?php
|
56 |
<?php TemplateHelper::printAmazonDisclaimer(); ?>
|
57 |
</div>
|
58 |
<?php endif; ?>
|
30 |
<div class="col-sm-6 text-center cegg-image-container cegg-mb20">
|
31 |
<?php if ($item['img']): ?>
|
32 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>">
|
33 |
+
<?php TemplateHelper::displayImage($item, 350, 350); ?>
|
34 |
</a>
|
35 |
<?php endif; ?>
|
36 |
</div>
|
52 |
|
53 |
<?php if ($amazon_last_updated): ?>
|
54 |
<div class="cegg-font60 cegg-lineheight15 text-right">
|
55 |
+
<?php echo sprintf(TemplateHelper::__('Last Amazon price update was: %s'), $amazon_last_updated); ?>
|
56 |
<?php TemplateHelper::printAmazonDisclaimer(); ?>
|
57 |
</div>
|
58 |
<?php endif; ?>
|
templates/block_price_history.php
CHANGED
@@ -17,7 +17,7 @@ $all_items = TemplateHelper::sortAllByPrice($data);
|
|
17 |
$item = $all_items[0];
|
18 |
$module_id = $item['module_id'];
|
19 |
if (!$title)
|
20 |
-
$title = __('Price History for'
|
21 |
?>
|
22 |
|
23 |
<div class="egg-container">
|
17 |
$item = $all_items[0];
|
18 |
$module_id = $item['module_id'];
|
19 |
if (!$title)
|
20 |
+
$title = TemplateHelper::__('Price History for') . ' ' . TextHelper::truncate($item['title'], 100);
|
21 |
?>
|
22 |
|
23 |
<div class="egg-container">
|
templates/block_price_statistics.php
CHANGED
@@ -28,7 +28,7 @@ else
|
|
28 |
|
29 |
<div class="egg-container">
|
30 |
<?php if ($title): ?>
|
31 |
-
<h3><?php echo esc_html($title); ?></h3>
|
32 |
<?php endif; ?>
|
33 |
|
34 |
<div class="well-lg">
|
28 |
|
29 |
<div class="egg-container">
|
30 |
<?php if ($title): ?>
|
31 |
+
<h3><?php echo \esc_html($title); ?></h3>
|
32 |
<?php endif; ?>
|
33 |
|
34 |
<div class="well-lg">
|
templates/block_text_links.php
CHANGED
@@ -36,7 +36,7 @@ $amazon_last_updated = TemplateHelper::getLastUpdateFormattedAmazon($data);
|
|
36 |
|
37 |
<?php if ($amazon_last_updated): ?>
|
38 |
<div class="cegg-font60 cegg-lineheight15 text-right">
|
39 |
-
<?php
|
40 |
<?php TemplateHelper::printAmazonDisclaimer(); ?>
|
41 |
</div>
|
42 |
<?php endif; ?>
|
36 |
|
37 |
<?php if ($amazon_last_updated): ?>
|
38 |
<div class="cegg-font60 cegg-lineheight15 text-right">
|
39 |
+
<?php echo sprintf(TemplateHelper::__('Last Amazon price update was: %s'), $amazon_last_updated); ?>
|
40 |
<?php TemplateHelper::printAmazonDisclaimer(); ?>
|
41 |
</div>
|
42 |
<?php endif; ?>
|
templates/block_top_listing.php
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Name: Top listing
|
4 |
+
* Modules:
|
5 |
+
* Module Types: PRODUCT
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
|
9 |
+
use ContentEgg\application\helpers\TemplateHelper;
|
10 |
+
|
11 |
+
$all_items = TemplateHelper::mergeAll($data, $order);
|
12 |
+
$ratings = TemplateHelper::generateStaticRatings(count($all_items));
|
13 |
+
?>
|
14 |
+
|
15 |
+
|
16 |
+
|
17 |
+
<div class="egg-container cegg-top-listing">
|
18 |
+
<?php if ($title): ?>
|
19 |
+
<h3><?php echo \esc_html($title); ?></h3>
|
20 |
+
<?php endif; ?>
|
21 |
+
|
22 |
+
<div class="egg-listcontainer">
|
23 |
+
|
24 |
+
<?php foreach ($all_items as $i => $item): ?>
|
25 |
+
|
26 |
+
<div class="row-products row">
|
27 |
+
<div class="col-md-2 col-sm-2 col-xs-3 cegg-image-cell">
|
28 |
+
|
29 |
+
<div class="cegg-position-container2">
|
30 |
+
<span class="cegg-position-text2"><?php echo (int) $i + 1; ?></span>
|
31 |
+
</div>
|
32 |
+
|
33 |
+
<?php if ($item['img']): ?>
|
34 |
+
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>">
|
35 |
+
<?php TemplateHelper::displayImage($item, 130, 100); ?>
|
36 |
+
</a>
|
37 |
+
<?php endif; ?>
|
38 |
+
</div>
|
39 |
+
<div class="col-md-6 col-sm-6 col-xs-6 cegg-desc-cell">
|
40 |
+
|
41 |
+
<?php if ($i == 0 && TemplateHelper::getChance($i)): ?>
|
42 |
+
<span class="label label-success">✓ <?php echo __('Best choice', 'content-egg-tpl'); ?></span>
|
43 |
+
<?php elseif ($i == 1 && TemplateHelper::getChance($i)): ?>
|
44 |
+
<span class="label label-success"><?php echo __('Recommended', 'content-egg-tpl'); ?></span>
|
45 |
+
<?php elseif ($i == 2 && TemplateHelper::getChance($i)): ?>
|
46 |
+
<span class="label label-success"><?php echo __('High quality', 'content-egg-tpl'); ?></span>
|
47 |
+
<?php endif; ?>
|
48 |
+
<div class="cegg-no-top-margin cegg-list-logo-title">
|
49 |
+
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>"><?php echo \esc_html(TemplateHelper::truncate($item['title'], 100)); ?></a>
|
50 |
+
</div>
|
51 |
+
<div class="text-center cegg-mt10 visible-xs">
|
52 |
+
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>" class="btn btn-danger btn-block"><span><?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?></span></a>
|
53 |
+
<?php if ($merchant = TemplateHelper::getMerhantName($item)): ?>
|
54 |
+
<small class="text-muted title-case"><?php echo \esc_html($merchant); ?></small>
|
55 |
+
<?php endif; ?>
|
56 |
+
</div>
|
57 |
+
</div>
|
58 |
+
|
59 |
+
<div class="col-md-2 col-sm-2 col-xs-3">
|
60 |
+
<?php TemplateHelper::printProgressRing($ratings[$i]); ?>
|
61 |
+
|
62 |
+
</div>
|
63 |
+
|
64 |
+
<div class="col-md-2 col-sm-2 col-xs-12 cegg-btn-cell hidden-xs">
|
65 |
+
<div class="cegg-btn-row">
|
66 |
+
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>" class="btn btn-danger btn-block"><span><?php TemplateHelper::buyNowBtnText(true, $item, $btn_text); ?></span></a>
|
67 |
+
</div>
|
68 |
+
<?php if ($merchant = TemplateHelper::getMerhantName($item)): ?>
|
69 |
+
<div class="text-center">
|
70 |
+
<small class="text-muted title-case"><?php echo \esc_html($merchant); ?></small>
|
71 |
+
</div>
|
72 |
+
<?php endif; ?>
|
73 |
+
|
74 |
+
</div>
|
75 |
+
</div>
|
76 |
+
|
77 |
+
|
78 |
+
|
79 |
+
<?php endforeach; ?>
|
80 |
+
|
81 |
+
</div>
|
82 |
+
</div>
|
83 |
+
|
84 |
+
|
templates/wdgt_price_movers_grid.php
CHANGED
@@ -57,7 +57,7 @@ $col_size = 12 / $cols;
|
|
57 |
<div class="col-xs-2 cegg-product-discount">
|
58 |
<span class="product-discount-value"><?php echo $item['_price_movers']['discount_percent']; ?><span class="product-discount-symbol">%</span></span>
|
59 |
<div class="product-discount-off">
|
60 |
-
<?php _e('OFF'
|
61 |
</div>
|
62 |
</div>
|
63 |
<?php endif; ?>
|
@@ -69,7 +69,7 @@ $col_size = 12 / $cols;
|
|
69 |
<?php if ($item['_price_movers']['discount_value']): ?>
|
70 |
<div class="text-muted"><strike title="<?php echo \esc_attr(TemplateHelper::getDaysAgo($item['_price_movers']['price_old_date'])); ?>"><?php echo TemplateHelper::formatPriceCurrency($item['_price_movers']['price_old'], $item['currencyCode']); ?></strike></div>
|
71 |
<?php endif; ?>
|
72 |
-
<span title="<?php echo \esc_attr(__('as of
|
73 |
|
74 |
<?php endif; ?>
|
75 |
|
57 |
<div class="col-xs-2 cegg-product-discount">
|
58 |
<span class="product-discount-value"><?php echo $item['_price_movers']['discount_percent']; ?><span class="product-discount-symbol">%</span></span>
|
59 |
<div class="product-discount-off">
|
60 |
+
<?php TemplateHelper::_e('OFF'); ?>
|
61 |
</div>
|
62 |
</div>
|
63 |
<?php endif; ?>
|
69 |
<?php if ($item['_price_movers']['discount_value']): ?>
|
70 |
<div class="text-muted"><strike title="<?php echo \esc_attr(TemplateHelper::getDaysAgo($item['_price_movers']['price_old_date'])); ?>"><?php echo TemplateHelper::formatPriceCurrency($item['_price_movers']['price_old'], $item['currencyCode']); ?></strike></div>
|
71 |
<?php endif; ?>
|
72 |
+
<span title="<?php echo \esc_attr(sprintf(TemplateHelper::__('as of %s'), TemplateHelper::dateFormatFromGmt($item['last_update']))); ?>" class="cegg-price cegg-price-color"><?php echo TemplateHelper::formatPriceCurrency($item['price'], $item['currencyCode']); ?></span>
|
73 |
|
74 |
<?php endif; ?>
|
75 |
|
templates/wdgt_price_movers_list.php
CHANGED
@@ -5,7 +5,6 @@
|
|
5 |
*/
|
6 |
|
7 |
use ContentEgg\application\helpers\TemplateHelper;
|
8 |
-
|
9 |
?>
|
10 |
|
11 |
|
@@ -15,7 +14,7 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
15 |
|
16 |
<?php foreach ($items as $key => $item): ?>
|
17 |
|
18 |
-
<div class="cegg-list-logo-title cegg-mt10<?php if ($is_shortcode) echo ' visible-xs';?> text-center">
|
19 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>"><?php echo esc_html(TemplateHelper::truncate($item['title'], 100)); ?></a>
|
20 |
</div>
|
21 |
|
@@ -46,7 +45,7 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
46 |
|
47 |
<?php if ($item['price']): ?>
|
48 |
|
49 |
-
<div title="<?php echo \esc_attr(__('as of
|
50 |
|
51 |
<?php if ($item['_price_movers']['discount_value'] > 0): ?>
|
52 |
<span class="text-success">
|
@@ -60,7 +59,7 @@ use ContentEgg\application\helpers\TemplateHelper;
|
|
60 |
<div class="<?php if ($is_shortcode) echo 'col-md-2 col-sm-2 ';?>col-xs-12 cegg-btn-cell">
|
61 |
|
62 |
<?php if ($item['_price_movers']['discount_percent'] > 0): ?>
|
63 |
-
|
64 |
<?php endif; ?>
|
65 |
|
66 |
<div class="cegg-btn-row">
|
5 |
*/
|
6 |
|
7 |
use ContentEgg\application\helpers\TemplateHelper;
|
|
|
8 |
?>
|
9 |
|
10 |
|
14 |
|
15 |
<?php foreach ($items as $key => $item): ?>
|
16 |
|
17 |
+
<div class="cegg-list-logo-title cegg-mb5 cegg-mt10<?php if ($is_shortcode) echo ' visible-xs';?> text-center">
|
18 |
<a<?php TemplateHelper::printRel(); ?> target="_blank" href="<?php echo $item['url']; ?>"><?php echo esc_html(TemplateHelper::truncate($item['title'], 100)); ?></a>
|
19 |
</div>
|
20 |
|
45 |
|
46 |
<?php if ($item['price']): ?>
|
47 |
|
48 |
+
<div title="<?php echo \esc_attr(sprintf(TemplateHelper::__('as of %s'), TemplateHelper::dateFormatFromGmt($item['last_update']))); ?>" class="cegg-price cegg-price-color cegg-price-<?php echo \esc_attr(TemplateHelper::getStockStatusClass($item)); ?>"><?php echo TemplateHelper::formatPriceCurrency($item['price'], $item['currencyCode']); ?></div>
|
49 |
|
50 |
<?php if ($item['_price_movers']['discount_value'] > 0): ?>
|
51 |
<span class="text-success">
|
59 |
<div class="<?php if ($is_shortcode) echo 'col-md-2 col-sm-2 ';?>col-xs-12 cegg-btn-cell">
|
60 |
|
61 |
<?php if ($item['_price_movers']['discount_percent'] > 0): ?>
|
62 |
+
<div class="text-center product-discount-off"><?php echo $item['_price_movers']['discount_percent']; ?>% <?php TemplateHelper::_e('OFF'); ?></div>
|
63 |
<?php endif; ?>
|
64 |
|
65 |
<div class="cegg-btn-row">
|