Przy zapisie w językach dodaje znak /

zdrmar

Avatar: zdrmar

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

zdrmar

Avatar: zdrmar

2021-01-27 13:54

pomyłka - chodzi oczywiście o znak \ a nie o /

Marek

wewior (OpenSolution)

Avatar: wewior

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

zdrmar

Avatar: zdrmar

2021-01-28 08:57

Niestety to też sprawdzałem. Pokasowałem te znaki i dalej dostawia znak \

Marek

zdrmar

Avatar: zdrmar

2021-01-28 11:39

Wyedytowałem plik pl.php i jest już dobrze. Można zamknąć temat. Dziękuję

Marek

Do góry
o nas | kontakt