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: Kategorie Id auslesen

    DerFlow

    • Frisch an Board
    • Beiträge: 52
    Kategorie Id auslesen
    am: 29. Mai 2012, 11:17:10
    Moin,

    gibt es eine Möglichkeit die aktuelle Id der Kategorie auszulesen wenn ich mich in einer befinden?
    Bzw. über welche Variable kann man die Kategorie-Id bekommen, wenn man in den verschiedenen Kategorien unterwegs ist? In der Session scheint diese nicht enthalten zu sein :-/

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

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Re: Kategorie Id auslesen
    Antwort #1 am: 29. Mai 2012, 11:22:59
    Im "Breadcrumb" ist das z.B. enthalten und steht durch die application_top.php im Prinzip überall zur Verfügung:
    Code: PHP  [Auswählen]
    $breadcrumb->add($categories['categories_name'], xtc_href_link(FILENAME_DEFAULT, xtc_category_link($cPath_array[$i], $categories['categories_name'])));

    DerFlow

    • Frisch an Board
    • Beiträge: 52
    Re: Kategorie Id auslesen
    Antwort #2 am: 29. Mai 2012, 14:24:46
    Oh super danke, manchmal sieht man den Wald vor lauter Bäumen nicht ;]

    web28

    • modified Team
    • Beiträge: 9.404
    Re: Kategorie Id auslesen
    Antwort #3 am: 29. Mai 2012, 18:41:15
    Schau mal in die application_top.php. cPath und $current_category_id sind Deine Freunde und stehen Global zur Verfügung. ;-)

    umbi

    • Mitglied
    • Beiträge: 163
    • Geschlecht:
    Re: Kategorie Id auslesen
    Antwort #4 am: 08. Dezember 2018, 23:54:31
    Gibt es diese möglichkeit auch, wenn man bei den Produkten den Kategoriebaum in der URL ausgeblendet hat? So quasi mit einem art_id to Cat Join ?

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Kategorie Id auslesen
    Antwort #5 am: 09. Dezember 2018, 00:35:47
    Ja, gib mal in der product_info.php nach

    Code: PHP  [Auswählen]
    include ('includes/application_top.php');
     

    diesen Code ein

    Code: PHP  [Auswählen]
    echo "<pre><br>cPath = $cPath<br>current_category_id = $current_category_id<br><br></pre>";
     

    und schau im Browser nach, was ganz oben links steht. Eventuell musst du im Quelltext der Browserausgabe nachsehen um es zu sehen.

    Aber was willst du genau machen?

    Gruss
    Hanspeter

    umbi

    • Mitglied
    • Beiträge: 163
    • Geschlecht:
    Re: Kategorie Id auslesen
    Antwort #6 am: 09. Dezember 2018, 02:37:24
    Hi Hanspeter,

    Danke für Deine Rückmaldung. Den string hatte ich bereits im application_top drin.

    Es Steht: cPath =  current_category_id = 0

    Ich habe noch einen Hinweis auf die Beschnittene Breadcrumb erhalten, aber da ist die /class/breadcrumb.php original unberührt.

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Kategorie Id auslesen
    Antwort #7 am: 09. Dezember 2018, 06:29:01
    Ja, wenn du den Code den ich gepostet habe am Ende in die includes/application_top.php einfügst und im Browser z.B. die Startseite aufrufst, dann siehst du das

    Code: XML  [Auswählen]
    cPath =
    current_category_id = 0
     

    wenn du aber eine Produktdeteilseite afrufst dann solltest du beispielhaft so etwas sehen.

    Code: XML  [Auswählen]
    cPath = 2_5_9
    current_category_id = 9
     

    PS:
    Mit Obigem wird aber noch keine Wirkung erzielt und wenn man nicht weiss was das Ziel deiner Frage ist, ist es auch nicht möglich dir einen Tipp zu geben wie man es erreicht.

    Gruss
    Hanspeter

    umbi

    • Mitglied
    • Beiträge: 163
    • Geschlecht:
    Re: Kategorie Id auslesen
    Antwort #8 am: 09. Dezember 2018, 17:18:20
    Hallo Hanspeter

    In den Kategorien funktioniert es, nur halt im Produc_info nicht.
    Das Ziel meiner Frage ist, wo ausser get id parameters by url, die ID Parameter Variabeln setzt. in der products to cat  habe ich auch nie was verändert.

    Get_id_by_url ist ja zwecklos wenn der kategoriebaum bei den produkte-url ausgeblendet ist.

    Gruss Umbi

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Kategorie Id auslesen
    Antwort #9 am: 09. Dezember 2018, 22:32:23
    Hallo Umbi,

    gesetzt werden die Variablen $cPath und $current_category_id in der includes/modules/set_ids_by_url_parameters.php, wobei in der Produktdetailansicht der Parameter $_GET['products_id'] dazu benötigt wird.

    Gruss
    Hanspeter

    umbi

    • Mitglied
    • Beiträge: 163
    • Geschlecht:
    Re: Kategorie Id auslesen
    Antwort #10 am: 10. Dezember 2018, 00:17:47
    Hallo Hanspeter

    Danke für die Antwort.
    Meine  includes/modules/set_ids_by_url_parameters.php sieht so aus:

    Code: PHP  [Auswählen]
      Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/

    //BOF URL Artikelnummer anstatt artikel id in der url:
    if (isset($_GET['products_model'])) {
      $p_model = xtc_db_input($_GET['products_model']);
      //Falls mal komische Art. Nr.  dann dieses hier:      
      $p_model2 = str_replace('-', ' - ', $p_model); // artikelnummer fix
      $q = xtDBquery("SELECT products_id FROM products WHERE products_model ='".$p_model."' OR  products_model ='".$p_model2."' LIMIT 1"); //Fix by Umbi
      $r = xtc_db_fetch_array($q,true);
      $_GET['products_id'] = $r['products_id'];
    }
    //EOF URL Artikelnummer anstatt artikel id in der url


    // product URLS
    if (isset($_GET['info'])) {
      $site = explode('_', $_GET['info']);
      $pID = $site[0];
      $actual_products_id = (int) str_replace('p', '', $pID);
      $product = new product($actual_products_id);
    } elseif (isset($_GET['products_id'])) { // also check for old 3.0.3 URLS
      $actual_products_id = (int) $_GET['products_id'];
      $product = new product($actual_products_id);
    } // also check for old 3.0.3 URLS
      elseif (isset($_GET['products_model'])) {
      $actual_products_model = (int) $_GET['products_model'];
      $product = new product($actual_products_model);
    }


    // category URLS
    if (isset($_GET['cat'])) {
      $site = explode('_', $_GET['cat']);
      $cID = $site[0];
      $cID = str_replace('c', '', $cID);
      $_GET['cPath'] = xtc_get_category_path($cID);

    Der oberste Abschnitt ist aufgrund meiner Artikelnummer anstatt Artikel-ID in der URL drinn.
    Ich finde aber im Source nicht wirklich den Grund, wieso es mir den Kategorie-Baum in der Breadcrumb nicht anzeigt.

    umbi

    • Mitglied
    • Beiträge: 163
    • Geschlecht:
    Re: Kategorie Id auslesen
    Antwort #11 am: 10. Dezember 2018, 04:24:13
    Hallo zusammen

    Ich habe den Bug gefunden und mein Problem gelöst!
    Fairheitshalber möchte ich es auch hier im Forum auflösen:

    in meiner set_ids_by_url_parameters.php war folgendes drinn:

    Code: PHP  [Auswählen]
    /* calculate category path
    defined('PRODUCTS_CANONICAL_CAT_ID') OR define('PRODUCTS_CANONICAL_CAT_ID', false);
    if (isset($_GET['cpID']) && (int)$_GET['cpID'] > 0) {
      $_GET['cPath'] = xtc_get_category_path((int)$_GET['cpID']);
      unset($_GET['cpID']);
    }
    if (isset ($_GET['cPath']) && (!isset($product) || !is_object($product))) {
      $cPath = $_GET['cPath'] = xtc_input_validation($_GET['cPath'], 'cPath', '');
    } elseif (isset($product) && is_object($product) && !isset($_GET['manufacturers_id'])  && $PHP_SELF == basename(FILENAME_PRODUCT_INFO)) {
      if ($product->isProduct() === true) {
        require_once (DIR_FS_INC.'product_redirect.inc.php');
        $cPath = product_redirect($actual_products_id);
      } else {
        $cPath = '';
      }
    } else {
      $cPath = '';
    }
    $products_link_cat_id = 0;
    */

    habe ich ersetzt durch:
    Code: PHP  [Auswählen]
    // calculate category path
    defined('PRODUCTS_CANONICAL_CAT_ID') OR define('PRODUCTS_CANONICAL_CAT_ID', false);
    if (isset($_GET['cpID']) && (int)$_GET['cpID'] > 0) {
      $_SESSION['CatPath'] = xtc_get_category_path((int)$_GET['cpID']);
      unset($_GET['cpID']);
    }
    if (isset ($_GET['cPath']) && (!isset($product) || !is_object($product))) {
      $cPath = $_GET['cPath'] = xtc_input_validation($_GET['cPath'], 'cPath', '');
    } elseif (isset($product)
              && is_object($product)
              && !isset($_GET['manufacturers_id'])
              && basename($PHP_SELF) == FILENAME_PRODUCT_INFO
              )
    {
      if ($product->isProduct() === true) {
        require_once (DIR_FS_INC.'product_redirect.inc.php');
        $cPath = product_redirect($actual_products_id);
      } else {
        $cPath = '';
      }
    } else {
      $cPath = '';
    }
    $products_link_cat_id = 0;

    und alles läuft - die Suchaktion, auch wenn eine Nacht lang, hat sich gelohnt :-)

    LG an alle

    Umbi

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Kategorie Id auslesen
    Antwort #12 am: 10. Dezember 2018, 06:13:41
    Da fehlen mir jetzt die Worte, da kann ich nur noch staunen.

    Gruss
    Hanspeter

    umbi

    • Mitglied
    • Beiträge: 163
    • Geschlecht:
    Re: Kategorie Id auslesen
    Antwort #13 am: 11. Dezember 2018, 06:21:06
    Hallo Hanspeter

    Ja mir fehlen auch die Worte, denn der einzige Unterschied war die  $_SESSION['CatPath'] obs wirklich daran lag, wissen nur die Profis.    :-)

    Von mir aus kann dieser Thread auf "erledigt" geswitcht werden.

    p3e

    • Experte
    • Beiträge: 2.424
    Re: Kategorie Id auslesen
    Antwort #14 am: 11. Dezember 2018, 18:09:28
    Nein, da ist noch ein Unterschied und den finde ich viel wichtiger:
    Aus
    Code: PHP  [Auswählen]
    && $PHP_SELF == basename(FILENAME_PRODUCT_INFO)
    wird
    Code: PHP  [Auswählen]
    && basename($PHP_SELF) == FILENAME_PRODUCT_INFO

    So wie vorher macht es nicht wirklich Sinn.
    Shop Hosting
    8 Antworten
    4965 Aufrufe
    03. Juli 2013, 23:55:46 von Marcel G.
    2 Antworten
    2869 Aufrufe
    16. September 2011, 19:06:06 von Tomcraft
    4 Antworten
    4638 Aufrufe
    20. Februar 2012, 14:05:01 von Phil333
    2 Antworten
    1193 Aufrufe
    20. Januar 2019, 21:10:36 von mhunziger
               
    anything