Drupal 7 para Desarrolladores

Páginas: 6 (1380 palabras) Publicado: 9 de mayo de 2014
Desarrolladores:
Bienvenidos a Drupal 7


Realizado por:
Pedro Cambra
@pcambra

Drupal 7
Drupal 7 incorpora gran cantidad de novedades a
nivel de diseño, usabilidad pero quizás el mayor
cambio que se ha producido entre las versiones
6x y 7x es a nivel desarrollo.

Entidades en Core
Las entidades en Drupal añaden una nueva
capa de abstracción basada en objetos sobre
los datosque permite que todo el contenido
comparta API y workflow.
Nodos, usuarios, términos de taxonomía,
vocabularios, comentarios, ficheros... son ahora
entidades

Entidades en Core
“Everything is a node”
vs
“Nodes are entities too”

Ejemplo #1: Entity Controllers
class CommerceProductEntityController extends
DrupalCommerceEntityController {
(..)
public function create(array $values =array()) {
return (object) ($values + array(
'product_id' => '',
'is_new' => TRUE,
'sku' => '',
'title' => '',
'uid' => '',
'status' => 1,
'created' => '',
'changed' => '',
));
}
(..)
}

Ejemplo #2: EntityFieldQuery
function
commerce_product_reference_commerce_product_can_delete($product) {
// Use EntityFieldQuery to look for line items referencing this
// product and do notallow the delete to occur if one exists.
$query = new EntityFieldQuery();
$query
->entityCondition('entity_type', 'commerce_line_item', '=')
->entityCondition('bundle', 'product', '=')
->fieldCondition('product', 'product_id',
$product->product_id, '=')
->count();
return $query->execute() > 0 ? FALSE : TRUE;
}

Entity API






El módulo Entity API se crea para facilitar elacceso a las entidades y para rellenar los
huecos que le faltan al core de Drupal.
Añade elementos muy interesantes como
propiedades, exportables, interfaz de
administración o los metadata wrappers
También proporciona un controlador de CRUD
estándar para la mayoría de entidades.

Ejemplo#1: Entity Metadata Wrapper
function commerce_line_items_quantity($line_items, $type = '') {
// Sum upthe quantity of all matching line items.
$quantity = 0;
foreach ($line_items as $line_item) {
if (!is_a($line_item, 'EntityMetadataWrapper')) {
$line_item = entity_metadata_wrapper('commerce_line_item',
$line_item);
}
if (empty($type) || $line_item->type->value() == $type) {
$quantity += $line_item->quantity->value();
}
}
return $quantity;
}

Ejemplo#2: Entity Properties
/**
*Implements hook_entity_property_info().
*/
function commerce_product_entity_property_info() {
$info = array();
// Add meta-data about the basic commerce_product properties.
$properties = &$info['commerce_product']['properties'];
(..)
$properties['sku'] = array(
'label' => t('SKU'),
'description' => t('The human readable product SKU.'),
'type' => 'text',
'setter callback' =>'entity_property_verbatim_set',
'required' => TRUE,
'schema field' => 'sku',
);

Field API






Parte del módulo CCK se ha refactorizado y es
ahora el Field API de Drupal 7.
Los nuevos campos generados por Field API se
pueden adjuntar a cualquier entidad que tenga
la propiedad fieldable.
Se ha facilitado en gran medida la forma de
crear campos personalizados y se han añadido
y estandarizadogran cantidad de nuevas
opciones.

Extendiendo Field API
Field API incorpora gran cantidad de hooks,
ejemplos curiosos:






hook_field_attach_* - controlan los formularios y
acciones cuando un campo se adjunta a una
entidad (y operaciones CRUD).
hook_field_storage_* - controlan la forma en la que
se almacena el campo (NoSQL?)
hook_field_extra_fields* - Permiten exponer“pseudo campos” en las entidades.

Form API


#states



Vertical Tabs



#ajax



machine_name



#attached



tableselect



managed_file



hook_form_alter()
desde plantilla



#title_display



#limit_validation_errors



Elementos HTML5 a
través del módulo
Elements

Ejemplo: #attached & Vertical Tabs
$form['additional_settings'] =...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Drupal 7
  • Drupal 7
  • 7 Pasos Para Desarrollar Un Discurso
  • 7 PASOS PARA DESARROLLAR UN PLAN DE PUBLICIDAD EN REDES SOCIALES
  • 7 Pasos Para El Desarrollo De Un Programa
  • Evaluación 7
  • desarrollo humano cap. 7
  • ACTIVIDAD 7 DESARROLLO SOCIAL

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS