Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Verlinkung

    adventure12

    • Neu im Forum
    • Beiträge: 20
    Verlinkung
    am: 24. November 2017, 19:35:09
    Hallo,
    ich möchte gerne aus dem Menü nicht in eine andere Kategorie sondern auf eine externe Url Verlinken.
    Habe dazu nichts gefunden.
    Geht das überhaupt und wenn ja kann mir da jemand einen Tipp geben.

    Gruß
    Volker

    Linkback: https://www.modified-shop.org/forum/index.php?topic=38295.0

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Verlinkung
    Antwort #1 am: 24. November 2017, 20:24:27
    Von welchem Menu genau reden wir ?

    Gruß,
    noRiddle

    adventure12

    • Neu im Forum
    • Beiträge: 20
    Re: Verlinkung
    Antwort #2 am: 24. November 2017, 21:53:17
    Hallo,
    ich habe eine Kategorie die auf Produkte verweist. Da wollte ich nicht auf die Produkte verweisen sondern auf eines externe url

    Gruss
    volker

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Verlinkung
    Antwort #3 am: 27. November 2017, 17:17:09
    Mmhh, wenn du einfach einen Link hinzufügen wolltest könntest du ihn am Anfang oder am Ende (oben oder unten) in der Kategorie-Box hinzufügen indem du ihn hard-codiert in die /templates/DEIN_TEMPLATE/boxes/box_categories.html einträgst.
    d.h. über oder unter {$BOX_CONTENT} mittels
    Code: XML  [Auswählen]
    <li class="level1"><a href="DEIN_LINK" target="_blank">DEIN_NAME_DES_LINKS</a></li>
    (target="_blank" nur wenn der Link in einem neuen Tab aufgehen soll.)

    Wenn du allerdings eine vorhandene Kategorie anders verlinken willst müsstest du in folgender Datei dies suchen:
    /templates/DEIN_TEMPLATE/source/boxes/categories.php
    Code: PHP  [Auswählen]
    $row['cat_link'] = xtc_href_link(FILENAME_DEFAULT, xtc_category_link($row['categories_id'], $row['categories_name']));

    und daraus das machen:
    Code: PHP  [Auswählen]
    //$row['cat_link'] = xtc_href_link(FILENAME_DEFAULT, xtc_category_link($row['categories_id'], $row['categories_name']));
    if($row['categories_id'] == 'DIE_ID_DER_ZU_VERLINKENDEN_KATEGORIE') {
        $row['cat_link'] = 'DEIN_LINK'; //nur die URL !!
    } else {
        $row['cat_link'] = xtc_href_link(FILENAME_DEFAULT, xtc_category_link($row['categories_id'], $row['categories_name']));
    }
    (Es versteht sich, daß für DIE_ID_DER_ZU_VERLINKENDEN_KATEGORIE die ID der Kategorie eingetragen werden muß und für DEIN_LINK die URL des gewünschten Links.)

    und falls auch der Name der Kategorie anders lauten soll (und nur dann) noch kurz darunter aus dem
    Code: PHP  [Auswählen]
    'name' => $row['categories_name'],

    das machen
    Code: PHP  [Auswählen]
    //'name' => $row['categories_name'],
    'name' => ($row['categories_id'] == 'DIE_ID_DER_ZU_VERLINKENDEN_KATEGORIE' ? 'DEIN_NEUER_NAME' : $row['categories_name']),
     
    (Auch hier für DIE_ID_DER_ZU_VERLINKENDEN_KATEGORIE die ID der Kategorie eingetragen und für DEIN_NEUER_NAME den Namen der für den Link erscheinen soll.
    Der Name kann als Konstante mehrsprachig in einer anzulegenden Datei in /lang/SPRACHE/extra/ definiert werden.)


    Wenn weiterhin der Link in einem neuen Tab aufgehen soll suche in /templates/DEIN_TEMPLATE/source/inc/xtc_show_category.inc.php dies:
    Code: PHP  [Auswählen]
    $categories_string .= '<a href="'.$foo[$counter]['link'].'" title="'. $foo[$counter]['name'] . '">';

    und mache daraus das:
    Code: PHP  [Auswählen]
    //$categories_string .= '<a href="'.$foo[$counter]['link'].'" title="'. $foo[$counter]['name'] . '">';
    if($counter == 'DIE_ID_DER_ZU_VERLINKENDEN_KATEGORIE') {
        $categories_string .= '<a href="'.$foo[$counter]['link'].'" title="'. $foo[$counter]['name'] . '" target="_blank">';
    } else {
        $categories_string .= '<a href="'.$foo[$counter]['link'].'" title="'. $foo[$counter]['name'] . '">';
    }
     

    Nicht getestet !!, sollte aber so gehen.
    Das Ganze wäre update-sicher, da die Änderungen lediglich im Template und nicht in Core-Dateien durchgeführt werden, bzw., wenn du de Namen der Kategorie ändern willst, mit definierten Konstanten in einer auto_include-Datei.

    Gruß,
    noRiddle

    adventure12

    • Neu im Forum
    • Beiträge: 20
    Re: Verlinkung
    Antwort #4 am: 28. November 2017, 10:45:25
    Hallo,
    vielen Dank für die Infos. Ich habe die erste Lösung probiert und es klappt super.

    gruss
    Volker

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Verlinkung
    Antwort #5 am: 28. November 2017, 11:24:21
    erstelle in includes/extra/header/header_begin eine neue Datei mit in etwa folgendem Inhalt:

    Code: PHP  [Auswählen]
    if ((isset($current_category_id)) && ($current_category_id > 0) && (xtc_check_categories_status($current_category_id) >= 1)) {
            //$site_error = CATEGORIE_NOT_FOUND;
            //include (DIR_WS_MODULES.FILENAME_ERROR_HANDLER);
            xtc_redirect("index.php");
            return; // stop executing this included file
    }

    if (defined('WEBALD_FORWARD_ACTIVE') && (WEBALD_FORWARD_ACTIVE == true)){
            // execute only if active - all code must follow here
            // check category exists AND if customergroup is allowed to access
            // customer_dob - Start
            if (basename($PHP_SELF)=='index.php'){
                    if (isset($_GET['cPath'])){
                            $cPath=$_GET['cPath'];
                            if (xtc_not_null($cPath)) {
                                    $cPath_array         = xtc_parse_category_path($cPath);
                                    $cPath               = implode('_', $cPath_array);
                                    $current_category_id = $cPath_array[(sizeof($cPath_array)-1)];
                            }
                    }
                   
                    // pages to forward from
                    if (isset($current_category_id) && (in_array($current_category_id,explode(',', WEBALD_FORWARD_PAGE)))){
                            /* Check if category contains only 1 article. If only one article open directly articles-details-page */
                            if (($category_depth == 'products') && (xtc_db_num_rows($categories_products_result, true) == 1)){
                                    $forward_product = xtc_db_fetch_array($categories_products_result, true);
                                    xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id='.$forward_product['products_id']));
                            }
                    }
            }
    }

    Das Beispiel leitet ohne weitere Änderungen an Template oder Core auf den Artikel 200 weiter.

    Wenn Du Spass dran hast, dann erstellst Du eine Tabelle mit den Spalten categories_id und target_url und fragst die ab. Dazu noch eine Möglichkeit im Admin das einzugeben und fertig ist eine allgemeine Lösung.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Verlinkung
    Antwort #6 am: 28. November 2017, 15:59:04
    ' bisschen am Thema vorbei...

    Lies nochmal, webald.
    Hallo,
    ich habe eine Kategorie die auf Produkte verweist. Da wollte ich nicht auf die Produkte verweisen sondern auf eines externe url

    Gruss
    volker

    Außerdem:
    Schau mal in die /includes/modules/set_ids_by_url_parameters.php (welche in der /includes/application_top.php includiert ist), wo $cPath und $current_category_id bereits definiert sind, sie müssen also in deiner Implementation nicht neu definiert werden.

    Gruß,
    noRiddle

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Verlinkung
    Antwort #7 am: 28. November 2017, 16:22:41
    was Du bei xtc_redirect für ein Ziel einsetzt ist doch wurscht. Da kanns Du doch auch eine extern Url einsetzen.

    Man könnte in seinem Fall auch ein zusätzliches Feld in categories oder products anlegen und dort das Weiterleitungsziel hinterlegen. Wenn in dem Feld was steht wird weitergeleitet sonst bleibt die Seite wie gehabt.

    Das mit $cPath kann sein. Ich habe das aus einem Codestück genommen, bei der application_top.php nicht includiert ist. Wenn man s weglassen kan umso besser.
    Shop Hosting
    3 Antworten
    2925 Aufrufe
    01. Juni 2011, 18:31:45 von bato
    4 Antworten
    3366 Aufrufe
    10. Januar 2013, 11:38:55 von noRiddle (revilonetz)
    0 Antworten
    1710 Aufrufe
    01. April 2016, 21:59:42 von Ben
    10 Antworten
    5374 Aufrufe
    01. November 2009, 13:27:38 von Gast20120210
               
    anything