2009-08-18 8 views
0

Ich möchte die folgenden Urls umschreiben:Wie kann ich eine bestimmte URL umschreiben?

  • Knoten/
  • Knoten bearbeiten/hinzufügen etc

Um so etwas wie - Inhalt/hinzufügen - Inhalt bearbeiten/

Ich verwende auch das Präpopulationsmodell und würde gerne diese URL neu schreiben können:

  • Knoten/add/single-Galerie-Bild bearbeiten [field_gallery_node_reference] [0] [nid] = 48

Um etwas wie folgt aus:?

  • Inhalt/add/image n = 48

Ist das möglich? Wenn ja, brauche ich dafür ein Drupal-Modul oder muss ich die htaccess-Datei übernehmen?

Antwort

0

Sie könnten ein benutzerdefiniertes Modul erstellen, das diese Rückrufe unter Verwendung von hook_menu implementiert, aber dies würde nur zusätzliche URLs für diese Aktionen erstellen und nicht die alten entfernen.

5

Mit dem Pathauto-Modul können Sie Aliase für Ihre URLs erstellen. Du kannst eine Menge Regeln aufstellen und solltest damit ziemlich weit kommen. Ich bin mir nicht sicher, wie gut es sich in das Modell der Vorpopulation integriert. Aber der Rest sollte ganz einfach sein.

+0

Nicht genau was ich wollte. Ich möchte, dass sich die URLs auf Serverebene ändern.Damit kann die lange Verbindung mit der anderen Syntax aufgerufen werden. Ist das sinnvoll? – coderama

1

Es gibt ein paar Optionen hier.

1) Sie können das Pathauto-Modul verwenden, um die Pfade umzubenennen. Diese Pfade werden dann auf der Serverebene perfekt nutzbar, aber die alten Knoten/add und node /%/edit Pfade würden immer noch existieren.

2) Sie können ein benutzerdefiniertes Modul erstellen, das die Pfade über hook_menu implementiert und den entsprechenden Code aus der hook_menu-Implementierung von node.module kopiert. Dies würde auch die alten Knoten/add und node /%/edit auf der Site belassen, aber Sie könnten dann hook_menu_alter verwenden, um die entsprechenden Pfade aus dem Menü-Array zu entfernen.

3) Sie können die Funktionen custom_url_rewrite_inbound und custom_url_rewrite_outbound wie von Olav vorgeschlagen verwenden.

Ehrlich gesagt, ist die erste Option im Allgemeinen die bessere, da sie schneller ist und unerwartete Fehler nicht aufdeckt. Methode 2 wird definitiv ändern, was Sie wollen, aber auch einige ziemlich grundlegende Pfade, von denen Drupal abhängig ist, ändern, und es ist möglich, dass dies ziemlich viele Debugging-Sitzungen bedeutet, wenn Sie Ecken des Knotenmoduls entdecken, die nicht abgedeckt waren deine Änderungen Methode 3: Ich bin nicht so vertraut, aber es sieht so aus, als ob man Pfade wie in 1 umschreiben kann, sie aber realistischer macht, aber es gibt mögliche Probleme mit der Performance, die da lauern, und wiederum eine Menge Debugging.