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: Externe Verlinkung im Datenbankfeld einer Kategorie einfügen

    Bonner

    • Fördermitglied
    • Beiträge: 848
    • Geschlecht:
    Das neue Jahr hat quasi erst begonnen, dennoch benötige ich mal wieder die Hilfe des fachkundigen
    Forums.
    Trotz eines längeren Spaziergangs durch die heutige Winterlandschaft will der Kopf anscheinend nicht recht funktionieren  :-?

    Ich habe mir für die Kategorien weitere Datenbankfelder geschaffen, was auch alles im Front-bzw. Backend wunderbar auch zweisprachig funktioniert.

    Nun möchte ich den jeweiligen Inhalt des Datenbankfeldes "Designer" je nach Bedarf extern verlinken (z.B. auf den entsprechenden Wiki-Artikel).

    Mache ich das in der Kategoriebeschreibung, funktioniert das wunderbar, nur halt nicht in dem Datenbankfeld.

    Ich nehme an, dass die Syntax eventuell eine andere ist.

    Wie immer vorab  :thx: für hilfreiche Tips!

    Bonner

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

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.082
    • Geschlecht:
    Hallo Bonner,

    vielleicht verstehe ich Dein Anliegen auch nicht komplett, aber eventuell hilft ein Vergleich mit der Tabelle "manufacturers_info". Dort gibt es ja auch ein Datenbankfeld "manufacturers_url". Also m.E. kein anderes Format für die Verlinkung mit einer externen Url.

    Beste Grüße,
    Wayne

    Bonner

    • Fördermitglied
    • Beiträge: 848
    • Geschlecht:
    Hallo Wayne,

    da hast Du recht..ich habe mich wohl nicht eindeutig ausgedrückt.

    Wie auf dem Bild erkennbar, wird die URL angezeigt..soweit ok. Ich möchte aber nun, dass statt der URL nur der Name angezeigt wird und dann unterstrichen wie bei allen Links in meinem Shop (wie im Bild z.B. bei "hier").

    Irgendwie ist die Lösung wahrscheinlich recht simpel, nur ich komm da einfach nicht drauf.

    Grüße aus Bonn

    Bonner

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.082
    • Geschlecht:
    Hallo Bonner,

    ohne den Code von dem Bereich zu kennen und nur vom Gedanken her:

    Du müsstest die designer_name und designer_url verfügbar machen und dann so etwas wie
    <a target="_blank" href="  DESIGNER_URL  "> DESIGNER_NAME </a> im Template anlegen.

    Hab das allerdings auch noch nie gebraucht. Vielleicht hat einer der Profis den korrekten Code zur Verfügung.

    Beste Grüße,
    Wayne

    Guenter59

    • Viel Schreiber
    • Beiträge: 1.484

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.082
    • Geschlecht:
    ...und da quäl ich mir einen ab. ;-)

    Das beschreibt es denke ich deutlich besser.

    Danke Guenter,
    Wayne

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Naja wenn ich es richtig verstanden habe, dann geht es nur um externe Link, die in einem neuen Fenster öffnen sollen, daher ist die Verwendung der Funktion "xtc_href_link" nicht erforderlich. Das lässt sich dann auch rein in Smarty lösen.

    Code: PHP  [Auswählen]
    <a target="_blank" href="{$module_data.DESIGNER_LINK}">{$module_data.CATEGORIES_NAME}</a>

    Das setzt voraus, dass die "/includes/modules/default.php" entsprechend erweitert wurde um das neue Datenbank-Feld für die Designer-URL.

    Grüße

    Torsten

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.082
    • Geschlecht:
    Hallo Torsten,

    ja, es geht um einen externen Link. Nur hat der Wiki-Eintrag den Aufbau eines Links generell ganz gut beschrieben. Deshalb fand ich den Hinweis von Guenter hilfreich.

    Danke für Deinen Hinweis!

    Beste Grüße,
    Wayne

    Bonner

    • Fördermitglied
    • Beiträge: 848
    • Geschlecht:
    Erstmal ein Danke an euch drei für die Vorschläge.

    Ich bin dann mal Torsten und Wayne gefolgt, weil ich das eigentlich logisch gut nachvollziehen konnte  ;-)

    Leider war das Ergebnis nicht positiv  :mhhh:, was mir mal wieder nicht in den Kopf will.

    Ich habe das neue Feld categories_design_url in die default.php im Bereich der Kategorien eingebaut.

    Code: PHP  [Auswählen]
    /**
     * list of categories
     *
     */

    if ($category_depth == 'nested') {

      if (GROUP_CHECK == 'true') {
        $group_check = "AND c.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
      }

      $category_query = "-- /includes/modules/default.php
                         SELECT c.categories_image,
                                c.categories_template,
                                cd.categories_name,
                                cd.categories_heading_title,
                                cd.categories_description,
                                cd.categories_design_url
                              FROM "
    .TABLE_CATEGORIES." c
                              JOIN "
    .TABLE_CATEGORIES_DESCRIPTION." cd on cd.categories_id = c.categories_id
                              WHERE c.categories_id = '"
    .$current_category_id."'
                                "
    .$group_check."
                                AND cd.language_id = '"
    .(int) $_SESSION['languages_id']."'";
      $category_query = xtDBquery($category_query);
      $category = xtc_db_fetch_array($category_query, true);

      if (MAX_DISPLAY_CATEGORIES_PER_ROW > 0) {
        // check to see if there are deeper categories within the current category
        $categories_query = "-- /includes/modules/default.php
                             SELECT c.categories_id,
                                    c.categories_image,
                                    c.parent_id,
                                    cd.categories_name,
                                    cd.categories_heading_title,
                                    cd.categories_description,
                                    cd.categories_design_url                                                               
                                  FROM "
    .TABLE_CATEGORIES." c
                                  JOIN "
    .TABLE_CATEGORIES_DESCRIPTION." cd on cd.categories_id = c.categories_id
                                  WHERE c.categories_status = '1'
                                    "
    .$group_check."
                                    AND c.parent_id = '"
    .$current_category_id."'
                                    AND cd.language_id = '"
    .(int) $_SESSION['languages_id']."'
                                  ORDER BY sort_order, cd.categories_name"
    ;
        $categories_query = xtDBquery($categories_query);
        $categories_content = array();
        while ($categories = xtc_db_fetch_array($categories_query, true)) {
          $cPath_new = xtc_category_link($categories['categories_id'],$categories['categories_name']);
          $image = '';
          if ($categories['categories_image'] != '') {
            $image = DIR_WS_IMAGES.'categories/'.$categories['categories_image'];
            if(!file_exists($image)) $image = DIR_WS_IMAGES.'categories/noimage.gif';
            $image = $image;
          }
          $categories_content[] = array ('CATEGORIES_NAME' => $categories['categories_name'],
                                         'CATEGORIES_HEADING_TITLE' => $categories['categories_heading_title'],
                                         'CATEGORIES_IMAGE' => $image,
                                         'CATEGORIES_LINK' => xtc_href_link(FILENAME_DEFAULT, $cPath_new),
                                         'CATEGORIES_DESCRIPTION' => $categories['categories_description'],
                                                                             'CATEGORIES_DESIGN_URL' => $categories['categories_design_url']);
        }
      }

      $new_products_category_id = $current_category_id;
      include (DIR_WS_MODULES.FILENAME_NEW_PRODUCTS);

      $image = '';
      if ($category['categories_image'] != '') {
        $image = DIR_WS_IMAGES.'categories/'.$category['categories_image'];
        if(!file_exists($image)) $image = DIR_WS_IMAGES.'categories/noimage.gif';
        $image = $image;
      }
      // get default template
      if ($category['categories_template'] == '' || $category['categories_template'] == 'default') {
        $files = array ();
        $cl_dir = DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/module/categorie_listing/';
        if ($dir = opendir($cl_dir)) {
          while (($file = readdir($dir)) !== false) {
            if (is_file($cl_dir.$file) && (substr($file, 0, 1) != '.') && (substr($file, -5) == '.html') && ($file != 'index.html')) {
              $files[] = $file;
            }
          }
          closedir($dir);
        }
        sort($files);
        $category['categories_template'] = $files[0];
      }

      $max_per_row = MAX_DISPLAY_CATEGORIES_PER_ROW;
      $width = $max_per_row ? intval(100 / $max_per_row).'%' : '';
      $default_smarty->assign('TR_COLS', $max_per_row);
      $default_smarty->assign('TD_WIDTH', $width);
      $default_smarty->assign('CATEGORIES_NAME', $category['categories_name']);
      $default_smarty->assign('CATEGORIES_HEADING_TITLE', $category['categories_heading_title']);
      $default_smarty->assign('CATEGORIES_IMAGE', $image);
      $default_smarty->assign('CATEGORIES_DESCRIPTION', $category['categories_description']);
      $default_smarty->assign('CATEGORIES_DESIGN_URL', $category['categories_design_url']);
      $default_smarty->assign('language', $_SESSION['language']);
      $default_smarty->assign('module_content', $categories_content);
      $default_smarty->caching = 0;
      $main_content = $default_smarty->fetch(CURRENT_TEMPLATE.'/module/categorie_listing/'.$category['categories_template']);
      $smarty->assign('main_content', $main_content);

    ..und entsprechend auch die product_listing_v1.html angepasst:

    Code: PHP  [Auswählen]
    {if $CATEGORIES_DESCRIPTION || $CATEGORIES_IMAGE || $MANUFACTURER_DROPDOWN}
                    {if $CATEGORIES_IMAGE}<img src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME}" class="imgLeft" />{/if}
                    <p>{if $CATEGORIES_DESCRIPTION}{$CATEGORIES_DESCRIPTION}{/if}
                    <p>{if $CATEGORIES_DESIGN_URL}{#text_categories_design#}&nbsp;<a target="_blank" href="{$module_data.CATEGORIES_DESIGN_URL}">{$module_data.CATEGORIES_DESIGN}</a>
                       {else}
                       {if $CATEGORIES_DESIGN}{#text_categories_design#}&nbsp;{$CATEGORIES_DESIGN}{/if}
                       {/if}
                    <p>{if $CATEGORIES_YEARS}{#text_categories_years#}&nbsp;{$CATEGORIES_YEARS}{/if}
                    {if $MANUFACTURER_DROPDOWN}{$MANUFACTURER_DROPDOWN}<br/>{/if}
    {/if}

    Leider bleibt das Feld leer... :wohow:

    Der Weg ist m.E. eigentlich richtig..es wird wie immer wahrscheinlich nur an einer Kleinigkeit liegen..
    vielleicht hat jemand ja noch einen Tip..DANKE!

    Bonner

    burrito

    • Viel Schreiber
    • Beiträge: 535
    • Geschlecht:
    Gib mal in der html-Datei folgendes ein

    Code: PHP  [Auswählen]
    {debug}

    Dann siehst Du alle Smarty-Variablen und ihre Wert. Das hilft oftmals bei der Fehlersuche

    burrito

    Guenter59

    • Viel Schreiber
    • Beiträge: 1.484
    Re: Externe Verlinkung im Datenbankfeld einer Kategorie einfügen
    Antwort #10 am: 26. Januar 2015, 00:01:16
    Hi

    ich kann nicht sehen wo die $CATEGORIES_DESIGN her kommt

    GMS

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.082
    • Geschlecht:
    Re: Externe Verlinkung im Datenbankfeld einer Kategorie einfügen
    Antwort #11 am: 26. Januar 2015, 09:35:41
    In der Datenbank ist aber auch die Tabelle categories_description um den Eintrag categories_design_url erweitert und befüllt, oder?

    Beste Grüße,
    Wayne

    Bonner

    • Fördermitglied
    • Beiträge: 848
    • Geschlecht:
    Re: Externe Verlinkung im Datenbankfeld einer Kategorie einfügen
    Antwort #12 am: 26. Januar 2015, 10:06:45
    ja, sowohl das Feld categories_design als auch das Feld categories_design_url sind angelegt und gefüllt in der Tabelle categories_description.

    @burrito
    toller Hinweis..ich seh da jedoch keinen Fehler

    Code: PHP  [Auswählen]
    {$CATEGORIES_DESCRIPTION}       "<h3><span style="font-size: medium;">..."
    {$CATEGORIES_DESIGN}    "Raymond Loewy"
    {$CATEGORIES_DESIGN_URL}        "http://de.wikipedia.org/wiki/Raymond_..."
    {$CATEGORIES_HEADING_TITLE}     "Exquisit Como Blaulüster"
    {$CATEGORIES_IMAGE}     "images/categories/296.JPG"
    {$CATEGORIES_NAME}      "Exquisit Como Blaulüster"
    {$CATEGORIES_YEARS}     "1950er Jahre"
    {$MANUFACTURER_DROPDOWN}        ""
    {$NAVIGATION}   " <table border="0" width="100%" c..."
    {$SCRIPT_NAME}  "/index.php"
    {$language}     "german"
    {$module_content}       Array (1)
    0 => Array (34)
      PRODUCTS_NAME => "Exquisit Como Blaulüster Kaffeetasse ..."
      COUNT => 0
      PRODUCTS_ID => "1358"
      PRODUCTS_MODEL => ""
      PRODUCTS_EAN => ""
      PRODUCTS_MANUFACTURERS_MODEL => ""
      PRODUCTS_VPE => null
      MANUFACTURERS_NAME => "Thomas"
      PRODUCTS_LENGTH => ""
      PRODUCTS_WIDTH => ""
      PRODUCTS_HEIGTH => "6,5 cm"
      PRODUCTS_DIAMETER => "8,5 cm"
      PRODUCTS_DIAMSAUCER => ""
      PRODUCTS_SPECIALITYNEU => ""
      PRODUCTS_ZUSTANDNEU => "neuwertig"
      PRODUCTS_DECORNEU => "Exquisit Como Blaulüster"
      PRODUCTS_IMAGE => "images/product_images/thumbnail_image..."
      PRODUCTS_IMAGE_SIZE => "width="200" height="152""
      PRODUCTS_IMAGE_TITLE => "Exquisit Como Blaulüster Kaffeetasse ..."
      PRODUCTS_LINK => "http://www.porzellantraeume.de/thomas..."
      PRODUCTS_PRICE => " 12,50 EUR"
      PRODUCTS_TAX_INFO => "Differenzbesteuert gem. &sect; 25a UStG"
      PRODUCTS_SHIPPING_LINK => " zzgl. <a rel="nofollow" target="_bla..."
      PRODUCTS_BUTTON_BUY_NOW => "
    "
      PRODUCTS_SHIPPING_NAME => "
    1-3 Werktage*"
      PRODUCTS_SHIPPING_IMAGE => null
      PRODUCTS_SHIPPING_NAME_LINK => "
    <a rel="nofollow" target="_blank" hre..."
      PRODUCTS_DESCRIPTION => "
    "
      PRODUCTS_QUANTITY => "
    0"
      PRODUCTS_EXPIRES => 0
      PRODUCTS_CATEGORY_URL => "
    "
      PRODUCTS_SHORT_DESCRIPTION => "
    "
      PRODUCTS_FSK18 => "
    0"
      PRODUCTS_BUTTON_DETAILS => "
    <a href="http://www.porzellantraeume...."
    {$tpl_path}     "templates/shop6/"

    Bonner

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.082
    • Geschlecht:
    Re: Externe Verlinkung im Datenbankfeld einer Kategorie einfügen
    Antwort #13 am: 26. Januar 2015, 10:51:09
    Was heißt eigentlich: Das Feld bleibt leer? Kannst Du mal ein Bild schicken, oder einen Link. Oder alternativ: Wird denn der hinterlegte Text von z.B. {#text_categories_design#} wenigstens angezeigt?

    Versuche mal das module_data bei $module_data.CATEGORIES_DESIGN_URL und $module_data.CATEGORIES_DESIGN wegzulassen.

    Beste Grüße,
    Wayne

    Bonner

    • Fördermitglied
    • Beiträge: 848
    • Geschlecht:
    Re: Externe Verlinkung im Datenbankfeld einer Kategorie einfügen
    Antwort #14 am: 26. Januar 2015, 12:37:11
    So...Ronny hat mir schnell das Problem gefixt..ein dickes  :thx: dafür!

    Auch an Wayne.. das war der richtige Weg.

    Nachfolgend die korrekte Syntax in der product_listing_v1.html (wenn jemand es später mal braucht)

    Code: PHP  [Auswählen]
    {if $CATEGORIES_DESIGN_URL}
        <p>{#text_categories_design#}&nbsp;<a target="_blank" href="{$CATEGORIES_DESIGN_URL}">{$CATEGORIES_DESIGN}</a></p>
     {else if $CATEGORIES_DESIGN}
        <p>{#text_categories_design#}&nbsp;{$CATEGORIES_DESIGN}</p>
     {/if}

    Schöne Grüsse aus dem regnerischen Bonn!

    Bonner
    3 Antworten
    3444 Aufrufe
    28. Mai 2013, 12:01:40 von Clever
    2 Antworten
    3432 Aufrufe
    28. November 2011, 17:13:19 von techpoint
    1 Antworten
    2285 Aufrufe
    11. Mai 2015, 16:27:53 von noRiddle (revilonetz)