| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- <?php
- /**
- * @file
- * Requirement checking callbacks.
- */
- /**
- * Checks equality of one or more realm properties.
- *
- * @param array $realm
- * The realm definition as returned by facetapi_realm_load().
- * @param array $facet
- * The facet definition as returned by facetapi_facet_load().
- * @param array $options
- * An array of values keyed by properties that are being compared.
- *
- * @return
- * TRUE if all property values are equal, FALSE otherwise.
- */
- function facetapi_requirement_realm_property(array $realm, array $facet, array $options, $operator = 'AND') {
- return facetapi_requirement_property($realm, $options, $operator);
- }
- /**
- * Checks equality of one or more facet properties.
- *
- * @param array $realm
- * The realm definition as returned by facetapi_realm_load().
- * @param array $facet
- * The facet definition as returned by facetapi_facet_load().
- * @param array $options
- * An array of values keyed by properties that are being compared.
- *
- * @return
- * TRUE if all property values are equal, FALSE otherwise.
- */
- function facetapi_requirement_facet_property(array $realm, array $facet, array $options, $operator = 'AND') {
- return facetapi_requirement_property($facet, $options, $operator);
- }
- /**
- * Checks the equality of one or more properties.
- *
- * @param array $definition
- * The facet or realm definition.
- * @param array $options
- * An array of values keyed by properties that are being compared.
- *
- * @return
- * TRUE if all property values are equal, FALSE otherwise.
- */
- function facetapi_requirement_property(array $definition, array $options, $operator) {
- $passed = TRUE;
- foreach ($options as $key => $requirement) {
- $condition = $definition[$key];
- // we always expect an array
- if (!is_array($requirement)) {
- $requirement = array($requirement);
- }
- // we always expect an array
- if (!is_array($condition)) {
- $condition = array($condition);
- }
- // if the keys are numeric, map assoc them so intersect works
- if (is_int(key($requirement))) {
- $requirement = drupal_map_assoc($requirement);
- }
- // if the keys are numeric, map assoc them so intersect works
- if (is_int(key($condition))) {
- $condition = drupal_map_assoc($condition);
- }
- // Check if it is either an AND or OR operation and act accordingly
- if ($operator == 'AND') {
- if (array_intersect_key($condition, $requirement) != $requirement) {
- $passed = FALSE;
- break;
- }
- }
- elseif ($operator == 'OR') {
- if (!array_intersect_key($condition, $requirement)) {
- $passed = FALSE;
- break;
- }
- }
- }
- return $passed;
- }
- /**
- * Checks whether one or more realm properties are set.
- *
- * @param array $realm
- * The realm definition as returned by facetapi_realm_load().
- * @param array $facet
- * The facet definition as returned by facetapi_facet_load().
- * @param array $options
- * An array of boolean statuses keyed by properties being checked.
- *
- * @return
- * TRUE if all properties match the passed statues, FALSE otherwise.
- */
- function facetapi_requirement_realm_property_set(array $realm, array $facet, array $options) {
- return facetapi_requirement_property_set($realm, $options);
- }
- /**
- * Checks whether one or more facet properties are set.
- *
- * @param array $realm
- * The realm definition as returned by facetapi_realm_load().
- * @param array $facet
- * The facet definition as returned by facetapi_facet_load().
- * @param array $options
- * An array of boolean statuses keyed by properties being checked.
- *
- * @return
- * TRUE if all properties match the passed statues, FALSE otherwise.
- */
- function facetapi_requirement_facet_property_set(array $realm, array $facet, array $options) {
- return facetapi_requirement_property_set($facet, $options);
- }
- /**
- * Checks whether one or more properties are set.
- *
- * @param array $definition
- * The facet or realm definition.
- * @param array $options
- * An array of boolean statuses keyed by properties being checked.
- *
- * @return
- * TRUE if all properties match the passed statues, FALSE otherwise.
- */
- function facetapi_requirement_property_set(array $definition, array $options) {
- $passed = TRUE;
- foreach ($options as $key => $requirement) {
- if (!($requirement ? !empty($definition[$key]) : empty($definition[$key]))) {
- $passed = FALSE;
- break;
- }
- }
- return $passed;
- }
- /**
- * Checks whether the facet is hierarchical.
- *
- * @param array $realm
- * The realm definition as returned by facetapi_realm_load().
- * @param array $facet
- * The facet definition as returned by facetapi_facet_load().
- * @param $option
- * TRUE if the facet should be hierarchical, FALSE if it should be flat.
- *
- * @return
- * TRUE if the hierarchical status matches $option, FALSE otherwise.
- */
- function facetapi_requirement_facet_hierarchical(array $realm, array $facet, $option) {
- $options = array('hierarchy callback' => (bool) $option);
- return facetapi_requirement_facet_property_set($realm, $facet, $options);
- }
|