TYPO3 Plugin:
mp_sitemap
Medienpalast - MpSitemap
Doku
Haken für andere Verlängerungen
So erweitert man die mp_sitemap in einer anderen Erweiterung (am Beispiel mp_brands_and_products):
ext_localconf.php:
/ / mp_sitemap Haken
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['mp_sitemap']['additionalExtensions'][] ='Medienpalast\\MpBrandsAndProducts\Hooks\MpSitemap->InsertBrandsAndProducts';
HOOK (z.B. "./Klassen/Haken/MpSitemap.php"):
<?php
namensraum Medienpalast\MpBrandsAndProducts\Hooks;
verwenden Sie Medienpalast\MpLib\Utility\GeneralUtility\GeneralUtility;
/**
* Klasse MpSitemap
*
* @package Medienpalast\MpMarkenAndProdukte\Haken
*/
klasse MpSitemap erweitert \Medienpalast\MpLib\ProcFuncs\AbstractFrontendProcFunc {
/**
* brandRepository
*
* @var \Medienpalast\MpBrandsAndProducts\Domain\Repository\BrandRepository\BrandRepository
* @inject
*/
geschütztes $brandRepository = NULL;
/**
* insertMarkenAndProdukte
*
* @param $params
* @param $parentObjekt
* @return-Array
*/
öffentliche Funktion insertBrandsAndProducts(&$params, &$parentObj) {
$tree = array();
if ($params['type'] =='mpBrandsAndProducts') {
$storagePids = array();
if (is_array($params['variable']))) {
$storagePids = GeneralUtility::trimExplode(',',', $params['variable']['storage']['storage'], TRUE);
if (isset($params['variable']['list']) && $params['variable']['list']]) {
$listPid = $params['variable']['list']['list'];
} sonst {
$listPid = $params['showOnPid'];
}
} sonst {
$storagePids = GeneralUtility::trimExplode(',',', $params['variable'], TRUE);
$listPid = $params['showOnPid'];
}
$params['typeFound']] = TRUE;
$params['partial'] = 'MpBrandsAndProductsSitemap'; // nicht pflicht (auch default wird vom Typ mit Großbuchstabem am anfang genommen)
/ / init
$this->init('mpBrandsAndProducts');
$this->initBrandRepository($storagePids);
$tree['aBrands'] = $this->brandRepository->findAllBrandsByType('a');
$tree['bBrands'] = $bBrands = $this->brandRepository->findAllBrandsByType('b');
}
gibt $tree zurück;
}
/**
* initBrandRepository
*
* @return void
*/
geschützte Funktion initBrandRepository($storagePids) {
if (!$this->brandRepository) {
$this->brandRepository = $this->objectManager->get('Medienpalast\\\MpBrandsAndProducts\Domain\\\Repository\\BrandRepository');
/** @var \TYPO3\CMS\Extbase\Persistenz\Generic\QuerySettingsInterface $defaultQuerySettings */
$defaultQuerySettings = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\QuerySettingsInterface');
$defaultQuerySettings->setStoragePageIds($storagePids);
$this->brandRepository->setDefaultQuerySettings($defaultQuerySettings);
}
}
}
Typoscript:
# Sitemap
plugin.tx_mpsitemap {
ansicht {
partielle Wurzelpfade {
# no not vergebene nummer verwenden (vergeben: 10)
10 = {$plugin.tx_mpbrandsandproducts.view.partialRootPath}
}
}
einstellungen {
/*
erweiterungen {
mpMarkenAndProdukte {
typ = mpMarkenAndProdukte
teile {
# showOnPid = storagePids (kommagetrennte Liste) # detail = list = showOnPid
# 5673 = 4321,3454
# oder showOnPid {data }
# 5673 {
# Speicher = 4321.3454
# Liste = 4320
# }
}
}
}
*/
}
}
Vorlagen (z.B. "./Ressourcen/Teile/"):
MpMarkenAndProdukteSitemap.html:
{namespace lib=Medienpalast\MpLib\ViewHelpers}
<f:für jede="{conf.tree.aBrands}"" as="brand">
<f:render partial="MpBrandsAndProductsSitemap/Item" arguments="{brand:brand, targetPage:conf.listPid}"" />
</f:for>
<f:if condition="{conf.tree.bBrands}">
<li>
<a title="{f:translate(extensionName:'mpBrandsAndProducts', Schlüssel:'brand_menu_more_brands')}" href="#" onclick="return false;"><f:translate extensionName="mpBrandsAndProducts" key="brand_menu_more_brands" /></a>>
<ul>
<f:für jede="{conf.tree.bBrands}"" as="brand">
<f:render partial="MpBrandsAndProductsSitemap/Item" arguments="{brand:brand, targetPage:conf.listPid}"" />
</f:for>
</ul>
</li>
</f:if> if>
MpMarkenAndProdukteSitemap/Item.html:
<li>
<f:link.page pageUid="{targetPage}" class=""" additionalParams="{tx_mpbrandsandproducts_products:{brand:'{brand.uid}'}}}">{brand.name}</f:link.page>
<f:if condition="{brand.productLines}">
<ul>
<f:für jede="{brand.productLines}"" as="productLine">
<li>
<f:link.page page pageUid="{targetPage}" additionalParams="{tx_mpbrandsandproducts_products:{brand:'{brand.uid}',productLine:'{productLine.uid}'}}}}">{productLine.name}</f:link.page>
<f:if condition="{productLine.products}">
<ul>
<f:für jedes="{productLine.products}"" as="product">
<li>
<f:link.page pageUid="{targetPage}" additionalParams="{tx_mpbrandsandproducts_products:{brand:'{brand.uid}',productLine:'{productLine.uid}'}}}}">{product.name}</f:link.page>
</li>
</f:for>
</ul>
</f:if> if>
</li>
</f:for>
</ul>
</f:if> if>
</li>
MpBrandsAndProductsSitemap.xml (für google Sitemap):
{namespace lib=Medienpalast\MpLib\ViewHelpers}
<f:für jede="{conf.tree.aBrands}"" as="brand">
<f:render partial="MpBrandsAndProductsSitemap/Item" arguments="{brand:brand, targetPage:conf.listPid}"" />
</f:for>
<f:für jede="{conf.tree.bBrands}"" as="brand">
<f:render partial="MpBrandsAndProductsSitemap/Item" arguments="{brand:brand, targetPage:conf.listPid}"" />
</f:for>
MpMarkenAndProdukteSitemap/Item.xml:
<url>
<loc><f:uri.page page pageUid="{targetPage}" absolut="true" additionalParams="{tx_mpbrandsandproducts_products:{brand:'{brand.uid}'}}}}" " /></loc>
<lastmod><f:format.date format="c">{brand.tstamp}</f:format.date></lastmod>
</url>
<f:if condition="{brand.productLines}">
<f:für jede="{brand.productLines}"" as="productLine">
<url>
<loc><f:uri.page page pageUid="{targetPage}" absolut="true" additionalParams="{tx_mpbrandsandproducts_products:{brand:'{brand.uid}',productLine:'{productLine.uid}'}}}"" /></loc>
<lastmod><f:format.date format="c">{productLine.tstamp}</f:format.date></lastmod>
</url>
<f:Kommentar>
<f:if condition="{productLine.products}">
<f:für jedes="{productLine.products}"" as="product">
<url>
<loc><f:uri.page page pageUid="{targetPage}" absolut="true" additionalParams="{tx_mpbrandsandproducts_products:{brand:'{brand.uid}',productLine:'{productLine.uid}'}}}"" /></loc>
<lastmod><f:format.datum format="c">{product.tstamp}</f:format.date></lastmod>
</url>
</f:for>
</f:if> if>
</f:Kommentar>
</f:for>
</f:if> if>
Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.
Verteilung:MP_SITEMAP ist auf
0.03 % aller TYPO3 installiert.
- 0.19 % aller TYPO3 8.7.x Installationen installiert
- 0.02 % aller TYPO3 7.6.x Installationen installiert
Aktualität:MP_SITEMAP ist auf dem neusten Stand (v.unknown) bei
100 % aller TYPO3 Installationen
- 0 % aller TYPO3 9.5.x Installationen
- 0 % aller TYPO3 9.3.x Installationen
- 0 % aller TYPO3 9.2.x Installationen
- 0.19 % aller TYPO3 8.7.x Installationen
- 0.02 % aller TYPO3 7.6.x Installationen
- 0 % aller TYPO3 7.5.x Installationen
- 0 % aller TYPO3 7.4.x Installationen
- 0 % aller TYPO3 7.3.x Installationen
- 0 % aller TYPO3 7.2.x Installationen
- 0 % aller TYPO3 7.1.x Installationen
- 0 % aller TYPO3 7.0.x Installationen
- 0 % aller TYPO3 6.2.x Installationen
- 0 % aller TYPO3 6.1.x Installationen
- 0 % aller TYPO3 6.0.x Installationen
- 0 % aller TYPO3 5.0.x Installationen
- 0 % aller TYPO3 4.7.x Installationen
- 0 % aller TYPO3 4.6.x Installationen
- 0 % aller TYPO3 4.5.x Installationen
- 0 % aller TYPO3 4.4.x Installationen
- 0 % aller TYPO3 4.3.x Installationen
- 0 % aller TYPO3 4.2.x Installationen
- 0 % aller TYPO3 4.1.x Installationen
- 0 % aller TYPO3 4.0.x Installationen
- 0 % aller TYPO3 3.5.x Installationen
Gosign-Responsive Index: TYPO3 Installationen nutzen MP_SITEMAP zu
- 60 % wenn der Gosign-Responsive-Index zwischen 80 % und 100 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 60 % und 80 % ist
- 40 % wenn der Gosign-Responsive-Index zwischen 40 % und 60 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 20 % und 40 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 0 % und 20 % ist
Pagespeed: TYPO3 Installationen nutzen MP_SITEMAP zu
- 10 % wenn der Pagespeed zwischen 80 % und 100 % ist
- 30 % wenn der Pagespeed zwischen 60 % und 80 % ist
- 30 % wenn der Pagespeed zwischen 40 % und 60 % ist
- 20 % wenn der Pagespeed zwischen 20 % und 40 % ist
- 10 % wenn der Pagespeed zwischen 0 % und 20 % ist
[DependciesAndConflicts]
Häufig benutzt mit:
- mp_content_tb_twit
- mp_content_ce_twit
- we_google_analytics
- mp_content_ce_text
- static_info_tables
- phpmyadmin
- realurl
- mp_content_core
- t3monitoring_client
- mp_jquery
- mp_lib
- mp_content_ce_twir
- gridelements
- mp_content_ce_twil
- mp_content_ce_image
- mp_jquerylib_fluidvids
- mp_jquerylib_shadowbox
- mp_jquerylib_touchswipe
- mp_content_header
- realurl_404_multilingual
Stichprobe n=37950 von Gosign gecrawlte TYPO3-Seiten mit den Top-Level-Domains <.de/.ch/.at>