[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
register_extension PAGE_CONTENT_MENU - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
jess25
Beiträge: 52
Registriert: 13. Sep 2008, 15:06

register_extension PAGE_CONTENT_MENU

8. Feb 2015, 12:03

Hallo Leute...

ich verzweifle gerade an register_extension / PAGE_CONTENT_MENU.
Wie bekomme ich es hin, alle Menüpunkte durch eins zu ersetzen, nur Funktionen soll da stehen. Aber immer wieder wird der Link von "Webansicht" gesetzt.

Code: Alles auswählen

  function my_PAGE_CONTENT_MENU ($params) {
    global $REX;
    if ( $REX['ART'][$params['article_id']]['template_id'][0] != 4 ) {
      array_pop($params['subject']);
      array_pop($params['subject']);
      array_pop($params['subject']);
      array_pop($params['subject']);
      array_pop($params['subject']);
    		$mLink = '<a '.$class.' href="index.php?page=content&article_id=' . $params['article_id'] . '&mode=functions&clang=' . $params['clang'] . '&ctype=' . rex_request('ctype') . '">Meine Funktionen</a>';
      array_splice($params['subject'], '-3', '-3', $mLink);

    }
    return $params["subject"];
  }

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: register_extension PAGE_CONTENT_MENU

8. Feb 2015, 12:10

Die Antwort wird dir jetzt nicht gefallen:
Du musst halt aus deinem $params['subject'] Array alles rausschmeissen was du nicht drinhaben willst und alles reintun was du drinhaben willst :D Und wie du Array Operationen vornimmst würd ich halt einfach ergoogeln ;) ...meistens kommst du dann auf die PHP Dokumentation :P

jess25
Beiträge: 52
Registriert: 13. Sep 2008, 15:06

Re: register_extension PAGE_CONTENT_MENU

8. Feb 2015, 12:45

RexDude hat geschrieben:Die Antwort wird dir jetzt nicht gefallen:
Du musst halt aus deinem $params['subject'] Array alles rausschmeissen was du nicht drinhaben willst und alles reintun was du drinhaben willst :D Und wie du Array Operationen vornimmst würd ich halt einfach ergoogeln ;) ...meistens kommst du dann auf die PHP Dokumentation :P
Mach ich doch... Wie ich Array Operationen vornehme weiss ich. Trotzdem ist der Link für "Webansicht" hartnäckig

Im Grunde sollte es auch so gehen:

Code: Alles auswählen

  rex_register_extension('PAGE_CONTENT_MENU', function ($params) {
    global $REX, $I18N;
    if ( $REX['ART'][$params['article_id']]['template_id'][0] != 4 ) {
      $params["subject"] = array();
    		$params["subject"][] = '<a href="index.php?page=content&article_id=' . $params['article_id'] . '&mode=functions&clang=' . $params['clang'] . '&ctype=' . rex_request('ctype') . '">Funktion</a>';
    }
    return $params["subject"];
  });
denn wenn ich mir den Generator für Contentpage anschaue wird da auch nur ein array erzeugt:

Code: Alles auswählen

        $listElements = array();

        if ($mode == 'edit') {
            $listElements[] = '<a href="index.php?page=content&article_id=' . $article_id . '&mode=edit&clang=' . $clang . '&ctype=' . $ctype . '" class="rex-active"' . rex_tabindex() . '>' . $I18N->msg('edit_mode') . '</a>';

        } else {
                $listElements[] = '<a href="index.php?page=content&article_id=' . $article_id . '&mode=edit&clang=' . $clang . '&ctype=' . $ctype . '"' . rex_tabindex() . '>' . $I18N->msg('edit_mode') . '</a>';

        }

        if ($mode == 'meta') {
            $listElements[] = '<a href="index.php?page=content&article_id=' . $article_id . '&mode=meta&clang=' . $clang . '&ctype=' . $ctype . '" class="rex-active"' . rex_tabindex() . '>' . $I18N->msg('article_properties') . '</a>';

        } else {
            $listElements[] = '<a href="index.php?page=content&article_id=' . $article_id . '&mode=meta&clang=' . $clang . '&ctype=' . $ctype . '"' . rex_tabindex() . '>' . $I18N->msg('article_properties') . '</a>';

        }

        if ($mode == 'functions') {
            $listElements[] = '<a href="index.php?page=content&article_id=' . $article_id . '&mode=functions&clang=' . $clang . '&ctype=' . $ctype . '" class="rex-active"' . rex_tabindex() . '>' . $I18N->msg('article_functions') . '</a>';

        } else {
            $listElements[] = '<a href="index.php?page=content&article_id=' . $article_id . '&mode=functions&clang=' . $clang . '&ctype=' . $ctype . '"' . rex_tabindex() . '>' . $I18N->msg('article_functions') . '</a>';

        }

        $listElements[] = '<a href="../' . rex_getUrl($article_id, $clang) . '" onclick="window.open(this.href); return false;" ' . rex_tabindex() . '>' . $I18N->msg('show_article_in_frontend') . '<i class="rex-i-external"></i></a>';

        // ----- EXTENSION POINT
        $listElements = rex_register_extension_point('PAGE_CONTENT_MENU', $listElements,
            array(
                'article_id' => $article_id,
                'clang' => $clang,
                'function' => $function,
                'mode' => $mode,
                'slice_id' => $slice_id
            )
        );
also sollte doch im Array $listElements meins ankommen - macht es aber nicht!

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: register_extension PAGE_CONTENT_MENU

8. Feb 2015, 12:54

Ich hab grad mal deinen Code in eines meiner Addons geballert: Ergebnis: Es gibt nur noch einen Link "Funktion".

jess25
Beiträge: 52
Registriert: 13. Sep 2008, 15:06

Re: register_extension PAGE_CONTENT_MENU

8. Feb 2015, 13:31

RexDude hat geschrieben:Ich hab grad mal deinen Code in eines meiner Addons geballert: Ergebnis: Es gibt nur noch einen Link "Funktion".
Ja danke... Habe mal einige FremdAddOns deaktiviert. Da war eins dazwischen, dass Menüs nach lädt.

Ist es möglich die Ebene/Höhe des einhakens der register_extension, wie bei Wordpress, festzulegen? Bzw weitere auszuschliessen...

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: register_extension PAGE_CONTENT_MENU

8. Feb 2015, 14:20

Es gibt einen neuen Parameter für rex_register_extension wo an die Wertigkeit steuern kann wie z.B. hier verwendet: https://github.com/RexDude/seo42/blob/m ... c.php#L162
Ob das aber beim PAGE_CONTENT_MENU auch funzt weiss ich nicht.

Zurück zu „Allgemeines [R4]“