it-swarm.com.de

Wie erhalte ich einen Menüpunkt, um einen Parameter an eine Komponente zu senden?

Ich habe Probleme beim Erstellen einer internen Umleitung mit MenuItems.

Ich habe einen Menüpunkt namens "Verkauf" erstellt. Ich habe den Menüpunkt in der Datenbank gefunden und der Alias ​​lautet "Verkauf". Ich habe die URL auf/mycomponent? Id = 3 gesetzt und den Menüeintrag veröffentlicht, aber/sale verursacht eine 404, anstatt/mycomponent? Id = 3 zu laden.

Mir ist aufgefallen, dass es keinen Alias ​​für externe URLs gibt und dass darüber diskutiert wurde, ob dies für interne URLs erforderlich ist:

http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=29264

Ich möchte die Redirect-Komponente dafür nicht verwenden. Wir haben drei Umgebungen, und dazu müsste in jeder Umgebung eine Umleitung eingerichtet werden. Wenn ich den Menüpunkt zum Laufen bringen kann, kann er zwischen Umgebungen übertragen werden.

Gibt es eine Möglichkeit, eine interne URL mithilfe von Menüelementen einzurichten? Wenn ja, wie erfolgt der Zugriff per Alias?

3
ContextSwitch

Als Lösung habe ich den Parameter (id) in die default.xml der Ansicht eingefügt:

<?xml version="1.0" encoding="utf-8"?>
<metadata>
    <layout title="mycomponent">
        <message>mycomponent message</message>
    </layout>
    <fields name="request">
            <fieldset name="request">
                <field
                    name="id"
                    type="text"
                    label="ID"
                    description="The ID of the item as it appears in the url"
                    default="1"
                >
                </field>
            </fieldset>
        </fields>

</metadata>

Auf diese Weise konnte ich einen Menüeintrag mit dem Alias ​​"Verkauf" erstellen und meine Komponente auswählen. Dann würde ich '3' in das ID-Feld eingeben, und/sale würde das Gleiche wiedergeben, als hätte ich/mycomponent? Id = 3 getroffen.

5
ContextSwitch

Sie können nicht erreichen, was Sie versuchen, ohne eine Art Umleitungsprozess zu verwenden.

Das heißt, die URL [Site]/sale muss beispielsweise an www.google.com weitergeleitet werden.

Die Verwendung externer Links löst das Problem nicht, da sie genau das sind, was sie sind. Dies entspricht der Verwendung eines href-Tags als eines Ihrer Menüelemente.

In Joomla [site]/path befinden sich die URLs zu Joomla Aricles/content/components.

Wenn daher ein Inhaltselement [Website]/Verkauf nicht vorhanden ist (oder nicht mit einem veröffentlichten Menüelement verknüpft ist), erhalten Sie eine 404.

Eine andere Möglichkeit wäre, einen Artikel mit der Bezeichnung "Verkauf" zu erstellen, mit einem Standardmenüeintrag darauf zu verweisen und einen Code für diesen Artikel zu verwenden.

Aber das ist sehr hässlich.

1
Chamira Athauda

Die Frage verwirrt mich ein wenig. Nicht sicher, was Sie wollen, aber lassen Sie mich ein Bild machen.

Wenn Sie den Menüelementtyp auswählen, erhalten Sie eine Auswahl basierend auf den von Ihnen installierten Komponenten. Wenn Sie beispielsweise "Einzelartikel" auswählen, können Sie einen Artikel für den Menüpunkt auswählen, auf den verwiesen werden soll.

Jetzt sehen Sie im Menüpunkt einen schrecklichen Mischmasch einer URL, beginnend mit index.php. Kein Problem, denn die einzige Möglichkeit, die Ihre Besucher sehen, besteht darin, dass Sie keine SEF-URL-Erstellung aktiviert haben. Das ist nur die interne Darstellung, nicht das, was die Benutzer sehen werden.

Ich gehe davon aus, dass jede Komponente, die Sie dort haben, auf die gleiche Weise funktioniert (wenn dies nicht der Fall ist, finden Sie eine andere, weil diese defekt ist). Also mach dir darüber keine Sorgen. Das Einzige, was zählt, ist, was Joomla tatsächlich im Browser schreibt (was nicht unbedingt das ist, was Sie in der Box sehen).

Wenn Sie die URL für eine bestimmte Seite vollständig steuern möchten, erhalten Sie so ziemlich jeden der SEF-URL-Generatoren von JED. Das machen sie alle.

1
Arlen