diff --git a/CHANGELOG.md b/CHANGELOG.md
index f93245a..34aa9f8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,40 +1,3 @@
# MetaSEO - Changelog
-## MetaSEO 2.0.1
-
-- Bugfixes
-
-## MetaSEO 2.0
-
-- Added TYPO3 7.x support
-- Implemented Signals
-- Implemented blacklist of PAGE typeNum in SetupTS
-- Implemented blacklist for index/noindex robots metatag
-- Implemented blacklist for canonical url
-- Implemented canonical url support for mounted pages, pointing to real page instead of mount path (disabled by default)
-- Implemented expiry date for sitemap entries (customizable with SetupTS or Connector)
-- Implemented pagetitle caching (if there is any USER_INT on the current page)
-- Removed own caching solution, using TYPO3 caching framework now
-- Fixed many bugs and issues
-- Fixed coding style (added .editorconfig)
-- Refactored whole extension
-- Added protocol selection for canonical Urls in case protocol is undefined in page properties
- (via plugin.metaseo.metaTags.canonicalUrl.fallbackProtocol)
-
-## Beta features
-
-- If you have any issues with cached pagetitle: set `plugin.metaseo.pageTitle.caching = 0` to disable this feature.
-
-### Migrate from 1.x to 2.x
-
-- TypoScript Constant `plugin.metaseo.metaTags.useCanonical` changed to `plugin.metaseo.metaTags.canonicalUrl`
-- TypoScript Setup `plugin.metaseo.metaTags.useCanonical` changed to `plugin.metaseo.metaTags.canonicalUrl`
-- Names of Hooks changed, now camelCase
-
-
-## MetaSEO 1.0 (2014-04-20)
-
-- Version 1.0.0
-- Fork of metaseo
-- Fixed several bugs and improved codebase
-- Fixed and improved manual (now reStructuredText)
+Latest version of the [changelog](https://github.com/mblaschke/TYPO3-metaseo/blob/develop/Documentation/ChangeLog/Index.rst)
\ No newline at end of file
diff --git a/Classes/Controller/Ajax/AbstractPageSeoController.php b/Classes/Controller/Ajax/AbstractPageSeoController.php
index f221562..d8a1834 100644
--- a/Classes/Controller/Ajax/AbstractPageSeoController.php
+++ b/Classes/Controller/Ajax/AbstractPageSeoController.php
@@ -169,7 +169,7 @@ protected function executeUpdate()
}
$pid = (int)$this->postVar['pid'];
- $fieldName = strtolower((string)$this->postVar['field']);
+ $fieldName = (string)$this->postVar['field'];
$fieldValue = (string)$this->postVar['value'];
$sysLanguage = (int)$this->postVar['sysLanguage'];
@@ -195,6 +195,8 @@ protected function executeUpdate()
// Security checks
// ############################
+ // generates the excludelist, based on TCA/exclude-flag and non_exclude_fields for the user:
+ $excludedTablesAndFields = array_flip($this->getDataHandler()->getExcludeListArray());
// check if user is able to modify pages
if (!$this->getBackendUserAuthentication()->check('tables_modify', 'pages')) {
@@ -221,8 +223,9 @@ protected function executeUpdate()
}
// check if user is able to modify the field of pages
- if (!$this->getBackendUserAuthentication()
- ->check('non_exclude_fields', 'pages:' . $fieldName)
+ if (isset($excludedTablesAndFields['pages-' . $fieldName])
+ && !$this->getBackendUserAuthentication()
+ ->check('non_exclude_fields', 'pages:' . $fieldName)
) {
// No access
@@ -249,8 +252,9 @@ protected function executeUpdate()
}
// check if user is able to modify the field of pages
- if (!$this->getBackendUserAuthentication()
- ->check('non_exclude_fields', 'pages_language_overlay:' . $fieldName)
+ if (isset($excludedTablesAndFields['pages_language_overlay-' . $fieldName])
+ && !$this->getBackendUserAuthentication()
+ ->check('non_exclude_fields', 'pages_language_overlay:' . $fieldName)
) {
// No access
@@ -267,7 +271,7 @@ protected function executeUpdate()
// ############################
switch ($fieldName) {
- case 'lastupdated':
+ case 'lastUpdated':
// transform to unix timestamp
$fieldValue = strtotime($fieldValue);
break;
diff --git a/Classes/Controller/Ajax/PageSeo/MetaDataController.php b/Classes/Controller/Ajax/PageSeo/MetaDataController.php
index 209adce..3167246 100644
--- a/Classes/Controller/Ajax/PageSeo/MetaDataController.php
+++ b/Classes/Controller/Ajax/PageSeo/MetaDataController.php
@@ -40,7 +40,7 @@ protected function initFieldList()
'abstract',
'author',
'author_email',
- 'lastupdated',
+ 'lastUpdated',
);
}
@@ -53,10 +53,10 @@ protected function getIndex(array $page, $depth, $sysLanguage)
unset($row);
foreach ($list as &$row) {
- if (!empty($row['lastupdated'])) {
- $row['lastupdated'] = date('Y-m-d', $row['lastupdated']);
+ if (!empty($row['lastUpdated'])) {
+ $row['lastUpdated'] = date('Y-m-d', $row['lastUpdated']);
} else {
- $row['lastupdated'] = '';
+ $row['lastUpdated'] = '';
}
}
unset($row);
diff --git a/Classes/Controller/BackendPageSeoController.php b/Classes/Controller/BackendPageSeoController.php
index 6372142..16c5332 100644
--- a/Classes/Controller/BackendPageSeoController.php
+++ b/Classes/Controller/BackendPageSeoController.php
@@ -166,8 +166,7 @@ protected function handleSubAction($listType)
// Flag (if available)
if (!empty($langRow['flag'])) {
- $flag .= '';
+ $flag .= IconUtility::getSpriteIcon('flags-' . $langRow['flag']);
$flag .= ' ';
}
@@ -216,9 +215,9 @@ protected function handleSubAction($listType)
'criteriaFulltext' => '',
'realurlAvailable' => $realUrlAvailable,
'sprite' => array(
- 'edit' => IconUtility::getSpriteIcon('actions-document-open'),
- 'info' => IconUtility::getSpriteIcon('actions-document-info'),
- 'editor' => IconUtility::getSpriteIcon('actions-system-options-view'),
+ 'edit' => $this->getIcon('actions-document-open'),
+ 'info' => $this->getIcon('actions-document-info'),
+ 'editor' => $this->getIcon('actions-system-options-view'),
),
);
@@ -244,7 +243,7 @@ protected function handleSubAction($listType)
'page_abstract' => 'header.sitemap.page_abstract',
'page_author' => 'header.sitemap.page_author',
'page_author_email' => 'header.sitemap.page_author_email',
- 'page_lastupdated' => 'header.sitemap.page_lastupdated',
+ 'page_lastUpdated' => 'header.sitemap.page_lastUpdated',
'page_geo_lat' => 'header.sitemap.page_geo_lat',
'page_geo_long' => 'header.sitemap.page_geo_long',
'page_geo_place' => 'header.sitemap.page_geo_place',
@@ -290,4 +289,28 @@ protected function handleSubAction($listType)
'
);
}
+
+ private function getIcon($iconName)
+ {
+ $html = IconUtility::getSpriteIcon($iconName);
+ //Ugly workaround to make icons clickable in TYPO3 7.6.
+ //It's deprecated anyways, therefore changes in the future when we drop support for 6.2.
+ if (stripos('svg', $html)) {
+ //not found
+ return $html; //Typo3 6.2. That works.
+ } else {
+ //found => TYPO3 7 workaround must be applied.
+ switch ($iconName) {
+ case 'actions-document-open':
+ return '';
+ case 'actions-document-info':
+ return '';
+ case 'actions-system-options-view':
+ return '';
+ }
+ }
+ }
}
diff --git a/Classes/Controller/BackendSitemapController.php b/Classes/Controller/BackendSitemapController.php
index 7ab3c1a..7b86e2e 100644
--- a/Classes/Controller/BackendSitemapController.php
+++ b/Classes/Controller/BackendSitemapController.php
@@ -222,13 +222,12 @@ public function sitemapAction()
$this->translate('empty.search.page_language'),
);
- foreach ($languageFullList as $langId => $langRow) {
+ foreach ($languageFullList as $langId => &$langRow) {
$flag = '';
// Flag (if available)
if (!empty($langRow['flag'])) {
- $flag .= '';
+ $flag.= IconUtility::getSpriteIcon('flags-' . $langRow['flag']);
$flag .= ' ';
}
@@ -240,6 +239,7 @@ public function sitemapAction()
$label,
$flag
);
+ $langRow['flagHtml'] = $flag;
}
// Depth
diff --git a/Classes/Hook/SitemapIndexHook.php b/Classes/Hook/SitemapIndexHook.php
index b27cb80..adcd4b4 100644
--- a/Classes/Hook/SitemapIndexHook.php
+++ b/Classes/Hook/SitemapIndexHook.php
@@ -181,6 +181,16 @@ protected static function processLinkUrl($linkUrl)
// remove abs ref prefix
if ($absRefPrefix !== false && strpos($ret, $absRefPrefix) === 0) {
+ $parsedUrl = parse_url($linkUrl);
+ if ($parsedUrl !== false
+ && $parsedUrl['path'] === $absRefPrefix
+ && substr($absRefPrefix, -1) === '/' //sanity check: must end with /
+ ) {
+ //for root pages: treat '/' like a suffix, not like a prefix => don't remove last '/' in that case!
+ //This ensures that for an absRefPrefix = '/abc/' or '/' we return '/' instead of empty strings
+ $absRefPrefixLength--;
+ }
+
$ret = substr($ret, $absRefPrefixLength);
}
diff --git a/Classes/Page/Part/MetatagPart.php b/Classes/Page/Part/MetatagPart.php
index 4576ae6..ef26608 100644
--- a/Classes/Page/Part/MetatagPart.php
+++ b/Classes/Page/Part/MetatagPart.php
@@ -633,10 +633,10 @@ protected function processMetaTags(array &$tags)
foreach ($keyList as $key) {
if (!empty($tags[$key]['attributes'])) {
foreach ($markerList as $marker => $value) {
- // only replace markers if they are present
unset($metaTagAttribute);
foreach ($tags[$key]['attributes'] as &$metaTagAttribute) {
- if (strpos($metaTagAttribute, $marker)) {
+ // only replace markers if they are present
+ if (strpos($metaTagAttribute, $marker) !== false) {
$metaTagAttribute = str_replace($marker, $value, $metaTagAttribute);
}
}
@@ -811,25 +811,21 @@ protected function collectMetaDataFromConnector()
// Std meta tags
foreach ($storeMeta['meta'] as $metaKey => $metaValue) {
- $metaValue = trim($metaValue);
-
if ($metaValue === null) {
// Remove meta
unset($this->tsSetupSeo[$metaKey]);
} elseif (!empty($metaValue)) {
- $this->tsSetupSeo[$metaKey] = $metaValue;
+ $this->tsSetupSeo[$metaKey] = trim($metaValue);
}
}
// Custom meta tags
foreach ($storeMeta['custom'] as $metaKey => $metaValue) {
- $metaValue = trim($metaValue);
-
if ($metaValue === null) {
// Remove meta
unset($ret[$metaKey]);
} elseif (!empty($metaValue)) {
- $ret[$metaKey] = $metaValue;
+ $ret[$metaKey] = trim($metaValue);
}
}
@@ -1248,16 +1244,16 @@ protected function generateLinkMetaTags()
$currentIsRootpage = ($currentPage['uid'] === $rootPage['uid']);
- // Generate rootpage url
- $rootPageUrl = null;
- if (!empty($rootPage)) {
- $rootPageUrl = $this->generateLink($rootPage['uid']);
- }
-
// Only generate up, prev and next if NOT rootpage
// to prevent linking to other domains
// see https://github.com/mblaschke/TYPO3-metaseo/issues/5
if (!$currentIsRootpage) {
+ $startPage = $GLOBALS['TSFE']->cObj->HMENU($this->tsSetupSeo['sectionLinks.']['start.']);
+ $startPageUrl = null;
+ if (!empty($startPage)) {
+ $startPageUrl = $this->generateLink($startPage);
+ }
+
$prevPage = $GLOBALS['TSFE']->cObj->HMENU($this->tsSetupSeo['sectionLinks.']['prev.']);
$prevPageUrl = null;
if (!empty($prevPage)) {
@@ -1272,12 +1268,12 @@ protected function generateLinkMetaTags()
}
// Start (first page in rootline -> root page)
- if (!empty($rootPageUrl)) {
+ if (!empty($startPageUrl)) {
$this->metaTagList['link.rel.start'] = array(
'tag' => 'link',
'attributes' => array(
'rel' => 'start',
- 'href' => $rootPageUrl,
+ 'href' => $startPageUrl,
),
);
}
@@ -1332,7 +1328,7 @@ protected function generateCanonicalUrl()
{
//User has specified a canonical URL in the page properties
if (!empty($this->pageRecord['tx_metaseo_canonicalurl'])) {
- return $this->pageRecord['tx_metaseo_canonicalurl'];
+ return $this->generateLink($this->pageRecord['tx_metaseo_canonicalurl']);
}
//Fallback to global settings to generate Url
diff --git a/Classes/Utility/GeneralUtility.php b/Classes/Utility/GeneralUtility.php
index 80f020f..c157fe6 100644
--- a/Classes/Utility/GeneralUtility.php
+++ b/Classes/Utility/GeneralUtility.php
@@ -392,7 +392,7 @@ public static function callHookAndSignal($class, $name, $obj, &$args = null)
/** @var \TYPO3\CMS\Extbase\SignalSlot\Dispatcher $signalSlotDispatcher */
$signalSlotDispatcher = $objectManager->get('TYPO3\\CMS\\Extbase\\SignalSlot\\Dispatcher');
}
- $signalSlotDispatcher->dispatch($class, $name, array($args, $obj));
+ list($args) = $signalSlotDispatcher->dispatch($class, $name, array($args, $obj));
}
diff --git a/Classes/Utility/SitemapUtility.php b/Classes/Utility/SitemapUtility.php
index 62d44b6..83fd113 100644
--- a/Classes/Utility/SitemapUtility.php
+++ b/Classes/Utility/SitemapUtility.php
@@ -56,6 +56,7 @@ class SitemapUtility
PageRepository::DOKTYPE_SPACER, // Menu separator (TYPO3 CMS)
PageRepository::DOKTYPE_SYSFOLDER, // Folder (TYPO3 CMS)
PageRepository::DOKTYPE_RECYCLER, // Recycler (TYPO3 CMS)
+ PageRepository::DOKTYPE_LINK, // External Link (TYPO3 CMS)
);
/**
diff --git a/Configuration/TypoScript/setup.txt b/Configuration/TypoScript/setup.txt
index 2b4c5a3..b1243a0 100644
--- a/Configuration/TypoScript/setup.txt
+++ b/Configuration/TypoScript/setup.txt
@@ -188,6 +188,23 @@ plugin.metaseo {
# section links (start, up, next, prev)
sectionLinks =
sectionLinks {
+
+ start = HMENU
+ start {
+ special = browse
+ special {
+ items = first
+ first.fields.title =
+ }
+
+ 1 = TMENU
+ 1.NO {
+ wrapItemAndSub = {field:uid}
+ wrapItemAndSub.insertData = 1
+ doNotLinkIt = 1
+ }
+ }
+
prev = HMENU
prev {
special = browse
diff --git a/Documentation/AdministratorManual/Index.rst b/Documentation/AdministratorManual/Index.rst
index ed3d4d3..26dfc2c 100644
--- a/Documentation/AdministratorManual/Index.rst
+++ b/Documentation/AdministratorManual/Index.rst
@@ -249,3 +249,4 @@ If you want to activate a “real” sitemap.xml feature (eg. http://example.com
),
);
+
diff --git a/Documentation/ChangeLog/Index.rst b/Documentation/ChangeLog/Index.rst
index 8dc02cb..e7eb6f5 100644
--- a/Documentation/ChangeLog/Index.rst
+++ b/Documentation/ChangeLog/Index.rst
@@ -11,13 +11,109 @@
Changelog
=========
-============= ==============================================================================
-Version Changes
-============= ==============================================================================
-1.0.0 **Fork of Fork of predecessor "tq_seo"**
-
- - Major improvements of features and codebase
- - Fixed several major and minor bugs
- - Fixed manual (now reStructuredText)
- - Fixed sitemap url generation in TYPO3 scheduler
-============= ==============================================================================
+
++-------------+----------------------------------------------------------------------------------------------------+
+| Version | Changes |
++=============+====================================================================================================+
+| **2.0.2** | **Bugfix release** |
+| | |
+| | **Migration to 2.0.2:** |
+| | |
+| | - Non-admin backend users can now to edit page properties, if permission is given by TYPO3 |
+| | - Link generation (start/prev/next) now uses first element of group for start |
+| | |
+| | `Milestone 2.0.2 `_ |
+| | `Changes in 2.0.2 `_ |
++-------------+----------------------------------------------------------------------------------------------------+
+| **2.0.1** | **Bugfix release** (2016-11-06) |
+| | |
+| | `Milestone 2.0.1 `_ |
+| | `Changes in 2.0.1 `_ |
++-------------+----------------------------------------------------------------------------------------------------+
+| **2.0.0** | **Major release** (2016-03-07) |
+| | |
+| | - Added TYPO3 CMS 7.6 support |
+| | (still backwards compatible to TYPO3 CMS 6.2 and PHP 5.3) |
+| | - Refactoring of Ajax Requests: PSR-7, Exception Handling, OOP |
+| | - Changed coding style: Now uses PSR-2, added `.editorconfig` file |
+| | - Refactored large portions of the codebase |
+| | - Implemented signals |
+| | - Implemented blacklist of PAGE typeNum in SetupTS |
+| | - Implemented blacklist for index/noindex robots metatag |
+| | - Implemented blacklist for canonical url |
+| | - Implemented canonical url support for mounted pages, |
+| | pointing to real page instead of mount path (disabled by default) |
+| | - Implemented expiry date for sitemap entries (customizable with SetupTS or Connector) |
+| | - Implemented pagetitle caching (if there is any `USER_INT` on the current page) |
+| | - Removed own caching solution, using TYPO3 caching framework now |
+| | - Added fallback for schema selection for canonical Urls in case protocol is undefined |
+| | in page properties (via `plugin.metaseo.metaTags.canonicalUrl.fallbackProtocol`) |
+| | - Bugfixes and improvements |
+| | |
+| | **Migration from 1.0.x to 2.0.0:** |
+| | |
+| | - Link generation (`start/prev/next`) is now disabled by default |
+| | - TypoScript Constant `plugin.metaseo.metaTags.useCanonical` |
+| | changed to `plugin.metaseo.metaTags.canonicalUrl` |
+| | - TypoScript Setup `plugin.metaseo.metaTags.useCanonical` |
+| | changed to `plugin.metaseo.metaTags.canonicalUrl` |
+| | - Changed names of hooks, use camelCase now |
+| | |
+| | `Milestone 2.0.0 `_ |
+| | `Changes in 2.0.0 `_ |
++-------------+----------------------------------------------------------------------------------------------------+
+| **1.0.8** | **Bugfix release** (2014-04-25) |
+| | |
+| | `Milestone 1.0.8 `_ |
+| | `Changes in 1.0.8 `_ |
++-------------+----------------------------------------------------------------------------------------------------+
+| **1.0.7** | **Bugfix release** (2015-04-18) |
+| | |
+| | `Milestone 1.0.7 `_ |
+| | `Changes in 1.0.7 `_ |
++-------------+----------------------------------------------------------------------------------------------------+
+| **1.0.6** | **Bugfix release** (2015-02-26) |
+| | |
+| | `Milestone 1.0.6 `_ |
+| | `Changes in 1.0.6 `_ |
++-------------+----------------------------------------------------------------------------------------------------+
+| **1.0.5** | **Bugfix release** (2014-10-24) |
+| | |
+| | `Milestone 1.0.5 `_ |
+| | `Changes in 1.0.5 `_ |
++-------------+----------------------------------------------------------------------------------------------------+
+| **1.0.4** | **Bugfix release** (2014-09-15) |
+| | |
+| | `Milestone 1.0.4 `_ |
+| | `Changes in 1.0.4 `_ |
++-------------+----------------------------------------------------------------------------------------------------+
+| **1.0.3** | **Bugfix release** (2014-09-10) |
+| | |
+| | `Milestone 1.0.3 `_ |
+| | `Changes in 1.0.3 `_ |
++-------------+----------------------------------------------------------------------------------------------------+
+| **1.0.2** | **Bugfix release** (2014-09-04) |
+| | |
+| | `Milestone 1.0.2 `_ |
+| | `Changes in 1.0.2 `_ |
++-------------+----------------------------------------------------------------------------------------------------+
+| **1.0.1** | **Bugfix release** (2014-09-03) |
+| | |
+| | `Milestone 1.0.1 `_ |
+| | `Changes in 1.0.1 `_ |
++-------------+----------------------------------------------------------------------------------------------------+
+| **1.0.0** | **Major release** (2014-08-31) |
+| | |
+| | - Forked from predecessor "tq_seo" |
+| | - Major improvements of features and codebase |
+| | - Fixed several major and minor bugs |
+| | - Fixed and improved documentation (now reStructuredText) |
+| | - Fixed sitemap url generation in TYPO3 scheduler |
+| | |
+| | `Milestone 1.0.0 `_ |
++-------------+----------------------------------------------------------------------------------------------------+
+
+
+Latest information also is available in the list of
+`milestones `_ and tagged
+`releases `_.
diff --git a/Documentation/Constants/Index.rst b/Documentation/Constants/Index.rst
index 90fe4ed..af53b68 100644
--- a/Documentation/Constants/Index.rst
+++ b/Documentation/Constants/Index.rst
@@ -105,7 +105,7 @@ Following Markers are available:
============================== ========================================================== =================
Marker Description Example value
============================== ========================================================== =================
-%YEAR% Replacement for the current year 2014
+%YEAR% Replacement for the current year 2017
============================== ========================================================== =================
UserAgent
diff --git a/Documentation/DeveloperManual/Index.rst b/Documentation/DeveloperManual/Index.rst
index c968dbf..36e74ee 100644
--- a/Documentation/DeveloperManual/Index.rst
+++ b/Documentation/DeveloperManual/Index.rst
@@ -107,6 +107,7 @@ Example for Google Analytics in TypoScript-Setup:
)
}
+
Template customization (advanced)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -141,7 +142,6 @@ Example for your own Google Analytics Template:
}
-
Sitemap
-------
========================================================== ========================================================== ======================
@@ -289,3 +289,4 @@ All hooks are also available as Extbase Signal. Please use signals instead of ho
// ------------------------------------------------------------------------
}
+
diff --git a/Documentation/FaqManual/Index.rst b/Documentation/FaqManual/Index.rst
index d3f4fb1..90f5447 100644
--- a/Documentation/FaqManual/Index.rst
+++ b/Documentation/FaqManual/Index.rst
@@ -28,7 +28,7 @@ Indexed Sitemap
---------------
| **Problem:**
-| When I want to open my sitemap I get an error "The page is not configured! [type=841131|841132|841133][]. This means that there is no TypoScript object of type PAGE with typeNum=841131|841132|841133 configured."
+| When I want to open my sitemap I get an error "The page is not configured! `[type=841131|841132|841133][]`. This means that there is no TypoScript object of type PAGE with `typeNum=841131|841132|841133` configured."
| **Solution:**
| Make sure you have configured MetaSEO "Include static" as described in the installation manual.
|
diff --git a/Documentation/Index.rst b/Documentation/Index.rst
index 05db1fe..3fcc174 100644
--- a/Documentation/Index.rst
+++ b/Documentation/Index.rst
@@ -33,7 +33,7 @@ MetaSEO
metatag,metatags,seo,sitemap,google,searchengine,tqseo,tq_seo,metaseo,pagetitle
:Copyright:
- 2014
+ 2014-2016
:Author:
Markus Blaschke
diff --git a/Documentation/Introduction/Index.rst b/Documentation/Introduction/Index.rst
index 05047a6..b376042 100644
--- a/Documentation/Introduction/Index.rst
+++ b/Documentation/Introduction/Index.rst
@@ -40,8 +40,8 @@ The following metatags are supported:
- Revisit
- Geo-location information
- Searchengine crawler instructions
-- Google Analytics (with anonymized IP and download link tracking, asynchronous implementation since 4.0)
-- Piwik integration (asynchronous implementation since 4.0)
+- Google Analytics (asynchronous, with anonymized IP and download link tracking)
+- Piwik integration (asynchronous)
- Google, MSN, Yahoo and WebOfTrust Verification
- Google+ Direct Connect
- Canonical URL (custom URL or autogenerated for current page)
@@ -127,6 +127,7 @@ Thanks to...
- TEQneers GmbH & Co. KG for sponsoring the predecessor "tq_seo"
- jweiland.net especially Wolfgang Wagner for all the tutorials
+- Anton Danilov
- Pierre Arlt
- Riccardo De Contardi
- Rico Sonntag
@@ -139,5 +140,6 @@ Thanks to...
- Georg Tiefenbrunn
- Arne-Kolja Bachstein
- Paul-Christian Volkmer
+- Dominik Steinborn
- all other contributors and bug reporters
- famfamfam for these cool silk icons http://www.famfamfam.com/lab/icons/silk/
diff --git a/Documentation/Settings.yml b/Documentation/Settings.yml
index 39d689a..1e560fa 100644
--- a/Documentation/Settings.yml
+++ b/Documentation/Settings.yml
@@ -4,10 +4,10 @@
---
conf.py:
- copyright: 2014
+ copyright: 2014-2016
project: MetaSEO
- version: 1.0
- release: 1.0.0
+ version: 2.0
+ release: 2.0.0
html_theme_options:
github_repository: mblaschke/TYPO3-metaseo
github_branch: develop
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000..2e0d498
--- /dev/null
+++ b/ISSUE_TEMPLATE.md
@@ -0,0 +1,15 @@
+
+
+**MetaSEO version**: 0.0.0
+
+**TYPO3 version**: 0.0.0
+
+**PHP version**: 0.0.0
+
+
+
+
+
+
+
+
diff --git a/README.md b/README.md
index d34f3b0..fe93143 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# MetaSEO - Search Engine Optimization for TYPO3
-
-
+
+

@@ -12,71 +12,96 @@
[](https://insight.sensiolabs.com/projects/19914ab4-1f0f-4be0-9215-410fba880af2)
-This extension provides an indexed google/xml-sitemap, enhanced metatag-support and pagetitle-manipulations for TYPO3 CMS.
-It's a replacement for the "metatag"-extension and the successor of "tq_seo".
+MetaSEO is an extension for TYPO3 CMS and provides an indexed google/xml-sitemap, enhanced metatag support
+and pagetitle manipulation.
+It's a replacement for the "metatag" extension and the successor of the discontinued extension "tq_seo".
-* Manual: https://docs.typo3.org/typo3cms/extensions/metaseo/
-* Git: https://github.com/mblaschke/TYPO3-metaseo
-* Support: https://github.com/mblaschke/TYPO3-metaseo/issues
+* Manual: https://docs.typo3.org/typo3cms/extensions/metaseo/
+* Support: https://github.com/mblaschke/TYPO3-metaseo/issues
+* Source code: https://github.com/mblaschke/TYPO3-metaseo
## Version status
-* Version **2.0.0**:
+* Version **2.0.2**:
+ Branch **master**
+ TYPO3 Version: 6.2.x - 7.6.x
+ Composer: dev-master
-* Version **2.x**:
+* Version **2.0.2-dev**:
+ Branch **develop**
+ TYPO3 Version: 6.2.x - 7.6.x
+ Composer: dev-develop
-For version specific information see [Changelog for MetaSEO](CHANGELOG.md)
+For version specific information see [changelog for MetaSEO](CHANGELOG.md)
## Composer Support
-MetaSEO (stable) is available **from TYPO3 TER** and also available with composer ::
+The latest stable release of MetaSEO is available via [TYPO3 TER](https://typo3.org/extensions/repository/view/metaseo)
+using TYPO3's extension manager or using composer:
{
- "repositories": [
- { "type": "composer", "url": "https://composer.typo3.org/" }
- ],
- .......
- "require": {
- "typo3/cms": "6.2.*",
- "typo3-ter/metaseo": "*"
- }
+ "repositories": [
+ { "type": "composer", "url": "https://composer.typo3.org/" }
+ ],
+ .......
+ "require": {
+ "php": ">=5.3.0",
+ "typo3/cms-core": ">=6.2.0,<8.0",
+ "typo3-ter/metaseo": "*"
+ },
}
-Or (unstable, don't blame me for bugs - but feel free to report bugs) directly **from Github** ::
+As long as you are aware that our unstable branch can break at any time, feel free to preview coming releases by using
+our unstable branch at Github:
{
- "repositories": [
- { "type": "composer", "url": "https://composer.typo3.org/" },
- { "type": "vcs", "url": "https://github.com/mblaschke/TYPO3-metaseo.git" },
- ],
- .......
- "require": {
- "typo3/cms": "6.2.*",
- "mblaschke/metaseo": "dev-master"
- }
+ "repositories": [
+ { "type": "composer", "url": "https://composer.typo3.org/" },
+ { "type": "vcs", "url": "https://github.com/mblaschke/TYPO3-metaseo.git" },
+ ],
+ .......
+ "require": {
+ "php": ">=5.3.0",
+ "typo3/cms-core": ">=6.2.0,<8.0",
+ "mblaschke/metaseo": "dev-master"
+ }
}
-## Found a bug? Got problems?
+MetaSEO is also available via [packagist](https://packagist.org/packages/mblaschke/metaseo).
-Please send us following information for easier bug hunting:
+## Found a bug? Have questions?
+
+Please feel free to file an issue in our [Bugtracker](https://github.com/mblaschke/TYPO3-metaseo/issues). To avoid feedback loops we suggest to provide
* MetaSEO version
* TYPO3 version
+* RealUrl version (if used)
* PHP version
-* Hoster and/or Linux distribution
+* Web server and version (optional)
+* Operating system and version (optional)
+* Hoster name (in rare cases)
+
+In case of issues, please update to the latest version of MetaSEO first. We also strongly recommend to use recent
+versions of TYPO3 CMS (6.2.28+, 7.6.12+) and RealUrl (2.1.5+)
+
+## Contribute
+
+MetaSEO is driven by the community and we're pleased to add new contributions.
+If you want to provide improvements, please
-## Contribution
+- make sure that an [issue](https://github.com/mblaschke/TYPO3-metaseo/issues) exists so that it is clear what
+ your contribution is supposed to do. Eventually, open a new issue.
+- add a `Fixes #123` to the message of your first commit, whereas `#123` should be the issue number.
+- add yourself to the [list of contributors](https://github.com/mblaschke/TYPO3-metaseo/blob/develop/Documentation/Introduction/Index.rst)
+ when you send us your first pull request (PR).
+- provide as many commits in your PR as necessary. There's no single-commit policy, but one PR should not affect more
+ than one issue (if possible).
-If you want to contribute make sure you have an Editorconfig-Plugin installed in your IDE.
+The coding style of MetaSEO's source code follows the
+[PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)
+standard. Please enable PSR-2 support in your IDE or enable the editorconfig plugin.
See [.editorconfig](.editorconfig) for indentation.
-This TYPO3 Extension is using [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) as coding style.
diff --git a/Resources/Private/Language/de.locallang.xlf b/Resources/Private/Language/de.locallang.xlf
index 1690bb0..518bac8 100644
--- a/Resources/Private/Language/de.locallang.xlf
+++ b/Resources/Private/Language/de.locallang.xlf
@@ -328,7 +328,7 @@
Author E-Mail
Autor E-Mail
-