Drupal Search API 多值产品字段(Product reference) Views Sort无法获取Product字段

如果一个node中有多个Product, 那么Views Sort中根本不知道你要获取Product的哪个字段。现在有一个办法就是重新定义字段。比如Price, 我们生成一个新的单值字段,取node中的第一个Product。

定义一个新的字段叫product_price.并且放在node中.以获取我们的Price字段.

/*
 * Implement hook_entity_property_info.
 */
function projectaegis_entity_property_info() {
  $info['node']['properties']['product_price'] = array(
    'label' => t('Product price'),
    'type' => 'decimal',
    'getter callback' => 'projectaegis_node_price_callback',
  );
  return $info;
}

function projectaegis_node_price_callback($entity, array$options, $name, $entity_type) {
    $wrapper = entity_metadata_wrapper('node', $entity);
    $products = $wrapper->field_clothes_product->value();
    // 获取第一个产品.
    $product = array_shift($products);
    $product_entity = entity_metadata_wrapper('commerce_product', $product);
    $price = (int)$product_entity->commerce_price->amount->value();
    return (float)$price/100;
}

PHP 检查移动设备(平板/手机)

这边当然不是使用自己写PHP来判断。使用的第三方库Mobile-Detect. 自己写可能有很多因素.

include_once 'Mobile_Detect/Mobile_Detect.php';
$detect = new Mobile_Detect();

if($detect->isMobile()) {
   echo '手机用户';
}

if($detect->isTablet()) {
   echo '平板用户';
}