2012-02-14 56 views
0

我正在运行最新版本的Drupal 7 & Ubercart 3.我试图从$ content变量中获取日期以便在模块中使用。具体而言,我试图捕获自定义产品字段中的数据,并显示内嵌某些产品属性/选项的数据。

重点是为每个产品的每个属性创建自定义描述。

看起来$ content变量不可从uc_attribute.module获得。使用$ 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

谢谢!一个很好的想法,但存储在$ variables中的唯一数据是选项名称和价格。 – Eric 2012-02-15 02:16:05

0

我认为这是因为你没有声明你的函数使用$变量的引用。我相信它应该被称为function theme_uc_attribute_option(&$variables) {}。这告诉PHP发送变量的引用而不是变量的。发送该值时,对其进行的任何更改仅为本地。如果使用引用,则更改将返回到变量。有关详细信息,请参阅PHP Manual。我只是注意到这是多大年纪。

相关问题