=
35.173.57.84

Daschmi's Notizblog

Logo des Etikators - Tool um online drucken von Etiketten für selbst angefertigte Tinkturen

Bug in WordPress 4.9.8 / Multiblog / Multissite

Erstellt in Sonstiges am 2. November 2018

Es gibt einen Bug in WordPress Version 4.9.8. Hat man einen Blog mit dem Namen „musterblog“ und möchte im Hauptblog eine Seite anlegen die den Namen „Musterblog“ tragen soll, so wird das verhindert. Das ist auch gut so, da es zum URL Konflikt kommen würde. Legt man jetzt aber eine Seite und möchte darunter eine Seite mit Namen „Musterblog“ anlegen kann die URL auch nicht ermittelt werden. Die Funktion avoid_blog_page_permalink_collision denkt immer es gibt eine Kollision und hängt einen Suffix an. Ich habe es für mich erstmal so gelöst, dass ich die Funktion angepasst habe so dass Unterseiten ignoriert werden.


/**
* Avoids a collision between a site slug and a permalink slug.
*
* In a subdirectory installation this will make sure that a site and a post do not use the
* same subdirectory by checking for a site with the same name as a new post.
*
* @since 3.0.0
*
* @param array $data An array of post data.
* @param array $postarr An array of posts. Not currently used.
* @return array The new array of post data after checking for collisions.
*/
function avoid_blog_page_permalink_collision( $data, $postarr ) {

if ( is_subdomain_install() )
return $data;
if ( $data['post_type'] != 'page' )
return $data;
if ( !isset( $data['post_name'] ) || $data['post_name'] == '' )
return $data;
if ( !is_main_site() )
return $data;

// Daschmi: 02.11.2018
// If page is a subpage, no check of collision
if ($data['post_parent'] > 0) return $data;

$post_name = $data['post_name'];
$c = 0;
while( $c < 10 && get_id_from_blogname( $post_name ) ) {
$post_name .= mt_rand( 1, 10 );
$c ++;
}
if ( $post_name != $data['post_name'] ) {
$data['post_name'] = $post_name;
}
return $data;
}

Die Funktion findest sich unter /wp-admin/includes/ms.php

Google Maps Karte um Land zoomen

Erstellt in Sonstiges am 28. Oktober 2018

Möchte man eine Google Maps Karte um die Koordinaten eines einzelnen Landes zentrieren, so kann man folgenden Code verwenden:

geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': 'Germany'}, function(results, status) {
if (status==google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
map.fitBounds(results[0].geometry.viewport);
}
} );

Typo3 EXT:NEWS Back Link / Zurück Link dynamisch übergeben

Erstellt in Sonstiges am 25. Oktober 2018

Im Typoscript muss folgendes definiert werden:

plugin.tx_news.settings.useStdWrap = backPid,actbackPid
plugin.tx_news.settings.backPid.data = GP:tx_news_pi1|actbackPid
plugin.tx_news.settings.actbackPid = TEXT
plugin.tx_news.settings.actbackPid.data = page:uid

Nun hat man in den Templates settings.actbackPid zur Verfügung und muss es noch an die Links zur Einzelansicht anfügen:

<n:link newsItem="{newsItem}" settings="{settings}" class="more" title="{newsItem.title}" configuration="{additionalParams:'&tx_news_pi1[actbackPid]={settings.actbackPid}'}">
<f:translate key="more-link"/>
</n:link>

Siehe auch:

Typo3 Dokumentation der EXT:news

TYPO3 „Mehrere Seiten mit einmal erstellen“

Erstellt in Sonstiges am 24. Oktober 2018

Wer die Funktion „Mehrere Seiten mit einmal erstellen“ sucht, der findet sie jetzt im Seitenbaum ab TYPO3 9.

 

TYPO3 9 mehrere Seiten mit einmal erstellen Funktion

TYPO3 9 .html Suffix an URLs

Erstellt in TYPO3 am 23. Oktober 2018

Damit „.html“ als Suffix/Endung vom TYPO3 an eine URL gehängt wird, kann man in der Site Konfiguration folgende Routenerweiterung nutzen:

routeEnhancers:
PageTypeSuffix:
type: PageType
default: '.html'
map:
'.html': 0

Die URL ist dann über

/kontakt.html und /kontakt aufrufbar. Um Double Content zu vermeiden, kann man in einer .htaccess folgende Umleitung verwenden (oder die canonical URL nutzen)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule ^(.*)$ /$1.html [R,L]