Пример #1
0
 /**
  * @param array             $action
  * @param EntityConfigModel $entity
  * @param ConfigProvider    $provider
  *
  * @return bool
  */
 protected function isLayoutActionApplicable(array $action, EntityConfigModel $entity, ConfigProvider $provider)
 {
     if (!isset($action['filter'])) {
         return true;
     }
     $result = true;
     foreach ($action['filter'] as $key => $value) {
         if ($key === 'mode') {
             if ($entity->getMode() !== $value) {
                 $result = false;
                 break;
             }
         } else {
             $config = $provider->getConfig($entity->getClassName());
             if (is_array($value)) {
                 if (!$config->in($key, $value)) {
                     $result = false;
                     break;
                 }
             } elseif ($config->get($key) != $value) {
                 $result = false;
                 break;
             }
         }
     }
     return $result;
 }