commerce_product_reference.devel_generate.inc in Commerce Devel 7
Same filename and directory in other branches
Contains devel generate information for Commerce Product Reference fields.
File
commerce_devel_generate/commerce_product_reference.devel_generate.incView source
<?php
/**
* @file
* Contains devel generate information for Commerce Product Reference fields.
*/
/**
* Support for processing commerce product reference fields in devel generate.
*
* @param object $object
* The entity object.
* @param array $field
* The field definition.
* @param array $instance
* The instance definition.
* @param string $bundle
* The entity bundle.
*
* @return array
* Returns price field array data.
*/
function commerce_product_reference_devel_generate($object, $field, $instance, $bundle) {
if (field_behaviors_widget('multiple values', $instance) == FIELD_BEHAVIOR_CUSTOM) {
module_load_include('inc', 'commerce_devel_generate', 'commerce_product_reference.devel_generate');
return devel_generate_multiple('_commerce_product_reference_devel_generate', $object, $field, $instance, $bundle);
}
else {
return _commerce_product_reference_devel_generate($object, $field, $instance, $bundle);
}
}
/**
* Product reference value generation for fields.
*
* @param object $object
* The entity object.
* @param array $field
* The field definition.
* @param array $instance
* The instance definition.
* @param string $bundle
* The entity bundle.
*
* @return array
* Returns price field array data.
*/
function _commerce_product_reference_devel_generate($object, $field, $instance, $bundle) {
$object_field = array();
// Get all the referenceable product types.
$referenceable_types = array_keys($instance['settings']['referenceable_types']);
foreach ($instance['settings']['referenceable_types'] as $product_type => $value) {
if ($value) {
$referenceable_types[] = $product_type;
}
}
// Get all the products id eligible for this product reference field.
$query = new EntityFieldQuery();
$query
->entityCondition('entity_type', 'commerce_product', '=');
// Check if we should apply a bundle filter.
if (!empty($referenceable_types)) {
$query
->entityCondition('bundle', $referenceable_types, 'IN');
}
$products = $query
->execute();
if (isset($products['commerce_product'])) {
$product_ids = array_keys($products['commerce_product']);
$random_key = array_rand($product_ids);
$object_field['product_id'] = $product_ids[$random_key];
}
return $object_field;
}
Functions
Name![]() |
Description |
---|---|
commerce_product_reference_devel_generate | Support for processing commerce product reference fields in devel generate. |
_commerce_product_reference_devel_generate | Product reference value generation for fields. |