65 lines
		
	
	
		
			998 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			998 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @package   FOF
 | |
|  * @copyright Copyright (c)2010-2021 Nicholas K. Dionysopoulos / Akeeba Ltd
 | |
|  * @license   GNU General Public License version 2, or later
 | |
|  */
 | |
| 
 | |
| namespace FOF30\Model\Mixin;
 | |
| 
 | |
| defined('_JEXEC') || die;
 | |
| 
 | |
| /**
 | |
|  * Trait for dealing with data stored as JSON-encoded strings
 | |
|  */
 | |
| trait JsonData
 | |
| {
 | |
| 	/**
 | |
| 	 * Converts the loaded JSON string into an array
 | |
| 	 *
 | |
| 	 * @param   string  $value  The JSON string
 | |
| 	 *
 | |
| 	 * @return  array  The data
 | |
| 	 */
 | |
| 	protected function getAttributeForJson($value)
 | |
| 	{
 | |
| 		if (is_array($value))
 | |
| 		{
 | |
| 			return $value;
 | |
| 		}
 | |
| 
 | |
| 		if (empty($value))
 | |
| 		{
 | |
| 			return [];
 | |
| 		}
 | |
| 
 | |
| 		$value = json_decode($value, true);
 | |
| 
 | |
| 		if (empty($value))
 | |
| 		{
 | |
| 			return [];
 | |
| 		}
 | |
| 
 | |
| 		return $value;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Converts and array into a JSON string
 | |
| 	 *
 | |
| 	 * @param   array  $value  The data
 | |
| 	 *
 | |
| 	 * @return  string  The JSON string
 | |
| 	 */
 | |
| 	protected function setAttributeForJson($value)
 | |
| 	{
 | |
| 		if (!is_array($value))
 | |
| 		{
 | |
| 			return $value;
 | |
| 		}
 | |
| 
 | |
| 		$value = json_encode($value);
 | |
| 
 | |
| 		return $value;
 | |
| 	}
 | |
| }
 |