/**
  * {@inheritdoc}
  */
 public function matchItem(ItemInterface $item)
 {
     if ($item->getType() != 'article') {
         return true;
     }
     $published = $item->getExtra('published');
     $start = $item->getExtra('start');
     $stop = $item->getExtra('stop');
     $time = time();
     return $published && (!$start || $start <= $time) && (!$stop || $stop >= $time);
 }
 /**
  * {@inheritdoc}
  */
 public function matchItem(ItemInterface $item)
 {
     if ($item->getType() != 'content') {
         return true;
     }
     $invisible = $item->getExtra('invisible');
     $start = $item->getExtra('start');
     $stop = $item->getExtra('stop');
     $time = time();
     return !$invisible && (!$start || $start <= $time) && (!$stop || $stop >= $time);
 }
 /**
  * {@inheritdoc}
  */
 public function matchItem(ItemInterface $item)
 {
     if ($item->getType() != 'metamodels') {
         return true;
     }
     /** @var IItem $model */
     $model = $item->getExtra('model');
     $attribute = $model->getAttribute($this->attribute);
     // metamoel does not have this attribute, skip
     if (!$attribute) {
         return true;
     }
     $value = $model->get($this->attribute);
     switch ($this->operator) {
         case static::OPERATOR_EQUALS:
             return $value == $this->value;
             break;
         case static::OPERATOR_EQUALS_OR_GREATER_THAN:
             return $value >= $this->value;
             break;
         case static::OPERATOR_EQUALS_OR_LESSER_THAN:
             return $value <= $this->value;
             break;
         case static::OPERATOR_GREATER_THAN:
             return $value > $this->value;
             break;
         case static::OPERATOR_LESSER_THAN:
             return $value < $this->value;
             break;
     }
     return false;
 }
 /**
  * {@inheritdoc}
  */
 public function matchItem(ItemInterface $item)
 {
     if ($item->getType() != 'page') {
         return true;
     }
     $hide = $item->getExtra('hide');
     return $hide == $this->acceptedHideStatus;
 }
 /**
  * {@inheritdoc}
  */
 public function matchItem(ItemInterface $item)
 {
     if ($item->getType() != 'page') {
         return true;
     }
     $protected = $item->getExtra('protected');
     return $protected == $this->acceptedProtectedStatus;
 }
 /**
  * {@inheritdoc}
  */
 public function matchItem(ItemInterface $item)
 {
     if ($item->getType() != 'article') {
         return true;
     }
     $guests = $item->getExtra('guests');
     return $guests == $this->acceptedGuestsStatus;
 }
 /**
  * {@inheritdoc}
  */
 public function matchItem(ItemInterface $item)
 {
     if ($item->getType() != 'page') {
         return true;
     }
     $pageId = $item->getExtra('id');
     return $pageId == $this->pageId;
 }
 /**
  * {@inheritdoc}
  */
 public function matchItem(ItemInterface $item)
 {
     if ($item->getType() != 'page') {
         return true;
     }
     $sitemap = $item->getExtra('sitemap');
     return in_array($sitemap, $this->acceptedSitemapStatus);
 }
 /**
  * {@inheritdoc}
  */
 public function matchItem(ItemInterface $item)
 {
     if ($item->getType() != 'page') {
         return true;
     }
     $type = $item->getExtra('type');
     return $type == $this->acceptedType;
 }
 /**
  * Determine if the condition match on the item.
  *
  * @param ItemInterface $item
  *
  * @return bool
  */
 public function matchItem(ItemInterface $item)
 {
     if ($item->getType() != 'metamodels') {
         return true;
     }
     /** @var IItem $model */
     $model = $item->getExtra('model');
     return $model->getMetaModel() == $this->metaModel;
 }
 /**
  * {@inheritdoc}
  */
 public function matchItem(ItemInterface $item)
 {
     if ($item->getType() != 'article') {
         return true;
     }
     if (!FE_USER_LOGGED_IN) {
         return false;
     }
     $articleGroups = $item->getExtra('groups');
     $memberGroups = \FrontendUser::getInstance()->groups;
     $groups = array_intersect($memberGroups, $articleGroups);
     return (bool) count($groups);
 }
 /**
  * {@inheritdoc}
  */
 public function matchItem(ItemInterface $item)
 {
     if ($item->getType() != 'page') {
         return true;
     }
     if (!FE_USER_LOGGED_IN) {
         return false;
     }
     $pageGroups = deserialize($item->getExtra('groups'), true);
     if (empty($pageGroups)) {
         return true;
     }
     $memberGroups = \FrontendUser::getInstance()->groups;
     $groups = array_intersect($memberGroups, $pageGroups);
     return (bool) count($groups);
 }