74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Encode/Decode helper functions.
 | |
|  *
 | |
|  * @package visual-portfolio
 | |
|  */
 | |
| 
 | |
| if ( ! defined( 'ABSPATH' ) ) {
 | |
| 	exit;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Encode string.
 | |
|  *
 | |
|  * @param string|array $str - string to encode.
 | |
|  *
 | |
|  * @return string|array
 | |
|  */
 | |
| function visual_portfolio_encode( $str ) {
 | |
| 	// Array.
 | |
| 	if ( is_array( $str ) ) {
 | |
| 		$result = array();
 | |
| 
 | |
| 		foreach ( $str as $k => $val ) {
 | |
| 			$result[ visual_portfolio_encode( $k ) ] = visual_portfolio_encode( $val );
 | |
| 		}
 | |
| 
 | |
| 		return $result;
 | |
| 	}
 | |
| 
 | |
| 	// String.
 | |
| 	if ( is_string( $str ) ) {
 | |
| 		// Because of these replacements, some attributes can't be exported to XML without being broken. So, we need to replace it manually with something safe.
 | |
| 		// https://github.com/WordPress/gutenberg/blob/88645e4b268acf5746e914159e3ce790dcb1665a/packages/blocks/src/api/serializer.js#L246-L271 .
 | |
| 		$str = str_replace( '--', '_u002d__u002d_', $str );
 | |
| 
 | |
|         // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.urlencode_urlencode
 | |
| 		$str = urlencode( $str );
 | |
| 	}
 | |
| 
 | |
| 	return $str;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Decode string.
 | |
|  *
 | |
|  * @param string|array $str - string to decode.
 | |
|  *
 | |
|  * @return string|array
 | |
|  */
 | |
| function visual_portfolio_decode( $str ) {
 | |
| 	// Array.
 | |
| 	if ( is_array( $str ) ) {
 | |
| 		$result = array();
 | |
| 
 | |
| 		foreach ( $str as $k => $val ) {
 | |
| 			$result[ visual_portfolio_decode( $k ) ] = visual_portfolio_decode( $val );
 | |
| 		}
 | |
| 
 | |
| 		return $result;
 | |
| 	}
 | |
| 
 | |
| 	// String.
 | |
| 	if ( is_string( $str ) ) {
 | |
| 		$str = urldecode( $str );
 | |
| 
 | |
| 		// Because of these replacements, some attributes can't be exported to XML without being broken. So, we need to replace it manually with something safe.
 | |
| 		// https://github.com/WordPress/gutenberg/blob/88645e4b268acf5746e914159e3ce790dcb1665a/packages/blocks/src/api/serializer.js#L246-L271 .
 | |
| 		$str = str_replace( '_u002d__u002d_', '--', $str );
 | |
| 	}
 | |
| 
 | |
| 	return $str;
 | |
| }
 |