Ejemplo n.º 1
0
 public static function containKeywords($txt, $keywords = null, $ifNull = true)
 {
     if (!is_array($keywords) || count($keywords) < 1) {
         return $ifNull;
         // Subscription not contain filter for keywords
     }
     foreach ($keywords as $keyword) {
         if (v::contains($keyword)->validate($txt)) {
             return true;
         }
     }
     return false;
 }
/**
 * Validates that input contains a string
 *
 * @param string           $hook       "validate:contains"
 * @param string           $type       "prototyper"
 * @param ValidationStatus $validation Current validation status
 * @param array            $params     Hook params
 * @return ValidationStatus
 */
function prototyper_validate_contains($hook, $type, $validation, $params)
{
    if (!$validation instanceof ValidationStatus) {
        $validation = new ValidationStatus();
    }
    $field = elgg_extract('field', $params);
    if (!$field instanceof Field) {
        return $validation;
    }
    $rule = elgg_extract('rule', $params);
    if ($rule != "contains") {
        return $validation;
    }
    $value = elgg_extract('value', $params);
    $expectation = elgg_extract('expectation', $params);
    if (!v::contains($expectation)->validate($value)) {
        $validation->setFail(elgg_echo('prototyper:validate:error:contains', array($field->getLabel(), $expectation)));
    }
    return $validation;
}