getAttributes() 공개 메소드

The item’s attributes.
public getAttributes ( ) : array
리턴 array
예제 #1
0
 /**
  * Gets the attributes of an item.
  *
  * @param ItemInterface $item
  *
  * @return array
  */
 protected function getItemAttributes(ItemInterface $item)
 {
     $result = $item->getAttributes();
     $result['id'] = $item->getId();
     $result['content'] = $item->getContent();
     $result['collection'] = $item->getCollection();
     $result['path'] = $item->getPath(ItemInterface::SNAPSHOT_PATH_RELATIVE);
     return $result;
 }
예제 #2
0
 private function isRenderizerExcluded(ItemInterface $item)
 {
     $attributes = $item->getAttributes();
     if (array_key_exists('avoid_renderizer', $attributes) === false) {
         return false;
     }
     if (is_bool($attributes['avoid_renderizer']) === false) {
         throw new AttributeValueException('Invalid value. Expected bolean.', 'avoid_renderizer', $item->getPath(ItemInterface::SNAPSHOT_PATH_RELATIVE));
     }
     return $attributes['avoid_renderizer'];
 }
예제 #3
0
 protected function getAttributesResolver(ItemInterface $templateItem)
 {
     $resolver = new AttributesResolver();
     $resolver->setDefault('max_page', 5, 'int')->setDefault('provider', 'site.posts', 'string')->setDefault('permalink', '/page:num')->setDefault('sort_by', '', 'string')->setDefault('sort_type', 'descending', 'string')->setValidator('sort_type', function ($value) {
         switch ($value) {
             case 'descending':
             case 'ascending':
                 return true;
             default:
                 return false;
         }
     });
     $attributes = $templateItem->getAttributes();
     return $resolver->resolve($attributes);
 }
예제 #4
0
 protected function getAttributesResolver(ItemInterface $templateItem)
 {
     $resolver = new AttributesResolver();
     $resolver->setDefault('taxonomy_attribute', 'categories', 'string')->setDefault('permalink', '/:name')->setDefault('pagination_permalink', '/page:num', 'string');
     $attributes = $templateItem->getAttributes();
     return $resolver->resolve($attributes);
 }
예제 #5
0
 private function getPermalinkAttribute(ItemInterface $item)
 {
     $attributes = $item->getAttributes();
     $permalink = isset($attributes['permalink']) ? $attributes['permalink'] : $this->defaultPermalink;
     if (is_string($permalink) === false) {
         throw new AttributeValueException('Invalid value. Expected string.', 'permalink', $item->getPath(ItemInterface::SNAPSHOT_PATH_RELATIVE));
     }
     if (trim($permalink) === '') {
         throw new AttributeValueException('Invalid value. Expected a non-empty value.', 'permalink', $item->getPath(ItemInterface::SNAPSHOT_PATH_RELATIVE));
     }
     return $permalink;
 }
예제 #6
0
 protected function getAttributesResolver(ItemInterface $templateItem)
 {
     $resolver = new AttributesResolver();
     $resolver->setDefault('max_page', 5, 'int')->setDefault('provider', 'site.posts', 'string')->setDefault('permalink', '/page:num');
     $attributes = $templateItem->getAttributes();
     return $resolver->resolve($attributes);
 }
예제 #7
0
 protected function getItemAttributes(ItemInterface $item)
 {
     $result = $item->getAttributes();
     $result['id'] = $item->getId();
     $result['content'] = $item->getContent();
     $result['collection'] = $item->getCollection();
     $result['path'] = $item->getPath(ItemInterface::SNAPSHOT_PATH_RELATIVE);
     $result['relationships'] = [];
     $relationships = $item->getRelationshipCollection();
     foreach ($relationships as $name => $items) {
         if (isset($result['relationships'][$name]) === false) {
             $result['relationships'][$name] = [];
         }
         foreach ($items as $relItem) {
             $relAttributes = $relItem->getAttributes();
             $relAttributes['id'] = $relItem->getId();
             $relAttributes['content'] = $relItem->getContent();
             $relAttributes['collection'] = $relItem->getCollection();
             $relAttributes['path'] = $relItem->getPath(ItemInterface::SNAPSHOT_PATH_RELATIVE);
             $result['relationships'][$name][] = $relAttributes;
         }
     }
     return $result;
 }