コード例 #1
0
 /**
  * Get the display by relation.
  *
  * @param  array $rules
  *
  * @return bool
  */
 protected function display_by_relation(array $rules)
 {
     if ($rules['relation'] === 'AND') {
         $display = true;
         foreach ($rules as $rule) {
             if (!$display) {
                 break;
             }
             if (papi_is_rule($rule)) {
                 $display = papi_filter_conditional_rule_allowed($rule);
             }
         }
         return $display;
     }
     $empty = array_filter($rules, function ($rule) {
         return papi_is_rule($rule) ? true : null;
     });
     if (empty($empty)) {
         return true;
     }
     $result = [];
     foreach ($rules as $rule) {
         if (papi_is_rule($rule)) {
             $result[] = papi_filter_conditional_rule_allowed($rule);
         }
     }
     $result = array_filter($result, function ($res) {
         return $res === true ? true : null;
     });
     return !empty($result);
 }
コード例 #2
0
ファイル: filters.php プロジェクト: KristoferN/papi
/**
 * Get conditional rule value.
 *
 * @param  array|Papi_Core_Conditional_Rule $rule
 *
 * @return bool
 */
function papi_filter_conditional_rule_allowed($rule)
{
    $rule = papi_rule($rule);
    if (!papi_is_rule($rule)) {
        return false;
    }
    $result = apply_filters('papi/conditional/rule/' . $rule->operator, $rule);
    if ($result === true || $result === false) {
        return $result;
    }
    return false;
}