Keywords: , , , , , , , , , ,

Hallo lieber Mecha CMS Leser oder anderweitiger Leser! In diesem kurzen Tutorial zeige ich dir wie du beim HTML-Format beim Mecha v2 CMS noFollow Links erzeugen kannst. Dabei stütze ich mich an das Tutorial beim Entwickler Tovic unter http://mecha-cms.com/snippet/a-rel-auto . Darin hat er es beschrieben, was ist zu tun, wenn noFollow-Links im Content beim Mecha v2 CMS erwünscht sind. 

Ich setze es immer wieder im Portfolio ein, weil ich auch mal meine Projekte untereinander verlinke. So zeige ich mit dem noFollow-Attribut Google, dass ich keinerlei Backlinks sammeln will. Das ist für mich vollkommen in Ordnung. Auch weisst du es als Blogger/Webmaster, dass Google den noFollow-Links nicht folgt und diese somit kaum bewertet. Es ist vermutlich so, dass es eine google-interne Wertung gibt, aber das wissen wir nicht so genau. 

NoFollow Attribut bei ausgehenden Links in Mecha v2 CMS

Hook::set('page.content', function($content, $lot = []) use($url) {
    // Page type is not set or has value other than `HTML`, skip!
    if (!isset($lot['type']) || $lot['type'] !== 'HTML') {
        return $content;
    }
    // No anchor(s) found, skip!
    if (strpos($content, '</a>') === false) {
        return $content;
    }
    // Get anchor element(s) from page content…
    $union = new Union;
    return preg_replace_callback('#<a(?:\s[^<>]*?)?>(?:[\s\S]*?)</a>#', function($m) use($union, $url) {
        $a = $union->apart($m[0]);
        // No `href` attribute, skip!
        if (!isset($a[2]['href'])) {
            return $m[0];
        }
        // Check for external link(s)…
        // Based on <https://github.com/tovic/parsedown-extra-plugin>
        $href = $a[2]['href'];
        $if = strpos($href, 'https://' . $url->host) === 0 ||
              strpos($href, 'http://' . $url->host) === 0 ||
              strpos($href, '//' . $url->host) === 0 ||
              strpos($href, '/') === 0 ||
              strpos($href, '?') === 0 ||
              strpos($href, '#') === 0 ||
              strpos($href, 'javascript:') === 0 ||
              strpos($href, '.') === 0 ||
              strpos($href, '://') === false;
        // Check for relative protocol…
        if (strpos($href, '//') === 0 && strpos($href, '//' . $url->host) !== 0) {
            $if = false;
        }
        // If external link…
        if (!$if) {
            // Add `rel="nofollow"` attribute
            $a[2]['rel'] = 'nofollow';
            // Add `target="_new"` attribute
            $a[2]['target'] = '_new';
        }
        // Re-unite the anchor…
        return call_user_func_array([$union, 'unite'], $a);
    }, $content);
    return $content;
}, 2.1);

Dieser Schnipsel gehört in die index.php deines aktiven Shields wie "normal" oder "document". Dort einfach einfügen. 

Solche Snippets, wie sie genannt werden, sind auch etwas für Entwickler, aber wenn ich sie verstanden habe, bringe ich sie hier für dich. Das Mecha v2 CMS ist womöglich für reine Wordpress Blogger eher ungeeignet, denn du dabei stets etwas mit Hooks, Code und Code-Schnipseln zu tun hast. Aber ok, dennoch gefällt mir dieses OpenSource CMS und damit würde ich gerne weiterhin arbeiten wollen.

Das war die Sache mit den NoFollow-Links und falls du Fragen dazu kannst, kannst du gerne hier fragen oder du begibst du zu den offiziellen Github-Repositories des Entwicklers unter https://github.com/Tovic.

by Alexander Liebrecht