Entity. Anton Shubkin and Yaroslav Ponomarev

  • 404 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
404
On Slideshare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Свои типы Entity: зачем и как использовать
  • 2. Entity Bundle 1 Entity Type Field 1 Bundle 2 Field 2 Bundle 3 Field 3
  • 3. hook_entity_info() function node_entity_info() { 'bundle keys' => array( $return = array( 'bundle' => 'type', 'node' => array( ), 'label' => t('Node'), 'bundles' => array(), 'controller class' => 'NodeController', //... 'base table' => 'node', ), 'revision table' => 'node_revision', ); 'fieldable' => TRUE, // … 'entity keys' => array( foreach (node_type_get_names() as $type => $name) { 'id' => 'nid', $return['node']['bundles'][$type] = array( 'revision' => 'vid', // ... 'bundle' => 'type', ); 'label' => 'title', } 'language' => 'language', ), return $return; }
  • 4. Drupal core ● ● ● ● ● ● Node Comment User Taxonomy Term Taxonomy Vocabulary File
  • 5. Contrib Modules ● ● ● ● ● Drupal Commerce Rules Profile 2 Message Field Collection ...
  • 6. Форма для заполнения Имя Email О себе Послать
  • 7. Обработка данных
  • 8. Результат
  • 9. Требования ● Гибкость ● Расширяемость ● Несколько форм: разные поля, схожий функционал ● Сжатые сроки Entity + Bundles + Fields
  • 10. Почему не ноды? ● Не нужны некоторые свойства ● Нужны дополнительные свойства ● не нужен некоторый функционал / хуки ● нужен свой функционал ● Не нужны комментарии ● Не нужны ревизии ● Не нужна система доступов (node_access()) ● нужна своя система доступов ● не нужна страница /node/[nid]
  • 11. Entity API https://drupal.org/project/entity
  • 12. Views, Rules
  • 13. Экспорт / Features
  • 14. Token (Entity Tokens)
  • 15. Admin UI
  • 16. entity_metadata_wrapper() $node = node_load(1); $wrapper = entity_metadata_wrapper('node', $node); $wrapper->title->value(); $wrapper->author->name->value(); $wrapper->field_multiple->value(); foreach ($wrapper->field_multiple as $delta => $field_wrapper) { $field_wrapper->value(); } $wrapper->field_price->value(); $wrapper->field_price->amount_decimal->value() $wrapper->title->set('another title'); $wrapper->body->value->set('Lorem Ipsum');
  • 17. Entity без полей ● ● ● ● ● Views Rules Token Admin UI entity_metadata_wrapper()
  • 18. также смотрите ● ● ● ● Drupal Commerce Profile 2 Entityforms Entity Construction Kit (ECK)
  • 19. Спасибо за внимание !