Initial commit

This commit is contained in:
2018-04-02 08:07:38 +02:00
commit 7330c1ed3e
2054 changed files with 405203 additions and 0 deletions

View File

@@ -0,0 +1,291 @@
.. ==================================================
.. FOR YOUR INFORMATION
.. --------------------------------------------------
.. -*- coding: utf-8 -*- with BOM.
.. include:: ../Includes.txt
.. _developer-manual:
Developer Manual
================
TypoScript Setup
----------------
Advanced manipulations (stdWrap support)
----------------------------------------
If you want to modify some things you can use stdWraps
MetaTags
^^^^^^^^
============================================= ========================================================== ======================
TypoScript Node Description Type
============================================= ========================================================== ======================
plugin.metaseo.metaTags.stdWrap.title Manipulation for title *stdWrap*
plugin.metaseo.metaTags.stdWrap.description Manipulation for description *stdWrap*
plugin.metaseo.metaTags.stdWrap.keywords Manipulation for keywords *stdWrap*
plugin.metaseo.metaTags.stdWrap.copyright Manipulation for copyright *stdWrap*
plugin.metaseo.metaTags.stdWrap.language Manipulation for language *stdWrap*
plugin.metaseo.metaTags.stdWrap.email Manipulation for email *stdWrap*
plugin.metaseo.metaTags.stdWrap.author Manipulation for author *stdWrap*
plugin.metaseo.metaTags.stdWrap.publisher Manipulation for publisher *stdWrap*
plugin.metaseo.metaTags.stdWrap.distribution Manipulation for distribution *stdWrap*
plugin.metaseo.metaTags.stdWrap.rating Manipulation for rating *stdWrap*
plugin.metaseo.metaTags.stdWrap.lastUpdate Manipulation for last update (date) *stdWrap*
============================================= ========================================================== ======================
PageTitle
^^^^^^^^^
============================================= ========================================================== ======================
TypoScript Node Description Type
============================================= ========================================================== ======================
plugin.metaseo.pageTitle.caching Enables caching of page title. *boolean*
If the page is fully cacheable you don't have to enable
this option.
If you use USER_INTs and one USER plugin changes page
title (eg. via Connector) than this is not working
because the output of the USER plugin is cached and
the Connector not called again with the second hit.
The caching fixes that issue.
plugin.metaseo.pageTitle.stdWrap.before Manipulation of the raw page title *stdWrap*
(before MetaSEO processing)
plugin.metaseo.pageTitle.stdWrap.after Manipulation of the processed page title *stdWrap*
(after MetaSEO processing)
plugin.metaseo.pageTitle.stdWrap.sitetitle Manipulation of the sitetitle *stdWrap*
(from the TS-Setup-Template)
============================================= ========================================================== ======================
Google Analyitics / Piwik customizations
----------------------------------------
Customization codes (fast/simple)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You can add additional javascript code to the default Google Analytics and/or Piwik integration.
========================================================== ========================================================== ======================
TypoScript Node Description Type
========================================================== ========================================================== ======================
plugin.metaseo.services.googleAnalytics.customizationCode Customization code for Google Analytics TS-Content Object
(*TEXT*, *COA*, ...)
plugin.metaseo.services.piwik.customizationCode Customization code for Piwik TS-Content Object
(*TEXT*, *COA*, ...)
========================================================== ========================================================== ======================
Example for Google Analytics in TypoScript-Setup:
::
plugin.metaseo.services.googleAnalytics.customizationCode = COA
plugin.metaseo.services.googleAnalytics.customizationCode {
10 = TEXT
10.value (
_gaq.push(['_setClientInfo', false]);
_gaq.push(['_setAllowHash', false]);
_gaq.push(['_setDetectFlash', false]);
_gaq.push(['_setDetectTitle', false]);
)
}
Template customization (advanced)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The Google Analytics and Piwik integration is done by using a FLUIDTEMPLATE object in TypoScript. If you don't like the integration and want to modify the integration feel free to use your own templates and pass your own variables to FLUIDTEMPLATE.
========================================================== ========================================================== ======================
TypoScript Node Description Type
========================================================== ========================================================== ======================
plugin.metaseo.services.googleAnalytics.template Template rendering object for Google Analytics *COA*
(contains a FLUIDTEMPLATE)
plugin.metaseo.services.piwik.template Template rendering object for Piwik *COA*
(contains a FLUIDTEMPLATE)
========================================================== ========================================================== ======================
It's quite easy, for more information read:
- https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Fluidtemplate/Index.html
- https://typo3.org/documentation/article/the-fluidtemplate-cobject
Example for your own Google Analytics Template:
::
## Google Analytics template
plugin.metaseo.services.googleAnalytics.template.10.file = fileadmin/templates/service-ga.html
## if you need some variables you also can set these:
plugin.metaseo.services.googleAnalytics.template.10.variables {
myOwnStuff = TEXT
myOwnStuff.value = foobar
}
Sitemap
-------
========================================================== ========================================================== ======================
TypoScript Node Description Type
========================================================== ========================================================== ======================
plugin.metaseo.sitemap.index.blacklist List of Regular Expression for blacklisting URLs while List
indexing, eg.
10 = /typo3/
20 = /foobar/
30 = /imprint/i
40 = /[a-z]/
plugin.metaseo.sitemap.index.pageTypeBlacklist List of blacklisted page typeNums (SetupTS PAGE objects) String, comma separated
plugin.metaseo.sitemap.index.fileExtension List of allowed file extensions for indexing List
Default:
1 = pdf
2 = doc,docx,xls,xlsx,ppt,pptx
3 = odt,odp,ods,odg
========================================================== ========================================================== ======================
Hooks
-----
All hooks are also available as Extbase Signal. Please use signals instead of hooks.
::
<?php
// ----------------------------------------------------------------------------
// Example of MetaSEO Hooks
//
// Example integrations (eg. in localconf.php or ext_localconf.php):
//
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['metatagSetup'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_metatagSetup';
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['metatagOutput'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_metatagOutput';
//
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['pageTitleSetup'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_pagetitleSetup';
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['pageTitleOutput'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_pagetitleOutput';
//
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['pageFooterSetup'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_pagefooterSetup';
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['pageFooterOutput'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_pagefooterOutput';
//
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['sitemapIndexPage'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_sitemapIndexPage';
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['sitemapIndexLink'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_sitemapIndexLink';
//
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['sitemapSetup'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_sitemapSetup';
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['sitemapTextOutput'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_sitemapTextOutput';
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['sitemapXmlIndexSitemapList'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_sitemapXmlIndexSitemapList';
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['sitemapXmlIndexOutput'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_sitemapXmlIndexOutput';
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['sitemapXmlPageOutput'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_sitemapXmlPageOutput';
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['sitemapClear'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_sitemapClear';
//
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['robotsTxtMarker'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_robotsTxtMarker';
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['robotsTxtOutput'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_robotsTxtOutput';
//
// $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['metaseo']['hooks']['httpHeaderOutput'][] = 'EXT:metaseo/examples/hooks.php:user_metaseo_hook->hook_httpHeaderOutput';
// ----------------------------------------------------------------------------
class user_metaseo_hook {
public function hook_metatagSetup(&$args, $obj) {
// Hook for metatag setup
}
public function hook_metatagOutput(&$args, $obj) {
// Hook for metatag output
}
// ------------------------------------------------------------------------
public function hook_pagetitleSetup(&$args, $obj) {
// Hook for pagetitle setup
}
public function hook_pagetitleOutput(&$args, $obj) {
// Hook for pagetitle output
}
// ------------------------------------------------------------------------
public function hook_pagefooterSetup(&$args, $obj) {
// Hook for page footer setup
}
public function hook_pagefooterOutput(&$args, $obj) {
// Hook for page footer output
}
// ------------------------------------------------------------------------
public function hook_sitemapIndexPage(&$args) {
// Hook for sitemap page indexer
}
public function hook_sitemapIndexLink(&$args) {
// Hook for sitemap link indexer
}
// ------------------------------------------------------------------------
public function hook_sitemapSetup(&$args, $obj) {
// Hook for sitemap setup
}
public function hook_sitemapTextOutput(&$args, $obj) {
// Hook for xml text output
}
public function hook_sitemapXmlIndexOutput(&$args, $obj) {
// Hook for xml index-page output
}
public function hook_sitemapXmlIndexSitemapList(&$args, $obj) {
// Hook for manipulation sitemap.xml index page sitemap list
}
public function hook_sitemapXmlPageOutput(&$args, $obj) {
// Hook for xml page output
}
public function hook_sitemapClear(&$args, $obj) {
// Hook for sitemap clearing (truncating via clear-cache hook)
}
// ------------------------------------------------------------------------
public function hook_robotsTxtMarker(&$args, $obj) {
// Hook for robots.txt marker list
}
public function hook_robotsTxtOutput(&$args, $obj) {
// Hook for robots.txt output
}
// ------------------------------------------------------------------------
public function hook_httpHeaderOutput($args, $obj) {
// Hook for http header output
}
// ------------------------------------------------------------------------
}