<?php /** * @package RSForm! Pro * @copyright (C) 2007-2019 www.rsjoomla.com * @license GPL, http://www.gnu.org/copyleft/gpl.html */ defined('_JEXEC') or die; class RSFormProFieldItem { public $label; public $value; public $flags = array( 'checked' => false, // [c] 'optgroup' => false, // [g] '/optgroup' => false, // [/g] 'disabled' => false, // [d] 'price' => false // [p] ); // @desc Holds the unmodified string, as it was sent protected $string; public function __construct($string) { $this->string = $string; // Check for known flags $this->flags['checked'] = $this->checkFlag('c'); $this->flags['optgroup'] = $this->checkFlag('g'); $this->flags['/optgroup'] = $this->checkFlag('/g'); $this->flags['disabled'] = $this->checkFlag('d'); $this->flags['price'] = $this->checkFlag('p'); // Check for "value|label" if (strpos($this->string, '|') !== false) { list($this->value, $this->label) = explode('|', $this->string, 2); } else { $this->value = $this->label = $this->string; } } // @desc Checks if the flag is set and removes it from the string // This way we'll have a clean label & value protected function checkFlag($flag) { if ($flag == 'p') { $priceFlag = '#\[p([0-9\.\-\+]+)\]#s'; if (preg_match($priceFlag, $this->string, $match)) { $this->string = str_replace($match[0], '', $this->string); return $match[1]; } } else { if (strpos($this->string, '['.$flag.']') !== false) { $this->string = str_replace('['.$flag.']', '', $this->string); return true; } } return false; } }