public function getProperty($key, $test = false) { return AECToolbox::getObjectProperty($this, $key, $test); }
public function executeCommand($command, $vars, $safe = false) { $result = ''; switch ($command) { case 'rw_constant': if (isset($this->rewrite[$vars])) { $result = $this->rewrite[$vars]; } break; case 'data': if (empty($this->data)) { return false; } $result = AECToolbox::getObjectProperty($this->data, $vars); break; case 'safedata': if (empty($this->data)) { return false; } if (AECToolbox::getObjectProperty($this->data, $vars, true)) { $result = AECToolbox::getObjectProperty($this->data, $vars); } break; case 'checkdata': if (empty($this->data)) { return false; } $result = AECToolbox::getObjectProperty($this->data, $vars, true); break; case 'checkdata_notempty': if (empty($this->data)) { return false; } $check = AECToolbox::getObjectProperty($this->data, $vars, true); if (AECToolbox::getObjectProperty($this->data, $vars, true)) { $check = AECToolbox::getObjectProperty($this->data, $vars); $result = !empty($check); } break; case 'metaUser': if (!is_object($this->data['metaUser'])) { return false; } // We also support dot notation for the vars, // so explode if that is what the admin wants here if (!is_array($vars) && strpos($vars, '.') !== false) { $temp = explode('.', $vars); $vars = $temp; } elseif (!is_array($vars)) { return false; } $result = $this->data['metaUser']->getProperty($vars); break; case 'invoice_count': if (!is_object($this->data['metaUser'])) { return false; } return aecInvoiceHelper::InvoiceCountbyUserID($this->data['metaUser']->userid); break; case 'invoice_count_paid': if (!is_object($this->data['metaUser'])) { return false; } return aecInvoiceHelper::PaidInvoiceCountbyUserID($this->data['metaUser']->userid); break; case 'invoice_count_unpaid': if (!is_object($this->data['metaUser'])) { return false; } return aecInvoiceHelper::UnpaidInvoiceCountbyUserID($this->data['metaUser']->userid); break; case 'jtext': $result = JText::_($vars); break; case 'constant': if (defined($vars)) { $result = constant($vars); } else { $result = JText::_($vars); } break; case 'global': if (is_array($vars)) { if (isset($vars[0]) && isset($vars[1])) { $call = strtoupper($vars[0]); $v = $vars[1]; $allowed = array('SERVER', 'GET', 'POST', 'FILES', 'COOKIE', 'SESSION', 'REQUEST', 'ENV'); if (in_array($call, $allowed)) { switch ($call) { case 'SERVER': if (isset($_SERVER[$v]) && !$safe) { $result = $_SERVER[$v]; } break; case 'GET': if (isset($_GET[$v])) { $result = $_GET[$v]; } break; case 'POST': if (isset($_POST[$v])) { $result = $_POST[$v]; } break; case 'FILES': if (isset($_FILES[$v]) && !$safe) { $result = $_FILES[$v]; } break; case 'COOKIE': if (isset($_COOKIE[$v])) { $result = $_COOKIE[$v]; } break; case 'SESSION': if (isset($_SESSION[$v])) { $result = $_SESSION[$v]; } break; case 'REQUEST': if (isset($_REQUEST[$v])) { $result = $_REQUEST[$v]; } break; case 'ENV': if (isset($_ENV[$v]) && !$safe) { $result = $_ENV[$v]; } break; } } } } else { if (isset($GLOBALS[$vars])) { $result = $GLOBALS[$vars]; } } break; case 'condition': if (empty($vars[0]) || !isset($vars[1])) { if (isset($vars[2])) { $result = $vars[2]; } else { $result = ''; } } elseif (isset($vars[1])) { $result = $vars[1]; } else { $result = ''; } break; case 'hastext': $result = strpos($vars[0], $vars[1]) !== false ? 1 : 0; break; case 'uppercase': $result = strtoupper($vars); break; case 'lowercase': $result = strtoupper($vars); break; case 'concat': $result = implode($vars); break; case 'date': $result = date($vars[0], strtotime($vars[1])); break; case 'date_distance': $result = round($vars - (int) gmdate('U')); break; case 'date_distance_days': $result = round(($vars - (int) gmdate('U')) / 86400); break; case 'crop': if (isset($vars[2])) { $result = substr($vars[0], (int) $vars[1], (int) $vars[2]); } else { $result = substr($vars[0], (int) $vars[1]); } break; case 'pad': if (isset($vars[3])) { $result = str_pad($vars[0], (int) $vars[1], $vars[2], JText::_("STR_PAD_" . strtoupper($vars[3]))); } elseif (isset($vars[2])) { $result = str_pad($vars[0], (int) $vars[1], $vars[2]); } else { $result = str_pad($vars[0], (int) $vars[1]); } break; case 'chunk': $chunks = str_split($vars[0], (int) $vars[1]); if (isset($vars[2])) { $result = implode($vars[2], $chunks); } else { $result = implode(' ', $chunks); } break; case 'compare': if (isset($vars[2])) { $result = AECToolbox::compare($vars[1], $vars[0], $vars[2]); } else { $result = 0; } break; case 'math': if (isset($vars[2])) { $result = AECToolbox::math($vars[1], (double) $vars[0], (double) $vars[2]); } else { $result = 0; } break; case 'randomstring': $result = AECToolbox::randomstring((int) $vars); break; case 'randomstring_alphanum': $result = AECToolbox::randomstring((int) $vars, true); break; case 'randomstring_alphanum_large': $result = AECToolbox::randomstring((int) $vars, true, true); break; case 'php_function': if (!$safe) { if (isset($vars[1])) { $result = call_user_func_array($vars[0], $vars[1]); } else { $result = call_user_func_array($vars[0], array()); } } break; case 'php_method': if (!$safe) { $callback = array($vars[0], $vars[1]); if (isset($vars[2])) { $result = call_user_func_array($callback, $vars[2]); } else { $result = call_user_func_array($callback, array()); } } break; default: $result = $command . ' is no command'; break; } return $result; }