Anleitung Zusatzfelder erstellen unter Artikelnamen

Thema wurde von Petra, 7. Februar 2012 erstellt.

  1. M4G

    M4G Aktives Mitglied

    Registriert seit:
    19. November 2012
    Beiträge:
    37
    Danke erhalten:
    0
    Danke vergeben:
    15
    also die Template Abfrage mit der Sprache funktioniert, habe es mit unabhängigem Code in der HTML-Datei ausprobiert.

    Wie muss ich die Datei extrafeld_ProductInfoContentView.inc.php anpassen, dass diese mit einem zusätzlichen Feld funktioniert ?
     
  2. M4G

    M4G Aktives Mitglied

    Registriert seit:
    19. November 2012
    Beiträge:
    37
    Danke erhalten:
    0
    Danke vergeben:
    15
    Hallo Leute, habe eine Lösung gefunden =) #
    kann geschlossen werden
     
  3. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Wenn du die Lösung hier postest, wäre das gut für die Comunity! ;)
     
  4. M4G

    M4G Aktives Mitglied

    Registriert seit:
    19. November 2012
    Beiträge:
    37
    Danke erhalten:
    0
    Danke vergeben:
    15
    #84 M4G, 25. Juni 2013
    Zuletzt bearbeitet: 25. Juni 2013
    klar wenn das Interesse da ist :D

    Inhalt der standard-USERMOD.html in templates/EyeCandy/module/product_info

    PHP:
    {load_language_text section="product_info"}
    {
    load_language_text section="buttons" name="button"}

    {if 
    $PRODUCT_NAVIGATOR}
        {
    $PRODUCT_NAVIGATOR}
    {/if}

    {if 
    $smarty.session.language=='german'}
    <
    div class="details clearfix" id="product_info">
        <
    form name="{$FORM_NAME}id="{$FORM_NAME}action="{$FORM_ACTION_URL}method="{$FORM_METHOD}">
            <
    div>
                <
    div class="gallery clearfix">

                    <
    div class="inside">
                        <
    div class="stage button_lightbox_gallery">
                            {
    gm_gmotion}
                            {if 
    $images.0.IMAGE}
                            <
    div class="info_image_box" style="margin: 0 auto 0 auto; width: {$images.0.WIDTH}px;">
                                <
    a href="{$images.0.ZOOM_IMAGE}title="">
                                {if 
    $GMOTION == '0'}
                                    <
    img id="gallery_inside_main_1" src="{$images.0.IMAGE}alt="{$images.0.IMAGE_ALT|default:$images.0.PRODUCTS_NAME}title="{$images.0.IMAGE_ALT|default:$images.0.PRODUCTS_NAME}/>
                                {/if}
                                </
    a>
                            </
    div>
                            {/if}
                        </
    div>
                        {if 
    $thumbnails|@count 1}
                        <
    div class="thumbnails">
                            {foreach 
    name=thumbnails item=thumbnails_data from=$thumbnails}
                                <
    div class="thumbnail"><a href="{$thumbnails_data.INFO_IMAGE}rel="{$thumbnails_data.ZOOM_IMAGE}class="button_product_images button_lightbox_gallery {if $smarty.foreach.thumbnails.first} active_thumbnail{/if}" id="gallery_inside_thumbnail_{$smarty.foreach.thumbnails.iteration}title="{$thumbnails_data.IMAGE_ALT|default:$thumbnails_data.PRODUCTS_NAME}"><img style="padding-left: {$thumbnails_data.PADDING_LEFT}px; padding-top: {$thumbnails_data.PADDING_TOP}px;" src="{$thumbnails_data.IMAGE}alt="{$thumbnails_data.IMAGE_ALT|default:$thumbnails_data.PRODUCTS_NAME}title="{$thumbnails_data.IMAGE_ALT|default:$thumbnails_data.PRODUCTS_NAME}/></a></div>
                            {/foreach}
                        </
    div>
                        {/if}
                    </
    div>
                    {if 
    $MODULE_products_media != ''}
                        {
    $MODULE_products_media}
                    {/if}
                </
    div>
                <
    div class="info clearfix">
                    <
    div class="inside">
                        <
    h1>{$PRODUCTS_NAME}</h1>
                        <
    dl>
                        {if 
    $PRODUCTS_MODEL!='' || $SHOW_PRODUCTS_MODEL}
                            <
    dt>{$txt.text_model}</dt>
                            <
    dd class="products_model">{$PRODUCTS_MODEL}</dd>
                        {/if}
                        {if 
    $SHIPPING_NAME || $SHOW_SHIPPING_TIME}
                            <
    dt>{$txt.text_shippingtime}</dt>
                            <
    dd class="shipping_time">{if $SHIPPING_IMAGE}<img src="{$SHIPPING_IMAGE}alt="{$SHIPPING_NAME}/>{/if} <span class="products_shipping_time_value">{$SHIPPING_NAME}</span></dd>
                        {/if}
                        <!-- 
    products_extrafield-->
                        {if 
    $PRODUCTS_GARANTIE || $SHOW_PRODUCTS_GARANTIE}
                            <
    dt>{$txt.text_products_garantie}</dt>
                            <
    dd class="products_garantie">{$PRODUCTS_GARANTIE}</dd>
                        {/if}                        
                        <!--
                        {if 
    $PRODUCTS_QUANTITY || $SHOW_PRODUCTS_QUANTITY}
                            <
    dt>{$txt.text_stock}</dt>
                            <
    dd class="products_quantity"><span class="products_quantity_value">{$PRODUCTS_QUANTITY}</span> {if $PRODUCTS_QUANTITY_UNIT}{$PRODUCTS_QUANTITY_UNIT}{else}{$txt.text_pieces}{/if}</dd>
                        {/if} -->
                        {if 
    $PRODUCTS_QUANTITY_UNIT}
                            <
    dt>{$txt.text_products_quantity_unit}</dt// noch in sprachdatei definieren
                            
    <dd class="products_quantity"><span class="products_quantity_value">{$PRODUCTS_QUANTIT Y_UNIT}</span></dd>
                        {/if}
                        </
    dl>
                        
                        {
    $properties_selection_form}
                        {
    $MODULE_product_options}
                        <
    div id="gm_attribute_images"></div>

                        {if 
    $PRODUCTS_FSK18=='true'}
                            <
    div id="fsk18_image"><img src="{$tpl_path}img/fsk18.gif" alt="" /></div>
                        {/if}

                        {
    gm_gprint position=1 margin_left=0}
                        {
    gm_gprint position=2 margin_left=0}
                        {
    gm_gprint position=3 margin_left=0}

                        {if 
    $MODULE_graduated_price != ''}
                            {
    $MODULE_graduated_price}
                        {/if}

                        <
    div class="price-container">
                            <
    div class="inside">
                                <
    span class="price" id="gm_attr_calc_price">{$PRODUCTS_PRICE}{if $PRODUCTS_VPE}<br /><span class="tax-shipping-text gm_products_vpe">{$PRODUCTS_VPE}</span><br />{/if}</span>{if !$PRODUCTS_VPE}<br />{/if}
                                {if 
    $ADD_CART_BUTTON}
                                <
    span class="tax-shipping-text">{$PRODUCTS_TAX_INFO}{$PRODUCTS_SHIPPING_LINK}</span><br />
                                <
    br />                            
                                <
    div id="details_cart_part" style="{if $GM_GPRINT} display: none;{/if}">
                                    <
    a href="{page_url}#" id="cart_button" class="button_green_big button_set_big button_details_add_cart"><span class="button-outer"><span class="button-inner"><img class="png-fix" src="{$tpl_path}img/icons/icon-white-shoppingcart.png" alt="" style="margin-right:10px; float:left" />{$txt.add_to_cart}</span></span></a>
                                    {if 
    $QUANTITY}
                                        <
    span class="quantity_container">
                                            {if 
    $PRODUCTS_QUANTITY_UNIT}<label for="gm_attr_calc_qty" class="products_quantity_unit" id="gm_attr_calc_qty_unit">{$PRODUCTS_QUANTITY_UNIT}</label>{/if}
                                            <
    input type="text" id="gm_attr_calc_qty" class="products_quantity" name="products_qty" value="{$QUANTITY}"{if $DISABLED_QUANTITYdisabled="disabled"{/if} />
                                        </
    span>
                                    {/if}
                                        {if 
    $ADD_WISHLIST_BUTTON}<div class="leaflet"><a href="{page_url}#" id="gm_wishlist_link" class="button_details_add_wishlist">{$button.add_to_wishlist}</a></div>{/if}
                                    <
    input type="hidden" name="products_id" id="gm_products_id" value="{$PRODUCTS_ID}/>
                                    <
    input type="hidden" name="submit_target" value="cart" />
                                    <
    div id="details_qty_advice">
                                        <
    div id="gm_checker_error_{$PRODUCTS_ID}">
                                        {if 
    $GM_MIN_ORDER}
                                            {
    $txt.text_min_order}<span class="details_qty_advice_bold">{$GM_MIN_ORDER}</span><br />
                                        {/if}
                                        {if 
    $GM_GRADUATED_QTY}
                                            {
    $txt.text_graduated_qty_1}<span class="details_qty_advice_bold">{$GM_GRADUATED_QTY}</span>{$txt.text_graduated_qty_2}
                                        {/if}
                                        </
    div>
                                    </
    div>
                                    {if 
    $SHOW_PRODUCTS_WEIGHT}
                                    <
    div id="details_products_weight">
                                        {
    $txt.text_weight} <span id="gm_calc_weight">{$PRODUCTS_WEIGHT}</span> {$txt.text_weight_unit}
                                    </
    div>
                                    {/if}
                                </
    div>
                                {else}
                                    <
    input type="hidden" name="products_id" id="gm_products_id" value="{$PRODUCTS_ID}/>
                                {/if}
                            </
    div>
                        </
    div>
                    </
    div>
                </
    div>
                <
    div style="clear: both"> <!-- --> </div>
            </
    div>
            {if 
    $SHOW_BOOKMARKING || $SHOW_PRINT || $GM_PRICE_OFFER!='' || $GM_TELL_A_FRIEND || $SHOW_FACEBOOK || $SHOW_TWITTER || $SHOW_GOOGLEPLUS || $SHOW_PINTEREST}
            <
    div class="actions">
                {if 
    $SHOW_BOOKMARKING}
                    <
    class="addthis_button" href="http://www.addthis.com/bookmark.php" rel="nofollow"><img class="png-fix" src="{$tpl_path}img/icons/icon-bookmark.png" alt="" /> &nbsp; {$txt.text_bookmarking}</a>
                {/if}
                {if 
    $SHOW_PRINT}
                    <
    a href="{page_url}#" class="button_print" rel="nofollow"><img class="png-fix" src="{$tpl_path}img/icons/icon-print.png" alt="" /> &nbsp; {$txt.text_print}</a>
                {/if}
                {if 
    $GM_PRICE_OFFER!=''}
                    <
    a href="{page_url}#" id="gm_price_offer" class="button_price_offer" rel="nofollow"><img class="png-fix" src="{$tpl_path}img/icons/price_offer.png" alt="" /> &nbsp; {$txt.text_price_offer}</a>
                {/if}
                {if 
    $GM_TELL_A_FRIEND}
                    <
    a href="{page_url}#" id="gm_tell_a_friend" class="button_tell_a_friend" rel="nofollow"><img class="png-fix" src="{$tpl_path}img/icons/tell_a_friend.png" alt="" /> &nbsp; {$txt.text_tell_a_friend}</a>
                {/if}
                {if 
    $SHOW_FACEBOOK || $SHOW_TWITTER || $SHOW_GOOGLEPLUS || $SHOW_PINTEREST}
                    <
    div class="social_share_wrapper">
                        {if 
    $SHOW_FACEBOOK}
                            <
    div class="social_share_box" id="facebook_share_box">
                                <
    div class="social_share_image"></div>
                                <
    div class="social_share_content"><img src="templates/EyeCandy/img/social_share_dummy_facebook.png" title="Facebook" /></div>
                                <
    div style="clear: both"> <!-- --> </div>
                            </
    div>
                        {/if}
                        {if 
    $SHOW_TWITTER}
                        <
    div class="social_share_box" id="twitter_share_box">
                            <
    div class="social_share_image"></div>
                            <
    div class="social_share_content"><img src="templates/EyeCandy/img/social_share_dummy_twitter.png" title="Twitter" /></div>
                            <
    div style="clear: both"> <!-- --> </div>
                        </
    div>
                        {/if}
                        {if 
    $SHOW_GOOGLEPLUS}
                        <
    div class="social_share_box" id="googleplus_share_box">
                            <
    div class="social_share_image"></div>
                            <
    div class="social_share_content"><img src="templates/EyeCandy/img/social_share_dummy_googleplus.png" title="Google +1" /></div>
                            <
    div style="clear: both"> <!-- --> </div>
                        </
    div>
                        {/if}
                        {if 
    $SHOW_PINTEREST}
                        <
    div class="social_share_box" id="pinterest_share_box">
                            <
    div class="social_share_image"></div>
                            <
    div class="social_share_content"><img src="templates/EyeCandy/img/social_share_dummy_pinterest.png" title="Pinterest" /></div>
                            <
    div style="clear: both"> <!-- --> </div>
                        </
    div>
                        {/if}
                        <
    div style="clear: both"> <!-- --> </div>
                    </
    div>
                {/if}
                
                {if 
    $SHOW_BOOKMARKING}
                    <
    script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js"></script>
                {/if}
            </
    div>
            {/if}
            {
    $SHOPGATE_QR_BOX}
            <
    div class="description tabs">
                <
    div id="description-1">
                    {if 
    $PRODUCTS_DESCRIPTION !=''}{$PRODUCTS_DESCRIPTION}{/if}                    
                </
    div>
            </
    div>        
        </
    form>
        {if 
    $MODULE_products_reviews != ''}
            {
    $MODULE_products_reviews}
        {/if}
    </
    div>

    {if 
    $MODULE_cross_selling != ''}
        {
    $MODULE_cross_selling}
    {/if}

    {if 
    $MODULE_reverse_cross_selling != ''}
        {
    $MODULE_reverse_cross_selling}
    {/if}

    {if 
    $MODULE_also_purchased != ''}
        {
    $MODULE_also_purchased}
    {/if}

    {if 
    $PRODUCTS_ADDED != ''}
        <
    div id="products_added">{$PRODUCTS_ADDED}</div>
    {/if}

    {if 
    $PRODUCTS_URL != ''}
        <
    div class="details_products_url">{$PRODUCTS_URL}</div>
    {/if}

    {if 
    $PRODUCTS_DATE_AVIABLE != ''}
        <
    div class="details_products_date_avaiable">{$PRODUCTS_DATE_AVIABLE}</div>
    {/if}

    {/if}<!-- 
    Ende Deutsch -->
    <!-- 
    Komplett English -->
    {if 
    $smarty.session.language=='english'}
    <
    div class="details clearfix" id="product_info">
        <
    form name="{$FORM_NAME}id="{$FORM_NAME}action="{$FORM_ACTION_URL}method="{$FORM_METHOD}">
            <
    div>
                <
    div class="gallery clearfix">

                    <
    div class="inside">
                        <
    div class="stage button_lightbox_gallery">
                            {
    gm_gmotion}
                            {if 
    $images.0.IMAGE}
                            <
    div class="info_image_box" style="margin: 0 auto 0 auto; width: {$images.0.WIDTH}px;">
                                <
    a href="{$images.0.ZOOM_IMAGE}title="">
                                {if 
    $GMOTION == '0'}
                                    <
    img id="gallery_inside_main_1" src="{$images.0.IMAGE}alt="{$images.0.IMAGE_ALT|default:$images.0.PRODUCTS_NAME}title="{$images.0.IMAGE_ALT|default:$images.0.PRODUCTS_NAME}/>
                                {/if}
                                </
    a>
                            </
    div>
                            {/if}
                        </
    div>
                        {if 
    $thumbnails|@count 1}
                        <
    div class="thumbnails">
                            {foreach 
    name=thumbnails item=thumbnails_data from=$thumbnails}
                                <
    div class="thumbnail"><a href="{$thumbnails_data.INFO_IMAGE}rel="{$thumbnails_data.ZOOM_IMAGE}class="button_product_images button_lightbox_gallery {if $smarty.foreach.thumbnails.first} active_thumbnail{/if}" id="gallery_inside_thumbnail_{$smarty.foreach.thumbnails.iteration}title="{$thumbnails_data.IMAGE_ALT|default:$thumbnails_data.PRODUCTS_NAME}"><img style="padding-left: {$thumbnails_data.PADDING_LEFT}px; padding-top: {$thumbnails_data.PADDING_TOP}px;" src="{$thumbnails_data.IMAGE}alt="{$thumbnails_data.IMAGE_ALT|default:$thumbnails_data.PRODUCTS_NAME}title="{$thumbnails_data.IMAGE_ALT|default:$thumbnails_data.PRODUCTS_NAME}/></a></div>
                            {/foreach}
                        </
    div>
                        {/if}
                    </
    div>
                    {if 
    $MODULE_products_media != ''}
                        {
    $MODULE_products_media}
                    {/if}
                </
    div>
                <
    div class="info clearfix">
                    <
    div class="inside">
                        <
    h1>{$PRODUCTS_NAME}</h1>
                        <
    dl>
                        {if 
    $PRODUCTS_MODEL!='' || $SHOW_PRODUCTS_MODEL}
                            <
    dt>{$txt.text_model}</dt>
                            <
    dd class="products_model">{$PRODUCTS_MODEL}</dd>
                        {/if}
                        {if 
    $SHIPPING_NAME || $SHOW_SHIPPING_TIME}
                            <
    dt>{$txt.text_shippingtime}</dt>
                            <
    dd class="shipping_time">{if $SHIPPING_IMAGE}<img src="{$SHIPPING_IMAGE}alt="{$SHIPPING_NAME}/>{/if} <span class="products_shipping_time_value">{$SHIPPING_NAME}</span></dd>
                        {/if}
                        <!-- 
    products_extrafield-->
                        {if 
    $PRODUCTS_WARRANTY || $SHOW_PRODUCTS_WARRANTY}
                            <
    dt>{$txt.text_products_warranty}</dt>
                            <
    dd class="products_warranty">{$PRODUCTS_WARRANTY}</dd>
                        {/if}    
                       
                       
                         ...

    {/if}<!-- 
    Ende English -->
     
  5. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.432
    Danke erhalten:
    342
    Danke vergeben:
    176
    Extra-Felder Für Artikeldetailseite v. GX 2.1.x.x
    Planen Sie im Voraus die Extra-Felder, die Sie für Ihre Produkte benötigen.

    1: Machen Sie eine Sicherung der Shop-Datenbank.
    2: Machen Sie eine Sicherung des Shop-Ordners.


    Anleitung:

    1: Die Tabelle „Produkte“ in der Datenbank um die Zahl der benötigten Felder erweitern.
    z.B. Sie brauchen 2 Extra-Felder, die jeweils durch maximal 30 Zeichen beschrieben sind.
    In phpMyAdmin Ihrer Server oder im Shop unter Toolbox à SQL
    folgende Anweisung ausführen:
    Code:
    Code:
    [FONT=&quot]  [COLOR=#00B050][FONT=&quot]ALTER TABLE `products`[/FONT][/COLOR]
      [COLOR=#00B050][FONT=&quot]  ADD `products_inhalt`VARCHAR( 30 ) NOT NULL, [/FONT][/COLOR]
      [COLOR=#00B050][FONT=&quot]  ADD `products_herkunft` VARCHAR( 30 ) NOT NULL;[/FONT][/COLOR][/FONT]
    

    ACHTUNG: Der letzte „ADD“ Anweisung endet mit ( ; ).

    Sprachdateien ändern:-

    2:Nun wird die Feldbezeichnung in
    lang/german/sections/_samples/lang__german__admin__categories___php.lang.inc.php angelegt.
    Anschließend wird die geänderte Datei in Ordner lang/german/sections (also eine Ordnerebene höher) gespeichert!


    In
    lang/german/sections/_samples/lang__german__admin__categories___php.lang.inc.php

    Code:
    PHP:
      // BOF products_extrafield
              
    'TEXT_PRODUCTS_INHALT' => 'Inhalt:',
              
    'TEXT_PRODUCTS_HERKUNFT' => 'Herkunft:',
            
    // EOF products_extrafield




    einfügen ABER IN DEN FOLGENDEN ORDNER lang/german/sections (also auch eine Ordnerebene höher) hochladen.
    (Diese Datei dürfte Updatesicher sein, da an das Original nichts geändert wird?)

    3: Nun wird die Datei lang/german/sections/_samples/product_info.lang.inc.php herunterladen und geändert.

    Den Code:
    PHP:


      
    // BOF products_extrafield
        
    'text_products_inhalt' => 'Inhalt:',
        
    'text_products_herkunft' => 'Herkunft:',
        
    // EOF products_extrafield



    einfügen ABER IN DEN FOLGENDEN ORDNER lang/german/sections hochladen.
    (Diese Datei dürfte auch Updatesicher sein, da an das Original nichts geändert wird?)

    4: Am Ende der Datei lang/german/lang_german.conf

    Den Code:
    Code:
    
    [FONT=&quot]  [FONT=&quot]/* BOF products_extrafield */[/FONT]
      [FONT=&quot]text_products_inhalt = 'Inhalt:'[/FONT]
      [FONT=&quot]text_products_herkunft = 'Herkunft:'[/FONT]
      [FONT=&quot]/* EOF products_extrafield */[/FONT]
    [/FONT]
    
    einfügen und die Datei sichern. (Diese Datei ist nicht Updatessicher daher muss bei Updates eventuell nachgearbeitet werden. Am Bestens eine Liste von geänderten Dateien stellen).

    5: Für alle anderen Sprachen die Schritte entsprechend wiederholen. Damit sind die Änderungen für die Sprachdateien fertig.

    6: Die Artikelbearbeitung im Adminbereich um die benötigten Felder erweitern:
    Da ich min. 15 Extra-Felder benötige, habe ich für die Extra-Felder eine eigene Tabelle unterhalb der ersten Tabelle programmiert. Falls Sie nur ein Paar Extra-Felder benötigen, können Sie Ihren Code beliebig woanders in der Datei eingeben.
    Bei mir ist die Tabelle für Extra-Felder unter der Zeile Verfügbarkeit und vor der Tabelle Zusatzfelder.
    Dafür in der admin/includes/modules/new_product.php
    nach (ca. Zeile 921)
    PHP-Code:
    PHP:
      <tr>
                        <td><?php echo $coo_text_mgr->get_text('label_availability'?>:</td>
                        <td>
                              <?php echo xtc_draw_pull_down_menu('google_export_availability_id'$t_google_export_availability_array$pInfo->google_export_availability_id'style="width: 130px"'); ?>
                              <small><?php echo $coo_text_mgr->get_text('label_google_export_only'?></small>
                        </td>
                  </tr>
            </table>
       
                  </td>
            </tr>
      </table>
    suchen und folgendes anführen:
    PHP-Code:
    PHP:
     <!-- products_extrafield beginn -->
          <table bgcolor="#f3f3f3" style="border:1px solid;border-color:#cccccc;margin-top:10px;" width="100%"  border="0">
            <tr>
              <td>
                <table class="main" border="0" width="100%">
                  <tr>
                    <td style="font-size:14px;font-weight:bold;">Extra-Felder<br><br></td>
                  </tr>
                  <table class="main" bgcolor="#DEDEDE" border="0" width="33%" align="left">
                  <tr>
                    <td style="font-size:14px;font-weight:bold;color:#7A7A7A;">Allgemein<br><br></td>
                  </tr>
                        <tr>
                              <td><?php echo TEXT_PRODUCTS_INHALT?></td>
                              <td><?php echo  xtc_draw_input_field('products_inhalt'$pInfo->products_inhalt,'style="width: 130px"') ; ?></td>
                              </tr>
                      <tr>
                              <td><?php echo TEXT_PRODUCTS_HERKUNFT?></td>
                              <td><?php echo  xtc_draw_input_field('products_herkunft'$pInfo->products_herkunft,'style="width: 130px"') ; ?></td>
                              </tr>                
               </table>                 
            </td>
           </tr>
              
           </table>
                  <!-- products_extrafield end -->
    Bei mir sieht es so aus:
    Extrafelder.jpg
    Jetzt sollte es so aussehen. Diese Datei ist auch leider nicht Updatessicher (also auf die Liste von geänderten Dateien). Falls jemanden weiß wie man diese Datei Updatessicher ändern kann, wäre ich auch dankbar es zu erfahren.


    7: Damit die Daten auch gespeichert werden in der admin/includes/classes/categories.php
    nach (bei mir ca. Zeile 912)
    PHP-Code:
    PHP:
    'nc_ultra_shipping_costs' => xtc_db_prepare_input($products_data['nc_ultra_shipping_costs'] ));

    suchen und nach ['nc_ultra_shipping_costs'] die neun Felder einsetzen. BITTE ACHTEN SIE AUCH AUF DIE ÄNDERUNG AN DIESE ZEILE. „ ); “ muss durch eine Komma „ , ” ersetzt werden. Und „ ); “ muss am Ende von Ihrem Code stehen.
    PHP-Code:
    PHP:
      'nc_ultra_shipping_costs' => xtc_db_prepare_input($products_data['nc_ultra_shipping_costs']),
       
                        
    // BOF products_extrafields
                        
    'products_inhalt' => xtc_db_prepare_input($products_data['products_inhalt']),
                        
    'products_herkunft' => xtc_db_prepare_input($products_data['products_herkunft']));
                        
                        
    // EOF products_extrafields
      
    Anschließend zu (ca. Zeile 1658)
    PHP-Code:
    PHP:
      'gm_show_qty_info' => $product['gm_show_qty_info'],
                        
    'gm_sitemap_entry' => $product['gm_sitemap_entry'],

    gehen und nach dieser Zeile den Code einfügen
    PHP-Code:
    PHP:
      // BOF products_extrafield
                        
    'products_inhalt' => $product['products_inhalt'],
                        
    'products_herkunft'     => $product['products_herkunft'],
                        
    // EOF products_extrafield
      
    8: Damit die Felder auf der Artikeldetailseite angezeigt werden und diese auch Updatessicher ist müssen wir unter /shop/user_classes/overloads einen neuen Ordner mit dem Namen „ProductInfoContentView“ anlegen (bitte auf die genaue Schreibweise achten). Dann den folgenden PHP-Code eingeben und als „extrafield_ProductInfoContentView.inc.php“ in diesem Ordnerspeichern.
    PHP:
      <?php
      
    class extrafield_ProductInfoContentView extends extrafield_ProductInfoContentView_parent
       
    {
                  function 
    get_html($p_coo_product$p_current_category_id 0)
                  {
                              
    // BOF products_extrafield
                              
    $this->set_content_data('PRODUCTS_INHALT'$p_coo_product->data['products_inhalt']);
                              
    $this->set_content_data('PRODUCTS_HERKUNFT'$p_coo_product->data['products_herkunft']);
      
    // EOF products_extrafield
                              
    return parent::get_html($p_coo_product$p_current_category_id);
                  }
       }
      
    ?>

    Damit sind die Extrafelder auf der Detailseite.
    Damit die Extrafelder auch auf Produkt-Detailseite sichtbar werden:-[​IMG]
    9: Die Datei templates/EyeCandy/module/product_info/standart.html kopieren und auf standard-USERMOD.html umbenennen. (Diese Datei ist Updatessicher)
    In diese Datei nach
    HTML-Code suchen:
    HTML:
      {if $PRODUCTS_QUANTITY > 0 || $SHOW_PRODUCTS_QUANTITY}
                                                    <dt>{$txt.text_stock}</dt>
                                                    <dd class="products_quantity"><span class="products_quantity_value">{$PRODUCTS_QUANTITY}</span> {if $PRODUCTS_QUANTITY_UNIT}{$PRODUCTS_QUANTITY_UNIT}{else}{$txt.text_pieces}{/if}</dd>
                                   {/if}
    

    etwa in Zeile 52 dieses Einfügen
    HTML-Code:
    HTML:
      <!-- BOF products_extrafield -->
                          {if $PRODUCTS_INHALT || $SHOW_PRODUCTS_INHALT}
                                                    <dt>{$txt.text_products_inhalt}</dt>
                                                    <dd class="products_inhalt">{$PRODUCTS_INHALT}</dd>
                                            {/if}
                          {if $PRODUCTS_HERKUNFT || $SHOW_PRODUCTS_HERKUNFT}
                                                    <dt>{$txt.text_products_herkunft}</dt>
                                                    <dd class="products_herkunft">{$PRODUCTS_HERKUNFT}</dd>
                                            {/if}
                                         <!-- EOF products_extrafield -->
    
    Extrafelder-Detailseite.jpg
    Damit sind alle notwendigen Änderungen für die Extra-Felder schon fertig.
    Im AdminbereichàToolboxàCache leerenàCache für Modulinformationen leeren betätigen.
    Nun, wenn man in diese Felder Daten eingibt werden die unterhalb „Lieferzeit“ erscheinen.

    An diese Stelle möchte ich mich bei allen bedanken, die dieses Thema soweit gebracht haben. Mit besonderen Dank an Barbara für die viele Mühe.
    Entschuldigt mich, falls ich irgenwas vergessen haben sollte.

     
  6. Stoppel

    Stoppel Erfahrener Benutzer

    Registriert seit:
    3. März 2013
    Beiträge:
    539
    Danke erhalten:
    115
    Danke vergeben:
    81
    Ich hatte auch das Problem, dass ich die VPE beim Artikel darstellen wollte/musste. Mein Ansatz war jedoch ein ganz anderer: Ich habe einfach die Artikelkurzbeschreibung dafür genutzt (die wird bei gekachelter Artikelauflistung sowieso nicht benötigt) und diese entsprechend über den Artikelpreis verlinkt. So kann man auch gleich noch einen Kurztext hinzufügen, der dem Kunden beim Aufruf des Artikels gleich mit in die Augen springt, ohne dass die komplette Artikelbeschreibung gelesen werden muss.

    Weiterer Vorteil: Die Pflege kann weiterhin zentral über eine Wawi erfolgen, am Shop selbst müssen hierfür keine händischen Artikelanpassungen gemacht werden.

    artbsp.png
     
  7. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.432
    Danke erhalten:
    342
    Danke vergeben:
    176
    Mit Hilfe von Marco(Gambio) haben wir den Punkt 7: auch updatessicher gestalltet. Dafür muss man unter "/shop/user_classes/overloads" einen Ordner Namens "categories" anlegen. dann eine PHP-Datei mit dem Namen: "xxx_categories.inc.php" anlegen. (xxx steht für euer Funktionsname). Bei mir heißt es "extrafield_categories.inc.php".
    Der Inhalt der Datei soll so aussehen:
    PHP:
    <?php

    class extrafield_categories extends extrafield_categories_parent
    {
        public function 
    insert_product($products_data$dest_category_id$action 'insert')
        {
            
    $products_id parent::insert_product($products_data$dest_category_id$action);
            
    // BOF products_extrafields
                
    $extra_data = array('products_inhalt' => xtc_db_input($products_data['products_inhalt']),
                
    'products_herkunft' => xtc_db_input($products_data['products_herkunft']));
                
    // EOF products_extrafields
                
    xtc_db_perform('products'$extra_data'update''products_id = \''.(int)$products_id.'\'');
            return 
    $products_id;
        }
        function 
    duplicate_product($src_products_id$dest_categories_id)
        {
            
    $new_products_id parent::duplicate_product($src_products_id$dest_categories_id);
            
    $copy_extra_data_query 
                
    'UPDATE 
                    `products` p
                LEFT JOIN 
                    `products` psrc ON psrc.products_id = \':src_products_id\'
                SET 
                    `p`.`products_inhalt`= `psrc`.`products_inhalt`,
                    `p`.`products_herkunft`=`psrc`.`products_herkunft`
                WHERE
                    `p`.`products_id` = \':new_products_id\'
                    '
    ;
                    
    // EOF products_extrafield
                
    $copy_extra_data_query strtr($copy_extra_data_query
                array(
                    
    ':src_products_id' => (int)$src_products_id,
                    
    ':new_products_id' => (int)$new_products_id,
                )
            );
            
    xtc_db_query($copy_extra_data_query);

            return 
    $new_products_id;            
                
        }
    }
    Außerdem die Datei /shop/admin/includes/classes/categories.php muss auch erweitert werden. siehe Thread:
    http://www.gambio-forum.de/threads/17429-Overloading-von-Produktinfos
    Diese wird von Gambio nachher erweitert.
     
  8. hans

    hans Mitglied

    Registriert seit:
    18. September 2012
    Beiträge:
    8
    Danke erhalten:
    0
    Danke vergeben:
    1
    Hallo Cyrus,
    super Anleitung für extra Felder - hat toll funktioniert.
    Ich hab nur ein Feld benötigt und zwar "Artikelname2" gleich unterm Artikelnamen. Ich versuch nun schon seit 2 Tagen dieses Extrafeld auf die Rechnung und den Lieferschein zu bekommen und zwar genau so wie z.B. ein Artikelattribut - leider ohne Erfolg. Gibt es dazu vielleicht einen Lösungsanatz? Ein Stupser in die richtige Richtung würde mir schon sehr helfen.

    Viele Grüße
    Hans
     
  9. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.432
    Danke erhalten:
    342
    Danke vergeben:
    176
    Bei welche Dateien hast du es schon versucht?
     
  10. hans

    hans Mitglied

    Registriert seit:
    18. September 2012
    Beiträge:
    8
    Danke erhalten:
    0
    Danke vergeben:
    1
    Hallo Cyrus,

    vielen Dank für Deine Antwort.

    Also, ich habe versucht:

    in admin/gm_pdf_order.php bei:
    PHP:
    /*
     * -> order data
    */
    danach (Zeile ca72:
    SELECT
    op
    .products_id,
    op.orders_products_id,
    op.products_model,
    op.products_name,
    op.products_name2// Atikelname2 eingefügt
    .
    .
    .
    und bei:
    PHP:
    // BOF GM_MOD GX-Customizer:

    .
    .
    .
    Zeile ca142
    $order_data
    [] = array(
    'PRODUCTS_MODEL' => $order_data_values['products_model'],
    'PRODUCTS_NAME' => $order_data_values['products_name'],
    'PRODUCTS_NAME2' => $order_data_values['products_name2'], // Atikelname2 eingefügt
    .
    .
    .
    funktioniert nicht

    in admin/gm/classes/gmOrderPDF.php bei:

    PHP:
    /*
     * -> order data
    */
    danach Zeile ca. 471
    original:
    PHP:
    $y $this->getCells($product['PRODUCTS_MODEL'], $product['PRODUCTS_NAME'], $product['PRODUCTS_QTY'] . ' ' $product['PRODUCTS_UNIT'], $product['PRODUCTS_TAX'], $product['PRODUCTS_PRICE_SINGLE'], $product['PRODUCTS_PRICE'], ''$this->pdf_fonts_size'0'$y);
    durch:
    PHP:
    $y $this->getCells($product['PRODUCTS_MODEL'], $product['PRODUCTS_NAME'], $product['PRODUCTS_NAME2'], $product['PRODUCTS_QTY'] . ' ' $product['PRODUCTS_UNIT'], $product['PRODUCTS_TAX'], $product['PRODUCTS_PRICE_SINGLE'], $product['PRODUCTS_PRICE'], ''$this->pdf_fonts_size'0'$y);
    zu ergänzen mit "PRODUCTS_NAME2" - ist natürlich Blödsinn - kam ein DB Error.

    und natürlich mal alles angesehn wo ich meinte dass man was ändern könnte, aber wie gesagt leider ohne Erfolg.

    Das hatte ich bei der 1. Antwort vergessen: Shop-Version ursprünglich: 2.1.3.3 upgedatet auf 2.2.0.0 (habs aber erst mit der neuen Version versucht).

    Ich hätte auch noch eine andere Idee und zwar wenn man den z.B. "Artikelnamen2" nicht in der Tabelle "products" sondern in der Tabelle "products_description" dazugibt (denn da ist ja auch der "Standard-Artikelname" drinnen) - ob das klappen würde? Und zwar so nach Deiner Anleitung mit den Sprachdateien usw. nur eben die andere Tabelle - ich werde das heute mal versuchen und dann von meinem "Mißerfolg" oder gar "Erfolg" berichten.
    Jedoch wäre es trotzdem Interessant wie man Deine Lösung auch auf die Rechnung und den Lieferschein bekommt.

    Viele Grüße
    Hans
     
  11. hans

    hans Mitglied

    Registriert seit:
    18. September 2012
    Beiträge:
    8
    Danke erhalten:
    0
    Danke vergeben:
    1
    Hallo,
    ich bin´s nochmal.
    Also die Idee mit der "products_description" hab ich nicht hinbekommen.
    Bin also wieder am Anfang.

    Viele Grüße
    Hans
     
  12. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.432
    Danke erhalten:
    342
    Danke vergeben:
    176
    Das ist nicht so einfach. Da muß man 8 Dateien ergänzen. Außerdem muss man in der Tabelle "orders_products" eine neue Spalte mit dem Namen "Products_name_2" einfügen.
    Die 8 dateien wären:
    shop-Ordner/admin/gm_pdf_order.php
    Shop-Ordner/admin/mobile.php
    Shop-Ordner/admin/orders_iloxx.php
    Shop-Ordner/admin/includes/classes/order.php
    Shop-Ordner/admin/includes/classes/sales_eport.php
    Shop-Ordner/includes/classes/order.php
    Shop-Ordner/system/classes/accounts/AccountContentView.inc.php
    Shop-Ordner/system/classes/downloads/DownloadsContentView.inc.php
    Ob es wirklich notwendig ist alle 8 Dateien zu ergänzen weiß ich es ohne nähere Untersuchung der Dateien nicht. Aber kann ich es mir nicht vorstellen, dass es ohne eine neue Spalte in der Datenbank-Tabelle "orders_products" funktionieren würde.

    BITTE BEACHTE, DIESE INFORMATIONEN SIND OHNE GEWÄHR.
    Viel Erfolg
    Teste das nur in einer Testumgebung. Falls du das testest,
     
  13. hans

    hans Mitglied

    Registriert seit:
    18. September 2012
    Beiträge:
    8
    Danke erhalten:
    0
    Danke vergeben:
    1
    Hallo Cyrus,
    vielen Dank für Deine Antwort. Bitte entschuldige, dass ich erst jetzt Antworte - habe so nebenbei eine Baustelle zu Hause...
    Das es nicht so einfach wird, dachte ich mir... :). In der Datenbanktabelle "order_products" hatte ich auch schon eine Spalte hinzugefügt, nur wusste ich nicht genau welche Dateien hier "zuständig" sind.
    Ich werde Deinen Ansatz natürlich testen und dann berichten ob´s geklappt hat.
    Herzlichen Dank nochmal.

    Viele Grüße,
    Hans
     
  14. hans

    hans Mitglied

    Registriert seit:
    18. September 2012
    Beiträge:
    8
    Danke erhalten:
    0
    Danke vergeben:
    1
    Hallo,
    so ich habs jetzt nach Deiner Anleitung versucht - leider funktioniert da was nicht - ich mach da irgendwo grobe Fehler. Ich bekomm immer einen "User Error". Ich blicke da einfach nicht durch :confused:.
    Ich hab auch ein Ticket erstellt, aber die traurige Nachricht von Gambio ist, dass sie mir hier nicht weiterhelfen können... - na ja...
    Aber vielen, vielen Dank für Deine Mühe.

    Viele Grüße,

    Hans
     
  15. Enrico Lukacs

    Enrico Lukacs Erfahrener Benutzer

    Registriert seit:
    24. März 2015
    Beiträge:
    204
    Danke erhalten:
    2
    Danke vergeben:
    36
    hätte auch eine Frage zum Bestand ...
    Artikel ist angelegt
    jetzt brauch ich Eigenschaften über die funktion Kombination Automatisch ermitteln trägt er mir immer Bestand 0 ein
    wie ändere ich das, dass der bestand immer eine gewisse menge

    das problem ist ..... es sind ca 500 eigenschaften die da ermittelt werden und da überall den bestand ein zu tragen da sitz ich morgen noch oder länger
    hoffe mir kann da wer weiter helfen
     
  16. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Woher soll der Shop den den Bestand kennen / nehmen?
     
  17. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Kann man in so ein Extrafeld eigentlich auch einen Link einfügen?
    Habe das mit <a href....> versucht, aber da wird was mit "file:///mein link///" aufgerufen, was natürlich nicht funktioniert.
    Abgesehen davon ist der Text im Textfeld der Artikelbeschreibung dann auch weg.
     
  18. soprao

    soprao Erfahrener Benutzer

    Registriert seit:
    26. Februar 2015
    Beiträge:
    160
    Danke erhalten:
    18
    Danke vergeben:
    28
    Ist es ein fester Link oder einer, der sich zum Produkt verändert?

    Falls ersteres, könntest du es ja über die product_info.lang.inc.php und lang_german.conf probieren, die URL zu setzen und via textvariable dann in der standard-USERMOD aufzurufen.
     
  19. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.432
    Danke erhalten:
    342
    Danke vergeben:
    176
    Es ist möglich links innerhalb des Shops leicht einzugeben. Beispiel standard.html in USERMOD

    HTML:
    {if $PRODUCTS_BIGBAG_LINK || $SHOW_PRODUCTS_BIGBAG_LINK}
                               <dt>{$txt.text_products_bigbag_link}</dt>
                               <dd class="products_bigbag_link"><a href="{$PRODUCTS_BIGBAG_LINK}">{$PRODUCTS_BIGBAG_LINK}</a></dd>
    Dann muss man aber in Extra-Feld nur das was nach "www.Deinshop.de/" kommt eingeben.
     
  20. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    #100 barbara, 26. Mai 2015
    Zuletzt bearbeitet: 26. Mai 2015
    Hallo SOPRAO,
    ein fester Link wäre kein Problem. Es ist aber bei jedem Artikel ein anderer, deshalb wollte ich das über ein Extra-Feld steuern.

    Hallo Cyrus,
    vielen Dank, das werde ich gleich mal testen

    Nachtrag:
    da wird bei mir gar nichts angezeigt :(

    Alles zurück, es funktioniert - man muss es nur richtig machen :D