Guten Tag,
ich habe da ein kleines Problem:
Software: SEO V2.1.x.x PLUS
Nach dem Update von V2.0.X Plus auf V2.1.x.x Plus funktioniert der Freitext nicht mehr!
Habe bereits das Addon versucht ein zu binden.
Problem: Ich benötige 3 Freitext Felder.
Im Alten war es Einfach:
HTML
{if $options!=''}<table> {foreach name=outer item=options_data from=$options} <tr> {if $options_data.DATA.0.TEXT == 'Freitext1'} <input type="hidden" name="product_options_id_freitext1" value="{$options_data.ID}"/> <td class="main"><b>{$options_data.NAME}:</b> </td> <td class="main"><input type="text" name="freitext1"/> </td> {elseif $options_data.DATA.0.TEXT == 'Freitext2'} <input type="hidden" name="product_options_id_freitext2" value="{$options_data.ID}"/> <td class="main"><b>{$options_data.NAME}:</b> </td> <td class="main"><input type="text" name="freitext2"/> </td> {elseif $options_data.DATA.0.TEXT == 'Freitext3'} <input type="hidden" name="product_options_id_freitext3" value="{$options_data.ID}"/> <td class="main"><b>{$options_data.NAME}:</b> </td> <td class="main"><input type="text" name="freitext3"/> </td> {else} <td class="main"><b>{$options_data.NAME}:</b> </td> <td> <select name="id[{$options_data.ID}]"> {foreach key=key_data item=item_data from=$options_data.DATA} <option value="{$item_data.ID}">{$item_data.TEXT} {if $item_data.PRICE !='' }{$item_data.PREFIX} {$item_data.PRICE}{/if} </option> {/foreach} </select> </td> {/if} </tr> {/foreach} </table>{/if}
Dies scheint jedoch ganricht mehr zu funktionieren.
Woran kann ich das Problem lösen.
Laut Install.txt muss ich folgendes machen:
PHP
*****************************************
* INSTALLATION-GUIDE *
* XTC - Freitext-Module *
* Addon for xt:Commerce 3.04 *
* *
* Copyright by Damian Gawenda *
* www.xtc-addons.de *
*****************************************
* @package xtc_addons_freitext *
* @compatible SP2.1 *
* @author Damian Gawenda *
*****************************************
#########################################################################
# WICHTIG!!!! #
# #
# 1. Optionsname frei wählbar (bezeichnet das Textfeld-Label) #
# #
# 2. Optionswert muss "Freitext" heissen #
# #
# 3. Vorlage für Artikeloptionen: product_options_freitext.html #
# #
#########################################################################
--------------
CHANGED FILES:
--------------
-checkout_confirmation.php (184ff)
-checkout_process.php (258ff)
-includes\cart_actions.php (79ff)
-includes\modules\order_details_cart.php (74ff)
----------
NEW FILES:
----------
- \templates\module\product_options\product_options_freitext.html
-------------
FEATURE-LIST:
-------------
# "Freitext" als Option für Produkte anlegbar
# Kunde kann zu einem Produkt einen Text eingeben
# Anzeige des eingegebenen Textes im gesamten Kaufprozess
# Anzeige des eingegebenen Textes im Adminbereich
-------------
INSTALLATION:
-------------
1. Kopiere die neue File:
- \templates\module\product_options\product_options_freitext.html
2. Bei Standard-Installation von xt:Commerce einfach die changed_files kopieren (vorher Sicherheitskopien anlegen).
Ansonsten die wie folgt aufgeführten Files anpassen: (Hierzu empfehle ich "Compare It!3": http://www.grigsoft.com/wincmp3.htm)
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
/checkout_confirmation.php
folgendes (ca. Zeile 174):
$data_products .= '<tr>
<td class="main" align="left" valign="top">
<nobr><small> <i> - '.$order->products[$i]['attributes'][$j]['option'].': '.$order->products[$i]['attributes'][$j]['value'].'
</i></small><nobr></td>
<td class="main" align="right" valign="top"> </td></tr>';
durch folgendes ersetzen:
// Freitext_module
if($order->products[$i]['attributes'][$j]['value'] == 'Freitext'){
for($i_=0;$i_<sizeof($_SESSION['cart_freitext']);$i_++){
if($order->products[$i]['id'] == $_SESSION['cart_freitext'][$i_]['product_id']){
$data_products .= '<tr>
<td class="main" align="left" valign="top">
<nobr><small> <i> - '.$order->products[$i]['attributes'][$j]['option'].': '.$_SESSION['cart_freitext'][$i_]['freitext'].'
</i></small><nobr></td>
<td class="main" align="right" valign="top"> </td></tr>';
}
}
}
else{
$data_products .= '<tr>
<td class="main" align="left" valign="top">
<nobr><small> <i> - '.$order->products[$i]['attributes'][$j]['option'].': '.$order->products[$i]['attributes'][$j]['value'].'
</i></small><nobr></td>
<td class="main" align="right" valign="top"> </td></tr>';
}
---------------------------------------------------------------------------------
/checkout_process.php:
folgendes(ca. Zeile 240):
$sql_data_array = array ('orders_id' => $insert_id, 'orders_products_id' => $order_products_id, 'products_options' => $attributes_values['products_options_name'], 'products_options_values' => $attributes_values['products_options_values_name'], 'options_values_price' => $attributes_values['options_values_price'], 'price_prefix' => $attributes_values['price_prefix']);
xtc_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);
durch folgedes ersetzen:
// Freitext_module
if($attributes_values['products_options_values_name'] == 'Freitext'){
for($i_=0;$i_<sizeof($_SESSION['cart_freitext']);$i_++){
if($order->products[$i]['id'] == $_SESSION['cart_freitext'][$i_]['product_id']){
$sql_data_array = array ('orders_id' => $insert_id, 'orders_products_id' => $order_products_id, 'products_options' => $attributes_values['products_options_name'], 'products_options_values' => $_SESSION['cart_freitext'][$i_]['freitext'], 'options_values_price' => $attributes_values['options_values_price'], 'price_prefix' => $attributes_values['price_prefix']);
xtc_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);
}
}
}
else{
$sql_data_array = array ('orders_id' => $insert_id, 'orders_products_id' => $order_products_id, 'products_options' => $attributes_values['products_options_name'], 'products_options_values' => $attributes_values['products_options_values_name'], 'options_values_price' => $attributes_values['options_values_price'], 'price_prefix' => $attributes_values['price_prefix']);
xtc_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);
}
--
und vor (ca. Zeile 265):
if (isset ($_SESSION['tracking']['refID'])) {
folgendes hinzufügen:
//freitext_module
unset($_SESSION['cart_freitext']);
---------------------------------------------------------------------------------
\includes\cart_actions.php
nach (ca. Zeile 55)
$_SESSION['cart']->remove($_POST['products_id'][$i]);
folgendes einfügen:
// freitext_module
unset($_SESSION['cart_freitext']);
--
nach (ca. Zeile 66)
case 'add_product' :
folgendes einfügen:
// freitext_module
if($_POST['product_options_id_freitext']){
$query_value = xtc_db_query("SELECT
products_options_values_id
FROM
products_options_values
WHERE
products_options_values_name= 'Freitext'
AND
language_id= ".$_SESSION['languages_id']);
$query_res = xtc_db_fetch_array($query_value);
$_POST['id'][$_POST['product_options_id_freitext']] = $query_res['products_options_values_id'];
}
--
und vor (ca. Zeile 96)
xtc_redirect(xtc_href_link($goto, 'products_id='.(int) $_POST['products_id'].'&'.xtc_get_all_get_params($parameters)));
folgendes einfügen:
// freitext_module
if($_POST['product_options_id_freitext']){
$_SESSION['cart_freitext'][] = array('freitext' => $_POST['freitext'],'option_id'=>$_POST['product_options_id_freitext'],'product_id'=>$_SESSION['new_products_id_in_cart']);
}
---------------------------------------------------------------------------------
\includes\modules\order_details_cart.php
folgendes (ca. Zeile 75):
$module_content[$i]['ATTRIBUTES'][] = array ('ID' => $products[$i][$option]['products_attributes_id'], 'MODEL' => xtc_get_attributes_model(xtc_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']), 'NAME' => $products[$i][$option]['products_options_name'], 'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check);
durch folgendes ersetzen:
// freitext_module
if($products[$i][$option]['products_options_values_name'] == 'Freitext'){
for($i_=0;$i_<sizeof($_SESSION['cart_freitext']);$i_++){
if($products[$i]['id'] == $_SESSION['cart_freitext'][$i_]['product_id']){
$module_content[$i]['ATTRIBUTES'][] = array ('ID' => $products[$i][$option]['products_attributes_id'], 'MODEL' => xtc_get_attributes_model(xtc_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$_SESSION['cart_freitext'][$i_]['freitext']), 'NAME' => $products[$i][$option]['products_options_name'], 'VALUE_NAME' => $_SESSION['cart_freitext'][$i_]['freitext']);
}
}
}
else{
$module_content[$i]['ATTRIBUTES'][] = array ('ID' => $products[$i][$option]['products_attributes_id'], 'MODEL' => xtc_get_attributes_model(xtc_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']), 'NAME' => $products[$i][$option]['products_options_name'], 'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check);
}
---------------------------------------------------------------------------------
FERTIG!!
Alles anzeigen
was jedoch so zu 100% nicht funktioniert, alleine schon wegen den "CA Zeile"...
Wäre klasse wenn mir da einer helfen könnte!