yakamara / redaxo_yrewrite

A multidomain URL rewrite engine for REDAXO
MIT License
56 stars 35 forks source link

Feature: getTitle(true) overwrites #465

Open geyst opened 2 years ago

geyst commented 2 years ago

Es wäre praktisch, wenn wir für getTitle() bzw. getTitleTag() einen Parameter mitgeben könnten, um das Schema zu ignorieren oder zu ändern.

Anwendungsfall

Für Home möchte ich ein anderes Schema verwenden, bzw. das Schema ignorieren.

Anwendung

// title
$seo->getTitle(true); // kein Schema
$seo->getTitle('%T -> %SN'); // neues Schema

// title tag
$seo->getTitleTag(false); // kein Schema
$seo->getTitleTag('%T -> %SN'); // neues Schema

Code (ungetestet)

public function getTitle($title_schema_overwrite = false)
    {
        $title_scheme = htmlspecialchars_decode(trim($this->domain->getTitle()));
        if ('' == $title_scheme && !$title_schema_overwrite) {
            $title_scheme = self::$title_scheme_default;
        }
        elseif($title_schema_overwrite) {
            if(gettype($title_schema_overwrite) == 'string') {
                $title_scheme = $title_schema_overwrite; // overwrite with new schema
            }
            elseif(gettype($title_schema_overwrite) == 'boolean') {
                $title_scheme = ''; // overwrite with empty schema
            }
        }

        $ytitle = '';
        if ($this->article && '' != $this->article->getValue(self::$meta_title_field)) {
            $ytitle = $this->article->getValue(self::$meta_title_field);
        }
        if ('' == $ytitle) {
            $ytitle = $this->article->getValue('name');
        }

        $title = $title_scheme;
        $title = str_replace('%T', $ytitle, $title);
        $title = str_replace('%SN', rex::getServerName(), $title);

        return $this->cleanString($title);
    }
alxndr-w commented 1 year ago

Geht via EP:

https://github.com/yakamara/redaxo_yrewrite#meta-tags-erweitern--%C3%A4ndern

close?