diff --git a/_build/config.json b/_build/config.json index ad4ec28..af6a49d 100644 --- a/_build/config.json +++ b/_build/config.json @@ -56,6 +56,11 @@ "value": "google", "area": "general" },{ + "key": "use_keywords", + "type": "combo-boolean", + "value": "1", + "area": "general" + }, { "key": "user_name", "type": "textfield", "area": "general", diff --git a/assets/components/seopro/js/mgr/seopro.js b/assets/components/seopro/js/mgr/seopro.js index de7faf7..70f57e1 100644 --- a/assets/components/seopro/js/mgr/seopro.js +++ b/assets/components/seopro/js/mgr/seopro.js @@ -10,7 +10,11 @@ Ext.extend(seoPro, Ext.Component, { seoPro.config.siteNameShow = !MODx.isEmpty(MODx.config['seopro.usesitename']); seoPro.config.searchEngine = MODx.isEmpty(MODx.config['seopro.searchengine']) ? 'google' : MODx.config['seopro.searchengine']; seoPro.config.titleFormat = MODx.isEmpty(MODx.config['seopro.title_format']) ? '' : MODx.config['seopro.title_format']; - seoPro.addKeywords(); + + if (parseInt(MODx.config['seopro.use_keywords']) === 1) { + seoPro.addKeywords(); + } + seoPro.addPanel(); Ext.each(seoPro.config.fields.split(','), function(field) { @@ -47,12 +51,17 @@ Ext.extend(seoPro, Ext.Component, { seoPro.changePrevBox(field); }); + var counterHtml = ''; + if (parseInt(MODx.config['seopro.use_keywords']) === 1) { + counterHtml += '' + _('seopro.keywords') + ':  0'; + } + counterHtml += '' + _('seopro.characters') + ': 1/' + seoPro.config.chars[field] + ''; + Ext.get('x-form-el-modx-resource-' + field).createChild({ tag: 'div', id: 'seopro-resource-' + field, class: 'seopro-counter', - html: '' + _('seopro.keywords') + ':  0\ - ' + _('seopro.characters') + ': 1/' + seoPro.config.chars[field] + '' + html: counterHtml }); seoPro.count(field); } @@ -147,33 +156,37 @@ Ext.extend(seoPro, Ext.Component, { charCount = charCount + extra.length; } } - var keywordCount = 0; - Ext.each(Ext.get('seopro-keywords').getValue().split(','), function(keyword) { - keyword = keyword.replace(/^\s+/, '').toLowerCase(); - if (keyword) { - var counter = Value.toLowerCase().match(new RegExp("(^|[ \s\n\r\t\.,'\(\"\+;!?:\-])" + keyword + "($|[ \s\n\r\t.,'\)\"\+!?:;\-])", 'gim')); - // var counter = Value.toLowerCase().match(new RegExp('\\b' + keyword + '\\b', 'g')); - if (counter) { - keywordCount = keywordCount + counter.length; + if (parseInt(MODx.config['seopro.use_keywords']) === 1) { + var keywordCount = 0; + Ext.each(Ext.get('seopro-keywords').getValue().split(','), function (keyword) { + keyword = keyword.replace(/^\s+/, '').toLowerCase(); + + if (keyword) { + var counter = Value.toLowerCase().match(new RegExp("(^|[ \s\n\r\t\.,'\(\"\+;!?:\-])" + keyword + "($|[ \s\n\r\t.,'\)\"\+!?:;\-])", 'gim')); + // var counter = Value.toLowerCase().match(new RegExp('\\b' + keyword + '\\b', 'g')); + if (counter) { + keywordCount = keywordCount + counter.length; + } } - } - }); - Ext.get('seopro-counter-chars-' + field + '-current').dom.innerHTML = charCount; - Ext.get('seopro-counter-keywords-' + field + '-current').dom.innerHTML = keywordCount; + }); - var maxKeywords = MODx.isEmpty(MODx.config['seopro.max_keywords_title']) ? '4' : MODx.config['seopro.max_keywords_title']; - if (field === 'description') { - // use different limit for the description - maxKeywords = MODx.isEmpty(MODx.config['seopro.max_keywords_description']) ? '8' : MODx.config['seopro.max_keywords_description']; - } - maxKeywords = parseInt(maxKeywords); + Ext.get('seopro-counter-keywords-' + field + '-current').dom.innerHTML = keywordCount; - if (keywordCount > 0 && keywordCount <= maxKeywords) { - Ext.get('seopro-counter-keywords-' + field).removeClass('red').addClass('green'); - } else { - Ext.get('seopro-counter-keywords-' + field).removeClass('green').addClass('red'); + var maxKeywords = MODx.isEmpty(MODx.config['seopro.max_keywords_title']) ? '4' : MODx.config['seopro.max_keywords_title']; + if (field === 'description') { + // use different limit for the description + maxKeywords = MODx.isEmpty(MODx.config['seopro.max_keywords_description']) ? '8' : MODx.config['seopro.max_keywords_description']; + } + maxKeywords = parseInt(maxKeywords); + + if (keywordCount > 0 && keywordCount <= maxKeywords) { + Ext.get('seopro-counter-keywords-' + field).removeClass('red').addClass('green'); + } else { + Ext.get('seopro-counter-keywords-' + field).removeClass('green').addClass('red'); + } } + Ext.get('seopro-counter-chars-' + field + '-current').dom.innerHTML = charCount; if (charCount > maxchars || charCount === 0) { Ext.get('seopro-counter-chars-' + field).removeClass('green').addClass('red'); diff --git a/core/components/seopro/elements/plugins/seopro.plugin.php b/core/components/seopro/elements/plugins/seopro.plugin.php index c9e79ea..b758b9b 100644 --- a/core/components/seopro/elements/plugins/seopro.plugin.php +++ b/core/components/seopro/elements/plugins/seopro.plugin.php @@ -160,11 +160,16 @@ if (in_array($template, $disabledTemplates)) { break; } - $seoKeywords = $modx->getObject('seoKeywords', array('resource' => $modx->resource->get('id'))); - if ($seoKeywords) { - $keyWords = $seoKeywords->get('keywords'); - $modx->setPlaceholder('seoPro.keywords', $keyWords); + + $useKeywords = (bool) $modx->getOption('seopro.use_keywords', null, true); + if ($useKeywords) { + $seoKeywords = $modx->getObject('seoKeywords', array('resource' => $modx->resource->get('id'))); + if ($seoKeywords) { + $keyWords = $seoKeywords->get('keywords'); + $modx->setPlaceholder('seoPro.keywords', $keyWords); + } } + // Render the meta title, based on system settings $titleFormat = $modx->getOption('seopro.title_format'); if (empty($titleFormat)) { diff --git a/core/components/seopro/lexicon/de/default.inc.php b/core/components/seopro/lexicon/de/default.inc.php index c774363..bca539a 100644 --- a/core/components/seopro/lexicon/de/default.inc.php +++ b/core/components/seopro/lexicon/de/default.inc.php @@ -32,4 +32,6 @@ $_lang['setting_seopro.searchengine_desc'] ='Mögliche Werte: google, yandex.'; $_lang['setting_seopro.title_format'] ='Format used for the meta title.'; $_lang['setting_seopro.title_format_desc'] ='Here you can specify the format used for the meta title used - in Google/Yandex preview. The rendered output is also available on frontend with [[+seoPro.title]].'; \ No newline at end of file + in Google/Yandex preview. The rendered output is also available on frontend with [[+seoPro.title]].'; +$_lang['setting_seopro.use_keywords'] ='Use keywords'; +$_lang['setting_seopro.use_keywords_desc'] ='Enable/disable the keywords field and keywords counters.'; diff --git a/core/components/seopro/lexicon/en/default.inc.php b/core/components/seopro/lexicon/en/default.inc.php index bbe2227..ec9367d 100644 --- a/core/components/seopro/lexicon/en/default.inc.php +++ b/core/components/seopro/lexicon/en/default.inc.php @@ -33,3 +33,5 @@ $_lang['setting_seopro.title_format'] ='Format used for the meta title.'; $_lang['setting_seopro.title_format_desc'] ='Here you can specify the format for the meta title used in Google/Yandex preview. The rendered output is also available on frontend with [[+seoPro.title]].'; +$_lang['setting_seopro.use_keywords'] ='Use keywords'; +$_lang['setting_seopro.use_keywords_desc'] ='Enable/disable the keywords field and keywords counters.'; diff --git a/core/components/seopro/lexicon/fr/default.inc.php b/core/components/seopro/lexicon/fr/default.inc.php index 6cd24f5..58af79e 100644 --- a/core/components/seopro/lexicon/fr/default.inc.php +++ b/core/components/seopro/lexicon/fr/default.inc.php @@ -12,3 +12,5 @@ $_lang['setting_seopro.delimiter'] = 'Séparateur dans Google/Yandex preview.'; $_lang['setting_seopro.delimiter_desc'] = 'Séparateur de titre et de nom de site'; +$_lang['setting_seopro.use_keywords'] ='Use keywords'; +$_lang['setting_seopro.use_keywords_desc'] ='Enable/disable the keywords field and keywords counters.'; diff --git a/core/components/seopro/lexicon/it/default.inc.php b/core/components/seopro/lexicon/it/default.inc.php index a125a03..b37c66a 100644 --- a/core/components/seopro/lexicon/it/default.inc.php +++ b/core/components/seopro/lexicon/it/default.inc.php @@ -10,3 +10,5 @@ $_lang['seopro.prevbox_yandex'] = 'Come verrà visualizzato in Yandex?'; $_lang['seopro.emptymetadescription']='Please enter a description'; $_lang['seopro.branding_text']='This site is optimized with the Sterc seoPro plugin - https://github.com/Sterc/SEOPro.'; +$_lang['setting_seopro.use_keywords'] ='Use keywords'; +$_lang['setting_seopro.use_keywords_desc'] ='Enable/disable the keywords field and keywords counters.'; diff --git a/core/components/seopro/lexicon/nl/default.inc.php b/core/components/seopro/lexicon/nl/default.inc.php index 8cf9876..0e79aec 100644 --- a/core/components/seopro/lexicon/nl/default.inc.php +++ b/core/components/seopro/lexicon/nl/default.inc.php @@ -33,3 +33,5 @@ $_lang['setting_seopro.title_format'] ='Format used for the meta title.'; $_lang['setting_seopro.title_format_desc'] ='Here you can specify the format used for the meta title used in Google/Yandex preview. The rendered output is also available on frontend with [[+seoPro.title]].'; +$_lang['setting_seopro.use_keywords'] ='Gebruik keywords'; +$_lang['setting_seopro.use_keywords_desc'] ='Zet het keywords veld inclusief de keyword counters aan/uit.'; diff --git a/core/components/seopro/lexicon/pl/default.inc.php b/core/components/seopro/lexicon/pl/default.inc.php index 0d03385..7705b36 100644 --- a/core/components/seopro/lexicon/pl/default.inc.php +++ b/core/components/seopro/lexicon/pl/default.inc.php @@ -23,3 +23,5 @@ $_lang['setting_seopro.title_format'] ='Format used for the meta title.'; $_lang['setting_seopro.title_format_desc'] ='Here you can specify the format used for the meta title used in Google/Yandex preview. The rendered output is also available on frontend with [[+seoPro.title]].'; +$_lang['setting_seopro.use_keywords'] ='Use keywords'; +$_lang['setting_seopro.use_keywords_desc'] ='Enable/disable the keywords field and keywords counters.'; diff --git a/core/components/seopro/lexicon/ru/default.inc.php b/core/components/seopro/lexicon/ru/default.inc.php index f85cc5a..ed22aa0 100644 --- a/core/components/seopro/lexicon/ru/default.inc.php +++ b/core/components/seopro/lexicon/ru/default.inc.php @@ -15,3 +15,5 @@ $_lang['setting_seopro.title_format'] ='Format used for the meta title.'; $_lang['setting_seopro.title_format_desc'] ='Here you can specify the format used for the meta title used in Google/Yandex preview. The rendered output is also available on frontend with [[+seoPro.title]].'; +$_lang['setting_seopro.use_keywords'] ='Use keywords'; +$_lang['setting_seopro.use_keywords_desc'] ='Enable/disable the keywords field and keywords counters.';