Custom Fields verlinkbar machen

  • Hallo liebe Joomla.de-Community


    ich habe eine Frage zum Costum Field des Typen List (Multiple Choice)


    Kann man die ausgewählten Optionen im Frontend des Artikels verlinkbar machen, sodass beim Klick auf eine Option, die Suchseite erscheint auf der alle Beiträge aufgelistet werden, die ebenfalls dieses Custom Field enthalten?


    LG


    PS: Ich habe diese Frage auch auf joomlaportal.de gestellt

  • Zitat

    Kann man die ausgewählten Optionen im Frontend des Artikels verlinkbar machen, sodass beim Klick auf eine Option, die Suchseite erscheint auf der alle Beiträge aufgelistet werden, die ebenfalls dieses Custom Field enthalten?


    Ich verstehe diese Frage nicht. Kannst du ein Beispiel beschreiben? Du willst doch keine Suchseite sondern eine Liste von Beiträgen? Die die gewählte Option in einem der Felder enthalten?
    Das geht meines Wissens nicht ohne Eigenprogramierung oder einer Erweiterung.


  • Ich verstehe diese Frage nicht. Kannst du ein Beispiel beschreiben? Du willst doch keine Suchseite sondern eine Liste von Beiträgen? Die die gewählte Option in einem der Felder enthalten?
    Das geht meines Wissens nicht ohne Eigenprogramierung oder einer Erweiterung.


    Hallo Christine,
    eigentlich sollte die Funktion ähnlich zu den Tags sein
    Ein Beispiel aus meiner Seite: https://www.hdsports.at/winter/drei-zinnen-ski-raid-2018
    Am Ende des Artikels habe ich die Tags die anklickbar sind. Klickt der User auf einen Tag werden alle Artikel angezeigt, denen ebenfalls der gleiche Tag zugewiesen ist.


    Das gleiche Spielchen sollte mit dem Custom Field möglich sein.
    Klickt der User am Ende des Beitrages auf eines der zugewiesenen Custom Fields werden alle Beiträge angezeigt, denen ebenfalls dieses Custom Field zugeordnet ist.

  • Zauberwort Template Override


    PHP
    <?php if (!empty($this->item->jcfields[xyz]->value)) : ?>        <a href="index.php?searchword=<?php echo $this->item->jcfields[xyz]->value; ?>&searchphrase=all&option=com_search"><?php echo $this->item->jcfields[xyz]->value; ?></a>    <?php endif; ?>


    xyz = Die ID des Custom Fields


    Das ganze hat nun einen kleinen Schönheitsfehler... Es wird der Inhalt des Custom Fields als Suchwort benutzt - ergo werden dir auch Inhalte über die Suche gelistet die das Wort im Text haben und nicht als Custom Filed.


    Aber mit einem kleinen Trick sollte man das umgehen können. Benutze einfach 2 Custom Fields für einen Eintrag. Das erste für die Darstellung im Frontend und das zweite für die Suche.


    PHP
    <?php if (!empty($this->item->jcfields[praefixxyz]->value)) : ?>
            <a href="index.php?searchword=<?php echo $this->item->jcfields[praefixxyz]->value; ?>&searchphrase=all&option=com_search"><?php echo $this->item->jcfields[xyz]->value; ?></a>
        <?php endif; ?>


    praefixxyz: Das Suchwort z.B. finderot
    xyz: Das Wort im Frontend das angezeigt wird und auf die Suche verlinkt - in dem Fall dann rot


    Jetzt noch ein Template Override der Suchergebnisse - z.B. das Suchformular rausnehmen, dann erscheint dort auch nicht im Formular "finderot".


  • Danke, leider bin ich nicht erfolgreich
    /templates/purity_iii/html/com_content/article/default.php
    geöffnet


    Unter

    Code
    <!-- //Article -->


    folgendes eingefügt

    PHP
    <?php if (!empty($this->item->jcfields[regionsuche]->value)) : ?>
            <a href="index.php?searchword=<?php echo $this->item->jcfields[regionsuche]->value; ?>&searchphrase=all&option=com_search"><?php echo $this->item->jcfields[region]->value; ?></a>
        <?php endif; ?>


    Leider wird nichts ausgegeben im Frontend

  • folgendes eingefügt

    PHP
    <?php if (!empty($this->item->jcfields[[color=#FF0000]regionsuche[/color]]->value)) : ?>        <a href="index.php?searchword=<?php echo $this->item->jcfields[[color=#FF0000]regionsuche[/color]]->value; ?>&searchphrase=all&option=com_search"><?php echo $this->item->jcfields[[color=#FF0000]region[/color]]->value; ?></a>    <?php endif; ?>


    Leider wird nichts ausgegeben im Frontend



    regionsuche Da muss die ID des Custom Fileds rein.
    region Hier auch die ID des anderen Custom Fields.


    Wenn regiosuche die ID 1 und region die ID 2 ist dann....


    PHP
    <?php if (!empty($this->item->jcfields[1]->value)) : ?>
     <a href="index.php?searchword=<?php echo $this->item->jcfields[1]->value; ?>&searchphrase=all&option=com_search"><?php echo $this->item->jcfields[2]->value; ?></a>
     <?php endif; ?>
  • okay wir kommen der sache ein stück näher.
    ich habe nun folgenden code

    PHP
    <?php if (!empty($this->item->jcfields[1]->value)) : ?> Region: <a href="/suche?searchword=<?php echo $this->item->jcfields[1]->value; ?>&searchphrase=all&option=com_search"><?php echo $this->item->jcfields[1]->value; ?></a> <?php endif; ?>


    Das zweite Feld habe ich entfernt, weil ich nicht ganz verstehe für was das gut sein soll.


    Allerdings hat die Sache noch einen gewaltigen Hacken. Da es ein Multiple Field ist, werden in dem Fall bei zwei ausgewählten Optionen natürlich beide als eines verlinkt. Natürlich sollte jede Auswahl einzeln verlinkt sein.


    Ein Beispiel:
    https://www.hdsports.at/winter/drei-zinnen-ski-raid-2018


    Unter dem Artikel habe ich die aktuelle Verlinkung

    Code
    https://www.hdsports.at/suche?searchword=Tirol, Italien&searchphrase=all&option=com_search


    Korrekt wäre allerdings
    Für Tirol: https://www.hdsports.at/suche?…ase=all&option=com_search
    Für Italien: https://www.hdsports.at/suche?…ase=all&option=com_search


    Zudem möchte ich natürlich, das nicht der Content selbst durchsucht wird, sondern nur der Custom-Field Bereich. D.h. Wenn ich auf Tirol klicke, sollten mir nur Artikel zugeordnet werden, denen das Custom Field "Tirol" zugeordnet ist. Aktuell werden ja alle Beiträge angezeigt, in denen das Wort Tirol vorkommen würde.

  • Ich habe das ganze auf meiner Testumgebung ein wenig weiter ausgebaut...


    Angenommen Du hast zwei Custom Fields die Du über die Suche auswerten möchtest...


    Dann werden 4 Custom Fields benötigt...


    ID1 = finderegion
    ID2 = region
    ID3 = findeskigebiet
    ID4 = skigebiet


    In einem Beitrag hinterlegst Du folgenden Inhalt:
    finderegion = findevorarlberg
    region = Vorarlberg
    findeskigebiet = findestanton
    skigebiet = St. Anton


    und der andere Beitrag:
    finderegion = findevorarlberg
    region = Vorarlberg
    findeskigebiet = findelechzuers
    skigebiet = Lech Zürs


    Dann must Du den Code von oben nur anpassen. Wenn Du nun z.B. in deinen Beiträgen Hotels auflisten möchtest...


    In Beitrag 1 wären nun die Suche nach Vorarlberg | St. Anton
    In Beitrag 2 nach Voralberg | Lech Zürs
    möglich.


    Suche nach Vorarlberg... Beitrag 1 und 2 werden angezeigt. St. Anton nur Beitrag 1 bzw. Beitrag 2 bei Suche nach Lech Zürs.


    Auf meiner Testinstallation habe ich das noch weiter verküpft - so könnte man auch nach Vorarlberg St. Anton bzw Vorarlberg Lech Zürs filtern. Macht je nach dem was man machen möchte natürlich auch Sinn. Denke da an die Möglicheit Farbe, Größe, Farbe Größe - z.B für Schuhe etc.

  • Zudem möchte ich natürlich, das nicht der Content selbst durchsucht wird, sondern nur der Custom-Field Bereich. D.h. Wenn ich auf Tirol klicke, sollten mir nur Artikel zugeordnet werden, denen das Custom Field "Tirol" zugeordnet ist. Aktuell werden ja alle Beiträge angezeigt, in denen das Wort Tirol vorkommen würde.


    Darum benötigst Du das zweite Custom Field.


    Eind Field dür die Ausgabe: Tirol
    Das andere nur für die Suche: findetirol


    findetirlo wirst du sicher nicht irgendwo im Content stehen haben. Sondern nur im Custom Field - die Ausgabe im Frontend von findetirol machst du dann einfach via css nicht sichtbar. Keiner sieht es aber es kann über die Suche genutzt werden.


    Also das Custom Field (Tirol) ist nur der Linktext auf die Suche mit dem Suchwort findetirol.


    Multiple Field muss ich mal testen - mit einfachen Textfeldern geht es ohne Probleme.

  • Das ist allerdings eine sehr unfeine Lösung. Ich dachte ich könnte das im Link direkt ermöglichen.
    ich kann ja z.B. auch nur nach Kategorien suchen

    Code
    https://www.hdsports.at/suche?searchword=Tirol&ordering=newest&searchphrase=all&areas%5B0%5D=categories


    Selbiges sollte ja mit CustomFields möglich sein. ist es wohl nicht. Schade, hätte mir mehr von dem Feature erwartet.
    Ein 2. Feld möchte ich beim besten Willen nicht. Zumal ich quasi bei jedem Artikel dann auch zwei mal die Auswahl treffen muss


    Zudem löst es auch nicht das Problem, das bei mehreren ausgewählten Optionen alle auf einmal verlinkt sind.

  • Zudem löst es auch nicht das Problem, das bei mehreren ausgewählten Optionen alle auf einmal verlinkt sind.


    Es geht über den Typ list dann legt man das alles nur einmal an.


    Habe einmal den einträge für die Größe: 40, 41, 42
    Und dann einen für die Farben: rot, gelb, blau


    Beiträge mit sämtlichen Möglichkeiten erstellt. Also 40 rot, 40 gelb, 40 blau, 41 rot... usw. also 9 Beiträge.


    Klicke ich auf 40 in dem Beitrag: bekomme ich alle in Größe 40, klick auf blau... alle Beiträge in blau.


    Und ja es ist arbeit aber es geht.

  • Ich brauche allerdings zwingend ein Multiple-Select Select Field (weil in meinem Fall ein Artikel auch mehrere Regionen betreffen kann). Und dann geht das nicht


    In deinem Fall sind das ja zwei Single Select Felder


    Feld 1 = Östereich - Italien
    Feld 2 = Tirol - Wien


    Beitrag 1: Select auf Östereich und Tirol
    Beitrag 2: Select auf Östereich und Wien
    Beitrag 3: Select auf Italien und Tirol


    In Beitrag 1 geht die suche auf: a) Östereich b) Tirol c) Östereich, Tirol
    In Beitrag 2 geht die suche auf: a) Östereich b) Wien c) Östereich, Wien
    In Beitrag 3 geht die suche auf: a) Italien b) Tirol c) Italien, Tirol


    Suche nach: Östereich (Ergebniss Beitrag 1 und Beitrag 2)
    Suche nach: Tirol (Ergebniss Beitrag 1 und Beitrag 3)
    Suche nach: Östereich, Tirol (Ergebniss Beitrag 1)
    Suche nach: Wien (Ergebniss Beitrag 2)
    Suche nach: Östereich, Wien (Beitrag 2)
    Suche nach: Italien (Ergebniss Beitrag 3)
    Suche nach: Italien, Tirol (Ergebniss Beitrag 3)


    Auch das geht :)

  • sorry, aber das geht nicht.
    ich habe ein multiple select feld mit ca 15 auswahl optionen.
    ich kann pro beitrag 0 - 15 davon auswählen.
    Dann müsste ich laut deinem Beispiel 15 Custom Fields anlegen, was ebenfalls keinen Sinn macht. Denn theoretisch könnten ja auch alle 15 Optionen auf einen Beitrag zutreffen.


    Mir ist schon ein 2. Feld zu viel. Das Custom Field soll mir ja den Aufwand reduzieren und nicht erhöhen. Und bei 2 oder mehr custom fields erhöht es mir den Aufwand.