在php上使用图像作为按钮

时间:2012-03-29 21:58:27

标签: php html button open-source

我有一个php脚本,它创建了自己的按钮,因为我使用的是开源框架。我想要的是使用图像来创建按钮而不是创建的链接。这是我需要按钮的行:

<td class="main button_marg"><?php echo tep_draw_button(IMAGE_BUTTON_REVIEWS . (($reviews['count'] > 0) ? ' (' . $reviews['count'] . ')' : ''), 'comment', tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params())); ?></td>

这是我用来创建审阅按钮的脚本,但我想在其中插入图像。任何想法都会非常感激。

这是tep_draw_button()函数的代码:

function tep_draw_button($title = null, $icon = null, $link = null, $priority = null, $params = null) {
static $button_counter = 1;

$types = array('submit', 'button', 'reset');

if ( !isset($params['type']) ) {
  $params['type'] = 'submit';
}

if ( !in_array($params['type'], $types) ) {
  $params['type'] = 'submit';
}

if ( ($params['type'] == 'submit') && isset($link) ) {
  $params['type'] = 'button';
}

if (!isset($priority)) {
  $priority = 'secondary';
}

$button = '<span class="tdbLink">';

if ( ($params['type'] == 'button') && isset($link) ) {
  $button .= '<a id="tdb' . $button_counter . '" href="' . $link . '"';

  if ( isset($params['newwindow']) ) {
    $button .= ' target="_blank"';
  }
} else {
  $button .= '<button id="tdb' . $button_counter . '" type="' . tep_output_string($params['type']) . '"';
}

if ( isset($params['params']) ) {
  $button .= ' ' . $params['params'];
}

$button .= '>' . $title;

if ( ($params['type'] == 'button') && isset($link) ) {
  $button .= '</a>';
} else {
  $button .= '</button>';
}

$button .= '</span><script type="text/javascript">$("#tdb' . $button_counter . '").button(';

$args = array();

if ( isset($icon) ) {
  if ( !isset($params['iconpos']) ) {
    $params['iconpos'] = 'left';
  }

  if ( $params['iconpos'] == 'left' ) {
    $args[] = 'icons:{primary:"ui-icon-' . $icon . '"}';
  } else {
    $args[] = 'icons:{secondary:"ui-icon-' . $icon . '"}';
  }
}

if (empty($title)) {
  $args[] = 'text:false';
}

if (!empty($args)) {
  $button .= '{' . implode(',', $args) . '}';
}

$button .= ').addClass("ui-priority-' . $priority . '").parent().removeClass("tdbLink");</script>';

$button_counter++;

return $button;
}
?>

2 个答案:

答案 0 :(得分:1)

您可以使用某些css覆盖该样式:

#your_button_id{ background: url(); height: x; width: x; etc...  }
.your_button_class{ background: url(); height: x; width: x; etc...  }

答案 1 :(得分:0)

试试这个:

要调用该按钮,请使用带有以下参数的函数:

$image['src'] = 'http://yoururl.com/image.jpg'; // Image Source
$image['height'] = 600;  // Image Height
$image['width'] = 300;   // Image Width

tep_draw_button(IMAGE_BUTTON_REVIEWS . (($reviews['count'] > 0) ? ' (' . $reviews['count'] . ')' : ''), 'comment', tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params()), null, null, $image);

然后像这样修改tep_draw_button函数。如果函数参数中有图像源,则图像将作为链接而不是按钮放置。

<?
function tep_draw_button($title = null, $icon = null, $link = null, $priority = null, $params = null, $image = null) {
static $button_counter = 1;

if($image != null){

    $button = '<span class="tdbLink">';
    $button .= '<a id="tdb' . $button_counter . '" href="' . $link . '"';
    $button .= '><img src="'. $image['src'] .'"';
    if(is_numeric($image['height'])) $button .= ' height="'.$image['height'].'"';
    if(is_numeric($image['width'])) $button .= ' width="'.$image['width'].'"';
    $button .= 'alt="'.$title.'" /></a></span>';

}else{

$types = array('submit', 'button', 'reset');

if ( !isset($params['type']) ) {
  $params['type'] = 'submit';
}

if ( !in_array($params['type'], $types) ) {
  $params['type'] = 'submit';
}

if ( ($params['type'] == 'submit') && isset($link) ) {
  $params['type'] = 'button';
}

if (!isset($priority)) {
  $priority = 'secondary';
}

$button = '<span class="tdbLink">';

if ( ($params['type'] == 'button') && isset($link) ) {
  $button .= '<a id="tdb' . $button_counter . '" href="' . $link . '"';

  if ( isset($params['newwindow']) ) {
    $button .= ' target="_blank"';
  }
} else {
  $button .= '<button id="tdb' . $button_counter . '" type="' . tep_output_string($params['type']) . '"';
}

if ( isset($params['params']) ) {
  $button .= ' ' . $params['params'];
}

$button .= '>' . $title;

if ( ($params['type'] == 'button') && isset($link) ) {
  $button .= '</a>';
} else {
  $button .= '</button>';
}

$button .= '</span><script type="text/javascript">$("#tdb' . $button_counter . '").button(';

$args = array();

if ( isset($icon) ) {
  if ( !isset($params['iconpos']) ) {
    $params['iconpos'] = 'left';
  }

  if ( $params['iconpos'] == 'left' ) {
    $args[] = 'icons:{primary:"ui-icon-' . $icon . '"}';
  } else {
    $args[] = 'icons:{secondary:"ui-icon-' . $icon . '"}';
  }
}

if (empty($title)) {
  $args[] = 'text:false';
}

if (!empty($args)) {
  $button .= '{' . implode(',', $args) . '}';
}

$button .= ').addClass("ui-priority-' . $priority . '").parent().removeClass("tdbLink");</script>';

$button_counter++;
}

return $button;
}
?>

让我知道这是否有效,或者你是否需要调整它。我很难测试,因为我的机器上没有oscommerce实例可以测试。