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: categorie_listing.html {$MODULE_new_products} mit anderen Daten füllen

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Wo muss ich den Anstezen, damit ich das smarty {$MODULE_new_products} in der categorie_listing.html anders füllen kann, bzw. ich würde lieber ein neues Smarty bauen.

    Wenn man eine Kategorie aufruft, die Unterkategorien enthält, sollen nicht die neuen Produkte der Unterkategorien angezeigt werden, sondern in der Datenbank definierte Artikel (über ein eigenes Datenbankfeld)

    In welcher Datei muss ich das zusammensetzen?

    Bin ich da richtig, wenn ich die new_products.php dupliziere, und anpasse? Wie binde ich das dann ein?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=32140.0
    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Irgendwo ist noch ein Denkfehler ...

    Habe die new_products.php dupliziert in category_top_products.php und angepasst:
    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: category_top_products 2015 01 30 Jochen
       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/


    $module_smarty = new Smarty;
    $module_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');

    //fsk18 lock
    $fsk_lock = '';
    if ($_SESSION['customers_status']['customers_fsk18_display'] == '0') {
      $fsk_lock = ' AND p.products_fsk18!=1';
    }

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

    $category_top_query = "SELECT *
                               FROM "
    .TABLE_PRODUCTS." p,
                                    "
    .TABLE_PRODUCTS_DESCRIPTION." pd,
                                    "
    .TABLE_PRODUCTS_TO_CATEGORIES." p2c,
                                    "
    .TABLE_CATEGORIES." c
                              WHERE c.categories_status='1'
                                AND p.products_id = p2c.products_id
                                AND p.products_id = pd.products_id
                                AND p2c.categories_id = c.categories_id
                                "
    .$group_check."
                                "
    .$fsk_lock."
                                "
    .$days."
                                AND c.parent_id = '"
    .$current_category_id."'
                                AND p.products_status = '1'
                                AND pd.language_id = '"
    .(int) $_SESSION['languages_id']."'
                                                            AND p.products_category_top = '1'"
    ;
    $row = 0;
    $module_content = array ();

    //Produkte mit gleicher ID nicht doppelt anzeigen
    $pid_array = array();
    $category_top_query = xtDBquery($category_top_query);
    while ($category_top = xtc_db_fetch_array($category_top_query, true)) {
      if (!in_array($category_top['products_id'],$pid_array)) {
        $module_content[] = $product->buildDataArray($category_top);
      }
      $pid_array[] = $category_top['products_id'];
    }
    unset($pid_array);

    if (sizeof($module_content) >= 1) {
      $module_smarty->assign('language', $_SESSION['language']);
      $module_smarty->assign('module_content', $module_content);

      // set cache ID
       if (!CacheCheck()) {
        $module_smarty->caching = 0;
        $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/category_top.html');
      } else {
        $module_smarty->caching = 1;
        $module_smarty->cache_lifetime = CACHE_LIFETIME;
        $module_smarty->cache_modified_check = CACHE_CHECK;
        $cache_id = $current_category_id.$_SESSION['language'].$_SESSION['customers_status']['customers_status_name'].$_SESSION['currency'];
        $module = $module_smarty->fetch(CURRENT_TEMPLATE.'/module/category_top.html', $cache_id);
      }
      $default_smarty->assign('MODULE_category_top', $module);
    }
    ?>
    Frage dazu ist, wie bekomme ich die $current_category_id gefüllt und woher kam die analoge $new_products_category_id aus der new_products.php

    Dann habe ich die new_products.html geklont zur category_top.html
    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="new_products"}
    <h1>{#heading_text_category_top#}</h1>
    <table class="productPreview" width="100%" border="0" cellspacing="0" cellpadding="0">
    {foreach name=aussen item=module_data from=$module_content}
      <tr>
        <td align="center" class="productPreviewImage">{if $module_data.PRODUCTS_IMAGE!=''}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE|replace:"thumbnail":"info"}" alt="{$module_data.PRODUCTS_NAME|escape:"htmlall"}" class="productImageBorder" /></a>{else}&nbsp;{/if}</td>
        <td class="productPreviewContent">
                    <h2><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME|escape:"htmlall"}</a></h2>
                    <div>{$module_data.PRODUCTS_SHORT_DESCRIPTION}</div>
                    <p class="price">{$module_data.PRODUCTS_PRICE}</p><p class="taxandshippinginfo">( {$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK} )</p>
                    {if $module_data.PRODUCTS_VPE}<p class="vpe">{$module_data.PRODUCTS_VPE}</p>{/if}
                    {if $module_data.PRODUCTS_SHIPPING_NAME}<p class="shippingtime">{#text_shippingtime#}{if $module_data.PRODUCTS_SHIPPING_IMAGE}<img src="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt="{$module_data.PRODUCTS_SHIPPING_NAME}" />{/if}
                            {$module_data.PRODUCTS_SHIPPING_NAME_LINK}</p>
                    {/if}
                   
                    <p>{$module_data.PRODUCTS_BUTTON_BUY_NOW}&nbsp;<a href="{$module_data.PRODUCTS_LINK}"><img src="{$tpl_path}buttons/{$language}/button_product_more.gif" alt="Details" border="0" /></a></p>
            </td>
      </tr>
      <tr>
        <td align="center" colspan="2">
        <div class="hrproductpreview"></div>
        </td>
      </tr>
    {/foreach}
    </table>
     

    In der categorie_listing.html versuche ich dann das neue Smarty aufzurufen, ganz am Ende:
    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="categorie_listing"}
    {if $CATEGORIES_HEADING_TITLE}
            <h1>{$CATEGORIES_HEADING_TITLE}</h1>
    {else}
            <h1>{$CATEGORIES_NAME}</h1>
    {/if}
    {if $CATEGORIES_IMAGE}<img src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME}" />{/if}
    {if $CATEGORIES_DESCRIPTION}<p>{$CATEGORIES_DESCRIPTION}</p>{/if}

    {if $module_content !=''} <strong>{#heading_more_categories#}</strong>
         <br />
          <table style="border-top: 2px solid; border-color: #d4d4d4;" width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr> {foreach name=aussen item=module_data from=$module_content}
                    {php}
              $col++;
                    {/php}
              <td class="main"><table  width="100%" border="0" cellpadding="0" cellspacing="4">
                    <tr>
                      <td align="center" >{if $module_data.CATEGORIES_IMAGE}<a href="{$module_data.CATEGORIES_LINK}"><img src="{$module_data.CATEGORIES_IMAGE}" alt="{$module_data.CATEGORIES_NAME}" /></a>{/if}</td>
                    </tr>
                    <tr>
                      <td align="center" ><strong><a href="{$module_data.CATEGORIES_LINK}">{$module_data.CATEGORIES_NAME}</a></strong></td>
                    </tr>
                  </table>
                </td>
              {php}
                      if ($col>=3) {
                      $col=0;
                      echo '</tr><tr>';
                       }
                      {/php}
                     {/foreach} </tr>
          </table>
           {/if} <br />
               {$MODULE_category_top}
    {*{$MODULE_new_products}*}

    Muss das neue Modul noch irgendwo includiert werden, damit es läuft?

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    OK, das neue Modul wird nicht abgearbeitet und ich versteh nicht warum. Wenn ich in die neue
    includes/modules/category_top_products.php
    das reinschreibe:
    Code: PHP  [Auswählen]
    die($category_top_query);
    wird der Shop immer noch so angezeigt als wäre nichts ....

    Wie includiere ich wo das neue modul?

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Gefunden  :lol1:

    filenames.php den Dateinamen definiert und in der default.php
    hinter
    Code: PHP  [Auswählen]
      include (DIR_WS_MODULES.FILENAME_NEW_PRODUCTS);
    das:
    Code: PHP  [Auswählen]
      include (DIR_WS_MODULES.FILENAME_CATEGORY_TOP_PRODUCTS);
    13 Antworten
    6287 Aufrufe
    25. Oktober 2013, 11:23:58 von hannozero
    1 Antworten
    3024 Aufrufe
    27. April 2011, 01:24:56 von Parry
    0 Antworten
    2203 Aufrufe
    22. Februar 2013, 21:21:35 von TackleBase
    5 Antworten
    5115 Aufrufe
    14. April 2011, 11:55:06 von Tomcraft
               
    anything