Anleitung 4.0.13 auf 4.0.14 updaten
Wichtig:
1. Sichern Sie vor dem Updateprozess Ihre Shopdatenbank mit PhpMyAdmin oder MySqlDumper und das komplette Shopverzeichnis per FTP um eventuelle Datenverluste zu vermeiden!
2. Überprüfen Sie ob Ihre Lizenz für Version 4.0.14 freigegeben ist!
3. Ist meine Lizenz freigegeben ?
1. Lizenz
Um das Update von 4.0.13 auf 4.0.14 durchzuführen muss Ihre Lizenz für 4.0.14 freigegeben sein.
Für Welche Version Ihre Lizenz gültig ist, finden Sie in der lic/license.txt Datei
z.B.:
company: xt:Commerce GmbH
created: 2009-10-09 01:18:15
key: b108799745bdb247a128f5842fae50d5
license: VEYTON - Ultimate
mailaddress: max_mustermann@xtcommerce.com
maxproducts: 0
name: Max Mustermann
project: xt:Commerce Veyton
maxversion: 4014
Der Parameter maxversion gibt hierbei die maximal mögliche Version an.
Wichtig:
Führen Sie das Update nur aus wenn Sie eine Lizenz mit maxversion: 4014 besitzen! Sollten Sie eine Lizenz ohne maxversion haben und noch keine neue Lizenz per E-Mail erhalten haben, kontaktieren Sie den Support unter helpdesk@xt-commerce.com
2. Update der Datenbank:
Laden Sie das Updateverzeichnis (xtUpdater) per FTP in Ihren Shopordner. LINK UPDATE
Starten Sie das Updateskript über den Browser:
http://www.ihr-shop.tld/xtUpdater/index.php
Folgen Sie nun den Anweisungen des Updateskriptes um das Update der Datenbank zu komplettieren.
3. Update des Dateisystems:
Für das Dateiupdate wird die 4.0.14 Vollversion benötigt, diese finden Sie hier:
http://helpdesk.xt-commerce.com/index.php?/Knowledgebase/Article/View/1203/203/update-4013-auf-4014
Um das Dateisystem des Shop auf den neuesten Stand zu bringen, müssen Sie lediglich alle Shopdatein bis auf /conf/config.php, das Verzeichnix xtInstaller und ihrem Template unter /templates/xt_default mit den Datein aus dem neuen Shoparchiv (4.0.14) überschreiben.
Überprüfen Sie danach die Schreibrechte der Ordner:
/media/
/cache/
/templates_c/
/plugin_cache/
Diese Ordner benötigen inclusive aller Unterordner CHMOD 777 (Schreibrechte) als Rechte.
4. Plugins
Sollten Sie eines der folgenden Plugins verwenden, deinstallieren Sie dieses und installieren es erneut:
- xt_privacycheck
- xt_PayPal
5. Update der Templates
Templateupdate Admin:
Den Ordner /templates/_xtAdmin komplett mit dem neuen Ordner aus dem Download der 4.0.14 ersetzen.
Templateupdate Shop:
Sollten Sie bisher nichts am Original Template (xt_default) geändert haben bzw ein komplett eigenes Template mit einem anderen Namen als xt_default verwenden kann der Templateordner xt_default überschrieben werden.
Geänderte Templatedateien:
- ./xtCore/pages/payment/payment_default.html
- ./xtCore/pages/account_history_info.html
- ./xtCore/pages/default.html
- ./xtCore/pages/search.html
- ./xtCore/pages/product_listing/product_listing_v1.html
- ./xtCore/pages/categorie_listing/categorie_listing.html (optional, Kategoriebilder werden in der neuen Version verwendet)
- ./xtCore/pages/checkout/subpage_payment.html
- ./xtCore/pages/checkout/subpage_confirmation.html
- ./xtCore/pages/product/product.html
- ./xtCore/pages/cart.html
- ./xtCore/boxes/box_cart.html
- ./xtCore/forms/shipping.html
- ./xtCore/pages/login.html
- ./xtCore/pages/edit_address.html
Plugins
- ./plugins/xt_paypal/templates/paypal_checkout.html
- ./plugins/xt_master_slave/templates/options/ms_default.html
- ./plugins/xt_master_slave/templates/product_listing/ms_product_list_default.html
- ./plugins/xt_special_products/templates/boxes/box_xt_special_products.html.
Führen Sie in den folgenden Dateien die jeweiligenÄnderungen durch:
plugins/xt_paypal/templates/paypal_checkout.html
in Datein suchen:
<img src="https://www.paypal.com/de_DE/DE/i/logo/lockbox_100x31.gif" border="0" alt="PayPal-Bezahlmethoden-Logo">
ersetzen mit:
{if $payment_icon} {img img=$payment_icon type=w_media_payment}{else}<img src="https://www.paypal.com/de_DE/DE/i/logo/lockbox_100x31.gif" border="0" alt="PayPal-Bezahlmethoden-Logo">{/if}
./plugins/xt_master_slave/templates/options/ms_default.html
in Datein suchen:
{foreach key=key_data item=item_data from=$options_data.data} <option value="{$item_data.id}" {if $item_data.selected} selected="" {/if}>{$item_data.text}</option> {/foreach} </select>{form type=formend} </td> </tr> {/foreach}
ersetzen mit:
{foreach key=key_data item=item_data from=$options_data.data} <option value="{$item_data.id}" {if $item_data.selected} selected="" {/if} {if $item_data.disabled} disabled="disabled" {/if}>{$item_data.text}</option> {/foreach} </select> {form type=formend} </td> </tr> {/foreach} {if XT_MASTER_SLAVE_CONF_SHOW_RESET eq "true"} <tr> <td width="200" align="right"> </td> <td> <form action="{$masterLink}" method="post"> {button text=$smarty.const.XT_MASTER_SLAVE_TEXT_RESET_OPTIONS file='ms_reset_options.gif' type='form'} </form> </td> </tr> {/if} {if XT_MASTER_SLAVE_CONF_SHOW_LINK eq "true" && $masterLink} <tr> <td width="200" align="right"> </td> <td> <a href="{$masterLink}">{txt key=XT_MASTER_SLAVE_TEXT_LINK_TO_MASTER}</a> </td> </tr> {/if}
./plugins/xt_master_slave/templates/product_listing/ms_product_list_default.html
in Datein suchen:
{foreach name=aussen item=module_data from=$product_listing}
ersetzen mit:
{foreach name=aussen item=module_data from=$product_listing} {if $module_data.products_id != $smarty.get.info}
in Datein suchen:
<div class="hrproductpreview"></div>
ersetzen mit:
<div class="hrproductpreview"></div> {/if}
./plugins/xt_special_products/templates/boxes/box_xt_special_products.html
in Datein suchen:
{if $special_products_data.products_image!=''}<a href="{$special_products_data.products_link}">{img img=$special_products_data.products_image type=m_thumb class="productImageBorder" width=50 alt=$special_products_data.products_name}</a>{/if}
ersetzen mit:
{if $special_products_data.products_image!=''}<a href="{$special_products_data.products_link}">{img img=$special_products_data.products_image type=m_thumb class="productImageBorder" width=50 alt=$special_products_data.products_name|escape:"html"}</a>{/if}
./xtCore/pages/payment/payment_default.html
in Datein suchen:
<td class="header"><strong>{$payment_icon}</strong></td>
ersetzen mit:
<td class="header"><strong>{img img=$payment_icon type=w_media_payment}</strong></td>
./xtCore/pages/account_history_info.html
in Datein suchen:
<p>{$history_values.date_added} {$history_values.orders_status_id} {$history_values.comments}</p>
ersetzen mit:
<p>{$history_values.date_added} <b>{$history_values.status_name}</b> {if $history_values.customer_show_comment eq '1'} {$history_values.comments} {/if}</p>
./index.html
in Datein suchen:
{box name=manufacturers}
ersetzen mit:
{box name=manufacturers order_by='m.manufacturers_name'}
./xtCore/pages/default.html
in Datein suchen:
{page name=xt_startpage_products type=user order_by='p.products_sort' tpl_type='product_listing'}
ersetzen mit:
{page name=xt_startpage_products type=user order_by='p.products_startpage_sort' tpl_type='product_listing'}
./xtCore/pages/search.html
in Datein suchen:
<td width="55%">{form type=select name=cat value=$cat_data}<br> {form type=checkbox name=subkat} {txt key=text_search_subcategories}</td>
ersetzen mit:
<td width="55%">{form type=select name=cat default=$default_cat value=$cat_data}<br> {if $checked_subcat eq 'checked'}{form type=checkbox name=subkat checked=$checked_subcat} {else}{form type=checkbox name=subkat}{/if} {txt key=text_search_subcategories}</td>
in Datein suchen:
<td width="55%">{form type=select name=mnf value=$mnf_data}</td>
ersetzen mit:
<td width="55%">{form type=select name=mnf default=$default_mnf value=$mnf_data}</td>
in Datein suchen:
<td width="55%">{form type=checkbox name=sdesc}</td>
ersetzen mit:
<td width="55%">{if $checked_sdesc eq 'checked'}{form type=checkbox name=sdesc checked=$checked_sdesc}{else}{form type=checkbox name=sdesc}{/if}</td>
in Datein suchen:
<td width="55%">{form type=checkbox name=desc}</td>
ersetzen mit:
<td width="55%">{if $checked_desc eq 'checked'}{form type=checkbox name=desc checked=$checked_desc}{else}{form type=checkbox name=desc}{/if}</td>
./xtCore/pages/product_listing/product_listing_v1.html
in Datein suchen:
{form type=hidden name=page value='categorie'} {form type=hidden name=cat value=$current_category_id}
ersetzen mit:
{if isset($current_manufacturer_id)}{form type=hidden name=page value='manufacturers'} {else} {form type=hidden name=page value='categorie'} {/if} {if isset($current_category_id)}{form type=hidden name=cat value=$current_category_id}{/if} {if isset($current_manufacturer_id)}{form type=hidden name=mnf value=$current_manufacturer_id}{/if}
in Datein suchen:
{form type=select name=sorting value=$sort_dropdown.options default='' onchange='this.form.submit();'}
ersetzen mit:
{form type=select name=sorting value=$sort_dropdown.options default=$sort_default onchange='this.form.submit();'}
in Datein suchen:
{if $module_data.products_weight > 0}<p class="taxandshippinginfo">{txt key=TEXT_PRODUCTS_WEIGHT}: {$module_data.products_weight} KG</p>{/if}
ersetzen mit:
{if $module_data.products_weight > 0}<p class="taxandshippinginfo">{txt key=TEXT_PRODUCTS_WEIGHT}: {$module_data.products_weight|number_format:2:",":"."} KG</p>{/if}
/xtCore/pages/categorie_listing/categorie_listing.html
( Optional )
in Datein suchen:
<p>{foreach name=aussen item=module_data from=$categorie_listing} <a href="{$module_data.categories_link}">{$module_data.categories_name}</a>, {/foreach}</p>
ersetzen mit:
{php}$i=0;{/php} <div id="cat_listing"> {foreach item=module_data from=$categorie_listing} {php}$i++;if ($i % 2 == 0){{/php} <div class="s_cat odd"> {php}}else{{/php} <hr class="spacer" /> <div class="s_cat even"> {php}}{/php} <div class="img_wrap""> <a href="{$module_data.categories_link}" title="{$module_data.categories_name}"> {img img=$module_data.categories_image type=m_category_thumb class="productImageBorder" alt=$module_date.categories_name|escape:"html"} </a><h2><a href="{$module_data.categories_link}" title="{$module_data.categories_name}">{$module_data.categories_name}</a></h2> </div> </div> {/foreach} <div style="clear:both;"></div>
in Datein suchen:
{page name=xt_new_products type=user order_by='rand()' tpl_type='product_listing'}
ersetzen mit:
{page name=xt_new_products type=user order_by='rand()' tpl_type='product_listing'} </div>
./xtCore/pages/checkout/subpage_payment.html
in Datein suchen:
{form type=textarea name=comments cols=130 rows=10}
ersetzen mit:
{form type=textarea name=comments cols=130 rows=10} {if $smarty.const._STORE_TERMSCOND_CHECK eq 'true'}
in Datein suchen:
{if $rescission == 'true'}
ersetzen mit:
{/if} {if $rescission == 'true'}
./xtCore/pages/checkout/subpage_confirmation.html
in Datein suchen:
{form type=hidden name=action value=process}
ersetzen mit:
{form type=hidden name=action value=process} {if $smarty.const._STORE_TERMSCOND_CHECK eq 'false'} {content cont_id=3 is_id='false'} <p><a href="{$_content_3.content_link}" target="_blank">{txt key=TEXT_TERMSANDCOND_CONFIRMATION}</a> | {$_content_3.content_popup_link}</p> {/if}
./xtCore/pages/product/product.html
in Datein suchen:
{if $products_weight > 0}<p class="taxandshippinginfo">{txt key=TEXT_PRODUCTS_WEIGHT}: {$products_weight} KG</p>{/if}
ersetzen mit:
{if $products_weight > 0}<p class="taxandshippinginfo">{txt key=TEXT_PRODUCTS_WEIGHT}: {$products_weight|number_format:2:",":"."} KG</p>{/if}
in Datein suchen und löschen
{if $products_fsk18=='1'}<div class="hrlightgrey"></div><img src="media/images/icon/usk18.gif" alt="" style="cursor:default" />{/if}
in Datein suchen:
<div style="clear:both;"></div>
ersetzen mit:
<div style="clear:both;"></div> {if $products_fsk18=='1'} <ul class="info_error"> <li class="infoError">{txt key=TEXT_PRODUCTS_FSK18_NOTE}</li> </ul> {/if}
./xtCore/pages/cart.html
in Datein suchen:
{if $cart_total_weight > 0}<br />({txt key=TEXT_PRODUCTS_WEIGHT}: {$cart_total_weight} KG){/if}
ersetzen mit:
{if $cart_total_weight > 0}<br />({txt key=TEXT_PRODUCTS_WEIGHT}: {$cart_total_weight|number_format:2:",":"."} KG){/if}
./xtCore/boxes/box_cart.html
in Datein suchen:
{if $cart_total_weight > 0}<br />({txt key=TEXT_PRODUCTS_WEIGHT}: {$cart_total_weight} KG){/if}
ersetzen mit:
{if $cart_total_weight > 0}<br />({txt key=TEXT_PRODUCTS_WEIGHT}: {$cart_total_weight|number_format:2:",":"."} KG){/if}
./xtCore/forms/shipping.html
in Datein suchen:
{if $shipping_data} <br /> {foreach name=aussen item=shipping_values from=$shipping_data} <h2>{$shipping_values.shipping_name}</h2> <table class="tabledetails" width="100%" border="0" cellspacing="0" cellpadding="4"> <tr class="headerrow"> <td class="left">{txt key=TEXT_RANGE_FROM}</td> <td class="left">{txt key=TEXT_RANGE_TO}</td> <td class="right">{txt key=TEXT_TOTAL_PRICE} {if $shipping_values.shipping_type eq 'item'}{txt key=TEXT_TYPE_PER_ITEM}{/if}</td> </tr> {foreach name=aussen item=costs from=$shipping_values.costs} <tr class="{cycle values="contentrow1,contentrow2"}"> <td class="left">{$costs.shipping_type_value_from} {if $shipping_values.shipping_type eq 'weight'} KG {/if} {if $shipping_values.shipping_type eq 'item'} {txt key=TEXT_TYPE_ITEM} {/if} </td> <td class="left">{$costs.shipping_type_value_to} {if $shipping_values.shipping_type eq 'weight'} KG {/if} {if $shipping_values.shipping_type eq 'item'} {txt key=TEXT_TYPE_ITEM} {/if} </td> <td class="right">{$costs.shipping_price}</td> </tr> {/foreach} </table> {/foreach} {/if}
ersetzen mit:
{if $shipping_data} <br /> {foreach item=shipping_values from=$shipping_data} <h2>{$shipping_values.shipping_name}</h2> <table class="tabledetails" width="100%" border="0" cellspacing="0" cellpadding="4"> <tr class="headerrow"> <td class="left">{txt key=TEXT_RANGE_TO}</td> <td class="right">{txt key=TEXT_TOTAL_PRICE} {if $shipping_values.shipping_type eq 'item'}{txt key=TEXT_TYPE_PER_ITEM}{/if}</td> </tr> {foreach name=shipping item=costs from=$shipping_values.costs} <tr class="{cycle values="contentrow1,contentrow2"}"> <td class="left"> {txt key=TEXT_RANGE_TO} {$costs.shipping_type_value_to} {if $shipping_values.shipping_type eq 'weight'} KG {/if} {if $shipping_values.shipping_type eq 'item'} {txt key=TEXT_TYPE_ITEM} {/if} </td> <td class="right">{$costs.shipping_price}</td> </tr> {if $smarty.foreach.shipping.last eq true} <tr class="contentrow1"> <td class="left"> {txt key=TEXT_RANGE_FROM} {$costs.shipping_type_value_to} {if $shipping_values.shipping_type eq 'weight'} KG {/if} {if $shipping_values.shipping_type eq 'item'} {txt key=TEXT_TYPE_ITEM} {/if} </td> <td class="right">{txt key=TEXT_INFO_NO_SHIPPING}</td> </tr> {/if} {/foreach} </table> {/foreach} {/if}
./xtCore/pages/login.html
in Datein suchen:
{content cont_id=2 is_id='false'}
ersetzen mit:
{content cont_id=2 is_id='false'} {if $show_privacy_type eq 1}
in Datein suchen:
{/if} {hook key=login_create_account_tpl}
ersetzen mit:
{else} <table width="100%" cellspacing="0" cellpadding="4"> <tr> <td width="100%"><a href="{$privacy_link}" target="_blank">{txt key=TEXT_PRIVACY_TEXT_INFO}</a> {$_content_2.content_popup_link} </td> </tr> </table> {/if} {/if} {hook key=login_create_account_tpl}
./xtCore/pages/edit_address.html
in Datein suchen:
<td>{form type=text name=suburb value=$suburb}</td>
ersetzen mit:
<td>{form type=text name=customers_suburb value=$customers_suburb}</td>
6. Prüfen des Updates
Prüfen Sie Ihren Shop ausgiebig auf jegliches Fehlverhalten, sollten Sie Probleme feststellen kontaktieren Sie uns unter helpdesk@xt-commerce.com