}
/**
- * Add criteria
+ * Add criteria, this method converts dashes to underscores because dashes
+ * are not valid for criteria keys.
*
* @param $criteriaKey Criteria key
* @param $criteriaValue Criteria value
* @return void
*/
public final function addCriteria ($criteriaKey, $criteriaValue) {
- $this->criteria[(string)$criteriaKey] = (string)$criteriaValue;
+ $this->criteria[str_replace('-', '_', $criteriaKey)] = (string)$criteriaValue;
}
/**
/**
* Get criteria element or null if not found
*
- * @param $criteria The criteria we want to have
- * @return $value Whether the value of the critera or null
+ * @param $criteriaKey The requested criteria key
+ * @return $value Whether the value of the critera or null
*/
- public function getCriteriaElemnent ($criteria) {
+ public function getCriteriaElemnent ($criteriaKey) {
+ // Convert dashes to underscore
+ $criteriaKey = str_replace('-', '_', $criteriaKey);
+
// Default is not found
$value = NULL;
// Is the criteria there?
- if (isset($this->criteria[$criteria])) {
+ if (isset($this->criteria[$criteriaKey])) {
// Then use it
- $value = $this->criteria[$criteria];
+ $value = $this->criteria[$criteriaKey];
}
// Return the value
// Walk through all entries
foreach ($entryArray as $key => $entry) {
+ // Convert dashes to underscore
+ $key = str_replace('-', '_', $key);
+
// Then walk through all search criteria
foreach ($this->criteria as $criteriaKey => $criteriaValue) {
+ // Convert dashes to underscore
+ $criteriaKey = str_replace('-', '_', $criteriaKey);
+
// Is the element found and does it match?
if (($key == $criteriaKey) && ($criteriaValue == $entry)) {
// Then count this one up
// Now walk through all criterias
foreach ($this->criteria as $criteriaKey => $criteriaValue) {
+ // Convert dashes to underscore
+ $criteriaKey = str_replace('-', '_', $criteriaKey);
+
// Is the value in array or is $onlyKeys empty?
if ((isset($onlyKeys[$criteriaKey])) || (count($onlyKeys) == 0)) {
// Add the value URL encoded to avoid any trouble with special characters