我正在运行最新版本的Drupal 7& Ubercart 3.我试图从$ content变量中捕获日期,以便在模块中使用。具体来说,我试图从自定义产品字段中捕获数据,并显示该数据内联某些产品属性/选项。
重点是为每个产品的每个属性创建一个自定义描述。
似乎uc_attribute.module没有提供$ content变量。使用$ content ['field_original_size'];返回:未定义的变量内容。如果我使用渲染功能,我没有返回任何错误或数据。以下是我到目前为止的情况:
function theme_uc_attribute_option($variables) {
$original_size = render($content['field_original_size']);
if($variables['option'] == 'Original'){
$output = $variables['option'];
$output .= ', ' . $original_size;
if ($variables['price']) {
$output .= ', ' . $variables['price'];
}
}
else{
$output = $variables['option'];
if ($variables['price']) {
$output .= ', ' . $variables['price'];
}
}
return $output;
}
似乎最简单的方法可能是使用token_replace()函数,所以我现在正在尝试但不起作用。没有错误,但令牌不会被替换。
function theme_uc_attribute_option($variables) {
if($variables['option'] == 'Original'){
$output = $variables['option'];
if ($variables['price']) {
$output .= ', ' . '[node:field-medium]';
$output .= ', ' . $variables['price'];
token_replace($output);
}
}
else{
$output = $variables['option'];
if ($variables['price']) {
$output .= ', ' . $variables['price'];
}
}
return $output;
}
答案 0 :(得分:0)
你可以打印出$变量,看看你需要的是什么。
答案 1 :(得分:0)
我认为这是因为你没有使用对$ variables的引用来声明你的函数。我认为它应该被称为function theme_uc_attribute_option(&$variables) {}
。这告诉PHP发送对变量的引用而不是变量的 value 。发送值时,对它的任何更改都只是本地的。如果使用引用,则更改将返回变量。有关详细信息,请参阅PHP Manual。我刚刚注意到它的年龄。