2021-01-27 13:53
Przy każdym zapisie w językach skrypt dodaje kolejny znak / i w efekcie w tłumaczeniach zapamiętanie koszyka wygląda tak: Wyświetl przycisk \\\"Zapamiętaj koszyk\\\" Problem występuje dla wszystkich tłumaczeń, gdzie występują znaki ' " \n Funkcja zapisu zmiennych wygląda u mnie tak:
function saveVariables ( $aForm , $sFile , $sVariable = 'config' ){ if( is_file ( $sFile ) && strstr ( $sFile , '.php' ) ){ $aFile = file ( $sFile ); $iCount = count ( $aFile ); $rFile = fopen ( $sFile , 'w' ); for( $i = 0 ; $i < $iCount ; $i ++ ){ foreach( $aForm as $sKey => $sValue ){ if( preg_match ( '/' . $sVariable . "\['" . $sKey . "'\]" . ' /' , $aFile [ $i ] ) && strstr ( $aFile [ $i ], '=' ) ){ $sValue = str_replace ( Array( '\\' , '"' , '\n' ), Array( '\' , '"' , '|n|' ), changeSpecialChars ( $sValue ) ); $sValue = stripslashes ( $sKey == 'logo' ? str_replace ( '"' , '\'', $sValue ) : str_replace( '"', '"', $sValue ) ); if( preg_match( ' /^( true | false | null )$/ ', $sValue ) == true ){ $aFile[$i] = "\$".$sVariable."['".$sKey."'] = ".$sValue.";"; } else $aFile[$i] = "\$".$sVariable."['".$sKey."'] = \"".str_replace( ' | n | ', ' \ n ', $sValue )."\";"; } } // end foreach if( preg_match( ' /\ $aSelectedPayments / ', $aFile[$i] ) && strstr( $aFile[$i], ' = ' ) ) $aFile[$i] = ' $aSelectedPayments = '.preg_replace( "/\n| |' / ", '', ( isset( $aForm['aPayment'] ) ? var_export( $aForm['aPayment'], true ) : 'null' ) ).';'; fwrite( $rFile, rtrim( $aFile[$i] ).( $iCount == ( $i + 1 ) ? null : " \ r \ n " ) ); } // end for fclose( $rFile ); } } // end function saveVariables
» Quick.Cart v6.x Marek 2021-01-27 13:54
pomyłka - chodzi oczywiście o znak \ a nie o /
Marek 2021-01-27 16:00
Powinno być tak (9 linia tej funkcji):
$sValue = str_replace ( Array( '\\' , '\n' ), Array( '\' , '|n|' ), changeSpecialChars ( $sValue ) );
Jest to opisane tutaj: https://opensolution.org/download/quick.cart-i-quick-cart-ext-poprawki.html?sEdition=Quick.Cart&sVersion=6.x#v6.7-3
2021-01-28 08:57
Niestety to też sprawdzałem. Pokasowałem te znaki i dalej dostawia znak \
Marek 2021-01-28 11:39
Wyedytowałem plik pl.php i jest już dobrze. Można zamknąć temat. Dziękuję
Marek