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 aus Liste entfernen aber abrufbar lassen

    petergriffin

    • Frisch an Board
    • Beiträge: 56
    Hallo,

    kurze Frage:

    Kann ich eine Kategorie aus dem Kategorienbaum entfernen (also so, dass ich keinen Link dazu mehr sehe), aber sie trotzdem aktiv lassen, dass über einen direkt-link weiter darauf zugegriffen werden kann (Also google sie nicht aus dem Index löscht und sie noch in den suchergebnissen auftaucht)?

    Danke!

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

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Kategorie aus Liste entfernen aber abrufbar lassen
    Antwort #1 am: 02. Mai 2014, 09:37:46
    Quick & Dirty Lösung:
    Such in der templates/dein_template/source/boxes/categories.php
    Code: PHP  [Auswählen]
    and trim(cd.categories_name) != ''
    Achtung diese Zeile kommt zwei Mal vor. Du brauchst aber das erste Ergebnis davon (ca. Zeile 70)

    Füge danach ein
    Code: PHP  [Auswählen]
    and c.categories_id != xx

    wobei xx deiner categories_id der Kategorie entspricht, welche du nicht angezeigt haben möchtest, in der Kategoriebox.

    Gruß
    Ronny

    petergriffin

    • Frisch an Board
    • Beiträge: 56
    Re: Kategorie aus Liste entfernen aber abrufbar lassen
    Antwort #2 am: 11. Mai 2014, 21:59:44
    hey,

    danke für den tip, aber die besagte zeile findet sich in meiner datei nicht :(

    ich dachte da aber auch eher an eine einfachere lösung, die ich auch "im blick habe" und sich nicht so versteckt .. also ähnlich einer haken-funktion im backend *g*

    ich möchte das nämlich auf mehrere kategorien anwenden.

    merci :)

    burrito

    • Viel Schreiber
    • Beiträge: 535
    • Geschlecht:
    Re: Kategorie aus Liste entfernen aber abrufbar lassen
    Antwort #3 am: 11. Mai 2014, 22:44:33
    Wenn es Dir reicht, dass die Produkte in der Kategorie erreichbar bleiben, dann einfach die Kategorie im Backend deaktivieren. Die Produkte können dann zwar nicht über eine Navigation erreicht werden, sind aber über alte Links weiterhin erreichbar.

    burrito

    petergriffin

    • Frisch an Board
    • Beiträge: 56
    Re: Kategorie aus Liste entfernen aber abrufbar lassen
    Antwort #4 am: 16. Mai 2014, 00:42:09
    Es geht wirklich darum, dass die ganze Kategorie noch erreichbar ist ... sie soll nur aus dem kategorienbaum verschwinden, sonst aber alles normal sein (also produkte zu sehen, in den warenkorb, usw.).

    wer weiß rat? die besagte zeile von webkiste finde ich nicht :(

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Kategorie aus Liste entfernen aber abrufbar lassen
    Antwort #5 am: 16. Mai 2014, 00:55:32
    Dann poste doch mal deine templates/dein_template/source/boxes/categories.php

    Gruß
    Ronny

    petergriffin

    • Frisch an Board
    • Beiträge: 56
    Re: Kategorie aus Liste entfernen aber abrufbar lassen
    Antwort #6 am: 05. August 2014, 22:22:38
    <?php

    /* -----------------------------------------------------------------------------------------
       $Id: categories.php 1302 2005-10-12 16:21:29Z mz $

       XT-Commerce - community made shopping
       http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte Forenregeln beachten! ))

       Copyright (c) 2003 XT-Commerce
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(categories.php,v 1.23 2002/11/12); www.oscommerce.com
       (c) 2003    nextcommerce (categories.php,v 1.10 2003/08/17); www.nextcommerce.org

       Released under the GNU General Public License
       -----------------------------------------------------------------------------------------
       Third Party contributions:
       Enable_Disable_Categories 1.3           Autor: Mikel Williams | mikel@ladykatcostumes.com

       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/
    // reset var
    $box_smarty = new smarty;
    $box_content = '';
    //$rebuild = false; //DokuMan - 2010-02-28 - fix Smarty cache error on unlink

    $box_smarty->assign('language', $_SESSION['language']);
    // set cache ID
    if (!CacheCheck()) {
       $cache=false;
       $box_smarty->caching = 0;
       $cache_id = null; //DokuMan - 2010-02-26 - Undefined variable: cache_id
    } else {
       $cache=true;
       $box_smarty->caching = 1;
       $box_smarty->cache_lifetime = CACHE_LIFETIME;
       $box_smarty->cache_modified_check = CACHE_CHECK;
       $cache_id = $_SESSION['language'].$_SESSION['customers_status']['customers_status_id'].'-'.$cPath;
    }

    if(!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_categories.html', $cache_id) || !$cache){
    $box_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');
    //$rebuild=true; //DokuMan - 2010-02-28 - fix Smarty cache error on unlink

    // include needed functions
    require_once (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/inc/xtc_show_category.inc.php');
    require_once (DIR_FS_INC.'xtc_has_category_subcategories.inc.php');
    require_once (DIR_FS_INC.'xtc_count_products_in_category.inc.php');

    $categories_string = '';
    $group_check = ''; //DokuMan - 2010-02-28 - set undefined variable group_check
    if (GROUP_CHECK == 'true') {
       $group_check = "and c.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
    }
    $categories_query = "select c.categories_id,
                                               cd.categories_name,
                                               c.parent_id from ".TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd
                                               where c.categories_status = '1'
                                               and c.section = 0
                                               and c.parent_id = '0'
                                               ".$group_check."
                                               and c.categories_id = cd.categories_id
                                               and cd.language_id='".(int) $_SESSION['languages_id']."'
                                               order by sort_order, cd.categories_name";
    $categories_query = xtDBquery($categories_query);

    while ($categories = xtc_db_fetch_array($categories_query, true)) {
       $foo[$categories['categories_id']] = array ('name' => $categories['categories_name'], 'parent' => $categories['parent_id'], 'level' => 0, 'path' => $categories['categories_id'], 'next_id' => false);

       if (isset ($prev_id)) {
          $foo[$prev_id]['next_id'] = $categories['categories_id'];
       }

       $prev_id = $categories['categories_id'];

       if (!isset ($first_element)) {
          $first_element = $categories['categories_id'];
       }
    }

    //------------------------
    if ($cPath) {
       $new_path = '';
       $id = explode('_', $cPath); // Hetfield - 2009-08-18 - replaced deprecated function split with explode to be ready for PHP >= 5.3
       reset($id);
       while (list ($key, $value) = each($id)) {
          unset ($prev_id);
          unset ($first_id);
          $categories_query = "select c.categories_id, cd.categories_name, c.parent_id from ".TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd where c.categories_status = '1' and c.parent_id = '".$value."' ".$group_check." and c.categories_id = cd.categories_id and cd.language_id='".$_SESSION['languages_id']."' order by sort_order, cd.categories_name";
          $categories_query = xtDBquery($categories_query);
          $category_check = xtc_db_num_rows($categories_query, true);
          if ($category_check > 0) {
             $new_path .= $value;
             while ($row = xtc_db_fetch_array($categories_query, true)) {
                $foo[$row['categories_id']] = array ('name' => $row['categories_name'], 'parent' => $row['parent_id'], 'level' => $key +1, 'path' => $new_path.'_'.$row['categories_id'], 'next_id' => false);

                if (isset ($prev_id)) {
                   $foo[$prev_id]['next_id'] = $row['categories_id'];
                }

                $prev_id = $row['categories_id'];

                if (!isset ($first_id)) {
                   $first_id = $row['categories_id'];
                }

                $last_id = $row['categories_id'];
             }
             $foo[$last_id]['next_id'] = $foo[$value]['next_id'];
             $foo[$value]['next_id'] = $first_id;
             $new_path .= '_';
          } else {
             break;
          }
       }
    }

    xtc_show_category($first_element);

    $box_smarty->assign('BOX_CONTENT', $categories_string); //DokuMan - 2010-03-02 - BOX_CONTENT on wrong position

    }

    // set cache ID
    //BOF - DokuMan - 2010-02-28 - fix Smarty cache error on unlink
    /*
    if (!$cache || $rebuild) {
       $box_smarty->assign('BOX_CONTENT', $categories_string);
       if ($rebuild) $box_smarty->clear_cache(CURRENT_TEMPLATE.'/boxes/box_categories.html', $cache_id);
       $box_categories = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_categories.html',$cache_id);
    } else {
       $box_categories = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_categories.html', $cache_id);
    }
    */
    if (!$cache) {
        $box_categories = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_categories.html');
    } else {
        $box_categories = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_categories.html', $cache_id);
    }
    //EOF - DokuMan - 2010-02-28 - fix Smarty cache error on unlink

    $smarty->assign('box_CATEGORIES', $box_categories);
    ?>

    petergriffin

    • Frisch an Board
    • Beiträge: 56
    Re: Kategorie aus Liste entfernen aber abrufbar lassen
    Antwort #7 am: 28. September 2014, 18:44:44
    keiner? :(

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Kategorie aus Liste entfernen aber abrufbar lassen
    Antwort #8 am: 28. September 2014, 20:04:18
    [...]
    wer weiß rat? die besagte zeile von webkiste finde ich nicht :(
    Stimmt die Zeile fehlt in deinem Script.

    Dann suche folgende Zeile
    Code: PHP  [Auswählen]
    and cd.language_id='".(int) $_SESSION['languages_id']."'
     
    und füge danach folgende zwei Zeilen an
    Code: PHP  [Auswählen]
    and trim(cd.categories_name) != ''
    and c.categories_id != xx
     
    und xx ersetzt Du mit derjenigen 'categories_id' deren Kategorie nicht angezeigt werden soll in der Kategoriebox.

    Gruss
    Hanspeter

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Kategorie aus Liste entfernen aber abrufbar lassen
    Antwort #9 am: 28. September 2014, 21:45:32
    Hallo  petergriffin

    Nachtrag:

    Damit es auch in Unterkategorien funktioniert, suche auch noch folgende Zeile
    Code: PHP  [Auswählen]
    $categories_query = "select c.categories_id, cd.categories_name, c.parent_id from ".TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd where c.categories_status = '1' and c.parent_id = '".$value."' ".$group_check." and c.categories_id = cd.categories_id and cd.language_id='".$_SESSION['languages_id']."' order by sort_order, cd.categories_name";
     
    und ersetze sie mit folgender Zeile
    Code: PHP  [Auswählen]
    $categories_query = "select c.categories_id, cd.categories_name, c.parent_id from ".TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd where c.categories_status = '1' and c.parent_id = '".$value."' ".$group_check." and c.categories_id = cd.categories_id and cd.language_id='".$_SESSION['languages_id']."' and trim(cd.categories_name) != '' and c.categories_id != xx order by sort_order, cd.categories_name";
     
    nach 'c.categories_id !=' findest Du auch hier wieder ein 'xx' verfahre damit gleich wie in meinem letzten posting.

    PS:
    Achtung, die Änderungen habe ich nicht getestet.

    Gruss
    Hanspeter
    3 Antworten
    3322 Aufrufe
    11. Februar 2011, 10:22:55 von zvenson
    4 Antworten
    3126 Aufrufe
    14. Oktober 2011, 09:47:12 von Tomcraft
               
    anything